본문 바로가기
Projects/SNS프로젝트

@Builder를 써야하는 이유

by 젊은오리 2022. 1. 15.
728x90

 

필요한 데이터로 바로 객체를 만들 수 있다.

정적 메소드의 경우(생성자) 예를들어서 age라는 파라미터가 필요없는 상황이라고 가정했을 때 우리는 age가 없는 생성자를 따로 만들어줘야 한다. 하지만 Builder의 경우 이를 동적으로 처리 가능하다.

정적 메소드
빌더패턴

 

진행하는 프로젝트에서는 회원가입을 할 때 dto클래스 내부에 받은 정보만으로 User객체를 build하는 메서드를 아래와 같이 미리 만들어 놓았기 때문에, 실제로 controller에서 signupDto의 toEntity()메서드를 활용해서 바로 user를 DB에 저장할 수 있었다.

@Data
public class SignupDto {
   @Size(min=2,max=20)
   @NotBlank
   private String username;
   @NotBlank
   private String password;
   @NotBlank
   private String email;
   @NotBlank
   private String name;
   
   public User toEntity() {
      return User.builder()
            .username(username)
            .password(password)
            .email(email)
            .name(name)
            .build();
   }
}

 

728x90

댓글