Please enable JavaScript.
Coggle requires JavaScript to display documents.
Claude Code, 이렇게 길어지는 경우 .claude/rules 하위에 파일을 분리하여 세부적인 내용을 정리하는 것이 좋다.…
Claude Code
컨텍스트 관리
CLAUDE.md
프로젝트의 핵심 목표와 개요같은 경우,
Claude가 매 세션 시작시 기본적으로 파악해야 할 필수 컨텍스트이기 때문에 CLAUDE.md에 들어가는게 맞음
-
-
CLAUDE.md 작성시에는 기본적으로 사람이 읽을 수 있는 간결한
Markdown 형식으로 작성한다.
Claude가 절대 헷갈리면 안되는 핵심 규칙이나 예시 코드 블록등은 <code_rules>나 <example>처럼 XML 태그로 감싸서 명확히 구분해주면 더 좋다.
-
Sub Agent
-
코드리뷰, 아키텍처 설계 이런 전문적인 능력이 필요한 작업들은 sub agent에서 진행
실제 적용 예시
실무 관점에서 아래 3가지로 작업 계획을 진행
- 광범위한 코드베이스 검토 -> explorer
- 문제 해결 솔루션 도출 및 트레이드 오프 계산 -> architect
- 사이드이펙트 검토 -> guardian
작업계획에서는 특히 광범위한 코드베이스를 읽고,
복잡한 맥락 소화를 해야 하기 때문에
단일 claude 세션으로 진행시 매우 비효율적일 수 있음.
각 특화 작업을 sub agent에게 맡기고,
핵심 내용만 받아서 메인 에이전트가 처리하면
컨텍스트 비용도 아끼고, 작업 퀄리티도 높일 수 있게 됨
-
-
Claude Skills
특정 아키텍처나 디자인 패턴, API 스타일 가이드의 경우 모든 대화창에서 필요한 내용은 아님. 따라서 이런 종류의 작업은 Skills로 만들어두고, 필요할 때 불러와서 사용하는게 적합.
생성방법
1. 마크다운 파일 생성 및 저장
반복적인 워크플로우(디버깅, 배포, 코드 리뷰 등)나 도메인 지식을 마크다운 파일로 작성합니다. 이 파일을 프로젝트 내의 .claude/commands/ 폴더에 저장하거나, 모든 프로젝트에서 전역으로 사용하려면 ~/.claude/commands/ (또는 ~/.claude/skills/) 폴더에 저장합니다. 저장된 파일의 이름(또는 패키징된 이름)이 곧 /review-pr이나 /deploy 같은 호출 가능한 슬래시 명령어가 됩니다.
-
- 생성한 Skill 사용하기 생성된 Skill은 두 가지 방식으로 작동합니다.
수동 호출: 사용자가 직접 대화창에 /skill명을 입력하여 특정 워크플로우를 즉시 실행합니다. 자동 로드: 수동 호출 전용으로 설정하지 않은 경우, Claude는 세션 시작 시 Skill의 설명(Description)을 읽어두고 현재 작업과 연관성이 높다고 판단될 때 스스로 판단하여 전체 내용을 컨텍스트에 로드하여 사용합니다.
.rules
다른 방식과의 차이점
CLAUDE.md 파일과의 차이점
작업 루트 디렉토리부터 상위 디렉토리까지의 CLAUDE.md를 추가 병합.
이는 특정 확장자에만 규칙을 적용하는 등의 미세한 제어는 불가함.
컨텍스트를 더 효율적으로 사용하고 미세제어하기 위해서는 rule에 추가하는 것이 더 나음
CLAUDE.md의 계층적 적용은 단순한 룰이라 편하다.
하지만 복잡한 프로젝트의 경우 어떤 규칙이
어디에 선언되어있는지 파악하기 어렵다.
rule의 경우 하나의 디렉토리에 모듈식으로 구성할 수 있어 유지보수에 매우 좋다.
특히, frontend, backend 등 하위 디렉토리를 만들어 논리적으로 구조화를 하기에도 좋다
-
-
rule은 주로 .claude/rules/ 하위에 배치하여 일치하는
파일이 열릴때만 로드되게함으로써 컨텍스트를 절약할 수 있음.
CLAUDE.md에 너무 많은 컨텍스트가 담길 때 이를 세분화하기 위해 사용
-
상단 YAML 포매터에 paths 필드르 사용하여
특정 파일 패턴을 지정할 수 있음.
정확히 해당 패턴과 일치하는 파일을 열고 작업할 때만 규칙이 컨텍스트에 로드되기 때문에 컨텍스트를 획기적으로 절약
symbolic link를 지원.
사내 표준 가이드라인이나 공통된 별도 공유 규칙세트를 만들어두고,
.claude/rules 하위에 링크를 하여 쉽게 재사용이 가능.
팀단위, 여러 조직단위에서 공통적인 지침하에 프로젝트를 진행할 때에도 적합한 방식
-
비용 효율화
컨텍스트 초기화
한 세션에서 계속 대화하면 이전 대화내역들을 모두 읽어들인다.
이는 대화 내용이 길어질수록 선형적인 토큰 사용량 증가로 이어진다.
따라서 작업 단위를 쪼개고, 작업이 끝나면 새로운 세션을 키거나 /clear로 컨텍스트를 비워줘야 한다
CLAUDE.md 비용 효율화
-
-
-
.claude/rules 폴더를 활용한다
특정 디렉토리나 확장자에게만 적용되는 규칙이라면
.claude/rules 폴더 하위에 마크다운으로 정의한다.
이 규칙들은 작업중인 파일 경로와 일치할 때만 컨텍스트에 로드되므로 토큰을 크게 절약할 수 있다
파일 스캔 비용 효율화
sub agent에게 위임하기
광활한 코드검색은 서브에이전트에게 맡기는 것이 유리하다.
서브 에이전트는 자체 컨텍스트 창에서 코드를 탐색하며, 작업이 끝나면 핵심만 전달하기 때문에 메인 컨텍스트가 빠르게 차오르는 것을 막고 토큰을 절약할 수 있다
-
-
-
세션 비용 최적화
세션에 클로드와 대화를 하지 않아도,
claude code가 실행만 된 상태여도
내부적으로 토큰이 소모될 수 있다.
따라서 작업을 완료하거나, 작업하지 않을 때는
반드시 터미널을 끄는 것이 맞다
Agent Teams
동작방식
리드 에이전트가 전체 작업을 조정하고,
하위 작업을 팀원들에게 할당하는 방식.
-
-
-
-
탄생배경
기존 claude는 사용자의 질문에 대한 응답을 내뱉는 LLM으로, 한계가 있음. 직접적인 행동을 할 수는 없었기 때문
-
-
하네스 구축하기
병렬 작업하기
-
서로 다른 branch를 병렬로 작업하기
git worktree를 활용
-
서로 다른 터미널 탭에서 각각 worktree를 열어두면,
한 곳에서는 기능을 개발하고 다른 곳에서는 버그를 수정하더라도
Claude 인스턴스끼리 서로 간섭하거나 코드가 엉키지 않고 안전하게 병렬 작업을 수행할 수 있다
디렉토리가 분리된 것이기 때문에
worktree에 enter한 다음, 거기에서 branch checkout을 하면 된다
예시 시나리오
jira 티켓 넘버 API-001, API-002, API-003은 서로다른 성격의 작업인데 career-api라는 동일한 프로젝트에서 진행돼야 함. 서로 성격은 다른데 같은 service 로직이나 controller 로직을 건드릴 수 있음. 지금 상황에서 동시에 3가지 태스크를 모두 진행하고 싶음
- 터미널에서 Worktree 플래그를 줘서 각 터미널을 실행한다.
claude -w API-001
- IDE에서 .claude/worktrees/API-001, 002, 003에 복사된 프로젝트를 open한다. 각 IDE의 격리된 worktree 작업공간과 터미널이 하나의 작업 pair라고 보면 된다
- 같은 프로젝트지만 완전히 격리된 상태에서 작업이 가능하다.
같은 service 로직이나 controller 로직을 건드려도 상관이 없다.
- 각 worktree 작업을 해당 worktree branch에 commit한 뒤, pr을 올린다. 원격 branch에 작업물이 올라가면 worktree가 삭제돼도 작업은 보존된다.
-
Worktree에서 작업할 때 git repo에 CLAUDE.md가 버전관리로 올라가있어야한다. 그래야 worktree 생성시 각 디렉토리 계층에 맞게 CLAUDE.md가 적용된다.
만약 안돼있으면 기존의 rule들이 엄격하게 적용이 안된다.
같은 branch에서 병렬로 작업하기
예시 시나리오
plan 모드로 작업계획을 완료한 상태야. 하나의 branch에서 작업할 계획인데, 한쪽은 app/jobs 디렉토리 하위에 새로운 백그라운드 job을 만들고 관련 테스트코드를 작성해야해. 한쪽은 app/controllers에서 새로운 API 진입점을 만들고 api 문서도 만들어야하고. 또 다른 쪽에서는 app/services에서 실제 복잡한 비즈니스 로직을 구현해야해
- 현재 프로젝트 루트에서 3개의 독립된 터미널 창을 연다
- 각 터미널에서 claude --fork-session을 사용.
plan 모드에서 논의했던 계획(원본 대화 기록)을 그대로 물려받으면서 완전히 독립적인 세션 ID가 3개 생성됨.
- 역할 분담 및 실행한다. 터미널1은 job 작업을, 2는 controller 작업을, 3는 services 작업을 실행한다
-
-
-
-
-
이렇게 길어지는 경우 .claude/rules 하위에 파일을 분리하여 세부적인 내용을 정리하는 것이 좋다. claude가 세부 항목에 대한 내용 위치는 기억하되, 필요할 때만 on demand로 요청하기 때문에 컨텍스트를 절약할 수 있다.
-
-