정규식과 LLM에게 같은 시험지를 풀게 했다

John Green·2026년 8월 15일

AI 검증

목록 보기
11/13

지난 글에서 내 댓글 분류기(정규식)가 시험 15문제에서 치명 오류(사람이 되돌릴 수 없는 실수) 3건을 냈다는 이야기를 썼다. 우리 기준으로 치명이 있으면 못 쓴다. 그럼 뭘로 바꾸나.

후보는 하나다. LLM한테 분류를 시키는 것. 그래서 같은 시험지로 대결을 붙였다.

대결 규칙

  • 같은 15문제, 같은 채점기, 같은 등급표
  • 정규식 쪽: 기존 도구 그대로 (키워드 매칭)
  • LLM 쪽: Sonnet 5에게 분류 정의(니즈란 무엇인가, 경험담·수사 반문은 아님)를 주고 댓글마다 판정시킴

공정성 문제가 하나 있었다. LLM에게는 "확인필요"라고 답할 권리를 줬다. 정규식에는 그 개념 자체가 없어서 주고 싶어도 줄 수가 없다 — 지난 글에서 지적한 그 결함이라, 이건 편애가 아니라 두 도구의 실력 차이 그 자체다.

결과

              정규식                      LLM
무결점        8/15 (53%)                 12/15 (80%)
등급         치명3 위험5 누락1 무해0      치명0 위험1 누락1 무해1

4편에서 정한 원칙대로 점수가 아니라 등급으로 읽는다. 치명 3 대 치명 0. 정규식은 못 내놓는 등급이고 LLM은 내놓을 수 있는 등급이라, 승부는 여기서 났다.

갈린 자리를 세 곳만 보자.

LLM은 문맥을 읽었다. "문과는 돈이 안 되기 때문에…"라는 사회 논평을 정규식은 "안 되" 두 글자 때문에 에러·디버깅 니즈로 잘못 분류했다. LLM은 논평으로 정확히 걸렀다. "안되겠다 오늘은 자야지 ㅋㅋ"도 마찬가지.

LLM은 모르겠다고 말할 줄 안다. "저도요 ㅠㅠ 매번 그래요"는 원댓글이 없으면 판정할 수 없는 답글이다. 정규식은 무조건 어느 한쪽으로 확정했고, LLM은 "확인필요"라고 답했다. 준 권리를 실제로 행사한 것이다. 틀린 확정이 확정 못 한 것보다 나쁘다는 원칙을 이 도구는 지킬 줄 안다.

LLM은 키워드 사전이 필요 없다. 정규식의 카테고리 키워드 사전에는 AI 코딩 도구인 '커서(Cursor)'가 등록돼 있지 않아서, 커서 얘기는 전부 분류를 못 받고 있었다. LLM은 사전 없이 문맥만으로 AI도구 카테고리로 분류했다. 키워드 사전을 계속 채워 넣는 관리 자체가 사라진다.

완승은 아니다. LLM도 카테고리 하나를 빠뜨렸고(월 결제 얘기에서 가격·결제 분류 누락), 확인필요로 넘겼어야 할 애매한 문제 하나를 확정해버렸다 — 위험 등급 1건이다. 80%지 100%가 아니다. 다만 그 실수들은 전부 되돌릴 수 있는 등급이었다.

"그럼 그냥 LLM으로 검증하면 되잖아요?"

여기까지 읽으면 이런 질문이 나온다. LLM이 이렇게 잘하면, 시험지니 등급표니 만들 것 없이 그냥 LLM한테 "이거 맞아?"라고 물으면 되는 것 아닌가.

저울에 비유하면 이렇다. 저울이 정확한지 확인하는 방법은 하나다. 무게를 미리 아는 추(분동)를 올려보는 것. 1kg짜리 분동을 올렸는데 1kg이 나오면 믿어도 되는 저울이다.

여기서 저울은 댓글을 판정하는 도구고, 분동은 정답을 미리 적어둔 시험지다. 이번 대결에서 저울은 두 개였다. 정규식 저울과 LLM 저울. 같은 댓글을 올려도 둘이 다른 답을 내는데, 어느 쪽이 맞는지 가려준 것이 분동 — 정답을 아는 15문제다. 분동이 없었으면 "둘이 다르네"에서 끝났다.

"그냥 LLM한테 물어보기"도 같은 그림이 된다. 검증받는 LLM과 검증하는 LLM, 저울 두 개가 분동 없이 서로를 잴 뿐이다. 둘이 다른 값을 내면 누가 맞는지 영원히 모른다.

거꾸로 말하면, 분동만 있으면 저울은 하나로 충분하다. 저울 두 개는 고를 때만 필요했다. 대결이 끝난 지금 남은 체제는 시험지 15문제와 LLM 분류기, 그 둘이다.

이번 주에 "그냥 LLM한테 검증시키기"가 실패하는 장면을 세 번 직접 봤다.

  • 8편에서 AI 채점관과 코드 채점기의 판정이 갈렸을 때, 누가 맞는지 판정할 수 있었던 건 정답을 아는 29문제가 있었기 때문이다
  • 9편에서 문제를 낸 것도 Sonnet, 검수한 것도 Sonnet이었다 — 50문제 전원 합격. 자기 채점이었다. 시험 절차가 없으면 이게 함정인 줄도 모른다
  • 오늘 LLM이 80%라는 것, 치명이 0이라는 것 — 그 숫자 자체가 정답지 있는 시험지에서 나왔다. 시험지가 없었으면 "좋아 보인다"는 느낌만 남는다. "못 믿겠다"의 원점으로 돌아가는 것이다

그리고 실용적인 이유가 하나 더 있다. 재채점이 공짜다. 분류 프롬프트를 고치거나 모델을 바꿀 때마다 사람이 다시 검증할 것인가. 시험지는 정답지가 저장돼 있어서 5분이면 새 성적표가 나온다. 오늘 만든 15문제는 이 도구를 고칠 때마다 다시 치르게 할 평생 시험지가 됐다.

비용은 따져야 한다

정규식은 공짜고 즉시다. LLM은 호출마다 몇십 초가 걸린다. 소량(내 블로그 댓글 분석)에는 LLM을 쓰면 되고, 2만 개짜리 대량 분석이라면 정규식으로 1차로 거르고 걸린 것만 LLM으로 정밀 판정하는 조합도 가능하다. 도구 선택도 결국 등급(안전)과 비용 사이에서 고르는 일이다.

정리

  1. 도구를 바꿀 땐 같은 시험지로 대결시켜라. 점수가 아니라 치명 개수로 고른다
  2. "모르겠다"라고 답할 수 있는 도구가 그 권리를 실제로 행사하는지 봐라
  3. LLM으로 검증하더라도 시험지는 필요하다 — 검증하는 놈을 검증하는 분동이니까

덧. 시험지 15문제와 두 분류기의 채점 결과는 저장소에 공개해뒀다 → github.com/ramses203/llm-test-harness의 comment_exam.py (--compare로 나란히 비교된다)

덧2. 새 실험이 끝날 때마다 메일로도 보냅니다 → AI 검증 노트

profile
AI 결과를 믿어도 되는지 확인하는 방법을 씁니다

0개의 댓글