[인프런워밍업클럽2기] DAY 15 미션
Mission
Layered Architecture 의 Layer 별 특징과 테스트 방법을 정리해보세요.
Layered Architecture
일반적으로 계층 구조 아키텍처는 3-Layered Architecture라고 해서 Presentation
, Business
, Persistence
3개의 레이어로 나누는 것이 일반적이다. 최근 DDD 바람이 불면서 Domain
레이어라고 4-Layered Architecture 바람이 불고 있는데 이는 논외로 하자.
Presentation Layer
외부 사용자와 통신을 담당하면서 Business Layer
로 요청을 전달하고, 응답을 사용자에게 반환하는 역할을 담당한다.
주로 외부 요청의 유효성 검증과 각 비즈니스 작업 결과를 사용자에게 정해진 포맷으로 내려주기 위한 포매팅 작업을 한다.
만약 테스트를 한다면 MockMvc를 사용한 단위테스트, 아니면 통합 테스트를 해볼 수 있을 것이다.
Business Layer
어플리케이션의 비즈니스 기능을 처리한다. 서비스가 제공하는 기능의 실질적인 처리를 담당하며 트랜잭션을 적용할 수 있다.
그렇기 때문에 비즈니스 레이어의 작업 단위를 관심과 책임에 맞게 적절하게 분리하는 것이 중요하다.
테스트를 진행한다면 Mockito를 사용해 단위 테스트를 진행할 수도 있고, 통합 테스트로 실제 DB 에서 조회해와서 처리하는 것을 확인할 수 있을 것이다.
Persistence Layer
데이터베이스 같은 저장 장치와 상호작용을 하는 부분이다. DAO, Repsitory라는 이름으로 불리기도 하였다. 이 계층에서는 비즈니스 로직이 들어가지 않도록 관리를 기울여야한다. 조회해온 정보를 비즈니스 레이어에 전달해주기 위해 가공처리를 하기도 한다.
테스트를 진행한다면 통합테스트를 진행한다. 영속성 계층을 단위테스트 한다면 비즈니스 레이어에 전달해주기 위한 가공처리를 테스트 할 수 있을 것이다.
댓글을 작성해보세요.