문서 구조 청킹 (Document-Specific Chunking)
문서의 구조적 특성(헤딩, 태그, 문법)을 활용하여 의미 단위로 분할하는 방식입니다. 구조화된 문서에서는 범용 청킹보다 훨씬 높은 품질을 제공합니다.Markdown 청킹
헤딩(#, ##, ###)을 기준으로 분할하며, 각 청크에 헤딩 계층 메타데이터가 자동으로 포함됩니다.HTML 청킹
HTML 태그 구조를 기반으로 분할합니다.코드 청킹
프로그래밍 언어의 문법 구조(함수, 클래스, 블록)를 기준으로 분할합니다.지원 언어
LangChain은 다양한 프로그래밍 언어에 대한 전용 분할기를 제공합니다.| 언어 | Language 값 | 분할 기준 |
|---|---|---|
| Python | Language.PYTHON | 클래스, 함수, 데코레이터 |
| JavaScript | Language.JS | 함수, 클래스, 화살표 함수 |
| TypeScript | Language.TS | 인터페이스, 클래스, 함수 |
| Java | Language.JAVA | 클래스, 메서드, 어노테이션 |
| Go | Language.GO | 함수, 구조체, 인터페이스 |
| Rust | Language.RUST | fn, impl, struct |
Chonkie — 경량 청킹 라이브러리
Chonkie는 RAG 파이프라인을 위한 경량 청킹 전용 라이브러리입니다. 문자 수 대신 토큰 수 기반 분할을 기본으로 지원하여 LLM 컨텍스트 관리에 유리합니다.Chunker 종류
Chonkie는 5가지 청킹 전략을 통일된 API로 제공합니다.- TokenChunker
- SentenceChunker
- RecursiveChunker
- SemanticChunker
- SDPMChunker
토큰 수 기반 고정 크기 분할입니다. 가장 빠르고 단순한 방식으로, 토큰 예산이 엄격한 경우에 적합합니다.
| 파라미터 | 설명 | 기본값 |
|---|---|---|
tokenizer | 토크나이저 이름 또는 객체 | "gpt2" |
chunk_size | 청크당 최대 토큰 수 | 512 |
chunk_overlap | 연속 청크 간 겹침 토큰 수 | 128 |
Chunker 비교
| Chunker | 분할 기준 | 속도 | 품질 | 적합한 경우 |
|---|---|---|---|---|
| TokenChunker | 토큰 수 | 매우 빠름 | 보통 | 토큰 예산 엄격, 대량 처리 |
| SentenceChunker | 문장 경계 | 빠름 | 좋음 | 문장 완결성이 중요한 텍스트 |
| RecursiveChunker | 계층적 구분자 | 빠름 | 좋음 | 범용 (기본 추천) |
| SemanticChunker | 임베딩 유사도 | 느림 | 매우 좋음 | 의미적 일관성이 중요한 경우 |
| SDPMChunker | 이중 패스 유사도 | 매우 느림 | 최상 | 흩어진 관련 내용 병합 필요 시 |
LangChain 연동
Chonkie 청크를 LangChainDocument 객체로 변환하여 기존 RAG 파이프라인에 통합할 수 있습니다.

