Feature Flag(기능 플래그)는 제품이나 서비스를 운영하면서 기능의 릴리즈를 더 유연하고 안전하게 만들기 위한 대표적인 전략입니다. 하지만 다양한 언어, 플랫폼, 그리고 팀 간의 일관성을 유지하는 일은 결코 쉽지 않죠. 이런 문제를 해결하기 위해 등장한 것이 바로 OpenFeature입니다.
OpenFeature는 CNCF(Cloud Native Computing Foundation) 산하의 오픈소스 기능 플래그 표준 라이브러리입니다. 다양한 기능 플래그 공급자(vendor)와 연동 가능한 통합 인터페이스를 제공하여, 플러그인 방식의 기능 플래그 관리를 가능하게 해줍니다.
🎯 즉, 벤더 락인 없이 기능 플래그를 통합적으로 관리할 수 있는 산업 표준을 제시하는 것이 핵심입니다.
개념 | 설명 |
---|---|
Flag | 기능의 활성화 여부를 제어하는 플래그 |
Provider | 실제 기능 플래그의 값을 가져오는 백엔드 또는 서비스 (예: LaunchDarkly, ConfigCat, etc.) |
Hook | 기능 플래그 평가 전후에 실행되는 커스텀 로직 |
Evaluation Context | 사용자 정보나 요청 컨텍스트를 포함해 플래그 판단에 필요한 데이터 |
API | 플래그 상태를 확인하고 평가하기 위한 공통 API |
import { OpenFeature } from '@openfeature/js-sdk';
import { MyCustomProvider } from './my-provider';
OpenFeature.setProvider(new MyCustomProvider());
const client = OpenFeature.getClient();
const flagValue = await client.getBooleanValue('new-ui-enabled', false);
if (flagValue) {
showNewUI();
} else {
showLegacyUI();
}
위 코드는 OpenFeature의 JavaScript SDK를 사용한 예입니다.
MyCustomProvider
를 등록하고, 특정 기능 플래그(new-ui-enabled
)의 상태에 따라 UI를 전환합니다.
OpenFeature는 다양한 provider들과 연동이 가능합니다:
OpenFeature는 기능 플래그의 표준화된 인터페이스를 제공함으로써, 개발팀이 더 빠르고 안전하게 기능을 배포할 수 있도록 돕는 도구입니다. 클라우드 네이티브, 멀티팀 협업, 멀티플랫폼을 고려한다면 OpenFeature는 매우 강력한 선택이 될 수 있습니다.