더북(TheBook)

소프트웨어 개발자는 애플리케이션 구성 정보(configuration)와 코드를 분리하는 것이 중요하다는 말을 항상 듣는다. 대부분 이 말은 코드에서 하드코딩된 값을 사용하지 않는 것을 의미한다. 이 원칙을 무시하면 구성 정보가 변경될 때마다 애플리케이션을 재컴파일하고 재배포해야 하므로 애플리케이션이 더 복잡해진다.

애플리케이션 코드에서 구성 정보를 완전히 분리하면 개발자와 운영자가 재컴파일 과정을 거치지 않고 구성 정보를 변경할 수 있다. 하지만 개발자에게는 애플리케이션과 함께 관리하고 배포해야 할 또 다른 산출물이 생겨 복잡함도 가중된다.

많은 개발자가 프로퍼티 파일(YAML, JSON, XML)을 사용해서 구성 정보를 저장한다. 이러한 파일 안에 애플리케이션 구성을 설정하는 것은 간단한 작업이므로 대부분의 개발자는 구성 파일을 소스 제어(있다면)에 추가하고 애플리케이션의 한 부분으로 배포하는 것 이상을 하지 않는다. 애플리케이션 수가 적은 경우 효과가 있지만 수백 개의 마이크로서비스가 많은 인스턴스를 실행하고 있는 클라우드 기반의 애플리케이션을 처리하고 있다면 이 방식은 문제가 된다. 갑자기 쉽고 간단한 프로세스가 중차대한 문제로 급부상해서 전체 팀은 전체 구성 파일과 씨름해야 한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.