Lombok์ ์ฌ์ฉํด ๋ง์ ๋ณด์ผ๋ฌ ํ๋ ์ดํธ ์ฝ๋๋ฅผ ์ค์ด๊ณ ์๋ค.
@RequiredConstructor์ @Builder, @Getter๋ฑ ๋ง์ ๋์์ ์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
๊ทธ๋ฌ๋ iDE ์์์๋ ์ ์์ ์ผ๋ก ์ธ์์ด ๋์ง๋ง, ๋น๋ ๋ฐ ์ปดํ์ผ์ ํ๋ฉด ํด๋น ๋ฉ์๋๋ฅผ ์ฐพ์ ์ ์๋ค๋ ๊ธฐ์ดํ ๋ฌธ์ ์๋ค.
์๋ฅผ ๋ค์ด, @RequiredConstructor๋ฅผ ์ฌ์ฉํ๋ฉด IDE ์์๋ ๋ฌธ์ ์๋ ์ฝ๋๋ฅผ ์ ์์ฑํ์ง๋ง,
์ด์ ๊ฐ์ด ์์ฑ์๋ ์๋ฌด๋ฐ ์ธ์๋ฅผ ์ํ์ง ์๋๋ค๋ ์ค๋ฅ๊ฐ ๋์๋ค.
์ค๋ง๋ฆฌ๋ฅผ ํธ๋ ๊ณผ์ ์์, ์ง์ ์์ผ๋ก ๋ชจ๋ ์ธ์์ ๋ํ Constructor๋ฅผ ์์ฑํ๋ ์ค๋ฅ๊ฐ ์ ๊ฑฐ๋์๋ค๋ ์ ๊ณผ,
๋จ์ํ @RequiredArgsConstructor ์ธ์๋ @Getter์ ๊ฐ์ ๋ค๋ฅธ ๋กฌ๋ณต ์ด๋ ธํ ์ด์ ์ ๋ํด์๋ ๋์ผํ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
์ด ๋ฌธ์ ์ ๋ํด ๋ณธ์ธ์ด ํด๊ฒฐํ ๋ฐฉ๋ฒ์, ๋ฐ๋ก build.gradle์ annotationProcessor๊ฐ ๋น ์ ธ์์๋ค๋ ์ ์ด๋ค.
์ปดํ์ผ ์์ ์ Annnotation Processor๋ฅผ ์ฌ์ฉํ์ฌ abstract syntaxtree๋ฅผ ์กฐ์ํด ์ฝ๋๋ฅผ ์์ฑํ๋ ์ญํ ๋ก ํด๋น ์ค์ ์ด ๋น ์ ธ์๋ค๋ฉด ๋น์ฐํ๊ฒ๋ Lombok์ผ๋ก๋ถํฐ ๋ง๋ค์ด๋ธ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
build.gradle์ ์๋์ ๊ฐ์ ์ฝ๋๋ฅผ ์ถ๊ฐํ์.
annotationProcessor 'org.projectlombok:lombok:1.18.28'
+ ํด๋น ๋ฐฉ๋ฒ์ผ๋ก ํด๊ฒฐ์ด ๋์ง ์๋๋ค๋ฉด, IDEA์ Perference์์ Annotation Processors ์์ Enable annotation processing์ด ์ฒดํฌ๊ฐ ๋์ด์๋์ง ํ์ธํ๋ค.