Spring 개발 시, DTO 객체에 Lombok @Builder
어노테이션을 사용하면 아래와 같이 체인 구조로 작성할 수 있다.
// @Data -> Builder 패턴 사용 시 @Data (Setter/Getter 등) 을 사용하지 않는 것이 좋다.
@Builder
public class Item {
private String itemName;
private String price;
private Integer venCd;
}
Item item = Item.builder()
.itemName("나이키")
.price("30000")
.venCd(10)
.build();
Setter
메소드를 이용한 JavaBeans 패턴
은 객체생성 이후에 데이터를 Set 하는 방식으로 immutable (불변)하지 않은 일관성이 깨지는 단점이 있다. ( Setter 1회 호출로 생성이 끝나지 않음 )Builder 패턴
은 객체를 생성할 때, 명시적으로 멤버변수의 데이터들을 대입할 수 있다. 즉, immutable한 방식으로 객체를 생성할 수 있음!Builder 패턴
사용 시 @Data
(Setter/Getter 등) 어노테이션을 사용하지 않는 것이 좋다.
-> 빌더 패턴의 의미가 없어짐
@Data
public class Item {
private String itemName;
private String price;
private Integer venCd;
}
Item item = new Item();
item.setItemName("나이키");
item.setPrice("30000");
item.setVenCd(10);
...
item.setItemName("아디다스"); // Setter 재호출 -> 일관성 X, immutable 불변하지 않음