기능 플래그란 (또는 기능 토글이란)?

기능 토글 또는 릴리스 토글이라고도 하는 기능 플래그를 활용하면 코드 자체를 업데이트하지 않고도 소프트웨어의 특정 기능을 활성화하거나 비활성화할 수 있습니다.

기능 플래그를 활용하면 새 기능을 사용자에게 즉시 제공하지 않고도 마스터로 병합 및 마스터에서 배포가 가능하므로, 트렁크 기반 개발 방식으로 CI/CD를 수행하려는 경우 특히 유용합니다. 또한 출시와 배포 단계를 구분하면 새 기능의 이용 가능 여부에 따라 제품 및 마케팅 활동을 더욱 간편하게 조율할 수 있습니다.

간단한 구성 파일로 기능 플래그를 구현할 경우 일부 환경(예: 테스트)에서는 기능을 활성화하고, 다른 환경(예: 스테이징 및 라이브)에서는 해당 기능을 비활성화할 수 있습니다. 단, 기능 플래그를 너무 자주 사용하면 복잡성이 증대하여 관리하는 데 수동 작업의 상당한 오버헤드가 발생할 수 있습니다.

시간이 많이 소요된다고 생각하거나 기능 플래그로 사용자 대상의 A/B 테스트를 실행하려는 경우, 데이터베이스나 전문 도구를 사용하면 관리가 한결 간편해집니다.