세션 관리 · 시작·종료·재개

세션은 Claude Code와 나눈 대화 한 묶음입니다. claude -c, /resume, /rename, 세션 ID 지정으로 과거 작업을 이어 가고 /clear로 새 작업에 집중하는 방법을 공식 문서 기준으로 정리합니다.

9분 갱신

어제 하던 작업을 오늘 이어 가려면 무엇을 눌러야 할까요. 이 글은 세션이 무엇을 기억하는지부터 claude -c, /resume, /rename, 세션 ID로 재개하는 법, 그리고 /clear로 새 작업에 집중하는 법까지 정리합니다. 읽고 나면 상황별로 어떤 명령을 쓸지 바로 고를 수 있습니다. 앞 글까지의 도구 비교와 달리 여기서는 Claude Code 하나만 깊게 봅니다. 다음 글 「/rewind 로 대화와 코드 되감기」는 한 세션 안에서 시간을 되돌리는 방법입니다.

핵심 요약

  • 세션은 프로젝트 디렉토리에 묶인 저장된 대화이며 ~/.claude/projects/<프로젝트>/<세션 ID>.jsonl에 기록됩니다.
  • claude -c는 현재 디렉토리의 최근 세션을, claude -r 또는 /resume은 선택기나 이름·ID로 특정 세션을 재개합니다.
  • /rename이나 claude -n 이름으로 이름을 붙이면 claude --resume 이름으로 바로 돌아옵니다.
  • /clear는 대화를 비우지만 이전 대화는 저장되어 언제든 /resume으로 돌아갈 수 있습니다.
  • 세션 파일은 기본 30일 뒤 정리되며 cleanupPeriodDays로 조정합니다.

세션이 기억하는 것은 무엇인가

세션은 작업 디렉토리에 연결된 대화 한 묶음입니다. 메시지, 도구 호출, 결과가 한 줄에 하나씩 JSONL로 저장되고, Claude가 파일을 고치기 전 스냅샷(체크포인트)도 세션과 함께 남습니다. 그래서 재개한 세션에서도 /rewind가 됩니다. 재개하면 저장 당시 쓰던 모델도 그대로 복원됩니다.

세션이 기억하지 않는 것도 있습니다. 새 세션은 이전 대화 없이 새 컨텍스트로 시작하므로, 세션을 넘어 지켜야 할 규칙은 CLAUDE.md에, Claude가 스스로 배운 패턴은 자동 메모리에 둡니다. 우리 5주차 교재에서 상태줄의 세션 시간(session:320m)을 보고 작업 시간을 기록하라고 한 것도 세션이 "한 작업 단위"라는 뜻입니다.

새 세션은 어떻게 시작하고 끝내나

cd ~/Developer/my-project
claude                 # 새 세션 시작
claude -n apply-form   # 이름을 붙여서 시작

이름을 붙이지 않은 세션도 my-project-3f처럼 폴더명에 두 글자를 붙인 표시 이름을 받지만(v2.1.196 이상), 이 기본 이름으로는 재개할 수 없습니다. 끝낼 때는 Ctrl+D, 또는 실행 중인 작업이 없을 때 Ctrl+C를 두 번 누릅니다. 종료해도 세션 파일은 남습니다. Windows에서는 PowerShell이나 Windows Terminal에서 같은 키가 동작합니다.

직전 세션을 이어가려면 · claude -c

claude --continue    # 또는 claude -c

현재 디렉토리에서 가장 최근 세션을 불러옵니다. 없으면 No conversation found to continue를 출력하고 종료합니다. 디렉토리 기준이므로 어제와 다른 폴더에서 실행하면 다른 세션이 잡힙니다. 같은 세션 ID를 그대로 쓰기 때문에 새 메시지는 기존 대화 뒤에 붙습니다. 원본을 건드리지 않고 다른 접근을 시도하려면 claude --continue --fork-session으로 새 ID를 만들어 갈라집니다.

과거 세션 목록에서 고르려면 · /resume

claude --resume      # 또는 claude -r

세션 안에서는 /resume(별칭 /continue)을 입력합니다. 선택기는 기본적으로 현재 worktree의 대화형 세션을 보여 주고, 각 행에 이름(없으면 요약이나 첫 프롬프트), 경과 시간, 메시지 수, git 브랜치가 표시됩니다.

키 동작
↑/↓, Enter 이동, 재개
Space 내용 미리보기
문자 입력 검색. PR 또는 MR URL을 붙여넣으면 그 PR을 만든 세션을 찾음
Ctrl+R 강조된 세션 이름 바꾸기
Ctrl+A 이 머신의 모든 프로젝트로 확장
Ctrl+W 같은 저장소의 모든 worktree로 확장
Ctrl+B 현재 브랜치 세션만 필터

/branch, /rewind, --fork-session으로 갈라진 세션은 원본 아래에 묶여 표시되며 →로 펼칩니다. claude -p로 만든 세션은 선택기에 나오지 않지만 ID로는 재개할 수 있습니다.

세션에 이름 붙이기 · /rename

/rename apply-form-validation

이름은 프롬프트 표시줄에도 나타나고 /resume 검색에 잡힙니다. 선택기에서 Ctrl+R로 바꿀 수도 있고, 플랜 모드에서 계획을 승인하면 이름이 없을 때 계획 내용으로 자동 명명됩니다. 여러 작업을 병렬로 돌릴수록 이름이 중요합니다. 우리는 "기능명 또는 버그 티켓 번호"로 통일하도록 가르칩니다.

세션 ID를 알고 있다면 · claude --resume

claude --resume apply-form-validation      # 이름으로
claude --resume 3f2a1c0e-...               # 세션 ID로

이름이 정확히 일치하면 바로 재개하고, 모호하면 그 이름을 검색어로 채운 선택기를 엽니다. 세션 ID 조회는 현재 프로젝트 디렉토리와 그 git worktree 안으로 한정되므로 다른 폴더에서 만든 세션은 No conversation found with session ID가 나옵니다. 세션이 시작된 폴더에서 실행하십시오. ID를 미리 정하고 싶으면 시작할 때 --session-id <UUID>를 줍니다.

비대화 모드에서 ID를 얻어 이어 가는 패턴은 이렇습니다.

sid=$(claude -p "접수 API 검토 시작" --output-format json | jq -r '.session_id')
claude -p "이어서 결제 게이트도 검토해 줘" --resume "$sid"

새 작업으로 넘어갈 때는 · /clear

/clear는 빈 컨텍스트로 새 대화를 시작합니다. 이전 대화는 저장되어 /resume으로 재개할 수 있고, 같은 프로세스 안에서는 되감기 메뉴 맨 위의 이전 세션 항목으로도 돌아갑니다. 관련 없는 작업으로 넘어갈 때 쓰며, 지우기 전에 /rename으로 이름을 붙여 두는 것이 공식 권장입니다. 한 세션 한 작업, 끝나면 /clear는 우리 교육연합의 기본 규칙입니다.

상황별로 무엇을 쓰면 되나

상황 명령
어제 같은 폴더에서 하던 작업을 바로 잇기 claude -c
며칠 전 세션을 목록에서 찾기 claude -r 또는 /resume
이름을 아는 세션으로 곧장 가기 claude --resume <이름>
원본은 두고 다른 접근을 시험하기 claude -c --fork-session 또는 /branch
PR 번호로 그 작업 세션 찾기 claude --from-pr 123
다른 작업으로 넘어가기 /rename 후 /clear
대화를 문서로 남기기 /export 파일명
스크립트에서 특정 세션에 질문 claude -p --resume <ID> --output-format json

세션 저장 위치를 옮기려면 CLAUDE_CONFIG_DIR, 보존 기간을 바꾸려면 settings.json의 cleanupPeriodDays(기본 30, 최소 1)를 씁니다. 한 번의 비대화 실행을 저장하지 않으려면 --no-session-persistence를 붙입니다.

정리

  • 세션은 폴더에 묶인 JSONL 대화이며 체크포인트와 모델 선택까지 함께 저장됩니다.
  • -c는 최근 세션, -r//resume은 선택기, 이름이나 ID를 주면 바로 재개합니다.
  • 이름 붙이기가 세션 관리의 절반입니다. -n, /rename, 선택기의 Ctrl+R.
  • /clear는 지우는 것이 아니라 새 대화를 여는 것이며 이전 대화는 남습니다.
  • 갈라져서 실험하려면 --fork-session 또는 /branch, 두 터미널에서 같은 세션을 열면 기록이 섞이니 피합니다.

자주 묻는 질문

어제 하던 작업을 그대로 이어가려면 어떻게 하나요?

어제 작업한 폴더로 이동해 claude -c를 실행합니다. 같은 세션 ID로 이어지므로 대화와 체크포인트가 그대로 있습니다. 다른 폴더에서 실행하면 그 폴더의 최근 세션이 열리니 위치를 먼저 확인하십시오.

/resume 목록에서 원하는 세션을 찾기 어렵습니다.

선택기에서 글자를 입력하면 검색되고, Space로 내용을 미리 볼 수 있습니다. 다른 폴더 세션이면 Ctrl+A, 같은 저장소의 다른 worktree면 Ctrl+W로 범위를 넓힙니다. 근본 해결은 세션마다 /rename으로 이름을 붙이는 습관입니다.

세션 ID는 어디서 확인하나요?

비대화 모드에서는 --output-format json 결과의 session_id 필드에 있습니다. /branch 실행 시 확인 메시지가 새 세션과 원본의 ID를 출력합니다. 파일로 보면 ~/.claude/projects/<프로젝트>/ 아래 .jsonl 파일명이 ID입니다. 훅과 상태줄 명령은 transcript_path로 그 경로를 받습니다.

새 작업을 시작할 때 세션을 새로 여는 것과 /clear 중 무엇이 좋나요?

결과는 같습니다. 둘 다 빈 컨텍스트에서 시작하고 이전 대화는 저장됩니다. 터미널을 유지한 채 넘어가려면 /clear가 빠르고, 다른 폴더나 다른 모델·권한 모드로 시작하려면 새로 여는 편이 명확합니다.

팀에 클로드코드를 도입하려면 실제 업무에 맞춘 설계가 필요합니다. 무료 상담 신청 →