너무 오랜만에 Velog 글을 작성하는 것 같다. 거의 2개월 만에 작성하는 것 같은데, 바빠서 작성을 못한 것은 아니고, 뭔가 열정이 없어져서 미루다 보니 이렇게 된 것 같다.
그래도 최근에 개인 프로젝트를 하나 시작해서 해당 프로젝트에 대해서 글을 작성할 생각이다. 시작한 프로젝트는 HippoBox라는 이름의 프로젝트이다. 프로젝트 내용은 여러 AI 서비스에서 사용 가능한 지식 베이스 서비스를 구성하는 것이다.
프로젝트를 시작한 이유는 최신 개발 트렌드를 익히고, AI 서비스와 접목시킬 수 있는 프로젝트가 뭐가 있을지 고민해 보았을 때, 지식 베이스를 통합시켜 서비스를 제공한다는 것이 괜찮은 아이디어 같아서 진행하게 되었다. 그리고 Github의 유명 오픈소스들을 토대로 워크플로우를 구성할 생각이다. 이 과정에서 영어 실력도 좀 늘리고, 실무에서 진행하는 패턴들을 익혀서 적용할 생각이다.
일단 FastAPI를 기반으로 빠르게 MCP 서버를 제공하는 것이 목표이다 (사실 이미 백엔드 환경은 얼추 구현함...). FastAPI에서 MCP 서버를 구성하도록 도와주는 라이브러리를 찾아보니 대표적으로 FastMCP와 fastapi-mcp 두 개가 있었다. FastMCP는 간단하게 도구 기능을 FastAPI 객체에 주입하여 MCP 엔드포인트를 만들어주는 라이브러리이다. fastapi-mcp는 라우터 자체를 도구로 호출할 수 있도록 해주는 라이브러리이다. 나는 fastapi-mcp를 선택하였으며, 이유는 단순히 MCP를 통해 서비스를 호출하는 것이 아닌, 프론트 서비스도 같이 제공하기 위해서이다. 그러기 위해서 API와 MCP 호출을 통합시키는 것이 개발에 편할 것이라고 판단하였다.
프론트 서비스는 아직 스택을 정하진 않았다. Svelte와 React 중에 고민 중인데, 아마 React로 진행할 것 같다.
서비스 구조는 매우 간단하다. 단순하게 지식 베이스 저장소를 제공하는데, 일단 데이터베이스와 벡터 데이터베이스 두 개를 제공하여, 자신의 지식 베이스에서 임베딩 검색이 가능하도록 하는 것이 주된 목적이다.
따라서 사용자는 ChatGPT, Claude, Cursor 등 여러 가지 AI 플랫폼에서 자신의 지식을 관리할 수 있게 하는 것이 최종적인 프로젝트 목표이다. 일단 개발자 위주의 서비스 제공이지만, 추후에 해당 AI 서비스들이 확장되어서, 일반 사용자들도 여러 가지 AI 서비스들에서 자신의 저장된 지식을 제한 없이 사용할 수 있게 하는 것이 최종적인 목적이다.
앞으로 해당 프로젝트에 대해서 글을 작성할 생각이다. 현재는 일단 User와 Knowledge API는 구성이 완료되었고, MCP 호출 동작도 확인한 상태이다. 해당 내용은 다음 글에서 다룰 예정이다.