스터디/Spring
[Spring Boot] 스프링 MVC 모델 레이어드 아키텍처
menuhwang
2022. 8. 19. 20:06
스프링 MVC 모델 레이어드 아키텍처

컴포넌트를 비슷한 관심사에 따라 레이어로 묶어 구성한 구조.
일반적으로 3계층 또는 4계층으로 구성.
레이어드 아키텍처 특징
가장 가까운 하위 레이어의 의존성을 주입.
다른 레이어의 역할을 침범하지 않음.
다른 레이어의 의존성을 낮춰 단위 테스트에 용이.
계층
프레젠테이션 계층
- 유저 인터페이스 계층이라고도 함.
- 클라이언트이 요청을 해석하고 응답.
- UI나 API를 제공.
- 비즈니스 로직을 포함하고 있지 않음.
- 비즈니스 계층으로 요청을 위임, 전달해주고 받은 결과를 응답.
비즈니스 계층
- 서비스 계층이라고도 함.
- 기능을 정의하고 세부 작업을 수행.
- 도메인 객체를 통해 업무를 위임.
- DDD (Domain-Driven Design) 개발 시 비즈니스 로직에 도메인이 포함되기도 하고, 별도로 도메인 계층을 두기도 함.
- 트랜잭션 처리나 유효성 검사 등의 작업도 수행.
데이터 접근 계층
- 영속(Persistence) 계층이라고도 함.
- 데이터베이스에 접근하는 작업 수행.
도메인 비즈니스 로직
질문 비즈니스 계층에 서비스를 배치해 엔티티와 같은 도메인 객체의 비즈니스 로직을 조합한다는데, 도메인 안에 비즈니스 로직 메서드를 넣어도 괜찮을까? 일반적으로 비즈니스 로직은 도
menuhwang.tistory.com