DTO , VO, Builder Pattern
DTO (Data Transfer Object)
주로 계층 간 데이터를 전송하기 위한 객체입니다. 필드는 대부분
public
으로 선언되며, getter/setter를 통해 외부와의 데이터 교환이 목적입니다. 비즈니스 로직은 포함하지 않는 것이 일반적입니다.예: API 전송, DB에서 조회한 데이터 등
일반적으로 가변(mutable)하며, 직렬화에 용이한 구조로 설계됩니다.
VO (Value Object)
값 그 자체를 표현하는 객체로, 불변(immutable) 성을 가지는 것이 원칙입니다. 동일한 값을 가지면 같은 객체로 간주되며, equals/hashCode를 오버라이딩하여 비교에 사용됩니다.
생성 시 값이 고정되며, setter 없이 생성자만으로 설정합니다.
단, 실제 협업시에는 VO와 DTO를 혼동하여 사용하는 경우가 대부분이라 이 원칙이 절대적으로 지켜지는 경우는 흔치 않습니다.
Builder Pattern
Builder 패턴은 복잡한 객체의 생성 과정을 단계별로 분리하여, 유연하고 가독성 높은 방식으로 객체를 생성하는 디자인 패턴입니다.
생성자로는 처리하기 어려운 다양한 선택적 매개변수를 다룰 때 유용합니다.
내부적으로는 정적 내부 클래스를 사용하여 외부 객체를 생성합니다.
롬복에서 제공하는
@Builder
으로 손쉽게 빌더패턴 구현이 가능합니다.
Last updated