클로드 코드 세션 및 프로젝트 관리, 그리고 옵시디언과의 연동

🎬 클로드 코드로 워크플로우 구축해보기

아직 맥 미니가 도착하지 않았다는 핑계 + 클로드 코드와 옵시디언이 익숙하지 않기 때문에 이번주에는 클로드 코드로 업무 자동화를 시도해봤습니다.

일단 지피터스 사례게시글이나 다른 사람 깃헙을 참고해서 여러가지를 시도해봤습니다.

  • 녹음파일을 텔레그램에 전송하면 회의록을 자동으로 만들어주기

  • 깃헙을 이용해서 동일한 시간에 요약된 뉴스 받아보기 (구요한님 GitHub Actions 레포)

이런 시도들을 하면서 자연스럽게 Claude Code 세션이 쌓이기 시작했는데... 그래서 이번에는 세션 관리 자체를 자동화해본 이야기를 공유합니다.


📝 한줄 요약

Mac 전용 세션 뷰어 CmdTrace를 Windows로 포팅하고, 프로젝트 관리 + 옵시디언 양방향 연동까지 4일 만에 구현한 이야기입니다.

바쁘시면 이것만 읽어도 돼요:

  • Mac 전용 CmdTrace를 Claude Code로 Windows 앱으로 개조

  • 세션이 쌓이면서 프로젝트별 분류가 필요해져 칸반 보드 + 자동 매칭 기능 추가

  • 옵시디언에서 프로젝트 관리를 하고 있어서, CmdTrace ↔ 옵시디언 양방향 연동을 구현

  • 딥링크 연결이 계속 안 돼서 디버깅 마라톤을 뛰었지만, 결국 해결

  • 핵심 교훈: 남의 GitHub 코드를 가져다 개조하면서 삽질하는 과정에서 많이 배운다

🎯 이런 분들께 도움돼요

  • Claude Code를 쓰면서 세션이 쌓여가는데 관리가 안 되는 분

  • 기존에 있는 앱을 가져다 자기 환경에 맞게 고쳐보고 싶은 분

  • 옵시디언으로 프로젝트를 관리하면서, 다른 도구와 연결해보고 싶은 분

😫 문제 상황 (Before)

Claude Code로 작업을 하다 보면 세션이 계속 쌓입니다. 10개, 20개, 50개... 어느 순간부터 "이 세션에서 뭘 했더라?"를 찾는 데만 시간이 걸리기 시작했어요.

그러던 중 스터디장 구요한님이 만든 CmdTrace라는 앱을 알게 됐습니다. AI CLI 세션을 깔끔하게 보여주는 뷰어인데, 딱 제가 필요하던 거였어요. 근데 문제가 하나 있었습니다.

Mac 전용이었습니다.

Windows 사용자인 저는 쓸 수가 없었어요. 부러움 반, 아쉬움 반으로 지켜보다가 — "그러면 내가 직접 Windows 버전을 만들어보자"고 결심했습니다.

🛠️ 사용한 도구

  • AI 코딩 도구: Claude Code

  • 모델: Claude Sonnet 4, Claude Opus 4

  • 원본 프로젝트: CmdTrace (구요한님 GitHub)


🔧 작업 과정

Day 1 — Mac 앱을 Windows로 통째로 뜯어고치기

처음에는 단순히 "돌아가게만 하자"는 생각이었습니다. 원본 CmdTrace는 macOS의 SwiftUI로 만들어져 있었는데, 이걸 Windows에서 돌리려면 완전히 다른 기술로 다시 만들어야 했어요.

macOS 전용인 CmdTrace를 Windows에서도 쓸 수 있게 포팅해줘

Claude Code가 원본 코드를 분석하고, Electron + React + TypeScript 조합으로 전체를 재구현했습니다. SwiftUI 컴포넌트 하나하나를 React 컴포넌트로 대응시켜가면서요.

하루 만에 기본적인 세션 목록 보기, 세션 상세 보기, 메시지 뷰가 돌아가기 시작했습니다. "진짜 되네?" 하는 순간이었어요.


Day 2 — 디자인 개선 + 프로젝트 관리 기능

기본 기능이 돌아가니까 욕심이 생겼습니다. 일단 디자인이 좀 밋밋해서 개선을 요청했고, 세션 삭제 기능도 추가했어요.

그러다 진짜 필요성을 느낀 게 프로젝트별 세션 분류였습니다. 세션이 계속 늘어나는데, "이게 어떤 프로젝트 작업이었지?"를 한눈에 보고 싶었거든요.

내가 원하는건 해당 프로젝트가 뭐하는지 아는게 중요하다고. 해당 프로젝트가 뭔지 요약해서 반영해주는건 불가능해? 그리고 해당 프로젝트가 어떤 단계인지 내가 정할 수 있게 칸반 형태로 만들어주는건?

여기서 재미있었던 건, Claude Code가 "세션을 프로젝트에 어떻게 연결할까요?"라고 물어봤을 때입니다. 선택지 중에 "폴더 = 프로젝트 자동 매칭"이 있었는데, 이게 정답이었어요. 같은 폴더에서 작업한 세션은 자동으로 같은 프로젝트로 묶이니까, 일일이 등록할 필요가 없어진 거죠.

항목 목록을 보여주는 컴퓨터 화면의 스크린샷


Day 3 — 옵시디언이랑 연결하자

저는 평소 옵시디언으로 프로젝트를 관리하고 있었습니다. 그런데 CmdTrace에도 프로젝트 관리가 생기면서 "이거 역할이 겹치는 거 아니야?"라는 고민이 생겼어요.

지금 cmdtrace 대쉬보드하고 옵시디언의 프로젝트 파일하고 같이 연동해서 의미있게 쓰려면 어떻게 체계를 정리해야될까? 뭔가 기능적으로 중복이 되는듯하면서도 아닌거 같은게 애매해서 말이야.
옵시디언에 다 안붙이고 각각 하는것의 의미가 있어야될거 같아. 예를 들면 옵시디언에는 자세히 프로젝트 정리를 해서 나중 프로젝트 할 때 참고를 한다던가, cmdtrace는 세션을 전반적으로 다 보는 용도라던지

Claude Code와 함께 역할을 정리했습니다:

  • CmdTrace = 세션 뷰어. "지금 뭐 하고 있는지" 보는 현황판

  • 옵시디언 = 지식 허브. "나중에 참고할 교훈과 회고"를 쌓는 곳

역할이 명확해지니까 연동 방향도 자연스럽게 나왔어요:

  • CmdTrace에서 보라색 "Obsidian" 버튼을 누르면 → 옵시디언에서 해당 프로젝트 노트가 열린다

  • 옵시디언 프로젝트 노트에서 "세션 현황판 열기" 링크를 누르면 → CmdTrace가 열리면서 해당 프로젝트로 바로 이동한다

양방향으로 왔다 갔다 할 수 있는 구조를 만든 거예요.

Windows ae의 스크린샷 - ms XP

한국어로 된 프로젝트 노트 스크린샷
한국에서 배운 교훈 목록


Day 3~4 — 딥링크 디버깅 마라톤 (가장 힘들었던 순간)

옵시디언에서 CmdTrace로 넘어가는 딥링크(cmdtrace://project/...)를 만드는 건 쉬울 줄 알았습니다. 그런데 이게 정말 안 됐어요.

첫 번째 시도: 기본 방식으로 등록 → "모듈을 찾을 수 없습니다" 에러. Electron이 URL을 파일 경로로 착각하는 거였습니다.

두 번째 시도: 구분자를 넣어봄 → 여전히 같은 에러.

세 번째 시도: 배치 파일 래퍼 방식으로 전환 → 에러는 사라졌는데 빈 화면이 뜸.

네 번째 시도: 빈 화면 원인 수정 → 한 번은 됨. 껐다가 다시 하면 또 에러.

또 안된다. 이거 근본적인 문제 원인 분석이 필요한거 같아.

결국 근본 원인을 찾았습니다. Electron의 프로토콜 등록 함수가 앱을 실행할 때마다 레지스트리를 잘못된 값으로 덮어쓰고 있었던 겁니다. 한 번 성공한 건 수동으로 등록한 값이 아직 살아있어서였고, 앱을 다시 열면 자동으로 덮어써서 망가졌던 거예요.

해결책: 그 자동 등록 함수를 완전히 제거하고, URL을 커맨드라인 대신 환경변수로 전달하는 방식으로 바꿨습니다.

이 디버깅 과정이 제일 힘들었지만, 동시에 가장 많이 배운 순간이기도 했어요. "에러 안 날 때까지 수정 루프 돌려줘"라고 하면 Claude Code가 끈질기게 원인을 파고들어주더라고요.


✅ 결과 (After)

Before vs After

항목

Before

After

세션 관리

JSONL 파일 수십 개를 직접 탐색

프로젝트별 칸반 보드 + 자동 분류

프로젝트 맥락

"이 세션 뭐였더라?" 매번 검색

CmdTrace ↔ 옵시디언 양방향 이동

작업 교훈

머릿속에만 존재

Lessons Learned 테이블에 자동 누적

플랫폼

Mac 전용 → 못 씀

Windows에서 사용 가능

결과물

4일간의 작업으로 완성된 기능들:

  • 세션 뷰어: 검색, 소프트 삭제, 내보내기

  • 프로젝트 대시보드: 칸반 보드, 키워드 요약, 타임라인

  • 옵시디언 연동: 양방향 딥링크, 프로젝트 노트 자동 동기화

  • 대시보드: 30일 활동 차트, 프로젝트 분포

지금은 옵시디언에서 프로젝트 노트를 보다가 "이 세션 다시 보고 싶다" 하면 링크 하나로 바로 CmdTrace가 열리고, 반대로 CmdTrace에서 "이 프로젝트 교훈 기록해야지" 하면 옵시디언 버튼 한 번으로 노트가 열립니다. 이 양방향 이동이 생각보다 편해요.

그리고 작업하면서 만난 문제들과 해결 과정이 자동으로 Lessons Learned 테이블에 쌓이는데, 나중에 비슷한 문제를 만났을 때 클로드 코드가 이걸 참고할 수 있을 거라 기대하고 있습니다.

💬 이 과정에서 배운 AI 활용 팁

효과적이었던 것

  1. 남의 GitHub 코드를 가져다 개조해보자 — 처음부터 만드는 것보다 이미 있는 앱을 포팅하거나 개조하는 게 훨씬 빠르고, 삽질하는 과정에서 정말 많이 배웁니다. 프로그램 자체의 가치보다 그 과정에서 얻는 학습이 더 큽니다.

  2. 역할 분리를 먼저 정하라 — CmdTrace와 옵시디언의 기능이 겹쳐 보였는데, "각각 뭘 담당하는지"를 먼저 정하니까 연동 설계가 자연스럽게 나왔습니다.

  3. 기획 질문에 성실히 답하라 — Claude Code가 "어떤 방식이 좋겠어요?"라고 물어볼 때 대충 답하지 말고 생각해서 고르면, 결과물 퀄리티가 확 달라집니다.

이렇게 하면 안 돼요

  1. 한 번에 너무 많은 걸 요청하지 마세요 — "포팅해줘 + 디자인 바꿔줘 + 기능 추가해줘"보다는 단계별로 나눠서 진행하는 게 훨씬 안정적입니다.

  2. 에러를 무시하고 넘어가지 마세요 — 딥링크 문제도 "일단 되니까 넘어가자"고 했으면 계속 재발했을 거예요. 근본 원인을 찾아야 합니다.

🌍 다른 업무에 적용한다면?

  • 옵시디언 연동 패턴 재활용 — REST API + 딥링크 방식은 CmdTrace뿐 아니라 다른 데스크톱 앱에도 그대로 적용 가능합니다

  • 프로젝트 관리 자동화 — obsidian-project-sync 같은 스킬을 만들어두면, Claude Code로 작업할 때마다 프로젝트 노트가 자동 업데이트되는 워크플로우를 만들 수 있어요

Q. 궁금한 사항

다른 분들은 클로드 코드 세션이나 프로젝트 관리를 어떻게 하고 계신가요? 좋은 방법을 쓰고 계신분이 있다면 공유해주시면 감사하겠습니다!

2개의 답글

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요