본문 바로가기
IT/Java

YAML/YML

by sgoho01 2021. 7. 16.

Spring에서 외부설정값들을 관리할때 보통 properties 파일을 많이 사용합니다.

SpringBoot 에서는 properties말고도 yml 파일을 기본으로 사용할 수도 있습니다.

 

properties대신 yml을 사용하여 설정값들을 관리하면

보다 좋은 가독성으로 관리하기가 편리하고 중복으로 값을 입력할 수 있는

properties와 달리 중복도 방지할 수 있습니다.

 

 

properties

ghsong.name.first:gunho
ghsong.name.last:song
ghsong.phone[0]:01011112222
ghsong.phone[1]:01033334444

 

yml

ghsong:
  name:
    first: gunho
    last: song
  phone:
    - 01011112222
    - 01033334444

yml는 계층형 구조로 properties보다 가독성이 높습니다.

※ 다만 계층구조를 구분할때 indent가 틀리면 설정이 적용안될경우가 많습니다.

한 계층을 구분할때에 space 2번 or 4번으로 구분하여 작성합니다.

 

 

구조화

개발시 local, dev, prod로 구분하여 설정값이 달리지는데

yml은 spring profile에 따라 파일 한개에서도 여러 설정을 지정하여 편리하게 사용할 수 있습니다.

 


* springboot 2.4 이상에서 테스트하였으며, 이전 버전에서 사용했던

spring.profile.active가 Deprecated 되어 spring.config.activate.on-profile로 변경하여 작성하였습니다.

 

spring:
  config:
    activate:
      on-profile: local
ghsong:
  name: 'gunho-local'
  age: 10

---
spring:
  config:
    activate:
      on-profile: dev
ghsong:
  name: 'gunho-dev'
  age: 12

---
spring:
  config:
    activate:
      on-profile: prod
ghsong:
  name: 'gunho-prod'
  age: 13

--- 로 active profile을 구분하여 작성할 수 있습니다.

profile을 dev로 개발 할때 필요한 설정값들을 dev아래 구조에서 설정하면 해당 설정값으로 적용되어 사용할 수 있습니다.

 

 

 

개발환경, 운영환경에서 사용 할 설정값들을 나누어 작성 후 관리&개발할 수 있습니다.

 

 

추가로 설정파일을 여러개로 나누어서도 관리할 수 있습니다.

application-name.yml으로 파일을 구분하여 작성하고 각 profile에서 사용할 파일들을 정의해 놓고 사용할 수 있습니다.

'IT > Java' 카테고리의 다른 글

Http 응답 상태코드 (Http Status Code)  (0) 2019.04.30
자바 명명규칙 (Java Naming)  (0) 2019.04.30

댓글