Claude Code 상세 사용법 41: Channels로 외부 이벤트를 세션에 밀어 넣기 | DAKER 커뮤니티
Claude Code 상세 사용법 41: Channels로 외부 이벤트를 세션에 밀어 넣기
지난 편의 /loop는 주기적으로 묻는 방식입니다. Channels는 반대입니다. CI, 모니터링, 채팅, 내부 도구가 이벤트를 감지하면 MCP 채널 서버가 실행 중인 Claude Code 세션으로 알림을 밀어 넣습니다. 공식 문서 기준으로 Channels는 research preview이며, Claude Code v2.1.80 이상과 조직 설정이 필요할 수 있습니다.
언제 Channels가 더 낫나
폴링은 단순하지만 늦거나 비쌀 수 있습니다. “실패가 생긴 순간에만 반응”해야 한다면 Channels가 맞습니다.
Use a channel when a CI failure, deploy alert, or support escalation should interrupt the current Claude Code session with fresh context.예를 들어 배포 알림이 오면 Claude가 최근 커밋, 실패 로그, 관련 테스트를 보고 원인을 좁힙니다. 슬랙 브리지처럼 양방향 채널을 만들면 Claude가 응답 도구로 메시지를 되돌려 보낼 수도 있습니다.
기본 구조
핵심은 “외부 이벤트를 그대로 쉘 명령으로 바꾸지 않는다”입니다. 채널 서버가 발신자를 검증하고, Claude에게 필요한 최소 정보만 전달해야 합니다.
안전한 이벤트 페이로드
좋은 페이로드는 짧고 추적 가능합니다.
{
"event_id": "deploy-2026-06-08-1422",
"source": "staging-ci",
"summary": "Smoke test failed after checkout deploy",
"log_url": "https://ci.example.com/runs/123",
"repo": "org/app",
"commit": "abc1234"
}나쁜 페이로드는 비밀값, 전체 로그, 검증되지 않은 사용자 입력을 한꺼번에 밀어 넣는 방식입니다. LLM 개발 워크플로우에서 이벤트 입력도 프로덕션 입력처럼 다뤄야 합니다.
실패 모드
채널이 너무 시끄러워 세션이 계속 방해받습니다.
발신자 검증이 약해 임의 웹훅이 작업을 유도합니다.
페이로드가 길어 컨텍스트를 낭비합니다.
승인 릴레이 없이 원격에서 위험 명령을 유도합니다.
이벤트 ID와 세션 결과가 남지 않아 사후 분석이 어렵습니다.
선임 엔지니어 관점
Channels는 Claude Code를 “터미널 안의 도우미”에서 “이벤트 기반 개발 에이전트”로 바꾸는 기능입니다. 하지만 자동화가 강해질수록 경계가 더 중요합니다. sender gating, 최소 페이로드, 권한 릴레이, 감사 로그를 먼저 설계하세요.
실무에서는 /loop로 시작해도 됩니다. 같은 실패를 계속 폴링하고 있다면 그때 Channels로 옮기면 됩니다. 좋은 agentic coding은 멋진 자동화보다, 어떤 이벤트가 Claude를 깨워도 되는지 명확히 정하는 데서 시작합니다.
참고: Claude Code 공식 문서의 Channels, Channels reference, Scheduled tasks 문서를 기준으로 작성했습니다.