본문 바로가기
Shoal
Shoal

시작하기

소개

Shoal은 타입스크립트 팀을 위한 기능 플래그·원격 설정 서비스입니다. 코드를 꺼 둔 채 배포하고, 원하는 사람에게만 공개하고, 클릭 한 번으로 되돌리세요.

Shoal은 코드의 배포와 공개를 분리합니다. 기능을 플래그 뒤에 두고 꺼진 상태로 프로덕션에 배포한 다음, 동료 한 명, 베타 그룹, 트래픽의 5%에게 차례로 켜면 됩니다. 다시 배포할 필요가 없습니다.

동작 방식

앱은 작은 SDK로 Shoal과 통신합니다. SDK는 시작할 때 환경의 룰셋(모든 플래그를 담은 작은 JSON 문서)을 내려받아 플래그를 로컬에서 평가합니다. 평가할 때 네트워크를 기다리지 않으므로 플래그 확인 비용은 마이크로초 수준입니다.

app.ts
import { createClient } from "@shoal/sdk";

const shoal = createClient({ key: process.env.SHOAL_KEY! });

if (await shoal.isOn("new-checkout", { user: { id: "u_42", plan: "pro" } })) {
  renderNewCheckout();
}

대시보드에서 플래그를 바꾸면 연결된 SDK가 스트리밍 연결로 약 1초 안에 변경 사항을 받습니다.

왜 Shoal인가

  • 타입이 있는 플래그. shoal generate가 플래그 키를 타입스크립트 유니언으로 만들어 주므로, 오타는 조용한 false가 아니라 컴파일 오류가 됩니다.
  • 로컬 평가. 요청마다 네트워크를 타지 않고, 마지막으로 받은 룰셋으로 오프라인에서도 동작합니다.
  • 엣지 지원. 의존성 없이 Node, Bun, Deno, 브라우저, 엣지 런타임에서 실행됩니다.
  • 모든 변경 기록. 누가, 무엇을, 왜 바꿨는지 남고, 기록 화면에서 되돌릴 수 있습니다.
이 페이지 수정마지막 수정:
이 페이지가 도움이 되었나요?

검색어를 입력하세요. 브라우저 안의 로컬 색인에서 찾습니다.

↑ ↓ 이동↵ 열기MiniSearch · local