: 계층 간 데이터 전달 객체
: 값만 표현하는 객체 (읽기 전용, setter 없음)
: 데이터베이스의 실제 테이블과 매핑되는 객체
👉 Lombok은 반복 코드 제거 + 가독성 향상 목적
| 어노테이션 | 설명 | 예시 코드 |
|---|---|---|
@NoArgsConstructor | 기본(파라미터 없는) 생성자 생성 | new User() |
@AllArgsConstructor | 모든 필드를 매개변수로 받는 생성자 생성 | new User("id","pw") |
@RequiredArgsConstructor | final 또는 @NonNull 필드만 매개변수로 받는 생성자 | 의존성 주입 시 유용 |
@Getter | 모든 필드의 getter 메서드 자동 생성 | user.getId() |
@Setter | 모든 필드의 setter 메서드 자동 생성 | user.setId("new") |
@ToString | toString() 자동 생성 (주소값 대신 필드 값 반환) | System.out.println(user) |
@EqualsAndHashCode | equals(), hashCode() 자동 생성 | 컬렉션 비교/저장 시 유용 |
@Data | @Getter + @Setter + @ToString + @EqualsAndHashCode + @RequiredArgsConstructor 종합 패키지 | 가장 많이 씀 |
@Builder | 빌더 패턴 제공 → 객체 생성 시 가독성 ↑ | User.builder().id("id").pw("pw").build() |