# 목적
: Lombok의 주요 어노테이션과 Builder 패턴에 대한 이해
❓ Lombok
- 자바빈즈(JavaBeans, 값을 저장하는 객체)에 Getter/Setter, 생성자, toString, equals/hashcode 등의 메서드를 자동으로 생성시킨다.
롬복의 주요 어노테이션
1. @Getter
2. @Setter
3. @ToString
4. @EqualsAndHashCode
- equals 메서드와 hashCode 메서드 추가
5. @Data
- 기본 생성자 메서드, Getter/Setter, equals/hashCode, toString 메서드 추가
6. @NoArgsConstructor
7. @AllArgsConstructor
- 모든 매개변수를 초기화하는 생성자 메서드 추가
8. @RequiredArgsConstructor
- final 키워드가 지정된 멤버변수를 매개변수로 가지는 생성자 메서드 추가
9. @Builder
- 해당 클래스에 Builder 패턴을 적용시킨다.
- 클래스에 부착하면 모든 멤버변수를 대상으로 Builder 패턴을 적용하고, 생성자에 부착하면 생성자의 매개변수에 대해서만 Builder 패턴을 적용한다.
* Builder 패턴
- 객체를 생성하는 방법
- 해당 클래스에 대한 빌드 클래스를 정적 내부 클래스로 제공한다.
- Builder 클래스가 제공하는 메서드를 이용해서 멤버변수를 초기화한다.
- 멤버변수를 초기화할 때 사용하는 메소드가 멤버변수의 이름과 동일하기 때문에 가독성이 높다.
- 다양한 조합으로 멤버변수를 초기화하는 것이 가능하다.
- Builder 클래스가 제공하는 메서드는 메서드 체이닝을 지원한다.
* Builder패턴의 메서드 체이닝