58,000개의 별 아래에서
58,000개의 별 아래에서
한동안 만들던 걸 접을까 진지하게 고민했다.
내가 붙들고 있던 건 AI에게 외장 기억을 주는 작은 도구였다. 그런데 어느 순간 고개를 들어보니, 그 카테고리가 폭발해 있었다. 세션 사이에 기억을 유지하는 기능이 Claude Code와 Codex에 아예 내장됐고, 같은 문제를 푸는 오픈소스 하나는 GitHub 별을 5만 8천 개 넘게 모았다. 로컬 노트를 AI가 읽게 하는 것조차 Obsidian이 공식 CLI를 내면서 흔한 물건이 됐다.
이런 지형에서 혼자 만든 도구를 계속 붙들고 있는 건, 솔직히 좀 우스워 보였다. "이거 아직 존재할 이유가 있나?" 이 질문에 정직하게 답하고 싶어서, 시장을 한번 제대로 훑어보기로 했다.
우산을 벗기기
가장 먼저 배운 건, "AI 메모리 도구"라는 우산을 쓰는 순간 묻힌다는 것이었다.
그 우산 아래에 들어가면 나는 별 5만 8천 개짜리 프로젝트의 열화판이 된다. 세션 간 기억, 시맨틱 검색, 지식 그래프, 컨텍스트 절약 — 이건 전부 commodity가 됐다. 남들이 다 하는 걸 나도 한다고 말하는 순간, 비교의 축이 별 개수가 되고, 나는 진다.
그래서 우산을 벗겨봤다. 다들 하는 걸 다 지우고 나면 무엇이 남는가. 남은 건 의외로 비어 있는 축 하나였다 — 변화의 이력을 부산물이 아니라 1급 시민으로 다루는 것.
시장의 거의 모든 도구는 노트를 덮어쓴다. 고치면 이전 상태는 사라지고, 이력이 필요하면 클라우드 스냅샷이나 git diff 같은 부산물로 따로 챙긴다. 이력은 데이터의 의미 구조가 아니라 백업일 뿐이다. 내 도구는 반대로 만들어져 있었다. 무엇이 바뀌었고 그게 뭘 의미하는지 — 그 delta 자체가 스키마였다. 여기에 "누가 무엇을 썼는가"의 감사 기록과, 인수인계를 프롬프트 관습이 아니라 도구의 문법으로 박아둔 것까지. 이 조합은, 적어도 그 시점의 시장에는 빈자리였다.
혼자 만든 게 초라해 보였는데, 정작 초라한 각도로 보고 있었을 뿐이었다.
남들이 내 쪽으로 오고 있었다
더 이상한 걸 발견했다. 가장 가까운 이웃들이 하나둘 내 방향으로 걸어오고 있었다.
어떤 그래프 기반 메모리 도구는 사실이 바뀌어도 지우지 않고 "무효화"만 하면서 출처 계보를 보존하는 방식을 밀고 있었다. 이력을 지우지 말자는 발상을 시장에 퍼뜨리는 중이었다. 그리고 한 논문은 "AI 코딩 시대에는 코드 diff만 남고 결정의 이유가 증발한다"는 문제를 지적하며, 커밋에 구조화된 결정 기록을 append-only로 박자고 제안했다. 내가 두 달째 실제로 쓰고 있던 [Change]/[Impact] 형식과 문법적으로 거의 같은 발상이었다.
기분이 묘했다. 경쟁자가 나를 따라잡는 게 아니라, 내가 조용히 하고 있던 게 논문 제안의 실증 사례가 되어 있었다. 남들이 "이력은 1급 시민이어야 한다"고 주장하기 시작한 흐름은, 위협이 아니라 검증이었다. 방향이 틀리지 않았다는 신호를, 경쟁자들이 대신 보내주고 있었다.
가장 어려운 건, 지원한다고 말하지 않는 것
여기까지 오니 유혹이 생겼다. 이왕 이렇게 된 거, 더 크게 말하고 싶어졌다.
지식을 다루는 격식 있는 형식들이 있다 — 분류 체계(taxonomy), 존재론(ontology), 지식 그래프(knowledge graph). 학계와 업계가 오래 다듬어온 무거운 이름들이다. 내 도구를 소개할 때 "이것들도 지원합니다"라고 한 줄 붙이면 훨씬 있어 보인다. 그렇게 쓰고 싶었다.
그런데 정직하게 들여다보니, 그건 거짓말에 가까웠다. 내 태그는 평면적이고, 부모 참조는 계보이지 "~는 ~이다"라는 분류가 아니다. 추론 엔진도, 공리도 없다. "존재론을 지원한다"는 말은 누가 한 번만 찔러도 터진다.
그래서 표현을 바꿔야 했다. "지원한다(support)"가 아니라 "그쪽으로 투영할 수 있다(projectable into)". 그리고 그 투영은 아래로 떨어지는 축소다. 내 기록을 분류 체계나 지식 그래프로 옮기면, 거기엔 시간과 숙고의 차원이 떨어져 나간다. 스냅샷이 된 순간 시간축은 복원할 수 없다.
이 방향을 뒤집으면 문장이 정확해진다. 나는 저 격식들의 재료를 대는 하청이 아니다. 오히려 저 격식들이 내 기록에서 시간을 제거한 축소본이다. 나는 시간을 품은 상류에 있다. 더 무거운 이름을 빌려 나를 키우는 게 아니라, 내가 무엇을 안 가졌는지를 정확히 말함으로써 내 자리가 선명해졌다.
과대주장을 스스로 깎아내는 건 불안한 일이다. 없는 걸 있다고 말하면 당장은 커 보이니까. 하지만 정확히 말한 자리는 아무도 밀어낼 수 없다.
붐비는 카테고리에서 내 자리를 찾는 일은, 결국 남을 이기는 게 아니었다. 내가 무엇을 가졌고 무엇을 안 가졌는지를 정직하게 말하는 법을 배우는 일이었다.
별 5만 8천 개는 여전히 저기 있다. 그 아래에서 나는 더 이상 열화판이 아니다. 다른 축에 서 있을 뿐이고, 그 축의 이름을 이제 나는 과장 없이 말할 수 있다.