๐[Spring] application.yml
๊ณผ application.properties
์ ์ฐจ์ด์ .
Java ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์
์์ application.yml
๊ณผ application.properties
๋ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์ค์ ์ ๊ด๋ฆฌํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๊ตฌ์ฑ ํ์ผ์
๋๋ค.
์ด ๋ ํ์ผ์ Spring Boot์ ๊ฐ์ ํ๋ ์์ํฌ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ๊ฒฝ ์ค์ , ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ, ํฌํธ ๋ฒํธ, ๋ณด์ ์ค์ ๋ฑ์ ์ ์ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
๋ ํ์ผ์ ๊ธฐ๋ฅ์ ์ผ๋ก ๋น์ทํ์ง๋ง ํ์๊ณผ ๊ฐ๋ ์ฑ์์ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
1๏ธโฃ ์ฐจ์ด์ .
1. ํ์ผ ํ์.
-
application.properties
- ํค-๊ฐ ์ ํ์์ ๊ตฌ์ฑ์ ์ฌ์ฉํฉ๋๋ค.
- ๊ฐ ์ค์ ์ ํ ์ค์ ํ๋์ฉ,
key=value
ํ์์ผ๋ก ์์ฑ๋ฉ๋๋ค.
-
application.yml
- YAML ํ์์ ์ฌ์ฉํฉ๋๋ค.
- YAML์ ๊ณ์ธต์ ๊ตฌ์กฐ์ ๋ค์ฌ์ฐ๊ธฐ๋ฅผ ํตํด ์ค์ ์ ์ ์ํ๋ฉฐ, JSON๊ณผ ์ ์ฌํ ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
์์
-
application.properties
์์server.port=8080 spring.dataspurce.url=jdbc:mysql://localhost:3306/mydb spring.datasource.username=root spring.datasource.password=secret logging.level.org.springframework=DEBUG
-
application.yml
์์server: port: 8080 spring: datasource: url: jdbc:mysql://localhost:3306/mydb username: root password: secret logging: level: org.springframework: DEBUG
2. ๊ณ์ธต ๊ตฌ์กฐ ํํ.
-
application.properties
- ๊ฐ ์ค์ ํญ๋ชฉ์ ์ ํ๊ธฐ๋ฒ(dot natation) ์ ์ฌ์ฉํ์ฌ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ํํํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด,
spring.datasource.url
์ฒ๋ผ ์ ์ ์ฌ์ฉํด ์ค์ฒฉ๋ ์์ฑ์ ์ ์ํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด,
- ๊ฐ ์ค์ ํญ๋ชฉ์ ์ ํ๊ธฐ๋ฒ(dot natation) ์ ์ฌ์ฉํ์ฌ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ํํํฉ๋๋ค.
-
application.yml
- YAML์ ๋ค์ฌ์ฐ๊ธฐ๋ฅผ ํตํด ๊ณ์ธต์ ๊ตฌ์กฐ๋ฅผ ์์ฐ์ค๋ฝ๊ฒ ํํํ ์ ์์ต๋๋ค.
- ์ ํ๊ธฐ๋ฒ ๋์ ๋ค์ฌ์ฐ๊ธฐ๋ก ์ค์ฒฉ๋ ๊ตฌ์กฐ๋ฅผ ํํํฉ๋๋ค.
3. ๊ฐ๋ ์ฑ
-
application.properties
- ๋ชจ๋ ์ค์ ์ด ํ ์ค์ ํค-๊ฐ ์์ผ๋ก ํ์๋๋ฏ๋ก ๊ฐ๋จํ ์ค์ ์์๋ ์ฝ๊ธฐ ์ฝ์ต๋๋ค.
- ๊ทธ๋ฌ๋ ๊ณ์ธต์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ํํํด์ผ ํ ๋๋ ์ ํ๊ธฐ๋ฒ์ ์ฌ์ฉํด์ผ ํ๋ฏ๋ก, ์ค์ ์ด ๋ง์์ง ์๋ก ์ฝ๊ธฐ ์ด๋ ค์์ง ์ ์์ต๋๋ค.
-
application.yml
- YAML์ ๋ค์ฌ์ฐ๊ธฐ๋ฅผ ์ฌ์ฉํด ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ํํํ๊ธฐ ๋๋ฌธ์ , ๋ณต์กํ ์ค์ ์ ๋ ๊ฐ๋ ์ฑ ์๊ฒ ํํํ ์ ์์ต๋๋ค.
- ์ค์ ์ด ๋ง๊ฑฐ๋ ์ค์ฒฉ๋ ๊ฒฝ์ฐ์๋ ๋ ๋ช ํํ๊ฒ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
4. ๋ฐ์ดํฐ ํํ์ ์ ์ฐ์ฑ.
-
application.properties
- ๋จ์ํ ํค-๊ฐ ์์ผ๋ก ๋ฐ์ดํฐ ํํ์ด ์ ํ๋ฉ๋๋ค.
- ๋ฐฐ์ด์ด๋ ๋ณต์กํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ํํํ ๋๋ ์ฌ๋ฌ ์ค์ ๊ฑธ์ณ ์ ํ๊ธฐ๋ฒ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
-
application.yml
- YAML์ ๋ฐฐ์ด, ๊ฐ์ฒด, ์ค์ฒฉ๋ ๊ตฌ์กฐ๋ฅผ ์ฝ๊ฒ ํํํ ์ ์์ต๋๋ค.
- ๋ณต์กํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ํํํ๋ ๋ฐ ๋ ์ ์ฐํฉ๋๋ค.
๋ฐฐ์ด ํํ ์์.
-
application.properties
์์ ๋ฐฐ์ด์ ํํํ๋ ๋ฐฉ๋ฒ.mylist[0]=item1 mylist[1]=item2 mylist[2]=item3
-
application.yml
์์ ๋ฐฐ์ด์ ํํํ๋ ๋ฐฉ๋ฒ.
```bash
mylist:- item1
- item2
- item3
```
5. ์ฃผ์.
-
application.properties
- ์ฃผ์์
#
๊ธฐํธ๋ก ์์ํฉ๋๋ค. - ์ฃผ์์ ํ ์ค์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
- ์ฃผ์์
-
application.yml
- ์ฃผ์๋
#
๊ธฐํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค. - ์ฃผ์์ ์์ฑํ๋ ๋ฐฉ์์
application.properties
์ ๋์ผํ์ง๋ง, YAML ํ์์์๋ ์ฌ๋ฌ ์ค์ ๊ฑธ์น ์ฃผ์์ ์ถ๊ฐํ๊ธฐ์ ๋ ์์ฐ์ค๋ฝ์ต๋๋ค.
- ์ฃผ์๋
6. ์ฌ์ฉ ์ฉ๋.
-
application.properties
- ๋จ์ํ ์ค์ ์ ์ ์ํ ๋ ์ ์ฉํฉ๋๋ค.
- ์์ฑ ์๊ฐ ์ ๊ณ ๊ณ์ธต์ ๊ตฌ์กฐ๊ฐ ๋ง์ด ํ์ํ์ง ์์ ๊ฒฝ์ฐ ๋ ์ง๊ด์ ์ผ ์ ์์ต๋๋ค.
-
application.yml
- ๋ณต์กํ ์ค์ ์ ์ ์ํ ๋ ์ ํฉํฉ๋๋ค.
- YAML์ ๋ฐ์ดํฐ์ ๊ณ์ธต์ ๊ตฌ์กฐ๋ฅผ ์ฝ๊ฒ ํํ ํ ์ ์์ด, ์ค์ฒฉ๋ ์ค์ ์ด๋ ๋ค์์ ์ค์ ์ด ํ์ํ ๊ฒฝ์ฐ ๋ ์ ํฉํฉ๋๋ค.
2๏ธโฃ ์ ํ ๊ธฐ์ค
-
์์ ํ๋ก์ ํธ๋ ๋จ์ํ ์ค์ ์๋
application.properties
๊ฐ ์ ํฉํ ์ ์์ต๋๋ค.- ์ ํ๊ธฐ๋ฒ์ผ๋ก ๊ฐ๋จํ ์ค์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ง๊ด์ ์ด๊ณ ๋น ๋ฅด๊ฒ ์ค์ ์ ์ ์ฉํ ์ ์์ต๋๋ค.
-
๋ณต์กํ ํ๋ก์ ํธ๋ ๋ค์ค์ ์ธ ์ค์ ์ด ํ์ํ ๊ฒฝ์ฐ, ํนํ ์ค์ ๋ก๊น
๋ ๋ฒจ ์ค์ , ๋ค์ค ํ๊ฒฝ ๊ด๋ฆฌ ๋ฑ์ ๋ณต์กํ ๊ตฌ์ฑ์ด ์๊ตฌ๋ ๋๋
application.yml
์ด ๋ ์ ํฉํฉ๋๋ค.- YAML์ ๊ตฌ์กฐ์ ํํ ๋๋ถ์ ๊ฐ๋ ์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ด ํฅ์๋ฉ๋๋ค.
3๏ธโฃ ์์ฝ.
-
application.properties
- ๋จ์ํ ํค-๊ฐ ์์ผ๋ก ์ด๋ฃจ์ด์ง ์ค์ ํ์ผ์ ๋๋ค.
- ์ ํ๊ธฐ๋ฒ์ ์ฌ์ฉํด ๊ณ์ธต์ ๊ตฌ์กฐ๋ฅผ ํํํ๋ฉฐ, ๋จ์ํ ์ค์ ์ ์ ํฉํฉ๋๋ค.
-
application.yml
- YAML ํ์์ ์ค์ ํ์ผ๋ก, ๋ค์ฌ์ฐ๊ธฐ์ ๊ณ์ธต์ ๊ตฌ์กฐ๋ฅผ ํตํด ๋ณต์กํ ์ค์ ์ ๋ณด๋ค ์ง๊ด์ ์ด๊ณ ๊ฐ๋ ์ฑ ์๊ฒ ํํํ ์ ์์ต๋๋ค.
- ๋ณต์กํ ํ๋ก์ ํธ์์ ์ ๋ฆฌํฉ๋๋ค.
๊ฒฐ๊ตญ, ๋ ๋ค ๋์ผํ ๊ธฐ๋ฅ์ ์ํํ ์ ์์ง๋ง, ์ค์ ์ ๋ณต์ก๋์ ๊ฐ๋
์ฑ ์๊ตฌ์ ๋ฐ๋ผ properties
์ yml
์ค ์ ํฉํ ํ์์ ์ ํํ ์ ์์ต๋๋ค.