Vercel flags split 명령어 훑어보면서 든 생각
Vercel CLI에 생긴 flags split으로 A/B 테스트 트래픽 분할 설정을 처음 공부했다.
Vercel 체인지로그에서 vercel flags split이라는 CLI 명령어가 새로 추가됐다는 공지를 봤다. Vercel Flags 자체는 이름 정도는 알고 있었는데, 직접 들여다본 적이 없었다. CLI로 트래픽 비율을 나눈다는 기능이 추가됐다는 게 눈에 들어왔고, 어떤 맥락에서 이게 필요한 건지 문서를 찾아봤다.
디자이너로서 A/B 테스트는 익숙한 단어다. 근데 개발 레벨에서 어떻게 구현되는지는 늘 막연하게만 알았다. 이번 공부의 시작점이 그거였다.
1️⃣ 이게 뭐냐?
Vercel Flags는 코드 배포 없이 기능을 켜고 끌 수 있는 피처 플래그 서비스다. 새 UI를 전체 사용자에게 한 번에 배포하는 대신, 플래그로 감싸두고 일부에게만 노출하는 식으로 쓴다. 배포와 기능 출시를 분리할 수 있다는 게 핵심인 것 같다.
이번에 추가된 vercel flags split은 이 플래그에 가중치 분할(weighted split)을 설정하는 명령어다. 각 변형(variant)에 트래픽 비율을 지정해서, off에 95%, on에 5% 같은 식으로 방문자를 나눈다. CLI에서 이 비율을 직접 제어할 수 있게 됐다는 게 이번 업데이트의 핵심인 것 같다.
명령어에 붙는 주요 옵션은 세 가지였다.
--environment: 프로덕션이나 스테이징 같은 배포 환경을 지정한다--by: 트래픽을 나눌 기준 속성 (user.id같은 식별자)--weight: 각 변형에 할당할 트래픽 비율
대화형으로 단계별 설정도 가능하고, 옵션을 전부 넘겨 스크립트에서 한 번에 실행하는 방식으로도 쓸 수 있다.
2️⃣ 내가 든 생각
처음엔 “CLI로 트래픽 비율을 바꾼다”는 게 왜 필요한지 잘 와닿지 않았다. A/B 테스트는 보통 어딘가 대시보드에서 슬라이더를 움직이는 이미지라, 굳이 터미널에서 해야 하나 싶었다.
👉🏻 근데 자동화된 파이프라인에서 플래그를 제어해야 하는 상황을 생각하니 좀 이해됐다. 특정 배포 조건이 충족되면 트래픽 비율을 자동으로 올리는 흐름이라면, GUI보다 CLI가 훨씬 자연스럽다. 사람이 매번 수동으로 클릭하는 게 아니라, 배포 흐름 안에 실험 제어가 들어오는 셈이다.
--by 옵션이 특히 흥미로웠다. 랜덤이 아니라 user.id를 기준으로 나눈다는 건, 같은 사용자가 매번 같은 변형을 본다는 뜻이다. UX 입장에서 이게 꽤 중요한 디테일이라는 생각이 들었다. 실험 중에 새로고침할 때마다 다른 UI가 보이는 건 혼란스럽다. 일관된 경험을 유지하면서 실험한다는 건 디자인 관점에서 당연한 요구인데, 그게 --by 옵션 하나로 처리된다는 게 신기했다.
💡 여기서 드는 질문?
user.id말고 지역이나 기기 종류를 기준으로 나눌 수도 있는 건지 궁금해졌다. 그런 설정이 가능하다면 실험 설계 자체가 꽤 달라질 것 같다.
3️⃣ 앞으로 어떻게 쓸까?
Vercel을 쓰는 프로젝트에서 피처 플래그 기반 실험을 해본다면, 흐름이 어떻게 될지 상상해봤다. 플래그를 코드에 정의하고 분기 처리를 한 뒤, CLI로 트래픽 비율을 설정하는 구조인 것 같다. 문서 기준으로는 그렇게 읽혔는데, 아직 직접 닿아본 적이 없어서 실제로 어떻게 붙는지는 잘 모른다.
공부한 내용 기준으로만 보면, 기존에 별도 분석 도구에서 관리하던 실험 설정이 개발 툴체인 레벨로 내려오는 느낌이 있었다. 그게 편리한 건지 복잡도를 올리는 건지는, 지금 단계에서는 잘 모르겠다.
⭐️ 마지막으로, 디자이너 입장에서 공부하며 느낀 점
공부 끝에 남은 건, A/B 테스트가 대시보드에서 손으로 조작하는 실험에서 코드 흐름 안으로 들어오는 쪽으로 움직인다는 한 줄짜리 인상이다. 플래그 비율을 CLI에서 다룬다는 건, 실험 설정이 배포 파이프라인의 일부로 들어간다는 얘기인 셈이다. 디자이너로서 A/B 테스트를 보던 방식과는 좀 다른 결의 이야기였다.
참고 원문: Configure weighted traffic splits for Vercel Flags from the Vercel CLI