KCH W04 · 실패를 재현하고 원인을 좁히기

KCH AGENT BUILDER LAB · W04 REVIEW

에러를 보자마자 고치지 말고, 같은 실패부터 다시 만들기

W3에서 설계한 PoC를 실행한 뒤 실패 하나를 고릅니다. 재현 명령을 고정하고, 원인 후보를 줄이고, 한 번에 변수 하나만 바꾼 뒤 같은 판정으로 전·후를 비교합니다.

복습 25분 · 실습 45분 결과물 2개 복습 후 퀴즈 →

오늘의 목표는 “고침”이 아니라 원인을 좁히는 기록입니다

화면이 다시 보이는 것만으로는 해결이라고 할 수 없습니다. 누구나 같은 명령으로 실패를 재현하고 무엇을 바꿨는지 설명해야 합니다.

  • 재현: 같은 입력과 명령으로 같은 실패를 다시 만드는 것
  • 최소 재현: 실패에 필요 없는 입력과 단계를 덜어낸 상태
  • 가설: 원인 후보와 그 후보라면 보여야 하는 신호
  • diff: 이번 시도에서 바뀐 줄만 비교하는 경계

기억이 아니라 명령 한 줄로 실패를 고정하기

입력·명령·기대 결과·실제 결과를 한 자리에 남겨야 “아까는 됐는데요”를 없앨 수 있습니다.

  1. 01

    실패한 순간을 원본 그대로 저장하기

    왜 하나요? 수정된 상태가 원본처럼 보이는 일을 막습니다.

    할 일 입력, 실행 명령, 예상 결과, 실제 결과, 환경을 복사합니다.

    복사해서 써도 되는 요청

    이 기록에서 재현에 필요한 정보와 배경 설명을 나눠줘. 부족한 것은 질문으로 표시해줘.

    정상이라면 다른 사람이 원본만 보고 실행할 수 있습니다.

  2. 02

    실패를 한 줄 명령으로 만들기

    왜 하나요? 재현 여부를 감상이 아닌 판정 신호로 바꿉니다.

    할 일 가장 짧은 명령과 실패가 보이는 출력 한 줄을 정합니다.

    복사해서 써도 되는 요청

    현재 실패를 재현하는 가장 짧은 명령과 실패 출력 패턴을 제안해줘.

    정상이라면 같은 명령을 두 번 실행해 같은 신호를 봅니다.

  3. 03

    필요 없는 것부터 하나씩 빼기

    왜 하나요? 원인 후보를 줄여 수정 범위를 작게 만듭니다.

    할 일 입력·단계·옵션을 하나씩 제거하고 실패가 사라지는 지점을 기록합니다.

    정상이라면 “전체가 이상하다”가 아니라 실패가 생기는 단계와 조건을 말할 수 있습니다.

후보 하나를 바꾸고, 같은 판정으로 다시 확인하기

AI에게 수정을 맡겨도 판정과 변경 경계는 사람이 정합니다.

  1. 01

    원인 후보를 신호와 함께 정렬하기

    왜 하나요? 틀린 후보를 관찰로 빨리 제외합니다.

    할 일 각 후보가 맞다면 무엇이 보여야 하는지 쓰고 확인 비용이 낮은 순으로 봅니다.

    복사해서 써도 되는 요청

    실패 원인 후보와 예상 신호·확인 방법을 표로 만들어줘. 모르는 것은 미결정으로 남겨줘.

    정상이라면 추측 목록이 관찰 가능한 가설이 됩니다.

  2. 02

    한 사이클에 변수 하나만 바꾸기

    왜 하나요? 성공했을 때 무엇이 효과였는지 알기 위해서입니다.

    할 일 바꿀 파일·조건·코드 한 가지를 미리 적습니다.

    정상이라면 변경 전·후를 원인과 연결할 수 있습니다.

    TIP · 여러 파일을 바꿔야 한다면 먼저 범위를 더 줄입니다.

  3. 03

    같은 명령으로 전·후 비교하기

    왜 하나요? “이제 되는 것 같다”를 판정으로 바꿉니다.

    할 일 같은 입력·명령·기준으로 수정 전과 후를 나란히 기록합니다.

    정상이라면 녹색이면 커밋하고, 붉으면 되돌린 뒤 다음 후보로 갑니다.

실패 보고서는 다음 범위를 결정하는 증거입니다

고친 코드보다 어떤 조건에서 통과·실패했는지가 W05의 범위를 정합니다.

  • 통과: 같은 판정으로 다시 성공하고 재현 명령을 보존합니다.
  • 부분 통과: 성립한 조건과 실패한 조건을 나눕니다.
  • 중단: 수정 비용이 검증 가치보다 크면 방향을 다시 합의합니다.

failure-report.md

수정 전·후가 같은 판정으로 비교되도록 실패 보고서를 한 장에 남깁니다.

# 실패 보고서

## 재현
- 명령: [한 줄 명령]
- 입력: [파일·조건]
- 기대: [보여야 하는 것]
- 실제: [실패 신호]

## 최소 재현
- 남긴 단계: [필요한 단계]
- 뺀 단계: [빼도 실패가 유지된 것]

## 원인 후보와 이번 변경
- 후보: [원인과 예상 신호]
- 변수 하나: [파일·조건·코드]
- 이유: [확인 방법]
- diff/커밋: [링크]

## 전·후 판정
- 수정 전: [PASS/FAIL + 근거]
- 수정 후: [PASS/FAIL + 근거]
- 다음 행동: [커밋/되돌림/다음 후보]

이 7가지가 보이면 오늘의 목표를 달성한 것입니다

  • 원본 입력·명령·기대·실제가 보존되어 있다.
  • 실패를 한 줄 명령으로 두 번 재현했다.
  • 최소 재현을 만들었다.
  • 후보마다 예상 신호와 제외 근거가 있다.
  • 한 사이클에 변수 하나만 바꿨다.
  • 같은 기준으로 전·후를 비교했다.
  • 녹색이면 커밋하고 붉으면 되돌리는 규칙이 있다.

다음 주에는 검증 결과로 MVP 범위를 합의합니다

W04의 통과·부분 통과·중단 판정이 W05 명세의 근거가 됩니다.

모바일 퀴즈 풀기

자주 나오는 질문

재현이 매번 조금씩 달라지면요?

입력·환경·시간에 영향을 주는 요소를 먼저 기록하세요. 그래도 달라지면 “재현되지 않음” 자체를 결과로 남기고 관찰 지점을 더 작게 줄입니다.

AI에게 바로 고쳐달라고 하면 안 되나요?

고치는 일은 맡겨도 됩니다. 다만 재현 명령·원인 후보·이번 변경 하나를 먼저 공유해야 검증 가능한 수정을 받을 수 있습니다.

한 번 성공했으면 해결된 것 아닌가요?

같은 명령을 다시 실행해도 성공하고 무엇이 효과였는지 설명할 수 있어야 합니다. 한 번의 성공은 우연일 수 있습니다.

diff를 꼭 봐야 하나요?

diff는 이번 시도의 변경 경계를 보여줍니다. 변경이 너무 크면 성공해도 원인과 되돌릴 곳을 알 수 없습니다.