🔔 lombok 라이브러리를 사용하는 이유
Getter, Setter, Constructor 등을 자동으로 생성해준다. 그러나 무한루프에 빠지거나 불필요한 getter 및 setter도 포함하기 때문에 사용하지 않는 경우도 있다.
■ @Getter, @Setter
getter, setter 생성한다.
Entity 클래스 내에서는 Setter를 만들지 않도록 조심해야 한다.
■ @ToString
ToString 메소드를 생성한다.
■ @EqualsAndHashCode
hashCode, equals를 구현한다.
■ @RequiredArgsConstructor
final, @NonNull이 있는 필드가 포함된 생성자를 구현한다.
■ @Data
getter, setter, toString, EqualsAndHashCode, RequiredArgsConstructor 을 모두 생성한다.
■ @NoArgsConstructor
매개변수가 없는 생성자를 구현한다.
■ @AllArgsConstructor
모든 필드를 매개변수로 갖는 생성자를 구현한다.
■ @Builder
해당 클래스에 빌드 패턴을 적용한 클래스를 생성해준다. 생성자 상단에 선언 시 생성자에 포함된 필드만 빌더에 포함된다. 생성자나 빌더나 생성 시점에 값을 채워준다. 그러나 생성자는 지금 채워야 하는 필드가 무엇인지 정확히 지정할 수 없는 반면에 빌더는 어느 필드에 어떤 값을 채워야 할 지 명확히 인지할 수 있다.