inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

Communication types

유저서비스의 yml파일 관련 profile 설정방법이 궁금합니다.

352

이승언

작성한 질문수 15

0

안녕하세요
강의를 듣던중 profile이 어떻게 적용되는지 궁금하여 질문드리게 되었습니다.
현재 dev관련 설정파일이 왼쪽
공통 항목 테스트를 위한 application.yml 파일이 오른쪽
입니다.

모두 같은 common이라는 환경변수로 어떤 .yml파일의 값을 사용하는지 확인하였는데요

user-service의

profile설정은 아래 사진처럼 하였습니다.

health-check를 보내서 common값을 확인했을 때,

아래사진 처럼 application.yml파일의 common값을 사용하는 것을 확인하였습니다.
공통으로 가져오는 application.yml파일의 common값과
ecommerce-dev.yml의 common값이 겹칠 때

profile을 dev라 설정했기 때문에
health-check로 요청시
common값에 common-dev 로 찍힐것이라 생각했었습니다.
혹시 common-dev로 안찍히는 이유가 공통으로 가져오는 application.yml값과 환경변수가 겹친다면 공통으로 가져오는 yml파일의 환경변수로 찍히는 것인지
제가 profile설정을 잘못한 것인지 궁금해 질문드렸습니다 ㅠㅠ

spring-boot jpa 아키텍처 spring-cloud kafka msa rabbitmq

답변 1

-1

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

Spring Boot에서 profile을 설정할 때, application-{profile}.yml 또는 application-{profile}.properties 파일을 사용합니다. 이런 파일들은 application.yml 또는 application.properties 파일과 함께 사용하여 환경에 따른 구성을 구분할 수 있게 해줍니다. 예를 들어 dev 프로파일을 활성화했을 경우 application-dev.yml 파일의 설정이 application.yml 파일의 설정보다 우선 적용됩니다.

다만, 여러 프로파일이 활성화 되어있을 때 마지막에 정의된 프로파일의 설정이 우선 적용된다는 ‘last-wins’ 전략에 따라 프로파일이 적용됩니다. 그리고 프로파일의 설정값은 같은 위치에 있는 파일들끼리만 오버라이드가 가능합니다.

설정 파일이 여러 위치에 정의되어 있다면, 예를 들어 classpath:/cfg/classpath:/ext/가 있다면 이들 위치 그룹 간의 오버라이드 규칙은 다를 수 있습니다. 이 경우, 해당 위치 그룹별로 프로파일에 해당하는 설정 파일을 찾아서 적용합니다.

따라서, 제시하신 common 변수에 대해 ecommerce-dev.ymlapplication.yml 파일에서 겹치는 설정이 있다면 dev 프로파일이 활성화되었다 하더라도, 어떤 common 값이 적용되는지는 파일의 위치, 우선 순위 및 프로파일이 활성화된 순서에 따라 달라질 수 있습니다. 점검해야 할 사항으로는 실제 dev 프로파일이 올바르게 활성화 되었는지, ecommerce-dev.yml 파일의 위치가 application.yml에 우선하는지 등이 있습니다.

상세한 프로파일 우선순위에 대한 내용은 Spring Boot 공식 문서의 “18.2. Properties and Configuration > 18.2.8. Change Configuration Depending on the Environment” 및 “7. Core Features > 7.2. Externalized Configuration > 7.2.3. External Application Properties > Profile Specific Files” 부분을 참조해보시는 것이 좋습니다.

자세한 내용은 아래 링크에서 확인하실 수 있습니다.
- 프로파일 변경에 따른 설정 변경 방법: https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto.properties-and-configuration.change-configuration-depending-on-the-environment
- 프로파일 별 특정 파일: https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#features.external-config.files.profile-specific

이 정보가 문제 해결에 도움이 되길 바랍니다.

kafka 업데이트 강의 듣고 시포요

0

82

1

강의 교안

0

68

1

마이크로서비스간 통신 시, 인증 처리

0

76

1

api gateway 에서 인증 처리

0

62

1

섹션 19 질문드립니다

0

50

1

강의 자료 업데이트

0

80

1

부하분산 강의 섹션

0

55

1

강의자료는 어디에서?

0

68

1

강의 자료는 어디서 다운 받을 수 있나요?

0

108

1

전체 사용자 조회시 오류

0

56

1

혹시 pk 외 별도의 id 를 부여한 이유가 있을까요 ??

0

107

2

학습 방향

0

93

2

카프카 커넥터 사용 목적 문의

0

84

2

kafka 강의

0

104

2

서비스 디스커버리 종류

0

85

2

강의 자료에 대해서 궁금해요

0

113

2

GlobalFilter, LoggingFilter가 동작하지 않습니다.

0

87

2

Kafka Source Connect 버전 에러

0

82

2

소스커넥터는 사용안한 거 맞죠?

0

79

2

강의자료 업데이트 문의

0

93

2

강의에서 BCryptPasswordEncoder 에 역할(5-2)

0

55

1

강의 업데이트 계획이 궁금합니다.

0

110

2

MSA 애플리케이션에 Spring Web과 Spring Data JPA를 사용하는 것이 바람직한지 궁금합니다. (MSA 설계와 관련된 질문입니다)

0

160

2

어떤 것이 업데이트 된 건가요?

0

160

2