AI와 개발을 쉽게 이해하는 실험실

비개발자도 따라오는 AI 도구, 자동화, 개발 실험 기록

AI & LLM/프롬프트 엔지니어링

프롬프트 긴 문서, AI가 앞부분만 읽을 때 해결법

루민 Lumin 2026. 8. 4. 20:10
반응형

프롬프트에 긴 문서를 붙였는데 AI가 앞부분만 요약하고 뒷부분을 놓친다면, 문서를 나누고 지시 위치를 바꾸는 것만으로 크게 달라집니다. 원인과 실전 프롬프트 구조를 정리합니다.

프롬프트 긴 문서, AI가 앞부분만 읽을 때 해결법의 핵심 개념을 단순한 테크 일러스트로 표현한 대표 이미지

프롬프트에 긴 문서를 통째로 붙여 넣었을 때 AI가 앞부분만 요약하고 뒷부분은 슬쩍 넘어간 적이 있을 겁니다. 이 글은 왜 그런 일이 생기는지, 프롬프트 구조를 어떻게 바꾸면 뒷부분까지 제대로 읽히는지 정리합니다. 파일 업로드 기능이 없는 챗봇에서도 쓸 수 있는 방법 위주로 다룹니다. 원인을 모른 채 "끝까지 다 읽어" 같은 말만 반복하면 오히려 앞부분 요약만 더 늘어나는 경우가 많습니다.

왜 AI가 앞부분만 읽는 것처럼 보이는지

AI가 긴 문서에서 앞부분만 반영하는 이유는, 모델이 긴 텍스트를 처리할 때 처음과 끝은 상대적으로 잘 기억하고 중간은 흐릿하게 다루는 경향이 있기 때문입니다.

이 현상은 프롬프트 엔지니어링 분야에서 일부 환경에서는 "가운데 소실(lost in the middle)"이라는 이름으로 논의됩니다. 챗봇에 문서를 붙였을 때 중간 내용이 요약에서 사라지거나, 뒷부분 지시를 무시하는 것처럼 보이는 이유가 여기에 있습니다.

또 하나 큰 원인은 지시 위치입니다. 사람은 보통 "아래 문서 요약해줘" 하고 문서를 붙이는데, 이렇게 하면 AI는 문서를 다 읽기 전에 "요약"이라는 목표를 이미 설정합니다.

문서가 길어질수록 AI는 앞쪽에서 이미 "이 정도면 요약 됐다"고 판단하고 마무리하려는 관성이 생깁니다. 짜증나는 부분이죠.

💡 핵심: 문제는 AI가 "게을러서"가 아니라 프롬프트 구조가 앞부분을 우대하게 짜여 있어서입니다.

먼저 확인할 3가지

프롬프트를 뜯어고치기 전에 아래를 먼저 봅니다. 원인이 다르면 처방도 달라집니다.

확인 항목 왜 중요한가 어떻게 확인
문서가 실제로 다 붙었는지 붙여넣기 도중 잘리는 경우가 흔함 AI에게 "문서의 마지막 문장을 그대로 인용해줘"라고 물음
지시가 문서 앞에 있는지 뒤에 있는지 위치에 따라 반영도가 달라짐 프롬프트를 다시 봄
모델의 컨텍스트 한도 초과 여부 초과분은 조용히 잘림 답변이 특정 지점 이후 정보를 전혀 모른다면 의심

특히 첫 번째가 중요합니다. 웹 챗봇 입력창은 문자 수 제한이 있고, 붙여넣기 도중 뒷부분이 소리 없이 잘려도 화면상 티가 잘 안 납니다.

"문서의 마지막 문장을 정확히 그대로 옮겨줘"라고 시켜서 원문과 대조해봅니다. 다르면 애초에 AI 손에 들어가지도 않은 겁니다.

지시를 문서 뒤로 옮기기

가장 효과가 큰 변화는 지시문을 문서 뒤에 놓는 것입니다. AI는 프롬프트의 마지막 부분을 상대적으로 잘 기억하므로, 지시를 뒤에 두면 문서 전체를 스캔한 뒤 지시를 실행하는 흐름이 됩니다.

비교해보면 이렇습니다.

개선 전 (지시가 앞):

아래 계약서를 요약해줘.

[계약서 본문 20페이지]

개선 후 (지시가 뒤):

아래는 계약서 전문이야. 끝까지 읽고 나서 지시를 따라줘.

[계약서 본문 20페이지]

이제 위 계약서를 다음 기준으로 정리해줘:
1. 계약 당사자
2. 계약 금액과 지급 시점
3. 해지 조건
4. 마지막 조항의 요지

마지막에 "마지막 조항의 요지"처럼 뒷부분을 콕 집는 항목을 하나 넣어두면, AI가 문서 끝까지 훑도록 강제할 수 있습니다. 앞부분만 대충 보고 넘어가면 이 항목을 채울 수 없거든요.

문서를 조각내서 순서대로 처리하기

문서가 정말 길면 프롬프트를 아무리 잘 짜도 한 번에 다 처리하기 어렵습니다. 이때는 문서를 여러 조각으로 나눠 순서대로 처리하는 방식이 안전합니다.

방법은 이렇습니다.

1단계: 문서를 3~5개 부분으로 나눈다
      ↓
2단계: 각 부분을 따로 요약시킨다
      ↓
3단계: 요약본들을 모아
      최종 정리를 시킨다

챗봇 창에서 실제로 쓰는 대화는 이런 식이 됩니다.

1번째 메시지: "지금부터 긴 문서를 4번에 나눠 보낼게. 매번 그 부분만 요약하고, '다음 부분 기다림'이라고 답해줘. 내가 '전체 정리 시작'이라고 말하기 전엔 종합하지 마."

2~5번째 메시지: 각 부분 붙여넣기

6번째 메시지: "전체 정리 시작. 지금까지 받은 4개 요약을 하나로 합쳐줘."

이렇게 하면 AI가 각 조각에 집중해서 중간 내용이 훨씬 잘 살아납니다. 대신 대화가 길어지면 앞쪽 조각의 요약이 흐려질 수 있어서, 6번째 단계 전에 "지금까지 받은 요약 4개를 한 번에 다시 붙여줘"라고 정리해두면 안전합니다.

예를 들어 논문 한 편(50페이지)을 읽어야 하는 대학원생이라면, 서론·방법·결과·논의를 각각 나눠 보내는 식으로 쓸 수 있습니다. 블로그 글감으로 긴 인터뷰 녹취록을 다루는 사람이라면, 시간대별로 자르는 것도 좋습니다.

"다 읽었는지" 검증시키기

프롬프트를 아무리 잘 짜도 AI가 실제로 뒷부분을 읽었는지는 확인이 필요합니다. 아래 세 가지 검증 질문 중 하나는 꼭 던집니다.

  • 인용 확인: "문서의 마지막 단락을 원문 그대로 한 문장 인용해줘."
  • 위치 확인: "○○라는 단어가 문서에서 몇 번 나오는지, 대략 어느 위치에서 나오는지 알려줘."
  • 뒷부분 특정: "문서 후반부에서만 다뤄진 내용 3가지를 뽑아줘."

인용 확인이 제일 강력합니다. AI가 실제로 그 문장을 봤다면 원문과 거의 같게 나오고, 못 봤다면 그럴싸하게 지어낸 문장이 나옵니다. 지어낸 티는 원문과 대조하면 바로 보입니다.

⚠️ AI가 "네, 끝까지 다 읽었습니다"라고 답하는 것 자체는 증거가 되지 않습니다. AI는 자기가 뭘 놓쳤는지도 놓치기 때문에, 반드시 뽑아낸 내용으로 검증해야 합니다.

상황별 프롬프트 뼈대

자주 쓰는 상황별로 바로 응용할 수 있는 뼈대입니다. 자기 상황에 맞춰 문서 종류만 바꾸면 됩니다.

긴 회의록 요약

아래는 2시간짜리 회의록 전문이야.
읽은 다음 아래 형식으로 정리해줘:

- 논의된 안건 (시간 순서대로 전부)
- 각 안건별 결론
- 미결 상태로 남은 항목
- 회의 마지막에 정해진 다음 액션

[회의록 붙여넣기]

특히 회의 후반부의 액션 아이템은
빠뜨리지 말고 전부 포함해줘.

긴 약관·계약서 검토

아래는 서비스 약관 전문이야.

[약관 붙여넣기]

이제 다음을 해줘:
1. 사용자에게 불리할 수 있는 조항 전부 나열
   (조항 번호와 원문 인용 포함)
2. 자동 갱신·해지 관련 조항 정리
3. 마지막 부칙에 있는 시행일과 예외

각 항목마다 원문의 어느 부분인지
조항 번호를 반드시 표기해줘.

핵심은 두 가지입니다. 지시를 문서 뒤에 두는 것, 그리고 원문 인용을 요구하는 것. 인용을 시키면 AI가 대충 지어낼 여지가 줄어듭니다.

그래도 뒷부분을 놓칠 때

여기까지 했는데도 특정 부분을 계속 놓친다면 문서 자체의 구조 문제일 가능성이 있습니다.

  • 목차나 소제목이 없이 흘러가는 문서 → AI가 "이 부분이 중요하다"는 신호를 못 잡음
  • 표나 그림이 텍스트로 잘 변환되지 않은 경우 → 해당 부분이 깨진 문자열로 보여 무시됨
  • 같은 단어가 앞뒤로 반복 → 앞쪽 문맥으로 착각하고 뒤를 스킵

이럴 땐 문서 앞에 간단한 목차를 손으로 붙여 넣어주는 것만으로 반영도가 올라갑니다. "이 문서는 총 5개 섹션(A, B, C, D, E)으로 이뤄져 있어. 각 섹션을 모두 다뤄줘." 한 줄이면 충분합니다.

다음에 시도해볼 것

프롬프트를 아무리 잘 짜도 문서가 컨텍스트 한도를 넘으면 어쩔 수 없이 잘립니다. 이 지점을 넘어서면 챗봇 창 대신 파일 업로드를 지원하는 도구나 RAG(문서를 잘게 나눠 저장해두고 필요한 조각만 찾아 쓰는 방식) 기반 서비스를 검토할 단계입니다.

당장은 오늘 정리한 세 가지—지시를 뒤로, 문서를 조각내서, 인용으로 검증—만 습관화해도 앞부분만 요약하는 문제의 상당수는 걷어낼 수 있습니다. 다음 글에서는 파일 업로드가 가능한 도구를 쓸 때 프롬프트 구조를 어떻게 다르게 짜야 하는지 다룹니다.

함께 보면 좋은 글

원인을 순서대로 좁혀가는 점검 흐름

뒷부분이 안 읽히는 것 같을 때, 프롬프트부터 뜯어고치기 전에 원인을 하나씩 배제해봅니다. 순서를 지키는 게 중요합니다. 뒤 단계로 갈수록 손이 더 많이 가기 때문입니다.

  1. 입력 잘림 여부부터 확인: AI에게 문서 마지막 문장을 원문 그대로 인용시켜봅니다. 원문과 다르면 붙여넣기 단계에서 이미 잘린 것이므로 프롬프트를 아무리 고쳐도 소용없습니다.
  2. 지시 위치 확인: 지시가 문서 앞에 있는지 봅니다. 앞에 있다면 뒤로 옮겨 한 번 더 시도합니다.
  3. 뒷부분 특정 질문으로 반영도 측정: "문서 후반부에서만 다뤄진 내용 3가지"처럼 뒷부분을 콕 집는 질문을 던져봅니다. 여기서도 앞부분 이야기만 나오면 다음 단계로 넘어갑니다.
  4. 문서 조각내기로 전환: 위 세 단계로도 개선이 없다면 문서를 3~5조각으로 나눠 순서대로 처리하는 방식으로 바꿉니다.
  5. 컨텍스트 한도 초과 의심: 조각내도 특정 지점 이후 정보를 전혀 모른다면 모델 자체의 한도 문제일 수 있습니다. 이 지점부터는 챗봇 창의 한계입니다.

1~3번은 원인 진단, 4~5번은 처방 전환입니다. 진단 없이 바로 4번부터 시도하면 문제가 어디에 있었는지 몰라서 다음번에 또 같은 시행착오를 반복하게 됩니다.

고친 뒤 성공했는지 확인하는 절차

프롬프트를 바꿨다면 "답변이 그럴싸해 보인다"로 끝내지 말고 아래 순서로 확인합니다.

  1. 인용 확인: 문서 마지막 단락을 원문 그대로 인용시킵니다. 원문과 일치해야 통과입니다.
  2. 뒷부분 특정 항목 채워졌는지 확인: 지시에 넣어둔 "마지막 조항의 요지" 같은 항목이 실제로 답변에 채워져 있는지 봅니다. 빈칸이거나 얼버무렸다면 실패입니다.
  3. 앞·중·뒤 균형 확인: 답변에서 문서 앞·중·뒤 각 부분이 대략 비슷한 비중으로 다뤄졌는지 훑어봅니다. 앞부분만 상세하고 뒤는 한 줄이라면 여전히 앞쪽 편중이 남아 있는 상태입니다.
  4. 재현 확인: 같은 프롬프트로 새 대화창에서 한 번 더 돌려봅니다. 두 번 다 뒷부분이 살아 있으면 프롬프트 구조가 안정된 것으로 봅니다.

1번을 통과하지 못하면 나머지는 볼 필요 없이 실패로 처리하고 이전 단계로 돌아갑니다.

바꿨는데 오히려 나빠졌을 때 되돌리는 법

프롬프트를 고쳤는데 이전보다 답변이 더 부실해질 수 있습니다. 지시를 뒤로 옮기면서 앞쪽 맥락 설명이 사라졌다거나, 조각내기로 바꾸면서 조각 사이 연결이 끊긴 경우가 흔합니다. 이럴 땐 아래 순서로 되돌립니다.

  1. 바꾸기 전 프롬프트 원본 보관: 프롬프트를 수정하기 전에 원본을 별도 메모에 남겨둡니다. 이 단계를 건너뛰면 되돌릴 곳이 없어집니다.
  2. 한 번에 한 가지만 변경: 지시 위치, 조각내기, 인용 요구를 동시에 다 바꾸지 않습니다. 하나씩 바꿔야 어느 변경이 문제였는지 알 수 있습니다.
  3. 이전 대화창은 닫지 말고 유지: 새 프롬프트를 시험할 때는 새 대화창을 엽니다. 기존 대화창을 그대로 두면 마지막으로 잘 나왔던 답변을 잃지 않습니다.
  4. 실패 판정 시 직전 버전으로 복귀: 위 "확인 절차"에서 1번(인용 확인)을 통과하지 못했다면 바로 이전 프롬프트로 돌아갑니다. "조금 더 다듬으면 나아지겠지" 하고 붙잡고 있으면 시간만 소모됩니다.
  5. 복귀 후 원인 메모: 어느 변경이 문제였는지 한 줄로 적어둡니다. 다음번에 같은 실수를 피하는 데 씁니다.
반응형