1. 개념
배포 된 서비스의 기능(feature) 사용 여부를 toggle 시켜주는 기능(or서비스) 이다.
단순히 feature 를 toggle 하는 것에 더해, AB test 를 더 간편하게 하도록 만드는 활용도 가능하다
2. 예시
11번가 여행 서비스를 예로 들자면,
'국내숙박 검색' 영역 중 '상세조건' 필터링 기능에 '가격대' 필터 기능이 있다.
이 필터에서 버그가 발생한 경우, 서비스를 재배포 하지 않고 해당 기능(feature) 를 사용하지 않도록 토글하면
재배포에 걸리는 시간 및 revert, 다시 merge( & pr) 하는 데 드는 수고를 덜 수 있을 것이다.
토글상태 : ON | 토글상태 : OFF |
3. TBD(Trunck Based Development) 와 함께 사용
master 브랜치에서 직접 개발하는 TBD 의 경우에 특정 feature 를 사용하지 않도록 하려면 git revert 를 시켜야 하는데,
굳이 revert 하지 않고 feature flag 서비스로 사용하지 않도록 토글만 시켜준다면 편할 것이라 생각 된다.
4. 사용 방법
1. json, configMap 등을 이용
2. 서비스를 이용
- LaunchDarkly : https://launchdarkly.com/why-launchdarkly/
- unleash : https://www.getunleash.io/feature-management
ex) unleash 에선 아래의 다양한 기능을 가진 feature flag 서비스를 제공한다.
feature toggle | |
Gradual Rollout | |
AB test |
참고 :