RAG (8) - RAG의 한계와 Advanced RAG

이도연·2026년 8월 11일

AI 이론 공부해보기

목록 보기
75/76

좋은 아침입니다.

검색 방법을 개선하면 더 다양한 문서를 찾을 수 있지만, 검색된 문서가 항상 질문에 필요한 정보를 포함하는 것은 아닙니다.

또한 사용자의 질문 자체가 모호하거나 복잡하면 좋은 검색 시스템을 사용하더라도 적절한 문서를 찾기 어려울 수 있습니다.

이번 글에서는 기본적인 RAG가 가지는 한계와 이를 개선하기 위한 Advanced RAG에 대해 알아보겠습니다.


기본 RAG의 한계

기본적인 RAG는 비교적 단순한 구조를 가지고 있습니다.

이 구조는 구현하기 쉽지만 실제 서비스에서는 여러 문제가 발생할 수 있습니다.

검색에 적합하지 않은 질문

사용자가 입력한 질문이 항상 검색하기 좋은 형태인 것은 아닙니다.

질문 : "저번에 말한 그 규정이 언제부터 바뀌었어?"

이 질문에는 그 규정이 무엇인지 명확하게 나타나 있지 않습니다.

이런 질문을 그대로 검색하면 관련 문서를 찾기 어렵습니다.


필요한 문서를 검색하지 못하는 문제

질문과 문서가 사용하는 표현이 크게 다르면 필요한 문서를 검색하지 못할 수 있습니다.

질문 : "회사에서 노트북을 잃어버리면 어떻게 해야 하나요?"


문서 : "업무용 자산 분실 시 정보보안팀에 즉시 신고해야 합니다."

두 문장은 관련된 내용이지만 표현이 다르기 때문에 검색 결과에서 누락될 수 있습니다.

필요한 문서가 Retriever 단계에서 검색되지 않으면 이후 과정에서도 해당 정보를 사용할 수 없습니다.


관련 없는 문서가 포함되는 문제

검색된 모든 문서가 질문에 필요한 것은 아닙니다.

질문 : "연차 승인 절차를 알려줘"


검색 결과 :![](https://velog.velcdn.com/images/doyeon789/post/309c8800-4471-4382-985a-8989a1470871/image.png)

1. 연차 승인 절차
2. 연차 신청 방법
3. 연차 사용 통계
4. 휴가 복지 제도

관련성이 낮은 문서까지 LLM에 전달되면 불필요한 Context가 증가합니다.

LLM이 중요하지 않은 정보에 영향을 받아 부정확한 답변을 생성할 수도 있습니다.


복잡한 질문

하나의 검색만으로 답하기 어려운 질문도 있습니다.

"2025년과 2026년의 연차 규정을 비교해서 변경된 부분을 알려줘."

이 질문에 답하려면 여러 문서에서 정보를 찾아야 할 수 있습니다.

단순히 한 번 검색하고 답변을 생성하는 방식으로는 필요한 정보를 충분히 모으기 어렵습니다.


Advanced RAG

Advanced RAG는 기본적인 RAG Pipeline의 여러 단계를 개선하여 검색과 답변 생성의 품질을 높이는 방법들을 의미합니다.

기본 RAG

질문
→ 검색
→ 답변


Advanced RAG : 

질문
→ 질문 개선
→ 검색
→ 검색 결과 개선
→ Context 구성
→ 답변

특정 하나의 알고리즘을 의미하는 것이 아니라 RAG Pipeline의 여러 부분을 개선하는 방법들을 포함하는 개념입니다.

대표적으로 Query Transformation, Context Compression과 같은 방법을 사용할 수 있습니다.


Query Transformation

Query Transformation은 사용자의 질문을 검색하기 좋은 형태로 변환하는 방법입니다.

사용자의 질문을 그대로 검색하지 않고 LLM 등을 이용하여 검색 Query를 개선합니다.

사용자 질문 : "회사 컴퓨터 잃어버리면 어떻게 해?"

        ↓

Query Rewriting

        ↓

"업무용 전산 자산 분실 신고 절차"

검색에 적합한 표현으로 변경하면 관련 문서를 찾을 가능성을 높일 수 있습니다.


Query Rewriting

Query Rewriting은 사용자의 질문을 의미는 유지하면서 검색하기 좋은 형태로 다시 작성하는 방법입니다.

원본 Query : 
"휴가 쓰려면 뭐 해야 돼?"


Rewritten Query : 
"연차 신청 및 승인 절차"

질문의 표현이 모호하거나 문서에서 사용하는 용어와 다른 경우에 도움이 될 수 있습니다.

하지만 Query를 잘못 변경하면 사용자의 원래 의도와 다른 문서를 검색할 수 있기 때문에 주의해야 합니다.


Multi-Query

하나의 질문을 여러 개의 검색 Query로 변환하는 방법도 있습니다.

이를 Multi-Query Retrieval이라고 합니다.

사용자 질문  : 
"연차 사용 규정을 알려줘"

        ↓

Query 1
"연차 신청 방법"

Query 2
"연차 승인 절차"

Query 3
"연차 사용 가능 기간"

각 Query로 문서를 검색한 뒤 결과를 합칩니다.

하나의 Query만 사용할 때 놓칠 수 있는 문서를 여러 관점에서 검색할 수 있다는 장점이 있습니다.

하지만 여러 번 검색해야 하기 때문에 검색 비용과 응답 시간이 증가할 수 있습니다.


HyDE

HyDE는 Hypothetical Document Embeddings의 약자입니다.

질문 자체를 바로 검색하는 대신 LLM이 질문에 대한 가상의 답변 문서를 먼저 생성합니다.

1. 사용자 질문

2. LLM

3. 가상의 답변 문서 생성

4. Embedding

5. 관련 문서 검색

예를 들어 다음과 같은 질문이 있다고 가정하겠습니다.

질문 : "업무용 노트북을 분실하면 어떻게 해야 하나요?"

LLM이 먼저 다음과 같은 가상의 문서를 생성할 수 있습니다.

"업무용 장비를 분실한 경우 정보보안팀에 즉시 신고해야 합니다."

이 가상의 문서를 Embedding하여 실제 문서와 비교합니다.

질문보다 실제 문서와 표현 방식이 비슷한 텍스트를 만들어 검색 성능을 높이는 것이 목적입니다.


Context Compression

문서를 잘 검색했더라도 Chunk 전체가 질문에 필요한 것은 아닐 수 있습니다.

검색된 Chunk: 

 연차는 사내 시스템에서 신청합니다.

  신청 후 팀장의 승인을 받아야 합니다.

 연차 통계는 매년 인사팀에서 관리합니다.

 휴가 사용 현황은 관리자 페이지에서 확인할 수 있습니다.

질문이 연차 승인 절차에 관한 것이라면 일부 문장만 필요합니다.

Context Compression은 검색된 문서에서 질문과 관련된 부분만 추출하여 LLM에 전달하는 방법입니다.

1. 검색된 문서

2. 필요한 내용 추출

3. "신청 후 팀장의 승인을 받아야 합니다."

4. LLM

불필요한 Context를 줄여 LLM이 중요한 정보에 집중할 수 있도록 합니다.


Advanced RAG의 동작 과정

Advanced RAG는 하나의 고정된 구조가 있는 것은 아닙니다.

필요한 문제에 따라 여러 방법을 조합할 수 있습니다.

예를 들어 다음과 같이 구성할 수 있습니다.

1. 사용자 질문 입력

2. Query Rewriting

3. 여러 Query 생성

4. 관련 문서 검색

5. 검색 결과 정리

6. Context Compression

7. 필요한 문서를 LLM에 전달

8. 최종 답변 생성

모든 RAG 시스템에 이러한 과정을 전부 적용할 필요는 없습니다.

어떤 문제가 발생하는지 확인하고 필요한 방법을 선택하는 것이 중요합니다.


Advanced RAG의 장단점

장점

Advanced RAG를 사용하면 검색하기 어려운 질문을 개선하여 필요한 문서를 찾을 가능성을 높일 수 있습니다.

여러 Query를 사용하면 다양한 관점의 문서를 검색할 수 있습니다.

Context Compression을 사용하면 불필요한 내용을 줄이고 중요한 정보에 집중할 수 있습니다.

결과적으로 기본적인 RAG보다 복잡한 질문을 처리하는 데 도움이 될 수 있습니다.

단점

Pipeline에 여러 단계가 추가되면서 시스템이 복잡해집니다.

Query 생성이나 Context 처리에 LLM을 사용하면 추가적인 비용과 응답 시간이 발생합니다.

각 단계가 항상 검색 품질을 높이는 것도 아닙니다.

잘못된 Query Transformation이 오히려 필요한 문서를 찾지 못하게 만들 수도 있습니다.

따라서 실제 검색 결과를 평가하면서 필요한 방법을 적용해야 합니다.


요약

이번 글에서는 RAG의 한계와 Advanced RAG에 대해 알아보았습니다.

핵심 내용을 정리하면 다음과 같습니다.

  • 기본 RAG는 사용자의 질문을 한 번 검색하고 결과를 이용하여 답변을 생성합니다.

  • Query Rewriting은 사용자의 질문을 검색하기 좋은 형태로 변경합니다.

  • Multi-Query는 하나의 질문을 여러 Query로 만들어 다양한 문서를 검색합니다.

  • HyDE는 가상의 답변 문서를 생성한 뒤 이를 이용하여 관련 문서를 검색합니다.

  • Context Compression은 검색된 문서에서 질문에 필요한 내용만 추출합니다.


다음 글에서는 LLM이 상황에 따라 검색 여부와 검색 방법을 스스로 결정하는 Agentic RAG에 대해 알아보겠습니다.

Agentic RAG는 정해진 Pipeline을 따라가는 것을 넘어 LLM이 필요한 도구를 선택하고 여러 단계의 검색과 추론을 수행하는 방법입니다.

부족한 글 읽어주셔서 감사합니다.

틀린 내용이나 피드백은 댓글로 남겨주시면 감사하겠습니다.

감사합니다.

profile
저희.서이.하실래요?

1개의 댓글

comment-user-thumbnail
2026년 8월 22일

최근 사내에서 text2sql을 도입해보고싶어 관련해서 rag방식을 사용해보기로했어요! 올려주신 글 읽어보고 좀 더 구체화된 개념을 알게되었네요 감사합니다👍

답글 달기