Skip to content
게으른 엔지니어의 기술 블로그
Go back

Obsidian에 LLM Wiki 만들기 1편 — 이미 있는 플러그인 10개를 두고 왜 또 만들었나

이 글은 Obsidian에 LLM Wiki 만들기 시리즈의 1편이다.

시작은 이랬다.

Obsidian의 플러그인 만드는 방법은? Gemini API를 써서 채팅하는 그런 plugin을 만들고 싶다

플러그인을 만들어본 적도, 어디서부터 시작해야 하는지도 몰랐다. 그런데 왜 하필 새로 만들기로 했을까 — Obsidian 커뮤니티엔 이미 AI 채팅 플러그인이 여럿 있는데.

왜 CLI가 아니라 API 직접 호출인가

개발 초반에 공교롭게도 구글이 Gemini CLI를 종료하고 Go로 새로 짠 Antigravity CLI(명령어 agy)로 갈아타는 발표를 했다. 터미널에서 gemini 명령어를 쓰던 사람들은 다들 마이그레이션을 해야 하는 상황이었다. (이 CLI 단종 얘기는 나중에 쓴 다른 글에도 잠깐 나온다 — 그때는 헷갈리는 대상으로만 등장했는데, 사실 이 플러그인을 만들 때 이미 한 번 마주쳤던 이슈였다.)

다행히 이 플러그인은 그 영향권 밖에 있었다. 구글 공식 CLI 프로그램을 거치지 않고 https://generativelanguage.googleapis.com/... 엔드포인트로 API 요청을 직접 쏘는 방식이었기 때문이다. CLI가 없어지든 이름이 바뀌든, gemini-2.5-flash/gemini-2.5-pro 모델 자체와 API 엔드포인트는 그대로 살아있으니 상관없었다. 이때 “CLI 도구 이름은 계속 바뀌어도(Bard → Gemini → Duet AI → Antigravity), API로 부르는 모델 브랜드명은 상대적으로 안정적이다”라는 감을 잡았다. 이게 나중에 플러그인 이름을 정할 때도 영향을 줬다.

이미 있는 10개와 비교해보기

본격적으로 뭘 더 만들지 정하기 전에, 비슷한 역할을 하는 기존 플러그인 10개를 쭉 비교해봤다.

플러그인강점약점
Copilot거의 모든 API 지원, 기능 풍부무겁고 초기 설정 진입장벽 높음
Text Generator강력한 템플릿, 워크플로우 자동화채팅보다는 문서 생성 중심
Smart Connections노트 전체를 벡터 임베딩해서 기억초기 인덱싱 오래 걸림, 토큰 급증 위험
BMO Chatbot사이드바 채팅 UX가 깔끔, 페르소나 커스텀 쉬움외부 연동/고도화 기능 부족
Obsidian Ava글쓰기 편집 보조(재작성/톤 변경) 강함연속 대화 컨텍스트 유지 약함
Khoj로컬 파일/GitHub 등 다양한 소스 결합별도 서버/계정 필요, 구조 복잡
AI Research Assistant긴 문서 분석, 학술 리포트에 강함가벼운 메모 정리엔 UI가 무거움
Companion인라인 자동완성(Copilot 스타일)독립적인 채팅방 기능 자체가 없음
Canvas Conversation캔버스 마인드맵과 결합, 시각적 확장빠른 타이핑 대화엔 동선 복잡
Simple AI Chat초경량, 에러 적음확장성 거의 없음

훑어보니 내가 원하는 건 이 중 어느 하나도 정확히 채워주지 않았다. BMO Chatbot의 깔끔한 채팅 UX와 페르소나 커스텀, Simple AI Chat의 가벼움은 마음에 들었지만, 둘 다 확장성(노트 연동, 모델 실시간 전환 같은)이 부족했다. 반대로 Copilot이나 Smart Connections처럼 기능이 많은 쪽은 그만큼 무겁고 설정이 복잡했다.

그래서 잡은 차별화 포인트

이름은 왜 “Gemini Butler”가 됐나

기능 얼개가 어느 정도 잡히고 나서 이름을 정할 차례였다. 후보는 Gemini Chat Companion, Gemini Knowledge Assistant, Gemini Core Chat, 그리고 Gemini Butler였다.

Gemini를 꼭 넣기로 한 이유는 단순했다 — Obsidian 유저가 플러그인 목록에서 이름만 보고 “아, 구글 AI 스튜디오 API 키 쓰는 플러그인이구나”를 1초 만에 알아챌 수 있어야 한다는 것. Antigravity처럼 최신이지만 낯선 이름은 오히려 정체성을 흐린다고 판단했다.

Butler(집사)가 붙은 건, 이미 설정 화면에서 AI 응답 페르소나 이름을 “집사”로 지어뒀던 게 그대로 플러그인 이름으로 넘어온 거였다. 그래서 지금 저장소 이름도 obsidian-gemini-butler로 남아있다. 다만 이건 그때 1차로 붙인 이름이라, 최종 이름은 아직 확정 전이다.

이렇게 방향과 이름을 정하고 나서, 진짜 재밌는 설계 고민들이 시작됐다. 다음 편은 아주 당연해 보이지만 실전에서 제대로 걸려 넘어졌던 문제 — LLM은 시계가 없다는 것부터다.


Share this post:

Previous Part
Obsidian에 LLM Wiki 만들기 — 시리즈 소개
Next Part
Obsidian에 LLM Wiki 만들기 2편 — 자정이 지나도 날짜가 안 바뀌던 버그