납품 분쟁을 막는 방패: AC를 인수 테스트(UAT)로 바꾸고 사인오프 받는 법
[0.0]Article
모범 사례8분 소요

납품 분쟁을 막는 방패: AC를 인수 테스트(UAT)로 바꾸고 사인오프 받는 법

프로젝트는 왜 마지막에 실패할까요? '완료'의 기준이 없었기 때문입니다. 수용 기준(AC)을 테스트 케이스로 바꾸고 정식으로 UAT 서명을 받는 법을 소개합니다.

2026년 1월 8일
uDocit Team제품 팀
공유

프리랜서의 악몽: "작동은 하는데..."

"디자인은 컨펌했었는데, 막상 눌러보니까 느낌이 좀... 여기 좀 바꿀 수 있을까요?"

이 말은 보통 런칭 2일 전에 나옵니다. 코드는 완벽합니다. 요구사항도 지켰습니다. 하지만 클라이언트는 승인해주지 않습니다.

왜일까요? 검수 기준을 명확한 시나리오가 아니라 "느낌"에 맡겼기 때문입니다.

"완료(Done)"의 정의를 선점하지 못하면, 무한 수정의 굴레에 빠지게 됩니다. 여기서 탈출하는 유일한 방법은 **수용 기준(AC)**과 **사용자 인수 테스트(UAT)**로 방어선을 구축하는 것입니다.


방어 파이프라인: AC → Test Case → Sign-off

"믿으세요, 다 했습니다"라는 말은 통하지 않습니다. 문서가 필요합니다. 방어 파이프라인은 모호한 합의를 이진법적인(0/1) 증거로 바꿉니다.

수용 기준에서 테스트 케이스, UAT 통과로 이어지는 흐름
기억에 의존해 테스트하지 마세요. 계약에 의존해 테스트하세요.

1. 수용 기준 (User Story AC): 계약서

분석/설계 단계 작성

AC는 약속입니다. 조건을 설명합니다.

"이메일 형식이 아니면 제출할 수 없다."

2. 테스트 케이스 (Test Case): 대본

개발 완료 전 작성

TC는 증명입니다. 행동을 설명합니다.

"1단계: 'invalid-email' 입력. 2단계: 제출 클릭. 3단계: 에러 메시지 노출 확인."

3. UAT 사인오프 (Sign-off): 입금 트리거

납품 단계 실행

사인오프는 종결입니다. 결과를 승인합니다.

"테스트 케이스 12번이 통과됨을 확인합니다."


모호함의 비용

왜 이렇게 팍팍하게 굴어야 할까요? "직감"은 비싸기 때문입니다. 클라이언트에게 "그냥 한번 써보세요"라고 하면, 그들은 요구사항이 아니라 기분에 따라 테스트합니다.

  • 모호한 피드백: "느낌이 별로예요." (대응 불가능, 무한 수정)
  • 테스트 케이스 피드백: "3단계에서 에러 메시지가 안 뜹니다." (대응 명확, 10분 컷)

테스트를 선형적인 파이프라인으로 강제하면, 납품 과정에서 불필요한 감정 소모를 없앨 수 있습니다.


심층 분석: 모호함에서 검증된 결과로

하나의 기능이 이 파이프라인을 통과하며 어떻게 변하는지 봅시다. 기능: 비회원 주문

단계입력명확성
요구사항"로그인 없이 살 수 있어야 함."🚩 낮음. 정보는 저장되나? 이메일은?
수용 기준 (AC)"새로고침 해도 장바구니 유지. 영수증용 이메일 필수."⚠️ 중간. 새로고침 두 번 하면?
테스트 케이스"1. 상품 담기. 2. 거침. 3. 유지 확인. 4. 로컬스토리지 확인."✅ 높음. 통과/실패 명확함.

"요구사항"만 보고 개발에 뛰어들면, 추측 게임을 하는 겁니다. 코딩 전에 "테스트 케이스"로 변환하면, 정해진 대본대로 연기하는 겁니다.


누가 대본을 쓰나요?

자주 묻는 질문입니다. 이 귀찮은 건 누가 하죠?

역할책임산출물
기획자 / PM"무엇(What)"을 정의유저 스토리 & 수용 기준 (AC)
QA / 리드 개발자"어떻게(How)"를 검증테스트 케이스 (단계별 지시문)
클라이언트"승인(Yes)"을 수행UAT 실행 & 사인오프

클라이언트가 테스트 케이스를 쓰게 해선 절대 안 됩니다. 그들은 오직 실행만 해야 합니다. 여러분의 일은 채점표를 쥐여주고 "여기 체크만 하세요"라고 말하는 겁니다.


싸우지 않고 UAT 진행하는 법

많은 PM과 프리랜서가 UAT를 단순히 "마지막 테스트"라고 생각하고 건너뜁니다. 하지만 진짜 UAT는 정치적 행위입니다. 결정을 강요하는 과정이죠.

규칙 1: 절대 "그냥 한번 써보세요"라고 링크만 던지지 마세요

스테이징 링크만 주고 "피드백 주세요"라고 하면, 무덤을 파는 겁니다. 색깔이 어떻고 여백이 어떻고... 50개의 개인적 취향 피드백을 받게 될 겁니다.

반드시 테스트 시트(엑셀/문서)를 같이 보내세요. 클라이언트가 체크박스에 체크하게 만드세요. 통과/실패(Pass/Fail)를 선택하게 해야 합니다.

규칙 2: 테스트 실패는 좋은 겁니다

특정 테스트 케이스가 실패했다면, 그건 재앙이 아닙니다. 그냥 버그 리포트입니다. 문제의 범위를 "전체가 이상해"가 아니라 *"이 기능의 이 부분"*으로 한정 지어주니까요.

규칙 3: 사인오프는 이진법입니다

모든 핵심 테스트 케이스가 통과했다면, 프로젝트는 끝난(Done) 겁니다. 사인오프 이후의 모든 피드백은 **추가 개발(Change Request)**입니다.

납품 문서에 찍힌 디지털 승인 도장
사인오프는 요식이 아닙니다. '하자 보수'와 '새 기능 요청'을 가르는 경계선입니다.

방어선 구축을 위한 uDocit의 역할

uDocit은 이 파이프라인의 첫 단추인 요구사항과 AC를 체계적으로 잡아줍니다. 유저 스토리에 수용 기준(AC)을 명확히 적는 것만으로도, 이미 UAT 대본의 절반은 쓴 셈입니다.

(AC를 기반으로 테스트 케이스를 자동 생성해 주는 기능도 준비 중이니 기대해 주세요.)

핵심 요약 코드를 납품하지 마세요. '통과된 테스트'를 납품하세요. 스코프 크립(Scope Creep)을 막는 가장 강력한 방패는, 체크 표시가 된 문서입니다.


오늘부터 '완료'의 기준을 정의하세요 →