본문으로 건너뛰기

© 2026 Molayo

Zenn헤드라인2026. 05. 20. 22:45

생성 AI에게 사양서를 어떻게 읽힐 것인가 — 입력 설계에 관한 이야기

요약

QA 엔지니어가 생성 AI(Claude)를 활용해 테스트 설계를 수행할 때, 사양서를 효과적으로 전달하기 위한 '입력 설계(Input Design)'의 중요성을 다룹니다. AI가 문법적 유창함에 비해 의미 이해도가 낮고 논리적 검토(System 2) 능력이 부족한 구조적 한계를 극복하기 위해, 시스템 프롬프트에 대책을 내재화하는 마이크로 설계 전략을 제안합니다.

핵심 포인트

  • AI의 유창성(Fluency)과 의미 이해(Functional understanding) 사이의 괴리로 인해 사양서의 세부 조건을 놓칠 수 있음
  • AI는 인간과 달리 스스로 논리적 모순을 검토하는 System 2 사고 과정이 부재함
  • 효율적인 입력을 위해 매번 프롬프트를 길게 쓰는 대신, 서브 에이전트의 시스템 프롬프트에 대책을 집약하는 설계가 필요함
  • 사양서 입력 설계는 프로젝트 전체 이력을 관리하는 매크로 설계와 구분되는 마이크로(Micro) 관점의 접근임

1. 서론

도모(どーも), 료(りょう)입니다.

저는 QA 엔지니어로, 평소 테스트 설계에 생성 AI (Claude)를 사용하고 있습니다.

연재에서는 지금까지 생성 AI가 문서를 어떻게 다루는지를 세 가지 축으로 써왔습니다.

제1편: 생성 AI는 문장을
어떻게 읽는가 — 17가지 인지 편향과 LLM 실증 -
제2편: 생성 AI는
어떻게 행동하는가 — 9가지 행동 축 (sycophancy / refusal / planning 등) -
제3편:
할루시네이션 (Hallucination)은 왜 발생하는가 — 구조적 분류와 불가피성

여기까지는 '문제 제기'였습니다. 유창하게 쓸 수 있는 능력과 의미를 이해하는 능력은 괴리되어 있고, AI는 사용자를 따르며(sycophancy), 할루시네이션은 원리적으로 제로로 만들 수 없습니다.

그렇다면, 어떻게 전달해야 나아질까요? 이번부터는 착지점으로서, AI에게 사양서를 읽힐 때의 입력 설계 (Input Design) 를 다룹니다.

범위를 명확히 해두겠습니다. 본고는 "하나의 사양서를 AI에게 전달할 때, 그 입구에서 해야 할 설계"에 관한 이야기입니다. 동일한 프로젝트를 반복해서 돌린다는 전제하에 "기존 테스트 케이스 / 기서 결함 / Q&A 이력 / 이전 출력을 어떻게 축적하여 전달할 것인가"는 다음 회차 (제5편)에서 다룹니다. 본고는 마이크로(Micro), 다음 회차는 매크로(Macro)입니다.

덧붙여 미리 말씀드리자면, 본고에서 언급하는 대책을 저는 매번 프롬프트(Prompt)에 적지는 않습니다. 서브 에이전트(Sub-agent)의 시스템 프롬프트(System Prompt) 측에組み込んで(組み込んで) 두었기에, 일상적인 이용 시에는 "테스트 설계해줘"라고 쓰고 사양서를 전달하는 것만으로도 이러한 대책들이 백그라운드에서 작동합니다. 매번 손으로 입력할 필요는 없습니다.

엄밀히 말하면 테스트 관점 등의 테스트 지식도 인풋(Input)시켜 두었습니다. 이 대책만으로 테스트 설계가 생성 AI로 가능한 것은 아닙니다. 어디까지나 사양서라는 인풋을 어떻게 다룰 것인가에 대한 관점입니다.

또한, 투입된 프롬프트 자체도 제1편: 생성 AI는 문장을 어떻게 읽는가에서 언급한 편향의 영향을 받는다는 점도 이유 중 하나입니다. 사용자가 작성한 긴 프롬프트를 AI가 읽을 때도 A1-A17은 (역시) 작용합니다. 따라서 입구 측의 프롬프트는 가급적 심플하게 유지하고, 대책은 시스템 프롬프트 측에 집약한다는 설계 판단도 있습니다.

2. 왜 AI는 사양을 얕게 읽는가

사양서를 던져주고 "테스트 관점을 뽑아줘", "설계 리뷰를 해줘", "구현 방침을 생각해줘"라고 부탁해 본 경험은 누구나 있을 것입니다. 나오는 문장은 정리되어 있고 유창합니다. 하지만 자세히 보면 사양서 중앙 부분의 조건이 빠져 있거나, 암묵적인 전제가 날조되어 있거나, 부정 조항이 긍정으로 해석되어 있기도 합니다.

이것은 AI가 "게으름을 피우는" 것이 아니라, 구조적으로 일어나는 현상입니다. 제1~3편의 복습을 겸하여 원인을 4가지로 꼽겠습니다.

유창성의 함정 (Fluency Trap): Mahowald 등 (2024, DOI:10.1016/j.tics.2024.01.011 / arXiv:2301.06627)이 보여주듯, 문법적으로 유창한 문장을 쓸 수 있는 능력 (formal)과 의미를 이해하는 능력 (functional)은 계통적으로 괴리되어 있습니다. AI는 "그럴듯한 출력"을 최적화하므로, 논리의 연쇄를 실제로 따라간 결과와 반드시 일치하지는 않습니다 -
System 2의 부재: 인간은 사양을 읽을 때 "이거 모순되지 않나?", "이 조건은 무엇을 위한 거지?"라며 멈춰 섭니다 (System 2). AI는 원칙적으로 이를 하지 않습니다. 프롬프트로 명시적으로 멈추게 하지 않는 한, 표층을 훑고 지나가며 끝납니다 -
Scaffolding의 부재: 인간이 리뷰할 때는 체크리스트나 관점표라는 발판(Scaffolding)을 가지고 있습니다. AI는 아무런 발판도 없는 상태에서 던져진 사양을 단번에 읽어버립니다 -
Confident Hallucination: 읽고 지나친 부분도 그럴듯하게 보완하여 출력됩니다. 출력이 유창하고 설득력이 있기 때문에, 읽는 이는 "제대로 읽었다"라고 착각합니다. Bansal 등 (2021 CHI, DOI:10.1145/3411764.3445717)은 AI가 설명을 제시하면 인간의 과신 (overreliance)이 증가하여 오류가 교정되지 않음을 입증했습니다.

즉, AI에게 사양을 "읽히려면" 그냥 던져서는 안 되며, 읽는 방법을 구조적으로 강제해야 합니다. 본고는 그 "구조"를 4개의 레이어로 나누어 정리합니다.

  • Layer A: 입력 정형(Formatting) 자체를 오염시키지 않는다 (전단)
  • Layer B: 읽는 관점을 구조로 강제한다 (프롬프트)
  • Layer C: 읽는 모드를 전환한다 (3모드 독해)
  • Layer D: 읽은 결과를 별도의 컨텍스트(Context)에서 검증한다 (Layer 3)

3. Layer A: 입력 정제(Input Shaping) 자체를 오염시키지 말 것

가장 앞단입니다. AI에게 사양서를 전달하기 전의 **전단 변환 공정 (Pre-conversion process)**이 대부분 무의식적으로 이루어지며, 여기서 대량의 편향 (Bias)이 혼입됩니다.

전형적인 실패 패턴은 다음과 같습니다.

  • "이 PDF를 요약해서 Markdown으로 변환해줘"
  • "여러 문서를 통합해서 사양서를 만들어줘"
  • "이미지 안의 글자를 텍스트로 추출해서 사양서로 만들어줘"

이것들은 입구 단계에서 AI가 **자유 요약 (Free summarization)**을 수행하는 것입니다. 요약은 단순히 정보를 누락시키는 것에 그치지 않습니다.

  • 요약자 (AI)의 **해석 (Interpretation)**이 개입됨 $\rightarrow$ A1 확증 편향 (Confirmation Bias) 발생 / 장(Chapter) 구성이 재구성됨 $\rightarrow$ A5 프레이밍 (Framing) 고착화
  • 표나 그림이 줄글로 변환됨 $\rightarrow$ A17 비주의적 맹목 (Inattentional Blindness, 각주·주석 탈락)
  • 추상도가 한 단계 높아짐 $\rightarrow$ 하류(Downstream)의 AI가 요약본을 "1차 정보"로 취급하게 되어, 원전에 대한 읽기 편향 대책이 애초에 기능하지 않게 됨

하류의 프롬프트에서 아무리 정중하게 읽는 법을 지시해도, 입구에서 왜곡된 것은 되돌릴 수 없습니다. 제1편에서 언급한 17가지 편향은 거의 전부 "원전을 읽는 것"을 전제로 합니다. 요약본을 건네주면 대책은 토대부터 무효가 됩니다.

원칙은 3가지입니다.

  • 원전을 그대로 둔다: PDF / DOCX / PPTX / 이미지는 원전 그대로 입력 폴더에 배치한다. Markdown 변환이 필수적인 경우에만 신중하게 변환한다.
  • 변환한다면 관점을 명시한다: "PDF를 Markdown으로 변환해"가 아니라 "PDF의 장 구성·표·각주·주석을 유지한 채 Markdown으로 변환해. 요약은 하지 마. 원문의 순서를 바꾸지 마"라고 지시한다.
  • 원전을 남겨둔다: 변환 후에도 원전은 남겨둔다. 하류 단계에서 원전을 확인할 수 있는 경로를 남겨둔다.

예시로 쓰면 다음과 같습니다.

(NG)

input/spec.md $\leftarrow$ PDF 요약본만 둠. 원전은 버림

(OK)

input/spec.pdf $\leftarrow$ 원전을 그대로 둠
input/spec.md $\leftarrow$ 변환본 (요약 금지 프롬프트로 생성), 단 옵션 사항

사소한 이야기처럼 보이지만, 이 부분을 잡지 않으면 나머지 모든 대책은 사상누각이 됩니다.

4. Layer B: 읽는 관점을 구조로 강제하기

입구가 정돈되었다면, 다음은 "어떻게 읽을 것인가"를 프롬프트로 강제할 차례입니다. AI에게 사양을 전달하며 "테스트 관점을 도출해줘"라고만 적으면, 제1편에서 다룬 17가지 편향이 그대로 발현됩니다.

전부를 없애는 것은 불가능하지만, 구현 가능하며 효과가 큰 7가지를 소개합니다. 각 항목별로 (NG)와 (OK) 프롬프트 예시를 나열하겠습니다.

이하의 (NG)/(OK) 예시는 "시스템 프롬프트(System Prompt)에 무엇을 심을 것인가"에 대한 템플릿으로 읽어주세요 (§1에서 썼듯이, 매번 사용자가 직접 입력한다는 전제가 아닙니다). 에이전트를 구축하는 측 / 기존 테스트 도구에 통합하고 싶은 측의 관점입니다.

A1 확증 편향 (Confirmation Bias): 가설과 반증을 쌍으로 내놓게 하기

인간도 AI도 "있을 법한 해석"에 맞춰 유리하게 읽습니다. 완전히 없애는 것은 불가능합니다. 그러므로 금지하는 대신, 반증도 동시에 쓰게 합니다. Suri 등 (2024, DOI:10.1037/xge0001547 / arXiv:2305.04400)은 GPT-3.5에서 이 편향을 실증했습니다.

  • (NG) "사양을 해석해서 관점을 도출해줘"
  • (OK) "사양의 각 기능에 대해 기대 동작의 가설반증이 될 수 있는 기술을 쌍으로 열거해줘. 반증 측 섹션이 비어 있다면 그 이유를 작성해줘"

반증 측이 항상 비어 있다면, 그 자체로 경고 신호입니다.

A2 앵커링 (Anchoring): 독해 앵커를 명시하여 재검증하기

사양 초반의 개요·티켓 제목·이전 버전의 기술에 판단이 끌려가는 경향입니다 (Tversky & Kahneman 1974, DOI:10.1126/science.185.4157.1124). 이것도 사라지지 않습니다. 그래서 명시합니다.

  • (NG) (평범하게 읽기)
  • (OK) "**독해 앵커(Reading Anchor)**로서 처음에 강하게 인상 깊었던 기술을 서두에 열거한 다음, 본문 분석에 들어가줘. 마지막에 앵커 재검증을 한 줄로 작성해줘"

앵커를 배제하는 것이 아니라, 명시하여 가시화하는 것입니다. 이것만으로도 "초반 개요에 끌려 중반의 예외 사항을 읽기 넘긴" 상황을 후반 단계에서 복구할 수 있습니다.

A6 WYSIATI: 적혀 있지 않은 조건을 질문화하기

A6 WYSIATI: 적혀 있지 않은 조건을 질문화하기

What You See Is All There Is (Kahneman 2011, ISBN 9780374275631). 사양서에 적혀 있지 않은 조건을 AI는 보완하지 않습니다. 멀티테넌트 (Multi-tenant), i18n (국제화), 성능 요구사항, 장애 복구 등은 적혀 있지 않으면 「없는 것」으로 처리되어 관점이 도출되지 않습니다.

  • (NG) 「관점을 도출해줘」
  • (OK) 「관점을 도출하기 에, 이 사양에서 명시되지 않은 전제를 열거해. 당연히 적지 않아도 알 것이라 생각하여 생략된 전제를 찾아내고, 불분명하다면 질문으로 남겨줘 (보완하는 것이 아니라)"

보완 (= 할루시네이션 (Hallucination)) 하게 만드는 것이 아니라, 질문화하는 것. AI가 「모르겠다」라고 말할 수 있는 틀을 만드는 것이 핵심입니다.

A7 가든 패스 (Garden Path): 다의성 체크를 강제

「단,」 「~의 경우」 「및/또는 (and/or)」 「~후」 「~까지」를 포함하는 문장은 다의적(ambiguous)이 되기 쉽습니다. AI는 첫 번째 해석으로 읽어나가며, 후반부에서 재해석이 필요해지더라도 이를 알아차리지 못합니다.

  • (NG) (평범하게 읽기)
  • (OK) 「접속사, 조건절, 시상 표현 (temporal expression)을 포함하는 문장을 추출하고, 원문 / 해석 A / 해석 B / 채택 여부 또는 질문화를 표로 출력해. 두 가지 해석이 모두 성립하는 행은 무조건 질문으로 처리해"

「이것은 이렇게 해석했습니다」라고만 하는 것은 불충분하며, 다른 해석도 함께 남기도록 시킵니다.

A9 지식의 저주: 암묵적 전제 리스트를 작성하게 하기

사양서 작성자의 「상식」이 생략되어 있습니다. 용어 정의, 약어, 도메인 관행 등입니다. 읽는 이 (= AI) 도 그것을 공유하고 있다고 오인하면 관점이 얕아집니다.

  • (NG) 「용어를 모르면 물어봐」
  • (OK) 「암묵적 전제 리스트로서 용어, 약어, 도메인 관행을 열거해. 각 전제에 대해 용어집 (glossary)과의 대조 결과 (hit/miss)를 병기해"

「물어봐」라고 해서 묻지 않습니다. 리스트화를 강제해야 합니다.

A13 Lost in the Middle: 사양을 3등분하기

Liu 등 (2024, DOI:10.1162/tacl_a_00638 / arXiv:2307.03172)이 입증했듯이, LLM은 긴 문장의 중앙 부분 활용률이 U자형으로 저하됩니다. 5페이지 사양서의 3페이지에 있는 표가 관점에 포함되지 않는 것과 같은 현상입니다.

  • (NG) 「사양 전체를 읽고 관점을 도출해줘」
  • (OK) 「사양을 도입부 1/3 / 중간 1/3 / 종결부 1/3로 분할하고, 각 구역에서 최소 3개의 관점을 추출해. 긴 불렛 포인트나 표는 중앙의 항목을 최소 1개 인용해"

사양이 3,000자를 초과한다면 파일 분할도 검토해야 합니다. 이는 프롬프트를 작성하는 측의 업무입니다.

A15 부정 조항: 긍정문으로 바꿔 쓰기

「금지된다」 「할 수 없다」 「 이외」 등은 오해하기 쉬우며, 부정 조항에 대한 테스트 케이스가 부실해집니다. Mishra 등 (2022 ACL Findings, arXiv:2109.07830)은 복잡한 지시나 부정 지시를 긍정형으로 바꿔 씀으로써 GPT-3에서 12.5%의 성능 향상을 입증했습니다.

  • (NG) (평범하게 읽기)
  • (OK) 「부정문과 금지 조항을 추출하여, **긍정문으로의 변환 + 역조건 (inverse condition)**을 표로 만들어. 예: 『A는 할 수 없다』 → 『A를 시도할 경우 에러 E1을 반환한다. A를 하지 않는 B는 가능하다』"

부정의 의미를 반전시켜 긍정문으로 다시 작성함으로써, 「금지」를 보장하기 위한 이상계 (exception case) 테스트가 누락되지 않도록 합니다.

위의 7가지는 모두 「작성하게 만드는」 형태를 취하고 있습니다. AI에게 「제대로 읽어줘」라고 말하는 것만으로는 효과가 없습니다. 무엇을 작성하게 할지를 구조적으로 강제하는 것, 이것이 Layer B의 핵심입니다.

A1-A17으로 정리하고 있는 리스트는 이 외에도 있지만 (프레이밍 (Framing), 대표성 휴리스틱 (Representativeness Heuristic), Einstellung 효과, Lost in the Middle, 신념 고착 (Belief Perseverance) 등, 제1본 참조), 본고에서 언급한 7가지는 특히 「프롬프트에 1~2줄 추가하는 것만으로」 구현 가능한 것들을 선정했습니다.

5. Layer C: 읽기 모드를 전환하기

Layer B가 「관점의 강제」라면, Layer C는 「읽기 방식 그 자체」에 관한 이야기입니다.

문서의 읽기 방식은 인지과학적으로 3가지 모드로 분해할 수 있습니다.

모드무엇을 읽는가질문 형태용도
절차적 읽기 (Procedural)무엇을 할 것인가 (What to do)「어떻게 하는가?」실행하는 입장
...「무엇을 위한 것인가?」삭제 판단 · 인수인계 · 품질 판정

AI에게 사양서(仕様書)를 읽게 할 때, 어떤 모드(mode)를 사용하게 하고 싶은지가 모호하면 혼합된 출력이 반환됩니다. 일관성 읽기(整合性読み)를 의도했으나 절차 읽기(手順読み)로 바뀌거나, 의도 읽기(意図読み)가 필요한데도 일관성 읽기로 가득 채워지는 식입니다.

운용은 두 가지입니다.

  • 모드를 명시하기: 프롬프트에 “일관성 읽기로 사양서와 기존 테스트 케이스의 연결 고리를 확인해 줘” 또는 “의도 읽기로 이 기능이 왜 존재하는지 되물어 봐”와 같이 모드를 작성합니다.
  • 혼합 금지: 한 세션(session)에서 여러 모드를 섞지 않습니다. 같은 사양서에 대해 일관성 읽기 세션과 의도 읽기 세션을 별도로 실행합니다.

특히 의도 읽기는 강력합니다. 테스트 케이스, 사양서, 코드 중 무엇을 읽을 때든 “왜 이것이 작성되었는지”를 묻게 하는 방식은 형식화된(形骸化) 검출과 관점 누락 발견 모두에 효과적입니다.

단순히 기대값만 읽고 판단하는 리뷰와, “왜 이 테스트가 작성되었는지”를 묻는 리뷰에서는 보이는 풍경이 완전히 다릅니다. 예를 들어 테스트 케이스에 ‘금액 0원일 때’라는 케이스가 있다고 가정해 봅시다.

  • 절차 읽기: ‘금액 = 0을 입력 → 에러 메시지 표시’를 실행하여 확인합니다.
  • 일관성 읽기: 이 테스트 케이스는 사양서의 어떤 기술적 설명에 연결되는지 확인합니다.
  • 의도 읽기:
    왜 0원 테스트가 필요한가? 업무 요건으로서 0원이 발생할 수 있는 장면은 어디인가? 상한선은 테스트되었는데 하한선은 그렇지 않은가?

의도를 되물어보면, “상한선에 대한 테스트는 있지만 하한선에 대한 테스트는 없다”, “정상적인 흐름(正常系)은 있지만 경계값(境界値)이 없다”와 같은 관점 누락이 부각됩니다. 이는 Wallas (1926)의 incubation effect (잠복 효과/배양 효과)의 연장선으로, “읽는 방식을 바꾸기만 해도 다른 것이 보인다”는 현상입니다.

다만, 의도 읽기는 부작용도 있습니다. AI가 ‘있을 법한 의도’를 조작(捏造)할 유혹이 강합니다 (환각/Hallucination 쪽으로 기울어집니다). 따라서 확신도 태그를 병행하는 것이 안전합니다. “의도 X (고확신)”, “의도 Y (추정, 원문에 근거 없음)”처럼, 조작과 추론을 분리하여 작성하게 합니다.

덧붙임: 페르소나 관점과의 차이점

테스트 관점 추출이나 리뷰에서 ‘악의적인 사용자로서’, ‘초보자로서’와 같은 페르소나(persona) 시점을 운용하는 것은 테스트 설계 현장에서는 일반적인 방법이며, 본고는 이를 부정하지 않습니다 (관점 축에 대한 이야기입니다).

반면, AI에게 프롬프팅 기법으로서의 persona (“당신은 까다로운 테스트 엔지니어로서…”)를 사용하는 것은 본고에서 채택하지 않았습니다. 역할을 지정하더라도 LLM의 읽기 편향(bias)은 사라지지 않으며, 오히려 “역할을 연기하는” 모드에서 원래 읽어야 할 부분을 건너뛸 가능성도 있습니다 (2024-2026년 심사 연구에서도 persona prompting의 효과는 조건 의존적이라고 보고되었습니다). 본고에서는 3가지 모드 독해처럼, 역할이 아닌 읽는 방식의 종류를 전환하는 방식을 채택하고 있습니다.

6. Layer D: 읽은 결과를 다른 컨텍스트에서 검증하기

Layer A-C를 모두 수행했더라도 아직 빠져나갈 구멍이 있습니다. 같은 세션 내에서 ‘다시 읽기’를 요청해도, 인지 편향(cognitive bias)은 계승된다는 것입니다.

인간도 자신이 작성한 글을 바로 다시 보면 허술한 부분이 보이지 않습니다. 하룻밤 자고 다음 날 보면 다른 것으로 보이는 경우가 있습니다. 이는 Wallas (1926)의 incubation effect라고 불리며, 코드 리뷰나 문서 리뷰에서도 표준적인 실천입니다.

AI는 시간 축을 가지고 있지 않기 때문에, ‘다음 날 다시 보기’를 그대로 적용할 수는 없습니다. 하지만 본질이 시간이 아니라 **컨텍스트 분리(context separation)**라고 생각하면, AI 컨텍스트에서도 등가한 구현이 가능합니다.

  • 다른 sub-agent / 다른 채팅에서 읽게 하기
  • 이전 단계의 출력을 ‘결론’으로 전달하지 않고,
    원전(原典)을 1차 정보로 재투입하기
  • 리뷰 전용 프롬프트로 독립적으로 읽게 하기

이것은 ‘Layer 3 검증’이라고 불리는 구조로, 설계자 → 구현자 → 독립 리뷰어의 3단계와 같은 발상입니다.

운용의 핵심은 세 가지가 있습니다.

  • 동일 세션 내에서 연속적인 리뷰를 요청하지 말 것: "방금 제시한 관점으로 리뷰해줘"라는 요청은 거의 의미가 없습니다. 편향 (Bias)이 이어지기 때문입니다. Huang 등 (2024 ICLR, arXiv:2310.01798)은 "LLM은 자신의 추론을 자기 수정 (Self-correction)할 수 없다"는 것을 실증했습니다.
  • 별도의 컨텍스트 (Context) = 별도의 sub-agent / 별도의 채팅: 수동으로 다른 창을 열어도 좋고, Claude Code의 Task 도구를 사용하여 별도의 에이전트 (Agent)를 실행해도 좋습니다. 중요한 것은 "컨텍스트를 끊는 것"입니다.
  • 별도의 sub-agent에게는 원전 (Original text)을 전달할 것: Layer A의 경고가 여기서 재발합니다. 별도의 sub-agent에게 "이전 단계의 요약본"을 전달하면, 입구에서 정보가 왜곡되는 구조가 부활합니다. 원전을 다시 전달하는 것이 원칙입니다.

이 과정을 도입하면 Layer A-C의 효과가 대폭 달라집니다. 동일한 세션 내에서 모든 것을 완결짓고 싶은 유혹은 강렬하지만, "제대로 읽히는 것"을 진심으로 실천하려면 이 부분에서는 인색하게 굴지 않는 것이 좋습니다.

7. 요약 — "읽히는 것"은 "읽는 법을 구조로 강제하는 것"이다

제1~3편에서 다룬 "AI는 유창하게 쓰지만 의미는 이해하지 못한다", "AI는 추종한다", "AI는 환각 (Hallucination)을 일으킨다"라는 성질은 원리적으로 제로(0)로 만들 수 없습니다. 따라서 AI에게 어떤 문서를 읽힐 때는 AI에게 "제대로 읽어줘"라고 말하는 것이 아니라, 읽는 법을 구조로 강제하는 설계가 필요합니다.

본고의 4개 계층 (Layer)을 정리하면 다음과 같습니다.

  • Layer A: 입력 정형 (Input formatting) 자체를 오염시키지 않는다 (원전 유지, 자유로운 요약 금지)
  • Layer B: 읽는 관점을 구조로 강제한다 (가설 / 반증, 독해 앵커 (Reading anchor), 암묵적 전제, 다의성, 3분할, 부정·긍정 전환, 기재되지 않은 조건의 질문화)
  • Layer C: 읽기 모드 (Mode)를 전환한다 (절차 / 정합성 / 의도, 혼재 금지)
  • Layer D: 읽기 결과를 별도의 컨텍스트에서 검증한다 (별도의 sub-agent / 별도의 채팅, 원전 재투입)

이 프레임워크는 테스트 설계에만 국한된 이야기가 아닙니다. 코드 생성, 사양 리뷰, 계약서 해석, 조사 자료 요약 등 — 사양(Specification) 성격이 있는 문서를 AI에게 다루게 하는 모든 상황에서 동일한 구조가 효과를 발휘합니다. 실제로 본고에서 언급한 편향 (Bias)의 대부분은 인간의 문서 독해 연구에서 50년 전부터 알려져 온 것들입니다. AI가 등장하며 새로 생긴 문제가 아니라, 인간의 읽기 실패 패턴이 LLM에서도 동일한 형태로 나타난다는 사실이 2023년 이후 실증되었을 뿐입니다.

다음 편 (제5편)에서는 여기서 한 단계 더 거시적인(Macro) 관점으로 올라갑니다. 하나의 사양만으로는 부족한 상황, 즉 "동일한 프로젝트를 반복해서 수행한다는 전제하에, 보조 자료 (과거 테스트 케이스 / 기지 결함 / Q&A 이력 / 이전 출력물)를 어떻게 축적하여 전달할 것인가"를 다룹니다. 본고가 "1개 사양의 미시적 (Micro) 관점"이라면, 다음 편은 "프로젝트 코퍼스 (Project Corpus)의 거시적 (Macro) 관점"입니다.

참고 문헌

인지과학 · 심리학

인지과학 · 심리학

  • Wallas, G. (1926).
    The Art of Thought. Harcourt, Brace & Co.
    Internet Archive - Bartlett, F. C. (1932).
    Remembering: A Study in Experimental and Social Psychology. Cambridge University Press. ISBN 9780521094412 - Wason, P. C. (1960). On the failure to eliminate hypotheses in a conceptual task.
    QJEP, 12(3), 129-140. DOI:10.1080/17470216008416717 - Murdock, B. B. (1962). The serial position effect of free recall.
    JEP, 64(5), 482-488. DOI:10.1037/h0045106 - Tversky, A., & Kahneman, A. (1974). Judgment under Uncertainty: Heuristics and Biases.
    Science, 185(4157), 1124-1131. DOI:10.1126/science.185.4157.1124 - Camerer, C., Loewenstein, G., & Weber, M. (1989). The curse of knowledge in economic settings.
    JPE, 97(5), 1232-1254. DOI:10.1086/261651 - Kahneman, D. (2011).
    Thinking, Fast and Slow. Farrar, Straus and Giroux. ISBN 9780374275631

LLM 실증 연구

  • Bansal, G., et al. (2021). Does the Whole Exceed its Parts?
    CHI 2021. DOI:10.1145/3411764.3445717 / arXiv:2006.14779 - Mishra, S., et al. (2022). Reframing Instructional Prompts to GPTk's Language.
    ACL 2022 Findings. arXiv:2109.07830 - Shi, F., et al. (2023). Large Language Models Can Be Easily Distracted by Irrelevant Context.
    ICML 2023. arXiv:2302.00093 - Mahowald, K., et al. (2024). Dissociating language and thought in large language models.
    Trends in Cognitive Sciences, 28(6), 517-540. DOI:10.1016/j.tics.2024.01.011 / arXiv:2301.06627 - Liu, N. F., et al. (2024). Lost in the Middle.
    TACL, 12, 157-173. DOI:10.1162/tacl_a_00638 / arXiv:2307.03172 - Suri, G., et al. (2024). Do large language models show decision heuristics similar to humans?
    JEP General, 153(4), 1066-1075. DOI:10.1037/xge0001547 / arXiv:2305.04400 - Huang, J., et al. (2024). Large Language Models Cannot Self-Correct Reasoning Yet.
    ICLR 2024. arXiv:2310.01798

AI 자동 생성 콘텐츠

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

원문 바로가기
0

댓글

0