Lombok
참조1 : https://www.youtube.com/watch?v=Hw5YIsQMB2I
참조2 : https://cheese10yun.github.io/lombok/
- 자바 컴파일 시점에서 특정 어노테이션으로 해당 코드를 추가할 수 있는 라이브러리
-> 자바의 Getter, Setter와 같은 변형이 거의 없고, 여러 위치에서 반복되는 코드 섹션(보일러플레이트==상용구 코드)의 작성이 줄어들어서 코드의 생산성과 가독성이 향상됨.
- Data class(VO, DTO, Model, Entity등)에서 주로 사용
- pom.xml파일에 의존성을 설정하거나 build.gradle에 설정하거나 spring starter에서 설정하면 사용할 수 있다.
- 주요 annotatioin
- NoArgConstructor : 인자값이 없는 생성자 생성
- AllArgConstructor : 모든 필드값을 인자값으로 갖는 생성자 생성
- Getter, Setter : VO나 DTO에서 작성하던 getter, setter 코드 대체
- setter는 객체의 값을 변경할 수 있으므로 남용 자제
- ToString : toString 메소드 자동 생성 및 exclude속성을 사용하여 특정필드를 toString에서 제외시킴
- RequiredArgsConstructor : 필드 값 중 final이나 @NotNull인 값을 갖는 생성자 생성
- Data : Getter, Setter, RequiredArgsConstructor, ToString등의 모든 기능들을 한번에 추가 함. 불필요한 메소드가 추가될 수 있으므로 신중히 사용할 것
- Builder : 메서드와 생성자에만 사용. builder pattern을 쉽게 만들 수 있다.
- intelliJ를 사용한다면, Refactor > Delombok > All lombok annotation 클릭 시 annotation이 사라지고 같은 기능을 하는 코드가 생김