/// LEARN · L2 안전장치 · 01

"했습니다"를 믿지 않는 법

AI에게 일을 맡기면 거의 언제나 "수정 완료했습니다"가 돌아온다. 정말 됐는지는 다른 문제다. 사람이라면 몇 번 겪고 알아서 조심하게 되지만, AI는 다음 대화에서 처음부터 다시 시작한다. 사람을 고치는 대신 구조를 바꾼다.

문장으로 적은 정책은 잊힌다

"앞으로 이 값은 설정 파일에서만 읽어라"라고 적어 두었다고 하자. 그 문장은 세 번째 대화까지는 지켜지고, 열 번째에는 사라진다. 대화가 길어지면 앞의 지시는 뒤로 밀리고, 새 창을 열면 아예 없던 일이 된다.

같은 정책을 시험(test)으로 적으면 이야기가 달라진다. 문장은 잊히지만 시험은 깨진다. 깨지면 소리가 난다. AI가 규칙을 어겼는지 내가 기억해서 확인하는 대신, 규칙이 스스로 손을 든다.

핵심

AI와 만들 때 가장 값싼 투자는 확인을 자동으로 만드는 일이다. 확인을 사람이 하면 열 번 중 아홉 번은 건너뛴다. 그 한 번에서 사고가 난다.

붙잡아 두는 장치 다섯

1. 값은 한 곳에만 둔다

같은 숫자가 다섯 군데에 있으면 AI는 하나를 빼먹고도 다 고쳤다고 답한다. 잘 시키는 것이 아니라 고칠 곳을 하나로 줄이는 것이 해법이다. → 자세히는 L2 · 06 한 곳만 고치면 되게 만든다

2. 정책마다 시험 한 줄

"번호는 0부터 시작한다", "값이 최대치를 넘으면 더 늘지 않고 멈춘다" 같은 결정은 주석이 아니라 시험으로 남긴다. 다음에 누가(또는 AI가) 반대로 고치면 그 자리에서 빨간 줄이 뜬다.

# 정책: 점수는 최대치에서 멈춘다 (넘어가서 0으로 돌지 않는다)
def test_score_clamp():
    s = Score(value=MAX_SCORE)
    s.add(10)
    assert s.value == MAX_SCORE   # 0 으로 돌면 여기서 깨진다

시험을 직접 쓸 줄 몰라도 된다 — "이 규칙이 깨지면 알 수 있게 시험을 만들어 줘" 라고 시키면 된다. 중요한 것은 규칙을 시험으로 옮겨 두겠다는 결정이다.

3. 요구는 내 말 그대로 박아 둔다

요구사항을 정리해서 옮겨 적으면, 정리하는 과정에서 조건이 한두 개 증발한다. 실제로 한 말을 그대로 주석이나 메모에 박아 둔다. 나중에 "왜 이렇게 만들었지"를 되짚을 때, 다듬은 문장보다 날것의 한 줄이 훨씬 정확하다.

4. 문서가 아니라 대상을 잰다

"메모대로 맞는지 확인해 줘"라고 하면 메모를 읽고 맞다고 답한다. 메모가 낡았을 수 있다. 확인은 늘 실제 파일 · 실제 화면 · 실제 실행 결과를 대상으로 한다. → 자세히는 L2 · 04 문서가 아니라 대상을 재라

5. 되돌릴 수 있게 지운다

지운 것을 되살릴 수 없으면 겁이 나서 손을 못 댄다. 지우는 대신 한 칸(attic/) 옆으로 옮겨 두면 과감하게 걷어낼 수 있다. → 자세히는 L2 · 05 되돌릴 수 있게 지운다

직접 겪어 본 것

중복된 설정과 잘못된 순서를 걷어낸 적이 있다. 고친 뒤 "수정 완료"라는 답을 받았지만, 실제로 확인한 것은 경고 0건 · 오류 횟수 · 실제로 돌려 본 결과값 세 가지였다. 말이 아니라 숫자가 바뀌어야 고쳐진 것이다.

정리 — 세 줄

  1. 문장으로 적은 정책은 잊히고, 시험으로 적은 정책은 깨진다.
  2. 고칠 곳을 하나로 줄이면 "빼먹고 했다고 답하는" 일이 구조적으로 사라진다.
  3. 완료 보고가 아니라 숫자를 확인한다. 바뀐 숫자가 없으면 안 고쳐진 것이다.
해 볼 것 · 10분
  1. 지금 만들고 있는 것(없으면 Claude 과정 STEP 13 의 스크립트)에서 "이건 꼭 지켜야 한다" 는 규칙 하나를 고른다.
  2. "이 규칙이 깨지면 알 수 있게 시험을 만들어 줘. 어떻게 돌리는지도" 라고 시킨다.
  3. 일부러 규칙을 어기게 한 줄 바꿔 보고 시험이 실제로 깨지는지 본다. 되돌린다.

시험이 안 깨지면 그 시험은 아무것도 지키지 않는 것이다. 3단계를 건너뛰지 않는다.

확인 질문 눌러서 답 보기
문장으로 적은 정책과 시험으로 적은 정책의 차이는?

문장은 잊히고, 시험은 깨진다. 깨지면 소리가 난다.

확인을 사람이 하면 무엇이 문제인가?

열 번 중 아홉 번은 건너뛴다. 그 한 번에서 사고가 난다. 그래서 확인을 자동으로 만든다.

"수정 완료" 라는 답을 받은 뒤 무엇을 보나?

바뀐 숫자. 경고 수, 오류 횟수, 실제 결과값. 바뀐 숫자가 없으면 안 고쳐진 것이다.