-
2024.06.23 feature toggleTIL 2024. 6. 25. 23:33
Feature Toggles (aka Feature Flags)
Feature Flags can be categorized into several buckets; manage each appropriately. Smart implementation can help constrain complexity.
martinfowler.com
마틴 파울러의 피쳐 토글에 관한 글.
서비스를 점진적으로 오픈할 때 기본적인 방법으로만 사용한 적이 있다.
properties로 기능 사용 여부를 분리했었다.
글에서는 여러 가지의 토글 방법을 소개한다.
단순히 서버에서 제어하는 것 말고도 클라이언트의 http 헤더에 값을 보고 기능을 실행시키는 등의 방법도 있다.
AB테스트도 피쳐 토글을 통해 할 수 있다.
기능의 수명과 동적인 변화에 따라 여러 토글 종류로 나뉘는데..
얼마나 오래 사용할 것인지를 등을 보고 토글 구현방법을 정해야 한다.
일시적인 토글은 if/else로도 충분하다.
밑의 예시들을 봐도 팀이 커지고 여러 기능을 동시에 개발할 때나 의미 있는 작업이다.
trunk branch 전략을 사용하면서 기능을 숨기는 것이다.
세부 구현은 회사마다 구현이 좀 다르다.
당근은 aop를 사용해 구현했고
맘시터는 Unleash로 구현했다.
둘 다 뭔가 마법이 있다기보다 db or 설정에서 읽은 값을 if/else로 구분하는 것이다.
음 당근은 직접 구현했지만 코드가 전반적으로 잘 짜여있다.
sample code
GitHub - ChoiGiSung/feature-toggle
Contribute to ChoiGiSung/feature-toggle development by creating an account on GitHub.
github.com
- https://medium.com/daangn/%EB%A7%A4%EC%9D%BC-%EB%B0%B0%ED%8F%AC%ED%95%98%EB%8A%94-%ED%8C%80%EC%9D%B4-%EB%90%98%EB%8A%94-%EC%97%AC%EC%A0%95-2-feature-toggle-%ED%99%9C%EC%9A%A9%ED%95%98%EA%B8%B0-b52c4a1810cd
- https://green-labs.github.io/feature-flags-1
- https://tech.mfort.co.kr/blog/2022-11-24-feature-toggle/
'TIL' 카테고리의 다른 글
2024.06.29 deadlock (0) 2024.06.29 2024.06.27 canary, AB test (0) 2024.06.27 2024.06.16 (0) 2024.06.15 2024.06.12 How Pinterest Scaled to 11 Million Users With Only 6 Engineers (0) 2024.06.14 2024.06.10 Concurrency Challenges in Database Transactions (0) 2024.06.10