제40회 · LLM과 함께 배우는 생각그림

LLM이 만든 규칙에서 충돌과 누락 찾기

자연스러운 문장으로 보이는 규칙 초안을 실행 가능한 정책으로 착각하지 않고, 반례와 원문 대응으로 하나씩 검증합니다.

규칙사례검토 결과

그럴듯한 규칙 목록이 바로 실행 규칙은 아니다

LLM에게 출입 안내를 요약하게 했더니 “회원은 입장할 수 있다”, “동의하지 않은 사람은 입장할 수 없다”, “보호자와 동행하면 입장할 수 있다”, “이용 정지 중이면 입장할 수 없다”가 나왔다고 하자. 문장마다 자연스럽지만 회원이면서 비동의인 사람, 정지 상태지만 보호자와 온 사람에게 허용과 거부가 동시에 적용된다.

LLM 출력은 규칙 후보 초안이다. 모델은 원문 사이의 우선순위를 누락하거나, 예시를 일반 규칙으로 바꾸거나, 빈 사례를 상식으로 채울 수 있다. 실제 정책 엔진이나 업무 절차에 넣기 전에 원문 대응, 조건 정규화, 조합 검사, 반례 확인, 담당자 승인을 거친다.

생각그림 1 · 자연어 규칙의 숨은 충돌R1 회원∧동의R2 보호자 동행R3 이용 정지LLM 규칙 초안상충 행동허용과 거부가 동시에 참
각 문장이 따로 맞아 보여도 같은 입력에서 상충 행동이 동시에 선택될 수 있습니다.

먼저 규칙을 같은 문법으로 정규화한다

서술형 규칙을 “조건부→행동” 형식으로 바꾼다. R1: 회원∧동의∧¬정지→허용, R2: ¬동의→동의요청, R3: 정지→거부처럼 쓴다. 각 원자 조건의 기준을 고정하고 행동 이름도 허용·거부·보류·안내처럼 통일한다. 비슷한 말이 같은 행동인지 담당자에게 확인한다.

정규화는 의미를 새로 만드는 작업이 아니다. 원문에 없는 ¬정지 조건을 R1에 보탰다면 “수정 제안”으로 표시하고 승인 전 규칙과 구분한다. 원문 규칙, LLM 해석, 수정 후보를 세 열로 나누면 모델의 보완이 원래 정책처럼 섞이지 않는다.

생각그림 2 · 규칙 정규화 표
ID원문 후보정규식상태
R1회원은 입장 가능회원→허용원문 해석
R2미동의자는 입장 불가¬동의→거부원문 해석
R3정지자는 입장 불가정지→거부원문 해석
P1정지 규칙 우선정지 우선승인 필요한 제안
정규식과 상태를 분리하면 모델이 추가한 조건과 원문 조건을 추적할 수 있습니다.

충돌·중복·누락은 서로 다른 문제다

충돌은 같은 입력에서 서로 양립할 수 없는 행동이 선택되는 경우다. 중복은 같은 행동을 내는 여러 규칙이 같은 입력에 맞는 경우로, 결과는 같아도 유지보수 위험이 있다. 누락은 어떤 규칙도 맞지 않아 결과가 없는 경우다. 세 문제를 한꺼번에 “오류”라고 부르면 수정 방법을 고르기 어렵다.

예를 들어 R1 회원→허용과 R2 동의→허용은 회원이면서 동의한 입력에서 중복된다. R1 회원→허용과 R3 정지→거부는 회원이면서 정지인 입력에서 충돌한다. 비회원이면서 동의했고 보호자도 없는 입력에 규칙이 없다면 누락이다. 각 문제에 최소 입력 사례를 붙인다.

생각그림 3 · 세 결함의 최소 반례
결함일치 규칙 수행동 관계최소 사례
충돌2개 이상허용·거부처럼 양립 불가회원∧정지
중복2개 이상같은 행동 반복회원∧동의
누락0개결과 없음비회원∧동의∧보호자 없음
정상정책에 맞는 개수결과 결정 가능승인된 대표 조합
최소 반례는 규칙의 어느 조건이 문제를 만드는지 빠르게 드러냅니다.

진리표로 작은 조건 집합을 전수 검사한다

조건이 네 개면 16개 조합을 만들고 각 행에 일치하는 규칙 ID와 행동을 적는다. 일치 수가 0이면 누락, 상충 행동이 둘 이상이면 충돌이다. 이 표는 LLM의 설명을 평가하는 도구가 아니라 규칙 집합 자체의 조합을 검사하는 도구다.

LLM에게 표 생성을 맡겼다면 독립 스크립트나 수기 표본으로 재검산한다. 행 수, 중복 입력, 조건식 평가, 우선순위 적용 전후 결과를 구분한다. 우선순위를 적용해 충돌이 사라져도 원래 여러 규칙이 맞았다는 사실은 진단 열에 남긴다.

생각그림 4 · 전수 조합 검사 결과 예시
입력 요약일치 규칙원결과진단
회원·동의·정상R1허용정상
회원·미동의·정상R1,R2허용/거부충돌
회원·동의·정지R1,R3허용/거부충돌
비회원·동의·정상없음없음누락
우선순위를 적용하기 전 일치 규칙을 보존해야 숨은 충돌과 중복을 추적할 수 있습니다.

의사결정표로 행동과 우선순위를 확정한다

진리표에서 찾은 조합을 업무 행동과 연결하려면 의사결정표로 옮긴다. “정지면 다른 조건과 무관하게 거부”를 R0에 두고 우선순위를 명시한다. 정상 상태에서는 회원·동의 조합을 나누어 허용, 동의 요청, 가입 안내 같은 결과를 정한다.

이때 정책 담당자가 결정해야 하는 빈칸을 LLM이 채우지 않는다. 보호자 동행이 비회원에게도 허용을 주는지, 미동의 상태를 보호자가 대신할 수 있는지 질문으로 남긴다. 표에 ‘확인 필요’ 열을 유지하면 미완성 정책을 완성된 것처럼 배포하는 일을 막는다.

생각그림 5 · 충돌을 우선순위와 분할로 수정R1 회원∧동의R2 보호자 동행R3 이용 정지우선순위·충돌 검사한 행동정지 규칙이 허용보다 우선
정지 규칙의 우선순위를 승인하고 나머지 조건 영역을 분할하면 한 입력이 한 행동으로 이어집니다.

원문과 결과를 양방향으로 추적한다

각 규칙에는 sourceIds를 두어 원문 조항으로 돌아가게 한다. 반대로 원문 조항 목록에는 반영된 규칙 ID를 적는다. 규칙에서 원문으로 가는 방향은 근거 없는 추가를 찾고, 원문에서 규칙으로 가는 방향은 빠진 예외와 조건을 찾는다.

한 조항이 여러 규칙으로 분해될 수 있고 여러 조항이 한 규칙을 함께 뒷받침할 수 있다. 단순한 1:1 링크를 강요하지 않는다. 원문 버전이 바뀌면 영향을 받는 규칙과 시험 사례를 표시하고 재검수한다. “지난번에 검토함”은 새 버전의 근거가 되지 않는다.

생각그림 6 · 조항과 규칙의 양방향 대응
원문 ID규칙 ID관계변경 시 행동
S1 회원 자격R1,R2조건 분해회원 정의 시험 재실행
S2 동의R1,R3필요조건·안내동의 범위 재확인
S3 이용 정지R0우선 규칙모든 허용 조합 재검사
S4 보호자보류해석 미확정담당자 승인 요청
양방향 대응은 LLM이 보탠 규칙과 옮기지 않은 조항을 모두 찾게 합니다.

LLM 요청은 생성과 비판을 분리한다

첫 요청에서는 원문만 구조화해 규칙 후보와 근거 문장 ID를 받는다. 두 번째 요청에서는 그 후보를 비판하는 역할로 충돌·중복·누락·경계 반례를 찾게 한다. 같은 모델을 쓰더라도 단계와 입력을 분리하고, 비판 결과를 독립 사실처럼 믿지 않고 사람이 원문과 계산으로 확인한다.

모델에게 내부 사고 과정을 공개하라고 요구할 필요는 없다. 필요한 것은 검증 가능한 산출물이다. 원자 조건, 규칙식, 출처 ID, 전수 조합 결과, 최소 반례, 확인 질문을 표로 받으면 결론을 재현할 수 있다. 장황한 추론 서술보다 입력과 출력의 대응이 중요하다.

생각그림 7 · 생성과 비판을 나눈 검토 흐름
원문 고정
규칙 후보 생성
독립 조합 계산
반례·충돌 비판
사람 승인·버전 기록
검토 가능한 표와 반례를 요구하면 모델의 보이지 않는 내부 과정에 의존하지 않아도 됩니다.

잘못된 수정은 우선순위로 모든 결함을 덮는다

수정 전에는 “위에 있는 규칙이 우선”을 붙여 충돌을 없앴다. 그러나 규칙 순서는 문서 편집 과정에서 바뀔 수 있고, 왜 거부가 허용보다 우선하는지 근거가 없었다. 원문 정책에서 승인된 우선순위를 결과 값과 함께 명시하고, 단순 중복은 조건을 합치거나 규칙을 제거했다.

누락된 조합에는 임의의 기본 거부를 넣지 않았다. 안전상 기본 거부가 필요해 보이더라도 정책 결정이므로 담당자 승인 항목으로 남겼다. 긴급 임시 조치가 있다면 기간, 승인자, 적용 범위를 기록한다. LLM의 상식은 조직의 승인된 규칙을 대신하지 않는다.

생각그림 8 · 규칙 수정의 수정 전후
수정 전표의 위쪽 규칙이 무조건 우선
수정근거 있는 히트 정책·우선순위 명시
수정 전누락 조합을 자동 거부로 채움
수정확인 필요·승인자·기한 기록
충돌 해소와 정책 결정은 구분해야 하며, 모델이 결정한 기본값을 승인 없이 실행하지 않습니다.

완료 기준은 재현 가능한 반례와 승인 기록이다

최종 산출물에는 원문 버전, 원자 조건 정의, 정규화 규칙, 모든 입력 조합의 일치 수, 최소 반례, 히트 정책, 승인자와 승인일을 남긴다. 개인정보나 고위험 결정에 쓰는 규칙은 관련 법·정책과 추가 검토가 필요하다. 이 교육 예시는 실제 법률·안전 판단을 제공하지 않는다.

NIST AI RMF는 AI 위험 관리를 설계·개발·사용·평가 전 과정의 활동으로 본다. 이 글에서는 그 취지에 맞춰 LLM 출력을 정책으로 곧바로 채택하지 않고 측정·검토·승인 가능한 산출물로 바꾼다. 완료는 “모델이 자신 있어 보인다”가 아니라 다른 사람이 같은 입력으로 같은 판정과 근거를 재현하는 상태다.

생각그림 9 · LLM 규칙 검토의 종료 점검
검사통과 기준증거
원문 대응모든 규칙에 sourceIds양방향 매핑표
조합누락·충돌·중복 보고전수 표·시험 로그
정책 결정히트 정책·기본값 승인승인자·날짜
버전원문·규칙·시험 버전 고정내용 지문
재현다른 검토자가 같은 결과입력·출력·반례
검증 증거와 승인 경로가 남아야 LLM이 만든 초안을 실제 업무 규칙 후보로 다룰 수 있습니다.

복사해서 쓸 수 있는 LLM 요청문

아래 요청문은 교육용 예시다. 원문을 함께 제공하고, 모델이 빈칸을 추측하지 않도록 금지 조건을 넣었다. 결과를 받으면 원문 문장과 노드·선의 대응을 사람이 다시 확인한다.

다음은 LLM이 원문 규정을 정리한 규칙 초안이다. 초안을 실행하지 말고 검토 자료로 바꿔 줘.
1. 원문 문장ID, LLM 규칙, 모델이 추가하거나 생략한 표현을 나란히 표시한다.
2. 모든 조건을 판정 가능한 원자 명제로 정의하고 규칙을 “조건식 → 행동”으로 정규화한다.
3. 원문 해석과 수정 제안을 분리하며 승인되지 않은 우선순위·기본 행동을 추가하지 않는다.
4. 조건이 n개면 가능한 2ⁿ개 조합을 만들고 각 조합에 일치하는 규칙 ID와 원행동을 적는다.
5. 일치 0개는 누락, 같은 행동의 다중 일치는 중복, 양립 불가 행동의 다중 일치는 충돌로 구분한다.
6. 각 결함에 가장 작은 반례 입력을 제시한다.
7. 겹침 처리에 필요한 히트 정책과 정책 담당자 질문을 분리한다.
8. 규칙→원문과 원문→규칙의 양방향 누락을 검사하고, 최종 승인 전에는 “검토용 초안”이라고 표시한다.

[원문 규정] …
[LLM 규칙 초안] …
생각그림 10 · 요청문에서 결과와 검토까지
원문 붙이기
도표 목적 명시
추정 금지
문장별 대조
요청문은 도표를 자동으로 진실로 만들지 않습니다. 원문과 결과를 왕복해 확인하는 절차가 핵심입니다.

직접 실습하고 결과를 읽기

이 실습은 브라우저 안에 준비한 교육용 자료만 사용한다. 외부 LLM을 호출하거나 실제 기관 자료를 조회하지 않는다. 입력을 바꾸어 결과가 어떻게 달라지는지 보고, 설명과 맞지 않는 결과가 나오면 어떤 정보가 빠졌는지 적어 본다.

규칙 집합을 골라 결함과 최소 반례를 확인하세요.

자료와 출처

아래 자료는 이번 글의 정의와 표기법을 확인하는 데 사용했다. 생각그림과 사례 문장은 원자료를 복제하지 않고 이 글의 교육 목적에 맞게 새로 구성했다.