워밍업 클럽 4기 BE - Day16 미션
2개월 전
Layered Architecture 구조의 레이어 별 특징
Presentation Layer
사용자와 직접 상호작용하는 계층이다.
요청을 수신하고, 처리 결과를 응답한다.
스프링은 MVC 아키텍처를 사용하여 해당 계층을 구현한다.
Business Layer
실제 서비스의 핵심 비지니스 로직을 처리하는 계층이다.
트랜잭션 처리를 담당한다.
Persistence Layer
데이터를 조회 및 저장하는 계층이다.
보통 데이터베이스에 접근하여 여러 작업을 수행한다.
Layered Architecture 구조의 레이어 별 테스트 방법 (with Spring)
Presentation Layer
Spring의 @WebMvcTest 기능을 통해 해당 계층의 빈만 컨테이너에 등록하여 테스트를 진행한다.
해당 계층과의 의존 관계(불필요한 관심사)는 모킹 처리하여 계층 테스트의 독립성을 보장해야 한다.
Business Layer
핵심 로직이 Persistence Layer와 강하게 연관되어 있다면, 두 계층을 묶어서 통합 테스트로 진행한다.
그렇지 않다면, Mockito를 이용해 의존하는 Repository나 외부 서비스들을 Mock 처리한다.
Persistence Layer
JPA를 사용하고 있다면, @DataJpaTest 기능을 통해 해당 계층의 빈만 컨테이너에 등록하여 테스트를 진행한다.
저장소의 CRUD 동작을 확인하는것이 목적이기에 프로덕션이 아닌 테스트 전용 저장소를 사용해야 한다.
(보통 인메모리 데이터베이스를 활용한다.)
댓글을 작성해보세요.