์ƒˆ์†Œ์‹

Back-End/Java

[Java] ํŽธ๋ฆฌํ•œ Lombok ๊ธฐ๋Šฅ ์ •๋ฆฌ

  • -

 

 

 

#1. Lombok ๊ธฐ๋Šฅ

 

1. @Getter๋‚˜ @Setter

@Getter๋‚˜ @Setter๋ฅผ ํด๋ž˜์Šค ์ƒ๋‹จ์— ์ถ”๊ฐ€ํ•˜๋ฉด lombok์ด ํ•ด๋‹น๋˜๋Š” ํ•„๋“œ๋“ค์— ๋Œ€ํ•œ ๊ธฐ๋ณธ getter/setter๋ฅผ ์ƒ์„ฑํ•ด ์ค๋‹ˆ๋‹ค.

 

@Getter, @Setter์—๋Š” ์ ‘๊ทผ์ œํ•œ์ž๋ฅผ ๊ฐ ํ•„๋“œ๋งˆ๋‹ค ์„ค์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งŒ์•ฝ ์ƒ์„ฑ๋˜๋Š” getter/setter์— ๋ช…์‹œ์ ์œผ๋กœ AccessLevel์„ ๋ช…์‹œํ•ด์ฃผ์ง€ ์•Š์œผ๋ฉด, ์ ‘๊ทผ ์ œํ•œ์ž๋Š” public์ด ๋ฉ๋‹ˆ๋‹ค.

ํ—ˆ์šฉ๋˜๋Š” access level๋“ค์€ PUBLIC, PROTECTED, PACKAGE, PRIVATE๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 


2. @NoArgsConstructor

์ด ์–ด๋…ธํ…Œ์ด์…˜์€ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์—†๋Š” ์ƒ์„ฑ์ž๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

 

@NoArgsConstructor์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ์ฃผ์˜์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํ•„๋“œ๋“ค์ด final๋กœ ์ƒ์„ฑ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ํ•„๋“œ๋ฅผ ์ดˆ๊ธฐํ™”ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ƒ์„ฑ์ž๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์—†๊ณ  ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด ๋•Œ๋Š” @NoArgsConstructor(force = true) ์˜ต์…˜์„ ์ด์šฉํ•ด์„œ final ํ•„๋“œ๋ฅผ 0, false, null ๋“ฑ์œผ๋กœ ์ดˆ๊ธฐํ™”๋ฅผ ๊ฐ•์ œ๋กœ ์‹œ์ผœ์„œ ์ƒ์„ฑ์ž๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • @NonNull ๊ฐ™์ด ํ•„๋“œ์— ์ œ์•ฝ์กฐ๊ฑด์ด ์„ค์ •๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ, ์ƒ์„ฑ์ž ๋‚ด null-check ๋กœ์ง์ด ์ƒ์„ฑ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ›„์— ์ดˆ๊ธฐํ™”๋ฅผ ์ง„ํ–‰ํ•˜๊ธฐ ์ „๊นŒ์ง€ null-check ๋กœ์ง์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ์ ์„ ์—ผ๋‘ํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ๊ฐœ๋ฐœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 


3. @RequiredArgsConstructor

์ด ์–ด๋…ธํ…Œ์ด์…˜์€ ์ถ”๊ฐ€ ์ž‘์—…์„ ํ•„์š”๋กœ ํ•˜๋Š” ํ•„๋“œ์— ๋Œ€ํ•œ ์ƒ์„ฑ์ž๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์–ด๋…ธํ…Œ์ด์…˜์ž…๋‹ˆ๋‹ค. ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ๋ชจ๋“  final ํ•„๋“œ, @NonNull๋กœ ๋งˆํฌ๋˜์–ด์žˆ๋Š” ๋ชจ๋“  ํ•„๋“œ๋“ค์— ๋Œ€ํ•œ ์ƒ์„ฑ์ž๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ด์ค๋‹ˆ๋‹ค. @NonNull๋กœ ๋งˆํฌ๋˜์–ด์žˆ๋Š” ํ•„๋“œ๋“ค์€ null-check๊ฐ€ ์ถ”๊ฐ€์ ์œผ๋กœ ์ƒ์„ฑ๋˜๋ฉฐ, @NonNull์ด ๋งˆํฌ๋˜์–ด ์žˆ์ง€๋งŒ, ํŒŒ๋ผ๋ฏธํ„ฐ์—์„œ null๊ฐ’์ด ๋“ค์–ด์˜จ๋‹ค๋ฉด ์ƒ์„ฑ์ž์—์„œ NullPointerException์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

 

ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์ˆœ์„œ๋Š” ํด๋ž˜์Šค์— ์žˆ๋Š” ํ•„๋“œ ์ˆœ์„œ์— ๋งž์ถฐ์„œ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

 

 


4. @AllArgsConstructor

์ด ์–ด๋…ธํ…Œ์ด์…˜์€ ํด๋ž˜์Šค์— ์กด์žฌํ•˜๋Š” ๋ชจ๋“  ํ•„๋“œ์— ๋Œ€ํ•œ ์ƒ์„ฑ์ž๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ด์ค๋‹ˆ๋‹ค.

 

 

์ถœ์ฒ˜๋Š” ์—ฌ๊ธฐ๋ฅผ ํด๋ฆญํ•ด์ฃผ์„ธ์š”.

 

 

Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜Š

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๐Ÿ‘