3계층 스프링부트 어플리케이션-1

두두두·2024년 8월 15일
0

3계층 구조

  • 클라이언트 계층
    : 사용자 인터페이스를 제공하는 계층 (보통 프론트엔드)
  • 애플리케이션 계층
    : 비즈니스 로직, 상호작용, 데이터 저장 인터페이스 포함 계층(보통 백엔드)
  • 데이터 저장 계층
    : 애플리케이션의 데이터를 저장하는 계층(DB, 파일시스템)

애플리케이션계층

  • 비즈니스 레이어
    : 개체와 비즈니스 로직을 제공하는 서비스의 조합
    실질적인 동작과 처리 담당
  • 프러젠테이션 레이어
    : 웹 애플리케이션에 기능 제공
  • 데이터 레이어
    : 데이터 액세스 객체(DAO), 저장소 클래스

SpringRunner, @SpringBootTest
: 애플리케이션 컨텍스트를 초기화하고 필요한 객체만 주입
, 테스트당 한 번만 로딩(컨텍스트 캐시싱)

But, 컨택스트를 재사용 하더라도 자원 낭비, 트랜잭션 롤백과 부작용 발생하지 않도록 컨텍스트 정리 필요

final 클래스
: 해당 클래스의모든 필드는 getter로만 접근 가능

  • 다중 스레드 환경에서 안전성 보장

롬복
: 컴파일러 동작 전에 애너테이션(@)을 기반으로 코드 생성
getter, 생성자, toString 등등 생략 가능

@RequiredArgsConsructor
: 모든 상수 필드를 갖는 생성자 만듦

@Getter
: 모든 필드의 getter 생성

@ToString
: toString() 메서드 생성

@EqualsAndHashCode
: equals(), hashCode() 메서드 생성

@WebMvcTest VS @SpringBootTest

  • @WebMvcTest: 컨트롤러 테스트 애너테이션
    , HTTP 요청, 응답을 목 객체 이용, 실제 연결 생성 X
    , 컨트롤러만 테스트
  • @SpringBootTest: 웹 애플리케이션 컨텍스트와 설정 모두 불러와 실제 웹 서버에 연결 시도
    , 통합테스트

0개의 댓글