워밍업 클럽 4기 백엔드 - Layered Architecture

💻 Presentation Layer

1. 특징
요청 수신과 응답 반환을 담당하는 계층.
입력값의 유효성 검증을 책임지는 위치.

2. 테스트 방법
컨트롤러만 로드하는 @WebMvcTest 활용.
서비스 계층은 @MockBean으로 대체한 의존성 주입.
MockMvc를 사용한 API 호출 시뮬레이션과 응답 구조 검증.
DTO에 적용된 validation 로직에 대한 테스트 포함.


Business Layer

1. 특징
도메인 중심의 핵심 로직을 포함하는 계층.
트랜잭션 처리와 비즈니스 흐름 제어를 담당하는 위치.

2. 테스트 방법
의존성을 모킹하여 단위 테스트로 분리한 로직 검증.
@SpringBootTest를 통한 흐름 전체 테스트.
트랜잭션 경계 설정을 위한 @Transactional 적용.
예외 처리 및 동시성 상황에 대한 케이스 분리.


🛢 Persistence Layer

1. 특징
데이터 저장소와 직접 통신하는 계층.
Spring Data JPA 기반의 쿼리 메서드 정의와 실행 위치.

2. 테스트 방법
@DataJpaTest를 활용한 Repository 단위 테스트.
H2 같은 인메모리 데이터베이스 기반의 독립 환경 구성.
직접 작성한 쿼리에 대한 기능별 테스트 작성.


(Practical Testing: 실용적인 테스트 가이드)

댓글을 작성해보세요.

채널톡 아이콘