35분
프레임워크 선택 가이드: 상황별 최적 도구
Microsoft GraphRAG & LlamaIndex
프레임워크 선택 가이드: 상황별 최적 도구
GraphRAG > Microsoft GraphRAG & LlamaIndex
학습 목표
MS GraphRAG: 빠른 PoC, Global Search, CLI 중심 LlamaIndex: Python 통합, 다양한 Extractor/Retriever neo4j-graphrag: Neo4j 공식, 프로덕션 최적화
프레임워크 선택 가이드
MS GraphRAG, LlamaIndex, neo4j-graphrag, 직접 구현... 어떤 것을 선택해야 할까요?
정답은 없습니다. 프로젝트 상황에 따라 최적 도구가 달라집니다. 이 가이드에서 의사결정 기준을 명확히 잡아봅시다.
왜 배우는가?
선택 기준 매트릭스
| 상황 | 추천 도구 | 이유 |
|---|---|---|
| 빠른 PoC | MS GraphRAG | CLI로 5분 만에 KG 구축 |
| Python 통합 | LlamaIndex | Python 네이티브 API |
| Neo4j 기반 프로덕션 | neo4j-graphrag | 공식 지원, 최적화 |
| 엔터프라이즈 커스텀 | LangChain 직접 구현 | 완전한 제어 |
| 글로벌 질문 중심 | MS GraphRAG | Community Summary |
| 정확한 관계 질의 | neo4j-graphrag | Cypher 직접 사용 |
| 다양한 검색 전략 | LlamaIndex | 4가지 Retriever |
핵심 개념
4대 프레임워크 상세 비교
1. Microsoft GraphRAG
장점:
- CLI로 빠른 시작 (5분 만에 KG 구축)
- 자동 KG 구축 (스키마 설계 불필요)
- Community Summary 기반 Global Search (유일)
- Map-Reduce 패턴으로 대규모 문서 처리
단점:
- 커스터마이징 제한 (설정 파일 기반)
- Python 통합 불편 (CLI 중심 설계)
- 대용량 시 LLM 비용 높음 (Community Summary 생성)
- 한국어 최적화 부족 (프롬프트 커스텀 필요)
- 실시간 KG 업데이트 어려움
비용 예시 (100페이지 문서 기준):
| 모델 | 인덱싱 비용 | 쿼리 비용/회 |
|---|---|---|
| gpt-4o-mini | $2~5 | $0.01~0.05 |
| gpt-4o | $20~50 | $0.05~0.20 |
적합한 경우:
- 탐색적 분석, PoC
- "전체 요약" 타입 질문이 중요
- 빠른 프로토타이핑
2. LlamaIndex Property Graph
장점:
- Python 네이티브 API
- 4가지 KG Extractor 선택/조합
- 4가지 Retriever 선택/조합
- 스키마 커스터마이징 (strict/flexible)
- 다양한 데이터 소스 지원
단점:
- Global Search 직접 지원 안 함
- 커뮤니티 탐지/요약 없음
- 학습 곡선 있음
- 자주 변경되는 API
적합한 경우:
- Python 프로젝트에 GraphRAG 통합
- 커스텀 스키마가 필요한 도메인
- 다양한 검색 전략 실험
- Neo4j와 코드 레벨 연동
3. neo4j-graphrag (Neo4j 공식)
장점:
- Neo4j 팀 직접 개발/유지보수
- Neo4j 벡터 인덱스 최적 활용
- VectorCypherRetriever로 구조+의미 결합
- SimpleKGPipeline으로 자동 KG 구축
- 프로덕션 안정성
단점:
- Neo4j에 종속 (다른 그래프 DB 미지원)
- 비교적 신규 라이브러리 (커뮤니티 작음)
- Global Search (Community) 미지원
- 문서/예제가 상대적으로 적음
적합한 경우:
- Neo4j 기반 프로덕션 시스템
- Cypher 쿼리 직접 활용
- 벡터 + 그래프 결합 검색
4. LangChain + Neo4j 직접 구현
장점:
- 완전한 제어
- 최적화 가능 (쿼리, 캐싱, 배치)
- 기존 LangChain 생태계 활용
- 검색 전략 자유 설계
단점:
- 개발 시간 많음 (2~4주)
- 유지보수 부담
- 모든 것 직접 구현 (추출, 검색, 응답 생성)
- 버그/엣지케이스 직접 처리
적합한 경우:
- 프로덕션 시스템 + 특수 요구사항
- 팀 역량 충분 (Python + Neo4j + LLM)
- 기존 LangChain 인프라 보유
의사결정 플로우차트
에디터 로딩 중...
커스텀 구현 vs 프레임워크: 언제 직접 만들까?
프레임워크를 사용해야 하는 경우
| 상황 | 추천 |
|---|---|
| 프로토타입 / PoC | 무조건 프레임워크 |
| 1~2명 소규모 팀 | 프레임워크 |
| 표준적인 GraphRAG 요구사항 | 프레임워크 |
| 빠른 시장 출시 필요 | 프레임워크 |
직접 구현해야 하는 경우
| 상황 | 이유 |
|---|---|
| 특수한 엔티티 추출 로직 | 프레임워크가 지원 안 함 |
| 복잡한 검색 파이프라인 | 세밀한 제어 필요 |
| 기존 시스템과 깊은 통합 | 프레임워크 제약 |
| 성능 최적화 필수 | 프레임워크 오버헤드 제거 |
| 팀이 5명+ & 충분한 시간 | 유지보수 인력 확보 |
하이브리드 접근 (실무 추천)
에디터 로딩 중...
프로덕션 배포 시 고려사항
1. 성능 최적화
에디터 로딩 중...
2. 비용 관리
| 항목 | 절약 방법 |
|---|---|
| LLM 호출 | 캐싱, 작은 모델 사용 (gpt-4o-mini) |
| 임베딩 | 로컬 모델 (sentence-transformers) |
| 인덱싱 | 증분 업데이트 (전체 재인덱싱 방지) |
| Neo4j | 커뮤니티 에디션 (무료) 또는 AuraDB Free |
3. 모니터링
에디터 로딩 중...
4. 보안
에디터 로딩 중...
핵심 포인트
- • MS GraphRAG: 빠른 PoC, Global Search, CLI 중심
- • LlamaIndex: Python 통합, 다양한 Extractor/Retriever
- • neo4j-graphrag: Neo4j 공식, 프로덕션 최적화
- • LangChain 직접 구현: 완전한 제어, 프로덕션 적합
- • 실무에서는 프레임워크 시작 → 필요한 부분만 커스텀 (하이브리드)
- • 프로덕션 고려: 성능 캐싱, 비용 관리, 모니터링, 보안