Claude Code는 구성 요소가 여럿이고 이름이 비슷해 헷갈리기 쉽습니다. 이 수업에서는 규칙·스킬·명령어·에이전트·메모리가 각각 무엇을 하는지 가르고, 세션과 실행 모드를 다룹니다.
구성 요소 다섯 가지
이름이 비슷해 섞이기 쉬우므로 무엇이 언제 로드되는가로 구분하는 것이 가장 확실합니다.
- 규칙(
CLAUDE.md) — 세션이 시작될 때 자동으로 읽힙니다. 프로젝트 규약처럼 항상 알고 있어야 하는 것을 적습니다. - 스킬 — 필요할 때 모델이 스스로 불러 씁니다. 절차가 긴 작업을 설명해 두면 그 작업을 할 때만 읽습니다. 항상 로드되지 않는 것이 핵심입니다.
- 슬래시 명령어 — 사람이 입력해 실행합니다. 자주 쓰는 프롬프트를 단축한 것에 가깝습니다.
- 서브에이전트 — 별도 대화에서 도는 작업자입니다. 자기 도구와 자기 컨텍스트를 갖습니다.
- 메모리 — 세션을 넘어 남는 정보입니다.
여기서 자주 틀리는 대비가 규칙과 스킬입니다. 모든 것을 CLAUDE.md에 적으면 세션마다 그 전부가 컨텍스트를 차지합니다. 가끔 쓰는 긴 절차는 스킬로 빼는 편이 맞습니다. 반대로 항상 지켜야 할 규약을 스킬에 넣으면 모델이 안 불러올 때 지켜지지 않습니다.
기준은 간단합니다. 매번 필요한가를 물어 보고, 그렇다면 규칙, 아니라면 스킬입니다.
규칙 파일의 계층
CLAUDE.md는 여러 위치에 둘 수 있고, 가까운 것이 그 폴더의 작업에 더 구체적인 규칙을 줍니다.
repo/
CLAUDE.md ← 저장소 전체 규약
services/
payments/
CLAUDE.md ← 결제 모듈에만 해당하는 규칙
상위에는 팀 전체가 지킬 것을, 하위에는 그 영역에서만 통하는 것을 적습니다. 결제 모듈에서만 쓰는 테스트 명령을 최상위에 적으면 다른 작업에서도 계속 읽히면서 컨텍스트만 씁니다.
내용을 쓸 때 효과가 큰 것은 구체적인 명령과 금지입니다. "코드를 깔끔하게 작성하세요" 같은 문장은 판단이 갈리고 검증도 안 됩니다. "테스트는 pnpm test로 실행", "마이그레이션 파일은 직접 수정하지 말고 새로 생성"처럼 적으면 실제로 동작이 달라집니다.
금지 사항을 여기에만 적는 것은 방어가 아닙니다. 규칙 파일은 모델이 참고하는 지침이고, 실행을 막는 것은 설정의 권한 규칙입니다. 이 구분이 시험에 자주 나옵니다.
세션과 저장소 초기화
세션은 하나의 대화 단위이고, 이력이 쌓입니다. 길어지면 컨텍스트를 정리하거나 새로 시작해야 합니다. 이전 작업을 이어서 하려면 세션을 재개하는 방법을 쓰고, 주제가 바뀌었으면 새로 시작하는 편이 낫습니다.
저장소를 처음 붙일 때는 초기화 절차로 프로젝트를 훑어 규칙 파일 초안을 만들 수 있습니다. 여기서 알아 둘 점이 있습니다. 초기화는 이미 파일이 있으면 처음부터 다시 쓰는 것이 아니라 기존 내용을 살펴 보완하는 쪽으로 동작합니다. 그래서 손으로 정성껏 적어 둔 규칙이 통째로 날아가지는 않지만, 실행 전에 변경 사항을 확인하는 습관은 필요합니다.
초안이 만들어졌다고 그대로 두면 안 됩니다. 자동으로 뽑힌 내용은 일반적인 서술이 많아서, 실제로 지켜야 하는 명령과 금지로 다듬는 작업이 남습니다.
실행 모드
사람이 터미널에서 대화하는 방식 외에 자동화에 쓰는 모드들이 있습니다.
헤드리스 — 대화 없이 한 번 실행하고 결과를 받습니다. CI에서 코드 리뷰나 검사를 돌릴 때 씁니다. 사람의 승인이 없으므로 권한을 미리 좁혀 두는 것이 특히 중요합니다.
스트리밍 출력 — 진행 과정을 구조화된 형태로 순차 수신합니다. 다른 프로그램이 중간 단계를 받아 처리해야 할 때 씁니다. 예를 들어 CI 로그에 단계별로 표시하거나, 특정 단계에서 개입해야 할 때입니다.
자동 승인 모드 — 확인 없이 진행합니다. 편리하지만 위험하므로 격리된 환경과 좁은 권한이 전제되어야 합니다.
시험에서는 "진행 과정을 단계별로 받아 처리한다"는 요구에 맞는 출력 형식을 고르는 문제가 나옵니다. 최종 결과만 필요하면 단순 출력으로 충분하고, 중간 단계를 받아야 하면 구조화된 스트리밍이 필요합니다. 요구가 무엇인지 먼저 읽는 것이 요령입니다.
시험 함정
- 스킬이 세션 시작 시 항상 로드된다는 서술 — 필요할 때 불러 쓰는 것이고, 항상 로드되는 것은 규칙 파일입니다.
- 항상 지켜야 할 규약을 스킬에 넣는 선택지 — 모델이 불러오지 않으면 적용되지 않습니다.
- 하위 폴더에서만 쓰는 명령을 최상위 규칙에 적는 관리 — 모든 작업에서 읽히며 컨텍스트만 씁니다.
- CLAUDE.md의 금지 문구가 실행을 막는다는 서술 — 강제는 설정의 권한 규칙이 합니다.
- 저장소 초기화가 기존 규칙 파일을 항상 새로 덮어쓴다는 서술 — 기존 내용을 살펴 보완하는 쪽으로 동작합니다.
- 최종 결과만 필요한 자동화에 구조화된 스트리밍을 쓰는 선택 — 중간 단계를 받아야 할 때 필요한 형식입니다.
실습 시나리오
실제 시험과 같은 형식의 시나리오 문제입니다.
저장소에 배포 절차를 설명한 200줄짜리 문서가 있고, 배포 작업은 한 달에 한두 번만 합니다. Claude Code가 이 절차를 따르게 하려면 어디에 두는 것이 가장 적절합니까?
빌드 연습 · 규칙과 스킬을 나누고 헤드리스로 돌리기
약 35분1.현재 규칙 점검
CLAUDE.md를 열어 매번 필요한 것과 가끔 필요한 것을 표시합니다.
기대 결과 · 두 갈래로 분류된 목록이 나옵니다.
2.스킬로 분리
가끔 필요한 긴 절차를 스킬로 옮깁니다.
기대 결과 · 규칙 파일이 짧아지고 해당 작업에서 스킬이 불립니다.
3.구체화
"깔끔하게" 같은 문장을 실행 가능한 명령과 금지로 바꿉니다.
기대 결과 · 테스트 명령과 금지 항목이 구체적으로 적힙니다.
4.권한 축소
설정에서 위험한 명령을 거부 목록에 넣습니다.
기대 결과 · 해당 명령이 실제로 차단됩니다.
5.헤드리스 실행
간단한 검사 작업을 대화 없이 한 번 실행해 결과를 받습니다.
기대 결과 · 사람 개입 없이 실행되고 권한 제한이 그대로 적용됩니다.