개발환경 -> application-dev.yml / embedded 모드로 데이터베이스 설정
테스트환경 -> application-test.yml / mem 모드로 데이터베이스 설정.
통합 -> application.yml / 두 파일의 공통 코드를 해당 파일에서 설정.
1. application.yml 설정.
spring:
profiles:
active: dev -> 따로 에너테이션으로 설정하지 않을시 기본적으로 application-{profiles}.yml 을 불러옴.
여기선 profiles를 dev로 설정하였다.
jpa:
show-sql: true -> sql을 보여준다.
database-platform: org.hibernate,dialect.H2Dialect -> h2데이터베이스의 플랫폼 설정.
hibernate:
ddl-auto: update -> 어플리케이션 실행 시 자동으로 테이블을 업데이트 해주는 기능.
h2:
console:
enabled: true -> 콘솔(브라우저)에서 h2데이터베이스에 접근할 수 있도록 하는 기능.
path: /h2-console -> 콘솔(브라우저)에서 localhost:8080/h2-console 으로 h2 접근 가능.
2. application-dev.yml 설정.
spring:
datasource:
url: jdbc:h2:~/reproject
driver-class-name: org.h2.driver
username: sa
password: 1
3. application-test.yml 설정.
spring:
datasource:
url: jdbc:h2:mem:testdb -> mem방식의 데이터베이스 사용
driver-class-name: org.h2.driver
username: sa
password:
jpa:
hibernate:
ddl-auto: create-drop -> 어플리케이션 종료 시 데이터값 삭제.
스프링은 작동 시 기본적으로 application.yml 파일을 확인 후 해당 설정을 적용하고 클래스에서 에너테이션을 확인 후 application-{profiles}.yml 에서 profiles에 따른 yml 파일을 덮어쓴다.
-test.yml 파일을 사용하려면 클래스에서 @ActiveProfiles("test")를 선언해야한다.
이제 작성한 엔티티와 레포지토리가 실제로 작동하는지 test파일을 만들어볼 것이다.