[VO, DTO, Domain, Entity]

hamonjamon·2022년 7월 8일
0
post-thumbnail

[VO : Value Object]

  • 값 그 자체를 표현하는 객체이다.
  • 해당 클래스 내 로직을 포함할 수 있으며, 불변성(객체의 정보가 변경되지않음)이 보장되어야 한다.
  • 객체의 속성 값이 같은 경우, 두 인스턴스틑 같은 객체라고 판단되어야 하기에 equals(), hashcode()를 오버라이딩하는 것이 핵심이다.

[DTO : Data Transfer Object]

  • 계층 간 데이터 교환을 위해 사용되는 전송 객체
  • 기능 구현에 쓰일 필요한 속성들만 추려 사용해야 하는 경우에 쓰인다.
  • 데이터를 담고, 꺼내는 getter/setter 메서드만 갖는다.

[Entity]

  • 실제 DB 테이블과 매핑되는 객체이다.
  • 해당 클래스는 상속받거나 구현체에 속해서는 안된다.

| 정리

  • VO : 값을 갖는 순수한 도메인
  • DTO : 계층 간 데이터 이동을 위해 사용되는 객체
  • Entity : DB 테이블과 매핑되는 객체

0개의 댓글