일반적인 웹 애플리케이션 계층 구조
- 컨트롤러 : MVC에서 컨트롤러 역할
- 서비스 : 핵심 로직, 알고리즘을 구현하는 곳
- 리포지토리 : DB에 접근, 도메인 객체를 DB에 저장하고 관리
- 도메인 : 비즈니스 도메인 객체, DB에 저장될 객체들, 회원이나 주문 등
컨트롤러 -> 서비스 -> 레포지토리 -> DB 순으로 접근
컨트롤러, 서비스, 레포지토리에서 도메인으로 접근 가능
생성한 예제 클래스들, 기본적인 구조
- 컨트롤러, 리포지토리, 서비스, 도메인 객체 생성
테스트 코드 작성
- 간단한 테스트 코드 작성
- assertThat() 이용해서 비교
- given, when, then으로 나누어서 작성해줄 수 있음
- 테스트 코드를 여러 개 작성 시 @AfterEach의 콜백 함수를 써줘야 함
- 테스트 코드들은 기본적으로 의존 관계없이 실행되어야 함, 순서가 없음
- 그렇기에 하나의 테스트가 끝날 때마다 메모리를 클리어해야 함
- 리포지토리 클래스에서 clear메소드를 생성해주고, 테스트 코드에 받아와서 실행
테스트 코드 하나 실행 -> @AfterEach 메소드 실행(메모리를 클리어해 줌)
===> 이 과정을 테스트 코드를 모두 돌릴 때까지 실행
이곳에 작성한 내용은 인프런에서 서비스하는 강의 중 김영한님의 스프링 강의를 정리하고 저의 언어로 기억하고 싶은 것을 정리한 내용입니다. 아래에 출처를 남겨두겠습니다.
https://www.inflearn.com/roadmaps/373
'Spring' 카테고리의 다른 글
[Spring] 스프링 AOP 개념, 실행 과정(프록시 생성, 의존관계 변경) (0) | 2022.01.20 |
---|---|
[Spring] 스프링 DB 접근 및 테스트, JPA (데이터베이스, 테스트코드, JPA, 스프링 데이터 JPA) (0) | 2022.01.20 |
[Spring] 스프링 빈과 의존관계 (스프링 빈에 등록하는 방법, 컴포넌트 스캔, 자바 코드) (0) | 2022.01.18 |
[Spring] 스프링 웹 개발의 기본 동작 원리, 개발방법 (정적, MVC, API) (0) | 2022.01.16 |