This search ordering lets you specify default values in one configuration file and then selectively override those values in another. You can provide default values for your application in application.properties (or whatever other basename you choose with spring.config.name) in one of the default locations. These default values can then be overridden at runtime with a different file located in one of the custom locations.
For example, if you have some Redis configuration and some MySQL configuration, you might want to keep those two pieces of configuration separate, while requiring that both those are present in an application.properties file. This might result in two separate application.properties files mounted at different locations such as /config/redis/application.properties and /config/mysql/application.properties. In such a case, having a wildcard location of config/*/, will result in both files being processed.
그리고 개발 시에 나는 스프링만 실행을 거의 안해서 그간 필요성을 못느꼈는데,
이번에 tmdb token이 필수 구성 값이 되면서 어딘가에 애플리케이션이 사용하는 속성의 문서화를 할 필요가 있다 느꼈음
그래서 고민하다 config 디렉토리를 추가하여 로컬에서 값을 복사해서 쓰고 원하는 추가 설정을 하도록 해봤음
기본 값 지정에 대하여
사실 난 실사용 해볼 때 주로 도커 컴포즈로 환경을 구성하는데 환경변수를 넣어야 하는 부분이 귀찮다
그래서 application.properties 파일이든 어디에서든 기본 값을 설정할 수 있으니 종종 고민하고 있는데,
아직은 로컬에서 편하게 쓰자고 바꾸기엔 운영 환경에도 영향을 미치므로 값이 없으면 차라리 빠르게 실패하는 쪽을 선택하고 infra에 복붙 가능하도록 문서화 해놨음ㅠ
근데 뭐가 나은건진 아직도 모르겠어서 자주 고민됨. 나중에 이것 때문에 힘들어지면 꼭 댓글 달아줘,, 나 너무 궁금해,,,
✅ 작업
git secret에 추가
운영 환경에서 배포 시 git secret을 환경 변수로 사용하도록 추가
https://github.com/viiviii/friendly-pancake/blob/82a3e06020493a21623e3f383487f256ddeb71f8/.github/workflows/api-deployment.yml#L40-L53
compose에서 해당 값을 외부 속성 파일로 만들도록 추가
https://github.com/viiviii/friendly-pancake/blob/3c399fdda4e1d2d0c6b669c446460e08c987952c/compose-service-api.yml#L1-L22
📝 메모
배포 시
기존엔 DB 값만 있어서 1개의 application.properties로 만들어서 관리했었는데,
현재 git secret에 각각의 값을 저장하므로 개별 폴더로 나눠 만드는게 가장 쉽다고 판단하여 이 방식으로 배포 스크립트를 변경함
이건 문서에서 아래 파트들을 보고 따라했음
나중에 k8s등으로 관리한다면 configtree 사용 부분을 다시 읽어보십시오
로컬에서
그리고 개발 시에 나는 스프링만 실행을 거의 안해서 그간 필요성을 못느꼈는데, 이번에 tmdb token이 필수 구성 값이 되면서 어딘가에 애플리케이션이 사용하는 속성의 문서화를 할 필요가 있다 느꼈음
그래서 고민하다 config 디렉토리를 추가하여 로컬에서 값을 복사해서 쓰고 원하는 추가 설정을 하도록 해봤음
기본 값 지정에 대하여
사실 난 실사용 해볼 때 주로 도커 컴포즈로 환경을 구성하는데 환경변수를 넣어야 하는 부분이 귀찮다 그래서 application.properties 파일이든 어디에서든 기본 값을 설정할 수 있으니 종종 고민하고 있는데, 아직은 로컬에서 편하게 쓰자고 바꾸기엔 운영 환경에도 영향을 미치므로 값이 없으면 차라리 빠르게 실패하는 쪽을 선택하고 infra에 복붙 가능하도록 문서화 해놨음ㅠ
근데 뭐가 나은건진 아직도 모르겠어서 자주 고민됨. 나중에 이것 때문에 힘들어지면 꼭 댓글 달아줘,, 나 너무 궁금해,,,