2026-09-16 · 주제: 복구 · 영상 4편 · 팁 14개
유튜브 AI 팁 보고서 — 2026-09-16 — 복구
오늘의 영상 4편 · 오늘 팁 14개 · 누적: 팁 647개 / 다룬 영상 168편(후보 등재 1565편)
한눈에 (TL;DR)
- 체크포인트가 있다고 복구가 되는 것이 아니다. 서로 모르는 두 편이 같은 결론에 닿았다. Beo Beo는 LangGraph가 승인 뒤 재개할 때 노드를 처음부터 다시 돌리고, 죽은 프로세스는 아무도 다시 부르지 않는다고 지적한다(팁 11·14). Restate 강연은 journal이 실패한 바로 그 지점까지 되감아 준다고 설명한다(팁 8). 두 편을 합치면 복구의 조건은 두 가지다. 무엇이 다시 부르는가, 그리고 부수효과가 기록되는가.
- Claude Code의 /rewind는 네 가지를 되돌리지 못한다. bash로 바뀐 파일, 백그라운드 서브에이전트의 편집, 심링크·하드링크 파일, Claude Code 밖의 변경이다(팁 6). 영상의 결론은 'Claude를 실행시키기 전에 commit'이며, 이는 08-31 호의 '병합 전에 되돌아갈 커밋을 만들라'와 같은 자리다.
- 터미널이 죽어도 세션은 살릴 수 있다. tmux 이름 세션 안에서 Claude Code를 돌리고
tmux a -t로 다시 붙는다(팁 1·2). 단, 재부팅은 못 넘긴다는 점을 영상 스스로 인정한다.
자막만 읽어 고른 팁이다. 도구를 설치하거나 실험을 실행하지 않았다.
오늘의 팁
1. tmux new로 이름 붙인 세션을 만들어 그 안에서 Claude Code를 실행하라
- 방법: 일반 터미널에서
tmux ls로 관리 중인 세션이 있는지 확인한다(처음엔 없음).tmux new -s 이름처럼 이름을 붙여 세션을 만든다. 세션 안에서 Ctrl+B 뒤 곧바로 %를 눌러 좌우 분할하고, 한쪽에서 Claude Code를 실행하고 다른 쪽은 터미널 작업용으로 둔다. 분할창 닫기는 Ctrl+B 뒤 x, 이어서 y. tmux에서 나가려면 exit. - 출처: 죽은 클로드 코드를 살려내는 티먹스, 초보자를 위한 개념 설명과 팁과 세팅! — 편집자P · 06:54
- 보정: 자동자막이 tmux를 '팀웍스·티먹스'로 받아썼다. 세션 이름 옵션
-s는 자막에 없어 tmux 공식 사용법으로 보완했다.
2. 터미널이 꺼지면 tmux a -t 세션이름으로 살아 있는 세션에 다시 붙어라
- 방법: 터미널이 꺼진 뒤 새 터미널을 연다(Warp든 기본 터미널이든 무관).
tmux ls로 이전 세션이 살아 있는지 확인한다.tmux a -t 이름을 입력하면 터미널과 Claude Code 화면이 그대로 돌아온다. - 출처: 죽은 클로드 코드를 살려내는 티먹스, 초보자를 위한 개념 설명과 팁과 세팅! — 편집자P · 07:42
- 보정: 제목은 '절대 안 죽는다'고 하지만 원문 스스로 컴퓨터가 꺼졌다 켜지면 세션도 죽는다고 인정한다. 도입부의 '업데이트로 재부팅된 상황'에는 해당하지 않는다. macOS 설치는 Homebrew를 쓰라고만 말한다.
3. /rewind를 입력하거나 빈 입력창에서 escape를 두 번 눌러 체크포인트 목록을 열어라
- 방법: 입력창이 빈 상태에서 /rewind를 입력하거나 escape를 두 번 누른다. 이번 세션에서 보낸 프롬프트 목록이 뜨면 시점을 고른다. 복원 범위는 셋 중 하나다. Restore code and conversation은 파일과 대화 모두, Restore conversation은 대화만, Restore code는 파일만 되돌리고 대화는 유지한다. 입력창에 글자가 있으면 escape 두 번은 메뉴 대신 입력을 지우는데, 지워진 텍스트는 입력 히스토리에 남으니 위 방향키로 되찾는다. 스냅샷은 프롬프트를 보낸 시점의 상태다.
- 출처: Claude Code's Undo Misses 4 Things. One of Them Is Your Fault. — Suk Yom · 01:18
- 보정: '한 키스트로크로 5초 안에 복구'라지만 실제로는 메뉴 열기·시점 선택·복원 범위 선택의 세 단계다. Restore code 선택지 자체는 이미 수집(2026-09-12 컨텍스트 호 팁 2). 이번 호의 새 정보는 escape 두 번과 입력 히스토리 복구다.
4. /clear를 후회하면 rewind 메뉴 맨 위 항목으로 이전 세션을 재개하라
- 방법: 대화를 clear한 뒤 rewind 메뉴를 열면 맨 위에 clear 이전 세션을 재개하는 항목이 하나 더 나타난다. 그 항목을 고르면 이전 세션이 이어진다. 버전 2.1.191 이상에서만 제공된다.
- 출처: Claude Code's Undo Misses 4 Things. One of Them Is Your Fault. — Suk Yom · 02:18
- 보정: 버전 번호는 자막의 발화이며 공식 릴리스 노트로 대조하지 않았다.
5. 체크포인트 보존 기간은 cleanup period days 설정으로 조정하라
- 방법: Claude Code는 세션당 최근 100개 체크포인트의 파일 스냅샷을 보관하고, 세션과 함께 30일 뒤 삭제한다. 이 일수는 cleanup period days 설정으로 바꾼다. 체크포인트는 대화와 같이 저장되므로 노트북을 닫아도 남고, 다음날 세션을 resume하면 rewind가 그대로 동작한다.
- 출처: Claude Code's Undo Misses 4 Things. One of Them Is Your Fault. — Suk Yom · 02:47
- 보정: 원문은 설정 이름과 기본 30일만 말하고 설정 파일이나 메뉴 위치는 언급하지 않는다. 실제 키 이름은 공식 문서에서 확인해야 한다.
6. 복원 전에 debug logging을 켜서 건너뛴 심링크·하드링크 경로를 확인하라
- 방법: Restore code를 고르면 추적 경로 중 심링크·하드링크 파일은 건너뛰고 '코드는 복원했지만 N개 파일은 건너뛰었다'는 메시지만 보인다. 어떤 경로인지 보려면 복원 전에 debug logging을 켠다. 켜면 로그에 건너뛴 경로가 전부 이름으로 남고, 안 켜면 개수만 남는다. 심링크는 공유 규칙 폴더를 프로젝트에 링크한 경우, dotfile 관리자가 설정을 링크한 경우, 패키지 매니저가 하드링크로 파일을 놓는 경우에 생긴다. rewind가 되돌리지 못하는 네 가지는 bash 명령으로 바뀐 파일, 백그라운드 서브에이전트가 편집한 파일, 심링크·하드링크 파일, Claude Code 밖의 변경(다른 편집기·같은 프로젝트의 다른 세션)이다.
- 출처: Claude Code's Undo Misses 4 Things. One of Them Is Your Fault. — Suk Yom · 05:02
- 보정: 포그라운드 스킬은 내 턴 안에서 편집하므로 복원된다는 예외를 자막이 말한다. debug logging을 켜는 명령이나 플래그 이름은 원문에 없다.
7. 히스토리가 사라져 보이면 git reflog로 해시를 찾아 브랜치를 만들어라
- 방법: hard reset처럼 히스토리를 다시 쓰는 명령으로 커밋이 사라진 것처럼 보이면 git reflog를 실행한다. 브랜치가 최근에 가리켰던 모든 지점이 일반 히스토리에서 사라진 상태까지 포함해 나온다. 원하는 해시를 찾아 그 해시에서 브랜치를 만든다. 커밋은 보통 삭제된 것이 아니라 참조가 끊긴 것이다.
- 출처: Claude Code's Undo Misses 4 Things. One of Them Is Your Fault. — Suk Yom · 06:20
- 보정: 실제 명령줄 예시는 원문에 없다. 직접 편집하고 commit하지 않았으며 Claude도 건드리지 않은 파일이 bash·git restore·checkout으로 버려진 경우는 rewind도 commit도 reflog도 없어 완전히 사라진다. 그래서 영상의 습관은 'Claude에게 맡기기 전에 commit'이다.
8. LLM 호출을 restate.run으로 감싸 실패 지점부터 재개되게 하라
- 방법: 애플리케이션을 HTTP 핸들러로 작성하고 restate SDK로 감싼다. 핸들러의 첫 인자로 restate object context를 받는다. 평범한 Python LLM 호출 함수를 restate.run으로 감싼다. context로 하는 모든 동작은 이벤트가 되어 restate 서버의 journal로 전송된다. 두 시간이든 두 달이든 뒤에 크래시가 나도 journal로 실패한 지점까지 복구되므로 처음부터 다시 시작하지 않는다. 데모에서는 서브 에이전트가 LLM 호출 뒤 web search 도중 API 다운으로 실패했다가 재시도되어 완료됐다.
- 출처: Every step you take, every call you make: the reliable agent stack — Giselle van Dongen, Restate — AI Engineer · 07:48
- 보정: [홍보성] Restate 개발사의 강연. journal 이벤트로 복구한다는 개념 설명 수준이며 replay 메커니즘 세부는 없다. 별도 런타임(restate 서버)을 운영해야 한다.
9. 사람 승인 대기는 durable promise로 만들어 함수를 suspend시켜라
- 방법: journal에 사는 durable promise를 만든다(suspension point 역할). 사람에게 Slack의 approve 버튼을 누르도록 요청한다. 대기 중 프로세스는 suspend되며, serverless라면 함수 실행 시간을 소모하지 않는다. 응답이 오면 unblock되어 멈춘 지점부터 이어간다. 데모에서는 planner가 서브토픽 목록을 Slack으로 보내고, approve를 누르면 병렬 research agent들이 기동됐다.
- 출처: Every step you take, every call you make: the reliable agent stack — Giselle van Dongen, Restate — AI Engineer · 08:42
- 보정: [홍보성] 승인이 몇 주 걸려도 재시작·재배포를 견딘다는 주장은 발표자의 설명이며 실측이 아니다.
10. 세션 상태는 virtual object에 두고 세션당 실행 하나만 돌게 하라
- 방법: 세션을 virtual object(stateful actor)로 모델링한다. 고유 ID(세션 ID), 세션별 격리된 key-value state(메시지 히스토리), durable 함수를 실행하는 핸들러 집합을 갖는다. virtual object는 한 번에 실행 하나만 보장하고 두 번째 실행은 큐잉되어 상태 덮어쓰기를 막는다. 각 실행은 고유 식별자를 가져 다른 프로세스에서 출력 조회·cancel·signal이 가능하다. 실행 중 새 입력이 오면 LLM에게 현재 루프에 관련 있는지 묻고, 관련 있으면 signal로 주입하고 아니면 현재 실행을 cancel한 뒤 새 정보로 다시 시작한다. cancel은 호출 체인을 따라 서브 에이전트부터 취소된다.
- 출처: Every step you take, every call you make: the reliable agent stack — Giselle van Dongen, Restate — AI Engineer · 10:03
- 보정: [홍보성] 관련성 판정을 LLM에 맡기는 부분은 오판 시 실행을 잘못 취소할 수 있는데, 영상은 그 실패 모드를 다루지 않는다.
11. 비싼 호출은 task 데코레이터로 감싸 재개 시 캐시된 결과를 쓰게 하라
- 방법: 노드 안에서 interrupt를 호출하면 예외가 던져지고 런타임이 상태를 기록한 뒤 멈춘다. 재개는 command resume에 값을 넣어 같은 thread id로 호출한다. 재개 시 노드는 interrupt 지점이 아니라 그 노드의 맨 처음부터 다시 실행되므로, interrupt 윗줄의 retrieval·모델 호출·DB insert·메시지 전송이 두 번 실행된다. 따라서 interrupt 이전의 부수효과는 멱등이어야 한다. 비싼 작업은 task로 감싸면 결과가 persistence layer에서 캐시로 돌아와 두 번 실행되지 않는다. 점검법은 프로덕션 에이전트의 승인 게이트 노드를 열어 interrupt 윗줄의 모델 호출·이메일 전송·DB insert를 세어 보는 것이다.
- 출처: LangGraph Runs Your Code Twice Every Time Someone Clicks Approve — Beo Beo · 02:56
- 보정: '데코레이터 하나로 이중 과금 종결'이라지만 task 적용 코드 예시는 없고, task 밖 부수효과는 여전히 직접 멱등 처리해야 한다.
12. interrupt를 try/except로 감싸지 말아라
- 방법: interrupt를 try/except로 감싸면 예외가 삼켜져 일시정지가 런타임에 도달하지 않는다. 한 노드 안의 여러 interrupt는 순서를 바꾸지 않는다. 매칭이 엄격히 인덱스 기준이기 때문이다. 그 노드가 subgraph를 호출했다면 재개 시 부모도 맨 처음부터 다시 시작된다.
- 출처: LangGraph Runs Your Code Twice Every Time Someone Clicks Approve — Beo Beo · 03:32
- 보정: LangGraph 공식 가이드의 주의사항을 옮긴 것이며 재현 코드는 없다.
13. compile 호출을 열어 durability가 exit·async·sync 중 무엇으로 켜져 있는지 확인하라
- 방법: 자신의 compile 호출을 열어 durability 설정을 확인한다. exit는 실행이 끝나거나 에러가 나거나 interrupt에 걸릴 때만 체크포인트를 쓴다. 가장 빠르지만 중간에 프로세스가 죽으면 디스크에 돌아갈 것이 없다. async는 다음 스텝이 실행되는 동안 쓴다. 성능은 좋지만 크래시 시 쓰기가 유실되는 작은 창이 있다. sync는 매번 다음 스텝 전에 쓴다. 대신 지연을 치른다.
- 출처: LangGraph Runs Your Code Twice Every Time Someone Clicks Approve — Beo Beo · 03:59
- 보정: 어느 모드를 골라야 하는지 권고는 없다. '대부분 이 단어를 타이핑해 본 적도 없다'는 근거 없는 발화다.
14. 크래시 후 재개는 thread id를 다시 호출하는 cron 잡을 직접 만들어 처리하라
- 방법: LangGraph checkpointer는 프로세스를 감시하지 않는다. 새벽에 죽어도 알림·supervisor·heartbeat·worker pool이 없고 상태만 Postgres에 남는다. 사람이나 직접 작성한 cron 잡이 그 thread id를 다시 invoke해야 재개된다. 두 프로세스가 같은 thread를 동시에 재개하면 둘 다 실행되어 부수효과가 두 번 나므로 중복 재개를 막아야 한다. 체크포인트는 superstep당·thread당 하나씩 영원히 쌓이므로 직접 삭제한다. 프로토타입은 in-memory saver로 충분하며 프로세스와 함께 사라진다.
- 출처: LangGraph Runs Your Code Twice Every Time Someone Clicks Approve — Beo Beo · 04:31
- 보정: cron 잡 작성법·중복 재개 방지·삭제 정책의 구체 방법은 없다. 이 논지의 출처로 언급된 Diagrid는 durable execution을 파는 경쟁사다. Temporal이 크래시 케이스에 구조적으로 낫다는 비교도 별도 런타임 운영이 조건이다.
시도 후보
- tmux 세션 안에서 Claude Code 돌리기(팁 1·2): 개발 머신에서 긴 세션을 시작할 때 이름 세션을 만들고, 터미널을 일부러 닫았다가
tmux a -t로 돌아오는지 본다. - Restore code 전에 debug logging 켜기(팁 6): 심링크가 있는 프로젝트에서 복원할 때 건너뛴 경로가 로그에 이름으로 남는지 확인한다.
오늘의 영상
- 죽은 클로드 코드를 살려내는 티먹스, 초보자를 위한 개념 설명과 팁과 세팅! — 편집자P · 업로드 2026-03-24 · 4903회 · 12분 34초 · 초보 튜토리얼이지만 세션 복구 조작이 구체적. 재부팅 한계는 스스로 인정.
- Claude Code's Undo Misses 4 Things. One of Them Is Your Fault. — Suk Yom · 업로드 2026-08-14 · 9회 · 8분 26초 · 조회수는 낮지만 팁 밀도가 가장 높았다. 제목의 '5초 복구'는 과장.
- Every step you take, every call you make: the reliable agent stack — Giselle van Dongen, Restate — AI Engineer · 업로드 2026-09-14 · 4791회 · 20분 49초 · 개발사 강연. 개념은 선명하나 코드 세부는 화면에 있어 자막만으로 복원 불가.
- LangGraph Runs Your Code Twice Every Time Someone Clicks Approve — Beo Beo · 업로드 2026-08-21 · 15회 · 8분 17초 · 회의론 층. 공식 트러블슈팅 페이지를 근거로 대지만 논지의 출처가 경쟁사임을 밝힌다.
한국어 초보 튜토리얼, Claude Code 사용자 채널, 개발사 컨퍼런스 강연, 프레임워크 회의론의 네 층이다. 같은 날 다른 층의 두 편(Restate·Beo Beo)이 '체크포인트만으로는 복구가 아니다'에서 만난 것이 이 호의 가장 강한 신호다.
지켜볼 점 / 내일 주제 후보
- 멱등: 이번 호 네 편 중 세 편이 '재개 시 부수효과가 두 번 난다'를 전제로 깔았다. 도구 호출·메시지 발송·원장 쓰기를 멱등하게 만드는 절차만 따로 걸어볼 만하다.
- 신도구: 앞선 비용 호에서 밀린 후보가 두 호째 대기 중이다. 기능 목록보다 실제 작업을 끝내는 절차가 있는 영상을 우선한다.
- 평가: 최근 10 주제에서 빠졌으므로 다시 고를 수 있다. 다음 후보는 제안이며 자동 일정 등록은 아니다.
이 호의 한계
- 자막만 읽었다. 화면의 코드·시연은 확인하지 않았고, 효과·시간·비용은 실측값이 아니다.
- 다섯 갈래 8개 질의로 95편을 모아 중복 제거 뒤 원장 영상 13편을 제외한 82편의 날짜를 전부 확인했다. 2026-03-20 기준 통과 62편, 탈락 20편(too_old). 오늘 원장에 기록된 82행과 날짜 확인 편수가 일치한다.
- 선정 4편은 편집 판단이다. 자막 실패는 0편. 1차 증류 32건 중 15건을 상세 추출했고, tmux 마우스 설정 1건은 복구와 무관해 뺐다. 기존 실패복구 팁 14건의 제목을 추출기에 전달했고, Restore code 선택지는 09-12 호와 겹쳐 팁 3의 보정에 표기했다.
- 자동자막이 tmux를 '팀웍스·티먹스'로 받아썼다. 보고서와 팁 DB의 제목은 tmux로 고쳤고, 세션 이름 옵션
-s는 공식 사용법으로 보완했다. - Restate 강연과 Beo Beo 영상 모두 durable execution 제품(Restate·Diagrid·Temporal)의 이해관계 안에 있다. 타임스탬프는 발췌가 시작하는 대략적 위치다.
- 공유창고 HTML은 초안으로 만들었고 공개·알림 전달은 검수 뒤 하네스가 맡는다. 외부 발송·일정 변경은 하지 않았다.