AI 도구의 발전 속도는 매우 빠르다. 매주 새로운 AI 도구들이 생겨나고 있고, 클로드(Claude) 같은 에이전트는 하루에도 여러 차례 업데이트 된다. 이런 변화 속에서 많은 현업 개발자들이 따라가기에 벅차다고 느낀다. 모두가 AI를 이야기하니 뒤처질 것 같은 FOMO(Fear Of Missing Out, 소외에 대한 두려움)를 느끼기도 하고, AI가 마법처럼 모든 일을 해결해 줄 거라 기대했다가, 오히려 불필요한 작업이 늘어나는 경험을 한 사람도 있을 것이다.
그래서 나는 현업 개발자로서 급변하는 트렌드를 맹목적으로 좇기보다, 본질적인 원리를 깊게 이해하는 데 집중하고자 한다. 이 글에서는 AI 에이전트를 실무에서 어떻게 활용할 수 있는지, 클로드 코드를 예시로 스킬(Skill), 규칙(Rules), 커맨드(Commands), 서브 에이전트(Sub-Agents)의 차이와 적용 방법을 정리해 보았다. 또한 이러한 구성 요소들을 도입했을 때 작업 흐름에 어떤 변화가 생기는지도 함께 살펴볼 예정이다.

클로드 코드 공식 가이드에서는 스킬을 다음과 같이 정의한다.
- A skill is a set of instructions - packaged as a simple folder - that teaches Claude how to handle specific tasks or workflows.
스킬은 클로드에게 특정 작업이나 워크플로우를 처리하는 방법을 알려주는 일종의 지침서로, 간단한 폴더 형태로 패키징되어 있다.
어렸을 때 ‘메이플스토리’라는 게임을 즐겨 했는데, 거기에서 보면 직업별로 쓸 수 있는 다양한 스킬들이 있었다. 강하게 공격하고 싶을 때 쓰는 스킬, 체력을 회복하고 싶을 때 쓰는 스킬, 빠르게 이동하고 싶을 때 쓰는 스킬 등등 목적에 맞게 다양하게 쓸 수 있다.

개념적으로 스킬은 사용자가 원하는 동작을 빠르게 수행하게 해주는 단축키와 같다. 예를 들어, create-commit 스킬은 저장소 규칙에 맞춰 커밋을 생성하도록 지시한다. 클로드 코드에서는 보통 다음 경로에 마크다운 파일로 작성한다.
.claude/skills/[skill-name]/SKILL.md
마크다운 파일에는 메타데이터와 지시사항이 포함된다.

스킬을 설계할 때 주의할 점은 AI가 스킬을 항상 자동으로 잘 찾아 쓰지는 않는다는 것이다. 여러 번 사용해 보며 메타데이터와 지시사항을 다듬어, 어떤 상황에서도 안정적으로 동작하도록 만들어야 한다. 에이전트는 세션 시작 시 모든 스킬의 내용을 읽지 않고, name과 description 같은 메타데이터만 먼저 확인한 뒤 필요할 때 해당 스킬을 로드한다. 따라서 메타데이터는 데이터베이스의 인덱스처럼 매우 중요하다.
LLM 관점에서 스킬의 역할은 많은 컨텍스트를 무작정 제공하는 것이 아니다. 필요한 컨텍스트만 적절히 제공해 LLM이 특정 작업에 집중하도록 돕는 것이 핵심이다. 예를 들어, 커밋을 만들 때 백엔드 아키텍처 전체를 알 필요는 없지만, 커밋 컨벤션이나 작성자 정보는 필요하다. 스킬은 이런 핵심 정보만 제공해 LLM의 혼란을 줄인다.
겉보기에는 스킬, 커맨드, 규칙이 모두 자연어 지시문처럼 보이지만, 각각의 목적과 적용 범위가 다르다. 효율적으로 에이전트를 운영하려면 이 차이를 명확히 이해해야 한다.
규칙은 모든 실행에서 항상 적용되어야 하는 불변의 지침이다.
스킬은 어떤 특정 작업(코드 리뷰, 테스트 코드 작성, 디자인 시스템 적용 등)을 하기 위해서 수행이 된다면, 규칙은 모든 실행에서 항상 따라야 하는 것들이며 타협할 수 없다. 규칙으로 할지 스킬로 할지 고민될 때는 “이 지시사항이 모든 실행에서 적용되어야 하는가?”로 판단하면 된다.
커맨드는 스킬보다 더 직관적이고 안정적인 동작을 제공한다. 우리가 클로드에서 사용량을 확인하고 싶을 때 다음과 같이 CLI에서 /usage라고 치면 확인할 수 있다.

커맨드는 간결하고 논쟁의 여지 없이 직관적이어야 한다. 인자를 받아 커스터마이징할 수 있지만 기본은 단순함이다. 빌트인 커맨드 외에도 프로젝트에 맞는 커스텀 슬래시 커맨드를 직접 만들 수도 있다. 예를 들어, 현재 작업 중인 코드의 변경 사항을 요약하는 커맨드를 다음과 같이 정의할 수 있다.

이렇게 정의해 두면 CLI에서 /summarize-changes라고 입력하는 것만으로 매번 같은 지시를 반복할 필요 없이 변경 사항 요약을 받아볼 수 있다. 커맨드의 핵심은 항상 같은 입력에 같은 형태의 결과를 내는 것이다. 스킬처럼 맥락에 따라 판단이 달라지는 작업이 아니라, 실행 결과가 예측 가능하고 직관적인 동작을 정의할 때 커맨드를 사용하는 것이 적절하다.
스킬은 ‘무엇’을 수행할지에 집중한다면, 서브 에이전트는 ‘어떻게’ 수행할지에 집중한다. 하나의 메인 에이전트가 여러 스킬을 순차적·병렬적으로 사용할 수 있지만, 작업마다 권한, 성능, 접근 범위가 달라야 할 때는 서브 에이전트를 사용하는 편이 낫다.
Claude Code를 터미널에서 그냥 쓰면 매번 같은 컨텍스트를 반복 설명해야 한다. 규칙, 스킬, 서브 에이전트를 조합하면 "우리 팀 컨벤션을 이미 아는 시니어 동료"처럼 동작시킬 수 있다.
규칙은 .claude/rules/ 디렉터리에 마크다운 파일로 작성하며, 경로 기반 조건부 로딩이 핵심이다. 프론트엔드 파일을 건드릴 때만 해당 규칙이 활성화되므로 컨텍스트 낭비가 없다.

이렇게 분리하면 팀원 3명이 동시에 규칙 파일을 수정해도 Git 충돌이 발생하지 않는다.
스킬은 Claude가 대화 맥락에 따라 자동으로 로드하는 지식 패키지다. 기능 구현 시 매번 설명하던 프로젝트 아키텍처와 패턴을 한 번만 정의해 두면 된다.

예를 들어, "회원가입 폼 만들어줘"라고 요청하면, 클로드가 자동으로 이 스킬을 참조해 Zod + react-hook-form 조합으로 구현한다.
서브 에이전트는 독립 컨텍스트를 가진 전문가 에이전트이다. 기능 구현 후 테스트 작성과 코드 리뷰를 동시에 돌릴 수 있다.

이와 같이 규칙, 스킬, 서브 에이전트를 구축해 놓으면 나는 CLI에서 다음과 같이 프롬프트를 작성만 해 주면 된다.
나: "UserProfile 컴포넌트를 구현하고 테스트와 리뷰까지 해줘"
Claude 메인 스레드 → UserProfile.tsx 구현 (규칙 + 스킬 자동 적용)
├── Sub-Agent: test-writer → UserProfile.test.tsx 작성 + 실행
└── Sub-Agent: code-reviewer → 리렌더링·접근성·타입 이슈 리포트
내 프롬프트를 읽고 AI 에이전트는 규칙이 컨벤션을 보장하고, 스킬이 아키텍처 맥락을 제공하며, 서브 에이전트가 검증을 병렬로 처리한다. 하나의 프롬프트로 구현 → 테스트 → 리뷰가 동시에 완료되는 셈이다. 세 가지를 처음부터 전부 구축할 필요는 없다. CLAUDE.md 하나로 시작해서, 반복되는 설명은 규칙으로, 자주 쓰는 워크플로는 스킬로, 전문 검증이 필요하면 서브 에이전트로 점진적으로 확장하는 것을 권장한다.
규칙, 스킬, 커맨드, 서브 에이전트는 결국 AI 에이전트에게 "적절한 맥락을 적절한 시점에 전달하는 방법"이 각각 다를 뿐이다. 규칙은 항상 지켜야 하는 팀 컨벤션, 스킬은 특정 작업에 필요한 지식 패키지, 커맨드는 반복적인 동작을 직관적으로 실행하는 단축키, 서브 에이전트는 독립된 권한과 맥락이 필요한 전문가 역할이다. 이 네 가지를 한꺼번에 완벽하게 구축하려 하기보다는, CLAUDE.md 하나에서 시작해 반복되는 설명을 규칙으로 분리하고, 자주 쓰는 워크플로를 스킬로 묶고, 검증이 필요한 작업을 서브 에이전트로 위임하는 식으로 점진적으로 확장하는 것이 현실적이다.

이렇게 AI 에이전트를 여러 시행착오를 겪으며 써보았는데 누군가 “작업 속도가 드라마틱하게 빨라졌나요?”라고 물으면 “아니오”라고 답할 것이다. 왜냐하면 AI에 대한 이해도를 높이느라, 여러 시행착오를 거친 시간도 상당히 많았기 때문이다.
그럼에도 이러한 작업 방식이 앞으로 점점 더 고도화가 될 것이라고 믿기에, 나 또한 계속해서 학습하고 적용하고 개선해 나가려고 한다. 실제로 최근 몇 달 사이에 클로드 코드, 코덱스, 제미나이 등 주요 AI 에이전트들의 모델 성능뿐만 아니라, 도구 차원에서도 많은 변화가 있었고 앞으로도 이러한 변화는 더 가속화될 것이다.
AI 도구가 빠르게 변하는 시대일수록 중요한 것은 특정 도구의 사용법이 아니라, "LLM에게 맥락을 어떻게 구조화해서 전달할 것인가"라는 본질적인 원리다. 오늘 소개한 네 가지 개념은 클로드 코드뿐 아니라, 커서(Cursor), 윈드서프(Windsurf) 등 다른 AI 코딩 에이전트에서도 유사한 형태로 존재한다. 도구는 바뀌어도 원리는 남는다. 트렌드를 쫓기보다 원리를 체화하는 데 시간을 쓰는 것이 결국 가장 빠른 길이지 않을까?
©️요즘IT의 모든 콘텐츠는 저작권법의 보호를 받는 바, 무단 전재와 복사, 배포 등을 금합니다.