Search

AI 에이전트가 잘못된 로그에 속을 때 — 확증 편향과 로그 정합성

태그
생각 정리
Devops
작성 상태
키워드 정리중
작성일
2026/02/01
참고 링크
참고 링크 2

들어가며

AI 코딩 도구(Claude Code, Devin 등)를 실무에서 적극 활용하면서 한 가지 예상치 못한 문제를 발견했다. AI가 코드베이스의 로그 메시지를 "사실"로 받아들여, 잘못된 방향으로 문제를 진단하는 현상이다.

로그가 말하는 것 vs 실제로 일어나는 것

로그는 작성자의 가설이다

로그 메시지는 코드를 작성한 사람이 "이 시점에 이런 일이 일어날 것"이라고 가정한 내용이다. 하지만 시스템이 복잡해지면 그 가설이 틀릴 수 있다.
예를 들어, 분산 스트리밍 환경에서 이런 로그가 있다고 가정하자:
이 로그는 "A가 누락된 것"이라고 단정하고 있다. 하지만 실제로는 A가 생성되었으나, 병렬 처리 과정에서 B보다 늦게 도착한 것일 수 있다. 즉, 누락이 아니라 순서 역전이다.

사람도 속고, AI도 속는다

사람은 이런 로그를 보면 "아, A가 누락되는구나"라고 생각하고 누락 방지 로직을 추가하려 한다. AI도 마찬가지다. 코드베이스에서 이 로그를 발견하면 "A 누락" 전제 하에 해결책을 제안한다.
문제는, AI는 로그 메시지를 의심할 동기가 없다는 것이다. 코드에 적혀 있으면 그것이 사실이라고 판단한다. 이것이 AI 에이전트의 확증 편향이다.

왜 위험한가

1. AI가 잘못된 전제 위에 해결책을 쌓는다

"A 누락"이라는 전제가 틀렸는데, AI는 이 전제 위에 복잡한 해결책을 제안한다. State 저장, TTL 설정, 재시도 로직 등 — 근본 원인과 무관한 코드가 추가된다.

2. 디버깅 시간이 늘어난다

AI의 제안을 따라 구현한 뒤에도 문제가 해결되지 않으면, "AI가 제안한 방향이 맞는데 구현이 잘못된 건가?"라고 생각하게 된다. 잘못된 전제를 의심하기까지 시간이 더 걸린다.

3. 로그가 또 다른 잘못된 로그를 낳는다

AI가 추가한 코드에 또 잘못된 가설의 로그가 포함되면, 이후에 같은 문제를 디버깅할 때 또 같은 함정에 빠진다.

어떻게 대응할 것인가

1. 로그 메시지를 "가설"이 아니라 "사실"로 작성하라

로그에 원인을 단정하지 말고, 관찰된 사실만 기록하라.
"lost"(잃어버렸다)와 "not yet observed"(아직 관찰되지 않았다)는 큰 차이다. 후자는 순서 역전 가능성을 열어둔다.

2. AI에게 맡기기 전에 로그 정합성을 확인하라

AI 에이전트에게 트러블슈팅을 맡기기 전에, 관련 로그가 기술적으로 정확한지 먼저 검증하라. 부정확한 로그가 있으면 AI가 잘못된 방향으로 갈 확률이 높다.

3. AI의 진단을 의심하라 — 특히 "로그에 의하면"이라고 할 때

AI가 "로그에 의하면 A가 누락되고 있으므로..."라고 말하면, 그 로그 자체가 맞는지 먼저 확인하라. AI는 로그를 의심하지 않으므로, 사람이 그 역할을 해야 한다.

결론

AI 코딩 도구는 코드베이스에 있는 정보를 기반으로 판단한다. 로그 메시지도 그 정보의 일부다. 로그가 부정확하면 AI도 부정확한 방향으로 간다.
로그 정합성은 AI 활용의 전제 조건이다. AI를 잘 쓰려면, AI가 참고할 데이터를 먼저 정리해야 한다.
이것은 비단 로그에만 해당하는 이야기가 아니다. 주석, README, 문서 — AI가 참고하는 모든 텍스트가 정확해야 AI의 아웃풋도 정확해진다.