728x90
스프링은 설정 데이터를 사용할 때 application.properties 뿐만 아니라 application.yml이라는 형식도 지원한다.
YAML
YAML(YAML Ain't Markup Language)은 사람이 읽기 좋은 데이터 구조를 목표로 한다.
확장자는 yaml , yml 이다. 주로 yml을 사용한다.
application.yml
my:
datasource:
url: local.db.com
username: username
password: password
etc:
max-connection: 1
timeout: 3500ms
options: CACHE,ADMIN
- YAML의 가장 큰 특징은 사람이 읽기 좋게 계층 구조를 이룬다는 점이다.
- YAML은 space (공백)로 계층 구조를 만든다. space 는 1칸을 사용해도 되는데, 보통 2칸을 사용한다. 일관성있게 사용하지 않으면 읽기 어렵거나 구조가 깨질 수 있다.
- 구분기호로 :를 사용한다. 만약 값이 있다면 이렇게 key:value : 이후에 공백을 하나 넣고 값을 넣어주면 된다.
- 스프링은 YAML의 계층 구조를 properties 처럼 평평하게 만들어서 읽어들인다.
- 이전에 작성한 application.properties 처럼 읽어들인다
주의
- application.properties , application.yml 을 같이 사용하면 application.properties 가 우선권을 가진다.
- 이것을 둘이 함께 사용하는 것은 일관성이 없으므로 권장하지 않는다.
- 참고로 실무에서는 설정 정보가 많아서 보기 편한 yml 을 선호한다.
YML과 프로필
YML에도 프로필을 적용할 수 있다.
application.yml
my:
datasource:
url: local.db.com
username: username
password: password
etc:
max-connection: 1
timeout: 3500ms
options: CACHE,ADMIN
---
spring:
config:
activate:
on-profile: dev
my:
datasource:
url: dev.db.com
username: dev_user
password: dev_pw
etc:
max-connection: 10
timeout: 60s
options: DEV,ADMIN
---
spring:
config:
activate:
on-profile: prod
my:
datasource:
url: prod.db.com
username: prod_user
password: prod_pw
etc:
max-connection: 20
timeout: 10s
options: PROD,ADMIN
- yml 은 --- dash( - ) 3개를 사용해서 논리 파일을 구분한다.
- spring.config.active.on-profile을 사용해서 프로필을 적용할 수 있다.
- 나머지는 application.properties 와 동일하다.
실행하기

728x90
'스프링 부트(핵심 원리와 활용)' 카테고리의 다른 글
| Ch07. 액츄에이터 - 프로덕션 준비 기능이란? (0) | 2023.03.20 |
|---|---|
| Ch06. 외부설정과 프로필(2) - @Profile (0) | 2023.03.18 |
| Ch06. 외부설정과 프로필(2) - 외부 설정 사용(@ConfigurationProperties 검증) (0) | 2023.03.18 |
| Ch06. 외부설정과 프로필(2) - 외부 설정 사용(@ConfigurationProperties 생성자) (0) | 2023.03.18 |
| Ch06. 외부설정과 프로필(2) - 외부 설정 사용(@ConfigurationProperties 시작) (0) | 2023.03.18 |