내가 쓰는 메모장을 AI도 읽게 했다 (Ocean Brain)

사람이 보기 좋은 개인 위키는 AI에게도 꽤 좋은 맥락이 된다

내가 쓰는 메모장을 AI도 읽게 했다 (Ocean Brain)

Ocean Brain이라는 노트 앱을 만들고 있다. 이 글은 그 앱을 소개하려고 쓰는 글이다. 다만 기능을 쭉 나열하기보다는, 왜 만들었고 실제로 어떻게 쓰고 있는지부터 말해보고 싶다.

Ocean Brain은 사실 그냥 내가 쓰는 메모장에 가깝다. 거창하게 말하면 개인 위키이고, 편하게 말하면 내가 생각을 적어두는 공간이다. 회고도 쓰고, 개발하다가 떠오른 아이디어도 남기고, 나중에 글로 써보고 싶은 주제도 적어둔다.

처음부터 AI를 붙이려고 만든 것은 아니었다.

그냥 내가 계속 쓸 수 있는 노트가 필요했다. 메모는 쉽게 흩어진다. 급하게 떠오른 생각은 휴대폰 메모장에 적고, 개발하다가 떠오른 아이디어는 깃허브 이슈에 남기고, 정리된 문서는 노션이나 README에 쓰게 된다. 각각은 그 순간에는 자연스러운 선택이지만, 시간이 지나면 어디에 무엇을 적었는지 잘 기억나지 않는다.

그래서 생각을 한곳에 모으고 싶었다. 노션처럼 편하게 쓰고 싶었고, 옵시디언처럼 링크와 태그로 연결하고 싶었다. 다만 내 생각이 특정 서비스 안에만 머무는 것은 조금 불편했다. 나는 서비스에 갇히는 것을 별로 좋아하지 않는다. 내 데이터가 어디에 있고, 어떤 방식으로 저장되고, 어떻게 꺼낼 수 있는지 알고 있어야 마음이 편하다.

옵시디언은 꽤 좋은 대안이었다. 로컬 파일을 기반으로 하고, 링크와 태그로 생각을 연결하는 방식도 마음에 들었다. 하지만 여러 기기에서 같은 생각에 자연스럽게 접근하려면 동기화 설정이나 저장소 관리 같은 비용이 생긴다. 나는 생각을 정리하고 싶었지, 생각에 접근하기 위한 환경을 계속 관리하고 싶었던 것은 아니었다.

그래서 웹에서 쓸 수 있고, 내가 직접 관리할 수 있는 노트를 만들었다. 그게 Ocean Brain이다.

https://github.com/baealex/ocean-brain

그냥 계속 쓰는 노트

나는 Ocean Brain을 메모장처럼 쓰기도 하고, 개인 위키처럼 쓰기도 한다. 어떤 노트는 몇 줄짜리 생각이고, 어떤 노트는 꽤 정리된 가이드 문서다. 어떤 노트는 나중에 글로 발전할 수도 있고, 어떤 노트는 그냥 그때의 감정을 남긴 기록으로 끝날 수도 있다.

중요한 것은 한곳에 있다는 점이다.

나는 단어를 들으면 분명 그것과 관련하여 메모했다는 사실을 인지한다. 이전엔 어디에 메모했는지 고민해야 했지만, 이젠 오션 브레인에 단어 하나만 치면 노트를 찾아낼 수 있다. 오션 브레인이라는 이름도 그런 현상을 착안하여 작명했다. 겉에서 보기에 잔잔하지만 낚시줄만 던지면 그 안에 담겨있는 생각을 꺼낼 수 있는 공간.

Ocean Brain에서는 노트를 태그로 묶고, 링크로 연결한다. 회고는 회고대로 쌓이고, 프로젝트 문서는 프로젝트 문서대로 연결된다. 처음부터 잘 정리할 필요는 없다. 일단 남기고, 필요할 때 다시 꺼내고, 다른 노트와 연결하면 된다. 여기까지만 보면 그냥 내가 쓰기 편하게 만든 개인 위키에 가깝다. 그리고 사실 이것만으로도 꽤 좋았다.

이 방식은 제텔카스텐과도 조금 닮아 있다고 느낀다. 노트 하나하나가 따로 떨어져 있는 것이 아니라, 서로 연결되면서 다른 생각을 불러온다. 어떤 글감은 회고에서 나오고, 어떤 작업 기준은 실패 기록에서 나온다. 사람에게 좋은 노트는 단순히 저장되는 노트가 아니라, 다시 연결되고 다시 꺼내지는 노트에 가깝다.

그래서 MCP를 붙여봤다

처음에는 여기까지만 생각했다.

  • 내가 쓰기 편한 노트

  • 내가 다시 찾기 쉬운 메모장

  • 내 생각을 내가 통제할 수 있는 개인 위키

사실 예전에도 비슷한 시도를 한 적이 있다. Ocean Brain에 llama.cpp 같은 로컬 LLM을 붙여서 AI 기반으로 검색하거나, 내 노트를 바탕으로 마치 나처럼 생각하는 AI를 만들어보고 싶었다. 내 메모를 전부 읽고, 내가 했던 생각을 따라가고, 내가 할 법한 답을 해주는 무언가를 상상했던 것 같다.

하지만 금방 한계를 느꼈다.

일단 성능이 충분하지 않았다. 로컬 모델이 내 노트를 적당히 검색하고 요약하는 정도는 가능했지만, 내가 기대한 수준으로 맥락을 이해하거나 사고를 이어가는 것은 어려웠다. 검색 품질도 애매했고, 응답 속도나 운영 비용까지 생각하면 계속 쓰기 좋은 형태는 아니었다. 결국 “나처럼 생각하는 AI”를 만드는 것은 그때의 내 환경에서는 조금 무리였다.

그런데 요즘은 상황이 달라졌다. Codex나 Claude Code 같은 AI 에이전트를 실제 작업에 꽤 많이 쓰게 됐다. 이 에이전트들은 이미 코드도 읽고, 파일도 수정하고, 명령어도 실행한다. 그렇다면 굳이 Ocean Brain 안에 모든 AI 기능을 직접 넣을 필요가 없었다.

차라리 Ocean Brain은 내가 쓰기 좋은 위키로 두고, AI 에이전트가 필요할 때 이 위키를 읽을 수 있게 하면 되지 않을까?

이 생각에서 MCP를 붙이기 시작했다. MCP(Model Context Protocol)는 AI가 외부 도구나 데이터에 접근할 수 있게 해주는 연결 방식이다. 쉽게 말하면 AI가 Ocean Brain의 노트를 검색하고 읽고, 필요한 경우 새 노트를 만들거나 기존 노트를 수정할 수 있게 되는 통로다. 붙여보니 생각보다 좋았다.

처음에는 그냥 “AI가 내 노트를 읽을 수 있다” 정도로 생각했다. 그런데 실제로 써보니 장점은 그보다 더 컸다. 하나의 위키 안에 프로젝트 문서, 회고, 작업 기준, 아이디어, AI에게 준 피드백이 모여 있으니 관리가 훨씬 쉬웠다. 기준을 바꾸고 싶으면 그 문서를 수정하면 된다. 새로운 피드백이 생기면 노트로 남기면 된다.

무엇보다 사람이 보기 좋게 정리된 구조를 AI도 생각보다 잘 읽었다. 태그와 링크는 내가 생각을 찾기 위한 장치였지만, AI에게도 좋은 힌트가 됐다. 문서 제목은 내가 다시 보기 위한 이름이었지만, AI가 관련 노트를 찾는 데도 도움이 됐다. 회고나 프로젝트 문서는 내가 읽으려고 쓴 글이었지만, AI에게는 작업 맥락이 됐다. 이 지점이 꽤 재미있었다.

처음부터 AI를 위한 시스템을 만든 것이 아닌데, 사람이 쓰기 편하게 만든 위키가 AI에게도 쓸 만한 컨텍스트 저장소가 된 것이다.

README AGENT라는 첫 페이지

그렇게 쓰다 보니 AI가 작업을 시작할 때 가장 먼저 읽을 문서가 필요해졌다. AGENTS.mdCLAUDE.md 같은 파일처럼 말이다. 그래서 Ocean Brain 안에 README AGENT라는 노트를 두고 있다. 이름은 거창하지만, 그냥 “나와 일하기 전에 알아야 할 기본 규칙”에 가깝다.

여기에는 어떤 작업을 할 때 어떤 문서를 먼저 읽어야 하는지, 로컬 파일보다 Ocean Brain을 우선해야 한다는 원칙, 브레인스토밍이나 구현 계획, 코드 리뷰, 회고 같은 작업별 참조 문서가 정리되어 있다.

image.png
AI가 진행하는 작업에서 참조하는 단계별 가이드

중요한 것은 이 문서가 라우터 역할을 한다는 점이다. AI가 모든 노트를 항상 읽을 필요는 없다. 오히려 그러면 컨텍스트만 무거워진다. 지금 작업에 필요한 문서를 정확히 읽는 것이 중요하다. 또, 내가 AI에게 반복해서 준 피드백도 여기에 연결한다. 클로드 코드의 경우 시스템 내부적으로 메모리를 관리하지만 그러지 말라고 했다. Ocean Brain을 SSOT로 지정하고 모든 메모리와 피드백은 그곳으로 남기게 만들었다.

실제로 뭐가 좋아졌나

오션 브레인을 단 하나의 SSOT로 만들면서 좋아진 점은 맥락을 설명하기가 아주 쉬워졌다.

  • README AGENT 읽고 시작해.

  • 이 프로젝트 관련 노트 먼저 확인해.

  • 최근 회고 기준으로 정리해줘.

  • 블로그 글감 노트에서 이 주제 가져와서 초안 잡아줘.

이런 식으로 말할 수 있고, 이로인해 체감되는 장점은 이렇다.

  • 대화가 바뀌어도 문서는 남는다.

  • 데스크톱이든 랩톱이든 같은 기준을 읽게 할 수 있다.

  • 다른 에이전트를 써도 출발점을 맞출 수 있다.

  • 오래된 메모를 다시 꺼내 글이나 계획으로 발전시킬 수 있다.

  • 새로운 피드백이 생기면 노트로 남기고 다음 작업부터 반영할 수 있다.

AI가 단일 문서 하나만 읽는 것이 아니라, README AGENT에서 시작해 관련 노트로 이동하고, 연결된 기준을 함께 볼 수 있다는 점이 좋았다. 내가 생각을 연결해두려고 만든 구조가, AI에게도 과거 맥락과 관련 생각을 따라가는 길이 된 셈이다.

누가 쓰는지는 잘 모르겠다

처음에는 정말 내가 쓰려고 만든 도구였다. 그런데 어느 순간부터 나 말고도 누군가 쓰고 있는 것 같았다. Docker Hub 기준으로 이미지 pull 수가 10K를 넘었고, 내가 올린 다른 개인 프로젝트들보다 유독 높았다. 반대로 GitHub 스타가 많은 편은 아니라서, 누가 어디서 어떻게 쓰는지는 잘 모르겠다.

아마 어딘가에서 우연히 발견한 사람들이 조용히 받아가고 있는 것 같다. 그게 정확히 몇 명의 사용자라는 뜻은 아니지만, 적어도 나 혼자만 실행한 숫자는 아닐 것이다. 실제로 어느 날 GitHub에 이슈가 올라오면서, 나 말고도 누군가 이 도구를 쓰고 있다는 것을 분명히 자각하게 됐다.

그 뒤로는 설치와 실행 과정을 조금 더 신경 쓰게 됐다. 단순히 Docker 이미지를 올려두는 것에서 끝내지 않고, npx ocean-brain serve처럼 바로 실행할 수 있는 방법을 만들었다. Docker를 쓰는 경우에도 특정 버전을 명확히 선택할 수 있도록 버전 태그와 릴리스를 남기기 시작했다.

아직 거창한 안정화 정책이 있는 것은 아니다. 그래도 적어도 내가 무엇을 바꾸고 있는지, 사용자가 어떤 버전을 쓰고 있는지는 조금 더 명확하게 남기려고 한다. 이건 대단한 운영 철학이라기보다는, 내가 만든 메모장 위에 누군가의 메모가 올라가 있을지도 모른다는 감각에 가깝다.

그래도 아직 불편한 점은 있다

물론 이 구조가 완벽한 것은 아니다.

우선 문서 품질이 중요하다. AI가 읽을 수 있다고 해서 아무 노트나 읽히면 좋은 결과가 나오지는 않는다. 오래된 문서가 현재 기준과 맞지 않을 수 있고, 정리되지 않은 메모가 오히려 혼란을 줄 수도 있다.

두 번째로, 어떤 문서를 읽힐지 고르는 문제가 있다. 노트가 많아질수록 관련 문서를 잘 찾는 것이 중요해진다. 그래서 README AGENT 같은 안내 문서가 필요하지만, 이것도 계속 다듬어야 한다.

세 번째로, 셀프호스트는 자유를 주지만 책임도 준다. 서버를 운영해야 하고, 백업을 신경 써야 하고, 시스템이 망가지면 내가 고쳐야 한다. 시작하는건 최대한 쉽게 만들었지만 유지하는 것은 일이니까.

그리고 모두에게 맞는 도구도 아니다. 단순한 메모장만 필요하다면 과할 수 있다. 서버 운영이 싫다면 노션이나 옵시디언 쪽이 더 편할 수도 있다. 문서를 쌓고 연결하지 않는 사람에게는 AI 연동도 별 의미가 없을 것이다.

그래도 나는 이 비용이 싫지 않다. 내 생각이 담기는 공간이고, AI가 그 생각을 읽고 함께 작업하는 공간이라면 어느 정도의 통제 비용은 감수할 만하다고 생각한다.

요즘은 이렇게 쓰고 있다

Ocean Brain은 지금도 기본적으로 내가 쓰는 노트다. 테이블 형태로 내가 할 일들을 확인하고, 그래프로 연결된 생각을 보고, 캘린더로 날짜별 생각을 보고, 리마인더로 일정도 관리한다. Ocean Brain은 여전히 사람을 위한 도구다. 그냥 내가 계속 쓰고 싶은 노트를 만들고 싶다.

그런데 사람이 보기 좋게 정리한 문서가 AI에게도 좋은 맥락이 된다는 것을 알게 됐다.

이 경험을 통해 느낀 것은, AI에게 좋은 문서는 AI 전용으로 만든 문서가 아니라 사람이 계속 읽고 고칠 수 있는 문서라는 점이다. AI만을 위해 따로 만든 메모리는 쉽게 방치될 수 있지만, 내가 실제로 쓰는 문서는 계속 수정되고 최신 상태에 가까워진다. 그래서 나는 AI를 위한 지식 저장소를 따로 만들기보다, 내가 먼저 읽고 관리할 수 있는 문서를 만들고 그 문서를 AI도 읽게 하는 쪽이 더 오래 간다고 생각한다.

Ocean Brain은 그 실험을 위해 만든 거창한 시스템이라기보다, 내가 매일 쓰는 메모장이 AI에게도 열리기 시작한 사례에 가깝다.