[260724 19일차] Claude Code 심화

2026. 7. 28. 11:00AI 기반 프론트엔드 웹개발자 양성과정

# AI 도구 · 자동화 학습일지

[Claude Code 심화]
커스텀 훅 · 플러그인 · MCP 자동화

2026.07.24 · 학습 범위: Claude Code 도구·명령어(advisor·caveman·skills.sh 등), 커스텀 훅(PreToolUse), 플러그인 제작, MCP

📋 오늘 다룬 것들

오늘은 "Claude Code를 내 손에 맞게 길들이는" 하루였다. 세션을 관리하는 CLI 명령어부터, 위험한 명령을 자동으로 가로채는 커스텀 훅, 스킬·훅·에이전트·MCP를 한데 묶은 플러그인 제작, 그리고 노션 MCP를 연결해 이 학습일지를 자동으로 쓰는 자동화까지 직접 만들어봤다. 어제까지 도구를 "쓰는" 쪽이었다면, 오늘은 도구를 "만드는" 쪽으로 넘어간 느낌이었다.

CLI 명령어
/rename/resume@agent
커스텀 훅
PreToolUsestdin JSONexit code
안전 가드
rm -rfgit resetDROP
플러그인
스킬에이전트MCP
배포
마켓플레이스
자동화
notion MCP/daily-log

🖥 Claude Code CLI — 세션 다루기

세션을 오래 쓰다 보면 대화가 여러 개로 쌓인다. 오늘은 그 세션을 이름 붙이고 다시 찾아 들어가는 명령어를 익혔다.

명령어역할
/rename현재 세션에 제목을 붙여 나중에 알아보기 쉽게 함
/resume이전 세션 목록을 모두 보고 원하는 세션으로 찾아 들어감
/resume"어제 하던 그 작업"으로 정확히 되돌아갈 때 유용하다. 세션마다 /rename으로 제목을 붙여두면, 나중에 목록에서 헤매지 않고 바로 골라 이어갈 수 있다.

@에이전트로 홈페이지 만들기

@에이전트이름으로 특정 서브에이전트를 호출해 작업을 통째로 맡길 수 있다. 오늘은 @"늙크크" 에이전트를 불러 홈페이지(index.html) 한 벌을 만들어봤다. 프롬프트로 일일이 지시하는 대신, 목적에 맞게 설계된 에이전트에게 "만들어줘" 한 번으로 결과물이 나온다는 게 편했다.

🧰 Claude Code 도구·명령어 모음 (허브 카드)

Claude 학습 허브에는 Claude Code를 확장하는 슬래시 명령어·도구 카드가 잔뜩 있었다. 오늘 핵심 실습(훅·플러그인·MCP)과 함께 이 도구들도 한 바퀴 훑었다.

명령어 / 도구역할
/advisor더 강한 모델을 조언자로 붙여 중요한 순간에 한 번 더 검토 (실험적·API 전용, 토큰 별도 과금)
/init코드베이스를 분석해 CLAUDE.md 자동 생성 (새 저장소 첫 명령)
/statusline하단 상태줄(컨텍스트·비용·git 브랜치·모델)을 자연어로 설정
/insights내 사용 패턴·마찰 지점을 스캔해 리포트(HTML) 생성
/powerupClaude Code 기능을 짧은 인터랙티브 레슨(약 30분)으로 학습
/team-onboarding최근 30일 이력으로 팀 온보딩용 ONBOARDING.md 생성
/radio프롬프트에 입력하면 유튜브 BGM 재생 (작업용 배경음악)
/grill-me계획·설계를 공유 이해에 도달할 때까지 집요하게 인터뷰 (질문 하나씩 + 추천답변)
🗿 Caveman Mode — 토큰 절약 — 원시인처럼 군더더기 빼고 핵심만 답하게 하는 모드. 답이 길수록 청구서가 두꺼워지는데, 짧게 답하도록 강제하면 평균 65% 토큰 절감(때론 정확도도 오름). /caveman으로 켜고 stop caveman(노말모드)으로 끈다.
🧩 skills.sh & 🧰 PICKS(스킬 8선) — AI 에이전트용 재사용 스킬을 모아둔 오픈 디렉터리. npx skills add <owner/repo> 한 줄로 설치한다. "매일 손이 가는 스킬 8선"(Karpathy Guidelines·Superpowers·Humanizer 등) 같은 큐레이션도 있어, 필요한 절차적 지식을 골라 붙일 수 있다.
📦 GitHub × Claude Code — 저장소 만들기 → clone → 커밋·push → PR까지의 흐름을 익혔다. 압권은 PR·이슈 댓글에 @claude만 적으면 GitHub Action이 자동으로 코드를 고쳐 PR을 올려주는 것(ANTHROPIC_API_KEY 시크릿 등록 필요).
💡 TIPS(단축키·프롬프트) · 👻 HORRORShift+Tab(권한 모드 순환)·!(셸 즉시 실행)·@(파일 첨부)·ultrathink(그 질문만 깊게) 같은 단축키/프롬프트 꿀팁 모음. HORROR는 재미로 넣은 이스터에그 카드다. 🔌 MCP는 USB-C처럼 외부 도구(노션·카카오 등)를 통일 규격으로 연결하는 것으로, 오늘 자동화(아래)에서 직접 사용했다.
🧰 bkit — 프로세스가 있는 AI 개발(플러그인) — "AI한테 그냥 시키는 개발"을 PDCA(Plan-Do-Check-Act) 프로세스가 있는 개발로 바꿔주는 Claude Code 플러그인. 기능마다 문서(PRD·설계·분석·보고서)가 나오고, 코드가 그 문서와 맞는지 자동 검증한다(내부적으로 44스킬·34에이전트·11품질게이트 조합).
claude plugin install bkit
/pdca pm my-feature   # PRD→설계→개발→검증→보고
/pdca team            # 전문가 에이전트 팀 병렬 소환
기능마다 PRD·설계 문서가 남아 팀/강의 프로젝트의 공유·리뷰·평가에 그대로 쓸 수 있다는 점이 인상적이었다.
정리하면 — 허브 화면의 15개 카드를 한 바퀴 훑었다: /advisor·/init·/statusline·/insights·/powerup·/team-onboarding(ONBOARDING)·/radio·/grill-me·🗿CAVEMAN·🧩SKILLS.SH·🧰PICKS·📦GITHUB·💡TIPS·👻HORROR·🧰BKIT·🔌MCP. 슬래시 명령어부터 토큰 절약·스킬 생태계·협업 자동화까지, Claude Code를 "확장하는 도구"가 이렇게 많다는 걸 이번에 제대로 알았다.

🔒 커스텀 훅 — Dangerous Command Guard

오늘의 핵심 실습. Claude Code가 복구 불가능한 Bash 명령을 실행하려 할 때, 자동으로 가로채서 사용자가 그 명령을 직접 타이핑해야만 실행을 허용하는 안전 가드 훅을 만들었다. 훅(Hook)은 Claude가 특정 행동을 하기 직전/직후에 끼어드는 내 코드다.

동작 방식

1시도Claude가 Bash 툴로 명령 실행을 시도
2이벤트PreToolUse 이벤트 발생 → 훅 스크립트 자동 실행
3감지위험 패턴 감지 시 실행 중단 + 터미널에 경고 출력
4확인사용자가 명령어를 그대로 타이핑하면 허용, 아니면 차단
5기록시도 결과(차단/허용)를 로그 파일에 남김

차단 대상 명령어

패턴위험 이유
rm -rf파일·디렉토리 강제 삭제
git reset --hard미저장 변경사항 전체 파기
git push --force원격 히스토리 덮어쓰기
DROP TABLEDB 테이블 삭제
DROP DATABASEDB 전체 삭제

구성 요소

~/.claude/
├── hooks/
│   └── dangerous_guard.py   # 훅 스크립트 (Python)
├── settings.json            # PreToolUse 이벤트 등록
└── logs/
    └── dangerous_guard.log  # 시도 기록

훅은 settings.jsonPreToolUseBash 툴을 matcher로 걸어 등록한다. Bash 실행 시도마다 이 파이썬 스크립트가 먼저 돌아간다.

"hooks": {
  "PreToolUse": [
    {
      "matcher": "Bash",
      "hooks": [
        {
          "type": "command",
          "command": "python \"C:/Users/Har06/.claude/hooks/dangerous_guard.py\""
        }
      ]
    }
  ]
}

확인 방식 · 로그

사용자가 위험 명령어를 토씨 하나 안 틀리고 그대로 타이핑해야 실행이 허용된다. 틀리거나 빈 입력이면 차단된다.

⚠️  위험 명령어 감지: [rm -rf]
   명령어: rm -rf ./dist

실행하려면 명령어를 그대로 입력하세요 (취소: Enter만 누르기):
> rm -rf ./dist     ← 정확히 입력 시 허용
2026-07-24 14:32:11 | BLOCKED | rm -rf ./dist
2026-07-24 14:35:02 | ALLOWED | git reset --hard HEAD~1

핵심 기술

항목내용
이벤트PreToolUse — Bash 툴 실행 에 가로채기
언어Python
입력stdin으로 JSON 수신 (tool_input.command 필드)
콘솔 입력CONIN$ 직접 열기 (stdin이 이미 소비된 상태에서 사용자 입력 받기)
종료 코드0 = 허용, 2 = 차단
막혔던 지점 — stdin으로 이미 JSON을 다 읽어버린 뒤라, 같은 stdin으로 다시 사용자 키 입력을 받으려 하면 안 된다. 그래서 Windows 콘솔의 입력 버퍼인 CONIN$직접 열어서 타이핑을 받아야 했다. 종료 코드로 허용/차단이 갈린다는 것(2면 Claude 쪽에서 실행이 막힘)도 이 실습으로 확실히 이해했다.
솔직한 후기 — 훅 실습을 로드맵 20번부터 끝까지 마저 진행했는데, 실행이 너무너무 느려서 훅이 제대로 걸린 건지 애매했다 ㅠㅠ. 개념과 흐름은 확실히 잡았지만, 실제 반응 속도 때문에 "정말 동작하는가"를 눈으로 확신하긴 어려웠던 부분이 아쉬웠다.

🧩 커스텀 플러그인 제작

훅 하나로 끝이 아니라, 스킬 · 훅 · 에이전트 · MCP를 한 묶음으로 담은 커스텀 플러그인을 만들어봤다. 여러 요소를 조합해 하나의 기능 패키지로 굳히고, 마켓플레이스 배포 방식으로 배포까지 진행했다.

구성 요소역할
스킬(Skill)반복 작업을 /명령어로 굳혀 재사용
훅(Hook)특정 행동 직전/직후에 내 코드가 자동 개입
에이전트(Agent)목적별 서브에이전트에게 작업을 통째로 위임
MCP노션·카카오 등 외부 도구를 통일 규격으로 연결
느낀 점 — 스킬·훅·에이전트·MCP가 따로 놀던 개념이었는데, 플러그인이라는 그릇에 한꺼번에 담아 배포할 수 있다는 걸 알고 나니 "내 워크플로 전체를 하나로 패키징한다"는 그림이 잡혔다. 마켓플레이스로 배포한다는 건, 결국 내가 만든 도구를 남도 쓸 수 있게 상품처럼 유통한다는 의미였다.

실제 배포 & 설치 방법

Claude Code의 마켓플레이스는 특별한 서버가 아니라 깃허브 저장소 하나다. 플러그인 파일과 marketplace.json을 담은 repo를 푸시하면 그 자체가 배포다. 오늘 만든 daily-log 플러그인을 yundlab/claude-marketplace 저장소에 올렸고, 다른 사람은 아래 두 줄로 바로 설치해 쓸 수 있다.

# 1) 마켓플레이스(깃허브 repo) 등록
/plugin marketplace add yundlab/claude-marketplace

# 2) 플러그인 설치
/plugin install daily-log@yundlab-marketplace
설치하면 /daily-log 스킬, journal-writer 에이전트, 노션 MCP 설정이 한꺼번에 딸려 온다. 사용 전 노션 Integration 토큰을 NOTION_TOKEN 환경변수로 넣어주면(setx NOTION_TOKEN "ntn_xxx") 준비 끝. 내가 만든 자동화를 명령어 두 줄로 남에게 그대로 넘길 수 있다는 게 신기했다.

🔌 MCP 연결 → 학습일지 자동화

마지막으로, 재시작된 세션에서 /mcpnotion MCP가 초록불(연결됨)인지 확인한 뒤 /daily-log를 실행했다. 노션의 오늘 메모와 코드 변경을 읽어, 지금 보고 있는 이 학습일지 HTML을 자동으로 만들고 커밋까지 이어지는 흐름이다.

# MCP 연결 확인 → 자동화 스킬 실행
/mcp          # notion 초록불 확인
/daily-log    # 오늘 메모 + git 변경 → 학습일지 HTML 생성·커밋
오늘 배운 스킬 · 훅 · 에이전트 · MCP가 결국 이 /daily-log 한 줄에 전부 모여 있다. 노션 MCP로 메모를 읽고, 서브에이전트가 글을 쓰고, 스킬이 전체 절차를 묶고, 커밋 형식 검증 훅이 마지막을 지킨다 — 오늘 실습이 하나의 자동화로 합쳐지는 게 눈에 보였다.

✍️ 마치며

어제까지가 Claude Code를 "쓰는" 법이었다면, 오늘은 "뜯어고쳐 내 것으로 만드는" 법을 배웠다. 위험 명령을 직접 타이핑해야만 통과시키는 안전 가드 훅을 만들면서, AI에게 자율권을 주되 돌이킬 수 없는 순간엔 사람이 한 번 더 확인하게 만드는 하네스의 감각을 손으로 익혔다. 스킬·훅·에이전트·MCP를 플러그인으로 묶어 배포하고, 그 조합이 /daily-log 자동화로 합쳐지는 걸 보며 "도구를 만드는 사람"의 시야가 조금 열린 하루였다. 훅 실행이 느려 아쉬웠던 부분은, 다음에 더 가벼운 구조로 다시 확인해볼 생각이다.

🏷️ Claude Code  |  커스텀 훅  |  PreToolUse  |  플러그인  |  MCP  |  자동화  |  학습일지