저녁에 터미널을 닫으면 에이전트와 나눈 대화가 창과 함께 통째로 사라지는 것 같습니다. 한 시간 동안 나눈 이야기, 찾아낸 오류, 설명해 둔 작업 맥락까지, 전부 없어지는 것처럼 보입니다.

없어지지 않습니다. 대화는 작업하는 동안 저절로 디스크에 저장되고, 명령 하나면 다시 열립니다.

세션을 호텔에 빗대면 이해하기 쉽습니다. 프로젝트 폴더는 건물이고, 대화 하나하나는 객실이며, 모든 객실의 열쇠는 프런트 뒤 보드에 걸려 있습니다. 저녁에 나가더라도 방을 정리해서 없애지는 않습니다. 열쇠는 보드로 돌아가고, 짐은 방 안에 그대로 남습니다. 아침에는 프런트 직원에게 필요한 방 번호만 말하면 됩니다.

이 비유에는 한계가 있고, 처음부터 밝혀 두는 편이 좋습니다. 방에 사는 건 대화이지 코드가 아닙니다. 코드는 건물 자체이고, 투숙객 모두가 공유합니다.

아래에서는 세션이 무엇인지, 다시 돌아가는 세 가지 방법, 대화에 이름이 필요한 이유, 그리고 새 작업에는 이전 대화를 이어 가기보다 새 대화를 여는 편이 나은 이유를 다룹니다.

세션이란 무엇인가

세션은 프로젝트 폴더에 묶여 저장되는, 에이전트와의 대화입니다. 작업하는 동안 계속해서 디스크에 기록되므로, 텍스트 편집기처럼 따로 저장할 필요가 없습니다.

세션에 남는 것은 대화 내용만이 아닙니다. 여러분의 메시지와 에이전트의 응답 외에, 도구 호출과 그 결과도 함께 들어갑니다. 어떤 파일을 열었는지, 실행한 명령이 무엇을 돌려줬는지, 어떤 수정을 적용했는지까지요. 그래서 예전 대화로 돌아가면 요약이 아니라 전체 그림을 그대로 받게 됩니다.

이어서 혼란의 절반을 없애 줄 두 가지를 짚어 보겠습니다.

한 대화의 내용은 다른 대화로 넘어가지 않습니다. 한 달 전 다른 세션에서 무언가를 논의했다면, 같은 프로젝트라 해도 이 대화에는 그 내용이 없습니다. 각 세션은 자신의 이력만 알고, 그 이상은 모릅니다.

세션은 코드가 저장되는 또 하나의 장소가 아닙니다. 프로젝트 파일은 디스크에 독립적으로 존재합니다. 프로젝트 하나가 세션 열 개와 함께 있어도 문제없고, 세션 전부가 같은 코드를 공유합니다. 지금 폴더에 있는 바로 그 코드입니다.

프로젝트 폴더 하나 안에 독립된 세션 여럿이 존재하고, 모두 같은 코드 파일로 작업한다프로젝트 폴더세션 1피드백 폼세션 2결제 버그세션 3테스트 리팩터링프로젝트 파일모든 세션이 같은 코드를 공유
대화는 서로 섞이지 않지만, 코드는 공유합니다

도식에는 두 가지가 한눈에 들어옵니다. 폴더는 하나, 세션은 여럿, 각 세션은 자기 이력을 따로 갖고, 아래쪽 파일은 공유됩니다. 같은 프로젝트에서 세션을 하나 더 여는 것은 코드를 복사하는 게 아니라, 그 프로젝트에 대한 대화가 하나 더 생기는 것일 뿐입니다.

작업으로 돌아가는 법

돌아가는 입구는 세 가지이고, 어느 것을 고를지는 필요한 대화가 어떤 건지 기억하고 있는지에 달려 있습니다.

입구하는 일
claude --continue이 폴더에서 가장 최근 대화를 묻지도 않고 이어 갑니다
claude --resume지난 대화 목록을 열어 원하는 것을 고르게 합니다
/resume이미 열려 있는 세션 안에서 같은 목록을 보여 줍니다

표에서 놓치기 쉬운 게 하나 있습니다. 위 두 줄은 claude로 시작하고, 아래 줄은 슬래시로 시작합니다. 이건 겉모양 차이가 아닙니다. 위의 둘은 에이전트가 아직 화면에 없을 때 터미널에 입력하는 것이고, 그 플래그는 실행 명령 자체의 일부입니다. 즉 한 번의 동작으로 에이전트를 켜면서 어떤 대화를 열지도 함께 정하는 셈입니다.

claude              # 빈 화면으로 시작
claude --continue   # 어제 대화로 바로 시작
claude --resume     # 목록에서 대화를 골라 시작

/resume은 반대로 내부에서 작동합니다. 에이전트가 이미 켜져 있는 상태에서, 입력창에 명령을 쳐서 터미널로 나가지 않고도 다른 대화로 바꿉니다.

실제로는 차이가 단순합니다. claude --continue는 "어제 여기서 작업했으니 이어서 하겠다"는 뜻으로, 에이전트가 말없이 현재 폴더의 마지막 대화를 엽니다. claude --resume은 "대화가 여러 개 있으니 고르게 해 달라"는 뜻입니다.

목록은 대화 하나에 한 줄씩 보여 줍니다. 이름을 정했다면 그 이름, 아니면 자동 제목, 마지막 활동에서 얼마나 지났는지, 브랜치, 크기까지요. 줄이 많으면 그냥 타이핑을 시작해서 검색할 수 있고, 현재 폴더를 넘어 목록을 넓힐 수도 있습니다. Ctrl+A를 누르면 이 머신의 모든 프로젝트에서 나온 대화가 나타납니다.

먼저 폴더부터 확인하세요

목록은 기본적으로 폴더에 묶여 있습니다. claude --resume을 홈 디렉터리에서 실행했다면, 프로젝트 폴더로 옮긴 다음 다시 시도하세요. 대화가 어디 있는지 찾을 때는 Ctrl+A가 도움이 됩니다. 모든 폴더의 대화를 보여 주지만, 목록에서 바로 다른 프로젝트의 대화를 열 수는 없습니다. 대신 Claude Code가 그 폴더로 이동해서 실행하는 명령을 클립보드에 넣어 주고, 이걸 터미널에 붙여넣으면 됩니다. 그래도 안 되면 Claude Code가 예전과 같은 프로필로 실행되고 있는지, 대화가 보관 기한을 넘기지 않았는지 확인하세요. 자동으로 삭제된 뒤에는 /resume으로도 되돌릴 수 없습니다.

대화와 함께 그 안에 있던 모든 것이 돌아옵니다. 도구 호출과 그 결과를 포함한 전체 이력까지요. 대체로 모델도 그대로 유지됩니다. 이용 가능 여부와 설정이 바뀌지 않았다면요. 멈춘 바로 그 지점부터 이어 갈 수 있습니다.

세션에 이름이 필요한 이유

대화가 하나뿐일 때는 이름이 필요 없습니다. 세 개가 되는 순간 목록은 수수께끼가 됩니다. 둘은 똑같이 시작하고, 셋째는 대체 뭔지 알 수가 없습니다.

이름을 정하는 방법은 두 가지입니다.

claude -n feedback-form   # 실행할 때
/rename feedback-form     # 이미 열린 세션에서

이름을 정하지 않으면 Claude Code가 첫 메시지를 바탕으로 짧은 제목을 알아서 만듭니다. 이것도 길잡이 역할은 합니다. 목록에서 세션을 알아보고 열 수 있으니까요. 다만 직접 지은 이름이 더 정확합니다. 자동 제목은 첫 문장만 묘사하지, 작업 전체를 담지는 못합니다.

솔직히 대화 시작할 때 이름을 짓는 일은 드뭅니다. 이게 어디로 커질지 아직 모르니까요. 세션의 절반은 "한 줄만 보고 오자"로 시작하고, 그중 일부는 뜻밖에 반나절짜리 작업으로 자라납니다.

그래서 이렇게 하는 게 더 간단합니다. 짧게 들렀다 나가는 건 그대로 두세요. 자동 제목이면 충분합니다. 오래 붙잡고 있겠다 싶으면 그때 /rename을 하세요. 끝냈다면 이름을 붙여 /clear하세요. 작업이 이미 지나갔으니 뭐라 부를지 고민할 필요도 없습니다.

새 작업에는 새 대화

작업하면서 계속 던져야 할 질문은 딱 하나입니다. 이게 아직 같은 작업인가? 같다면 계속 이어 갑니다. 바뀌었다면 빈 화면을 엽니다. 형식적인 이야기처럼 들리지만, 실제로는 바로 이 지점에서 대화가 뒤죽박죽되는 경우가 가장 많습니다.

유혹은 이해할 만합니다. 에이전트가 이미 프로젝트를 알고 있는데 왜 처음부터 다시 시작하나 싶죠. 하지만 작업 세 개를 한꺼번에 쑤셔 넣은 대화는 예측 가능한 방식으로 망가집니다.

  • 이전 작업의 결정을 새 작업으로 끌고 옵니다. 한 시간 전에 한 가지 방식으로 하기로 정했는데 지금은 다른 방식으로 가고 있다면, 에이전트는 첫 번째 합의를 기억하고 거기로 되돌아갑니다.
  • 이미 버렸던 아이디어가 다시 떠오릅니다. 다른 작업에서 버린 것인데, 에이전트에게는 하나로 이어진 흐름일 뿐입니다.
  • 이전 작업에 속했던 것까지 하는 김에 손댑니다. 폼에 대해 물었는데 결제 코드 수정까지 딸려 옵니다.
  • 변경 사항이 뒤섞입니다. 한 대화에 두 주제의 수정이 섞이면, 나중에 무엇이 무엇에 속했는지 가려내기 어렵습니다.
  • 목록에서 그 대화를 찾을 수 없습니다. 전부에 대한 것이라는 건 결국 아무것도 아니라는 뜻입니다.

그래서 규칙은 간단합니다. 대화는 하나의 작업에 도움이 되는 동안만 존재합니다. 작업이 끝나면 대화도 끝납니다. 세션은 여기서 소모품이지, 아껴 쓸 대상이 아닙니다.

빈 화면을 여는 방법은 두 가지이고, 그 차이는 보기보다 작습니다.

동작대화는 어떻게 되는가프로젝트 파일은 어떻게 되는가언제 고를까
/clear빈 화면으로 시작하고, 이전 대화는 저장된 채로 남는다건드리지 않는다작업이 바뀌었고, 여전히 같은 자리에 있을 때
새 세션다른 작업을 위한 별도 대화가 시작된다건드리지 않는다다른 프로젝트, 다른 폴더, 다른 날

이제 /clear 이야기를 해 보죠. 사람들이 가장 자주 겁을 먹는 지점이니까요. 명령은 삭제처럼 보이지만 실제로는 전환처럼 작동합니다. 대화를 지우는 게 아니라 옆으로 치워 두고 빈 대화를 엽니다. 치워 둔 대화는 목록에 남아 있고, /resume으로 열면 여러분이 남겨 둔 그 상태 그대로 열립니다.

선택 인자로 이름을 붙일 수도 있습니다. /clear feedback-form은 떠나는 대화에 목록에서 알아볼 이름을 붙여 줍니다. 1초짜리 수고인데, 나중에 찾기가 눈에 띄게 쉬워집니다.

반대 상황도 있습니다. 대화에 이미 이름이 있다면 - 실행할 때 -n으로 붙였거나 도중에 /rename했다면 - 맨 /clear만 쓰면 그 이름이 새 대화로 넘어가고, 다음 작업이 이전 작업의 이름을 달고 있게 됩니다. 인자를 붙이면 이름은 예전 대화에 남고 새 대화는 이름 없이 시작합니다.

clear 명령 전에는 현재 창에서 폼 대화가 활성 상태이고 목록은 비어 있다. 명령 후에는 빈 화면이 활성 상태이고 폼 대화는 목록에 있다. 두 상태 모두 이 창에는 대화가 하나만 활성 상태다전후/clear활성목록에폼 대화빈 화면폼 대화아직 비어 있음
현재 창에서 명령은 활성 대화를 바꾸고, 이전 대화는 목록으로 옮깁니다

맨 위 줄을 보세요. 이 실행에서는 명령 전에도 후에도 활성 대화가 하나뿐입니다. /clear는 첫 번째 대화 옆에 두 번째 세션을 여는 게 아닙니다. 활성 대화를 빈 것으로 바꾸고, 이전 대화는 아래 목록으로 내립니다. 거기로 다시 돌아가려면 /resume을 통해 의식적으로 선택해야 합니다.

새 세션은 /clear와 달리 보통 다른 작업까지 의미합니다. 다른 프로젝트, 다른 폴더, 다른 날이요. /clear는 지금 있는 디렉터리나 실행에서 여러분을 빼내지 않습니다. 서 있는 바로 그 자리에서 빈 화면을 열 뿐입니다.

/compact도 있습니다. 이 명령은 작업 전환이 아니라 대화 길이에 관한 것입니다. 이미 나눈 이야기를 요약본으로 접어 넣고, 같은 세션 안에 여러분을 그대로 둡니다. 이건 컨텍스트 창이 어떻게 작동하는지, 다 차면 무슨 일이 일어나는지와 함께 다루는 편이 좋은 별도 주제입니다.

어디에 저장되고 얼마나 보관되는가

대화는 여러분 디스크의 Claude Code 데이터 폴더에 저장됩니다.

~/.claude-codegym/projects/

~ 기호는 사용자의 홈 폴더를 뜻합니다. Windows에서는 %USERPROFILE%에 해당하므로, 학습용 경로는 %USERPROFILE%\.claude-codegym\projects\로 시작합니다.

.claude-codegym은 학습 프로필입니다. Claude Code가 이 프로필 없이 실행되면, 표준 경로는 ~/.claude/projects/처럼 보입니다. 그 안에는 프로젝트마다 하위 폴더가 있고, 그 안에는 대화마다 메인 파일이 하나씩 있습니다.

트랜스크립트에는 비밀 정보를 넣지 않는다

디스크에는 트랜스크립트가 평문으로 저장됩니다. 여기에는 읽은 파일의 내용, 실행한 명령의 출력, 채팅에 붙여넣은 텍스트가 기록됩니다. 운영체제에서 여러분 계정 파일에 접근 권한이 있는 프로세스와 사용자는 이 파일을 읽을 수 있습니다.

로컬 파일은 이야기의 일부일 뿐입니다. 모델이 응답하려면 Claude Code가 요청과 필요한 컨텍스트를 네트워크로 선택된 제공자에게 보냅니다. 제공자 쪽 보관 조건은 계정과 설정에 따라 다릅니다. 그러니 채팅에 비밀번호나 키를 붙여넣지 말고, 꼭 필요한 경우가 아니면 .env 같은 비밀 정보가 담긴 파일을 읽어 달라고 에이전트에게 시키지 마세요.

대화가 영원히 남는 건 아닙니다. 대략 한 달이 지나면 오래된 대화는 거기 딸린 checkpoint와 함께 자동으로 정리되고, 이 기간은 원하면 조정할 수 있습니다. 그러니 세션은 작업 하나를 하기에는 좋은 곳이지만, 프로젝트의 장기 이력을 담기에는 나쁜 곳입니다. 이력을 오래 보관하는 데 쓰는 것은 그 자체로 큰 주제입니다.

이게 작업 방식을 어떻게 바꾸는가

내일부터 바로 쓸 수 있는 몇 가지 결론입니다.

  • 세션은 하나의 작업을 담는 그릇이지, 평생에 걸친 에이전트와의 서신 왕래가 아닙니다. 이 관점에 가깝게 유지할수록 에이전트가 헷갈리는 일이 줄어듭니다.
  • 대화는 저절로 저장됩니다. 따로 손으로 저장할 게 없습니다. 저녁에 터미널을 닫아도 아무것도 잃지 않습니다.
  • 세션은 폴더별로 정리됩니다. 프로젝트 폴더에서 에이전트를 실행하면 그 대화가 바로 손에 잡힙니다. 목록이 비어 있으면 폴더를 확인하세요. Ctrl+A를 누르면 모든 프로젝트의 대화가 나타나고 어디로 가야 할지도 알려 줍니다.
  • 예전 대화로 돌아가면 막다른 시도와 버린 아이디어를 포함한 맥락 전체가 함께 돌아옵니다. 세 시간짜리 논의를 되살리느니 처음부터 다시 시작하는 게 더 빠를 때도 있습니다.
  • 폴더 하나에 세션 여러 개가 쌓여 있는 건 정상적인 작업 모습이지, 정리가 안 됐다는 신호가 아닙니다.
2초짜리 의식

습관 두 개 대신 하나만 있으면 됩니다. 시작할 때 이름을 짓는 대신, 나갈 때 대화에 이름을 붙이세요. 맨 /clear 대신 /clear feedback-form. 똑같이 2초가 걸리지만, 이름이 이미 명확해진 순간에 쓰는 겁니다. 한 달 뒤에도 목록은 여전히 읽을 만하고, 뒤지고 다닐 필요가 없습니다.


세션 파일의 위치, 목록에 나오는 항목, 보관 기간은 Claude Code 버전과 설정에 따라 달라지므로, 여러분의 화면은 여기 설명과 다를 수 있습니다.