Claude Code v2.1.0: 라이프사이클 훅부터 세션 텔레포트까지 — 프로그래머블 에이전트 인프라로

Claude Code v2.1.0의 12개 라이프사이클 이벤트, 스킬 핫 리로드, /teleport 세션 이식성, 와일드카드 권한, Routines 클라우드 자동화를 아키텍처 관점에서 정리한다.

2026-08-14 · 최초 발행 2026-05-05

Anthropic이 2026년 1월 출시한 Claude Code v2.1.0은 단일 릴리스로는 역대 최대 규모인 1,096개 커밋을 포함하며, 에이전트 라이프사이클 제어·스킬 시스템·세션 이식성·다국어 출력 지원 등 16가지 핵심 기능을 한꺼번에 선보였다. 이번 업데이트는 Claude Code를 단순한 AI 코딩 보조 도구에서 프로그래머블 개발 인프라로 격상시키는 전환점으로 평가받는다. 특히 Routines(리서치 프리뷰)와 세션 텔레포트 기능은 AI 에이전트가 터미널과 웹 사이를 넘나들며 자율적으로 반복 작업을 수행하는 새로운 패러다임을 열었다.

왜 이 릴리스가 시스템 수준 변화인가

기존 Claude Code는 사용자가 명령을 입력하면 에이전트가 응답하는 전형적인 턴 기반(turn-based) 구조를 따랐다. 그러나 현대적인 개발 워크플로에서는 에이전트가 장기 세션을 유지하고, 병렬 서브에이전트를 관리하며, 중단된 작업을 재개하는 능력이 필수적이다. v2.1.0은 이 세 가지 요구사항을 체계적인 아키텍처 변경으로 풀었다.

버전별 핵심 아키텍처 변화

v1.x  →  턴 기반 단일 에이전트, 수동 도구 승인
v2.0  →  서브에이전트 기초 도입, 기본 훅 지원
v2.1  →  라이프사이클 완전 제어, 핫 리로드 스킬,
          세션 이식성, Routines 클라우드 자동화

이 릴리스에서 특히 주목할 점은 개발 팀의 집중도다. 1,096개 커밋은 약 6주간의 집중 개발을 의미하며, 개별 기능 패치가 아닌 시스템 수준의 설계 변경임을 방증한다.

12개 이벤트로 쪼갠 에이전트 생애주기

v2.1.0에서 에이전트 라이프사이클은 12개 이벤트로 세분화됐다. 이벤트는 발생 빈도에 따라 세 계층으로 나뉜다.

아니오다음종료Deny세션 시작SessionStart사용자 입력UserPromptSubmit도구 호출 요청PreToolUse(차단·수정 가능)도구 실행PostToolUse(결과 감사·로깅)추가 도구필요?Stop(서브에이전트:SubagentStop)계속?SessionEndStopFailure오류 처리

각 이벤트에서 실행되는 훅(hook)은 셸 커맨드, HTTP 엔드포인트, LLM 프롬프트 세 가지 핸들러 유형을 지원한다. async: true 플래그를 쓰면 훅이 백그라운드에서 비동기로 실행돼 에이전트의 응답 지연이 발생하지 않는다.

PreToolUse는 라이프사이클 훅 중 유일하게 도구 호출을 차단할 수 있는 이벤트다. 특정 디렉터리에 대한 파일 쓰기 차단, 운영 환경 API 호출 사전 검토 강제, 도구 입력값 스키마 유효성 검사, 감사 로그 기록 후 조건부 허용 같은 보안 패턴을 여기서 구현할 수 있다. PostToolUse는 도구 실행이 끝난 뒤 tool_input(전달된 인자)과 tool_response(반환 결과)를 모두 받아 결과 분석, 외부 시스템 동기화, 오류 패턴 감지에 활용된다.

장기 실행 에이전트에서 가장 중요한 문제는 상태 손실이다. v2.1.0은 SessionStart 훅으로 이전 세션의 컨텍스트를 복원하는 패턴을 공식 지원한다.

[세션 지속성 패턴]

SessionStart 훅:
  1. .omc/state/ 또는 외부 스토어에서 이전 상태 로드
  2. 작업 큐(task queue) 복원
  3. 미완료 도구 호출 목록 재주입

Stop 훅:
  1. 현재 컨텍스트 직렬화 (JSON/YAML)
  2. 완료된 항목 체크포인트 기록
  3. 다음 세션을 위한 재개 힌트 저장

SessionEnd 훅:
  1. 최종 상태 커밋
  2. 메트릭 전송 (토큰 사용량, 경과 시간)
  3. 리소스 정리

이 패턴 덕분에 장시간 실행되는 리팩터링, 대규모 테스트 수정, 문서 생성 같은 작업에서 에이전트가 예기치 않게 중단되더라도 진행 상황을 보전할 수 있다. v2.1.0의 또 다른 주목할 변화는 "에이전트가 도구 승인 거부를 받아도 중단되지 않는다"는 점이다. 이전 버전에서는 사용자가 특정 도구 호출을 거부하면 에이전트 루프 전체가 종료됐다. 새 버전에서는 거부 이벤트를 StopFailure로 처리하고 에이전트가 대안 경로를 탐색하도록 설계가 바뀌었다 — 사람과 에이전트의 협력 모델에서 중요한 개선이다.

스킬 핫 리로드와 플러그인 패키징

v2.1.0에서 스킬(Skill)과 플러그인(Plugin)은 명확하게 구분된다.

번들링스킬 (Skill)단일 SKILL.md 파일YAML 프론트매터(name, description,allowed-tools, hooks)마크다운 지시사항(Claude 실행 문맥)플러그인 (Plugin).claude-plugin/ 디렉터리plugin.json(메타데이터)commands/ (슬래시 커맨드)agents/ (서브에이전트)skills/ (스킬 번들).mcp.json (외부 통합)

스킬은 단일 마크다운 파일로 재사용 가능한 지시사항을 담고, 플러그인은 스킬·훅·서브에이전트·슬래시 커맨드를 하나의 설치 가능한 패키지로 묶는 배포 단위다. 이 구분 덕분에 팀은 공통 스킬을 플러그인으로 패키징해 레지스트리에 배포하고 동료들이 한 줄 명령으로 설치할 수 있다.

v2.1.0 이전에는 스킬 파일을 수정한 뒤 효과를 확인하려면 세션을 완전히 재시작해야 했다. 핫 리로드(Hot Reload)는 ~/.claude/skills/ 또는 .claude/skills/ 디렉터리의 변경을 실시간으로 감지하고 새 스킬을 즉시 활성화해, 스킬 개발 사이클을 대폭 단축한다.

[핫 리로드 동작 흐름]

파일 시스템 감시자 (FSWatcher)
  ↓ SKILL.md 수정 감지
스킬 파싱 엔진
  ↓ YAML 프론트매터 재파싱
스킬 레지스트리 갱신
  ↓ 기존 스킬 무효화 → 새 정의 등록
활성 세션에 즉시 반영
  ↓ 다음 스킬 호출 시 새 버전 실행

v2.1.0의 실용적인 기능 중 하나는 SKILL.md 프론트매터에 훅을 직접 정의할 수 있다는 점이다. 스킬이 활성화된 동안에만 적용되는 범위 제한 훅(scoped hook)을 구현할 수 있다.

---
name: "secure-deploy"
description: "배포 전 보안 검사를 강제하는 스킬"
allowed-tools:
  - Bash
  - Read
hooks:
  PreToolUse:
    - matcher: "Bash"
      handler:
        type: command
        command: "python scripts/security_gate.py"
  Stop:
    - handler:
        type: command
        command: "python scripts/deploy_audit.py"
        async: true
---

이 프론트매터 방식의 훅은 글로벌 settings.json에 훅을 등록하는 방식과 달리, 스킬이 종료될 때 자동으로 해제된다. 훅 오염(hook pollution) 없이 맥락 의존적인 행동 제어가 가능하다. 또한 스킬은 "포킹된 컨텍스트(forked context)"를 지원한다 — 스킬이 호출되면 현재 세션의 컨텍스트를 복사한 독립 실행 환경에서 스킬의 지시사항이 적용되어, 스킬 실행이 메인 세션의 상태를 오염시키지 않는다. 커스텀 에이전트 지원이 추가되면서, 스킬이 자신만의 모델 설정(온도, 최대 토큰 등)과 허용 도구 목록을 가진 서브에이전트를 스폰할 수도 있다. 조사(research), 코드 생성, 테스트 실행, 문서 작성을 전문화된 서브에이전트가 병렬로 처리하는 파이프라인을 스킬 하나로 구현할 수 있다는 뜻이다.

텔레포트로 잇는 터미널과 웹

AI 개발 워크플로에서 세션 이식성은 종종 간과되는 요소다. 개발자가 터미널에서 작업하다가 회의실로 이동하거나, 데스크톱에서 시작한 작업을 노트북이나 스마트폰의 웹 인터페이스에서 이어받아야 하는 상황은 일상적이다. v2.1.0 이전에는 이런 전환에서 세션 컨텍스트가 사라져 처음부터 다시 시작해야 했다.

/teleport(세션 직렬화)claude --teleport(세션 복원)/remote-control원격 제어수신로컬 터미널(CLI 세션)클라우드Claude.ai/code 브라우저(Web Session)

/teleport 명령(단축: /tp)은 현재 CLI 세션을 claude.ai/code 웹 인터페이스로 전송한다. 내부적으로 현재 대화 히스토리·작업 디렉터리 경로·Git 브랜치 정보를 직렬화하고, 클라우드 세션 스토어에 암호화된 상태 페이로드를 업로드하며, 웹 인터페이스에서 동일 사용자가 세션을 수신하면 상태를 복원하는 순서로 동작한다. 역방향 전환은 claude --teleport 플래그로 클라우드 세션을 로컬 터미널로 가져오는 방식인데, 이 과정에서 Git 저장소가 동일하고 해당 브랜치가 원격에 푸시되어 있으며 로컬에 미커밋 변경사항이 없어야 한다는 조건이 적용된다.

/remote-control 명령은 로컬 터미널에서 실행 중인 Claude Code 세션을 웹 또는 모바일 브라우저에서 관리할 수 있게 한다. /config에서 "Enable Remote Control for all sessions"를 활성화하면 모든 세션이 기본적으로 원격 제어 가능 상태가 된다 — 장시간 실행되는 에이전트 작업을 모니터링하면서 필요 시 개입할 수 있는 DevOps 친화적인 패턴이다.

CLI WebWeb CLI세션 상태 구성 요소대화 히스토리(토큰 압축 포함)작업(미완료 태스크)파일시스템 컨텍스트(경로, Git 상태)도구 상태(실행 중인 프로세스)직렬화 레이어전송 방향클라우드 스토어(암호화 업로드)로컬 복원(Git 동기화 필요)

파일시스템 상태 동기화가 특히 복잡한데, 웹 환경은 로컬 파일에 직접 접근할 수 없기 때문에 Git을 경계 레이어로 활용한다. 텔레포트 시 미커밋 변경사항이 없어야 한다는 조건이 여기서 나온다.

다국어 출력과 와일드카드 권한

v2.1.0은 claude_language 설정 또는 시스템 로케일 감지로 Claude의 응답 언어를 지정할 수 있도록 했다. 한국어(ko), 일본어(ja), 스페인어(es) 등을 설정하면 코드 주석 설명, 오류 메시지 해석, 작업 계획 서술이 모두 해당 언어로 출력된다. 영어에 익숙하지 않은 개발자도 Claude Code를 모국어로 활용할 수 있고, 팀 내 문서화 언어와 에이전트 출력 언어를 일치시킬 수 있다는 점에서 글로벌 개발 팀에 실질적인 접근성 개선을 제공한다.

권한 규칙도 와일드카드 패턴을 완전히 지원하게 됐다. 기존에는 허용할 도구와 명령을 일일이 열거해야 했지만, 이제 패턴 기반 규칙으로 정책을 표현할 수 있다.

[와일드카드 권한 예시]

# npm run 명령 계열 모두 허용
Bash(npm run:*)

# 특정 플래그가 포함된 명령만 허용 (도움말 조회)
Bash(*-h*)

# 특정 디렉터리 내 파일 읽기만 허용
Read(src/**/*.ts)

# 특정 패턴을 제외한 모든 쓰기 차단
Write(!production/**:*)

권한 평가 순서는 deny → ask → allow를 따르며 첫 번째 매칭 규칙이 우선한다. "기본 거부, 예외 허용(default deny, explicit allow)" 정책을 간결하게 표현할 수 있다.

클라우드에서 스스로 도는 Routines

2026년 4월 14일 리서치 프리뷰로 출시된 Routines는 Claude Code의 자동화 철학을 새로운 차원으로 끌어올린다. Routine은 저장된 Claude Code 설정(프롬프트 + 저장소 + 커넥터 세트)을 패키지로 만들어 자동으로 반복 실행한다.

Routine 정의저장된 프롬프트연결된 저장소커넥터 세트(Slack, GitHub 등)트리거 유형Scheduled(시간 기반)API(HTTP POST)Webhook(GitHub 이벤트)클라우드 실행(로컬 불필요)결과 배포(PR, Slack, 로그)

핵심은 Routines가 클라우드에서 실행된다는 점이다. 사용자의 Mac이나 로컬 머신이 온라인 상태일 필요가 없으며, Anthropic의 인프라에서 스케줄된 시간에 자동 실행된다. 효과적인 Routine을 설계하려면 세 가지 원칙을 따라야 한다. 첫째는 멱등성(Idempotency) 보장으로, Routine이 여러 번 실행되더라도 동일한 결과를 내야 한다 — 이슈 레이블 추가나 PR 생성 전 중복 확인이 예시다. 둘째는 명확한 성공 기준 정의로, Claude가 "완료"를 판단할 수 있는 구체적인 조건을 프롬프트에 담아야 모호한 목표로 인한 비용 낭비와 부작용을 막을 수 있다. 셋째는 커넥터를 통한 결과 가시화로, Routine 실행 결과가 Slack·GitHub PR·로그 파일처럼 추적 가능한 형태로 기록되어야 팀이 자동화 품질을 모니터링할 수 있다.

Routines는 Pro, Max, Team, Enterprise 요금제에서 사용 가능하며, 일일 실행 횟수는 각각 5회, 15회, 25회로 제한된다. API 엔드포인트는 experimental-cc-routine-2026-04-01 베타 헤더를 쓰며 리서치 프리뷰 기간 중 스펙이 바뀔 수 있다. 실제 활용 사례로는 야간 이슈 트리아지(신규 이슈 분류·레이블·담당자 배정 후 Slack 요약 전송), 주간 문서 드리프트 검사(변경된 API를 참조하는 문서 자동 탐지·업데이트 PR 생성), 배포 후 스모크 테스트(CD 파이프라인 완료 후 자동 검증·go/no-go 신호 발송)가 있다.

v2.1.0이 가져온 가장 근본적인 변화는 에이전트를 "도구(tool)"가 아닌 "협력자(collaborator)"로 보는 관점의 전환이다. 라이프사이클 훅은 에이전트의 모든 행동을 감사·제어할 수 있는 결정론적 레이어를 제공하고, 스킬 핫 리로드는 에이전트 능력을 실시간으로 확장하는 플러그인 생태계를 가능하게 한다. 세션 이식성은 작업 컨텍스트가 특정 단말에 종속되지 않음을 보장하며, Routines는 사람의 개입 없이 클라우드에서 스스로 작동하는 에이전트 인프라를 구현한다. 이 네 가지 기능이 결합되면 개발자는 복잡한 장기 작업을 전문화된 에이전트들의 협력으로 분해하고 각 에이전트의 행동을 세밀하게 제어하면서, 작업 진행 상황을 어떤 디바이스에서도 이어받는 워크플로를 구축할 수 있다.

Claude Code v2.1.0은 1,096개 커밋에 담긴 명확한 메시지를 전달한다. 에이전트는 단순한 질의응답 도우미가 아니라 수명주기를 관리하고, 스킬로 능력을 확장하며, 세션 경계를 넘어 작업을 이어가는 프로그래머블 인프라여야 한다는 것이다. 에이전트 라이프사이클 제어·스킬 핫 리로드·세션 텔레포트·Routines가 완전히 성숙하면, AI 에이전트가 사람과 동등한 수준의 지속성과 자율성을 갖춘 개발 환경이 현실화될 것이다.

Sources

Claude Code에이전트 라이프사이클스킬 시스템세션 이식성Routines