AI 머신러닝

RAG 아키텍처 구현: LLM 환각 현상 감소 및 최신 정보 활용 전략

강코의 코딩 일기 2026. 4. 5. 19:02

LLM의 고질적인 환각 현상과 정보 부족 문제를 해결하는 RAG 아키텍처 구현 전략을 소개합니다. 최신 정보를 활용하여 정확하고 신뢰할 수 있는 AI 서비스를 구축하세요.

최근 생성형 AI 기술은 놀라운 발전을 거듭하며 우리 생활과 업무에 깊숙이 자리 잡고 있습니다. 하지만 대규모 언어 모델(LLM)을 활용하면서 많은 분들이 공통적으로 겪는 어려움이 있습니다. 바로 '환각 현상(Hallucination)''최신 정보 부족' 문제입니다.

LLM은 방대한 텍스트 데이터를 학습하여 자연스러운 답변을 생성하지만, 때로는 사실과 다른 내용을 마치 진실인 양 이야기하거나, 학습 데이터에 없는 최신 정보를 요청했을 때 엉뚱한 답변을 내놓기도 합니다. 이러한 문제들은 LLM 기반 서비스의 신뢰도를 떨어뜨리고, 실제 비즈니스 적용에 큰 걸림돌이 됩니다.

그렇다면 이러한 LLM의 본질적인 한계를 극복하고, 언제나 정확하고 최신 정보를 기반으로 답변하는 AI 서비스를 구축할 방법은 없을까요? 여기 그 해답을 제시하는 강력한 아키텍처가 있습니다. 바로 RAG(Retrieval-Augmented Generation, 검색 증강 생성)입니다.

RAG(검색 증강 생성) 아키텍처 구현: LLM 환각 현상 감소 및 최신 정보 활용 극대화 전략 - library, books, architecture, interior, shelves, knowledge, wisdom, read, bookshelves, bookcases, vintage, bookworm, library, library, library, library, library

Image by Pexels on Pixabay

LLM의 한계, RAG로 극복하다: 환각 현상과 정보 부족 문제

생성형 AI의 핵심인 LLM은 방대한 데이터로 훈련되어 일반적인 지식과 언어 이해 능력이 뛰어납니다. 하지만 본질적인 한계점들이 존재합니다.

  • 환각 현상: LLM은 학습한 패턴을 기반으로 다음 단어를 예측하여 문장을 생성합니다. 이 과정에서 사실 관계를 확인하지 않고 그럴듯하지만 잘못된 정보를 만들어낼 수 있습니다. 이는 마치 LLM이 '꾸며낸' 답변을 하는 것처럼 보이며, AI 서비스의 신뢰성을 심각하게 저해합니다.
  • 정보 부족 및 비활용성: LLM은 특정 시점까지의 데이터로 학습됩니다. 따라서 그 이후에 발생한 사건이나 최신 동향, 혹은 특정 기업의 내부 문서와 같은 고유하고 최신 정보에 대해서는 답변할 수 없습니다. 또한, 학습 데이터에 포함된 정보라 할지라도, 특정 질문에 대해 가장 관련성 높은 정보를 정확히 찾아내어 활용하는 데 어려움이 있습니다.
  • 불투명성: LLM이 어떤 근거로 답변을 생성했는지 추적하기 어렵습니다. 이는 '설명 가능성(Explainability)' 측면에서 큰 단점으로 작용하며, 규제 준수나 감사에도 문제가 될 수 있습니다.

이러한 문제들은 LLM이 단순히 '정보를 기억'하는 것이 아니라 '패턴을 학습'한다는 점에서 기인합니다. RAG 아키텍처는 이러한 LLM의 본질적인 한계를 외부의 검색 시스템과 결합하여 해결함으로써, AI가 더 정확하고 신뢰할 수 있는 답변을 생성하도록 돕는 강력한 대안으로 부상했습니다.

RAG(검색 증강 생성) 아키텍처의 핵심 원리 이해

RAG는 이름 그대로 '검색(Retrieval)'과 '생성(Generation)'을 결합한 방법론입니다. 사용자의 질문이 들어왔을 때, 단순히 LLM에게 직접 질문을 전달하는 대신, 먼저 관련성 높은 정보를 외부 지식 저장소에서 '검색'한 다음, 이 검색된 정보를 LLM에게 '추가 맥락'으로 제공하여 답변을 '생성'하게 합니다.

이 과정은 마치 도서관에서 논문을 쓰는 과정과 유사합니다. 특정 주제에 대해 글을 쓸 때, 머릿속 지식만으로 쓰는 것이 아니라, 관련 서적이나 논문을 찾아보고 (검색), 그 내용을 바탕으로 자신만의 글을 쓰는 (생성) 것과 같습니다.

RAG의 핵심적인 이점은 다음과 같습니다.

  • 환각 현상 감소: LLM이 검색된 정확한 근거 자료를 바탕으로 답변을 생성하므로, 사실과 다른 내용을 만들어낼 확률이 크게 줄어듭니다.
  • 최신 정보 활용: 외부 지식 저장소를 주기적으로 업데이트함으로써, LLM의 학습 시점 이후의 최신 정보까지 활용하여 답변할 수 있습니다.
  • 정보의 투명성 및 출처 명시: 답변의 근거가 된 문서를 함께 제시함으로써, 사용자는 AI 답변의 신뢰성을 직접 확인할 수 있습니다. 이는 설명 가능성을 크게 향상시킵니다.
  • 특정 도메인 지식 활용: 기업 내부 문서, 특정 전문 분야의 지식 등 LLM이 학습하지 않은 특정 도메인의 정보를 활용할 수 있습니다.
  • 모델 재학습 비용 절감: LLM 자체를 재학습시키거나 파인튜닝하는 비용과 시간을 들이지 않고, 외부 지식 저장소만 업데이트하여 정보를 갱신할 수 있습니다.

이러한 장점 덕분에 RAG는 AI 챗봇, 지식 기반 Q&A 시스템, 문서 요약 등 다양한 분야에서 LLM 기반 서비스의 성능과 신뢰도를 혁신적으로 향상시키는 핵심 기술로 자리매김하고 있습니다.

RAG 시스템의 주요 구성 요소와 작동 방식

RAG 아키텍처는 크게 두 가지 주요 단계로 나뉩니다: 색인(Indexing) 단계질의(Query) 단계. 각 단계는 여러 구성 요소로 이루어져 있으며, 이들이 유기적으로 작동하여 LLM의 한계를 극복합니다.

데이터 수집 및 전처리 전략

RAG 시스템의 첫 단계는 LLM이 활용할 지식 기반을 구축하는 것입니다. 이 과정은 다음과 같은 흐름으로 진행됩니다.

  1. 데이터 수집: 웹 페이지, PDF 문서, 데이터베이스, API 응답 등 다양한 형태의 비정형 및 정형 데이터를 수집합니다. 기업 내부 문서, 기술 사양서, 고객 FAQ 등 특정 도메인의 데이터가 특히 중요합니다.
  2. 데이터 전처리: 수집된 데이터를 LLM이 이해하고 검색 시스템이 효율적으로 처리할 수 있도록 정제합니다. 여기에는 노이즈 제거, 불필요한 태그 제거, 포맷 통일 등의 작업이 포함됩니다.
  3. 청킹(Chunking): LLM의 컨텍스트 윈도우(Context Window)는 한 번에 처리할 수 있는 토큰 수에 제한이 있습니다. 따라서 길고 복잡한 문서는 작은 단위의 '청크(Chunk)'로 분할해야 합니다.
    • 고정 크기 청킹: 일정한 길이(예: 256, 512 토큰)로 문서를 자릅니다. 오버랩(Overlap)을 주어 문맥 손실을 최소화할 수 있습니다.
    • 문맥 기반 청킹: 문단의 구분, 제목, 섹션 등 의미론적인 경계를 기준으로 청크를 나눕니다. 이는 검색 정확도를 높이는 데 유리합니다.
    청킹 전략은 검색 품질에 매우 큰 영향을 미치므로, 데이터의 특성과 LLM의 컨텍스트 윈도우를 고려하여 신중하게 선택해야 합니다.

임베딩 및 벡터 데이터베이스 구축

청크로 분할된 텍스트는 임베딩 모델을 통해 벡터(Vector) 형태로 변환됩니다. 임베딩은 텍스트의 의미를 다차원 공간의 숫자로 표현하는 과정입니다. 의미적으로 유사한 텍스트는 벡터 공간에서 가까운 위치에 배치됩니다.

  • 임베딩 모델 선택: M-BERT, S-BERT, OpenAI의 text-embedding-ada-002 등 다양한 임베딩 모델이 존재합니다. 사용하려는 LLM과 호환성이 높고, 처리하려는 데이터 도메인에 적합한 모델을 선택하는 것이 중요합니다.
  • 벡터 데이터베이스 (Vector Database) 구축: 생성된 벡터 임베딩은 벡터 데이터베이스에 저장됩니다. Pinecone, Weaviate, Milvus, Qdrant 등 전문 벡터 데이터베이스는 수백만, 수십억 개의 벡터 데이터를 효율적으로 저장하고, 사용자의 질문 벡터와 유사한 벡터를 빠르게 찾아내는 유사도 검색(Similarity Search) 기능을 제공합니다. 기존 관계형 데이터베이스(RDB)나 NoSQL 데이터베이스도 벡터 저장 기능을 제공하는 경우가 늘고 있습니다.

검색 모듈 최적화

사용자의 질문이 들어오면, 이 질문 또한 임베딩 모델을 통해 벡터로 변환됩니다. 그리고 이 질문 벡터와 벡터 데이터베이스에 저장된 문서 청크 벡터 간의 유사도를 측정하여 가장 관련성이 높은 청크들을 찾아냅니다.

  • 유사도 측정: 코사인 유사도(Cosine Similarity)가 가장 흔하게 사용됩니다. 벡터 간의 각도를 측정하여 유사성을 판단합니다.
  • 검색 결과 재순위화 (Re-ranking): 초기 검색 결과는 때때로 노이즈가 많거나, 질문과 직접적인 관련이 낮은 정보가 포함될 수 있습니다. 이를 개선하기 위해 검색된 청크들을 재순위화 모델을 통해 다시 한번 정렬하여 가장 관련성 높은 정보를 LLM에 전달하도록 최적화할 수 있습니다.
  • 하이브리드 검색: 벡터 검색(의미론적 유사성)과 키워드 검색(BM25 등)을 결합하여 검색 정확도를 높이는 방법입니다. 의미론적으로는 유사하지만 키워드가 다른 경우, 혹은 키워드는 일치하지만 의미가 다른 경우를 보완할 수 있습니다.

생성 모듈과의 연동

검색 모듈에서 찾아낸 상위 N개의 관련성 높은 문서 청크는 사용자의 원본 질문과 함께 프롬프트 형태로 LLM에 전달됩니다.


# 예시: LLM에 전달될 프롬프트 구성
context = "다음은 검색된 관련 문서 내용입니다:\n"
for doc_chunk in retrieved_documents:
    context += f"- {doc_chunk}\n"

prompt = f"""
{context}

위 문서 내용을 참고하여 다음 질문에 답해 주세요:
{user_query}
"""

# LLM에 프롬프트 전달 및 답변 생성
response = llm.generate(prompt)
print(response)

LLM은 이제 단순히 자신의 학습 데이터에만 의존하는 것이 아니라, 제공된 '컨텍스트(Context)'를 바탕으로 질문에 대한 답변을 생성합니다. 이 과정에서 LLM은 검색된 정보 내에서 답변을 찾거나, 검색된 정보를 종합하여 새로운 답변을 구성하게 됩니다. 결과적으로 LLM은 환각 현상을 줄이고, 최신 정보를 기반으로 정확한 답변을 제공할 수 있게 됩니다.

RAG(검색 증강 생성) 아키텍처 구현: LLM 환각 현상 감소 및 최신 정보 활용 극대화 전략 - library, architecture, books, interior, interior design, stairs, bookshelves, bookcase, knowledge, reading, modern design, modern architecture, building, europe, modern, stuttgart, library, library, library, library, library, knowledge

Image by olivergotting on Pixabay

성공적인 RAG 구현을 위한 전략과 모범 사례

RAG 아키텍처의 효과를 극대화하기 위해서는 몇 가지 핵심 전략과 모범 사례를 적용해야 합니다.

청크 전략과 임베딩 모델 선택의 중요성

청크 전략은 RAG 시스템의 성능을 좌우하는 중요한 요소입니다. 너무 작은 청크는 문맥을 잃게 하고, 너무 큰 청크는 LLM의 컨텍스트 윈도우를 초과하거나 불필요한 정보를 포함하여 검색 정확도를 떨어뜨릴 수 있습니다.

전략 설명 장점 단점
고정 크기 청킹 (Fixed Size Chunking) 일정한 토큰 또는 문자 수로 문서를 분할 (예: 256 토큰, 오버랩 10%) 구현이 간단하고 예측 가능 의미론적 경계 무시, 문맥 손실 가능성
문맥 기반 청킹 (Contextual Chunking) 문단, 제목, 섹션 등 의미 단위로 분할 의미론적 일관성 유지, 검색 정확도 향상 구현 복잡성, 다양한 문서 형식 처리 어려움
재귀 청킹 (Recursive Chunking) 다양한 크기로 재귀적으로 청킹을 시도하며 최적의 크기 탐색 다양한 상황에 유연하게 대응, 정교한 문맥 유지 복잡한 로직, 처리 시간 증가

임베딩 모델 역시 중요합니다. 도메인 특화된 임베딩 모델을 사용하면 일반적인 모델보다 더 높은 검색 정확도를 얻을 수 있습니다. 예를 들어, 법률 문서에는 법률 특화 임베딩 모델을, 의료 문서에는 의료 특화 임베딩 모델을 사용하는 것이 유리합니다.

검색 품질 향상 기법

단순 유사도 검색을 넘어, 검색 품질을 높이는 다양한 기법들이 있습니다.

  • 재순위화 (Re-ranking): 초기 검색에서 여러 문서를 가져온 후, 별도의 재순위화 모델(Cross-Encoder 등)을 사용하여 질문과 문서 간의 관련성을 더 정확하게 평가하고 순서를 재조정합니다. 이는 LLM에 전달되는 컨텍스트의 품질을 크게 향상시킵니다.
  • 하이브리드 검색 (Hybrid Search): 키워드 기반 검색(BM25, TF-IDF)과 벡터 기반 검색을 결합합니다. 키워드 검색은 특정 용어의 출현에 강하고, 벡터 검색은 의미론적 유사성에 강하므로, 이 둘을 결합하면 상호 보완적인 효과를 얻을 수 있습니다.
  • 쿼리 확장 (Query Expansion): 사용자의 질문에 동의어나 관련 키워드를 추가하여 검색 쿼리를 확장합니다. 이는 검색 엔진이 더 많은 관련 문서를 찾을 수 있도록 돕습니다.
  • 명령형 검색(Contextual Compression): 검색된 문서 청크 전체를 LLM에 전달하는 대신, LLM이 질문에 답변하는 데 필요한 핵심 정보만 추출하여 전달함으로써 프롬프트 길이를 줄이고, LLM이 불필요한 정보에 집중하는 것을 방지합니다.

평가 및 개선 주기

RAG 시스템은 한 번 구축하고 끝나는 것이 아니라, 지속적인 평가와 개선이 필요합니다.

  • 평가 지표: 검색 정확도(Recall, Precision), LLM 답변의 충실도(Faithfulness), 관련성(Relevance) 등을 평가합니다.
  • 인간 피드백 (Human Feedback): 실제 사용자의 피드백을 수집하여 RAG 시스템의 문제점을 파악하고 개선하는 데 활용합니다.
  • A/B 테스트: 다양한 청크 전략, 임베딩 모델, 검색 기법 등을 A/B 테스트하여 최적의 조합을 찾아냅니다.

RAG의 확장과 고급 활용 기법

기본적인 RAG 아키텍처를 넘어서, 더욱 정교하고 강력한 AI 시스템을 구축하기 위한 고급 RAG 기법들이 연구되고 적용되고 있습니다.

다중 RAG (Multi-RAG) 및 Self-RAG

  • 다중 RAG: 단일 지식 저장소가 아닌, 여러 종류의 지식 저장소(예: 일반 문서, 코드, 이미지 메타데이터)를 활용하거나, 여러 검색 엔진을 조합하여 정보를 검색하는 방식입니다. 질문의 유형에 따라 적절한 저장소나 검색기를 선택하여 더 풍부하고 정확한 정보를 얻을 수 있습니다.
  • Self-RAG: LLM 스스로 검색 결과를 평가하고, 필요하다면 추가 검색을 수행하도록 하는 방식입니다. LLM이 검색된 정보가 질문에 충분한지, 혹은 더 나은 정보를 찾기 위해 쿼리를 수정해야 하는지 판단합니다. 이는 LLM의 추론 능력을 검색 과정에 통합하여 검색의 효율성과 정확성을 높입니다.

에이전트(Agent)와의 결합

RAG는 LLM 기반 에이전트 아키텍처의 핵심 구성 요소로 활용될 수 있습니다. 에이전트는 특정 목표를 달성하기 위해 여러 도구(Tools)를 사용하고, 자체적으로 계획을 수립하고 실행하는 AI 시스템입니다.


# 예시: RAG가 도구로 활용되는 에이전트의 워크플로우
class RAGTool:
    def __init__(self, vector_db, llm_for_generation):
        self.vector_db = vector_db
        self.llm_for_generation = llm_for_generation

    def retrieve_and_generate(self, query):
        # 1. 쿼리 임베딩
        query_embedding = embed_model.encode(query)
        # 2. 벡터 DB에서 관련 문서 검색
        retrieved_docs = self.vector_db.search(query_embedding)
        # 3. LLM에 프롬프트 구성 및 생성 요청
        context = "\n".join(retrieved_docs)
        prompt = f"Context: {context}\nQuestion: {query}\nAnswer:"
        response = self.llm_for_generation.generate(prompt)
        return response

class AIAgent:
    def __init__(self, tools):
        self.tools = tools # {'rag_tool': RAGTool(...), 'calculator': CalculatorTool(...)}

    def execute_task(self, task_description):
        # LLM이 task_description을 분석하여 필요한 도구(Tool)를 판단
        # 예: "최근 기업 실적에 대해 알려줘" -> RAGTool 사용
        # 예: "2500의 15%는 얼마야?" -> CalculatorTool 사용
        if "최근" in task_description or "정보" in task_description:
            return self.tools['rag_tool'].retrieve_and_generate(task_description)
        # ... 다른 도구 사용 로직 ...
        return "Not implemented or unknown task."

# 사용 예
rag_system = RAGTool(my_vector_db, my_generation_llm)
agent = AIAgent(tools={'rag_tool': rag_system})
agent.execute_task("오늘의 주식 시장 동향을 알려줘")

RAG는 에이전트가 외부 지식을 검색하고 활용하는 핵심적인 '도구(Tool)' 역할을 수행합니다. 에이전트는 RAG를 통해 자신의 학습 데이터에 없는 최신 정보나 특정 도메인 지식을 활용하여 복잡한 문제를 해결하고, 더 정확하고 신뢰할 수 있는 작업을 수행할 수 있습니다. 예를 들어, 사용자의 요청에 따라 내부 시스템의 데이터를 검색하여 보고서를 작성하거나, 웹을 검색하여 최신 뉴스 요약을 제공하는 등 다양한 시나리오에 적용됩니다.

RAG(검색 증강 생성) 아키텍처 구현: LLM 환각 현상 감소 및 최신 정보 활용 극대화 전략 - books, shelves, full hd wallpaper, door, wallpaper hd, entrance, free wallpaper, library, knowledge, hd wallpaper, free background, 4k wallpaper 1920x1080, laptop wallpaper, wisdom, civic museum library, beautiful wallpaper, mac wallpaper, international gallery of modern art, pesaro, windows wallpaper, desktop backgrounds, italy, cool backgrounds, 4k wallpaper, wallpaper 4k, background

Image by ninocare on Pixabay

RAG 아키텍처 구현 시 마주하는 도전 과제와 해결책

RAG는 강력한 기술이지만, 구현 과정에서 몇 가지 도전 과제에 직면할 수 있습니다.

  • 데이터 품질 및 전처리: 원본 데이터의 품질이 낮으면 아무리 좋은 RAG 시스템이라도 부정확한 답변을 내놓을 수 있습니다. 해결책: 철저한 데이터 클리닝, 구조화되지 않은 데이터의 정규화, 그리고 도메인 전문가의 검토를 통해 고품질의 지식 기반을 구축해야 합니다.
  • 청크 전략의 최적화: 문서의 특성과 질문의 유형에 따라 최적의 청크 크기와 오버랩 전략이 달라질 수 있습니다. 해결책: 다양한 청크 전략을 시도하고, 실제 사용 시나리오에 맞춰 A/B 테스트를 통해 최적의 파라미터를 찾아야 합니다. 계층적 청킹이나 의미론적 청킹 등 고급 기법을 고려할 수 있습니다.
  • 임베딩 모델 선택 및 성능: 질문과 문서 간의 의미론적 유사도를 정확히 포착하는 임베딩 모델을 선택하는 것이 중요합니다. 해결책: 처리하려는 도메인에 특화된 임베딩 모델을 사용하거나, 필요하다면 자체 데이터를 활용하여 임베딩 모델을 파인튜닝할 수 있습니다.
  • 검색 정확도 향상: 때로는 관련 없는 문서가 검색되거나, 가장 중요한 정보가 누락될 수 있습니다. 해결책: 재순위화, 하이브리드 검색, 쿼리 확장 등 다양한 검색 증강 기법을 적용하여 검색 품질을 지속적으로 개선해야 합니다.
  • LLM의 컨텍스트 윈도우 한계: 너무 많은 검색 결과를 LLM에 전달하면 컨텍스트 윈도우를 초과하거나 LLM이 중요한 정보에 집중하지 못할 수 있습니다. 해결책: 검색 결과의 수를 최적화하고, 검색된 정보에서 핵심 내용만 추출하는 요약(Summarization) 또는 명령형 검색(Contextual Compression) 기법을 활용하여 LLM에 전달되는 컨텍스트의 길이를 효율적으로 관리해야 합니다.
  • 시스템 유지보수 및 업데이트: 지식 저장소의 데이터는 끊임없이 업데이트되어야 하며, 시스템 구성 요소(임베딩 모델, LLM 등)도 최신 상태를 유지해야 합니다. 해결책: 데이터 업데이트 파이프라인을 자동화하고, 시스템 모니터링 및 주기적인 성능 평가를 통해 최적의 상태를 유지해야 합니다.

이러한 도전 과제들을 이해하고 적절한 해결책을 적용함으로써, RAG 아키텍처의 잠재력을 최대한 발휘하고 안정적이며 고성능의 AI 서비스를 구축할 수 있습니다.

RAG, AI 서비스의 신뢰성을 높이는 필수 전략

RAG(검색 증강 생성) 아키텍처는 LLM의 고질적인 환각 현상과 최신 정보 활용의 한계를 극복하는 가장 효과적인 방법 중 하나입니다. 외부 지식 저장소의 최신 데이터를 활용하고, 답변의 근거를 명확히 제시함으로써 AI 서비스의 신뢰성, 정확성, 투명성을 획기적으로 향상시킵니다.

성공적인 RAG 구현을 위해서는 데이터 수집 및 전처리, 청킹 전략, 임베딩 모델 선택, 벡터 데이터베이스 구축, 그리고 검색 품질 향상 기법에 대한 깊은 이해가 필요합니다. 또한, 지속적인 평가와 개선을 통해 시스템을 최적화하고, 다중 RAG나 에이전트와의 결합과 같은 고급 기법을 통해 더욱 강력한 AI 서비스를 구축할 수 있습니다.

LLM 기반 서비스를 계획하고 있다면, RAG 아키텍처는 이제 선택이 아닌 필수가 되어가고 있습니다. 이 글에서 제시된 전략과 모범 사례를 바탕으로 여러분의 AI 서비스가 더욱 정확하고 신뢰할 수 있는 정보 제공의 동반자가 되기를 바랍니다.

RAG 아키텍처 구현 과정에서 겪었던 경험이나 궁금한 점이 있다면 언제든지 댓글로 공유해 주세요. 함께 고민하고 더 나은 솔루션을 찾아 나가는 과정은 개발 커뮤니티의 큰 힘이 됩니다.

📌 함께 읽으면 좋은 글

  • [개발 책 리뷰] 실용주의 프로그래머: 개발자 생산성 향상과 소프트웨어 품질을 위한 핵심 철학
  • [개발 도구] Vim/Neovim을 활용한 개발 환경 구축: 플러그인과 설정으로 IDE처럼 사용하기
  • [AI 머신러닝] LLM 에이전트 구축 실전 가이드: LangChain, LlamaIndex로 자율 작업 자동화

이 글이 도움이 되셨다면 공감(♥)댓글로 응원해 주세요!
궁금한 점이나 다루었으면 하는 주제가 있다면 댓글로 남겨주세요.