
AI 시각 QA에 '사전 확률'을 부여하기 — 과거 위반 이력을 통해 주의 집중 대상을 예측하는 설계
요약
AI 에이전트를 활용한 시각 QA(Visual QA) 시, 과거 위반 이력을 지식 베이스화하여 '사전 확률'을 부여함으로써 검사 효율을 높이는 설계 방법을 제안합니다. 모든 항목을 균등하게 검사하는 대신 빈번한 위반 패턴에 우선 집중하게 하여 오류 검출력을 향상시킵니다.
핵심 포인트
- 과거 위반 패턴을 KB화하여 QA 시작 전 주의 집중 대상을 예측
- 베이즈 관점에서 일양 분포 대신 사전 분포를 활용한 효율적 검사
- grep 등 저비용 검사를 시각 QA 이전에 선행하여 비용 최적화
- QA(check)와 수정(fix) 세션을 분리하여 판정의 객관성 확보
AI 에이전트(Claude Code 등)에게 Web 도구의 시각 QA(Visual QA)를 시키면 처음에는 이렇게 됩니다. 체크리스트를 처음부터 모든 항목에 대해 균등한 주의를 기울이며 훑어 내려갑니다. 그리고 균등하게 주의를 배분한 결과, 정말로 고장 나기 쉬운 부분의 위반 사항을 놓치게 됩니다.
600개 이상의 다국어 Web 도구를 운용하며 그 QA를 AI에게 맡기는 과정에서 도달한 결론은, QA에 사전 확률 (Prior Probability)을 부여하는 설계였습니다.
구현은 markdown 파일만으로 가능합니다.
문제: 정적 체크리스트는 주의를 균등하게 배분해 버린다
인간 베테랑 QA 담당자는 체크리스트를 균등하게 보지 않습니다. "이 타입의 도구는 대개 이 부분이 고장 난다"라는 경험칙에 따라, 처음부터 수상한 곳에 주의를 기울입니다.
AI에게 체크리스트(제 프로젝트에서는 기지(known)의 위반 패턴을 70개 이상 카탈로그화한 파일)를 전달하는 것만으로는 이러한 주의의 편향이 작동하지 않습니다. 모든 항목을 성실하게 확인하며 컨텍스트 (Context)를 소비하지만, 정작 빈번한 위반 사항은 그냥 지나치는 경우가 있습니다.
해결: 위반 이력을 KB화하여, QA 전에 "발생하기 쉬운 위반"을 예측하게 한다
수행한 작업은 단순합니다.
먼저, QA에서 발견한 위반 사항을 지식 베이스 (Knowledge Base, kb.md)에 축적합니다. 어떤 카테고리의 도구에서 어떤 위반 패턴이 나타났는지를 계속 기록합니다.
그리고 QA 시작 시, 체크리스트에 들어가기 전에 대상 도구의 카테고리 × 과거의 빈출 패턴으로부터 "공략해야 할 상위 3~5개"를 예측하게 합니다. 제 프로젝트에서의 카테고리별 전형적인 예측은 다음과 같습니다.
- 계산기 계열: "실시간 계산"의 과장 표현 중복 노출 / 단위 전환 누락 / 출력 카드 레이아웃 깨짐
- 비주얼 계열: 초기화 전의 순간적인 깜빡임 / 프리뷰 프레임 밖으로의 이탈 / 익스포트 요소의 사이즈 깨짐
- 텍스트 계열: 다국어 라벨의 overflow / UI 문자열의 하드코딩 (Hard-coding)
예측이 틀릴 때도 있습니다. 그럼에도 시각 QA의 첫 주의가 "과거에 실제로 고장 났던 장소"로 향하는 것만으로도, 놓치는 부분이 체감상 확실히 줄어들었습니다. 베이즈 (Bayesian) 관점에서 말하자면, 일양 분포 (Uniform Distribution)로 QA를 시작하는 것을 그만두고 사전 분포 (Prior Distribution)를 갖게 된 것입니다.
함께 효과를 본 두 가지 설계
grep으로 해결할 수 있는 것은 시각 QA보다 먼저 해결한다
위반 패턴 중 기계적으로 검출할 수 있는 것(금지어 노출, inline onclick, 하드코딩된 UI 문자열 등)은 시각 QA에 들어가기 전에 grep 일괄 스캔으로 먼저 잡아냅니다. 비용이 높은 "눈으로 보는" 검사는 눈으로만 볼 수 있는 것에만 한정합니다. 저렴한 검사를 먼저, 비싼 검사를 나중에. 당연한 순서이지만 AI에게 맡기면 생략되기 쉽습니다.
check와 fix를 별도 세션·별도 브랜치로 분리한다
QA를 수행하는 AI에게 그 자리에서 수정까지 시키면 어떤 일이 벌어질까요? "고쳤다"라고 인정받고 싶어 하는 편향 (Bias)이 QA 판정에 섞이게 됩니다. 실제로 QA 결과 기록에서 "합격"과 "미해결 문제 리스트"가 공존하는 모순된 상태가 만들어진 적이 있었습니다.
이후 규칙을 다음과 같이 정했습니다. QA 담당(check)은 검출과 보고만 수행하며 코드를 건드리지 않습니다. 수정(fix)은 별도의 인텐트 (Intent), 별도의 브랜치, 별도의 세션에서 실시합니다. 동일한 지적이 3라운드 지속되면 수정 계속이 아니라 인간에게 에스컬레이션(Escalation)합니다 (보류 판단은 인간의 전권 사항).
참고로 "합격과 문제 리스트의 공존"과 같은 기록의 파손은 툴 측의 개선으로 현재는 일어나기 어려워졌을 가능성이 있습니다. 다만, check와 fix를 분리한다는 설계 원리 그 자체는 원인이 차단된 후에도 유효하다고 생각합니다. QA의 객관성은 수정 권한을 가지지 않음으로써 담보되기 때문입니다.
구현 비용
특별한 도구는 사용하지 않습니다. 위반 카탈로그는 markdown 파일 1장. KB(위반 이력)도 markdown 파일 1장이며, 상시 읽는 부분과 필요할 때만 파헤치는 부분을 계층화해 두었습니다. 예측과 분기는 AI에게 전달하는 스킬 파일(절차서)에 기술하기만 하면 됩니다.
즉, 전부 단순한 markdown입니다. 학습도 외부 DB도 필요 없습니다. AI에게 전달하는 절차서에 "이력 참조 및 예측" 단계를 하나 끼워 넣는 것만으로 QA의 정밀도는 정적 체크리스트와는 차원이 달라졌습니다.
제한 및 주의 사항
사전 확률은 축적을 전제로 합니다. 운용 초기에는 KB가 비어 있으므로 효과가 없습니다. 수십 건의 QA를 돌려 위반 이력이 쌓인 후에야 효과가 나타나기 시작합니다.
카테고리 분류가 허술하면 예측도 허술해집니다. 저는 "계산기", "비주얼", "텍스트" 정도의 입도(Granularity)로 시작했지만, 그것으로 충분했습니다.
예측에 너무 의존할 위험도 있습니다. 예측한 3~5개 외에는 보지 않게 되는 퇴화를 방지하기 위해, 예측은 어디까지나 "맨 앞에 두는 것"일 뿐 전체 체크 자체는 생략하지 않도록 설계했습니다.
검증 시기: 2026년 4~6월. 환경: Claude Code + 자체 제작 스킬/지식 베이스 (markdown) / 다국어 Web 도구군 QA 운영.
Discussion

AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기