๐ŸŽ€ application.yml ํŒŒ์ผ ์„ค์ • ๋ชจ์Œ

ํ˜„์ฃผยท2022๋…„ 11์›” 16์ผ
0

๐Ÿ’ก H2 Browser ํ™œ์„ฑํ™” ์„ค์ • ์ถ”๊ฐ€ํ•˜๊ธฐ

  • 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 ํŒŒ์ผ O + ์Šคํ‚ค๋งˆ ์ž๋™ ์ƒ์„ฑ 1

โžœ 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 ํŒŒ์ผ X + ์Šคํ‚ค๋งˆ ์ž๋™ ์ƒ์„ฑ 2

โžœ schema.sql ํŒŒ์ผ ์ƒ์„ฑ์ด ํ•„์š” ์—†์ด, ์—”ํ‹ฐํ‹ฐ ํด๋ž˜์Šค์™€ ๋งคํ•‘๋˜๋Š” ํ…Œ์ด๋ธ”์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ด์คŒ

โš ๏ธ ์‹ค๋ฌด์—์„œ๋Š” ์ ˆ๋Œ€ ์“ฐ์ด์ง€ ์•Š์Œ
( ๋นŒ๋“œ๋ฅผ ๋‹ค์‹œ ํ•  ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ดˆ๊ธฐํ™”๋˜์—ˆ๋‹ค๊ฐ€ ๋‹ค์‹œ ์ƒ์„ฑ๋˜๊ธฐ ๋•Œ๋ฌธ )

spring:
  jpa:
    hibernate:
      ddl-auto: create

๐Ÿ’ก SQL ์ฟผ๋ฆฌ ๋กœ๊ทธ๋กœ ๋ณด๊ธฐ

โžœ JPA API๋ฅผ ํ†ตํ•ด ์‹คํ–‰๋˜๋Š” SQL ์ฟผ๋ฆฌ๋ฅผ ๋กœ๊ทธ๋กœ ์ถœ๋ ฅ ๊ฐ€๋Šฅ

spring:
  jpa:
    show-sql: true

๐Ÿ’ก SQL ์ฟผ๋ฆฌ ๋กœ๊ทธ ์˜ˆ์˜๊ฒŒ ๋ณด๊ธฐ

โžœ ํ•œ์ค„๋กœ ์ด์–ด์ง„ ์ฟผ๋ฆฌ ๋กœ๊ทธ๋“ค์„ 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

๐Ÿ’ก MySQL๊ณผ ์—ฐ๋™ํ•˜๊ธฐ

โ— ๋จผ์ € 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 # ๊ธฐ๋ณธ ํ™˜๊ฒฝ ์„ ํƒ

0๊ฐœ์˜ ๋Œ“๊ธ€