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을 할 수 없는 에러가 발생한다.)
'Programming > Java & JSP & Spring' 카테고리의 다른 글
[Spring] 자동설정 (AutoConfiguration) (0) | 2019.08.11 |
---|---|
[JPA] Entity 칼럼 상속 (0) | 2019.08.10 |
[Spring Boot] 스프링부트에서 JSP 사용하기 (0) | 2018.01.25 |
[JPA] 테이블생성 어디서 할 것인가? (0) | 2018.01.25 |
[Java] HashMap 사용법과 정렬 (0) | 2018.01.08 |