<aside> <img src="https://raw.githubusercontent.com/eirikmadland/notion-icons/master/v5/icon3/ul-github.svg" alt="https://raw.githubusercontent.com/eirikmadland/notion-icons/master/v5/icon3/ul-github.svg" width="40px" /> ์ฐธ์กฐ Github Code
</aside>
Lombok
์ด๋ Java์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ฐ๋ณต๋๋ ๋ฉ์๋๋ฅผย Annotation
์ ์ฌ์ฉํด์ ์๋์ผ๋ก ์์ฑํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค. ๋ณดํต DTO๋ Model, Entity์ ๊ฒฝ์ฐ ์ฌ๋ฌ ์์ฑ์ด ์กด์ฌํ๊ณ ์ด๋ค์ด ๊ฐ์ง๋ ํ๋กํผํฐ์ ๋ํด์ Getter๋ Setter, ์์ฑ์ ๋ฑ์ ๋งค๋ฒ ์์ฑํด์ค์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์๋ฐ ์ด๋ฌํ ๋ถ๋ถ์ ์๋์ผ๋ก ๋ง๋ค์ด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ผ๊ณ ํ ์ ์๋ค.
๋ํ DTO์ ๊ฐ์ด ์์ฃผ ๋ณ๊ฒฝ๋๋ ํด๋์ค์ ๊ฒฝ์ฐ ๋ฉค๋ฒ ๋ณ์๊ฐ ์ถ๊ฐ๋๊ฑฐ๋ ์์ด์ง ๋๋ง๋ค Getter, Setter, ์์ฑ์ ๋ฑ์ ์์ ํด์ค์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ๋ค. ์ด๋ฌํ ๊ฒฝ์ฐ์๋ย Lombok
์ ์ด์ฉํ๋ฉด ๋จ์ํ ํ๋กํผํฐ๋ฅผ ์ถ๊ฐํ๊ณ ์ญ์ ํ๋ ๊ฒ๋ง์ผ๋ก๋ ์ถฉ๋ถํ๋ค.
Lombok
์ ์ด์ฉํด์ ์์ฑํ ์ฝ๋๋ ์ปดํ์ผ ๊ณผ์ ์์ย Annotation
์ ์ด์ฉํด์ ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์ด๋ฐ ๊ฒฐ๊ณผ๋ฌผ์ดย .class
์ ๋ด๊ธฐ๊ฒ ๋๋ ๊ฒ์ด๋ค.
๊ท์ฐฎ์ ๊ณผ์ ์ ์ค์ฌ์ฃผ๊ณ ๋ฐ๋ณต๋๋ ์ฝ๋ ์์ฑ์ ๋์ ํด์ค๋ค๋ ์ ์์ ๋ง์ ๊ฐ๋ฐ์๋ค์ด ์ ํธํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด์ง๋ง ํธ๋ถํธ๊ฐ ๊ฐ๋ฆฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๊ธฐ๋ ํ๋ฏ๋ก ํ ํ๋ก์ ํธ์ ๋์ ํ๋ ๊ฒฝ์ฐ ์ฃผ์ํด์ผ ํ๋ค.
๋ํ ๋จ์ํย Annotation
์ ์ด์ฉํด์ ์ฝ๋๋ฅผ ์์ฑํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ฏ๋ก ๊ฐย API
๊ฐ ์ด๋ค์์ผ๋ก ์๋ํ๋์ง ์์งํ ์ฑ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค. ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ถฉ๋์ด ๋ฐ์ํ ์๋ ์๊ณ ๋ด๊ฐ ์ํ์ง ์๋ ๋ฐฉ์์ผ๋ก ์๋ํ ์๋ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์๋ฅผ ๋ค์ดย @Data
๋ย @ToString
์ ๊ฒฝ์ฐ ์ํ ์ฐธ์กฐ ๋๋ ๋ฌดํ ์ฌ๊ท ํธ์ถ๋ก ์ธํดย StackOverFlowError
๊ฐ ๋ฐ์ํ ์๋ ์๋ค. ์ด๋ ์๋์ ์์ธํ๊ฒ ์ดํด๋ณด๊ฒ ๋ค.
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
@Setter
@Getter
public class DevDto {
String name;
Integer age;
LocalDateTime startAt;
}