앱을 만들기 전에, CLI랑 옵시디언으로 먼저 해봤다
흩어진 채팅이력 130개를 CLI에 다 부었다 — 하루 만에 가설을 검증한 방법
세컨드 브레인 시리즈 — EP2: 실험편
세컨드 브레인을 만들어야겠다고 생각했을 때, 나는 바로 앱부터 짜지 않았다.
앱을 만드는 데는 시간이 든다. 기획하고, 설계하고, 코딩하고 — 그걸 다 하고 나서 “아, 이게 생각했던 것과 다르네”가 되면 몇 주를 날리는 거다. 경험상 그런 일이 한 번 있었다. 그래서 이번에는 먼저 확인하기로 했다. “이게 진짜 되는 건지” 가장 싸게.
왜 CLI였나 — “토큰 태울 게 뭐 있나”
검색해보면 Andrej Karpathy가 비슷한 걸 제안한 게 나온다. 2026년 4월이었는데, LLM이 마크다운 폴더를 직접 관리하는 위키를 만들자는 아이디어였다. raw 폴더에 원본을 두고, wiki 폴더는 LLM이 소유한다. 이걸 제어하는 건 CLAUDE.md 같은 schema 파일 하나.
읽으면서 “이게 내가 찾던 거 아닌가” 싶었다. 그런데 정작 도구로 어느 걸 쓸지가 문제였다.
웹 기반 Claude는 컨텍스트 한도가 있다. 대화가 길어지거나 파일을 많이 붙이면 잘려나간다. 채팅이력 수백 개를 넣고 “다 읽어서 정리해줘”가 되질 않는다. 근데 CLI(Claude Code)는 달랐다. Max 플랜으로 구독하면 토큰이 사실상 무제한으로 쓸 수 있었다.
“토큰 태울 게 뭐 있나” 싶었다. 마음 놓고 다 붓기로 했다. 정리본은 옵시디언 볼트에 쌓으면 됐다. 나는 이미 옵시디언을 쓰고 있었고, 거기에 마크다운으로 쌓으면 나중에 Obsidian에서 그래프로도 볼 수 있었다.
채팅이력을 통째로 투입했다
그동안 쌓인 채팅이력을 export했다. Claude 앱 내보내기, ChatGPT 앱 내보내기, 그리고 수동 복사까지 — 방법이 다 달랐지만 어쨌든 다 텍스트로 뽑아서 카테고리별로 분류해 raw/notes/SH_채팅이력_추출/ 폴더에 넣었다. 130개 대화, 8개 카테고리였다.
그리고 CLI를 열어서 말했다. “안녕 위키야 ~”
그게 이 위키의 첫 세션이었다. 2026년 6월 3일.
“채팅이력은 어디에 넣을까?” 하고 물었더니 위키가 분류 원칙을 잡아줬다. 프로젝트 관련이면 프로젝트 폴더로, 아니면 별도 폴더로. 답이 나왔으니 바로 넣었다. “넣었음. 소화좀 시켜주셈.”
그 한 줄로 130개 대화를 던진 셈이었다.
뻥 뚫리는 순간
위키가 읽기 시작했다. 카테고리별로 트리아지 계획을 세우고, 신호 있는 것부터 페이지로 만들고, 기존 위키 페이지에 접합했다. 한 시간 넘게 돌아갔다.
그 과정에서 뭔가가 연결되기 시작했다.
trading_mvp에서 KIS 약관 때문에 막혔던 결정, 한새암 미술관을 기획하면서 내렸던 판단, 배포 방식 고르면서 고민했던 것들 — 이것들이 따로 놀던 대화들이었는데, 한 군데 모이니까 서로 연결되는 게 보였다.
세션 끝에 내가 한 말이 있다. “아주 오늘 첨 만들었지만 아주 훌륭해~ 그동안 따로 놀았던것들이 한번에 처리되는것같음.”
이게 검증이었다. “이 방향이 맞다”는 확신이 거기서 왔다.
진짜 가치가 뭔지 알게 됐다
그 세션이 끝날 때쯤, 더 중요한 걸 하나 깨달았다.
“일반적인건 ai도 다 알고 잘하니까 근데 나만의 특수성과 경험 이런 것들은 나만 하는거니까 이런걸 정리해주니까 이게 정말 좋네… 모든 ai가 와도 right now자나?”
이 말이 이 위키의 북극성이 됐다.
트랜잭션 격리 수준이나 Docker 네트워크 설정은 구글에 치면 바로 나온다. 어떤 AI한테 물어도 같은 답이 돌아온다. 이런 건 모아봤자 commodity다.
근데 “주식앱을 다 만들고 나서야 KIS 약관에 막혔다”는 내 삽질, “한새암은 판매 전에 신뢰가 먼저였다”는 내 결론, “집서버를 켜고 443이 안 뚫려 이틀 헤맸던 그 과정” — 이건 구글에 없다. 내가 직접 겪고 얻은 것들이라 아무리 좋은 AI가 와도 모른다. 정확히 내 경험이기 때문에.
그게 이 위키에 쌓일 진짜 자산이라는 걸 첫 세션에서 알았다.
한계는 두 가지였다
기분 좋게 끝냈지만, 한계가 눈에 밟혔다.
첫째, CLI는 PC에서만 된다. 폰에서 아이디어가 떠오를 때, 이동 중에 뭔가 정리하고 싶을 때 — 열 수가 없다. 세션이 끝나고 바로 모바일 Obsidian에 연결하려 했다. “git 볼트 어떻게 연동하지?” 거기서 또 막혔다. 모바일 obsidian-git 플러그인이 private repo에서 잘 안 됐다.
둘째, 채팅이력을 넣는 건 수동이다. Claude 앱에서 대화를 export해서 폴더에 옮기고, 그걸 CLI에 소화시키는 과정 — 자동이 아니다. 할 때마다 손이 간다.
검증은 됐다. 이게 되는 방향이라는 건 확인했다. 근데 일상으로 쓰려면 이 두 가지 입구가 열려야 했다.
그게 다음 편으로 넘어가는 이유다. 폰에서도 대화를 던질 수 있어야 했고, 던지면 자동으로 쌓여야 했다.
뭔가를 만들기 전에, 가진 것들로 제일 싸게 먼저 확인해봐라.
나는 CLI 하나에 가진 채팅이력을 다 부어서, “내 맥락이 연결되면 뻥 뚫린다”는 걸 하루 만에 확인했다. 앱부터 지었으면 몇 주를 썼을 가설을. 되는지 먼저, 잘 만드는 건 그다음이다.