Post

Vercel flags split 명령어 훑어보면서 든 생각

Vercel CLI에 생긴 flags split으로 A/B 테스트 트래픽 분할 설정을 처음 공부했다.

Vercel flags split 명령어 훑어보면서 든 생각

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

This post is licensed under CC BY 4.0 by the author.