공통 DTO 의존성을 최신화하였는데, AWS Parameter Store 환경변수를 가져오지 못하는 이슈가 발생하였습니다.
그래서 개발환경에서 테스트 해보니 서버가 부팅되지 않는 이슈를 발견하였습니다.
./gradlew bootRun --args='--logging.level.root=TRACE'
위의 명령어를 통해서 TRACE 로그를 통해, 자세한 환경변수 설정값을 볼 수 있습니다.

해당 설정을 확인해보면 application-local.yaml, application-local.yml 이 중복으로 imported 된 것을 확인할 수 있습니다.
즉, 레파지토리의 사용하는 환경변수의 확장자가 yaml, yml 이 달라서 문제가 발생하는 것이었습니다.
결론적으로, 1번 방법이 중복으로 이슈가 발생하지 않는 방법이라 생각되어 1번 방법을 선택하기로 했습니다.
SpringApplication run() 메서드를 통해서 기본적으로 SpringApplication 이 실행됩니다.
이때, META-INF/spring.factories 값 들의 클래스들을 등록하게 됩니다.
# PropertySource Loaders
org.springframework.boot.env.PropertySourceLoader=\
org.springframework.boot.env.PropertiesPropertySourceLoader,\
org.springframework.boot.env.YamlPropertySourceLoader
spring.factories 를 보면, env 값을 위와 같이 불러옵니다. 우선순위는 아래로 갈수록 높아집니다.
환경변수를 등록하는 과정을 간단하게 보면 아래와 같습니다.
void environmentPrepared(ConfigurableBootstrapContext bootstrapContext, ConfigurableEnvironment environment) {
doWithListeners("spring.boot.application.environment-prepared",
(listener) -> listener.environmentPrepared(bootstrapContext, environment));
}
ApplicationListener 를 상속받은EnvironmentPostProcessorApplicationListener 에서 이벤트를 consume
ConfigDataEnvironmentPostProcessor
ConfigDataEnvironmentContributors
ConfigDataImporter
YamlPropertySourceLoader
를 거치면서 Yaml 환경변수(application.yaml, application.yml) 값을 읽어 옵니다.
YAML 파일에 대해 권장되는 공식 파일 이름 확장자는 2006년부터 .yaml 입니다. 2024년에는 MIME 유형 application/yaml 완성되었습니다.
https://en.wikipedia.org/wiki/YAML