워밍업 클럽 4기 BE - Day16 미션

  1. Layered Architecture 구조의 레이어 별 특징

    • Presentation Layer

      • 사용자와 직접 상호작용하는 계층이다.

      • 요청을 수신하고, 처리 결과를 응답한다.

      • 스프링은 MVC 아키텍처를 사용하여 해당 계층을 구현한다.

    • Business Layer

      • 실제 서비스의 핵심 비지니스 로직을 처리하는 계층이다.

         

      • 트랜잭션 처리를 담당한다.

    • Persistence Layer

      • 데이터를 조회 및 저장하는 계층이다.

      • 보통 데이터베이스에 접근하여 여러 작업을 수행한다.

     

  2. Layered Architecture 구조의 레이어 별 테스트 방법 (with Spring)

    • Presentation Layer

      • Spring의 @WebMvcTest 기능을 통해 해당 계층의 빈만 컨테이너에 등록하여 테스트를 진행한다.

      • 해당 계층과의 의존 관계(불필요한 관심사)는 모킹 처리하여 계층 테스트의 독립성을 보장해야 한다.

    • Business Layer

      • 핵심 로직이 Persistence Layer와 강하게 연관되어 있다면, 두 계층을 묶어서 통합 테스트로 진행한다.

      • 그렇지 않다면, Mockito를 이용해 의존하는 Repository나 외부 서비스들을 Mock 처리한다.

    • Persistence Layer

      • JPA를 사용하고 있다면, @DataJpaTest 기능을 통해 해당 계층의 빈만 컨테이너에 등록하여 테스트를 진행한다.

      • 저장소의 CRUD 동작을 확인하는것이 목적이기에 프로덕션이 아닌 테스트 전용 저장소를 사용해야 한다.
        (보통 인메모리 데이터베이스를 활용한다.)

댓글을 작성해보세요.

채널톡 아이콘