작성
·
436
1
질문이 있습니다. local, dev, prod
이렇게 서버를 구성하는 경우가 많은데
properties 구성도
properties.local, properties.dev, properties.prod
이렇게 3 개를 구성해서 사용하고 있는데요. 그런데 데이터베이스 접속 정보, 각종 시크릿키 들 같은 경우에는 properties 파일에서 구성을 하면 굉장히 안좋을 거같은데요
저런 민감한 소스코드에서 다루면 안좋을거 같은데 저런 정보들은 어떻게 properties 에서 관리하나요?
만약 properties에서 관리 대상이 아니면 어디서 어떻게 관리해야 할까요 ?
답변 2
3
좋은 질문 주셔서 감사합니다. 여러 방법이 있을 수 있는데, 그런 정보를 지금처럼 properties에 넣어서 쓰시지만, prod 용 프로퍼티 파일은 버전관리에서 빼고, prod 서버에서 만들어 제공하는 방법도 있을 수 있겠구요.
또는 아에 프로퍼티 파일에서 해당 정보는 빼고, prod에서 서버를 띄울 때 해당 서버의 환경 변수에 그 값들을 넣어두면 스프링 부트는 그걸 더 높은 우선 순위로 여겨 그 값을 사용할테니 그것도 역시 또 다른 방법이 될 수 이습니다.
또는 spring cloud config라는 걸 이용해서 설정값들을 원격으로 관리하는 방법이 있고요.
이상적으로는 spring (cloud) vault라고 시크릿 저장소를 이용하는 방법이 있습니다. spring config랑 spring vault는 대신 좀 더 학습이 필요하겠죠.
감사합니다.
1
많은 대안을 알려주신 점 감사합니다.
가장 쉽게 적용할 수 있는 부분이 서버 환경변수 설정이겠네요.
그래도 cloud config
라는 키워드도 한번 알아보겠습니다. 친절한 답변 감사합니다.