브랜치 전략 얘기하다 보면 feature flag라는 말이 자주 나옴.
Feature flag는 이미 배포된 기능을 켜고 끄는 스위치임.
즉, 코드는 서버에 올라가 있지만 사용자에게는 안 보이게 할 수 있음.
예를 들면 새 결제 기능을 만들었다고 치면,
코드는 main에 merge하고 배포까지 해둠. 대신 new-payment-flow = OFF 상태로 둠.
그 다음 사내 계정만 ON, 특정 고객만 ON, 10%만 ON, 전체 ON 순서로 열 수 있음.
문제 생기면 다시 OFF 하면 됨. 재배포나 롤백보다 훨씬 빠름.
핵심은 deploy와 release를 분리하는 것임.
Deploy는 코드를 서버에 올리는 것.
Release는 사용자에게 기능을 공개하는 것.
이게 되면 브랜치를 오래 들고 있을 필요가 줄어듦.
기능이 완성될 때까지 feature branch에서 버티는 게 아니라,
flag OFF 상태로 main에 빨리 합칠 수 있음.
그래서 충돌도 작아지고, 리뷰도 쉬워지고, 배포도 자주 할 수 있음.
요즘 trunk-based 개발이랑 feature flag가 같이 언급되는 이유도 이거임.
다만 flag를 막 만들고 안 지우면 코드가 지저분해짐.
owner, 목적, 만료일 정해두고 전체 공개 후에는 제거하는 게 좋음.
정리하면, Feature flag는 운영 중 기능 ON/OFF 스위치임.
'TIL' 카테고리의 다른 글
| k3s에서 Auto Scaling 설정하는 방법 (0) | 2026.05.12 |
|---|---|
| DB 커넥션풀은 얼마나 해야할까? (0) | 2026.05.11 |
| 네트워크 에러 Top 5 정리 (0) | 2026.05.08 |
| DMZ 망 및 WAF? 방화벽이 있는 위치 (0) | 2026.05.08 |
| TLS 동작 원리: 왜 처음만 비대칭키를 쓰고 나중엔 대칭키를 쓸까? (0) | 2026.05.08 |