Logan.

2026-05-15

Storybook 도입 과정에서 손에 남은 것들 그리고 앞으로의 기대

검증을 마치고 도입을 시작하는 시점에서 정리하는 결정들. 안전망의 모양, 못 채운 칸, 앞으로 활용하면서 측정하고 싶은 것들.

by Logan·14분 읽기·part 9 of 본격 Storybook 도입·#storybook #introduction #react-native

안녕하세요, 로건입니다 👋

긴 시리즈도 이제 마지막 편입니다. 여기까지 오신 분들 정말 감사해요.

검증 단계를 마치고 본격 도입을 시작하는 지금, 몇 달간 만들어 본 결정들을 한 자리에 모아두려고 합니다. 1년치 운영 회고는 아니에요. 출발선의 풍경이고, 앞으로 어떻게 활용하면서 어떤 가설을 측정해볼지에 대한 그림입니다. 시리즈에서 한 번씩 나왔던 결정들을 한 페이지에 압축해두면, 비슷한 길을 시작하시는 분께 한 번에 펼쳐볼 지도가 되지 않을까 했어요.

안전망의 출발선 — 6개 레이어

먼저 우리 팀의 테스트 레이어 분담을 한 번에 보여드릴게요.

위로 갈수록 비싸지고, 본질에 가까워져요. 아래로 갈수록 싸고, 자주 돕니다. Storybook은 Layer 2~5를 차지하는 그물입니다 (web과 on-device, 두 결로). 모든 칸을 채우는 것이 목표가 아니라, 각 칸의 주인이 누구인지 분명히 하는 것이 안전망 운영의 본질이에요.

play 함수의 Tier 분류 — 모든 곳에 달지 않는다

이게 검증 단계에서 가장 늦게 안정화된 부분이에요. 처음엔 모든 컴포넌트에 play 함수를 달려고 했는데, 작성 비용이 도입 자체를 좌초시킬 뻔했거든요. Tier로 나눈 다음에 합리적이 됐어요.

Tier정의play 적용예시
Tier 1핵심 사용자 경로필수Button, FormField, BottomSheet
Tier 2자주 회귀 발생 영역권장ToggleSwitch, Tabs, Stepper
Tier 3보조 UI, 표시 전용안 함Badge, Divider, Spinner
Showcase갤러리 grid안 함 (마찰)AllTones, AllSizes

모든 컴포넌트에 play를 달았다면 작성 시간도 유지보수 부담도 무거웠을 거예요. 안전망의 그물눈을 조밀하게가 아니라 적절하게 짜는 것이 핵심이었습니다.

검증 단계에서 만들어진 산출물

숫자로 정리하면 이래요.

항목수치
컴포넌트 스토리200개 근방
play 인터랙션 테스트60개 근방
Figma 자동 변환 스토리80개 근방
일괄 삭제한 페이지 스토리 (3편)-106
Chromatic baseline200+ 스냅샷
자체 도구 (Visual Builder)S3 정적 런타임으로 정착
in-app Storybook (on-device)DebugView 안 토글로 도입 (8편)

이 표는 지금까지 만든 것의 사진이지, 측정된 효과는 아니에요. 효과는 본격 도입 이후 측정할 예정입니다. PR당 평균 회귀 발견 건수, 디자인 검수 시간, 머지 속도 — 이런 지표를 도입 전후로 비교해보고 싶어요. 그게 다음 회고의 재료가 되겠죠.

아직 못 채운 칸들

이게 가장 정직하게 적어두고 싶은 부분이에요. 의도적으로 미뤄둔, 또는 다음 분기로 넘긴 영역들입니다.

영역상태이유
addon-a11y 자동 audit⏳ 미시작우선순위 낮음. 디바이스 QA에서 함께 검수 예정.
test-runner CI 통합 (Tier 2까지)🔄 일부만Tier 1만 자동, Tier 2는 수동 트리거.
Living Style Guide (MDX 문서)⏳ 미시작argTypes 콘트롤로 충분하다는 판단.
Visual Builder 디자이너 베타 배포🔄 시작 직전베타 user 2~3명 발급 예정. (7편)
in-app Storybook ROI 측정🔄 도입 직후디자이너 검수 사이클 / 디바이스 QA 회귀 감소량 (8편)
Detox e2e와의 dual 라벨링⏳ 미시작mock 무한 회귀 위험. 페이지 스토리 폐기와 같은 이유.
iOS vs Android 별도 베이스라인⏳ 미시작우리 케이스에서는 차이가 작아 무료 플랜 비용 우선

빈 칸을 모두 채우는 게 목표가 아니에요. 각 칸이 누구의 책임인지 명시하는 것이 안전망 운영의 본질이라고 1편부터 7편까지 반복해서 말씀드렸어요. 이 표가 그 메시지의 가장 정직한 증거입니다.

도입 직후, 측정하고 싶은 가설들

본격 도입을 시작하면서 측정해보고 싶은 가설 몇 개를 미리 적어둘게요. 6개월 뒤에 다시 적을 글의 재료가 될 거예요.

가설 1. PR 리뷰에서 "이건 토큰이 다른데요" 라는 디자이너 코멘트가 절반 이하로 줄어든다 (Visual Builder + Figma 변환 워크플로 효과).

가설 2. 디바이스 QA 단계에서 발견되는 컴포넌트 단위 회귀가 분기당 한 자릿수로 떨어진다 (Storybook play + Chromatic + in-app Storybook 안전망 효과).

가설 3. 신규 컴포넌트 한 개를 카탈로그에 추가하고 시각 검수까지 받는 시간이 평균 30분 이하로 들어온다 (작성 표준 + 자동 변환 효과).

가설 4. 디자이너가 Visual Builder를 Figma 다음 단계로 받아들인다 — 즉, 디자인 → 빌더 → 명세 → 코드라는 새 흐름이 정착한다.

가설 1~3은 정량으로 측정할 수 있어요. 가설 4는 정성에 가깝지만, 빌더 사용량 (월 PUT 횟수, 활성 user 수)으로 proxy 측정 가능합니다.

다시 시작한다면 이렇게 했을 것

검증 단계에서 가장 늦게 깨달은 결정 세 가지를 정리해두려고 해요. 이미 시작하신 분도, 지금 도입을 시작하시는 분도 똑같이 한 번씩 부딪힐 갈림길이거든요.

결정 1 — 페이지 스토리는 처음부터 시작하지 않는다

3편에서 한 번에 지운 그 106개 페이지 스토리. 다시 시작한다면 그 시간 전체를 절약하고 컴포넌트 스토리에 집중하겠어요. 처음엔 "1:1 매칭이 가능하지 않을까?" 하는 환상이 있었는데, mock 무한 회귀의 함정이 너무 명백했어요. 어떤 영역은 처음부터 디바이스 QA에 맡기는 게 답이라는 걸 가장 빨리 인정하는 게 검증 단계의 최선이었을 거예요.

결정 2 — Chromatic은 1주차에 Pilot으로 켠다

6편에서 단계적으로 풀었던 Pilot 단계를 몇 주 뒤에야 시작했어요. 다시 시작한다면 첫 PR 머지하기 전에 Pilot을 켜겠어요. 빠르면 빠를수록 false positive 패턴을 빨리 발견하고, 도입 자체의 ROI를 한 자릿수 PR 만에 증명할 수 있어요. 그게 팀의 신뢰를 끌어올리는 가장 빠른 방법이에요.

결정 3 — 스토리 작성 표준을 공유 문서로 만든다

2편에서 정리한 한 줄 규칙들 — argTypes 전수 노출, 대표 스토리만 play, StyleSheet.create만, shim은 고치지 말기 등 — 이게 사실 내 머릿속에만 있었어요. 새로 합류한 분이 똑같은 실수를 다시 하시더라고요. 다시 시작한다면 첫 컴포넌트 스토리를 짤 때 이 규칙들을 사내 위키에 박아두는 것부터 하겠어요. 도구가 자동으로 강제할 수 있는 규칙은 ESLint 룰로, 사람만 결정할 수 있는 규칙은 PR 리뷰 체크리스트로요.

그리고 한 줄

검증부터 도입까지 짧지 않은 시간이 걸렸어요. 처음엔 "Storybook 도입"이라는 한 줄짜리 OKR이었는데, 끝나고 보니 팀이 디자인을 검수하는 방식, PR이 머지되기 전에 거치는 단계, 디자이너와 개발자가 의사소통하는 도구가 다 같이 바뀌어 있더라고요. 그리고 어쩌면 가장 의외였던 건 — 안전망을 짜다가 우리만의 도구 한 칸(7편) 과, 디바이스 위 한 겹(8편) 까지 더 얹게 됐다는 것.

만약 여러분이 비슷한 갈림길에 서 계신다면, 마지막으로 한 줄 드리고 싶어요.

도구가 아니라 정책이 안전망을 만듭니다.

Storybook을 깔고, Chromatic을 붙이고, play 함수를 짜는 건 1주일이면 됩니다. 그런데 어떤 회귀를 잡을지, 어떤 회귀를 안 잡을지, 합격 받은 스토리를 어떻게 보호할지, false positive를 어떻게 줄일지 — 이런 정책들이 정착하는 데 몇 달이 걸렸어요. 그 정책들이 모여서 지금의 그물이 됐고, 이제 그 그물 위에서 실제로 안전망이 어떻게 작동하는지 측정해볼 차례입니다.

만약 여러분도 RN 프로젝트에 Storybook 도입을 고민 중이시라면, 도구 자체보다 정책 한 묶음을 같이 설계하시는 걸 추천드려요. 시리즈에서 풀었던 한 줄 규칙들이 그 시작점이 될 수 있을 거예요. 그리고 안 짤 영역을 처음부터 정직하게 비워두세요. 그게 1주일 뒤에 후회를 가장 적게 남기는 결정이더라고요.

긴 시리즈 읽어주셔서 다시 한 번 감사합니다. 안전망이라는 단어가 처음보다 조금 더 손에 잡히는 모양으로 다가왔으면 좋겠어요. 도입을 시작한 다음의 풍경은, 몇 달 뒤에 다시 글로 인사드릴게요.

related — in series · 본격 Storybook 도입