Null Safety

๋„ ์•ˆ์ •์„ฑ์„ ๋†’์ด๋Š” ๋ฐฉ๋ฒ•

  • ์•„๋ž˜์™€ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๋Š” ๋ฐฉ๋ฒ•

  • ํ˜น์€ ์•„๋ž˜์™€ ๊ฐ™์€ ๋„ ์ฒดํฌ๋ฅผ ํ•˜์ง€ ์•Š์•„์„œ ๋ฐœ์ƒํ•˜๋Š” NPE ๋ฅผ (Null Pointer Exception) ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•

  • ์™„๋ฒฝํ•œ ๋ฐฉ๋ฒ•์€ ์•„๋‹ˆ์ง€๋งŒ IDE ์—์„œ ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•จ์œผ๋กœ์จ 1์ฐจ์ ์ธ ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ , ์ •ํ™•ํ•œ ์—๋Ÿฌ ์œ„์น˜๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์›€

public void method(String request) {
	if(request == null) return;

	// normal process
	System.out.println(request.toUpperCase());
}

@NonNull Annotation

  • ํ•ด๋‹น ๊ฐ’์ด๋‚˜ ํ•จ์ˆ˜ ๋“ฑ์ด Null ์ด ์•„๋‹˜์„ ๋‚˜ํƒ€๋‚ด๋Š” ์–ด๋…ธํ…Œ์ด์…˜

  • org.springframework.lang.NonNull ์‚ฌ์šฉ

  • ๋ฉ”์„œ๋“œ ํŒŒ๋ผ๋ฏธํ„ฐ์— ๋ถ™์ด๋Š” ๊ฒฝ์šฐ: null ์ด ๋“ค์–ด์˜ค๋Š” ๊ฒƒ์„ ์‚ฌ์ „์— ๋ฐฉ์ง€ํ•จ

  • ํ”„๋กœํผํ‹ฐ์— ๋ถ™์ด๋Š” ๊ฒฝ์šฐ: null ์„ ์ €์žฅํ•˜๋Š” ๊ฒฝ์šฐ ๊ฒฝ๊ณ 

  • ๋ฉ”์„œ๋“œ์— ๋ถ™์ด๋Š” ๊ฒฝ์šฐ: null ์„ ๋ฆฌํ„ดํ•˜๋Š” ๊ฒฝ์šฐ ๊ฒฝ๊ณ , ์‘๋‹ต๊ฐ’์„ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ํ™œ์šฉํ•˜๋Š” ์ชฝ๋„ NonNull ์ด๋ผ๊ณ  ์‹ ๋ขฐํ•˜๊ณ  ์‚ฌ์šฉ

@Nullable Annotation

  • @NonNull ๊ณผ ๋ฐ˜๋Œ€๋กœ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ null ์ผ ์ˆ˜ ์žˆ์Œ์„ ๋ช…์‹œํ•จ

  • ํ•ด๋‹น ์–ด๋…ธํ…Œ์ด์…˜์ด ๋ถ™์€ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ null check ๋ฅผ ํ•ญ์ƒ ์ˆ˜ํ–‰ํ•˜๋„๋ก ๊ฒฝ๊ณ 

Last updated

Was this helpful?