컨텍스트 비대화에 대한 나만의 해결책: 칸반 보드
My personal solution to context bloat: A Kanban board
핵심 요약
AI 개발 시 발생하는 컨텍스트 비대화 문제를 해결하기 위해 채팅 대신 칸반 보드를 공유 메모리로 활용하는 시스템을 구축함.
- 칸반 보드 활용 — 채팅창 대신 마크다운 파일 기반의 칸반 보드를 통해 작업 상태와 기록을 관리함.
- 에이전트 분업 — 플래너, 구현자, 평가자 에이전트가 보드를 통해 작업을 주고받으며 컨텍스트를 유지함.
- 컨텍스트 최적화 — 메인 오케스트레이터가 작업 내용에 직접 개입하지 않아 토큰 낭비와 컨텍스트 비대화를 방지함.
- 작업 추적성 — 모든 작업 단계와 피드백이 보드에 기록되어 채팅 종료 후에도 작업 맥락이 보존됨.
다들 안녕, 나 혼자 개발할 때 쓰는 방식인데 공유하면 좋을 것 같아서 가져와 봤어. 누군가한테는 도움이 됐으면 좋겠다 (뭐 홍보하려는 건 아님).
AI 보조 개발할 때 제일 짜증 나는 병목 구간이 바로 채팅창이야. 솔직히 채팅 방식이 작업하기에 최적은 아니거든. 왜냐면 채팅 세션 하나에 컨텍스트가 계속 쌓이다가 결국 UI 수정 하나 하려고 토큰 예산을 다 날려 먹게 되니까. 그래서 내가 칸반 보드를 활용하는 시스템을 하나 만들었어.
개념은 꽤 간단한데, 제대로 구현하느라 시간 엄청 잡아먹었네.
채팅창은 딱 하나만 띄워놓으면 돼. 얘가 보드를 읽고, 작업을 묶어서 하위 에이전트들한테 넘겨주는 방식이야. 난 보통 이런 애들을 써:
- 작업을 '정제'하는 플래너 에이전트
- 하위 구현 에이전트
- 평가 에이전트
이 에이전트들이 자기 활동이랑 결과, 피드백을 전부 보드에 기록하니까 채팅창 닫아도 기록이나 작업 흐름이 안 날아가서 좋아.
컨텍스트가 뚱뚱해질 일도 거의 없어. 메인 오케스트레이터(스킬을 실행하는 채팅창)는 작업 자체에는 관여를 안 하거든. 그래서 이론상으로는 컨텍스트가 쌓이지 않은 상태로 이런 루프를 수백 번 돌릴 수도 있어.
보드 자체는 그냥 레포지토리에 있는 마크다운 파일 폴더야. 이걸 칸반 형태로 렌더링해서 카드 옮기면서 쓰는 거지.
상태별로 Claude(혹은 네가 쓰는 모델)가 어떻게 움직이는지 정리해 봤어:
• New: 대충 떠오른 아이디어 던져놓는 곳.
• To refine: 아이디어는 채택됐는데 계획이 없을 때. Claude가 코드베이스를 적당히 읽어서 구체화하고, 작업 내용에 계획을 적고, 난이도 측정하고, 혼자 결정 못 하는 건 질문도 남긴 뒤에 Waiting으로 넘겨.
• Waiting: 내 차례야. 계획 읽어보고, 질문에 답해주고, 승인하거나 다시 돌려보내.
• Ready to start: 승인 완료, Claude가 구현 시작.
• In progress: 구현 에이전트들이 실제로 작업 중인 상태.
• Require input: Claude가 작업하다가 진짜 막히는 질문이 생겼을 때. 지금까지 한 거 커밋하고 질문을 작업 내용에 적어놔. 내가 답해주면 카드가 다시 Ready to start로 돌아가서 다음 에이전트가 바로 이어서 작업할 수 있어.
• Test: 빌드 완료, 테스트 대기 중.
• Merge: 내가 테스트 끝내고 배포 준비 완료. Claude가 커밋하고 브랜치 머지한 뒤에 카드를 Done으로 옮겨.
• Done: 그냥 아카이브용.
이런 식으로 에이전트랑 보드를 통해서만 소통하니까 채팅창에 컨텍스트가 쌓일 일이 없어. 작업 어디서 꼬여도 메모리는 그대로 남아있으니까 개꿀이지.
더 자세한 설명 필요하면 2편 써볼까 생각 중이야. 아니면 DM 줘, 시간 나면 이 시스템 매뉴얼이라도 뚝딱 만들어볼게.
TLDR; AI 에이전트들이 읽고 업데이트할 수 있는 커스텀 칸반 보드를 쓰는데, 덕분에 컨텍스트 뚱뚱해지는 문제를 완전히 해결했음.


