AI/엔지니어링

2. Context Engineering(컨텍스트 엔지니어링) — AI에게 필요한 정보를 적절하게 제공하는 기술

조슈아。 2026. 4. 8. 13:57
반응형

2. 컨텍스트 엔지니어링(Context Engineering)

AI에게 필요한 정보를 적절하게 제공하는 기술 — 정보의 기술

  • AI에게 '무엇을(What)' 해야 할지 알려주는 것을 넘어, 그 일을 수행하는 데 필요한 **'지식과 상황 정보(Context)'**를 가장 효과적으로 주입하는 기술
  • 모델이 '모르는 것'을 알게 하거나, '특정 정보'에 기반해 답변하게 만드는 환경 조성
  • **RAG(검색 증강 생성)**가 대표적. 벡터 데이터베이스 구축, 데이터 전처리, 사용자 히스토리 관리 등을 통해 AI에게 ”지식의 맥락”을 제공
  • 프롬프트가 '두뇌'라면, 컨텍스트는 그 두뇌가 참고할 '교과서'
  • 단순히 텍스트를 많이 집어넣는 것이 아니라, 모델의 제한된 기억력(Context Window) 내에 가장 가치 있는 정보를 정교하게 배치하는 것이 핵심

주요 기법들 (Techniques)

1. 검색 증강 생성 (RAG, Retrieval-Augmented Generation)

가장 대표적인 기법으로, 모델의 파라미터 외부에 있는 지식을 실시간으로 찾아내어 전달

  • Semantic Search (의미론적 검색): 질문의 단어가 정확히 일치하지 않아도, 의미적으로 유사한 문서를 벡터(Vector) 공간에서 찾아낸다.
    • "뜨겁다"라는 단어가 없어도 의미가 유사한 "발열 현상", "온도 상승", "냉각 팬 오작동" 관련 매뉴얼 데이터를 찾아 제공
  • Hybrid Search: 키워드 기반의 정확도(BM25)와 의미 기반의 유사도(Dense Vector)를 결합하여 검색 품질을 높인다.
    • 'M3'라는 정확한 키워드(Keyword Search)와 '노트북 성능'이라는 의미(Semantic Search)를 동시에 검색하여 가장 정확한 제품 정보를 추출
  • Re-ranking (재정렬): 검색된 수십 개의 문서 중, 질문과 가장 연관성이 높은 순서대로 다시 정렬하여 최상단 정보만 AI에게 전달.
    • AI가 읽기 전, 다시 한번 고성능 알고리즘으로 계산하여 사용자의 질문과 가장 밀접한 상위 3개의 문서만 골라 프롬프트에 넣어줌

2. 데이터 전처리 및 청킹 (Chunking)

방대한 데이터를 AI가 읽기 좋은 크기로 쪼개는 기술

  • Fixed-size Chunking: 고정된 길자로 자르는 기초적인 방식
  • Recursive Character Chunking: 문단, 문장 마침표 등을 인식하여 의미가 끊기지 않게 유동적으로 자름
    • 500자 단위로 자르되, 문장의 마침표(.)나 줄바꿈(\\n)을 기준으로 잘라서 "사과는 맛있다. 그래서 나는" 처럼 의미가 중간에 끊기지 않게 조절
  • Semantic Chunking: 텍스트의 주제가 바뀌는 지점을 감지하여 의미 단위로 데이터를 분절
    • "회사 소개" 섹션이 끝나고 "연봉 복지" 섹션으로 넘어가는 지점을 AI가 감지하여 주제별로 데이터를 분절
  • Overlapping: 앞뒤 청크의 내용을 일부 겹치게 하여 맥락이 단절되는 것을 방지
    • "A는 B의 원인이다."라는 문장이 잘려도 앞뒤 맥락을 통해 인과관계를 유지함

3. 컨텍스트 윈도우 관리 (Window Management)

모델이 한 번에 처리할 수 있는 정보량은 제한되어 있으므로, 이를 효율적으로 압축하고 선별

  • Context Truncation & Sliding: 대화가 길어질 때 오래된 내용을 삭제하거나, 최근 맥락만 유지하며 이동하는 방식
  • Summarization (요약): 이전 대화 내용이나 긴 문서를 요약본으로 변환하여 컨텍스트 용량을 확보
    • 상황: 고객과 50번의 대화를 나눈 상태
    • 작동: 이전의 40번 대화를 "고객은 환불 규정에 대해 문의 중임"이라는 한 줄 요약으로 압축하여 입력창 공간을 확보하고 최신 대화에 집중
  • Information Compression: 불필요한 수식어나 조사를 제거하여 정보 밀도를 높이는 기법
    • "안녕하세용 고객님! 무엇을 도와드릴까용?^^" → "문의 사항 확인 필요"와 같이 핵심 정보 위주로 토큰(Token)을 절약

4. GraphRAG (지식 그래프 결합)

단순한 텍스트 파편화를 넘어, 정보 간의 **'관계'**를 구조화하여 제공하는 고도화된 방식

  • Entity Extraction: 문서 내 핵심 개체(인물, 장소, 개념 등)를 추출
  • Relationship Mapping: 개체 간의 연결 고리를 그래프 형태로 저장하여, 단순 검색으로는 찾기 힘든 복합적인 추론(예: "A와 B의 공통점은?")을 가능하게 한다.
    • 데이터: [스티브 잡스] - (설립) - [애플], [애플] - (제조) - [아이폰]
    • 효과: 사용자가 "잡스가 만든 휴대폰의 특징은?"이라고 물으면, 여러 문서를 뒤지지 않고도 그래프를 따라 '잡스 → 애플 → 아이폰'의 관계를 즉시 파악해 답변

5. Few-shot & In-context Learning

프롬프트 안에 예시 데이터(Example)를 직접 포함시켜 모델의 적응력을 증가시킨다.

  • Dynamic Few-shot: 모든 예시를 다 넣는 대신, 현재 질문과 가장 유사한 성공 사례(Golden Set)만 골라 컨텍스트에 삽입
  • Instruction-Context Separation: 지시사항과 참고 데이터를 명확히 구분(예: ### Context ### 태그 활용)하여 모델이 혼동하지 않게 한다.실제 서비스를 만들 때, 이 기법들은 모델의 입력창(Context Window)을 어떻게 구성하느냐의 문제로 직결되기 때문

Few-shot은 프롬프트 엔지니어링일텐데?

실제 서비스를 만들 때, 이 기법들은 모델의 입력창(Context Window)을 어떻게 구성하느냐의 문제로 직결되기 때문

  • 프롬프트 측면 (How): "예시를 이런 형식으로 보여줄게"라는 지시 방식에 집중
  • 컨텍스트 측면 (What): "수만 개의 과거 상담 사례 중, 지금 질문과 가장 유사한 사례 3개를 데이터베이스에서 찾아와서 넣어주자"는 데이터 선별에 집중
기법 프롬프트 엔지니어링 측면 (How) 컨텍스트 엔지니어링 측면 (What)
Zero-shot 명확하고 간결한 지시문 작성 추가 정보 없이 모델의 내부 지식만 활용
Few-shot 예시를 보여주는 포맷 설계 질문에 최적화된 참조 데이터 선별 및 주입
CoT "단계별로 생각하라"는 트리거 모델의 추론 로그를 컨텍스트에 누적

 

[비교] 

구분 프롬프트 엔지니어링 (기술) 컨텍스트 엔지니어링 (정보)
비유 요리사의 칼질과 레시피 설명 요리사 앞에 놓인 신선한 재료들
핵심 "어떻게 말하게 할 것인가?" "무엇을 보고 말하게 할 것인가?"
예시 "전문가처럼 답해줘(페르소나)" "이 PDF 파일을 참고해서 답해줘(RAG)"

 

반응형