Skip to content
Back to BlogTrend

Claude Code v2.1.76~81 심층 분석: --channels 텔레그램 연동, --bare CI/CD 모드, /remote-control 원격 제어

8 min read0

Claude Code v2.1.76~81 심층 분석: 9가지 핵심 기능의 아키텍처와 실전 활용

2026년 3월 14일부터 20일까지, Claude Code는 6개 버전(v2.1.76~81)을 연속 릴리즈하며 외부 메시징 연동, CI/CD 전용 모드, 모바일 원격 제어, 컨텍스트 4배 확장, MCP 프로토콜 강화까지 아우르는 대규모 업데이트를 쏟아냈습니다. 이 글에서는 각 기능의 내부 아키텍처, 구체적인 CLI 커맨드, GitHub Actions 통합 예시, 그리고 실무 시나리오별 활용법을 코드와 함께 깊이 있게 분석합니다.

1. --channels: 텔레그램/디스코드에서 Claude Code 세션 양방향 제어 (v2.1.80~81)

터미널을 열지 않고 텔레그램이나 디스코드 앱에서 Claude Code 세션에 메시지를 푸시하고, 작업 결과를 다시 수신받는 양방향 채널 기능입니다. 출퇴근길 지하철에서 스마트폰으로 "PR #42 리뷰해줘"라고 보내면, 사무실 맥북의 Claude Code가 분석을 수행하고 텔레그램으로 결과를 회신하는 구조입니다.

설치부터 실행까지

# Step 1: 텔레그램 플러그인 설치
/plugin install telegram@claude-plugins-official

# Step 2: 채널 연결하여 세션 시작
claude --channels plugin:telegram@claude-plugins-official

# Step 3: 텔레그램 봇과 페어링 (QR 또는 코드)
# 페어링 완료 후 allowlist로 접근 가능한 사용자 관리

MCP 채널 프로토콜 아키텍처

┌──────────────────┐     아웃바운드       ┌──────────────────────────┐
│  텔레그램 앱       │     HTTPS only     │  MCP 채널 프로토콜 릴레이   │
│  (모바일/데스크톱) │ ─────────────────→ │  (Anthropic 인프라)        │
│                  │ ←───────────────── │                          │
└──────────────────┘                    └────────────┬─────────────┘
                                                     │ 아웃바운드
                                                     │ HTTPS only
                                                     ▼
                                        ┌──────────────────────────┐
                                        │   Claude Code CLI 세션    │
                                        │   (로컬 터미널)            │
                                        │                          │
                                        │   ┌────────────────────┐ │
                                        │   │ 소스 코드 (로컬 유지)│ │
                                        │   └────────────────────┘ │
                                        └──────────────────────────┘

핵심 설계 원칙 세 가지가 있습니다.

첫째, 아웃바운드 HTTPS만 사용합니다. 인바운드 포트를 열지 않으므로 방화벽이나 NAT 설정 변경이 불필요합니다. 둘째, 세션별 opt-in 방식입니다. --channels 플래그를 명시한 세션에서만 활성화되므로, 의도치 않은 외부 접근을 원천 차단합니다. 셋째, 텍스트만 전송합니다. 소스 코드 자체는 로컬에 그대로 남으며, 분석 결과 텍스트만 메시징 앱으로 전달됩니다.

Team/Enterprise 관리자 제어

// settings.json (조직 레벨)
{
  "channelsEnabled": false,  // 조직 전체 비활성화
  "allowedChannelPlugins": [
    "telegram@claude-plugins-official"
  ]
}

관리자가 channelsEnabledfalse로 설정하면 조직 내 모든 사용자에게서 채널 기능이 차단됩니다. allowedChannelPlugins 배열로 허용 플러그인을 화이트리스트 관리할 수 있습니다.

실무 시나리오

시나리오설정효과
야간 배치 모니터링--channels로 세션 시작 + 크론 스케줄링배치 완료/실패 시 텔레그램 푸시 알림
이동 중 코드 리뷰텔레그램에서 "PR 리뷰해줘" 전송데스크톱 Claude가 분석 후 결과 회신
팀 디스코드 연동디스코드 채널에서 공유 세션팀원 누구나 질문/지시 가능
장애 대응장애 발생 시 텔레그램으로 로그 분석 요청터미널 접근 없이 초동 대응

알려진 제한사항

현재 리서치 프리뷰 단계이며, 첫 응답 후 세션이 멈추는 버그(GitHub Issue #36477)가 보고되어 있습니다. 허용된 공식 플러그인만 사용 가능하며, 커스텀 채널 플러그인은 아직 지원되지 않습니다.

2. --bare: CI/CD 파이프라인 전용 경량 실행 모드 (v2.1.81)

CI/CD 환경에서 Claude Code를 프로그래매틱하게 호출할 때, 개발 환경에서만 필요한 컴포넌트를 모두 제거하는 전용 모드입니다. 비유하면, 레이싱카에서 에어컨, 오디오, 뒷좌석을 전부 떼어내고 엔진과 바퀴만 남긴 것과 같습니다.

비활성화되는 컴포넌트

컴포넌트일반 모드--bare 모드절감 효과
훅 (PreToolUse 등)활성화비활성화실행 오버헤드 제거
LSP 서버활성화비활성화메모리 30~50MB 절감
플러그인 동기화활성화비활성화네트워크 호출 제거
스킬 디렉토리 스캔활성화비활성화디스크 I/O 제거
자동 메모리활성화완전 비활성화상태 파일 없음
인증OAuth/키체인ANTHROPIC_API_KEY만키체인 접근 불필요
예상 시작 시간~200ms~60ms70% 단축

CLI 활용 패턴

# 패턴 1: PR 자동 리뷰 (JSON 출력)
claude -p --bare "Review this PR and output JSON with issues found" \
  --allowedTools Read \
  --max-turns 5 \
  --output-format json

# 패턴 2: 보안 취약점 스캔
claude -p --bare "이 디렉토리의 보안 취약점을 분석하고 심각도별로 분류해줘" \
  --allowedTools Read,Grep,Glob \
  --max-turns 10

# 패턴 3: 코드 생성 (단일 파일)
claude -p --bare "Express.js 미들웨어를 생성해줘" \
  --allowedTools Write \
  --max-turns 3 \
  --output-format text

GitHub Actions 완전 통합 예시

name: Claude Code Automated Review
on:
  pull_request:
    types: [opened, synchronize]

jobs:
  claude-review:
    runs-on: ubuntu-latest
    permissions:
      pull-requests: write
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Install Claude Code
        run: npm install -g @anthropic-ai/claude-code

      - name: Run Claude Code Review
        env:
          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
        run: |
          # 변경된 파일만 추출
          CHANGED=$(git diff --name-only ${{ github.event.pull_request.base.sha }})

          # Claude Code로 리뷰 실행
          claude -p --bare \
            "다음 변경 파일들을 리뷰해줘: $CHANGED.
             버그, 보안 이슈, 성능 문제를 JSON 배열로 출력." \
            --allowedTools Read,Grep,Glob \
            --max-turns 15 \
            --output-format json > review.json

      - name: Post Review Comment
        uses: actions/github-script@v7
        with:
          script: |
            const review = require('./review.json');
            await github.rest.issues.createComment({
              owner: context.repo.owner,
              repo: context.repo.repo,
              issue_number: context.issue.number,
              body: `## Claude Code Review\n${JSON.stringify(review, null, 2)}`
            });

필수 조건

CI 환경에서는 OAuth나 macOS 키체인에 접근할 수 없으므로, 반드시 ANTHROPIC_API_KEY 환경 변수를 설정해야 합니다. 이 키가 없으면 --bare 모드는 인증 실패로 즉시 종료됩니다.

3. /remote-control: 모바일에서 VSCode 세션 원격 접속 (v2.1.79)

VSCode에서 실행 중인 Claude Code 세션에 QR 코드나 URL로 접속하여, 브라우저나 모바일 기기에서 이어서 작업할 수 있는 기능입니다.

실행 방법

# VSCode 터미널에서 실행
/rc
# 또는 풀 커맨드
/remote-control

# 출력: QR 코드 + 접속 URL
# 모바일에서 QR 스캔 → 브라우저로 동일 세션 접속

보안 아키텍처

┌──────────────────┐                         ┌────────────────────────┐
│  모바일 브라우저    │ ──── 아웃바운드 ────→   │  Anthropic HTTPS 릴레이 │
│  (Safari/Chrome)  │       HTTPS only       │  (중개 서버)             │
│                  │ ←─── 아웃바운드 ─────    │                        │
└──────────────────┘       HTTPS only        └──────────┬─────────────┘
                                                        │ 아웃바운드
                                                        │ HTTPS only
                                                        ▼
                                             ┌────────────────────────┐
                                             │  로컬 VSCode + CLI      │
                                             │  ┌──────────────────┐  │
                                             │  │ 소스 코드 (로컬)  │  │
                                             │  │ 외부 전송 없음    │  │
                                             │  └──────────────────┘  │
                                             └────────────────────────┘

설계의 핵심은 양쪽 모두 아웃바운드 HTTPS만 사용한다는 점입니다. 인바운드 포트가 열리지 않으므로 방화벽 설정 변경이 전혀 필요 없습니다. 텍스트 명령과 응답만 릴레이 서버를 경유하며, 소스 코드 자체는 로컬 머신에서 벗어나지 않습니다.

설정 및 제약사항

항목내용
구독 요건Max 또는 Pro 플랜 필요
타임아웃10분 비활동 시 자동 종료
기본 활성화/config → "Enable Remote Control for all sessions" 토글
전송 데이터텍스트만 (코드 자체는 로컬 유지)

시장 규모 참고

Claude Code는 현재 일일 설치 수 2,900만, 연간 매출 약 25억 달러 규모로, /remote-control 같은 모바일 접근성 기능은 이 사용자 기반을 더 확대하는 전략적 업데이트입니다.

4. Opus 4.6 출력 토큰: 기본 64K, 상한 128K (v2.1.77)

Opus 4.6 모델의 출력 토큰 한도가 이전 대비 4배 확장되었습니다.

항목이전 (Opus 4)현재 (Opus 4.6)증가 배수
기본 출력16K64K4x
상한 출력32K128K4x
ultrathink미지원심층 추론 모드신규

128K 출력 토큰은 일반 코드 기준 약 8,000~10,000줄을 한 번에 생성할 수 있는 규모입니다. 이전에는 대형 파일 생성 시 중간에 잘리거나 분할 요청이 필요했지만, 이제는 2,000줄 이상의 모듈도 단일 턴에서 완성할 수 있습니다.

ultrathink 심층 추론

ultrathink 모드는 복잡한 아키텍처 설계, 대규모 리팩토링, 다중 모듈 간 의존성 분석 같은 고난도 작업에서 더 깊은 추론 체인을 생성합니다.

# 대형 모노레포 전체 의존성 분석 (128K 컨텍스트 + ultrathink)
claude "이 모노레포의 250개 패키지 간 순환 의존성을 찾고 해결 방안을 제시해줘"

# 복잡한 마이크로서비스 아키텍처 설계
claude "결제 서비스와 주문 서비스 간 eventual consistency 패턴을 설계해줘.
       Saga 패턴과 Outbox 패턴을 비교 분석하고 코드로 구현해줘"

5. MCP Elicitation: 실행 중 대화형 사용자 입력 프로토콜 (v2.1.76)

MCP(Model Context Protocol) 서버가 도구 실행 도중 사용자에게 추가 정보를 대화형으로 요청할 수 있는 프로토콜입니다. 기존에는 모든 파라미터를 사전에 알아야 했지만, 이제는 실행 중에 폼 필드나 브라우저 URL로 입력을 받을 수 있습니다.

Elicitation 프로토콜 흐름

MCP 서버              Claude Code CLI           사용자
   │                        │                      │
   │── Elicitation ────────→│                      │
   │   { schema: {          │── 폼 표시 ──────────→│
   │     type: "object",    │                      │
   │     properties: {      │                      │── 값 입력
   │       db_password: {   │                      │   (폼 필드 또는
   │         type: "string",│                      │    브라우저 URL)
   │         format:"pass"  │                      │
   │       }                │←── 입력값 전달 ───────│
   │     }                  │                      │
   │   }}                   │                      │
   │←─ ElicitationResult ──│                      │
   │   { db_password: "***"}│                      │
   │                        │                      │
   │── 도구 실행 계속 ──────→│                      │

훅 연동

Elicitation 훅      → MCP 서버가 입력을 요청할 때 트리거
ElicitationResult 훅 → 사용자가 입력을 완료했을 때 트리거
PostCompact 훅       → 컨텍스트 압축 후 후처리 (동일 릴리즈에 추가)

Elicitation 훅으로 요청 내용을 검증하거나 로깅할 수 있고, ElicitationResult 훅으로 입력값의 유효성을 추가 검증할 수 있습니다. PostCompact 훅은 컨텍스트가 압축된 뒤 특정 상태를 복원하는 용도로 활용됩니다.

활용 예시

시나리오Elicitation 요청사용자 입력 방식
DB 연결 설정비밀번호, 호스트 주소폼 필드 (마스킹)
OAuth 인증인증 URL 클릭 → 콜백브라우저 URL 오픈
API 키 등록키 값 입력폼 필드 (마스킹)
배포 대상 선택환경(dev/staging/prod)드롭다운 선택

6. 성능 최적화: 숫자로 보는 6개 버전의 누적 개선

v2.1.76~81에서 누적된 성능 개선을 정량적으로 정리합니다.

지표수치버전영향 범위
macOS 시작 시간60ms 단축v2.1.79모든 세션
--resume 세션 재개45% 속도 향상v2.1.79장시간 작업
--resume 메모리100~150MB 절감v2.1.79메모리 제약 환경
초기 시작 메모리18MBv2.1.79경량 환경
대형 레포 메모리 (250K 파일)80MBv2.1.80모노레포
Yoga WASM 레이아웃 엔진16MBv2.1.80UI 렌더링
번들 크기510KB 축소v2.1.80설치/업데이트
스트리밍 RSS 메모리 누수수정 완료v2.1.81장시간 스트리밍

특히 --resume 성능 45% 향상과 100~150MB 메모리 절감은, 야간 배치나 claude-auto-resume.sh 같은 자동 재시작 래퍼를 사용하는 시나리오에서 체감이 큽니다. 250,000개 파일의 대형 레포에서 80MB만 사용하는 것은, 메모리 제약이 있는 CI 러너에서도 안정적으로 동작한다는 의미입니다.

7. 플러그인 시스템 고도화: 영구 상태부터 에이전트 frontmatter까지

영구 상태 저장소

# 플러그인 내부에서 세션 간 데이터 유지
echo $CLAUDE_PLUGIN_DATA
# → ~/.claude/plugins/{plugin-name}/data/

# 플러그인이 이 경로에 파일을 저장하면 세션 종료 후에도 유지

${CLAUDE_PLUGIN_DATA} 환경 변수로 제공되는 경로에 파일을 저장하면, 세션이 종료되어도 데이터가 보존됩니다. 캐시, 설정, 학습 데이터 등을 세션 간에 공유할 수 있습니다.

settings.json 인라인 소스

// settings.json
{
  "plugins": {
    "my-custom-tool": {
      "source": "settings",
      "config": {
        "apiEndpoint": "https://api.example.com",
        "maxRetries": 3
      }
    }
  }
}

source: 'settings'로 플러그인 설정을 settings.json에 직접 인라인할 수 있어, 별도 설정 파일 관리가 불필요합니다.

에이전트 frontmatter 확장

---
effort: low
maxTurns: 5
disallowedTools:
  - Bash
  - Write
---
# 경량 분석 에이전트
이 에이전트는 읽기 전용으로 코드를 분석합니다.

스킬이나 커맨드 파일의 frontmatter에서 effort 수준, 최대 턴 수, 금지 도구를 선언할 수 있습니다. 이를 통해 에이전트별로 리소스 할당과 권한을 세밀하게 제어합니다.

기타 플러그인 개선

  • ref-tracked re-clone: 플러그인 소스의 git ref가 변경되면 자동 감지하여 재설치합니다.
  • plugin validate: YAML 구조와 스키마를 검증하는 CLI 커맨드로, 배포 전 오류를 미리 잡습니다.
# 플러그인 유효성 검증
plugin validate
# → YAML 구문 오류, 스키마 불일치, 필수 필드 누락 등 검출

8. 보안 강화: 5계층 방어 아키텍처

보안 업데이트 상세

보안 계층기능설명
파일 접근allowRead읽기 가능한 디렉토리/파일을 화이트리스트로 제한
실행 제어StopFailure도구 실행 실패 시 세션 강제 중단
디렉토리 보호.git/.claude 보호핵심 설정 파일에 대한 쓰기 접근 차단
가시성silent disable → visible warning기능 비활성화 시 숨김 처리 대신 명확한 경고 표시
훅 무결성PreToolUse allow→deny 우회 차단allow 판정을 deny로 덮어쓰는 공격 경로 차단

PreToolUse 훅에서 allow 판정이 나온 뒤 악의적인 후속 훅이 deny로 덮어쓰는 우회 공격이 차단된 것은 특히 중요합니다. 에이전트 기반 워크플로우에서 여러 훅이 체이닝될 때, 이 취약점이 악용될 가능성이 있었습니다.

// 공격 시나리오 (차단됨)
PreToolUse Hook A → allow (정상 판정)
PreToolUse Hook B → deny  (악의적 덮어쓰기)
→ v2.1.80 이후: allow 이후 deny 덮어쓰기 불가

9. 기타 주요 개선: UX, 운영, 상태 모니터링

명령어 변경 및 추가

변경이전이후이유
세션 분기/fork/branchGit 용어 일관성
응답 복사없음/copy NN번째 응답을 클립보드에
전체 복사없음/copy w현재 대화 창 전체 복사

에이전트 통신 개선

Agent resume 메커니즘이 SendMessage 프로토콜로 대체되었습니다. 이전에는 에이전트 재개 시 별도의 resume 핸들러가 필요했지만, 이제는 표준 메시지 프로토콜로 통합되어 에이전트 간 통신이 단순해졌습니다.

스트리밍 및 UI

  • 줄 단위 스트리밍: 응답이 청크가 아닌 줄 단위로 실시간 렌더링되어, 대기 체감 시간이 크게 줄었습니다.
  • plan 수락 시 세션 자동 명명: 계획을 승인하면 세션 이름이 자동 설정되어, --resume 시 "어떤 세션이었지?" 하는 혼란이 사라집니다.

rate_limits 상태줄

# 상태줄 실시간 표시 (v2.1.80)
[rate: 42/100 (5h) │ 280/1000 (7d)] claude>

5시간 윈도우와 7일 윈도우 두 가지 기준으로 현재 사용량을 실시간 확인할 수 있습니다. 과금 한도에 도달하기 전에 사전 조치를 취할 수 있어, 팀 예산 관리에 실질적으로 도움이 됩니다.

effort frontmatter 오버라이드

스킬이나 커맨드 파일에서 effort 수준을 개별 지정하여, 작업 유형에 따라 추론 리소스를 차등 배분할 수 있습니다. 예를 들어, 간단한 포맷 변환 스킬에는 effort: low를, 심층 분석 커맨드에는 기본값을 사용하는 식입니다.

자주 묻는 질문 (FAQ)

Q1. --channels로 텔레그램을 연결하면 소스 코드가 외부로 유출되나요?

아닙니다. MCP 채널 프로토콜은 텍스트 메시지만 릴레이하며, 소스 코드 자체는 로컬 머신에 유지됩니다. 아웃바운드 HTTPS만 사용하므로 인바운드 포트 개방도 불필요합니다. Team/Enterprise 관리자는 channelsEnabled: false로 조직 전체에서 이 기능을 차단할 수 있습니다.

Q2. --bare 모드를 일반 개발에도 사용해도 되나요?

기술적으로 가능하지만 권장하지 않습니다. --bare는 훅, LSP, 자동 메모리, 플러그인 동기화를 모두 비활성화하므로, 코드 자동완성, 프로젝트 맥락 파악, CLAUDE.md 규칙 적용 같은 개발 편의 기능을 사용할 수 없습니다. GitHub Actions, Jenkins, 쉘 스크립트 같은 자동화 환경 전용으로 설계된 모드입니다.

Q3. Opus 4.6의 128K 출력 토큰은 구체적으로 어떤 작업에서 차이가 나나요?

가장 큰 차이가 나는 세 가지 시나리오가 있습니다. 첫째, 2,000줄 이상의 대형 파일 전체 생성/수정. 둘째, 여러 모듈에 걸친 리팩토링 계획과 코드를 한 턴에 출력. 셋째, 복잡한 아키텍처 설계 문서와 구현 코드를 동시에 생성. 이전 32K 상한에서는 분할 요청이 필요했던 작업을 단일 턴으로 처리할 수 있습니다.

Q4. MCP Elicitation을 내 MCP 서버에 적용하려면 어떻게 해야 하나요?

Claude Code v2.1.76 이상에서 클라이언트 측 지원이 추가되었으므로, MCP 서버 측에 Elicitation 프로토콜 핸들러를 구현하면 됩니다. JSON Schema 기반으로 폼 필드를 정의하고, 사용자 입력을 ElicitationResult로 수신하는 구조입니다. ElicitationElicitationResult 훅으로 커스텀 검증 로직도 추가할 수 있습니다.

Q5. 성능 수치(시작 18MB, 대형 레포 80MB)는 어떤 환경 기준인가요?

macOS 환경 기준입니다. 시작 메모리 18MB는 기본 세션(프로젝트 로딩 전) 수치이며, 대형 레포 80MB는 250,000개 파일 규모의 모노레포에서 측정한 값입니다. --resume 45% 속도 향상은 이전 버전 대비 벤치마크이며, 세션 크기에 따라 100~150MB의 메모리 절감 효과가 있습니다. Linux CI 러너에서는 메모리 사용이 약간 다를 수 있지만, 개선 비율은 유사합니다.

마무리: 터미널 도구에서 개발 인프라 플랫폼으로

v2.1.76~81의 업데이트는 Claude Code가 단순한 터미널 AI 도구를 넘어 개발 인프라 플랫폼으로 전환되고 있음을 보여줍니다. --channels는 외부 메시징 시스템과의 통합, --bare는 CI/CD 파이프라인 내 네이티브 통합, /remote-control은 디바이스 간 접근성 확장을 의미합니다. 여기에 Opus 4.6의 128K 출력 토큰과 MCP Elicitation으로 추론 역량과 프로토콜 확장성까지 갖추면서, Claude Code는 개발 워크플로우의 모든 접점에서 활용 가능한 플랫폼으로 진화하고 있습니다.


출처

  • Anthropic Claude Code Changelog (v2.1.76, v2.1.77, v2.1.78, v2.1.79, v2.1.80, v2.1.81)
  • Anthropic 공식 문서: Claude Code CLI Reference
  • GitHub Issues: #36477 (--channels 첫 응답 후 멈춤 버그)
  • Anthropic Blog: Claude Code Remote Control 발표
  • Model Context Protocol 공식 사양: Elicitation 프로토콜
  • Claude Code Plugin SDK 문서: 영구 상태, frontmatter 확장