본문 바로가기

Programming/Java & JSP & Spring

[SpringBoot] 프로파일(Profile) 설정

Web개발을 하고 배포할 때 로컬 설정과 배포 설정은 다를 수 있다.

또한 기능을 테스트할 때의 설정도 다를 수 있다.


하지만 그때마다 properties 설정 파일을 계속해서 수정할 순 없다.

이럴 때 프로파일 파일을 만들면 편리하다.


application.properties 파일이 있는 위치에서 application-{profile name}.properties와 같이 

파일을 생성해주면 된다.


예를 들어 내부 개발 환경인 "local"과 실제 배포 환경인 "production"이 필요하다면 다음과 같이 파일을 만들면 된다.

application-local.properties

application-production.properties


application.properties 파일은 해당 프로필 파일들이 공통적으로 가지는 default 설정을 해주면 된다.

이말이 뜻하는 것은 별도의 프로필 파일에서 default값을 오버라이딩 할 수 있다는 것이다.


또한 application.properties에서 실행이 될 프로필 파일을 다음과 같이 설정해줄 수 있다.

spring.profiles.active=local


위와 같이 설정하면 application.properties에서 설정한 기본 값들이 설정되고,

application-local.properties에서 설정한 값들과 오버라이딩한 값들이 설정이 된다.


실제 git을 통해 배포를 할 때에는....

우선 기본 설정 파일인 application.properties를 베이스로 application-local.properties와 

application-production.properties 두 개의 설정파일을 추가해준다.


하지만 git에는 설정파일을 올리지말아야한다.

우선 개발을 진행할 때에는 gitignore에 설정 파일 모두를 추가해준다.

그 이후 배포를 할 때, 실제 운용되는 서버에 설정파일이 존재해야 되므로 git을 통해 배포를 하는 경우

git에 설정파일을 어쩔 수 없이 올려야되는 상황이 온다.


프로필 파일 중 local은 gitignore를 유지하고 기본 설정파일과 production 설정파일의

값을 # (아무값) 으로 처리 한 후 git에 파일을 올린다.

spring.datasource.url=#

spring.datasource.username=#

spring.datasource.password=#


그 이후 실제 운용되는 서버에서 git pull을 한 후 설정 파일을 설정 값을 셋팅해준다.


그 다음 다시 모든 설정파일을 git ignore에 추가해주면 실제 운용서버의 설정파일과

로컬 설정파일을 별개로 설정해서 개발을 진행할 수 있는 것이다.


(운용되는 서버에서 설정 파일의 값을 바꿔주고 ignore에 바로 추가를 안하면 git과 별개로

서버에서 파일의 값을 바꿨기때문에 다음 작업 때 pull을 할 수 없는 에러가 발생한다.)