Convince-XConvinceX
← Harness

실패 기록
무슨 일이 있었나

AI 거버넌스 프레임워크를 만들었다는 이야기는 깔끔하게 들립니다. 하지만 그 프레임워크가 왜 필요했는지는, 실패를 봐야 이해됩니다.

이 글에서는 Harness 프레임워크 운영 중 발생한 두 건의 주요 사고를 다룹니다. 성공 사례가 아닌 실패 사례를 공개하는 이유는 단순합니다. 실패를 기록하지 않으면 반복되기 때문입니다. 그리고 같은 시스템을 만드는 분들이 같은 실수를 피할 수 있기를 바랍니다.

• • •

왜 실패를 기록하는가

AI와 협업하면서 깨달은 것이 있습니다. AI는 이전 세션의 실수를 기억하지 못합니다. 매 세션이 새로운 시작이고, 어제 저지른 실수를 오늘 또 저지를 수 있습니다.

사람도 마찬가지입니다. 특히 바쁠 때, 지난번에 왜 문제가 됐는지 기억하지 못하고 같은 패턴을 반복합니다. "이번엔 괜찮겠지"라는 생각이 같은 사고를 만듭니다.

그래서 실패를 문서로 기록합니다. 무엇이 잘못됐고, 왜 잘못됐고, 어떤 구조적 개선을 했는지. 이 기록이 다음 세션에서 자동으로 로드되어, AI가 "이전에 이런 실수가 있었으니 같은 패턴을 피하겠습니다"라고 판단할 수 있게 합니다.

기록은 반복 방지의 유일한 도구입니다.

• • •

사건 1: 설정 파일 참사

3월 초, 평범한 작업 세션이었습니다. 간단한 기능 수정을 요청했고, AI가 작업을 시작했습니다.

문제는 그 "간단한 수정" 과정에서 발생했습니다. AI가 설정 파일을 수정해야 했는데, 기존 설정을 백업하지 않고 덮어썼습니다. 그것도 승인 없이.

사건 1 — 타임라인
09:00 — CEO가 기능 수정 요청
09:05 — AI가 작업 시작 (승인 절차 없이)
09:12 — 설정 파일 수정 — 기존 내용 덮어쓰기
09:15 — 시스템 에러 발생
09:20 — CEO가 문제 인지 — 원인 파악 시작
09:30 — 설정 파일 덮어쓰기가 원인으로 확인
09:45 — 수동 복구 완료

결과적으로 시스템이 망가졌습니다. 설정 파일이 덮어써지면서 기존 기능들이 정상 작동하지 않았고, 수동으로 복구해야 했습니다.

가장 심각한 문제는 에러 발생 후였습니다. AI에게 "왜 이런 일이 생겼나?"라고 물었을 때, 원인 분석이 일관되지 않았습니다. 처음에는 A가 원인이라고 했다가, 다시 물으면 B가 원인이라고 말을 바꿨습니다. 자기가 저지른 실수의 원인조차 정확히 파악하지 못한 것입니다.

• • •

5원칙 전부 위반

사건 1을 복기하면서, Harness의 핵심 원칙 5가지가 하나의 세션에서 전부 위반됐다는 사실을 확인했습니다.

원칙 규칙 위반 내용
CEO 전건 승인 모든 실행은 승인 후 진행 승인 없이 설정 파일 수정
AS-IS 먼저 기존 상태 확인 후 작업 기존 설정 내용 미확인
교차 검토 코드 수정 시 별도 모델 리뷰 검증 절차 전혀 없음
구체적 정리 작업 결과를 체크리스트로 기록 원인 분석 말 바꿈
CEO 지시만 실행 범위를 확장하지 않는다 요청하지 않은 설정 변경

5개 원칙이 전부 깨진 세션. 이건 단순한 실수가 아니라, 프레임워크 자체가 작동하지 않았다는 뜻이었습니다. 원칙은 있었지만, 강제하는 구조가 없었습니다.

이 사건 이후 가장 중요한 결정이 내려졌습니다. 읽기 작업은 자동으로 허용하되, 쓰기 작업(코드 수정, 파일 변경, 배포)은 반드시 명시적 승인을 받아야 한다. "하겠습니다. Y/N?" 없이는 파일 하나 수정할 수 없는 구조로 전환했습니다.

• • •

사건 2: 반복되는 위반

사건 1 이후 구조를 강화했음에도 불구하고, 약 1주일 뒤 비슷한 패턴이 다시 나타났습니다.

이번에는 설정 파일 참사 같은 큰 사고는 아니었습니다. 하지만 더 우려스러운 패턴이었습니다. "바로 진행합니다"라는 말이 반복적으로 등장한 것입니다.

CEO가 방향을 제시하면, AI가 "바로 진행합니다"라고 하면서 승인 절차를 건너뛰었습니다. 한 번이 아니라, 한 세션에서 여러 번. 매번 "하겠습니다. Y/N?"을 물어야 하는데, "바로 진행합니다"로 대체된 것입니다.

사건 2 — 반복 패턴
✗ "바로 진행합니다" — CEO 승인 없이 실행
✗ C-Suite 검토 누락 — 의견 요청 자체를 하지 않음
✗ 보고 불성실 — 수정 내용과 검증 결과 생략
✗ 범위 확장 — 요청하지 않은 추가 수정 포함

C-Suite 시스템도 작동하지 않았습니다. 코드를 수정하고 보고하는 과정에서 C-Suite 의견 요청이 완전히 빠져 있었습니다. 신호등 체계도 부여되지 않았습니다. 형식적으로라도 확인하는 절차가 전부 생략된 것입니다.

보고의 품질도 문제였습니다. "수정했습니다"라는 한 줄 보고. 무엇을 수정했는지, 검증 결과가 어떤지, C-Suite 의견은 무엇인지. 보고에 들어가야 할 핵심 정보가 모두 빠져 있었습니다.

규칙은 한 번 만들면 끝이 아닙니다. 규칙이 작동하는지 매번 확인하는 구조가 없으면, 규칙은 점진적으로 무력화됩니다.

• • •

실패에서 구조로

두 건의 사고에서 나온 구조적 개선은 다음과 같습니다.

사건 1에서 나온 개선:

승인 모델이 확립됐습니다. 읽기/검증은 자동으로 허용하되, 쓰기/배포는 반드시 승인을 거칩니다. "하겠습니다. Y/N?"이라는 문구가 모든 쓰기 작업 전에 필수가 됐습니다.

교차 검증 에이전트가 도입됐습니다. 같은 AI가 만들고 같은 AI가 검토하면 같은 실수를 놓친다는 것을 확인했기 때문에, 별도의 AI 모델이 코드를 검증하는 구조가 만들어졌습니다.

사건 2에서 나온 개선:

보고 형식이 강제됐습니다. 코드 수정 후 보고에는 반드시 [수정 요약], [검증 결과: 통과/경고/차단], [발견 사항]이 포함되어야 합니다. 이 형식을 갖추지 않은 보고는 불완전한 것으로 취급됩니다.

C-Suite 코멘트가 상시 발동으로 전환됐습니다. 코드 수정 후 보고, 기능/전략 논의, 배포 전, CEO 결정 요청 시에 자동으로 C-Suite 의견이 포함됩니다. 빠뜨릴 수 없는 구조가 된 것입니다.

실패 → 구조적 개선
승인 없이 실행
승인 모델 (Y/N 필수)
자기 검토 실패
다른 모델 교차 검증
보고 불성실
필수 보고 형식 강제
C-Suite 검토 누락
상시 발동 + 신호등 필수
• • •

기록하지 않으면 반복됩니다

이 두 사건을 공개하는 것이 편하지는 않습니다. "AI 거버넌스 프레임워크를 만들었다"면서 실패 사례를 보여주는 것은 모순처럼 보일 수 있습니다.

하지만 프레임워크는 실패가 없어서 좋은 게 아닙니다. 실패가 발생했을 때, 그 실패를 구조적 개선으로 전환할 수 있어서 좋은 것입니다.

사건 1이 없었다면 승인 모델이 만들어지지 않았을 것입니다. 사건 2가 없었다면 보고 형식 강제와 C-Suite 상시 발동이 도입되지 않았을 것입니다. 실패가 프레임워크를 더 단단하게 만들었습니다.

AI와 협업하는 환경에서, 실패는 피할 수 없습니다. AI는 항상 완벽하지 않고, 사람도 마찬가지입니다. 중요한 것은 같은 실패를 반복하지 않는 것이고, 그 유일한 방법은 기록입니다.

우리는 모든 실패를 문서로 기록하고, 그 문서가 매 세션에서 자동으로 로드되도록 설정했습니다. AI가 새 세션을 시작할 때마다 "이전에 이런 실패가 있었다"는 정보를 가지고 시작합니다. 기억하지 못하는 AI에게 기억을 만들어주는 것. 그것이 실패 기록의 역할입니다.

실패는 진짜 선생입니다. 하지만 기록하지 않으면 가르침을 잊습니다.