#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
์ด ์ด๋ ธํ ์ด์ ์ ํด๋์ค์ ์กด์ฌํ๋ ๋ชจ๋ ํ๋์ ๋ํ ์์ฑ์๋ฅผ ์๋์ผ๋ก ์์ฑํด์ค๋๋ค.
์ถ์ฒ๋ ์ฌ๊ธฐ๋ฅผ ํด๋ฆญํด์ฃผ์ธ์.
'Back-End > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java 8] Stream API ๊ธฐ๋ณธ ๋ฌธ๋ฒ ๋ฐ ํ์ฉ ์์ (0) | 2023.02.28 |
---|---|
[Java] ์ค์ผ์ค๋ฌ ๋ฐฐ์น (2) | 2023.02.04 |
[Java] IntelliJ์์ lombok ์ฌ์ฉํ๊ธฐ (0) | 2023.02.04 |
[Java] ํ๊ฒฝ๋ณ์ ์ค์ (0) | 2023.02.04 |
[Java] ์๋ฌ ๋ก๊ทธ ์ฐธ๊ณ ์๋ฃ (0) | 2017.11.10 |