Claude Code 세션 기록이 저장되는 위치
Anthropic의 세션 문서에서는 단위를 다음과 같이 정의합니다. "세션은 프로젝트 디렉토리에 연결되어 저장된 대화입니다." 세션은 작업하는 동안 지속적으로 기록됩니다. "작업하는 동안 세션이 로컬 트랜스크립트 파일에 지속적으로 저장되므로, 종료하거나 /clear를 실행한 후에도 다시 돌아갈 수 있습니다."
이 파일들은 일반 JSONL 형식입니다. "기본적으로 Claude Code는 트랜스크립트를 ~/.claude/projects/<project>/<session-id>.jsonl에 JSONL로 저장하며, 여기서 <project>는 영숫자가 아닌 문자가 -로 대체된 작업 디렉토리 경로입니다." 이 형식은 사용자가 직접 편집하도록 설계되지 않았습니다. "엔트리 형식은 Claude Code 내부용이며 버전 간에 변경되므로, 이 파일들을 직접 파싱하는 스크립트는 릴리스 시 작동하지 않을 수 있습니다."
세 가지 설정이 저장 위치와 보존 기간을 변경합니다. CLAUDE_CONFIG_DIR은 저장소를 ~/.claude 외부로 이동합니다. cleanupPeriodDays는 트랜스크립트 보존 기간을 변경합니다. 일회성 실행의 경우, claude -p와 함께 --no-session-persistence를 사용하면 트랜스크립트가 아예 기록되지 않습니다.
세션이 사라진 것처럼 보이는 이유
세션이 유실되었다고 가정하기 전에 다음 사항들을 확인해 보세요. 마지막 항목만 실제로 기록이 완전히 삭제된 경우에 해당합니다.
선택기가 현재 작업 트리만 표시함
세션 선택기는 처음에 좁은 범위만 보여줍니다. 기본적으로 "백그라운드 세션을 포함하여 현재 작업 트리의 세션"과 "다른 곳에서 시작되었지만 /add-dir로 현재 디렉토리를 추가한 세션"을 표시합니다. 공식 문서에서는 범위를 넓히는 키를 다음과 같이 설명합니다. "Ctrl+W를 사용하여 저장소의 모든 작업 트리로 확장하거나, Ctrl+A를 사용하여 이 컴퓨터의 모든 프로젝트로 확장할 수 있습니다."
다른 폴더나 동일한 저장소의 다른 작업 트리에서 세션을 시작한 경우, 파일은 디스크에 존재하지만 기본 뷰에는 표시되지 않습니다. claude --continue는 범위가 더 좁아서 "현재 디렉토리에서 가장 최근 세션을 다시 엽니다."
일부 세션 유형은 선택기에 절대 나타나지 않음
세 가지 유형의 세션은 의도적으로 제외됩니다. "Claude Code는 claude -p 또는 Agent SDK로 생성된 세션을 세션 선택기 및 claude --continue에서 제외합니다." 또한 "첫 번째 프롬프트가 /loop 명령이었던 세션은 선택기에 표시되지 않으며, claude --continue도 이를 건너뜁니다." 하지만 ID를 통해 접근할 수 있습니다. "세션 ID를 claude --resume <session-id>에 전달하여 세션을 재개할 수 있습니다."
백그라운드 세션이 여전히 실행 중임
가장 최근 대화가 백그라운드에서 실행 중인 경우, claude --continue는 이를 열지 않습니다. 대신 "Your most recent conversation is running in the background 메시지와 해당 세션 ID를 출력하며 종료됩니다." 이 경우 claude agents에서 해당 세션에 연결하세요.
다른 앱의 목록을 보고 있음
CLI가 Claude Code의 유일한 인터페이스는 아닙니다. 세션 페이지에 따르면 "데스크톱 앱, claude.ai/code, VS Code 익스텐션은 각각 자체 세션 목록을 유지합니다." VS Code 문서에서는 CLI와의 관계를 다음과 같이 설명합니다. "익스텐션과 CLI는 동일한 대화 기록을 공유합니다. CLI에서 익스텐션 대화를 이어가려면 터미널에서 claude --resume을 실행하세요."
두 설명이 반드시 모순되는 것은 아닙니다. 각 앱은 자체 목록을 가지고 있으며, VS Code 익스텐션의 대화는 CLI에서도 접근할 수 있습니다. 누락된 기록이 Claude Code가 아닌 Claude 앱의 채팅인 경우, 누락된 Claude 채팅 기록 찾기 가이드에서 다룹니다. 클라우드 세션은 또 다릅니다. 이 세션들은 claude.ai/code에 나열되며, 웹 문서에서는 "--resume은 이 컴퓨터의 로컬 기록에서 대화를 다시 열며 클라우드 세션은 나열하지 않습니다"라고 명시하고 있습니다.
세션이 이동됨
"/cd로 세션을 이동하면 새 디렉토리의 프로젝트 저장소로 재배치되므로, 이후에는 해당 디렉토리의 선택기에 표시됩니다." 세션 도중에 디렉토리를 변경했다면 새 디렉토리 아래를 확인해 보세요.
세션 보존 기간 만료
이 경우는 실제로 기록이 사라진 유일한 케이스입니다. Claude Code는 오래된 트랜스크립트를 자동으로 삭제합니다. "Claude Code는 보존 기간을 안전하게 확인할 수 있는 한, 아래 경로의 파일이 cleanupPeriodDays보다 오래되면 삭제합니다. 기본값은 30일이며 최소값은 1일입니다." 서브에이전트(subagent) 트랜스크립트는 상위 세션과 함께 삭제됩니다.
두 가지 데이터 유형은 다른 규칙을 따릅니다. 자동 메모(auto memory)는 유지됩니다. "정리 작업(sweep)은 프로젝트의 자동 메모 디렉토리에 있는 메모 파일을 삭제하지 않습니다." 또한 Claude Desktop 또는 Cowork에서 시작했거나 마지막으로 이어간 세션은 Claude Code v2.1.248 이상에서 desktopSessionCleanupPeriodDays를 설정하지 않는 한 "기간 제한 없이" 유지됩니다.
사람들이 가장 먼저 시도하는 것들
claude --continue를 실행하고 그것이 전부라고 가정하기. 이는 현재 디렉토리의 가장 최근 세션만 엽니다.
범위를 넓히지 않고 선택기에서 검색하기. 기본 뷰는 현재 작업 트리입니다. Ctrl+A를 누르면 모든 프로젝트가 표시됩니다.
선택기에서 claude -p 실행 기록 찾기. 비대화형 및 SDK 세션은 제외됩니다. ID를 통해 재개해야 합니다.
에이전트 뷰에서 세션을 삭제하면 기록도 삭제된다고 가정하기. 그렇지 않습니다. 에이전트 뷰 문서에 따르면 세션을 삭제한 후에도 "해당 트랜스크립트는 컴퓨터에 남아 있어 claude --resume을 통해 접근할 수 있습니다."
세션을 복구하거나 정리하기 위해 JSONL 파일을 직접 편집하기. 형식은 버전마다 변경됩니다. 읽기 쉬운 복사본을 얻으려면 /export를 사용하고, 삭제하려면 문서화된 명령어를 사용하세요.
단일 세션 내의 체크포인트에 대해서는 Claude Code 세션 되감기 가이드에서 이전 상태로 돌아갈 때 복원되는 내용을 다룹니다.
해결 방법: 선택기 범위 넓히기, ID로 재개하기, 보존 기간 설정 및 의도적 삭제
1단계: 세션 찾기
claude --resume로 선택기를 엽니다. 세션이 보이지 않는다면 Ctrl+W를 눌러 저장소의 모든 작업 트리를 표시한 다음, Ctrl+A를 눌러 이 컴퓨터의 모든 프로젝트를 표시합니다. 다른 작업 트리의 세션을 선택하면 해당 위치에서 세션이 재개됩니다. 관련 없는 프로젝트의 경우 "Claude Code가 대신 클립보드에 cd 및 재개 명령어를 복사합니다."
세션 ID를 알고 있다면 선택기가 전혀 필요하지 않습니다. "어느 디렉토리에서나 claude --resume <session-id>를 실행할 수 있습니다." Claude Code는 현재 프로젝트와 해당 작업 트리를 먼저 검색한 다음, 다른 모든 프로젝트를 검색합니다. 파일 자체를 전달할 수도 있습니다. claude --resume <transcript-path>는 "해당 절대 경로에 있는 .jsonl 트랜스크립트 파일에 저장된 세션"을 재개합니다.
대략적인 작업 시간만 기억난다면 ~/.claude/projects/ 아래의 파일들을 날짜순으로 나열해 보세요. 각 프로젝트는 해당 경로의 이름을 딴 폴더를 가지며, 각 세션은 하나의 .jsonl 파일입니다. 한 달보다 오래된 파일이 없다면 cleanupPeriodDays 설정을 확인해 보세요. 정리 작업으로 인해 삭제되었을 수 있습니다.
2단계: 필요한 상태로 세션 재개하기
세션을 재개하면 메시지 이상의 것들이 복원됩니다. 문서에 따르면 "도구 호출 및 결과가 포함된" 대화 기록, 세션이 실행되었던 에이전트, 문서화된 케이스의 권한 모드, 활성화된 목표, 완료되지 않은 백그라운드 작업에 대한 노트 등이 복원됩니다.
일부 실행 옵션은 복원되지 않습니다. "세션이 --mcp-config, --settings, --plugin-dir, --fallback-model 또는 --add-dir로 추가된 디렉토리에 의존했던 경우, 재개할 때 이를 다시 전달해야 합니다." 세션 중간에 /add-dir로 추가된 디렉토리도 복원되지 않습니다. settings.json 및 settings.local.json 설정은 실행 시 다시 읽어오므로 반복해서 전달할 필요가 없습니다.
원본을 변경하지 않고 다른 시도를 해보고 싶다면 재개할 때 --fork-session을 추가하세요. 세션 페이지에서는 세션에 이름을 지정하는 방법도 다루고 있어, 다음 검색을 더 쉽게 만들어 줍니다. claude --resume <name>은 정확히 일치하는 세션을 직접 재개합니다. 장시간 자리를 비우기 전에, Claude Code의 유휴 압축(idle compaction) 가이드에서 자리를 비운 동안 대규모 세션이 압축되었을 때 돌아와서 보게 되는 내용을 확인해 보세요.
3단계: 보존 기간 설정, 중요한 데이터 보관 및 의도적 삭제
보존 기간 선택하기. settings.json에서 cleanupPeriodDays를 설정하여 트랜스크립트를 30일보다 길게 또는 짧게 보관할 수 있습니다. 관리형 설정(managed settings)을 통해 조직 전체에 설정할 수도 있으며, 이 경우 Claude Code는 해당 값을 사용합니다.
중요한 내용은 읽기 쉬운 복사본으로 보관하기. "/export를 실행하여 현재 대화를 클립보드에 복사하거나 일반 텍스트 파일로 저장할 수 있는 메뉴를 엽니다." 내보낸 파일을 ~/.claude 외부로 저장하면 해당 디렉토리 하위 경로에서 작동하는 보존 정리 작업의 영향을 받지 않습니다.
claude purge로 프로젝트 기록 삭제하기. 이 명령어는 "프로젝트의 모든 로컬 Claude Code 상태(트랜스크립트, 작업 목록, 디버그 로그, 파일 편집 기록, 프롬프트 기록 라인 및 ~/.claude.json의 프로젝트 엔트리)를 삭제합니다." 먼저 --dry-run으로 미리 확인해 보세요. 퍼지(purge)는 자동 메모도 삭제합니다. claude-directory 문서에 따르면 삭제 대상에 "projects/ 아래의 트랜스크립트 및 자동 메모"가 포함되어 있습니다. Claude Code가 프로젝트에 대해 학습한 내용을 유지하고 싶다면 확인 전에 계획을 검토하세요. v2.1.288 이전의 명령어는 claude project purge였습니다.
claude rm으로 목록에서 백그라운드 세션 제거하기. 이는 에이전트 뷰를 정리하지만, 트랜스크립트는 컴퓨터에 남아 있어 claude --resume을 통해 계속 사용할 수 있습니다.
claude.ai/code에서 클라우드 세션 삭제하기. "세션을 삭제하면 세션과 해당 데이터가 영구적으로 제거됩니다. 이 작업은 되돌릴 수 없습니다." 사이드바의 보관됨(archived) 필터나 세션 메뉴에서 삭제할 수 있습니다.
MemoryLake에서 설정하기
세션 기록은 작업이 어떻게 진행되었는지에 대한 기록입니다. 하지만 예전 세션으로 다시 돌아가는 이유는 대개 훨씬 간단합니다. 도달한 결정, 기각된 접근 방식, 마침내 작동했던 설정 등입니다. 이러한 정보는 긴 트랜스크립트 속에서 잃어버리기 쉬우며, 보존 정리 작업이 실행되거나 프로젝트를 퍼지할 때 함께 사라집니다.
MemoryLake는 디스크에 어떤 트랜스크립트가 남아 있는지와 무관하게, 이러한 결론들을 사용자가 관리하는 하나의 목록으로 유지하여 Claude Code 및 연결된 다른 어시스턴트(예: ChatGPT, Codex 등)가 사용할 수 있도록 하는 메모리 레이어입니다.
사용자는 자신의 언어로 직접 엔트리를 작성합니다. 세션 트랜스크립트, ~/.claude 디렉토리, 자동 메모, 클라우드 세션 또는 타사 저장소에서 데이터를 읽거나 쓰거나 삭제하지 않습니다. 비밀번호나 자격 증명은 제외하고, 프로젝트 세부 정보에 대해서는 조직의 정책을 따르세요.
1단계: API 키 생성
로그인한 후 대시보드에서 키를 생성합니다. 이 키는 MemoryLake 워크스페이스에 속하며 Anthropic 계정과는 별개입니다.

2단계: 첫 번째 메모 업로드
이전 세션에서 검색해야 했을 법한 내용부터 시작해 보세요. 프로젝트에 대한 결정, 작동하지 않았던 접근 방식과 그 이유, 반복되는 문제를 해결한 명령어 및 설정 등입니다. 항목당 하나의 결정을 날짜 및 해당 프로젝트 정보와 함께 기록합니다.

3단계: AI 및 에이전트 연결
Claude Code 및 사용하는 다른 어시스턴트를 연결합니다. 그러면 지난달의 트랜스크립트를 재개할 필요 없이, 작성해 둔 결론을 바탕으로 새 세션을 시작할 수 있습니다.

실제 작업에서 달라지는 점
첫 번째 변화는 세션이 사라진 것처럼 보이는 일이 줄어든다는 점입니다. 선택기가 현재 작업 트리에서 시작된다는 것을 알면, Ctrl+A와 claude --resume <session-id>를 통해 디스크에 남아 있는 세션에 접근할 수 있습니다.
두 번째는 삭제가 의도적으로 이루어진다는 점입니다. 보존 기간은 직접 선택하는 설정이며, claude purge --dry-run은 삭제 전에 계획을 보여주고, 에이전트 뷰에서 세션을 제거해도 트랜스크립트는 그대로 유지된다는 점을 명확히 인지하게 됩니다.
세 번째는 오래된 트랜스크립트에 대한 의존도가 낮아진다는 점입니다. 세션은 의도적으로 만료되도록 설계되었습니다. 결론을 기록해 두면 30일 정리 작업이 레코드를 삭제하더라도 프로젝트에 대한 지식은 사라지지 않습니다. 병렬 세션 간에 이를 공유하는 것은 이와 관련된 문제로, Claude Code 세션 간에 컨텍스트를 공유하는 가이드에서 다룹니다.
Claude Code 세션 기록 모범 사례
걱정하기 전에 범위를 넓히세요. 선택기에서 Ctrl+W를 누른 다음 Ctrl+A를 누르세요.
-p 및 SDK 실행은 ID로 재개하세요. 선택기에 절대 표시되지 않습니다.
다시 돌아올 세션에는 이름을 지정하세요. 정확한 이름을 입력하면 직접 재개됩니다.
재개할 때 실행 플래그를 다시 전달하세요. MCP 설정, 설정 파일, 플러그인 디렉토리 및 추가된 디렉토리는 복원되지 않습니다.
cleanupPeriodDays를 의도적으로 설정하세요. 기본값은 30일입니다.
중요한 내용은 내보내기 하세요. /export 복사본을 ~/.claude 외부에 저장하세요.
모든 퍼지(purge) 전에 dry-run을 실행하세요. 트랜스크립트와 함께 자동 메모도 삭제됩니다.
claude rm은 트랜스크립트를 유지한다는 점을 기억하세요. 기록을 완전히 지우고 싶을 때는 claude purge를 사용하세요.
두 개 이상의 코딩 에이전트를 사용하는 경우, 누락된 Codex 채팅 기록 찾기 가이드에서 Codex에 대한 동일한 질문을 다룹니다.
결론
Claude Code는 기본적으로 30일 동안 프로젝트당 하나의 폴더, 세션당 하나의 파일로 ~/.claude/projects/ 아래에 세션을 파일로 보관합니다. 사라진 것처럼 보이는 세션은 선택기의 기본 뷰 밖에 있거나, 선택기에 표시되지 않는 -p 또는 SDK 실행이거나, 백그라운드에서 여전히 실행 중이거나, 다른 앱의 목록에 있거나, /cd로 이동된 경우일 수 있습니다. 보존 기간이 만료되었거나 퍼지된 세션만 실제로 완전히 사라집니다.
Ctrl+W 및 Ctrl+A로 선택기 범위를 넓히고, ID나 트랜스크립트 경로를 알고 있다면 이를 통해 재개하고, 실행 플래그를 다시 전달하세요. 그런 다음 보존 기간을 선택하고, 보관해야 할 내용을 내보내고, 프로젝트 기록을 삭제하고 싶을 때는 자동 메모도 함께 삭제된다는 점을 염두에 두고 --dry-run과 함께 claude purge를 사용하세요.