Layered Application Boundary

원문은 View·Controller·Service·Domain의 책임을 나누는 MVC + Service 패턴을 제시하고, Service 도입 장점으로 Controller 단순화, Service 단독 테스트, 다른 Controller에서의 재사용을 든다.[1] 이 page는 레이어드 구조를 호출 순서 자체보다 각 책임이 어느 경계에 남아야 하는지를 정하는 규율로 보고, 이 분리로 사용자 인터페이스와 핵심 규칙이 서로의 변경을 덜 끌고 간다고 해석한다.

책임 배치

레이어 맡는 일 경계 밖으로 밀어낼 일
View 사용자 입출력 비즈니스 규칙·도메인 검증
Controller 흐름 조율과 오류 처리 진입점 도메인 계산 직접 수행
Service use case 조합 UI 코드
Domain 핵심 규칙과 불변식 외부 I/O 의존

이 책임표는 원문이 제시한 레이어별 역할과 금지 사항을 재구성한 것이다.[1:1]

처리와 예외의 흐름

flowchart LR
    V[View: 입력·출력] --> C[Controller: 흐름]
    C --> S[Service: 조합]
    S --> D[Domain: 규칙·불변식]
    D -->|domain exception| C
    C -->|오류 표시·재입력 유도| V

경계가 무너지는 신호

관련

출처


  1. 레이어드 아키텍처 — View·Controller·Service·Domain의 책임표, 파싱 순서, 예외 처리 위치와 Service 도입 이유를 제시한다. "MVC + Service 패턴 — 각 레이어의 책임 분리"(L10), "Service 도입 시 장점: ... Controller 단순화 ... Service 단독 테스트 가능 ... 동일 Service를 다른 Controller에서 재사용 가능"(L151-L154) ↩︎ ↩︎ ↩︎ ↩︎ ↩︎