교재 목차
MODULE 09 / 16
09
Part 9 · 환경 커스터마이징

내 손에 맞게 길들이기

기본값 그대로 써도 일은 된다. 하지만 매번 똑같은 부탁을 반복하고, 매번 같은 확인 버튼을 누르고 있다면 — 환경을 손볼 때가 된 것이다. 자주 쓰는 지시를 단축어로 묶고, 작업 전후에 자동으로 끼어드는 훅을 걸고, 무엇을 허락하고 무엇을 막을지 권한으로 정하면, 에이전트는 ‘남의 도구’에서 ‘내 작업대’가 된다.


Lesson 31

슬래시 커맨드 — 자주 쓰는 부탁을 단축어로

매번 “이 코드 리뷰해줘, 보안 문제랑 성능 문제 위주로 봐줘”라고 길게 타이핑하고 있다면, 그 부탁을 /리뷰 한 단어로 줄일 수 있다.

전화기의 단축 다이얼과 같다. 자주 거는 번호를 버튼 하나에 저장해 두는 것뿐이다.

슬래시 커맨드는 자주 쓰는 지시문을 미리 파일로 저장해 두고, 채팅창에 /이름만 쳐서 불러내는 기능이다. 클로드 코드에는 /clear, /help처럼 기본으로 들어 있는 커맨드도 있지만, 진짜 가치는 내가 직접 만드는 커맨드에 있다.

만드는 법은 허무할 만큼 간단하다. 약속된 폴더에 마크다운 파일 하나를 두면, 그 파일 이름이 곧 명령어가 된다.

파일 하나가 명령어 하나

프로젝트 폴더 안에 .claude/commands/ 폴더를 만들고, 거기에 리뷰.md 파일을 두면 끝이다. 그 안에 적은 내용이 바로 그 커맨드가 실행할 지시문이 된다.

파일 안에 $ARGUMENTS라고 적어 두면, 커맨드 뒤에 붙인 말이 그 자리에 끼워진다. /리뷰 결제모듈이라고 치면 ‘결제모듈’이 지시문 안으로 들어가는 식이다.

슬래시 커맨드의 구조 — commands 폴더의 마크다운 파일이 곧 명령어가 된다
그림 1. .claude/commands/ 폴더에 둔 마크다운 파일 이름이 그대로 명령어가 된다. 팀과 공유하려면 이 폴더를 저장소에 함께 올리면 된다.
프로젝트용과 개인용

프로젝트 폴더의 .claude/commands/에 두면 그 프로젝트에서만, 그리고 팀원과 공유된다. 내 홈 폴더의 ~/.claude/commands/에 두면 어느 프로젝트에서나 나만 쓸 수 있는 개인 커맨드가 된다.

붙여넣기 프롬프트 · 커맨드 만들어 달라고 시키기
내가 자주 쓰는 지시를 슬래시 커맨드로 만들어줘.
- 커맨드 이름: /리뷰
- 하는 일: 코드를 보안 → 성능 → 가독성 순으로 점검하고
  발견한 문제를 심각도(상/중/하)로 정리
- .claude/commands/ 폴더에 마크다운 파일로 저장해줘
- 커맨드 뒤에 붙인 대상($ARGUMENTS)을 리뷰 범위로 쓰게 해줘
커맨드 작성 패턴과 인자 사용법은 prompts/m09/01-슬래시-커맨드.md
실습 31

나만의 첫 커맨드 만들기

  1. 이번 주에 두 번 이상 반복했던 부탁을 하나 떠올린다 (예: 커밋 메시지 정리, 회의록 요약).
  2. 위 프롬프트를 변형해 그 부탁을 /이름 커맨드로 만들어 달라고 한다.
  3. 채팅창에 /를 쳐서 방금 만든 커맨드가 목록에 뜨는지 확인한다.
  4. 실제로 호출해 보고, 결과가 기대와 다르면 마크다운 파일을 한 번 더 다듬는다.

목표: ‘반복하는 부탁은 파일로 굳힌다’는 감각을 익히는 것. 커맨드 하나가 손에 붙으면 나머지는 복사해서 늘리면 된다.

한 문장 요약

두 번 이상 반복한 부탁은, 단축어로 만들 때가 된 것이다.

슬래시 커맨드는 마크다운 파일 하나로 끝난다. 파일 이름이 명령어가 되고, 그 안의 글이 지시문이 된다. 손이 기억하는 작업일수록 커맨드로 묶을 가치가 크다.


Lesson 32

훅이란 무엇인가

슬래시 커맨드가 ‘내가 부를 때 도는’ 기능이라면, 훅은 ‘부르지 않아도 알아서 끼어드는’ 기능이다.

사무실 출입문에 달린 자동 센서를 떠올리면 된다. 누가 들어오고 나갈 때마다, 시키지 않아도 불이 켜지고 기록이 남는다.

훅(hook)은 에이전트가 작업하는 흐름의 정해진 길목에 미리 걸어 두는 자동 동작이다. 에이전트가 도구를 쓰기 직전, 다 쓴 직후, 답을 마쳤을 때처럼 정해진 순간이 오면 내가 등록해 둔 명령이 자동으로 실행된다.

핵심은 ‘언제’다. 훅은 아무 때나 끼어들지 않는다. 작업의 생명주기에는 몇 개의 정해진 길목이 있고, 훅은 그 길목 중 어디에 설 것인지를 골라 거는 것이다.

훅 생명주기 — 도구 실행 전·후, 답변 완료, 세션 종료 같은 정해진 길목에 훅이 끼어든다
그림 2. 훅 생명주기. 에이전트 작업에는 정해진 길목이 있고, 훅은 그 길목에 서서 자동으로 끼어든다.

훅이 설 수 있는 대표적인 길목

왜 굳이 자동화할까. 사람은 잊어버리기 때문이다. “코드 고치면 꼭 포맷 맞춰라”를 매번 손으로 챙기는 대신, 한 번 훅으로 걸어 두면 다시는 잊을 일이 없다.

슬래시 커맨드 vs 훅

둘 다 ‘반복을 줄이는’ 도구지만 방향이 반대다. 슬래시 커맨드는 내가 능동적으로 불러내는 것이고, 은 정해진 순간에 시스템이 알아서 실행하는 것이다. “내가 자주 시키는 일”은 커맨드로, “매번 빠뜨리면 안 되는 일”은 훅으로 묶으면 좋다.

훅(hook)
작업 흐름의 정해진 길목에 걸어 두는 자동 동작. 그 순간이 오면 시키지 않아도 실행된다.
생명주기(lifecycle)
에이전트가 한 작업을 처리하는 동안 거치는 정해진 단계들. 훅은 이 단계 사이에 끼어든다.
이벤트(event)
‘도구 실행 직전’처럼 훅이 반응하는 특정 순간. 어떤 이벤트에 걸지를 내가 고른다.
한 문장 요약

훅은 ‘잊지 않게’ 시스템에 박아 두는 습관이다.

사람은 매번 챙기지 못한다. 작업의 정해진 길목에 동작을 걸어 두면, 그 순간이 올 때마다 자동으로 실행된다. 다음 레슨에서 가장 쓸모 있는 훅 하나를 직접 걸어 본다.


Lesson 33

훅 실습 — 작업 후 자동 알림

긴 작업을 시켜 놓고 다른 일을 하다 보면, 에이전트가 언제 끝났는지 모르고 한참 뒤에야 화면을 들여다보게 된다. 끝나는 순간 소리 한 번 울리게 만들어 보자.

가장 짧고, 가장 자주 쓰게 되는 첫 훅이다.

훅은 settings.json이라는 설정 파일에 등록한다. “어떤 이벤트에, 어떤 명령을 실행할지”를 적어 두는 곳이다. 직접 손으로 써도 되지만, 형식이 낯설면 에이전트에게 만들어 달라고 시키는 편이 빠르고 안전하다.

설정 파일에 등록하는 모습

아래는 ‘에이전트가 답변을 마쳤을 때(Stop) 알림음을 한 번 울려라’를 등록한 모습이다. 형식을 외울 필요는 없다. 어떤 모양인지 눈에 익히는 것으로 충분하다.

운영체제마다 명령이 다르다

afplay는 맥(macOS)용 소리 재생 명령이다. 윈도우라면 PowerShell의 소리 명령을, 리눅스라면 paplay 같은 명령을 쓴다. 내 컴퓨터에 맞는 명령은 에이전트에게 “내 OS에 맞게 알림 훅 만들어줘”라고 하면 알아서 골라 준다.

붙여넣기 프롬프트 · 작업 완료 알림 훅 걸기
작업이 끝났을 때 알림이 울리게 훅을 걸어줘.
- 에이전트가 답변을 마치는 순간(Stop)에 실행
- 내 운영체제에 맞는 소리 재생 명령을 골라줘
- .claude/settings.json에 등록하고, 어떤 줄을 추가했는지 설명해줘
- 끄고 싶을 때 어떻게 지우는지도 알려줘
알림·자동 포맷 등 훅 예제 모음은 prompts/m09/02-훅-자동알림.md
실습 33

완료 알림 훅 걸어 보기

  1. 위 프롬프트로 내 OS에 맞는 완료 알림 훅을 등록시킨다.
  2. 아무 가벼운 작업이나 시켜 본다 (예: “이 폴더 파일 개수 세줘”).
  3. 작업이 끝나는 순간 소리가 울리는지 확인한다.
  4. 한 단계 더: “파일을 고친 직후 자동으로 포맷을 맞춰줘”를 도구 실행 후 훅으로 추가해 본다.

목표: 훅을 한 번 걸어 보면 “이것도 자동화할 수 있겠는데?”라는 눈이 생긴다. 그 눈이 환경 커스터마이징의 출발점이다.

한 문장 요약

완료 알림 하나만 걸어 봐도, 훅이 무엇인지 손으로 알게 된다.

형식은 외우지 않아도 된다. 어떤 순간에 무엇을 자동으로 하고 싶은지만 말하면, 에이전트가 settings.json에 등록해 준다. 그 settings.json이 다음 레슨의 주제다.


Lesson 34

권한과 settings

1모듈에서 본 ‘위험도 사다리’ — 읽기는 자유, 쓰기는 승인, 삭제는 신중 — 그 사다리를 실제 규칙으로 굳히는 곳이 바로 권한 설정이다.

법인카드와 같다. 한도와 사용처를 미리 정해 두면, 매번 결재를 올리지 않아도 안심하고 맡길 수 있다.

에이전트는 강력한 만큼 위험하다. 시키면 망설임 없이 파일을 지우고 명령을 실행한다. 그래서 “무엇은 마음대로 해도 되고, 무엇은 나에게 물어봐야 하며, 무엇은 절대 안 되는지”를 미리 정해 두는 장치가 권한이다.

권한은 네 계층으로 나뉜다

권한은 단순히 ‘된다/안 된다’의 이분법이 아니다. 네 단계로 나뉘고, 이 네 계층을 이해하면 나머지는 응용일 뿐이다.

권한의 네 계층 — 허용·확인·거부·관리형
그림 3. 권한의 네 계층. 허용은 묻지 않고, 확인은 매번 묻고, 거부는 아예 막고, 관리형은 조직이 정해 개인이 못 바꾼다.

이 규칙들이 사는 곳 — settings.json

훅도, 권한도 모두 settings.json이라는 같은 파일에 적힌다. 이 파일은 위치에 따라 적용 범위와 우선순위가 다르다.

파일 위치가 곧 적용 범위

~/.claude/settings.json은 모든 프로젝트에 적용되는 내 개인 기본값. 프로젝트/.claude/settings.json은 그 프로젝트에만 적용되며 팀과 공유된다. settings.local.json은 공유하지 않는 나만의 임시 설정이다. 회사가 내려보내는 관리형 정책이 있다면 그것이 가장 위에서 모든 것을 덮어쓴다.

한 문장 요약

권한은 위험도 사다리를 ‘규칙’으로 굳힌 것이다.

허용·확인·거부·관리형 — 이 네 계층으로 무엇을 맡기고 무엇을 막을지 미리 정해 둔다. 그러면 매번 확인 버튼을 누르지 않아도, 안심하고 맡길 수 있다. 다음 레슨은 그 ‘확인 버튼’을 줄이는 법이다.


Lesson 35

자동 승인 설정

같은 안전한 작업에 매번 “네, 해도 됩니다”를 누르고 있다면, 그 작업은 한 번 정해 두고 자동으로 통과시킬 수 있다.

다만 자동 승인은 편리함과 위험을 맞바꾸는 일이다. 무엇을 자동으로 넘길지 고르는 안목이 핵심이다.

앞 레슨에서 본 ‘허용(allow)’이 바로 자동 승인이다. 자주 반복되면서 되돌릴 일이 없는 작업을 허용 목록에 올려 두면, 에이전트가 그 작업을 할 때 더는 묻지 않는다. 흐름이 끊기지 않으니 작업이 한결 매끄러워진다.

자동 승인해도 좋은 것, 절대 안 되는 것

판단이 서지 않을 때 쓰는 안전한 기준이 하나 있다. “이 작업이 멋대로 실행돼도 나는 1분 안에 되돌릴 수 있는가?” 그렇다면 자동 승인 후보, 아니라면 확인을 남겨 둔다.

한 번에 다 풀지 말 것

처음부터 모든 걸 자동 승인하면 편하지만, 그만큼 사고도 자동으로 일어난다. 읽기 계열부터 시작해, 일주일쯤 써 보며 “이건 매번 묻지 않아도 되겠다” 싶은 것만 하나씩 허용 목록으로 옮기는 게 안전하다. ‘전부 허용’ 같은 한 방 설정은 신뢰가 쌓인 뒤에 고려한다.

붙여넣기 프롬프트 · 자동 승인 목록 점검·정리
내 .claude/settings.json의 권한 설정을 점검해줘.
- 자동 승인(allow)에 들어 있는 항목 중
  되돌리기 어려운 작업(삭제/덮어쓰기/배포/전송)이 섞여 있으면 짚어줘
- 그런 항목은 확인(ask)이나 거부(deny)로 옮기는 안을 제시해줘
- 읽기 계열은 allow로, 위험 작업은 ask/deny로 정리한 깔끔한 버전을 보여줘
- 바꾸기 전에 무엇을 어떻게 바꿀지 먼저 설명하고, 내가 "진행"하면 적용해줘
자동 승인 기준과 안전 패턴은 prompts/m09/03-자동승인-점검.md
실습 35

내 권한 목록 한 칸씩 옮기기

  1. 지금 작업하며 매번 확인을 눌렀던 작업 중, 읽기 계열 하나를 허용으로 옮긴다.
  2. 반대로, 자동으로 실행돼서 아찔했던 작업이 있다면 확인이나 거부로 내린다.
  3. 위 점검 프롬프트로 현재 설정에 위험한 자동 승인이 없는지 한 번 훑는다.
  4. “1분 안에 되돌릴 수 있는가” 기준으로 각 항목을 스스로 분류해 본다.

목표: 자동 승인을 ‘늘리는 일’이 아니라 ‘고르는 일’로 보는 눈. 편리함과 안전 사이에서 내 선을 찾는 게 이 레슨의 전부다.

한 문장 요약

자동 승인은 편리함과 위험을 맞바꾸는 거래다.

‘1분 안에 되돌릴 수 있는가’를 기준 삼아, 안전한 반복 작업부터 하나씩 허용으로 옮긴다. 위험한 작업은 끝까지 확인에 남긴다. 신뢰는 한 칸씩 쌓는 것이지 한 번에 푸는 게 아니다.


Lesson 36

상태표시줄과 환경 종합

자동차 계기판이 속도와 연료를 늘 보여 주듯, 상태표시줄은 지금 어떤 모델로, 어느 폴더에서, 무엇을 쓰며 일하고 있는지를 한 줄로 보여 준다.

이 모듈에서 손본 조각들을 한자리에 모아 보는 마지막 레슨이다.

상태표시줄(status line)은 화면 아래에 늘 떠 있는 한 줄짜리 정보판이다. 현재 모델, 작업 폴더, 깃 브랜치 같은 걸 보여 주게 설정할 수 있다. 이것 역시 settings.json에 한 줄을 더해 켠다.

왜 필요할까. 엉뚱한 폴더에서 작업하거나, 비싼 모델을 모르고 계속 쓰는 실수를 화면을 흘끗 보는 것만으로 막아 주기 때문이다.

이 모듈을 한 장으로

지금까지 손본 것을 정리하면 이렇다. 모두 같은 settings.json.claude/ 폴더 안에서 일어난 일이다.

  1. 슬래시 커맨드반복하는 부탁을 .claude/commands/의 마크다운 파일로 묶어 /이름으로 호출한다.
  2. 작업의 정해진 길목(실행 전·후, 완료 시)에 자동 동작을 걸어, 빠뜨리면 안 되는 일을 시스템에 맡긴다.
  3. 권한허용·확인·거부·관리형 네 계층으로 무엇을 맡기고 무엇을 막을지 규칙으로 굳힌다.
  4. 자동 승인‘1분 안에 되돌릴 수 있는’ 안전한 작업만 허용으로 올려 흐름을 매끄럽게 만든다.
  5. 상태표시줄모델·폴더·브랜치를 한 줄로 띄워, 실수를 흘끗 보는 것만으로 막는다.
막히면 에이전트에게 맡겨라

이 모듈의 모든 설정은 손으로 직접 파일을 편집해도 되지만, 형식이 헷갈리면 “내 환경을 이렇게 바꿔줘”라고 에이전트에게 시키는 게 가장 빠르고 안전하다. 에이전트는 자기가 읽는 settings.json의 형식을 정확히 안다. 바꾸기 전에 ‘무엇을 바꿀지’ 먼저 보여 달라는 1모듈의 안전 리듬은 환경 설정에도 그대로 적용된다.

모듈 9 마무리

기본값으로 시작하되, 손에 맞게 길들여라.

슬래시 커맨드(L31)로 반복을 줄이고, 훅(L32~33)으로 빠뜨릴 일을 자동화하고, 권한(L34)과 자동 승인(L35)으로 안전과 편리의 선을 긋고, 상태표시줄(L36)로 실수를 막았다. 이제 에이전트는 ‘남의 도구’가 아니라 ‘내 작업대’다. 다음 모듈에서는 이렇게 길들인 환경 위에서 더 큰 일을 맡기는 법으로 넘어간다.

출처 · 더 읽을거리

이 모듈의 근거 문서

  1. 문서Anthropic — Claude Code: 슬래시 커맨드(Slash commands)
    커스텀 커맨드 파일 위치·인자($ARGUMENTS)·공유 방식. 레슨 31의 근거.
    docs.anthropic.com/en/docs/claude-code/slash-commands
  2. 문서Anthropic — Claude Code: 훅(Hooks)
    훅 이벤트(PreToolUse·PostToolUse·Stop 등)와 settings.json 등록 형식. 레슨 32~33의 근거.
    docs.anthropic.com/en/docs/claude-code/hooks
  3. 문서Anthropic — Claude Code: 권한과 settings
    allow·ask·deny 및 관리형 정책, settings 파일 위치와 우선순위. 레슨 34~35의 근거.
    docs.anthropic.com/en/docs/claude-code/settings
  4. 문서Anthropic — Claude Code: 상태표시줄(Statusline)
    상태표시줄 구성과 표시 항목. 레슨 36의 근거.
    docs.anthropic.com/en/docs/claude-code/statusline