모든 프로젝트에는 하나 이상의 환경이 있습니다. 플래그는 모든 환경에 존재하지만 켜짐·꺼짐 상태, 규칙, 출시 비율은 환경마다 따로 설정됩니다. development에서 new-checkout을 켜도 production은 그대로입니다.
기본 환경
새 프로젝트는 development와 production으로 시작합니다. 프로젝트 설정 → 환경에서 staging, preview, 고객 리전별 환경을 추가할 수 있습니다.
키
각 환경에는 두 종류의 키가 있습니다.
- 서버 키 (
sk_…): 타기팅 규칙과 사용자 목록을 포함한 전체 룰셋을 내려받습니다. 외부에 노출하면 안 됩니다. - 클라이언트 키 (
ck_…): 브라우저와 모바일 앱에 넣어도 안전합니다. 평가는 Shoal 엣지에서 이뤄지고 결과값만 돌려주므로 규칙이 공개되지 않습니다.
TypeScript
// server
createClient({ key: process.env.SHOAL_KEY }); // sk_…
// browser
createClient({ key: import.meta.env.VITE_SHOAL_CLIENT }); // ck_…키 교체
대시보드나 shoal keys rotate로 키를 교체합니다. 이전 키는 24시간 동안 계속 동작하므로 중단 없이 새 키로 바꿀 수 있습니다.
환경 간 상태 복사
스테이징에서 검증한 설정을 한 번에 프로덕션으로 올립니다.
Terminal
npx shoal flags copy new-checkout --from staging --to production실제로 바꾸기 전에 차이를 보여 주고 확인을 받습니다.