Spring Boot

    [Spring] Spring WebMvcTest 작성법

    [Spring] Spring WebMvcTest 작성법

    개요 Spring Boot의 WebMvcTest를 이용한 단위테스트를 작성하면서 헤매었던 부분들을 기록해보고자 합니다. 내용 1. API요청 방식에 따른 테스트 작성 방법 PathVariable ( 주소에 데이터를 입력 받는 방식 ) - 주로 @GetMapping 에서 사용되는 Path에 요청 값을 받는 방식입니다. 위처럼 PathVariable 방식의 입력이 있을 때에는 RestDocumentationRequestBuilders 를 추가해준뒤 actions을 작성해 주어야 합니다. RequestParam ( Param을 이용해서 입력을 받는 방식 ) - 적은 수( 1개 ~ 2개 정도? )의 데이터를 받을 때에 주로 사용하고 있는 RequestParam 방식입니다. 이전의 PathVariable 때의 R..

    [Spring] data.sql으로 입력된 데이터 9시간 차이 문제

    문제 발생 시간의 범위를 이용해서 데이터를 조회하는 기능을 만드는 도중에 문제점을 발견, 테스트가 실행 될 때에 입력되는 data.sql를 통해서 입력되는 데이터의 시간이 내가 입력한 값과는 다르게 9시간 이후의 시간으로 입력되는 것을 확인했습니다. 예를 들어 `2022-01-01T23:00:00` 으로 입력을 했다면 실제 DB에는 `2022-01-02T08:00:00` 의 시간으로 데이터가 입력되어 있던 상황이었습니다. 해결 과정 처음에는 시간이 이상하게 입력되었다는 사실만을 보았지만, 시간들을 살펴보니 일관성 있게 9시간의 시차가 존재하는 것을 발견 했습니다. 그래서 'Spring Boot mysql 9시간 시차' 같은 키워드로 검색을 해보았고, 간단한 해결 방법을 찾게 되었습니다. Spring Bo..

    [Spring] Spring Boot data.sql 적용 안됨 문제

    문제 발생 테스트 코드를 작성하며 테스트를 진행하고 있는데 여러개의 조회나, 조건을 이용한 조회를 이용할 때에 사용하기 위한 데이터를 먼저 넣어 놓으려고 data.sql 파일을 작성을 했지만, data.sql의 쿼리들이 실행되지 않는 문제가 발생하였습니다. 해결 과정 구글에 'Spring Boot data.sql not working' 을 검색해보니 저와 유사한 문제가 일어난 사람들이 많았습니다. 주된 답변으로는 Spring Boot 2.5x 버전 부터는 `spring.jpa.defer-datasource-initialization: true` 가 필요하다는 것 이었습니다. 저는 해당 코드를 추가했고, 그래도 여전히 data.sql은 실행되지 않고 있었습니다. 그래서 더 찾아보니 다른 답변 중에는 `sp..