DTO (Data Transfer Object)
- 주로 presentation ↔ application 사이에서 사용
- 클라이언트 요청/응답을 위해 필요한 데이터만 묶거나 가공하는 객체
- 도메인 엔티티를 그대로 노출하지 않기 위한 목적이 큼
Projection
- 주로 infra에서 JPA 쿼리 최적화를 위해 사용
- 특정 화면/목록에서 필요한 컬럼만 조회하기 위한 DB 관점의 뷰
- Repository 레벨에서 “이 화면에서 이 컬럼들만 가져오자”는 용도로 설계
Read Model
- 특정 화면·유즈케이스를 위해 여러 도메인의 데이터를 합쳐 둔 읽기 전용 도메인 모델
- Projection이 “DB 조회 결과 한 줄”이라면,
Read Model은 “비즈니스적으로 의미 있는 읽기 모델”에 가깝다고 느꼈습니다