DTO & Domain Model

황승현·2023년 12월 18일
0

스프링 강의 정리

목록 보기
4/8

DTO & Domain Model

Layer 사이의 인터페이스를 의미

DTO (Data Transfer Object)

  • 데이터를 전송하기 위해 사용하는 객체

    • 비즈니스 로직 같은 복잡한 코드는 없고 순수하게 전달하고 싶은 데이터만 담겨있다. ※ 코틀린의 데이터 클래스 같은 느낌
  • Application 내에서 각 Layer 사이의 데이터를 전달하는데 사용

  • 요청(Request)과 응답(Response) 또한 DTO로 표현 가능

Domain Model

  • Domain Model은 Domain Service, Entity, VO(Value Object)를 포함하는 개념

  • Domain Service

  • Entity

    • Database에 저장될 수 있는 Data를 표현하는 객체로, table과 대응
    • Entity의 Instance는 Table의 한 Row와 대응
    • VO(Value Object)를 프로퍼티로 가진다.
  • VO(Value Object)

    • 단순히 값을 표현하는 객체 (저장하는 객체)
    • Entity와 Lifecycle을 함께 수행
    • Entity가 갖고 있는 프로퍼티 중 하나

🤔 DTO와 Domain Model로 나눠서 사용하는 이유가 뭘까?

그건 바로 캡슐화를 하기 위해서(Encapsulate)이다.
비즈니스 로직은 민감하고 중요한 정보가 많기 때문에, 상위 레이어에 비즈니스 로직을 노출하지 않고 하위 레이어에서 다루기 위해서 DTODomain Model로 나눠서 사용한다.

0개의 댓글