properties(프로필,profile)의 활용

바그다드·2023년 7월 20일
0

스프링 부트에서는 profile을 이용해 개발 환경에 따른 설정값을 편리하게 설정할 수 있다.
간단한 예를 들어 개발 환경에서는 trace단위의 로그를, production 환경에서는 info단위의 로그를 남기고자 할 때, profile을 활용하면 설정 값을 편리하게 수정할 수 있다.

Profile 생성

  • 프로필을 정의하기 위해 먼저 application.properties에 다음 코드를 작성해주자.
    별다른 설정이 없다면 application.properties이 기본값으로 설정된다.
logging.level.org.springframework=info

currency-service.url=http://default.qkrmekem.com
currency-service.username=defaultusername
currency-service.key=defaultkey

환경별 프로필 설정

  1. 기본 환경에서 사용될 프로필을 설정해주자.
  • 로그는 info단위로 출력하고, currency-service라는 prefix를 가진 값이 있다.
logging.level.org.springframework=info

currency-service.url=http://default.qkrmekem.com
currency-service.username=defaultusername
currency-service.key=defaultkey
  1. 프로필 값을 활용하기 위해 클래스파일을 생성해주자
@ConfigurationProperties(prefix = "currency-service")
@Component
public class CurrencyServiceConfiguration {

    private String url;
    private String username;
    private String key;

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getKey() {
        return key;
    }

    public void setKey(String key) {
        this.key = key;
    }
}
  • @ConfigurationProperties(prefix = "currency-service")
    properties값과 매칭할 때 사용되며 properties에서 설정한 prefix와 필드명을 조합해 properties값과 매칭시킨다.
    예를들어 위에서는 currency-service.url값과 매칭된다.

  • 값을 확인해보면 프로필 값을 반환하는 것을 확인할 수 있다.

    그럼 다른 환경에 적용할 프로필은 어떻게 설정할까?

  1. 개발 환경에 적용할 application-dev.properties를 생성하고 아래의 코드를 입력하자.
logging.level.org.springframework=debug
currency-service.url=http://dev.qkrmekem.com
currency-service.username=devusername
currency-service.key=devtkey
  1. 프로필 우선순위를 dev프로필로 변경해주자.
    application.properties에 코드 추가
spring.profiles.active=dev
  • 이제 다시 값을 확인해보면 dev프로필의 값이 반환되는 것을 확인할 수 있다.

이러한 방법을 통해 개발 환경에 따른 프로필을 별도로 설정해줄 수 있다. 앞서 properties값을 직접 가져와 사용하는 방법을 알아봤는데, @ConfigurationProperties을 이용해 프로필 값을 활용할 수 있다는 것도 알게되었다!!

profile
꾸준히 하자!

1개의 댓글

comment-user-thumbnail
2023년 7월 20일

글 잘 봤습니다, 많은 도움이 되었습니다.

답글 달기