YAML
- Yaml Ain't Markup Language
- ์ฌ๋์ด ์ฝ๊ฒ ์ฝ์ ์ ์๋ ๋ฐ์ดํฐ ์ง๋ ฌํ ์์
- ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฆฌ์คํธ, ํด์, ์ค์นผ๋ผ ๋ฐ์ดํฐ์ ์กฐํฉ์ผ๋ก ์ ์ ํ ํํ
- ์ฌ์ด ๋ฌธ๋ฒ, ๊ฐ๋
์ฑ ์ํธ
- ๋ค์ฌ์ฐ๊ธฐ๋ก ๊ณ์ธต ํํ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ xml๊ณผ ์ ์ฌ
YAML vs. Properties
๊ฐ๋
์ฑ
- ๊ณ์ธต๊ตฌ์กฐ๋ก ๊ฐ๋
์ฑ์ด ์ข๋ค.
- ๋ค์ฌ์ฐ๊ธฐ, ๋์ด์ฐ๊ธฐ๋ก ๊ตฌ๋ถ
spring.datasource.driverClassName=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
spring.datasource.url=jdbc:log4jdbc:mariadb://localhost:3306/test?characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.hikari.username=root
spring.datasource.hikari.password=password
spring.datasource.hikari.maximum-pool-size=10
spring:
datasource:
driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
url: jdbc:log4jdbc:mariadb://localhost:3306/test?characterEncoding=UTF-8&serverTimezone=UTC
hikari:
username: root
password: password
maximum-pool-size: 10
๋ฆฌ์คํธ
- ์ฌ๋ฌ ์ค์ ์ธ ๋๋ ํ์ดํ(
-
)์ผ๋ก ์์ํ๋ ํ ์ค์ ํ๋์ ์์ ํ์
- ํ ์ค์ ๋ชจ์ ์ธ ๋๋ ๋๊ดํธ์ ์ผํ๋ก ํ์
my.servers[0]=dev.example.com
my.servers[1]=another.example.com
my:
servers:
- dev.example.com
- another.example.com
my:
servers: [dev.example.com, another.example.com]
์ฃผ์
#
์ผ๋ก ์์ํด์ ์ค ๋๊น์ง ์ ์ฉ
# comment
my:
servers:
- dev.example.com # ๊ฐ๋ฐ ์๋ฒ
- another.example.com # ์๋น ์๋ฒ
์คํ๋ง Profile ์ ์ฉ
- ํ ํ์ผ ๋ด์์ ์ฌ๋ฌ ํ๊ฒฝ ํ์ ๊ฐ๋ฅ
- applicaton.yml ํ์ผ ํ๋๋ก ์ฌ๋ฌ๊ฐ์ง yml ์์ฑํ ๊ฒ๊ณผ ๊ฐ์ด ์ฒ๋ฆฌ ๊ฐ๋ฅ
- properties๋ ๊ฐ๋ณ ํ์ผ ํ์
- application-{profile}.properties
- application-local.properties
- application-dev.properties
#local, dev, prod ๊ณตํต ์ค์
application:
version: 1.0.0
title: app
spring:
profiles:
active: local #profiles ์ ์ธํ์ฌ ์ ์ฉํ profile์ ์ ํ ํ๋ค.
thymeleaf:
view-names: thymeleaf/*
prefix: classpath:templates/
suffix: .html
cache: false
--- #local ํ๊ฒฝ
spring:
profiles: local
logging:
level:
root: debug
--- #dev ํ๊ฒฝ
spring:
profiles: local
logging:
level:
root: info
--- #prod ํ๊ฒฝ
spring:
profiles: local
server:
port: 9090
logging:
level:
root: error
Group
- group์ผ๋ก ์ฌ๋ฌ ํ์ผ ๋์์ ๋ก๋ฉ ๊ฐ๋ฅ
spring:
profiles:
group:
- dev
- qa
์ฃผ์
- @PropertySource ์ด๋
ธํ
์ด์
์ผ๋ก ํ๋กํผํฐ ๊ฐ์ ๋ถ๋ฌ ์ฌ ์ ์๋ค.
- ํด๋น ์ด๋
ธํ
์ด์
์ ์ฌ์ฉ ํ๋ ค๋ฉด ํ๋กํผํฐ ํ์ผ์ ์ฌ์ฉ ํ์
.properties
๋ .yml
ํ์ผ์ kebab-case ํ๊ธฐ๋ฅผ ๊ถ์ฅ
acme.my-project.person.first-name
ref