세션 안에서 애써 가르친 것, 프로젝트 관례나 워크플로의 핵심 규칙 같은 걸 정성껏 설명했는데. 창을 닫고 새 세션을 열면 그게 전부 사라져 있습니다. 처음부터 다시 설명해야 하는 그 익숙한 답답함, Claude Code를 자주 쓰는 사람이라면 한 번쯤 겪어봤을 겁니다.

디지털 에이전시 Viget의 시니어 플랫폼 개발자 맥스 마이어스가 이 문제를 직접 풀어봤습니다. “recall”이라는 개인 도구를 만들어 6주간 운영한 후기인데, 세션이 끝날 때마다 뭘 배웠는지 기록해두고, 다음 세션이 열릴 때 그걸 다시 불러오는 구조입니다.
출처: Giving Claude Code A Persistent Memory – Viget
지식은 주는데, 기억하는 법은 안 가르쳤다
마이어스는 안드레이 카파시가 언급한 개념에서 아이디어를 얻었습니다. 카파시는 지금의 LLM이 배우는 경로를 신입사원의 교육 과정에 비유합니다. 사전학습은 입사 전 쌓아온 전공 지식이고, 파인튜닝은 회사가 신입에게 시키는 반복 훈련으로 몸에 익히는 업무 습관입니다. 그런데 정작 “지난주에 이 실수를 했으니 다음엔 이렇게 하자”처럼, 일하면서 스스로 적어두고 다음에 써먹는 메모장은 어디에도 없다는 게 카파시의 지적입니다. recall은 이 메모장 역할을 대신 만들어보려는 개인적인 시도입니다.
Claude Code가 세션마다 상태를 초기화하는 건 설계상 의도된 동작입니다. 짧은 작업에는 문제가 없죠. 하지만 몇 달에 걸쳐 맥락이 쌓이는 프로젝트에서는, 기억을 못 하는 뛰어난 동료와 일하는 느낌이 든다고 마이어스는 말합니다.
캡처, 증류, 검색, 제안이라는 네 단계
recall은 네 단계로 돌아갑니다. 첫 단계는 캡처. 세션이 끝나면 훅이 그 내용을 개인 저장소에 통째로 덤프합니다. LLM 호출 없이 순수 셸 스크립트로만 처리해서 비용이 들지 않습니다.
두 번째는 증류입니다. 매일 밤 배치 작업이 그날 쌓인 세션을 읽고 압축해서 지속 가능한 지식 노트로 만듭니다. 평균 27배 압축률이고, 비용을 낮추려고 상대적으로 저렴한 모델(sonnet-4-6)로 고정해뒀습니다.
세 번째는 검색입니다. 새 프로젝트 세션을 열면 훅이 관련 지식의 목차만 컨텍스트로 주입합니다. 전체 노트를 통째로 넣는 대신, 필요할 때 Claude가 개별 노트를 골라 읽는 방식이죠. 이 인덱스 방식 덕분에 저장소가 수백 개 노트로 불어나도 세션당 토큰 비용은 크게 늘지 않습니다.
마지막은 제안입니다. 증류 과정에서 반복되는 패턴이 보이면, 자동으로 뭔가를 만드는 대신 “이런 스킬을 추가하면 어떨까요”라는 제안만 수신함에 남겨둡니다. 채택 여부는 사람이 직접 결정합니다.
6주, 세션 80개, 노트 70개
마이어스는 6개 프로젝트에서 이 도구를 6주간 돌렸습니다. 그 사이 80개가 넘는 세션이 캡처됐고, 70개가 넘는 지식 노트로 증류됐습니다. 매일 밤 배치 실행 비용은 회당 0.85달러 정도, 한 달로 치면 20달러 안팎입니다. 그 기간 스킬 제안은 7건 나왔습니다.
그중 하나는 실제로 채택됐습니다. 여러 PR을 동시에 열어두고 작업하다 보면 기본 브랜치와 어긋나 리베이스가 필요해지는 상황이 반복된다는 걸 recall이 알아챘고, 이 작업을 자동으로 처리하는 스킬을 제안했습니다. 마이어스는 이 제안을 그대로 받아들여 실제 스킬로 만들었습니다.
거창한 시스템이 아니라 마크다운 폴더 하나
마이어스는 이 도구를 “에이전틱 운영체제” 같은 큰 그림으로 소개하지 않습니다. 서버도, 데이터베이스도 없습니다. Claude Code의 훅 두 개, bash와 jq, 그리고 마크다운 파일이 쌓이는 폴더 하나가 전부입니다. 깃으로 동기화되기 때문에 다른 컴퓨터로 옮기거나 팀원과 공유하기도 쉽습니다.
거창한 인프라 없이, 작업 중 자연스럽게 쌓이는 정보를 놓치지 않고 다음 세션에 이어지게 만든 것. 이게 이 도구가 6주 만에 실제로 쓸모를 증명한 이유로 보입니다.
참고자료:
- maxdmyers/recall – GitHub
- llm-wiki – Andrej Karpathy

답글 남기기