장점
- Java의 라이브러리, 반복되는 메소드를 Annotation을 사용해서 자동으로 작성해준다.
- 보통 DTO, Model, Entity의 경우에 이들이 가지는 property에 대해서 Getter나 Setter, 생성자 등을 자동으로 만들어준다.
- DTO와 같이 자주 변경되는 클래스의 경우에도 Lombok을 이용하면 단순히 property를 추가하고 삭제하는 것으로 해결된다.
단점
- 호불호가 갈리는 라이브러리이므로 협업 시 주의해야 한다.
- 각 API가 어떤식으로 작동하는지 숙지한 채로 사용하는 것이 좋다. (다른 라이브러리와의 충돌 및 원치 않는 작동 방지를 위해)
ex) @Data나 @ToString의 경우 순환 참조 / 무한 재귀 호출 때문에 StackOverFlowError가 발생할 수도 있다.
@Getter와 @Setter
- 필드에 대한 getter, setter를 자동으로 생성해주는 Annotation이다.
- 만약 필드의 이름이 num이라면 getNum()과 setNum()을 생성해준다.