Context path ๋ณ๊ฒฝ
โ H2 ์ฝ์์ ์ ์ URL Context path๋ฅผ ์กฐ๊ธ ๋ ๊ฐ๊ฒฐํ๊ฒ /h2
๋ก ์ค์
JDBC URL ๋ณ๊ฒฝ
โ JDBC URL์ด ๋งค๋ฒ ๋๋คํ๊ฒ ๋ฐ๋์ง ์๋๋ก jdbc:h2:mem:test
๋ก ์ค์
spring: h2: console: enabled: true # ์ฌ๊ธฐ๊น์ง๋ง ํด๋ H2 Browser ์์ฑ๋จ path: /h2 # ์ถ๊ฐ - Context path ๋ณ๊ฒฝ datasource: # ์ถ๊ฐ url: jdbc:h2:mem:test # ์ถ๊ฐ - JDBC URL ๋ณ๊ฒฝ
โ ๊ธฐ๋ณธ ํฌํธ๋ฒํธ๋ 8080
server: port: 8081
โ ๋ก๊ทธ์ ์์ ์ ํ ๋ ๊ฐ๋ ์ฑ์๊ฒ ๋ณด๊ธฐ ๊ฐ๋ฅ
spring: output: ansi: enabled: always
โ schema.sql
ํ์ผ ์์ฑ ํ, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ
์ด๋ธ์ ์๋์ผ๋ก ์์ฑ
( SQL ๋ฌธ์ด ์ถ๊ฐ๋ โschemaโ๋ผ๋ ํ์ผ๋ช
์ผ๋ก .sql ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ์ง์ ํด์ฃผ๋ฉด,
src/main/resources/db/h2
๋๋ ํ ๋ฆฌ๋ด์ ์์นํ schema.sql
ํ์ผ์ ์๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ฝ์ด์ ์ ํ๋ฆฌ์ผ์ด์
์คํ ์, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ
์ด๋ธ์ ์๋์ผ๋ก ์์ฑํด์ค )
โ ์ธ๋ฉ๋ชจ๋ฆฌ DB๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ, ์ ํ๋ฆฌ์ผ์ด์ ์ด ์คํ๋ ๋ ๋ง๋ค schema.sql ํ์ผ์ ์คํฌ๋ฆฝํธ๊ฐ ๋งค๋ฒ ์คํ๋จ
spring: sql: init: schema-locations: classpath*:db/h2/schema.sql # ํ ์ด๋ธ ์์ฑ ํ์ผ ๊ฒฝ๋ก
โ schema.sql ํ์ผ ์์ฑ์ด ํ์ ์์ด, ์ํฐํฐ ํด๋์ค์ ๋งคํ๋๋ ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋์ผ๋ก ์์ฑํด์ค
โ ๏ธ ์ค๋ฌด์์๋ ์ ๋ ์ฐ์ด์ง ์์
( ๋น๋๋ฅผ ๋ค์ ํ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ด๊ธฐํ๋์๋ค๊ฐ ๋ค์ ์์ฑ๋๊ธฐ ๋๋ฌธ )
spring: jpa: hibernate: ddl-auto: create
โ JPA API๋ฅผ ํตํด ์คํ๋๋ SQL ์ฟผ๋ฆฌ๋ฅผ ๋ก๊ทธ๋ก ์ถ๋ ฅ ๊ฐ๋ฅ
spring: jpa: show-sql: true
โ ํ์ค๋ก ์ด์ด์ง ์ฟผ๋ฆฌ ๋ก๊ทธ๋ค์ depth๋ฅผ ๋๋์ด ์์๊ฒ ๋ณด๊ธฐ ๊ฐ๋ฅ
spring: jpa: properties: hibernate: format_sql: true
โ ์๋์ ๊ฐ์ด ๋ก๊ทธ ๋ ๋ฒจ์ DEBUG ๋ ๋ฒจ๋ก ์ค์ ํ๋ฉด, JPA ๋ด๋ถ์์ DEBUG ๋ก๊ทธ ๋ ๋ฒจ์ ์ง์ ํ ๋ถ๋ถ์ ๋ก๊ทธ ํ์ธ ๊ฐ๋ฅ
logging: level: org: springframework: orm: jpa: DEBUG
โ response body ์๋ต ๋ฐ์ดํฐ์ ํฌํจ๋ ํ๊ธ์ ๊นจ์ง์ง ์๊ฒ ๋ณด๊ธฐ ๊ฐ๋ฅ
server: servlet: encoding: force-response: true
โ ๋จผ์ build.gradle
์ ์๋์ ์์กด์ฑ ์ถ๊ฐ ํ ์ฌ์ฉํ๊ธฐ
โ implementation 'mysql:mysql-connector-java
spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/ํ ์ด๋ธ๋ช ?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&serverTimezone=Asia/Seoul username: ์ด๋ฆ password: ํจ์ค์๋
โ ์๋์ local
์ application-local.yml
ํ์ผ๋ช
์์์ local
์ ๊ฐ๋ฆฌํด
spring: profiles: active: local # ๊ธฐ๋ณธ ํ๊ฒฝ ์ ํ