LLM이 말하는 '95% 확신'은 왜 믿을 수 없나: AI 코딩 도구의 신뢰도 점수를 개발 워크플로우에 통합하기

LLM의 자기 평가 신뢰도는 확률이 아니라 언어 패턴에 가깝습니다. 코드 생성에서 보정이 특히 낮은 이유와, 신뢰도 점수를 탐색 우선순위로만 쓰고 품질 게이트는 CI/CD 검증에 맡기는 워크플로우를 설명합니다.

LLM이 '이 코드는 95% 안전합니다'라고 말할 때, 그 숫자는 확률적 근거가 아니라 학습 데이터에서 학습된 언어적 패턴에 가깝습니다. 특히 코드 생성에서는 모델의 보정(calibration)이 크게 떨어지는 것으로 여러 연구에서 확인됩니다. 따라서 개발자는 모델의 자기 평가를 의사결정 기준으로 삼지 말고, 탐색 우선순위를 정하는 신호로만 활용하고 실제 품질 게이트는 정적 분석·테스트·CI/CD 자동 검증에 맡겨야 합니다.

LLM의 '확신'은 왜 확률이 아닌가

LLM이 출력하는 confidence score는 사람이 기대하는 것처럼 '정답일 확률'이 아닙니다. 모델은 다음 토큰을 예측할 때 내부적으로 다양한 확률 분포를 계산하지만, 사용자에게 보여주는 숫자는 대개 자연어로 표현된 주관적 추정입니다. 예를 들어 '95% 확신합니다'라는 문장은 실제로 100번 중 95번 맞는다는 통계적 보증이 아니라, 학습 과정에서 비슷한 문맥에 등장한 표현 패턴일 뿐입니다.

최근 연구들은 LLM의 보정이 모델별·도메인별로 크게 다르며, 코드 생성에서는 특히 낮은 경향이 있음을 보여줍니다. 모델이 높은 확신을 보인 코드 조각에서도 문법 오류나 보안 취약점이 빈번하게 발견됩니다. 이는 모델이 코드의 의미를 이해하지 않고, 단지 확률적으로 그럴듯한 토큰 시퀀스를 생성하기 때문입니다.

AI 코딩 도구의 '안전합니다'는 왜 위험한가

실제 개발 현장에서 AI 코딩 도우미가 '이 코드는 안전합니다', '이 함수는 예외를 잘 처리합니다'라고 말해도 정적 분석 도구가 SQL 인젝션이나 경계 조건 누락을 바로 지적하는 경우가 많습니다. 모델의 높은 신뢰도 점수는 개발자에게 거짓 안도감을 주어 리뷰를 건너뛰게 만들 수 있습니다. 반대로 낮은 점수라고 해서 반드시 틀린 코드는 아니므로, 점수 자체를 품질 게이트로 쓰면 생산성만 떨어뜨립니다.

최근 산업 동향도 독립적 검증의 중요성을 강조합니다. 예를 들어 Sonar는 2026년 9월 말 에이전틱 코드 거버넌스와 검증 기능을 자체 관리형 인프라(SonarQube Server)까지 확장한다고 발표했습니다. 이는 기업들이 AI가 생성한 코드를 사람이 일일이 보지 않고도 정적 분석과 정책 기반 게이트로 관리하려는 흐름을 보여줍니다.

신뢰도 점수를 탐색 우선순위로만 쓰는 워크플로우

개발자는 LLM의 자기 평가를 '탐색 우선순위'로만 사용하는 것이 바람직합니다. 예를 들어 하나의 작업에 대해 여러 후보 코드를 생성하도록 하고, 모델이 매긴 점수가 높은 순서대로 정적 분석과 유닛 테스트를 돌려보는 방식입니다. 이렇게 하면 점수를 의사결정 기준이 아니라, 제한된 검증 자원을 어디에 먼저 투입할지 정하는 신호로 활용할 수 있습니다.

실질적인 품질 게이트는 CI/CD 파이프라인의 자동 검증에 맡겨야 합니다. 최소한의 게이트로는 컴파일·린트·단위 테스트·보안 스캔이 있으며, 코드 병합 전에 이들을 모두 통과해야 합니다. 여기에 사람이 최종 리뷰를 하는 단계를 두면, 모델의 과신으로 인한 위험을 상당히 줄일 수 있습니다.

보정(calibration) 연구가 주는 시사점

보정이란 모델이 '90% 확신한다'고 말한 예측 중 실제로 90%가 맞는지를 나타내는 지표입니다. 여러 벤치마크에서 LLM의 보정은 이상적 대각선에서 크게 벗어나며, 특히 코드 생성처럼 구조적 정확성이 중요한 도메인에서는 오차가 더 큽니다. 모델이 학습한 코드 데이터의 분포와 실제 프로젝트의 코드 스타일·의존성·비즈니스 로직이 다르면 보정은 더 나빠집니다.

MIT와 Sakana AI가 최근 공개한 SIFT 프레임워크는 자기 개선형 코딩 에이전트의 평가 비용을 LLM judge로 줄이는 접근을 취합니다. 이는 후보 변경을 빠르게 필터링하는 데 유용하지만, LLM judge 역시 완벽하지 않으므로 최종 검증은 실제 테스트 실행으로 대체할 수 없습니다. 결국 신뢰도 점수와 LLM judge 모두 '탐색 비용 절감'에는 도움이 되지만, '품질 보증'의 근거로는 부족합니다.

결론: 신뢰는 모델이 아니라 파이프라인에서 나온다

바이브 코딩이 확산될수록 '모델이 말하는 확신'을 곧이곧대로 믿는 실수는 더 위험해집니다. LLM의 자기 평가는 보정되지 않은 주관적 추정이므로, 개발자는 이를 의사결정 기준이 아니라 탐색 우선순위 신호로만 삼아야 합니다. 실제 품질 게이트는 정적 분석, 테스트, CI/CD 자동 검증이 담당하고, 사람은 모델의 추론과 변경 이력을 투명하게 검토할 수 있어야 합니다.

이런 맥락에서 md-log는 AI가 작성한 작업·분석을 사람이 웹·폰·태블릿에서 편하게 검토하고, 저장할 때마다 불변 버전으로 쌓아 협업 히스토리를 남기는 휴먼 인 더 루프 리뷰·아카이브 레이어로서 유용합니다. 결국 '95% 확신'이라는 말은 모델의 언어적 표현일 뿐이며, 진짜 신뢰는 파이프라인의 검증 게이트에서 나옵니다.

참고 자료

자주 묻는 질문

LLM이 말하는 '95% 확신'은 실제 정확도와 얼마나 차이가 나나요?
모델과 도메인에 따라 다르지만, 코드 생성에서는 보정이 특히 낮아 95%라고 말해도 실제로는 그보다 훨씬 낮은 정확도를 보이는 경우가 많습니다. 이는 확신 점수가 확률적 근거가 아니라 언어적 패턴에서 나오기 때문입니다.
AI 코딩 도구의 신뢰도 점수를 아예 무시해야 하나요?
무시하기보다는 탐색 우선순위를 정하는 신호로만 활용하는 것이 바람직합니다. 점수가 높은 후보부터 정적 분석과 테스트를 돌려보는 식으로 검증 자원을 효율적으로 배분할 수 있습니다.
코드 병합 전에 어떤 최소한의 게이트를 두어야 하나요?
컴파일, 린트, 단위 테스트, 보안 스캔을 CI/CD 파이프라인에서 자동 실행하고 모두 통과한 코드만 병합하도록 설정합니다. 여기에 사람의 최종 리뷰 단계를 추가하면 더 안전합니다.
LLM의 보정(calibration)이 왜 코드 생성에서 특히 낮은가요?
코드는 문법 구조와 의미가 엄격하고, 학습 데이터에 없던 프로젝트 고유의 의존성·스타일·비즈니스 로직을 반영해야 하기 때문입니다. 모델이 학습한 일반적인 코드 패턴과 실제 요구사항이 어긋날수록 확신과 정확도의 괴리가 커집니다.
최근 도구나 연구 중 신뢰도 문제를 완화하는 사례가 있나요?
Sonar는 에이전틱 코드 거버넌스를 자체 관리형 인프라로 확장했고, MIT와 Sakana AI는 SIFT로 코딩 에이전트 평가 비용을 낮추는 접근을 내놓았습니다. 다만 이들은 검증 효율을 높이는 것이지, 모델의 자기 확신이 정확해진다는 뜻은 아닙니다.

관련 글

← 모든 글 보기