Community

๐Ÿ•Š๏ธ ์Šคํ”„๋ง ๋ถ€ํŠธ: YAML vs properties

์Šคํ”„๋ง ๋ถ€ํŠธ์—์„œ๋Š” YAML ๋˜๋Š” properties๋ฅผ ์‚ฌ์šฉํ•ด ์„ค์ •์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘ ํ˜•์‹ ๋ชจ๋‘ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ์„ฑํ•˜๋Š” key-value ์Œ์„ ์ •์˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ YAML๊ณผ properties ํŒŒ์ผ์˜ ์ฃผ์š” ์ฐจ์ด์ ์ž…๋‹ˆ๋‹ค. 1๏ธโƒฃ ๋ฌธ๋ฒ• * Properties Files: ๊ฐ„๋‹จํ•œ 'key-value' ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์†์„ฑ์€ ์ƒˆ ์ค„์— ์ •์˜๋˜๋ฉฐ, '#'์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ์„์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ``` server.port=8080 spring.datasource.url=jdbc:mysql://localhost:3306/mydb ``` * YAML File: YAML์€ ๋ณด๋‹ค ์‚ฌ๋žŒ์ด ์ฝ๊ธฐ ์‰ฌ์šด ํ˜•์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ๋“ค์—ฌ์“ฐ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ํ‚ค์™€ ๊ฐ’์„ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ์ฝœ๋ก ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ``` server: port: 8080 spring: datasource: url: jdbc:mysql://localhost:3306/mydb ``` 2๏ธโƒฃ ๊ณ„์ธต * Properties File: ๋ฌด ๊ณ„์ธต์ด๋ฉฐ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ ‘๋‘์‚ฌ๋ฅผ ์ด์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. * YAML File: YAML ํŒŒ์ผ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ์ง€์›ํ•˜๋ฏ€๋กœ ์ค‘์ฒฉ ์†์„ฑ์œผ๋กœ ๋ณต์žกํ•œ ๊ตฌ์„ฑ์„ ๋” ์‰ฝ๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 3๏ธโƒฃ ๋ฐฐ์—ด๊ณผ ๋ฆฌ์ŠคํŠธ * Properties File: ๋ฐฐ์—ด์ด๋‚˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๊ณตํ†ต ์ ‘๋‘์‚ฌ๋กœ ์—ฌ๋Ÿฌ ์†์„ฑ์„ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ``` mylist=apple,banana,orange ``` * YAML File: YAML์€ ๋ฆฌ์ŠคํŠธ์™€ ๋ฐฐ์—ด์„ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ``` mylist: - apple - banana - orange ``` 4๏ธโƒฃ ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž… * Properties File: ๋‹จ์ˆœํ•œ ๋ฌธ์ž์—ด ๊ฐ’์œผ๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์ƒ์—์„œ ์ˆ˜๋™์œผ๋กœ ๋ณ€ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. * YAML File: ์ˆ˜๋™ ๋ณ€ํ™˜ ์—†์ด ์ •์ˆ˜, ๋ถ€์šธ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํ˜•์‹์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. 5๏ธโƒฃ ๊ฐ€๋…์„ฑ * Properties File: ๋” ์••์ถ•์ ์ด์ง€๋งŒ ๋ณต์žกํ•œ ๊ตฌ์„ฑ์˜ ๊ฒฝ์šฐ ์ฝ๊ธฐ ์–ด๋ ค์›Œ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. * YAML File: ๋“ค์—ฌ์“ฐ๊ธฐ ๊ธฐ๋ฐ˜ ๊ตฌ์กฐ๋Š” ์ค‘์ฒฉ๋œ ์†์„ฑ์ด ๋งŽ์€ ๊ฒฝ์šฐ ๋” ์‰ฝ๊ฒŒ ์ฝ์„ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค๋‹ˆ๋‹ค. 6๏ธโƒฃ ์‚ฌ์šฉ ์‚ฌ๋ก€ * Properties File์€ ๋”์šฑ ๊ฐ„๋‹จํ•œ ๊ตฌ์„ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์กด ์‹œ์Šคํ…œ๊ณผ์˜ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. * YAML File์€ ๊ณ„์ธต์ ์ด๊ณ  ๊ตฌ์กฐํ™”๋œ ํ˜•์‹์„ ์‚ฌ์šฉํ•˜๋Š” ๋ณต์žกํ•œ ๊ตฌ์„ฑ์„ ๋‹ค๋ฃฐ ๋•Œ ์„ ํ˜ธ๋ฉ๋‹ˆ๋‹ค. ์š”์•ฝํ•˜์ž๋ฉด, YAML๊ณผ properties ๊ฐ„์˜ ์„ ํƒ์€ ๊ฐœ์ธ ์„ ํ˜ธ๋„์™€ ๊ตฌ์„ฑ์˜ ๋ณต์žก์„ฑ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. YAML์€ ๊ฐ€๋…์„ฑ์ด ๋›ฐ์–ด๋‚˜๊ณ  ๊ณ„์ธต์ ์ด๊ณ  ๊ตฌ์กฐ์ ์ธ ๊ตฌ์„ฑ์„ ์ง€์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ค‘์ฒฉ๋œ ์†์„ฑ์ด ๋งŽ์€ ํ”„๋กœ๊ทธ๋žจ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. properties๋Š” ์—ฌ์ „ํžˆ ๋‹จ์ˆœํ•œ ๊ตฌ์„ฑ์ด๋‚˜ ์†์„ฑ ํ˜•์‹์„ ์‚ฌ์šฉํ•˜๋Š” ๋ ˆ๊ฑฐ์‹œ ์‹œ์Šคํ…œ๊ณผ์˜ ํ˜ธํ™˜์„ฑ์„ ์œ ์ง€ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์Šคํ”„๋ง ๋ถ€ํŠธ๋Š” ๋‘ ํ˜•์‹ ๋ชจ๋‘๋ฅผ ์ง€์›ํ•˜๋ฏ€๋กœ ํ•„์š”์— ๋”ฐ๋ผ ์ ํ•ฉํ•œ ํ˜•์‹์„ ์„ ํƒํ•˜๋ฉด ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์•Œ๋ฆผ

์•Œ๋ฆผ์ด ์—†์Šต๋‹ˆ๋‹ค