반응형
🤍 @AllArgsConstructor
모든 필드를 파라미터로 받는 생성자를 자동으로 생성합니다.
따라서, 모든 필드를 한 번에 초기화해야 합니다.
@AllArgsConstructor
public class SignupRequestDto {
private String name;
private LocalDate birth;
private String email;
private String firstAddress;
private String secondAddress;
private String password;
}
// 모든 필드를 한번에 초기화한 객체
SignupRequestDto dto = new SignupRequestDto("레이지캣", LocalDate.of(1990, 1, 1), "lazycat@example.com", "Address1", "Address2", "password123");
🤍@Builder
빌더 패턴을 사용하여 객체를 생성합니다.
1. 유연한 객체
생성객체 생성 시 모든 필드를 한 번에 제공하지 않아도 됩니다.
2. 필드 순서 무관
초기화할 필드 순서에 구애받지 않습니다
3. 가독성 향상
코드가 더 쉽게 읽힙니다
@Builder
public class SignupRequestDto {
private String name;
private LocalDate birth;
private String email;
private String firstAddress;
private String secondAddress;
private String password;
}
// 빌더 패턴을 이용하여 객체 생성
SignupRequestDto dto = SignupRequestDto.builder()
.name("lazycat")
.email("lazycat@example.com")
.password("password123")
.build();
🤍내 프로젝트에 적용
SignupRequestDto 클래스는 모든 필드가 클라이언트로부터 들어와야 합니다.
@builder 패턴을 적용한다면 선택적으로 필드 선택이 가능하기 때문에, 개발자가 일부 필드를 누락하거나 잘못 초기화할 수 있습니다.
데이터의 무결성을 위해 모든 필드를 명시적으로 초기화해야하는 @AllArgsConstructor를 사용합니다.
반응형
'Programming > Refactoring' 카테고리의 다른 글
JPA의 변경감지를 이용한 회원 수정 메소드 변경 (0) | 2024.12.12 |
---|---|
DTO와 엔티티의 역할, 비즈니스 로직의 위치 (0) | 2024.12.05 |