data.sql 은 Spring Boot 를 실행할 때 자동으로 실행되는 SQL 파일이다. 주로 애플리케이션을 실행할 때 데이터베이스에 기본 데이터를 삽입하거나 테스트 데이터를 설정하는데 사용된다. 이 파일은 src/main/resources 디렉토리에 위치한다.
data.sql 의 장점
- 자동 데이터삽입 : data.sql을 활용하면 애플리케이션 실행 시 data.sql 이 자동으로 실행해 별도로 데이터를 삽입할 필요 없이 자동으로 데이터베이스 초기화가 이루어진다. 이를 통해 개발 초기 상태를 쉽게 만들 수 있다.
- 테스트 데이터 관리 : 개발 및 테스트 환경에서 반복적으로 사용할 데이터베이스 초기 데이터를 관리할 수 있다. 실행마다 동일한 데이터를 쉽게 삽입하기 때문에 데이터베이스의 일관성을 유지할 수 있다.
- 간편한 데이터 삽입 : SQL문을 직접 작성할 수 있기 때문에 직관적이고 빠르다.
비슷한 테스트 데이터 삽입 방법으로 TestDataRunner가 있다. TestDataRunner 의 차이점은 다음과 같다.
구분 | data.sql | TestDataRunner |
실행 시점 | 애플리케이션 시작 시 자동 실행 | 테스트 실행 전, 후에 수동으로 실행 |
실행 방식 | SQL 쿼리 직접 작성 | Java 코드로 데이터 삽입 |
데이터베이스 독립성 | 데이터베이스에 의존적인 SQL 문 작성 | Spring 환경에 맞춰 동적으로 데이터 삽입 가능 |
data.sql 을 사용하기위해서 application.properties 를 설정해 주어야 한다.
spring.datasource.initialization-mode=always
spring.datasource.initialization-mode: 데이터베이스 초기화 모드를 설정합니다. always로 설정하면 애플리케이션 시작 시 data.sql을 실행하게 됩니다.
이는 스키마가 이미 존재할 때 사용해야 한다. 스키마 도 새로 설정해야한다면 스키마 설정과 데이터도 추가해 줘야한다. 나는 스키마는 있었으므로 데이터만 추가했었다.
'TIL' 카테고리의 다른 글
Spring Security의 @AuthenticationPrincipal 이해하기 (0) | 2025.02.25 |
---|---|
restdocs (0) | 2025.02.20 |
n+1을 해결하는 여러가지 방식의 장단점 (0) | 2025.02.19 |
Github Project & Issue (0) | 2025.02.13 |
MSA는 필수적일까? (0) | 2025.02.11 |