test 코드
test/java 밑에는 test코드를 만들어서 실행하는데, 이 때 test코드의 실행 순서는 랜덤이다.
따라서 일부 테스트가 db 데이터의 영향으로 제대로 실행되지 않을 수 있다.
이 현상을 해결하기 위해 아래 코드를 삽입해준다.
@AfterEach //테스트가 끝날 때마다 db데이터를 삭제해줌
public void afterEach() {
repository.clearStore();
}
위 코드는 테스트 메서드가 하나가 끝날 때마다 db 데이터를 삭제해준다.
어노테이션
@Controller, @Service와 같은 어노테이션은 스프링 빈에 자동으로 등록해주는 것이고,
@Autowired는 스프링 컨테이너에 대입해서 바로 사용할 수 있게 하는 어노테이션이다.
MVC 패턴의 호출 경로
view <-> controller <-> service <-> (dao) <-> repository(mapper) <-> domain(dto) <-> db
Spring MVC 패턴의 일반적인 호출경로는 위와같다. (dao)는 생략이 가능하고,
repository 옆 mapper와 domain 옆 dto는 내가 배웠던 웹프로그래밍 수업에서 사용한 클래스들인데, 서로 비슷한 기능을 하기 때문에 적어두었다.
- controller : 사용자의 요청 처리
- service : 컨트롤러의 요청을 처리하기 위해 받는 클래스, 알맞은 정보를 가공하여 컨트롤러에 전달
- repository : db에 접근하는 클래스
'Back-end > spring frameworks' 카테고리의 다른 글
| 컴포넌트 스캔 (0) | 2023.11.19 |
|---|---|
| 싱글톤 (0) | 2023.11.19 |
| 스프링 컨테이너와 빈 (0) | 2023.11.19 |
| 좋은 객체 지향 설계의 5가지 원칙(SOLID) (0) | 2023.11.19 |
| 스프링 웹개발 방법(컨트롤러의 view 호출 방법) (0) | 2023.09.26 |