kongkong.note
[도메인 주도 개발 시작하기] 6. 응용 서비스와 표현 영역 본문
사용자 → 표현 영역(Controller) → 응용 영역(Service) → 도메인 영역
6.2 응용 서비스의 역할
응용 서비스의 주요 역할 : 도메인 객체를 사용해서 사용자의 요청을 처리
도메인의 상태 변경을 트랜잭션(@Transaction)으로 처리해야 한다. 트랜잭션 범위에서 응용 서비스를 실행해야 한다.
응용 서비스는 도메인 로직을 구현하지 않는다.
도메인 로직은 도메인 영역에 모아서 코드 중복을 줄이고 응집도를 높여야 한다.
6.3 응용 서비스의 구현
응용 서비스는 표현 영역 <-> 도메인 영역을 연결하는 매개체 역할. 응용 서비스 자체는 복잡한 로직을 수행하지 않는다.
한 도메인과 관련된 기능을 한 클래스에 위치 :
장점 ) 코드 중복 제거 용이
단점 ) 한 서비스 클래스의 크기가 커짐
한 도메인과 관련된 기능을 구분하여 여러 클래스에 위치 : 한 클래스에 1~3개 기능 구현
요청 파라미터가 두개 이상 존재하면 데이터 전달을 위한 별도 클래스를 사용하는 것이 편리
응용 서비스는 표현 영역에서 필요한 데이터만 리턴하는 것이 응집도 높이는 방법
표현 영역과 관련된 타입(HttpSession, HttpServletRequest...)은 사용하지 않는다.
트랜잭션 활용 중요
6.4 표현 영역
표현 영역의 책임 : 사용자에 화면 제공 및 제어, 응용 서비스에 사용자의 요청 전달 및 결과 제공, 세션 관리
6.5 값 검증
표현 영역 : 필수 값, 값의 형식, 범위 등
응용 영역 : 데이터 존재 유무와 같은 논리적 오류
'DDD' 카테고리의 다른 글
| [도메인 주도 개발 시작하기] 8. 애그리거트 트랜잭션 관리 (0) | 2026.01.05 |
|---|---|
| [도메인 주도 개발 시작하기] 7. 도메인 서비스 (0) | 2026.01.04 |
| [도메인 주도 개발 시작하기] 5. 스프링 데이터 JPA를 이용한 조회 기능 (0) | 2025.12.25 |
| [도메인 주도 개발 시작하기] 4. 리포지터리와 모델 구현 (0) | 2025.12.25 |
| [도메인 주도 개발 시작하기] 3. 애그리거트 (0) | 2025.12.21 |