본문 바로가기
Issue/Server

[Spring] IntelliJ에서 환경변수 값을 수정해도 application.yml 파일의 placeholder(${})에 이전 값이 매핑되는 문제

by chickenman 2025. 8. 16.

1. 현상

프로젝트에서 DB의 비밀번호와 같은 secret 값은 application.yml 파일에 기재하면 안되기 때문에 환경 변수에 넣어 관리하고 있었습니다. 실제 application.yml 파일과 환경 변수 세팅은 아래와 같습니다. 

 

만약 환경 변수의 값을 바꾸고 spring 어플리케이션을 재시작하면 값이 정상적으로 파싱될 줄 알았는데, 지속적으로 수정하기 전 값을 물고 있었습니다. 

2. 원인

인텔리제이 내부적으로 application.yml의 파일의 Placeholder가 치환되면 해당 값을 캐시하고 사용하는 것으로 확인되었습니다. 

3. 해결

Intellij에 저장되어 있는 캐시를 무력화시켜주시면 됩니다.

File -> Invalidate Caches..를 누르고 캐시를 무력화시켜주시면 Intellij가 재시작됩니다. 그 후 spring application을 재기동하면 수정한 환경 변수 값이 잘 매핑된 것을 확인할 수 있습니다.