์ ํ๊ฒฝ ๋ถ๋ฆฌ๊ฐ ํ์ํ ๊น?
- ์ฝ๋ ์ถฉ๋ ๋ฐ ๋ฐ์ดํฐ ์์ค ๋ฐฉ์ง: ์ฌ๋ฌ ๊ฐ๋ฐ์๊ฐ ๋์์ ์์ ํ๋ฉด ์ฝ๋ ์ถฉ๋์ด๋ ๋ฐ์ดํฐ ์์ค์ด ๋ฐ์ํ ์ ์๋ค. ๊ฐ๋ฐ ํ๊ฒฝ ๋ถ๋ฆฌ๋ฅผ ํตํด ๊ฐ ๊ฐ๋ฐ์๊ฐ ๋ ๋ฆฝ์ ์ธ ํ๊ฒฝ์์ ์์ ํ์ฌ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ ์ ์๋ค.
- ํ ์คํธ ๋ฐ ๋ฐฐํฌ ๊ณผ์ ์ ํจ์จ์ฑ ํฅ์: ๊ฐ๋ฐ ํ๊ฒฝ๊ณผ ์ด์ ํ๊ฒฝ์ด ๋์ผํ๋ฉด ํ ์คํธ ๋ฐ ๋ฐฐํฌ ๊ณผ์ ์ด ๋ณต์กํ๊ณ ์๊ฐ์ด ๋ง์ด ์์๋ ์ ์๋ค. ๊ฐ๋ฐ ํ๊ฒฝ ๋ถ๋ฆฌ๋ฅผ ํตํด ํ ์คํธ ํ๊ฒฝ์์ ์ถฉ๋ถํ ๊ฒ์ฆํ ํ ์ด์ ํ๊ฒฝ์ ๋ฐฐํฌํ๋ ๋ฐฉ์์ผ๋ก ํจ์จ์ฑ์ ๋์ผ ์ ์๋ค.
- ์ด์ ํ๊ฒฝ๊ณผ ๋์ผํ ์ค์ ์ผ๋ก ๊ฐ๋ฐ ๋ฐ ํ ์คํธ ๊ฐ๋ฅ: ๊ฐ๋ฐ ํ๊ฒฝ๊ณผ ์ด์ ํ๊ฒฝ์ด ๋์ผํ ์ค์ ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฉด, ์ค์ ์ด์ ํ๊ฒฝ์์ ๋ฐ์ํ ์ ์๋ ๋ฌธ์ ๋ฅผ ๋ฏธ๋ฆฌ ์์ธกํ๊ณ ํด๊ฒฐํ ์ ์๋ค.
์ด๋ฌํ ์ด์ ๋ก ๊ฐ๋ฐ ํ๊ฒฝ ๋ถ๋ฆฌ๊ฐ ํ์ํ๋ค.
๊ทธ๋์ ๋ค์๊ณผ ๊ฐ์ด ๋ถ๋ฆฌ๋ฅผ ์งํํ๋ค.
๊ฐ๋ฐ ํ๊ฒฝ ๋ถ๋ฆฌ ๋ฐฉ๋ฒ:
- application.yml ํ์ผ ๋ถ๋ฆฌ
- ์ด์ ํ๊ฒฝ (application-prod.yml)
- ๊ฐ๋ฐ ํ๊ฒฝ (application-dev.yml)
- ๋ก์ปฌ ํ ์คํธ ํ๊ฒฝ (application-local.yml)
- ํ๊ฒฝ ๋ณ์ ํ์ฉ (application-secret.yml)
- ๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ ํฌํจํ
๊ฐ๋ฐ ํ๊ฒฝ ๋ถ๋ฆฌ ์ ๊ณ ๋ คํด์ผ ํ ์ฌํญ:
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค์ ์ ๊ณ ๋ คํด์ผ ํ๋ค.
๊ฐ ํ๊ฒฝ๋ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ ์ ๋ณด ๋ฐ DDL ์ค์ (์: create, update, none)์ ์ ์ํด์ผ ํ๋ค.
application.yml
์ฌ๊ธฐ์๋ ํ๊ฒฝ์ ๋ถ๋ฆฌํ ๊ณณ์์ ๊ณตํต์ ์ผ๋ก ์ฐ์ผ ์ฝ๋๋ฅผ ์ ๋๋ค.
๊ฐ๊ฐ ํ๊ฒฝ๋ง๋ค ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ddl-auto๋ฅผ ์ฌ์ฉํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ฌ๊ธฐ์๋ ์ค์ ํ์ง ์์๋ค.
server:
port: 8080
spring:
profiles:
active: dev // ๋์ํ ํ์ผ
include: secret // ์ ์ฒด profiles์ ์ถ๊ฐํ ํ์ผ (์ฌ๊ธฐ์๋ application-secret.yml)
spring.profiles.active์์ ํ์ฑํํ ํ๋กํ์ผ์ ์ง์ ํ๋ค.
application-local.yml
spring:
config:
activate:
on-profile: local
datasource:
driver-class-name: '${custom_local.db.driver-class-name}'
url: '${custom_local.db.url}'
username: '${custom_local.db.username}'
password: '${custom_local.db.password}'
jpa:
hibernate:
ddl-auto: create
๋ก์ปฌ ํ๊ฒฝ์์ ๋์๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ค์ ์ ์์ฑํ๋ค.
application-dev.yml
spring:
config:
activate:
on-profile: dev
datasource:
driver-class-name: '${custom_dev.db.driver-class-name}'
url: '${custom_dev.db.url}'
username: '${custom_dev.db.username}'
password: '${custom_dev.db.password}'
jpa:
hibernate:
ddl-auto: create // ์์ ํ ์ดํ update๋ก ๋ณ๊ฒฝ ํ์
application-prod.yml
spring:
config:
activate:
on-profile: prod
datasource:
driver-class-name: '${custom_prod.db.driver-class-name}'
url: '${custom_prod.db.url}'
username: '${custom_prod.db.username}'
password: '${custom_prod.db.password}'
jpa:
hibernate:
ddl-auto: none
'TIL > ๐ฟ SPRING' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฌธ์ํ๋ฅผ ์ํ Spring Boot Swagger (0) | 2024.05.03 |
---|---|
JPA-DB ์ฐ๊ฒฐํ๊ธฐ (0) | 2023.03.17 |
์คํ๋ง ์์กด์ฑ ์ฃผ์ (0) | 2023.03.15 |
์์ ์คํ๋ง ์ฉ์ด ์ ๋ฆฌ (0) | 2023.01.25 |