Claude Code에 '작업 공간'을 맡기기: CLAUDE.md 및 claude -p의 정기 실행, 후크, 스킬 활용 사례
요약
본 글은 Claude Code를 단순 대화가 아닌, 체계적인 '작업 공간'으로 활용하는 방법을 제시합니다. `CLAUDE.md`를 작업 지도로 사용하고, 태스크 스케줄러와 `claude -p` 명령어를 결합하여 정기적이고 제한된 자동 작업을 수행하는 구체적인 설정을 다룹니다.
핵심 포인트
- 작업 폴더의 CLAUDE.md에 파일 목록과 규칙을 명시해 AI가 작업 지도를 갖게 합니다.
- 태스크 스케줄러와 `claude -p`를 사용해 정기적이고 제한된 자동 작업을 안전하게 실행합니다.
- AI에게는 '읽고 생각하는' 부분만 맡기고, 데이터 수집 등 절차는 사람이 직접 처리하여 안정성을 높입니다.
- 도구(Tool) 접근을 `--allowedTools`로 엄격히 제한하여 AI의 활동 범위를 최소화하고 보안을 유지합니다.
Claude Code를 대화할 때마다 설명해 줄 필요가 없는 '작업 공간(作業場)'으로 사용하기 위한 구성을 실제로 작동하는 설정 그대로 작성합니다. 환경은 Windows 11입니다.
다루는 것은 다음 네 가지입니다.
CLAUDE.md를 작업 공간의 지도로 만들기claude -p를 태스크 스케줄러에서 호출하여 정기적으로 한 번만 작동시키기 (도구는 처음부터 제한하기)- 후크(Hook)를 이용해 AI 외부의 규칙을 반드시 실행하게 하기
- 스킬(Skill)로 진행 과정에 이름을 붙이기
마지막으로, 맡기지 않을 선(돈, 개인정보, 검증 데이터)을 시스템적으로 지키는 방법과 잘 되지 않았던 점들을 기록합니다.
1. CLAUDE.md를 작업 공간의 지도로 만들기
Claude Code는 작업 폴더의 CLAUDE.md를 매번 가장 먼저 읽습니다. 여기에 '무엇이 어디에 있는지'를 적어두면, 새로운 대화에서도 설명할 필요가 없습니다.
필자의 CLAUDE.md에는 만든 파일을 빠짐없이 1~3줄로 작성하고 있습니다.
- 무엇을 하는지
- 어떻게 작동시키는지 (명령어 예시)
- 다룰 때 주의사항 ('이 기간의 데이터는 사용하지 않기', '이 버전은 오래됨' 등)
가장 효과적이었던 것은, AI가 새로운 파일을 만들었을 때 AI 스스로 여기에 추가하도록 규칙을 정한 것입니다.
## 작업 방침
- 새 파일이 생성된 경우 여기에 추가하여 파악할 수 있도록 한다.
- 파일명은 `종류-일련번호_이름_v버전.확장자` (예: `TOOL-35_NoteResearch_v1.0.py`). 이전 버전은 삭제하지 않고 남긴다.
또 하나는, 프로젝트별 계획 노트에 '현재 위치(現在地)' 섹션을 두는 것입니다. '작업을 시작할 때는 먼저 계획의 현재 위치를 읽는다'라고 CLAUDE.md에 적어두면, AI가 스스로 지난번까지 어디까지 진행했는지 파악합니다.
파일명을 종류-일련번호_이름_v버전으로 통일한 것은, 버전을 올리더라도 이전 버전을 삭제하지 않기 위함입니다. '이전 버전으로 되돌려' 한마디면 충분합니다.
2. claude -p를 정기적으로 한 번만 작동시키기
claude -p는 대화 화면을 열지 않고 지시를 단 한 번 실행합니다. 이를 Windows의 태스크 스케줄러에서 호출하면, 정해진 시간에 AI가 작동합니다.
필자는 이 방법으로 '2일에 한 번씩 note의 인기 기사 경향을 조사하여 노트에 작성하는' 작업을 처리하고 있습니다.
- AI를 사용하지 않고 데이터 수집 (Python. 공개된 검색 결과에서 가격, 반응 수, 제목 이미지를 저장)
- AI를 단 한 번만 구동하여 수집한 데이터를 읽히기 (지시는 하나의 파일에 고정) AI가 작성해도 되는 곳은 기록 노트뿐
호출 형태는 다음과 같습니다.
Get-Content -Raw -Encoding UTF8 .
prompt.md |
claude -p --model <모델명> --max-turns 80 `
--allowedTools Read Glob Grep Write Edit WebSearch WebFetch
포인트는 두 가지입니다.
- 게시/전송/로그인에 사용할 도구는 제공하지 않습니다. 정기적으로 작동하는 AI는 아무도 보지 않는 시간에 움직이므로, 할 수 있는 일을 처음부터 좁혀두는 것이 가장 안전한 방법이었습니다.
--allowedTools로 도구를 제한합니다. - 정해진 절차 부분은 AI에게 맡기지 않습니다. 데이터 수집까지 AI에게 맡기면 느리고 매번 방식이 조금씩 바뀝니다. AI에게는 '읽고 생각하는' 부분만 맡깁니다.
지시는 명령어 인수가 아닌 표준 입력으로 전달하고 있습니다. 긴 한국어 프롬프트를 인수로 사용하면, Windows에서는 따옴표와 문자 코드 처리에서 깨지기 쉬웠기 때문입니다.
태스크는 pythonw.exe를 경유하여 시작하므로, 화면에 창이 나타나지 않습니다. 실행할 때마다 절차의 수와 출력에 포함된 비용 예상치를 CSV에 한 줄씩 남기고 있습니다 (최초에는 59개 절차).
Claude Code가 위치한 곳에 주의하기
claude의 실제 경로는, 설치 방식(네이티브 버전, npm 버전, VS Code 확장 통합 버전)에 따라 다릅니다. 태스크에서 호출하는 스크립트는, 임의로 지정하지 않고 후보를 순차적으로 찾는 형태로 만들면 다른 PC로 옮겼을 때 고장 나지 않습니다.
import glob, os, shutil
def find_claude():
hit = shutil.which(
후크(Hook)는 Claude Code의 움직임의 분기점(도구를 사용한 후, 답변을 마쳤을 때 등)에 정해진 명령을 실행하는 시스템입니다.
제가 넣은 것은 **컨텍스트 사용량이 상한선 30%에 도달했을 때, 해당 대화에서 한 번만 알려주는** 후크입니다. 긴 대화는 후반부로 갈수록 지시 사항 누락이 발생하기 쉬우므로, 구획을 나누어 알림을 받습니다.
설정은 사용자의 `settings.json`
(`%USERPROFILE%\.claude\settings.json`)에 작성합니다.
{
"hooks": {
"Stop": [
...
스크립트가 하는 일은 세 가지뿐입니다.
- 표준 입력으로 전달되는 JSON에서 대화 기록 파일의 위치와 세션 ID를 읽음
- 기록 파일의 마지막 사용량(토큰 수)을 읽고, 상한선으로 나눔
- 임계치를 초과했고, 해당 세션의 표시( `%TEMP%` 폴더의 파일)
가 없으면 메시지를 출력하고 표시를 만듦
## 4. 스킬: 진행 과정에 이름을 붙이다
스킬은 진행 과정 매뉴얼에 이름을 붙여서 필요할 때 불러 쓰는 시스템입니다. `%USERPROFILE%\.claude\skills<이름>\SKILL.md`
에 두면 모든 프로젝트에서 사용할 수 있습니다. 폴더명은 소문자 영문과 하이픈을 사용합니다.
제가 자주 사용하는 직접 만든 스킬은 두 가지입니다.
- **autorun**: 중간에 확인 과정을 거치지 않고, 완료와 확신까지 끝내는 진행 과정. 망설일 때 결정하는 표와, '되돌릴 수 없는 조작(삭제/공개 등)은 실행하지 않고 마지막 보고서에 남긴다'는 원칙입니다.
- **pre-research**: 착수하기 전에, 현황・규정 및 경위・도구 및 환경・외부 정보・선택지를 조사하여 사실과 추측을 구분한 짧은 메모를 내보낸 후 시작하는 진행 과정입니다.
뼈대는 이렇습니다.
name: pre-research
description: 작업에 착수하기 전에, 현황・선례・제약・함정을 조사하여 짧은 조사 메모로 정리한 후 착수하는 진행 과정. '미리 조사해 줘', '자료 조사해 줘', '선례가 있어?'와 같이 요청할 때 반드시 사용한다. 새로운 것을 만들거나, 모르는 도구를 다루거나, 방법을 선택해야 하는 작업이라도, 요청받지 않았더라도 사용한다.
...
`description`에 '이렇게 말하면 사용'을 구체적으로 작성하는 것이 요령입니다. 이름을 부르지 않아도 말투로 자동으로 로드됩니다.
## 5. 맡기지 않을 선은 규정이 아닌 시스템으로 지킨다
맡기는 범위를 넓힐수록, 맡기지 않을 선을 명확히 할 필요가 있었습니다.
- **돈이 움직이는 조작은 사람이 누른다.** 유료 기사 공개 버튼을 AI에게 누르게 하려 했더니, Claude Code의 안전장치에 막혔습니다. 지금은, AI가 설정 버튼 바로 직전까지 준비하고 마지막 버튼만 사람이 누릅니다.
- **개인 정보는 기계와 눈으로 확인한다.** 공개할 본문・이미지・zip 파일을 개인을 식별할 수 있는 단어 목록으로 검사하는 스크립트를 거칩니다. 목록은 손에만 두고, 공개물에는 넣지 않습니다. 이미지는 EXIF・GPS도 검사합니다. zip 파일은 내부 파일까지 열어서 검사합니다.
- **검증 데이터의 선은 스크립트로 끊는다.** FX(외환) 검증에서 마지막 확인으로 남겨둘 기간을 정해두고, 그 기간에 걸리는 실행은 백테스트를 돌리는 스크립트 측에서 거부합니다.
## 6. 잘 되지 않았던 것들
- **디자인은 완전히 맡길 수 없었다.** 아이콘을 두 번 연속으로 되돌려 받았습니다. 의미가 전달되는 그림은 그릴 수 있지만, 해당 분야에서 선호하는 모양을 몰랐기 때문입니다. 지금은 정기 조사를 통해 반응이 좋은 기사 제목 이미지를 매번 보고, 원칙을 노트에 모으고 있습니다.
- **같은 날 두 번 작동시키니 데이터가 덮어쓰여졌다.** 출력 파일명이 날짜만으로 결정되었기 때문입니다. AI 스스로 분석 과정에서 이를 깨닫고 노트에 적었습니다.
## 요약
- `CLAUDE.md`는 작업장의 지도. 만든 것은 AI 스스로에게 추가하게 한다 - 정기 실행은 '데이터 수집은 AI가, 생각하는 부분만 AI'. 도구는 처음부터 좁힌다.
- 후크는 AI의 외부 규칙, 스킬은 이름으로 부를 수 있는 진행 방식
- 돈・개인 정보・검증 데이터의 선은 시스템으로 지킨다
이 작업장에서 돌리고 있는 FX 자동매매 검증(결과를 보기 전에 합격선을 정하고 18가지 방법을 측정하여, 전부 떨어진 기록)은 note에 적어두었습니다.
### Discussion

AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기