Community

설정값을 외부에서 관리하자!🧞‍♂️ 프로젝트의 환경변수 관리, 어떻게 하고 계신가요? Spring, SpringBoot를 통해 개발하다보면 .yml 파일이나 .properties 파일로 관리되는

설정값을 외부에서 관리하자!🧞‍♂️ 프로젝트의 환경변수 관리, 어떻게 하고 계신가요? Spring, SpringBoot를 통해 개발하다보면 .yml 파일이나 .properties 파일로 관리되는 환경변수들을 필연적으로 만나게 됩니다. 💁🏼‍♀️ 사실 파일 종류가 중요한 것은 아니고, 핵심은 어떤 형태로든 설정파일에 저장하여 관리하고 있다는 점이죠. 📃 저희 회사의 경우는... 1️⃣ 소스코드에 yml, properties파일로 있기도 하고 (local이나 개발환경까지는...) 2️⃣ 인스턴스가 구동되는 WAS에 있기도 해요. (운영환경인 경우!) 서비스 별로, 또는 환경에 따라 여기 저기 산재되어 있는 설정파일!⚙️ 여러가지 환경변수를 가지고 있는 설정파일은 서비스의 여러 구동방식을 결정 짓는다는 점에서 매우 중요한 파일입니다.😎 기존에 설정파일에 있는 환경 변수를 바꾸기 위해선 1️⃣ 소스코드를 수정, commit 후 빌드&배포 과정을 거친다. 2️⃣ WAS에 접속하여 직접 파일을 수정 후 인스턴스를 재기동한다. 크게 위 2가지 방법으로 가능했는데요. 가령 A/B 테스트나 flag값등으로 toggling되며 제공되는 서비스 등, 환경변수에 의해 로직이 달라지고, 또 그 환경변수의 수정이 잦은 경우... 위 방법들은 변수가 바뀔때마다 빌드&배포해야 한다는 번거로움이 있습니다. (핫픽스 배포가 주는 긴장감이란...🤦‍♀️) 이럴때 도입을 고민해 볼 수 있는것이 바로 Spring Cloud Config 입니다.👩‍💻 WAS가 몇대든지, 서비스의 빌드 배포 재기동 없이! 설정파일을 외부로 분리하여 관리할 수 있게 해주거든요. 개발/테스트/운영 등 다양한 환경구성을 편리하게 관리 할 수 있습니다. 설정파일을 제공해주는 별도의 서버를 구성하고, 각각의 어플리케이션은 이 서버로부터 설정 정보를 받아오는 방식입니다.🧑‍🔧 즉, 어플리케이션 구동중에 설정값을 수정해야 한다면, 이 설정 서버만 변경하면 됩니다. 어플리케이션의 빌드&배포를 하지 않아도 되는 것이죠! (야호🤸‍♂️) 설정파일 수정도 간편하고, 어플리케이션 배포도 필요없고... 만능처럼 보이는 Spring Cloud Config!🦸‍♀️ 당장 도입하지 않을 이유가 없어 보이는군요?! 안그래도 회사에서 몇개의 프로젝트에 Spring Cloud Config를 도입했습니다. 과연 장점만 있는 서비스일까요? 다음 포스팅에서는 Spring Cloud Config를 적용+운영하며 느낀점들을 소개해 드리겠습니다! 그럼 다음 포스팅에서 만나요~👋

알림

알림이 없습니다