본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 03. 01:03

Khoj 리뷰 2026: 당신의 셀프 호스팅(Self-Hosted) AI 제2의 뇌

요약

Khoj는 Obsidian, Org-mode, PDF 등 개인 파일을 인덱싱하여 로컬에서 실행할 수 있는 오픈 소스 AI 어시스턴트입니다. 사용자의 자체 하드웨어에서 LLM을 구성하여 데이터 프라이버시를 보장하며 지식 베이스를 쿼리할 수 있습니다.

핵심 포인트

  • 개인 파일(Markdown, PDF, Org-mode 등) 인덱싱 지원
  • Docker Compose를 통한 간편한 셀프 호스팅 가능
  • 로컬 또는 클라우드 LLM 백엔드 선택 가능
  • AGPL-3.0 라이선스로 오픈 소스 기반 운영

이 기사는 원래 aifoss.dev에 게시되었습니다.

요약 (TL;DR): Khoj는 Obsidian vault, org-mode, PDF와 같은 개인 파일을 인덱싱(Indexing)하고 사용자의 자체 하드웨어에서 실행되는 유일한 진지한 오픈 소스 (Open-source) AI 어시스턴트입니다. Docker Compose를 통해 설정하는 데 약 30분이 소요됩니다. 답변의 품질은 구성하는 LLM (Large Language Model)에 따라 달라지지만, 중간 사양의 로컬 모델이라도 당신의 노트를 타인의 서버에 두는 것보다 낫습니다.

Khoj (셀프 호스팅)Notion AIMem.ai
최적의 용도Obsidian/org-mode 파워 유저이미 Notion을 사용하는 팀자동 정리를 원하는 개인 크리에이터
...

솔직한 견해: 수백 개의 노트가 담긴 Obsidian vault를 가지고 있고, 기기에 머무르는 AI로 이를 쿼리(Query)하고 싶다면, Khoj는 실행해 볼 가치가 있는 유일한 FOSS (Free and Open Source Software) 옵션입니다. Notion AI와 Mem.ai는 당신의 지식 베이스를 그들의 클라우드로 전송하며 로컬 파일 시스템에는 손을 대지 않습니다.

Khoj의 실체

Khoj는 대부분의 대안들이 생략하는 두 가지 기능을 수행하는 오픈 소스 개인 AI 어시스턴트입니다. 바로 당신의 파일을 인덱싱하는 것과, 당신만의 LLM을 가져올 수 있게 해주는 것입니다. 로컬 머신, 홈 랩(Home lab) 박스, 또는 저렴한 VPS에서 서버로 실행한 다음, 문서를 지정하고 LLM 백엔드(로컬 또는 클라우드)를 구성하면 실제 지식 베이스를 바탕으로 답변하는 채팅 인터페이스를 얻을 수 있습니다.

GitHub 저장소 (khoj-ai/khoj)는 2022년부터 활발하게 유지 관리되어 왔습니다. PyPI의 안정적인 릴리스(Stable release)는 2025년 7월에 게시된 v1.42.10입니다. v2.0 시리즈는 2025년 초부터 베타(Beta) 상태였으며 — beta.28은 2026년 5월 말에 푸시되었습니다 — 하지만 안정적인 PyPI 채널은 현재 1.42.x 시리즈를 유지하고 있습니다. 최신 기능을 원한다면 베타 이미지를 가져오고(Pull), 예측 가능한 것을 원한다면 안정적인 pip 패키지를 사용하십시오.

라이선스는 AGPL-3.0입니다. 개인용 또는 내부 팀용으로 사용하는 경우에는 문제가 되지 않습니다. 만약 Khoj를 기반으로 고객 대상 제품을 구축할 계획이라면, AGPL은 서비스를 네트워크를 통해 노출할 때 수정 사항을 반드시 오픈 소스로 공개해야 함을 의미합니다. 해당 경로를 선택하기 전에 법무 팀과 상의하십시오.

인덱싱 대상

Khoj는 pgvector 확장이 포함된 PostgreSQL에 벡터 임베딩 (Vector Embeddings)을 저장합니다. v1.42.10 기준 지원되는 소스 유형은 다음과 같습니다:

  • Markdown 파일 — Obsidian 볼트(Vault) 전체 또는 모든 .md 파일 폴더
  • Org-mode 파일 — 네이티브 Org 지원을 제공하는 몇 안 되는 도구 중 하나로, Emacs 사용자들에게 진정한 차별점입니다.
  • PDF — poppler를 통한 텍스트 추출
  • Word 문서.docx 파싱
  • 일반 텍스트.txt 파일
  • Notion 페이지 — Notion API 연동을 통해 지원 (워크스페이스에 구성된 통합 토큰 필요)
  • GitHub 저장소 — 저장소 내의 Markdown 및 코드 파일 인덱싱 가능
  • 웹 페이지 — URL을 수동으로 추가하거나, SearxNG 기반의 웹 검색을 통해 쿼리 시점에 가져오기

인덱싱은 증분(Incremental) 방식으로 이루어집니다. 첫 번째 동기화 시에는 모든 항목을 임베딩하며, 이후 동기화에서는 변경된 파일만 다시 임베딩합니다. 최신 사양의 컴퓨터에서 500개의 노트가 담긴 Obsidian 볼트를 클라우드 임베딩 모델로 처리할 경우, 초기 인덱싱은 3~8분 정도 소요됩니다.

설정: 약 30분 만에 완료하는 Docker Compose

Khoj를 셀프 호스팅(Self-hosting)한다는 것은 다섯 개의 컨테이너를 실행함을 의미합니다: 메인 서버, PostgreSQL + pgvector 데이터베이스, Terrarium Python 샌드박스 (코드 실행용), SearxNG 인스턴스 (웹 검색용), 그리고 선택 사항인 컴퓨터 제어 서비스입니다. 저장소에 있는 docker-compose.yml이 이 모든 것을 오케스트레이션(Orchestrate)합니다.

# compose 파일 다운로드
curl -o docker-compose.yml \
  https://raw.githubusercontent.com/khoj-ai/khoj/master/docker-compose.yml
...

Khoj 서버는 42110 포트에서 대기합니다. http://localhost:42110을 열고 설정한 관리자 자격 증명으로 로그인하세요. PostgreSQL 서비스는 pgvector/pgvector:pg15 이미지를 사용하며 헬스 체크 (health check) 기능이 포함되어 있어, 데이터베이스가 완전히 준비될 때까지 Khoj가 시작되지 않습니다. 이는 이전 버전에서 발생했던 연결 오류를 방지합니다.

프로젝트 문서에 따른 **하드웨어 요구 사항 (Hardware requirements)**은 다음과 같습니다: 클라우드 LLM API를 사용하는 경우 최소 4 GB RAM이 필요합니다. Ollama를 통한 로컬 모델 추론 (inference)의 경우, 8–16 GB RAM과 GPU를 준비해야 합니다. 30B급 모델로 쾌적한 로컬 추론을 수행하려면 16 GB GPU VRAM이 권장되는 최소 사양입니다. RTX 4090은 Qwen2.5-72B 양자화 (quantized) 모델을 무리 없이 처리하며, RTX 3090은 30B 범위를 충분히 커버합니다. GPU 하드웨어를 구매하고 싶지 않다면, RunPod을 통해 구매 비용의 아주 일부만으로 GPU 인스턴스를 생성하여 Khoj 서버를 실행할 수 있습니다.

Ollama를 통한 로컬 LLM 연결하기

노트를 클라우드 API로부터 완전히 격리하고 싶다면, Khoj는 Ollama와 깔끔하게 통합됩니다. Ollama가 동일한 호스트에서 실행 중이거나 네트워크를 통해 접근 가능한 경우, http://localhost:42110/server/admin/에 있는 Khoj 관리자 패널에서 다음과 같이 구성하세요:

  1. AI Models → LLM Model Config로 이동합니다.
  2. API base를 Ollama 인스턴스로 설정합니다: http://host.docker.internal:11434
  3. 모델 이름을 Ollama에서 다운로드(pull)한 이름과 일치하도록 설정합니다 — 예: qwen2.5:32b, llama3.1:8b, mistral:7b
  4. 저장한 후 이를 기본 채팅 모델 (default chat model)로 설정합니다.

임베딩 모델 (embedding model)은 별도의 설정입니다. Khoj는 기본적으로 OpenAI의 text-embedding-3-small을 사용합니다. 완전히 로컬로 전환하려면 Ollama를 통해 nomic-embed-text로 교체하세요. AI Models → Embedding Model Config에서 동일한 방식으로 구성한 다음, 전체 재색인 (reindex)을 실행하면 됩니다. 이 작업은 한 번만 수행하면 됩니다.

실질적인 참고 사항: 8B 로컬 모델을 사용할 경우, Khoj는 간단한 노트 검색 질문에는 잘 답변합니다. 멀티홉 추론 (Multi-hop reasoning) (예: "내 Kubernetes 노트의 아이디어와 데이터베이스 최적화 노트의 아이디어 사이의 연결 고리는 무엇인가?") 단계부터는 작은 모델들이 어려움을 겪기 시작합니다. 32B급 모델 정도가 되어야 대부분의 지식 작업에서 GPT-4o와의 격차를 느끼지 못하게 됩니다.

Obsidian 워크플로우

Khoj Obsidian 플러그인은 커뮤니티 플러그인 마켓플레이스에 있습니다. 이를 설치하고 활성화한 다음, 설정에서 http://localhost:42110을 가리키도록 지정하세요. 플러그인은 정기적인 일정에 따라 보관함 (vault)을 자동으로 동기화합니다. 즉시 재색인 (reindex)을 시작하려면 플러그인 설정에서 Force Sync를 누르세요.

동기화가 완료되면 Obsidian 내부에 채팅 패널이 나타납니다. "TCP 혼잡 제어(TCP congestion control)에 대해 무엇이라고 적었지?", "4분기 프로젝트에 관한 내 노트를 요약해줘"와 같이 자연어 질문을 던지면, Khoj가 의미론적으로 관련 있는 노트를 검색하여 이를 LLM의 컨텍스트 (context)로 전달하고, 원본 노트로 연결되는 인용 (citations)과 함께 답변을 반환합니다.

beta.25 릴리스에서는 배치 동기화 (batch sync) 중에 진행 상황 추적 기능이 추가되었는데, 이는 보관함이 수백 개의 노트를 넘어설 때 중요하게 작용합니다. 대규모 보관함 (1,000개 이상의 노트)은 첫 인덱싱 시 5~15분이 소요되며, 이후 동기화 시에는 더 짧게 걸립니다.

사람들을 놀라게 하는 한 가지는 채팅 컨텍스트 (chat context)가 세션 동안 유지된다는 점입니다. 후속 질문을 던지면 Khoj가 대화 흐름을 유지합니다. 이는 플러그인이 아닌 서버에서 처리되므로, 브라우저 인터페이스에서도 동일하게 작동합니다.

Emacs, 모바일 및 기타 클라이언트

org-mode 사용자들을 위해 Khoj는 Emacs 패키지를 제공합니다. 셀프 호스팅 서버에 인증하면, 에디터를 떠나지 않고도 M-x khoj-chat 또는 M-x khoj-search를 호출할 수 있습니다. org-roam을 주로 사용하거나 org 파일을 주요 지식 저장소로 사용하는 사람들에게 이는 브라우저가 필요 없는 직통 경로입니다.

사용자의 셀프 호스팅 Khoj와 연동되는 다른 클라이언트들은 다음과 같습니다:

  • 브라우저 (Browser)localhost:42110에서 접속 가능한 웹 인터페이스는 채팅 (chat), 검색 (search), 에이전트 (agents), 자동화 패널 (automations panel), 그리고 리서치 모드 (research mode)를 포함한 전체 기능 세트를 제공합니다.
  • 데스크톱 앱 (Desktop app) — macOS, Windows, Linux에서 사용할 수 있는 Electron 래퍼 (wrapper)로 제공되며, 다음 항목에 연결됩니다:

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0