- 우선 entity는 req, res에 쓰면안됨.
- DB와 맞닿아 있으므로 테이블과 연결된 이 클래스를 변경하는 것은 너무 큰 변경.
- 뷰를 위한 클래스는 DTO, 얘를 변경해야함.
- 즉, Entity와 Dto는 반드시 분리할 것.
service layer의 경우 business logic을 담는 곳이 아님.
Entity와 Repository는 세트이므로 함께할 것.
Service Layer 관련 좋은 글.
객체지향적으로 개발하기
백엔드 서버 아키텍처 - Domain Layer1. Domain Layer와 DDD
Dao Vs Repository
- DAO는 퍼시스턴스 레이어와 도메인 레이어의 명확한 분리를 위해 만들어졌음.
- 퍼시스턴스 로직을 캡슐화 하고 도메인 레이어에 객체지향적인 인터페이스를 제공하는 객체
- Repository는 DDD의 기본 빌딩 블록중 하나.
- AGGREGATE별로 하나의 REPOSITORY를 사용한다.
- Order와 OrderLineItem이 하나의 불변식을 공유하는 단위이고, OrderLineItem의 생명 주기가 Order에 종속된다면 OrderRepository를 사용해서 모든 Order와 OrderLineItem 컬렉션을 관리.
- DAO는 트랜잭션 스크립트 패턴, REPOSITORY는 도메인 모델 패턴과 함께 사용.
DAO와 REPOSITORY 논쟁
VO