본문으로 건너뛰기
중급약 28분

시리즈 B: 개인기로 버티던 품질을 시스템으로 바꾸기

조직과 릴리즈가 동시에 커지는 스케일업 구간에서 수동 회귀가 무너지는 지점을 예측하고, 자동화·릴리즈 게이트·QA 조직 형태를 단계에 맞게 설계하는 법을 익힌다.

  • #시리즈B
  • #스케일업
  • #회귀자동화
  • #릴리즈게이트
  • #DORA
  • #QA조직

개념

지점을 세 개 더 여는 가게

단골 손님 얼굴을 다 아는 동네 가게는 재고 관리가 필요 없다. 사장 머릿속에 "무엇이 얼마나 남았는지" 가 들어 있고, 그게 실제로 잘 돌아간다. 그런데 같은 사장이 지점을 세 개 더 열면, 머릿속 재고는 그날부터 틀리기 시작한다. 사장이 게으르거나 능력이 떨어진 것이 아니다. 한 사람의 머릿속에 들어갈 수 있는 양에 한계가 있을 뿐이다.

시리즈 B의 품질 문제가 정확히 이 구조다. 지금까지 품질을 지탱한 것은 대개 "그 기능을 아는 사람" 의 개인기였다. 조직이 두 배가 되고 릴리즈가 네 배가 되면, 그 개인기는 사라지지 않지만 더는 전체를 덮지 못한다. 이 레슨의 핵심 논지는 하나다 — 개인기로 버티던 품질이 시스템 없이는 유지되지 않는 지점을 지난다.

중요한 점은 이 전환이 공지되지 않는다는 것이다. 어느 날 "이제 시스템으로 갑니다" 라고 선언되지 않고, 릴리즈가 밀리고 장애가 반복되는 증상으로 먼저 나타난다. 그래서 이 레슨은 전환 시점을 알려 주는 숫자를 먼저 다룬다.

시리즈 B에서 실제로 무엇이 변하는가

시리즈 B는 검증된 모델에 자금을 부어 점유율을 넓히는 단계다. 자금의 용처가 대부분 채용과 마케팅, 그리고 시장 확장이기 때문에 조직에 세 가지 변화가 동시에 온다.

변화품질에 미치는 영향
개발 인원 급증 (예: 10명 → 40명)코드 소유자가 흩어지고, 서로의 변경이 보이지 않는다
릴리즈 빈도 증가 (월 2회 → 주 2회)회귀 범위를 매번 사람이 판단할 수 없게 된다
고객 다양화 (B2B 엔터프라이즈·해외)환경·구성·언어 조합이 곱셈으로 늘어난다

세 가지가 겹치면 "아는 사람이 확인한다" 로 버티던 품질이 한 번에 무너진다. 이 붕괴는 보통 예고 없이 오지 않는다. 아래 신호가 먼저 나타난다.

붕괴 직전의 신호 (하나라도 2개월 이상 지속되면 시스템 전환 시점)
  · 릴리즈 전 회귀에 걸리는 시간이 매 릴리즈마다 늘어난다
  · "이 부분은 OO님만 안다" 는 영역이 3개 이상이다
  · 핫픽스 비율이 전체 배포의 20%를 넘는다
  · 같은 유형의 결함이 분기마다 재발한다
  · 장애 원인 분석이 "누가 실수했다" 로 끝난다

개인기와 시스템의 차이는 "사람이 바뀌어도 같은 결과가 나오는가"

"시스템을 갖추자" 는 말은 너무 추상적이라 아무 행동으로도 이어지지 않는다. 구체적인 판별 질문으로 바꾸면 바로 쓸 수 있다.

같은 질문개인기로 버티는 조직시스템이 있는 조직
이번 릴리즈 회귀 범위는?OO님이 감으로 정한다변경 영향 기준이 문서·도구에 있다
이 결제 오류의 원인은?아는 사람을 찾아 물어본다로그·추적으로 15분 안에 좁힌다
신규 입사자가 배포할 수 있나?선임이 옆에 붙어야 한다문서와 스크립트로 혼자 가능하다
담당자가 2주 휴가면?릴리즈가 밀린다절차대로 진행된다
같은 장애가 또 났는가?각자의 기억에 의존한다원인 분류로 집계된다

가장 날카로운 판별 질문은 네 번째다 — "그 사람이 2주 휴가를 가면 무엇이 멈추는가." 답이 길어질수록 그 조직은 개인기 쪽에 가깝다. 그리고 시리즈 B 구간에서는 그 사람이 휴가가 아니라 이직으로 사라질 확률도 같이 올라간다.

수동 회귀의 한계선 계산

전환 시점을 감이 아니라 숫자로 보여주는 계산이다. 모듈 11 레슨 3의 ROI 계산을 조직 성장률과 함께 돌리는 것이 이 단계의 차이점이다.

[현재]  수동 회귀 1회 = 32시간 (QA 2명 × 16시간), 릴리즈 월 2회
        → 월 64시간
 
[6개월 뒤 계획]  릴리즈 주 2회(월 8회), 기능 범위 1.4배
        → 필요 시간 = 32h × 1.4 × 8회 = 월 358시간
        → QA를 몇 명 더 뽑아도 따라잡지 못하는 구간에 진입
 
[의미] 자동화는 "비용 절감" 이 아니라 "계획된 릴리즈 빈도를 가능하게 하는 전제"

마지막 줄이 경영진 설득의 핵심 문장이다. 시리즈 B 기업의 경영진은 비용 절감보다 성장 계획의 실행 가능성에 반응한다. 모듈 26 레슨 3에서 CFO에게 쓰는 언어와 결이 다르다.

사람을 더 뽑아서 해결되는 것과 안 되는 것

시리즈 B에서 가장 자주 나오는 처방은 "QA를 더 뽑자" 다. 그 처방이 맞는 문제와 틀린 문제를 가르지 못하면, 인원이 늘어도 증상이 그대로 남는다.

문제인원 증가로 풀리는가이유
테스트 실행량 자체가 부족하다부분적으로 풀린다실행은 쪼개서 나눌 수 있다
도메인 지식이 한쪽에 몰려 있다시간이 걸리지만 풀린다전수·페어링으로 옮길 수 있다
릴리즈 전 게이트에 대기열이 생긴다안 풀린다직렬 구간에 사람을 넣으면 대기만 길어진다
테스트 환경 하나를 모두가 쓴다안 풀린다자원 경쟁은 인원 수 문제가 아니다
회귀 범위 판단을 매번 반복한다안 풀린다판단을 규칙으로 옮기지 않으면 비용이 매번 똑같이 든다
장애 원인 분석이 느리다안 풀린다관측 데이터가 없으면 사람이 많아도 추측이다
팀마다 품질 기준이 다르다오히려 나빠진다기준 없이 사람이 늘면 기준이 사람 수만큼 생긴다

아래 네 줄이 이 레슨의 실질적 내용이다. 네 줄 모두 "사람" 이 아니라 "구조" 의 문제이고, 그래서 시리즈 B의 QA 리드가 해야 하는 일은 채용 요청서를 쓰는 것보다 어느 문제가 어느 칸에 있는지 가르는 일이 먼저다.

전환 시점을 알려주는 네 숫자

"무너지고 있다" 를 느낌으로 말하면 반박된다. 아래 네 숫자는 대부분의 조직이 이미 가진 데이터로 그 주에 계산할 수 있고, 둘 이상이 동시에 경고 구간에 들어가면 전환 시점이다.

신호계산식안정경고위험
릴리즈 지연(실제 배포일 − 예정일) 평균0.5일 이하1~3일3일 초과
핫픽스 비율핫픽스 배포 ÷ 전체 배포10% 미만10~20%20% 초과
결함 재오픈율재오픈 건 ÷ 종료 처리 건10% 미만10~20%20% 초과
신규 입사자 적응 시간입사일 ~ 혼자 첫 배포까지5일 이하6~10일10일 초과
반복 장애 비율같은 원인 2회 이상 ÷ 전체 장애10% 미만10~30%30% 초과

네 번째가 이 단계에서 특히 중요하다. 인원이 두 배가 되는 조직에서 신규 입사자 적응 시간이 2주를 넘으면, 채용이 생산성을 즉시 깎는다 — 새로 온 사람이 기존 사람의 시간을 계속 쓰기 때문이다. 이 숫자는 경영진이 가장 빨리 이해하는 품질 지표이기도 하다. 모듈 6 레슨 5의 지표 설계와 같은 원칙으로, 이미 있는 데이터에서 뽑을 수 있는 것부터 고른다.

재오픈율과 반복 장애 비율은 같은 원인을 두 번 겪고 있다는 뜻이므로, 둘이 같이 오르면 문제는 테스트 양이 아니라 원인 분석과 재발 방지의 부재다.

무엇부터 자동화하는가 — 이 단계의 우선순위

순위대상이유
1매출·가입·결제 등 돈의 경로실패 비용이 가장 크고 변경이 잦다
2릴리즈마다 반복 확인하는 스모크투입 시간 대비 회수가 가장 빠르다
3API·계약 테스트 (모듈 12)UI보다 안정적이고 빨리 신호를 준다
4회귀 결함이 재발한 영역재발 이력이 곧 우선순위 근거다
5UI E2E 핵심 시나리오 (모듈 13)유지비가 가장 비싸므로 마지막에, 적게

4번을 우선순위 근거로 쓰려면 결함 데이터가 남아 있어야 한다. 모듈 6의 결함 관리가 여기서 자산으로 바뀐다. 기록이 없는 팀은 우선순위를 정치로 정하게 된다.

자동화보다 먼저 막히는 곳 — 환경과 테스트 데이터

시리즈 B에서 자동화 과제가 실패하는 가장 흔한 이유는 도구 선택이 아니다. 자동화가 붙을 바닥이 아직 없는 상태에서 시작하는 것이다.

막히는 지점증상먼저 할 일
테스트 환경을 전원이 하나 쓴다테스트가 서로를 깨뜨리고, 실패가 신뢰를 잃는다스쿼드별 환경·네임스페이스 분리 (모듈 59 레슨 3)
테스트 데이터를 손으로 만든다자동화가 데이터 준비 단계에서 멈춘다시드 스크립트·픽스처 (모듈 7 레슨 2)
외부 연동을 실제로 호출한다남의 장애가 우리 빨간 불이 된다스텁·가상화·계약 테스트 (모듈 12 레슨 5)
플레이키 테스트를 방치한다빨간 불을 무시하는 습관이 생긴다격리(quarantine)와 추적 (모듈 59 레슨 4)

두 번째 줄이 가장 자주 과소평가된다. 로그인 상태, 결제 수단, 권한 조합을 매번 손으로 만들어야 하는 조직에서는 스모크 30건을 자동화해도 실행에 사람이 붙는다. 그 상태의 자동화는 유지비만 남기고 회수가 없다.

릴리즈 게이트 — 사람의 판단을 규칙으로 옮기기

[배포 차단 조건] — 자동 판정, 예외는 기록을 남긴다
  · 핵심 시나리오 자동화 스위트 실패 1건 이상
  · 신규 심각도 S1·S2 결함 미해결
  · 오류율·응답시간 임계 초과 (스테이징 기준)
  · 보안 스캔 신규 Critical 취약점 (모듈 23)
 
[배포 후 관찰] — 롤백 판단 기준을 미리 정한다
  · 5분 내 오류율 x% 초과 → 자동 롤백
  · 핵심 지표(결제 성공률) 하락 → 수동 판단 + 온콜 호출

게이트의 목적은 막는 것이 아니라 같은 판단을 매번 반복하지 않는 것이다. 예외 승인 경로를 함께 설계해야 게이트가 오래 간다 — 예외가 불가능한 게이트는 결국 꺼진다.

게이트가 생기면 자연스럽게 따라오는 것이 릴리즈 열차다. 배포를 "준비되면 한다" 에서 "정해진 시각에 출발한다" 로 바꾸는 방식이다.

준비되면 배포릴리즈 열차
일정매번 협상한다고정이다 (예: 매주 화 15시)
못 들어간 변경일정을 밀어 기다린다다음 열차를 탄다
QA의 시간언제 올지 모른다역산해서 계획된다
핫픽스열차와 구분이 없다별도 경로 + 사후 기록

두 번째 줄이 전환점이다. "이 기능 때문에 릴리즈를 미루자" 가 사라지면 일정 압박이 QA에게 전가되는 경로도 같이 사라진다. 모듈 4 레슨 5의 릴리즈 판정과 모듈 14 레슨 4의 품질 게이트 설계를 조직 리듬에 올린 형태다.

장애 대응 체계 — 개인기가 가장 늦게까지 남는 곳

회귀와 릴리즈를 시스템으로 옮긴 조직에서도 장애 대응은 오랫동안 개인기로 남는다. 새벽에 누가 전화를 받고, 그 사람이 아는 범위에서 조치하는 형태다.

[장애 대응의 뼈대] — 각 칸에 "누가" 와 "얼마 안에" 가 적혀 있어야 한다
  감지  → 1차 응답 → 영향 범위 판정 → 완화 → 원인 분석 → 재발 방지
  (알람)  (온콜)      (QA·PO)          (롤백·  (개발·QA)   (테스트로 고정)
                                        피처플래그)

이 뼈대에서 QA의 자리는 세 번째와 여섯 번째다. 영향 범위 판정은 "무엇이 망가졌고 무엇은 괜찮은가" 를 가리는 일이고, 재발 방지는 그 원인을 테스트로 고정해 다시 못 돌아오게 만드는 일이다. 포스트모템이 "누가 실수했다" 로 끝나면 여섯 번째 칸이 비고, 반복 장애 비율이 올라간다(모듈 6 레슨 3의 비난 없는 결함 커뮤니케이션이 여기서 그대로 쓰인다).

온보딩을 품질 장치로 설계한다

6개월에 개발자가 두 배가 되는 조직에서 온보딩은 인사 업무가 아니라 품질 장치다. 새로 온 사람이 혼자 안전하게 배포할 수 있게 만드는 산출물은 다섯 개로 충분하고, 각각 측정 가능하다.

산출물없을 때 생기는 일측정
로컬 환경 구축 스크립트첫 주를 환경 설정에 쓴다한 줄 명령으로 성공까지 걸린 시간
스모크 실행 한 줄 명령자기 변경의 영향을 확인할 수 없다입사 2일 내 실행 성공 여부
릴리즈 절차 1페이지매번 선임을 호출한다혼자 첫 배포까지의 일수
결함 등록 템플릿리포트 품질이 사람마다 다르다반려·재문의 비율
코드 소유자 지도리뷰어를 찾는 데 하루가 간다리뷰 첫 응답까지의 시간

세 번째 줄의 측정값이 앞서 본 "신규 입사자 적응 시간" 과 같은 숫자다. 온보딩 산출물을 만드는 일이 지표를 직접 움직이기 때문에, 이 단계에서 가장 투자 회수가 빠른 작업에 속한다.

팀이 커질 때의 QA 조직 형태

형태구조맞는 시점
중앙집중 QAQA 팀이 모든 제품을 검증제품 12개, QA 24명
임베디드 QA각 스쿼드에 QA 1명씩 배치스쿼드 조직 전환기, 시리즈 B 전형
혼합 (임베디드 + 플랫폼)스쿼드 QA + 공통 자동화·환경 담당스쿼드 5개 이상
품질 엔지니어링(QE) 중심QA가 도구·기반을 만들고 팀이 실행개발 조직이 성숙하고 자동화가 정착한 뒤

시리즈 B 구간의 흔한 실패는 인원만 늘리고 형태를 바꾸지 않는 것이다. 중앙집중 구조에서 QA를 6명까지 늘리면 병목이 6배로 커지는 것이 아니라, 병목이 그대로 유지되면서 대기열만 길어진다.

전환 순서에도 정석이 있다. 임베디드로 먼저 쪼개고, 쪼개진 뒤에 생기는 중복과 편차를 플랫폼 역할로 모으는 순서다.

중앙집중 (QA 3명, 스쿼드 2개)
   │  스쿼드가 4개를 넘고 대기열이 생기기 시작
   ▼
임베디드 (스쿼드마다 QA 1명)
   │  스쿼드마다 도구·환경·기준이 갈라지기 시작
   ▼
혼합 (임베디드 + 플랫폼 1~2명)   ← 시리즈 B의 현실적 도착점
   │  자동화가 정착하고 개발이 직접 실행하기 시작
   ▼
QE 중심

순서를 뒤집는 것이 대표적인 실수다. 플랫폼 팀을 먼저 만들면, 쓰는 사람이 아직 없는 도구를 만들게 된다. 모듈 55 레슨 1의 자동화 아키텍처 논의도 같은 결론으로 간다 — 사용자가 생긴 뒤에 공통화한다.

품질 편차 — 스쿼드마다 품질이 달라지는 문제

임베디드로 쪼개면 대기열은 풀리지만 새 문제가 온다. 스쿼드 6개가 각자 기준을 만들면 기준이 6개가 된다. 이것은 사고가 아니라 구조의 자연스러운 결과다.

측정 항목왜 이걸 보나편차가 클 때의 해석
스쿼드별 재오픈율결함 처리 기준의 차이완료 판정이 느슨한 스쿼드가 있다
운영 탈출 결함 수출시 전 검증 범위의 차이회귀 기준이 사람마다 다르다
자동화 스모크 보유 여부기반 접근성의 차이플랫폼 지원이 균등하지 않다
릴리즈 게이트 예외 건수절차 준수의 차이한 스쿼드만 예외로 사는 중이다

대응의 핵심은 기준을 통일하는 것이 아니라 최소 공통 기준을 세 개로 줄이는 것이다. 예를 들어 "돈의 경로 스모크 통과", "S1·S2 미해결 없음", "결함 등록 템플릿 준수" 세 개만 전사 공통으로 두고, 나머지는 스쿼드 재량으로 남긴다. 모듈 7 레슨 6의 성숙도 모델에서 말하는 "한 번에 하나" 의 속도와 같은 원칙이고, 전부 통일하려는 시도가 실패하는 이유도 같다.

성장 중인 조직에서 쓰는 공통 지표

DORA 4개 지표(배포 빈도, 리드타임, 변경 실패율, 복구 시간)는 QA 단독 지표가 아니라 엔지니어링 전체의 공통 언어라서 이 단계에서 특히 쓸모가 있다. 모듈 14 레슨 7의 SLO·에러 버짓과 함께 "품질 vs 속도" 논쟁을 하나의 숫자 위에서 하게 만든다.

지표묻는 것QA가 직접 움직이는 지점
배포 빈도얼마나 자주 내보내는가회귀 소요 시간 단축
변경 리드타임커밋에서 배포까지 얼마나 걸리는가게이트 대기 시간, 환경 준비 시간
변경 실패율배포 중 사고가 나는 비율차단 조건 설계, 스모크 범위
복구 시간되돌리는 데 얼마나 걸리는가롤백 가능성 검증, 관측 데이터

네 지표를 같이 보는 이유는 한 지표만 올리면 다른 지표가 망가지는 것을 바로 보여주기 때문이다. 게이트를 과하게 걸면 배포 빈도와 리드타임이 나빠지고, 게이트를 꺼 버리면 변경 실패율이 올라간다. "품질이냐 속도냐" 를 감정으로 다투지 않게 만드는 장치가 이 네 칸이다.

사례 — 개발 12명이 38명이 된 6개월

B2B SaaS 기업이 시리즈 B를 조달하고 6개월 만에 개발 인원을 12명에서 38명으로 늘렸다. 스쿼드는 2개에서 6개가 됐고, 릴리즈 목표는 월 2회에서 주 1회로 올라갔다. QA는 3명 중앙집중 구조를 그대로 유지했다. 채용 계획에는 QA 3명 추가가 잡혀 있었지만 시장에서 사람을 못 구하고 있었다.

반년 뒤 숫자는 이렇게 변했다.

지표전환 전6개월 뒤
릴리즈 지연 (예정일 대비 평균)1.2일4.3일
핫픽스 비율12%31%
결함 재오픈율9%24%
신규 입사자 혼자 첫 배포까지5일17일
같은 원인(테스트 환경 데이터 불일치) 반복 장애0회4회

원인 분석 결과 QA 인원 부족은 네 가지 원인 중 하나일 뿐이었다.

원인구조
QA 3명이 6개 스쿼드의 최종 게이트직렬 구간 하나에 전사 배포가 줄을 선다
회귀 스위트가 없다매 릴리즈마다 범위를 사람이 새로 판단한다
테스트 환경 1개를 전원이 공유스쿼드 간 데이터 간섭 → 반복 장애의 직접 원인
릴리즈 절차가 2명의 머릿속에만 있다그 2명이 쉬면 배포가 멈춘다

바꾼 것은 네 가지이고, 순서가 결과를 갈랐다.

순서바꾼 것효과
1테스트 환경을 스쿼드별로 분리 + 데이터 시드 스크립트반복 장애 원인 제거, 자동화가 붙을 바닥 확보
2돈의 경로 스모크 31건 자동화회귀 16시간 → 3시간
3QA 3명을 스쿼드에 임베드 + 공통 플랫폼 1명만 채용최종 게이트 직렬 구간 해체
4릴리즈 열차 주 1회 고정 + 차단 조건 4개 자동 판정 + 예외 승인자 지정일정 협상이 사라짐
5온보딩 3산출물 (환경 스크립트·스모크 한 줄·릴리즈 절차 1페이지)적응 시간 단축

4개월 뒤 결과다.

지표6개월 뒤개선 후
릴리즈 지연4.3일0.6일
핫픽스 비율31%14%
결함 재오픈율24%11%
신규 입사자 혼자 첫 배포까지17일4일
QA 인원3명4명

마지막 줄이 이 사례의 요점이다. 처음 계획했던 QA 6명은 끝까지 채우지 않았다. 남는 교훈이 셋이다.

  • 환경과 데이터가 막혀 있으면 자동화는 붙지 않는다. 1번을 2번보다 먼저 한 것이 성패를 갈랐다. 순서를 뒤집은 팀은 자동화에 돈을 쓰고 플레이키만 얻는다
  • 대기열 문제는 인원으로 풀리지 않는다. 중앙집중 게이트를 유지한 채 QA를 6명으로 늘렸다면 대기열이 길어졌을 뿐이다. 해결한 것은 형태 전환과 플랫폼 역할 1명이었다
  • 숫자를 먼저 재 두었기 때문에 전환을 설득할 수 있었다. 재오픈율과 적응 시간을 기록해 둔 덕에 "QA가 힘들다" 가 아니라 "구조가 이 숫자를 만든다" 로 말할 수 있었다

실무에서 왜 필요한가

이 구간의 결정은 되돌리기 비싸다

시리즈 B에서 고른 자동화 프레임워크, 테스트 환경 구조, 테스트 데이터 전략은 이후 몇 년간 조직 전체가 얹혀 사는 기반이 된다. 잘못 고르면 시리즈 C 시점에 마이그레이션 비용이 신규 구축보다 커진다(모듈 22 레슨 12의 교체 비용 계산).

속도와 품질이 처음으로 같은 표에서 논의된다

시드·시리즈 A에서는 "빠르게" 가 거의 항상 이긴다. 시리즈 B에서는 다르다. 배포가 잦아지면 사고의 빈도도 같이 올라가고, 엔터프라이즈 고객이 들어오면 사고의 비용이 계약 단위로 커진다. 그 시점에 경영진은 처음으로 "얼마나 빠르게" 와 "얼마나 안전하게" 를 함께 보려 한다.

이때 QA가 DORA 네 지표와 SLO를 들고 들어가면 논의가 취향 다툼에서 숫자 위의 트레이드오프로 옮겨간다. 모듈 26 레슨 7의 경영진 보고 형식이 이 구간에서 실제로 쓰이기 시작하는 이유다.

사람이 빠르게 들어온다 — 온보딩이 품질 장치가 된다

6개월에 개발자가 두 배가 되는 조직에서는 새로 온 사람이 실수하지 않게 만드는 구조가 테스트만큼 중요하다. 실행 가능한 테스트 스위트, 로컬 환경 구축 스크립트, 릴리즈 절차 문서는 모두 품질 장치다.

반대 방향도 성립한다. 온보딩이 느린 조직은 기존 인원의 시간을 신규 인원이 계속 가져간다. 그래서 채용을 늘리는 그 분기에 오히려 산출이 떨어지는 현상이 나타나고, 경영진은 그것을 "품질 문제" 로 읽는다.

릴리즈 프로세스가 없으면 사람이 먼저 떠난다

이 구간에서 가장 비싼 손실은 결함이 아니라 퇴사다. 매주 배포하는 조직에서 절차와 온콜 체계가 없으면, 밤과 주말을 특정 몇 명이 계속 떠안는다. 그 몇 명이 대개 "OO님만 아는 영역" 의 그 사람이고, 그 사람이 떠나면 조직은 지식과 대응 능력을 동시에 잃는다.

릴리즈 열차와 온콜 로테이션은 복지 정책이 아니라 지식 분산 장치다. 절차대로 돌아가는 배포는 누구나 할 수 있는 배포라는 뜻이고, 그것이 곧 이탈 위험을 줄인다.

기술 실사가 다음 라운드에서 기다린다

시리즈 C와 엑싯 구간에서 실사가 보는 것은 결과물뿐 아니라 프로세스의 흔적이다. 시리즈 B 시기에 남긴 자동화 이력·결함 추적·릴리즈 기록이 그때 증거가 된다. (레슨 5)

채용시장에서의 위치

시리즈 B 기업의 QA 채용은 두 갈래로 갈린다.

공고 유형실제 역할
QA 엔지니어 (자동화)기존 수동 회귀를 자동화로 옮기는 실행
QA 리드 / 매니저조직 형태·프로세스·채용까지 설계
SDET / 품질 엔지니어테스트 기반·도구·CI 파이프라인 구축
릴리즈 엔지니어배포 게이트·릴리즈 열차 운영

이 구간의 면접에서는 "도구를 써봤는가" 보다 "무너지는 시점을 예측하고 무엇을 먼저 바꿨는가" 를 묻는다. 앞의 한계선 계산을 자기 경험의 숫자로 말할 수 있으면 그 자체가 답변이 된다.

질문별로 답이 갈리는 지점

질문약한 답강한 답
"지금 우리 조직에서 무엇이 먼저 무너질 것 같나요?""테스트가 부족해 보입니다""릴리즈 지연과 재오픈율을 먼저 재 봅니다. 두 숫자가 같이 오르면 회귀 범위 판단이 아직 사람에게 남아 있다는 뜻입니다"
"QA를 몇 명 더 뽑으면 될까요?""최소 3명은 필요합니다""대기열 문제라면 인원으로 풀리지 않습니다. 직렬 구간이 어디인지 먼저 재고, 인원은 실행량이 모자란 곳에만 씁니다"
"자동화는 어디부터 할까요?""핵심 기능부터 하겠습니다""환경과 테스트 데이터가 준비됐는지 먼저 봅니다. 거기가 막혀 있으면 돈의 경로 스모크도 사람 손을 다시 부릅니다"
"게이트를 걸면 개발이 느려지지 않나요?""품질을 위해 필요한 비용입니다""예외 승인 경로와 기록을 같이 설계합니다. 예외가 불가능한 게이트는 두 번 막히면 꺼집니다"
"스쿼드마다 품질이 다릅니다""기준을 전사로 통일하겠습니다""스쿼드별 재오픈율과 탈출 결함부터 집계합니다. 최소 공통 기준은 세 개로 줄이고 나머지는 스쿼드에 맡깁니다"

가장 변별력이 큰 질문

두 번째와 세 번째가 가장 크게 갈린다. 둘 다 면접관이 이미 답을 정해 놓고 묻는 질문이기 때문이다. 시리즈 B 기업의 채용 담당자는 대개 "QA를 더 뽑아도 나아지지 않았다" 는 경험을 막 통과한 사람이다. 그 앞에서 "3명 필요합니다" 라고 답하면, 지원자가 방금 실패한 처방을 다시 제안한 사람이 된다.

세 번째 질문의 변별력은 조금 다른 데서 온다. "핵심 기능부터" 는 틀린 답이 아니라 누구나 하는 답이다. 환경과 데이터를 먼저 말하는 지원자는 자동화를 해 본 사람이라는 신호를 준다 — 실제로 해 보면 거기서 먼저 막히기 때문이다. 이 한 문장이 "도구 이름을 아는 사람" 과 "스위트를 운영해 본 사람" 을 가른다.

네 번째는 조직 안에서 제도가 살아남게 만들어 본 사람인지를 본다. 게이트를 설계하는 것은 쉽고, 6개월 뒤에도 켜져 있게 만드는 것이 어렵다. 예외 경로를 먼저 말하는 지원자는 그 어려움을 통과해 본 사람으로 읽힌다.

공고에서 읽어야 하는 두 줄

이 단계 공고에서 실제 업무를 가장 잘 알려 주는 것은 직함이 아니라 "현재 상태" 를 적은 한 줄이다.

공고 문구입사 후 6개월 동안 실제로 할 일
"QA 프로세스를 처음부터 설계"형태 전환과 기준 수립. 자동화는 그 뒤
"기존 수동 테스트 자동화 전환"환경·데이터 정리가 절반 이상을 차지할 가능성
"스쿼드별 QA 지원 체계 구축"혼합 구조 전환기. 플랫폼 역할이 섞인다
"릴리즈 안정화"게이트와 핫픽스 비율이 지금 문제라는 뜻

면접에서 역질문의 재료로도 쓰인다. "지금 릴리즈 지연과 핫픽스 비율이 어느 정도인가요" 는 지원자가 이 단계의 언어를 안다는 신호가 된다.

실습 과제

과제 1 — 한계선 계산하기

현재 조직(또는 가상의 조직)의 숫자로 앞의 계산을 채운다.

수동 회귀 1회 소요 시간      = ___ 시간
현재 릴리즈 빈도             = 월 ___ 회
6~12개월 뒤 목표 릴리즈 빈도 = 월 ___ 회
기능 범위 증가 계수          = ___ 배
→ 미래 필요 시간 = ___ 시간/월
→ 현재 가용 시간 = ___ 시간/월
→ 격차를 메우는 방법 3가지와 각각의 비용

"사람을 더 뽑는다" 도 반드시 선택지에 넣고 비용을 계산한다. 자동화가 항상 정답은 아니며, 비교를 거친 자동화 제안만 설득력을 갖는다.

해설 보기

예시 숫자로 끝까지 가 보면 결론의 모양이 보인다.

회귀 1회 20시간, 현재 월 2회 → 월 40시간
목표 월 8회, 범위 1.3배 → 20 × 1.3 × 8 = 월 208시간
QA 2명 가용(실제 테스트 시간 60% 가정) → 월 약 192시간
격차 ≈ 월 16시간... 처럼 보이지만 이 계산은 틀렸다

가용 시간 전부를 회귀에 쓸 수 없다는 점을 빼먹으면 안 된다. 신규 기능 테스트, 결함 재현, 리뷰, 릴리즈 대응을 빼면 회귀에 쓸 수 있는 시간은 보통 가용 시간의 절반 이하다. 다시 계산하면 가용 약 96시간 대 필요 208시간이고, 격차는 112시간이다.

세 선택지의 비용 비교는 이렇게 생긴다.

방법비용효과가 나오는 시점남는 문제
QA 2명 추가 채용인건비 + 채용 3~6개월 + 온보딩4~7개월 뒤직렬 게이트면 대기열만 길어진다
회귀 범위를 리스크로 축소비용 0그 주축소 근거를 기록해야 한다
돈의 경로 스모크 자동화구축 공수 + 유지비2~3개월 뒤환경·데이터가 먼저 필요하다

두 번째를 먼저 한다는 것이 이 과제의 결론이다. 비용 0이고 즉시 효과가 있는 수단을 쓰지 않은 상태의 채용·자동화 제안은 대개 통과되지 않는다 (모듈 4 레슨 2의 리스크 기반 범위 축소).

과제 2 — 릴리즈 게이트 초안 설계

배포 차단 조건 4개와 배포 후 롤백 기준 2개를 정하고, 각각에 대해 다음을 적는다.

조건 | 판정 방법(자동/수동) | 예외 승인자 | 예외 시 남기는 기록

예외 승인자를 정하지 못하는 조건은 현실에서 운영되지 않는다. 그 조건은 지우거나 기준을 낮춘다.

해설 보기

채워진 형태의 예시다. 네 칸이 모두 채워지는지가 설계의 품질을 가른다.

조건판정예외 승인자남기는 기록
돈의 경로 스모크 실패 0건자동 (CI)엔지니어링 리드실패 케이스 ID + 승인 사유 + 후속 티켓
S1·S2 미해결 0건자동 (이슈 트래커 질의)제품 책임자결함 키 + 다음 열차 반영 약속
스테이징 오류율 임계 이하자동 (관측 도구)플랫폼 리드측정값 + 임계 + 관측 창
신규 Critical 취약점 0건자동 (스캔)보안 담당취약점 ID + 완화 조치

자주 나오는 오답 셋이다.

  • "코드 리뷰 완료" 를 게이트에 넣는다 — 자동 판정이 가능하지만 이미 PR 단계에서 강제되는 조건이라 게이트를 무겁게만 만든다
  • "QA 승인" 을 조건으로 쓴다 — 사람 이름이 게이트에 들어가면 그 사람이 곧 직렬 구간이 된다. 조건은 판정 가능한 상태로 적는다
  • 예외 승인자를 "CTO" 하나로 몰아 둔다 — 실제로는 승인이 안 오고, 게이트가 꺼진다. 조건별로 가장 가까운 책임자를 적는다

롤백 기준은 배포 전에 정해져야 한다. 사고 중에 "이 정도면 롤백할까" 를 논의하는 조직은 평균적으로 복구 시간이 두 자릿수 분 단위로 늘어난다 (모듈 14 레슨 6의 관측 설계와 함께 본다).

과제 3 — 조직 형태 전환 제안서 한 장

지금 조직이 어느 형태인지 진단하고, 다음 6개월의 성장 계획에 맞는 형태를 제안한다. 포함할 항목은 네 가지다 — 현재 병목의 증거(숫자), 제안 형태, 전환 중 위험, 첫 30일 계획.

해설 보기

네 항목 중 첫째와 셋째가 제안의 통과를 결정한다.

  • 병목의 증거 — "QA가 바쁘다" 가 아니라 "스쿼드 6개의 릴리즈가 QA 3명의 최종 확인에서 평균 2.4일 대기한다" 처럼 대기 시간으로 적는다. 대기는 경영진이 바로 이해하는 손실이다
  • 전환 중 위험 — 임베디드 전환기에는 일시적으로 품질이 나빠진다. 전사 회귀를 보던 사람이 스쿼드로 흩어지면, 스쿼드 경계를 넘는 결함이 한동안 빠진다. 이 위험을 먼저 적지 않으면 전환 첫 달의 사고가 "전환 실패" 로 해석된다

위험에 붙이는 완화책의 예시다.

위험완화
스쿼드 경계 결함이 빠진다통합 스모크를 전사 공통으로 남긴다
스쿼드별 기준이 갈라진다최소 공통 기준 3개를 먼저 합의한다
QA가 스쿼드 일정에 종속된다품질 보고 라인은 스쿼드 밖에 둔다

첫 30일 계획은 측정부터 시작하는 것이 정석이다. 1주차에 네 숫자(릴리즈 지연·핫픽스 비율·재오픈율·적응 시간)를 집계해 두면, 전환 뒤에 효과를 증명할 기준선이 생긴다. 기준선 없이 전환하면 나아졌는지도 말할 수 없다 (모듈 43 레슨 7의 의사결정용 보고 형식).

과제 4 — 전환 신호 네 숫자 측정하기

앞의 신호 표를 자기 조직(또는 공개된 오픈소스 프로젝트의 저장소·이슈 기록)에 적용해 실제로 계산해 본다. 추정값이어도 괜찮다 — 중요한 것은 데이터를 어디서 꺼냈는지 적는 것이다.

신호            | 값 | 어느 데이터에서 | 안정/경고/위험
릴리즈 지연      |    |                 |
핫픽스 비율      |    |                 |
결함 재오픈율    |    |                 |
적응 시간        |    |                 |
반복 장애 비율   |    |                 |
해설 보기

데이터 출처는 생각보다 가까이 있다.

신호꺼내는 곳
릴리즈 지연릴리즈 티켓의 목표일 대 태그 생성 시각
핫픽스 비율배포 이력에서 핫픽스 브랜치·태그 비율
재오픈율이슈 트래커의 상태 전이 이력 (모듈 22 레슨 7의 질의)
적응 시간입사일 대 첫 배포 커밋·릴리즈 참여 기록
반복 장애포스트모템 문서의 원인 분류 태그

셋 이상을 계산할 수 없다면 그 자체가 결과다. 측정할 수 없는 조직은 개선을 증명할 수도 없다는 뜻이고, 그 경우 첫 번째 과제는 자동화가 아니라 기록 체계다(모듈 6 레슨 5).

주의할 함정 둘이다.

  • 표본이 작을 때의 비율 — 배포가 월 4회인 조직의 핫픽스 1건은 25%다. 분모를 같이 적지 않으면 과장된다
  • 적응 시간의 정의 — "첫 커밋" 과 "혼자 배포 완료" 는 전혀 다른 숫자다. 정의를 먼저 적고 그 정의를 유지해야 추세를 볼 수 있다

자가 체크리스트

  • 수동 회귀가 무너지기 전의 신호 다섯 가지를 자기 조직에서 점검할 수 있다
  • 릴리즈 빈도 계획을 근거로 자동화 필요성을 숫자로 제시할 수 있다
  • 자동화 우선순위를 돈의 경로 → 스모크 → API → 재발 영역 순으로 설명할 수 있다
  • 배포 차단 조건과 예외 승인 경로를 함께 설계할 수 있다
  • 중앙집중·임베디드·혼합·QE 중심 조직의 차이와 적용 시점을 구분할 수 있다
  • DORA 지표를 품질과 속도의 공통 언어로 사용할 수 있다
  • 개인기와 시스템의 차이를 "그 사람이 2주 휴가를 가면 무엇이 멈추는가" 로 판별할 수 있다
  • 인원 증가로 풀리는 문제와 풀리지 않는 문제를 각각 두 개 이상 들 수 있다
  • 전환 신호 네 숫자를 자기 조직 데이터에서 직접 계산할 수 있다
  • 자동화 전에 환경·테스트 데이터가 먼저 막히는 이유를 설명할 수 있다
  • 릴리즈 열차가 일정 압박을 QA에게서 떼어 내는 구조를 설명할 수 있다
  • 장애 대응 뼈대에서 QA가 맡는 두 칸(영향 범위 판정·재발 방지)을 말할 수 있다
  • 온보딩 산출물 다섯 개와 각각의 측정 방법을 댈 수 있다
  • 조직 형태 전환 순서(임베디드 → 혼합)를 뒤집으면 안 되는 이유를 설명할 수 있다
  • 품질 편차를 스쿼드별 지표로 측정하고 최소 공통 기준을 세 개로 줄일 수 있다

흔한 실수

자동화를 "비용 절감" 으로만 제안한다. 시리즈 B 경영진의 관심은 절감이 아니라 성장 계획의 실행 가능성이다. 같은 내용도 "주 2회 배포를 가능하게 하는 전제" 로 프레이밍할 때 통과한다.

UI E2E부터 대규모로 만든다. 가장 눈에 보이지만 가장 비싼 층이다. 6개월 뒤 유지보수가 팀을 잡아먹고, 그 경험이 조직에 "자동화는 실패한다" 는 기억으로 남는다.

인원만 늘리고 조직 형태를 그대로 둔다. 중앙집중 QA에 사람을 더 넣으면 병목이 길어질 뿐이다. 형태 전환 없이 규모만 키우는 것이 이 구간의 대표적 실패다.

예외가 불가능한 게이트를 만든다. 급한 핫픽스가 게이트에 막히는 일이 두어 번 반복되면 팀은 게이트를 끈다. 예외 경로와 기록이 게이트를 살린다.

기술 부채 회수를 로드맵에 넣지 않는다. 시리즈 B의 속도로 6개월을 달리면 부채가 반드시 쌓인다. 분기마다 일정 비율을 회수 작업에 배정하지 않으면, 시리즈 C 실사에서 한꺼번에 청구서가 온다.

환경·테스트 데이터를 정리하지 않고 자동화를 시작한다. 공유 환경 하나와 손으로 만드는 데이터 위에 스위트를 올리면 플레이키가 먼저 쌓인다. 빨간 불을 무시하는 습관이 생기면 그 뒤에 만든 좋은 테스트도 함께 무력해진다. 순서는 환경·데이터 → 스모크 → 확장이다.

측정 없이 전환한다. 전환 전 숫자를 기록하지 않으면 전환 뒤에 나아졌는지 말할 수 없고, 첫 달의 사고가 그대로 "전환 실패" 로 해석된다. 기준선을 1주차에 만든다.

플랫폼 팀을 먼저 만든다. 쓰는 사람이 아직 없을 때 공통 도구를 만들면, 아무도 안 쓰는 프레임워크가 남는다. 임베디드로 쪼개 중복이 눈에 보인 뒤에 공통화한다.

모든 스쿼드의 기준을 전사로 통일하려 한다. 전부 맞추려는 시도는 거의 항상 중단된다. 최소 공통 기준을 세 개로 줄이고 나머지는 스쿼드 재량으로 남기는 쪽이 실제로 유지된다.

장애 포스트모템을 "누가 실수했다" 로 끝낸다. 재발 방지 항목이 테스트로 고정되지 않으면 같은 장애가 분기마다 돌아온다. 반복 장애 비율이 그 누락을 그대로 보여준다.

개인기를 가진 사람의 번아웃을 품질 문제와 따로 본다. 밤과 주말을 특정 몇 명이 떠안는 구조에서 그 사람이 떠나면, 조직은 지식과 대응 능력을 한꺼번에 잃는다. 온콜 로테이션은 복지가 아니라 지식 분산 장치다.

참고 자료

이 커리큘럼 안에서

  • 모듈 27 레슨 1 — 투자 라운드 지도. 단계마다 품질의 정의가 바뀌는 큰 그림
  • 모듈 27 레슨 3 — 시리즈 A. 지표 데이터 정합성이 먼저 오는 구간
  • 모듈 27 레슨 5 — 실사와 엑싯. 이 단계에서 남긴 기록이 자료로 제출되는 자리
  • 모듈 27 레슨 7 — 런웨이와 QA 예산. 전환 제안을 언제 올릴지의 타이밍
  • 모듈 4 레슨 2 — 리스크 기반 테스트. 비용 0으로 회귀 범위를 줄이는 첫 수단
  • 모듈 4 레슨 5 — 릴리즈 판정. 게이트 조건의 원형
  • 모듈 6 레슨 3 — 비난 없는 결함 커뮤니케이션. 포스트모템이 재발 방지로 가게 하는 태도
  • 모듈 6 레슨 5 — 품질 지표. 전환 신호 네 숫자를 만드는 기록 체계
  • 모듈 7 레슨 2 — 테스트 데이터 관리. 자동화가 멈추는 첫 지점
  • 모듈 7 레슨 6 — 성숙도 모델. "한 번에 하나" 의 속도
  • 모듈 7 레슨 9 — 테스트 조직. 중앙집중·임베디드·혼합 구조의 상세
  • 모듈 11 레슨 3 — 자동화 ROI. 한계선 계산의 원본 틀
  • 모듈 12 레슨 5 — 소비자 주도 계약 테스트. 외부 연동 플레이키의 대안
  • 모듈 14 레슨 4 — 품질 게이트 설계. 차단 조건을 파이프라인에 올리는 방법
  • 모듈 14 레슨 7 — SLO·에러 버짓. 속도와 품질을 한 숫자에서 다루기
  • 모듈 22 레슨 12 — 도구 선택과 교체 비용. 되돌리기 비싼 결정의 계산
  • 모듈 26 레슨 7 — 경영진 보고. 전환 제안의 형식
  • 모듈 43 레슨 7 — 의사결정용 상태 보고. 기준선과 추세를 적는 법
  • 모듈 55 레슨 1 — 자동화 아키텍처. 공통화를 언제 하는가
  • 모듈 59 레슨 3·4 — 테스트 환경·데이터 운영과 플레이키 격리. 자동화의 바닥

한 줄 정리 — 시리즈 B는 개인기로 버티던 품질이 시스템 없이는 유지되지 않는 지점을 지나는 구간이다. 그 전환은 공지되지 않고 릴리즈 지연·핫픽스 비율·재오픈율·신규 입사자 적응 시간이라는 숫자로 먼저 나타난다. 그리고 그 숫자가 가리키는 문제는 대부분 사람을 더 뽑아서 풀리지 않는다 — 대기열, 공유 환경, 반복되는 범위 판단은 전부 구조의 문제이기 때문이다. 순서는 환경·데이터 → 돈의 경로 스모크 → 조직 형태 전환 → 릴리즈 열차와 게이트 → 온보딩 산출물이고, 그 전에 기준선 숫자를 먼저 재 둔다.

낯선 말 풀이

이 레슨에 나온 약어입니다. 본문에서도 처음 나올 때 점선으로 표시해 두었습니다 (제목과 링크 글자는 그대로 둡니다).

ROI — 투자 수익률
들인 돈과 시간에 비해 얼마를 돌려받았는지.
QA — 품질보증
만든 것이 쓸 만한지 확인하고, 애초에 덜 망가지게 만드는 방법을 정하는 일. "테스트"는 그 일의 일부다.
API — 응용 프로그램 인터페이스
프로그램끼리 주고받는 창구. 사람이 화면 버튼을 누르는 대신, 프로그램이 정해진 주소로 요청을 보내 답을 받는다.
UI — 사용자 인터페이스
사람이 직접 보고 누르는 부분 — 화면, 버튼, 입력창.
E2E — 끝에서 끝까지
화면 한 조각이 아니라 사용자가 밟는 전체 흐름을 처음부터 끝까지 한 번에 돌려 보는 시험.
DORA — 도라 지표
개발·배포를 얼마나 잘하는지 네 가지 숫자로 재는 방식.
SLO — 서비스 수준 목표
내부적으로 지키려는 목표치. 고객과의 약속보다 조금 더 엄격하게 잡는다.
SDET — 테스트 개발 엔지니어
시험을 코드로 만드는 사람. 개발과 QA 양쪽 일을 한다.
CI — 지속적 통합
코드를 올릴 때마다 자동으로 합쳐서 빌드하고 시험까지 돌리는 방식.
ID — 식별자
무엇 하나를 다른 것과 구별하기 위해 붙인 이름이나 번호.
PR — 풀 리퀘스트
"내가 고친 코드를 본체에 합쳐 달라"고 올리는 요청. 합치기 전에 사람들이 보고 의견을 단다.
CTO — 최고기술책임자
기술 전체를 책임지는 임원.

이 레슨에 나온 나머지 1개를 포함해 용어집 전체 보기