컴포넌트 아키텍처 (Component Architecture)

컴포넌트 아키텍처 (Component Architecture)

LangChain의 진짜 힘은 개별 컴포넌트가 아니라, 그 컴포넌트들이 서로 어떻게 맞물려 복잡한 AI 애플리케이션을 만들어내느냐에서 나와요. 이 페이지에서는 서로 다른 컴포넌트들 사이의 관계를 다이어그램으로 보여드릴게요. 각 조각이 어디에 놓여 있고, 어떤 흐름으로 연결되는지를 한눈에 볼 수 있죠.

출처: LangChain 공식 문서 — Component architecture

핵심 컴포넌트 생태계 (Core component ecosystem)

아래 다이어그램은 LangChain의 주요 컴포넌트들이 어떻게 이어져 완성된 AI 애플리케이션을 만드는지 보여줍니다.

graph TD
    %% Input processing
    subgraph "📥 Input processing"
        A[Text input] --> B[Document loaders]
        B --> C[Text splitters]
        C --> D[Documents]
    end

    %% Embedding & storage
    subgraph "🔢 Embedding & storage"
        D --> E[Embedding models]
        E --> F[Vectors]
        F --> G[(Vector stores)]
    end

    %% Retrieval
    subgraph "🔍 Retrieval"
        H[User Query] --> I[Embedding models]
        I --> J[Query vector]
        J --> K[Retrievers]
        K --> G
        G --> L[Relevant context]
    end

    %% Generation
    subgraph "🤖 Generation"
        M[Chat models] --> N[Tools]
        N --> O[Tool results]
        O --> M
        L --> M
        M --> P[AI response]
    end

    %% Orchestration
    subgraph "🎯 Orchestration"
        Q[Agents] --> M
        Q --> N
        Q --> K
        Q --> R[Memory]
    end

컴포넌트가 어떻게 연결되는지 (How components connect)

파이프라인을 한 단계씩 따라가 보면 전체 그림이 잡혀요.

  1. 입력 처리 (Input processing) – 원시 데이터를 구조화된 문서로 변환합니다.
  2. 임베딩 & 저장 (Embedding & storage) – 텍스트를 검색 가능한 벡터 표현으로 변환해요.
  3. 검색 (Retrieval) – 사용자 질의에 따라 관련 정보를 찾아냅니다.
  4. 생성 (Generation) – AI 모델을 사용해 응답을 만들며, 필요하면 도구도 함께 씁니다.
  5. 오케스트레이션 (Orchestration) – 에이전트와 메모리 시스템으로 전체를 조율하죠.

컴포넌트 분류 (Component categories)

분류 목적 핵심 컴포넌트 사용 사례
도구 (Tools) 외부 기능 APIs, 데이터베이스 등 웹 검색, 데이터 접근, 계산
에이전트 (Agents) 오케스트레이션과 추론 ReAct 에이전트, 도구 호출 에이전트 비결정적 워크플로, 의사 결정
메모리 (Memory) 맥락 보존 메시지 기록, 커스텀 상태 대화, 상태 있는 상호작용
리트리버 (Retrievers) 정보 접근 벡터 리트리버, 웹 리트리버 RAG, 지식 베이스 검색
문서 처리 (Document processing) 데이터 수집 로더, 스플리터, 트랜스포머 PDF 처리, 웹 스크래핑
벡터 스토어 (Vector Stores) 의미 검색 Chroma, Pinecone, FAISS 유사도 검색, 임베딩 저장

일반적인 패턴 (Common patterns)

RAG (Retrieval-Augmented generation)

RAG는 검색한 관련 문서를 바탕으로 챗 모델이 답을 만들게 하는 패턴이에요. 사용자 질문이 리트리버로 가서 관련 문서를 찾고, 그 문서와 질문을 함께 챗 모델에 넘겨 정보에 기반한 응답을 얻습니다.

graph LR
    A[User question] --> B[Retriever]
    B --> C[Relevant docs]
    C --> D[Chat model]
    A --> D
    D --> E[Informed response]

    classDef trigger fill:#F6FFDB,stroke:#6E8900,stroke-width:2px,color:#2E3900
    classDef process fill:#E5F4FF,stroke:#006DDD,stroke-width:2px,color:#030710
    classDef neutral fill:#F2FAFF,stroke:#40668D,stroke-width:2px,color:#2F4B68

    class A trigger
    class B,D process
    class C,E neutral

도구를 쓰는 에이전트 (Agent with tools)

에이전트는 작업을 처리하다가 도구가 필요한 지점에서 멈춰 도구를 호출하고, 그 결과를 다시 받아 다음 결정을 내려요. 결과가 충분하면 최종 답을 내놓습니다.

graph LR
    A[User request] --> B[Agent]
    B --> C{Need tool?}
    C -->|Yes| D[Call tool]
    D --> E[Tool result]
    E --> B
    C -->|No| F[Final answer]

더 알아보기 (Learn more)