Spring/공부

설정 파일(application.properties, application.yml) profile 변경 법

synclair 2023. 7. 19. 15:11

Profile 란?

스프링에서 애플리케이션 설정을 구분하여 관리하는 기능을 말한다.

Profile을 쓰는 이유

환경 별로 설정을 분리 할 수 있다.

회사에서 실제 운영 서버가 있고 개발 서버가 따로 있고 내 컴퓨터(로컬)이 있다고 가정 한다면,

보통의 개발 흐름이라면 로컬 -> 개발서버 -> 운영서버로 만든 걸 반영 할 텐데

어떠한걸 삭제하는 api를 개발 중인데 테스트 해보려면 내 로컬에 있는 db 주소를 properties에 연결 해야한다.

그리고 개발서버에서 해보고 싶을때 또 properties 들어가서 db 이름을 바꿔주고 해야한다

귀찮다

그래서 properties를 따로 만들어 두고 어떠한 Properties 설정을 활용할 지 선택만 하면 되게 해주는게 profile이다.

하는 법

  1. 커맨드 라인 인자 사용
java -jar your-application.jar --spring.profiles.active=dev
  1. application.properties 파일에 직접 설정:
└── src
    └── main
        └── resources
            ├── application.yml
            ├── application-dev.yml
            └── application-prod.yml

dev(개발서버세팅), prod(실제운영서버세팅) 이렇게 있다고 가정 (설정 파일 형식은 properties와 yml 형식이 있다)

개발 서버 세팅 상태에서 돌리고 싶을 때

application.yml에

spring:
  profiles:
    active: dev

이렇게 하면 된다.

  1. jvm 시스템시 프로퍼티 사용

intellij 라면 run configuration에 vm option에

java -jar -Dspring.profiles.active=dev your-application.jar

이러면 된다

개인적으로 2번이 안까먹고 좋은거 같다.