본문 바로가기
BE/Spring

yaml 파일을 그룹으로 관리하기

by cjsrhd94 2022. 7. 9.

yaml 파일을 그룹으로 관리하는 법을 알아보자.

 

application-dev.yml

변경 전 application-dev.yml 설정

application.yml

변경 전 application.yml 설정

프로젝트를 진행하다 보니 yaml 파일 내 외부에 유출되서는 안되는 정보들이 늘어났다. 내 프로젝트는 RDS나 S3등 다양한 AWS 서비스들을 사용하여 connection 정보들이 yaml파일 내 산재해 있었다. 이에 외부에 공개해서는 안되는 yaml 파일들을 모듈화시켜 깃허브에 올라가지 않게 관리하기 위해 spring.profiles.group 옵션을 사용하였다.

 

application.yml

변경 후 application.yml

application-dev.yml

변경 후 application-dev.yml

application-rds.yml

변경 후 application-rds.yml

.gitignore

.gitignore

spring.profiles.group 옵션은 jar파일 실행시 그룹화된 프로필 내의 모든 설정 정보를 전달한다. 예를 들어 위의 설정 정보들은 다음과 같이 설명할 수 있다. "현재 그룹화된 프로필은 local, dev, test 세가지 이다.  jar파일 실행시 local 프로필을 실행하라고 지정해준다면 그룹내에 있는 application-local.yml, application-redis.yml, application-s3.yml 파일 내에 있는 설정 정보들을 전달해줄 것이다."

 

spring.profiles.group 옵션의 장점

  • 반복하여 사용하는 yaml 값들을 모듈화 시킬 수 있다. yaml파일을 프로필 별로 작성하다보면 중복해서 작성되는 값들이 많은데 이를 모듈화 시켜 관리에 이점을 가질 수 있다.
  • 설정 정보 은닉을 할 수 있다. connection 설정 정보는 외부에 공개되면 치명적일 수 있다. 이에 위 사진들 처럼 중요한 설정 정보를 분리하여 yaml파일을 만들고, 이를 .gitignore에 등록하여 실수로 중요한 설정 정보들이 깃허브에 올라가는 것을 사전에 방지할 수 있다.

댓글