반응형

Spring Boot 4

[Spring] @SpringBootTest의 webEnvironment와 @Transactional

우리는 @SpringBootTest 어노테이션을 이용하여 손쉽게 통합테스트를 진행할 수 있다. 하지만 @SpringBootTest의 webEnvironment 설정에 따라 테스트 격리가 잘 되지 않는 현상을 발견할 수 있다. 왜 그런 것일까? @SpringBootTest의 webEnvironment @SpringBootTest를 파고 들어가면 아래와 같이 webEnvironment 세팅을 볼 수 있다. 기본값은 MOCK이다. WebApplicationContext를 로드하지만, 내장된 서블릿 컨테이너가 아닌 MOCK 서블릿을 제공한다. 실제 서블릿 환경에서 테스트를 진행해보고 싶다면 RANDOM_PORT나 DEFINED_PORT로 진행해주어야 한다. RANDOM_PORT랑 DEFINED_PORT는 위 사..

[SQL][TDD] ERROR 1146 (42S02): Table doesn't exist 해결

로그인 구현을 위해 해시함수를 구현하여 encrypt를 해주는 Salt 기능을 만들기 위해 테스트를 하던 중 [SQL] ERROR 1146 (42S02): Table doesn't exist 에러가 발생했다. 그 이유는 아래 Salt Entity가 존재하는데, Salt 테이블이 만들어지지 않기 때문이다. @Entity @Getter @Setter public class Salt { @Id @GeneratedValue private Long id; @NotNull private String salt; public Salt() {} public Salt(String salt) { this.salt = salt; } } 참고로 이 Salt Entity는 Member Entity와 1:1 연관관계 매핑이 돼있는..

[Spring] CRUD 기능 실습 중 @DeleteMapping 관련 에러

저번에 포스팅한 CRUD 실습을 이어하던 중, @DeleteMapping으로 삭제하려던 중 아래 사진과 같은 에러가 발생하였다. This application has no explicit mapping for /error, so you are seeing this as a fallback. 1. 패키지 관계? 만약 스프링부트를 처음 실행했을 때 이 에러가 발생한다면 (또는 컨트롤러 메소드가 아무것도 실행이 안된다면) 위 에러는 보통 스프링부트 메인 클래스가 Controller, Service 등 스프링 빈들이 위치하고 있는 패키지의 상위 패키지에 없을 때 발생하는 에러라고 한다. 그러나 나는 @GetMapping은 실행이 잘되는 상황이기도 하고, 패키지 구조관계도 멀쩡했기 때문에 위와 같은 이유는 아니었..

lombok은 진짜 신세계다...

@Getter @Setter로 Getter setter method를 안만들어도 되는 기능은 알고 있었지만, 이번에 인강을 들으면서 @RequiredArgsConstructor 어노테이션으로 자동으로 스프링 빈 등록된 거에서 의존자동주입시키는 기능이 진짜... lombok dependency가 있으면 일일이 autowired 안쳐줘도 되고... 필드들이 알아서 생성자주입 돼서 너무 편리하고 좋다. 마치 Bean을 componentscan으로 자동으로 알아서 찾아주는 기능을 공부했을 때 느낀 감정과 유사하다. lombok Dependency Gradle에 적용하기 인프런 김영한의 스프링 핵심 원리 강좌 교안 중 일부 내용입니다. //lombok 설정 추가 시작 configurations { compileO..

JAVA/Spring_Core 2021.03.22
반응형