[Gradle] Profile 구성하기

나혼자개발 Velog!·2021년 12월 30일

Gradle의 Profile은 스프링관련 설정이나 Database 관련 설정 또는 일반 변수를 지정할 수 있는 파일이다. 그러나 개발을 하는데 필요한 환경 값과 테스트 시 필요한 값 그리고 실제 서비스 운영에서의 값이 다를 수 있기 때문에 Profile을 분류하여 운용할 필요가 있다.

Profile 설정 방법은 다음과 같다.

1) build.gradle 스크립트 추가

(생략) ...
 
ext.profile = (!project.hasProperty('profile') || !profile) ? 'dev' : profile
sourceSets {
    main {
        resources {
            srcDirs "src/main/resources", "src/main/resources/env/${profile}"
        }
    }
}

여기에서, ext는 추가 환경변수(extra profile)로써 'ext.{variation}' 형태로 선언이 가능하며, 사용 시 ${variation} 형태로 적용 가능하다. 위 스크립트에서는 프로젝트에 선언된 Property 값이 있는지 확인하고 없으면 기본 값인 'dev'를 profile 변수에 저장하고 있다.

이후 sourceSets 스크립트를 통해 리소스 경로를 "src/main/resources" 그리고 "src/main/resources/env/${profile}" 값으로 추가한 것을 볼 수 있다.

2) Boot 시 Profile 변수 설정

build.gralde에서 추가했던 "project.hasProperty" 스크립트는 스프링 부트 내부 컨테이터 실행 시 Profile 값을 지정하여 사용 가능하며, 해당 설정은 상단 메뉴에서 [Run] > [Edit Configurations...] 를 선택하여 생성된 화면에서 가능하다.

(※ 본 프로젝트는 개발 도구를 Intellij를 사용하고 있으므로 해당 도구를 기준으로 설명하겠다!)

위 그림은 스프링 부트 내부 컨테이너의 설정 창을 나타낸 것이다. 그림에서 보듯이 Spring Boot 영역의 Active profiles라는 입력 란에서 dev라는 값으로 Profile의 경로를 설정해주고 있다.

profile
생각을 행동으로, 행동을 습관으로!

0개의 댓글