주요 어노테이션 (3)
Lombok Annotation
- Lombok은 코드를 크게 줄여주어 가독성을 높힐 수 있도록 도와주는 라이브러리이다.
@Setter@Getter@ToString
- 각 필드의 getter, setter 메서드 코드 작성 없이 어노테이션 @Getter, @Setter을 추가해주면 필드별로
Getter()메소드와 Setter()메소드 자동으로 생성한다.
- @ToString또한 toString()메서드 코드 작성없이 어노테이션 @ToString을 추가해주면 자동으로 생성한다.
@AllArgsConstructor@NoArgsConstructor
- @AllArgsContructor은 풀 생성자(모든 필드 값을 파라미터로 받는 생성자)를 자동 생성해주며, .
- @NoArgsConstructor은 빈 생성자를 자동 생성한다.
@Builder
- 빌더 패턴은 생성 패턴 중 하나로, “인스턴스”를 만두는 절차를 “추상화”하는 패턴이다.
- 다수 필드를 가지는 복잡한 클래스일 경우 생성자 대신 빌더를 사용하는 경우가 많다! (이유 : 생성자의 매개변수 순서를 일일히 적어주는 것에 대해 생각보다 문제도 많이 발생하고 불편하기 때문 ⇒ 빌더를 사용하면 생성자의 매개변수가 몇번째인지 기억하지 않도 된다.)
- 하지만, 편리한 대신 빌더 패턴을 코드를 작성하려면 코딩량이 상당하다.
- 이러한 코딩량을 단번에 해결해주는 게 이 @Builder인데 이 어노테이션을 추가해주면 해당 클래스에 @Builder을 추가해준다.
@Data
- @Data는 위에서 @Getter, @Setter, @ToString 그리고 아직 보지 못했던, @RequiredArgsConstructor, @EqualsAndHashCode을 한꺼번에 설정(자동 생성)한다.