■ 자동화 surface 고르기
표시가 없는 문장은 공식 문서에서 확인한 내용이에요. 다른 표시는 읽는 법
왜 배우나 — 시험이 요구하는 것
시험 목표 7.2 개발 흐름 개선 · D7 개발팀 7%Improve developer workflows using AI-assisted tooling
이 개념으로 푸는 판단 (할 수 있어야 하는 것)
- 7.2② 반복 작업 자동화, 어느 표면에 올리나? — Claude Code(대화형) / claude -p(CI·스크립트) / GitHub Actions / Agent SDK / Managed Agents
- 7.2③ AI 코드 리뷰, 무엇을 보고시키고 어떻게 넓히나? — 리뷰 지시(전부 보고 → 뒤에서 거르기)와 도입 확대 방식
한눈에
개발팀 반복 작업을 어디에 올리나를 고른다. 엔진은 같다. Claude Code 의 도구와 루프다. GitHub Action 도 Agent SDK 위에 만든 것이다. 그래서 가르는 것은 둘이다. **무엇이 부르나**(사람·CI 단계·저장소 이벤트·내 앱·예약)와 **누가 돌리나** 다
연동 방식 일반 판단(누가 루프를 돌리나 · ZDR)은 ◆ 직접 API vs Agent SDK vs CLI vs Managed Agents 에 있다. 여기는 팀 반복 작업 관점에서 본다
비유 로컬 cron(CLI), CI 러너(GitHub Actions), 앱 내장 라이브러리(Agent SDK), 매니지드 서비스(Lambda·Fargate)의 차이다. "직접 운영해야 통제(control)된다" 가 속이는 습관이다
ELI5
같은 로봇 한 대를 어디에 둘지 고르는 거예요.
- 내 책상 옆에 두면 말로 시켜요 (대화형).
- 공장 컨베이어에 두면 물건이 올 때마다 일해요 (CI · GitHub).
- 우리 가게 안에 넣으면 손님 일을 해요 (내 앱).
- 로봇 회사에 맡기면 관리는 그쪽이 해요 (관리형).
개념 설명
원리
엔진은 하나다
- Agent SDK 는 Claude Code 와 같은 도구·루프·컨텍스트 관리를 쓴다. CLI(
-p)는 스크립트·CI 용 같은 엔진이다. GitHub Action 도 SDK 위에 만든 것이다. - 그래서 "어느 것이 더 똑똑하나" 가 아니라 아래 셋으로 구분한다.
- 무엇이 부르나
- 누가 돌리나
- 자격증명이 어디 사나
세 축
- 부르는 것 : 사람(대화) · CI 단계/스크립트 · 저장소 이벤트(PR·이슈·
@claude) · 예약(cron) · 내 제품 코드다. - 돌리는 곳 : 내 터미널 · 내 파이프라인 · GitHub 호스트 러너 · Anthropic 인프라(Code Review · Routines · Managed Agents)다.
- 자격증명 : CI·
--bare는ANTHROPIC_API_KEY환경변수를 쓴다. Actions 는 GitHub Secrets 를 쓴다. SDK 제품은 API 키 인증(authentication)을 쓴다. claude.ai 로그인 제공은 사전 승인 없이는 안 된다.
무인이면 달라지는 것
- 되물을 사람이 없다. 그래서 아래처럼 한다.
- 프롬프트에 성공 모습과 결과 처리를 적는다
- 도구는
--allowedTools로 딱 필요한 만큼 준다 - 답할 사람이 없는 권한 요청은 거절되게 한다(
dontAsk·--permission-prompts none)
- 같은 결과가 필요하다. 그래서
--bare로 기계마다 다른 훅·MCP·CLAUDE.md 를 끊는다. 대신 팀 규칙도 끊기니 플래그로 다시 넣는다.
핵심 질문은 두 개다
- 이 작업을 무엇이 부르나(사람 · CI · 저장소 이벤트 · 예약 · 제품)?
- 서버·프로세스를 누가 운영하나(우리 · GitHub · Anthropic)?
규칙과 판단
갈림길
① 무엇이 부르나 [7.2②]
Claude Code CLI
대화형 개발과 터미널 일회성 작업에 쓴다
다음 물음 — 할 일이 PR 리뷰뿐인가?
claude -p
CI 는 --bare 와 --allowedTools 로 필요한 도구만 준다
Agent SDK
내가 운영하는 프로세스에 넣는다
Managed Agents
에이전트 호스팅을 Anthropic 에 맡긴다. 자세한 것은 ◆ 직접 API vs Agent SDK vs CLI vs Managed Agents 에 있다
다음 물음 — 어디서 돌아야 하나?
③⑤ GitHub 에서 [7.2②] [7.2③]
Code Review (관리형)
워크플로 파일 없이 PR 마다 자동 리뷰한다. Team·Enterprise 용이고 research preview 다
@claude 로 부르나?interactive 모드
prompt 가 없다. @claude 를 기다린다. 결과는 그 이슈·PR 코멘트에 남는다
automation 모드
prompt 가 있다. 모든 GitHub 이벤트·cron 에서 돈다. 결과는 기본으로 워크플로 실행 로그에 남는다. 도구는 --allowedTools 로 줄 때까지 없다
① 예약 작업 [7.2②]
Routines
클라우드(기본 Anthropic 관리)에서 돈다
Desktop scheduled tasks
로컬 파일이 필요한 예약에 쓴다
GitHub Actions cron
GitHub 호스트 러너에서 돈다
/loop
세션이 열린 동안 폴링한다
나머지 규칙
-
claude -p를 CI 에 :--bare는 훅·skill·plugin·MCP 서버·auto memory·CLAUDE.md 자동 로드를 건너뛴다. 그래서 어느 기계에서나 같은 결과가 나온다. 스크립트·SDK 호출에 권장하는 모드이고, 이후-p기본값이 될 예정이다대신 팀 CLAUDE.md 도 읽지 않는다. 필요한 맥락은 플래그로 넣는다(
--append-system-prompt·--settings·--mcp-config등). 인증(authentication)은ANTHROPIC_API_KEY로 한다(구독 로그인은 쓰지 않는다)--allowedTools로 필요한 도구만 준다. 무인 실행에서 중요하다.-p의 기본 권한 모드는 모든 플랜에서 Manual 이다. 그래서 잠근 CI 는dontAsk를 쓰고, 답할 사람이 없으면--permission-prompts none을 쓴다결과는
--output-format json(result·total_cost_usd)이나--json-schema로 파싱한다.--json-schema는structured_output을 준다 (2026-09-28 조회)--bare없이-p를 쓰면 그 저장소의.claude/settings.json훅을 돌리고.mcp.json서버를 붙인다. 신뢰한 적 없는 폴더여도 확인창 없이 그렇게 한다외부 기여자 PR 은 그 파일들까지 바꿀 수 있다 (PR 이 설정을 바꾼다는 적용은 추론)
그래서 남이 쓴 저장소에서
-p를 돌리기 전에는--bare로 시작한다. 필요한 규칙과 도구는 플래그로 넣는다. 자세한 것은 ◆ 직접 API vs Agent SDK vs CLI vs Managed Agents 에 있다 -
무인 작업 프롬프트 : 성공이 어떤 모습인지, 결과를 어디로 보낼지 명시한다. 무인이라 되물을 수 없다
규칙 원문 ①③⑤ (갈림길로 그린 규칙)
-
surface 표 (2026-09-28 조회)
반복 작업 surface 운영·위치 대화형 개발 · 터미널 일회성 작업 Claude Code CLI 내 터미널 CI · pre-commit 훅 · 스크립트 · 파이프라인 claude -p(+--)output- format json 내 파이프라인 PR·이슈의 @claude· PR 열림 같은 저장소 이벤트 · 워크플로 설정 옆 cronGitHub Actions ( anthropics/)claude- code- action@v1 GitHub 호스트 러너(Actions 분 + API 토큰) PR 리뷰만 Code Review (관리형) Anthropic 인프라 컴퓨터 꺼져도 도는 예약 · API 호출·GitHub 이벤트로도 Routines 클라우드(기본 Anthropic 관리) 내 Python·TS 앱에 에이전트 내장 Agent SDK 내가 운영하는 프로세스 에이전트 호스팅을 Anthropic 에 · 장기 실행·비동기 · cron 예약 배포 Managed Agents Anthropic 클라우드 또는 자체 호스팅 샌드박스 그 밖에도 둘이 있다. 로컬 파일이 필요한 예약은 Desktop scheduled tasks 다. 세션이 열린 동안 폴링하려면
/loop를 쓴다 [7.2②] -
GitHub Actions
설정 :
/install-github-app으로 한다(github.com 저장소만 되고 저장소 admin 이 필요하다). 수동으로 해도 된다(앱 설치 + 시크릿 + 워크플로 파일)두 모드 :
prompt가 없으면 interactive 다.@claude를 기다리고 결과는 코멘트로 남긴다.prompt가 있으면 automation 이다. 모든 GitHub 이벤트·cron 에서 돌고 결과는 기본으로 워크플로 실행 로그에 남는다. automation 의 plain prompt 는claude_args의--allowedTools로 도구를 줄 때까지 셸·GitHub API 가 없다키 : GitHub Secrets 에 둔다(
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}). 저장소에 직접 커밋하지 않는다. 워크플로 권한은 필요한 만큼만 준다. 머지 전에 Claude 변경을 사람이 검토한다누가 부르나 : 이슈·PR 이벤트는 쓰기 권한 사용자만 부를 수 있다. 봇은
allowed_bots에 없으면 거부된다(봇끼리 루프 방지)비용 lever : 아래를 쓴다
claude_args의--max-turns- 워크플로 타임아웃
- concurrency
- 구체적인
@claude요청 - 짧은 CLAUDE.md(매 실행 읽는다)
예약 : 기본 브랜치에서만 돈다. 공개 저장소는 60일 활동이 없으면 GitHub 가 끈다. fork PR 에는 시크릿이 가지 않아 리뷰가 돌지 않는다 (2026-09-28 조회)
-
PR 리뷰만이면 관리형 Code Review 부터 쓴다. CI 에서 실제로 무언가 해야 하면 Action 을 쓴다 (Skilljar. docs 도 Code Review 를 워크플로 파일 없이 PR 마다 하는 자동 리뷰로 적는다)
Code Review 는 Team·Enterprise 용이고 research preview 다. ZDR 조직은 쓰지 못한다. 자세한 것은 ■ AI 코드 리뷰 에 있다
더 깊이 : 판단 규칙 · 상황 변수 (설명)
판단 규칙
| 조건 | 답 | 근거 |
|---|---|---|
| 터미널에서 대화형 개발이나 일회성 작업을 한다 | Claude Code CLI 를 쓴다 | agent-sdk overview "Do interactive development or run one-off tasks from a terminal" |
| CI · pre-commit 훅 · 스크립트에서 돌린다 | claude -p 를 쓴다 | best-practices "Use claude -p "prompt" in CI, pre-commit hooks, or scripts." |
| CI 에서 기계마다 같은 결과가 필요하다 | -- 를 쓴다 | headless "Bare mode is useful for CI and scripts where you need the same result on every machine." |
PR·이슈의 @claude · 저장소 이벤트 · 워크플로 옆 cron 이다 | GitHub Actions 를 쓴다 | github-actions · common-workflows |
| PR 리뷰만 하고 워크플로는 유지하지 않는다 | Code Review (관리형) 를 쓴다 | github-actions "automatic review on every pull request, without writing a workflow" |
| 컴퓨터가 꺼져도 도는 예약이다 | Routines 를 쓴다 | common-workflows |
| 로컬 파일·미커밋 변경이 필요한 예약이다 | Desktop scheduled tasks 를 쓴다 | common-workflows |
| 내 Python·TS 앱에 에이전트를 내장한다 | Agent SDK 를 쓴다 | agent-sdk overview |
| 에이전트 호스팅을 Anthropic 에 맡긴다 · 장기 실행·비동기 · cron 예약 | Managed Agents 를 쓴다 | agent-sdk overview · managed-agents overview |
| Actions 에 키를 넣어야 한다 | GitHub Secrets 에 둔다. 저장소에 커밋하지 않는다. 워크플로 권한은 필요한 만큼만 준다 | github-actions |
| 무인 예약 프롬프트를 쓴다 | 성공 모습과 결과 처리 방법을 명시한다 | common-workflows |
상황 변수
| 변수 | 값 | 답 쪽 | 근거 |
|---|---|---|---|
| 별도 서버 | 두기 싫다 | GitHub Actions(GitHub 호스트 러너) · Code Review · Routines · Managed Agents | github-actions · common-workflows · managed-agents |
| 호출 언어 | Python·TS 밖(Go·Ruby 등) | CLI 를 subprocess 로 부른다. -p + -- 을 쓴다 | agent-sdk overview |
| 결과 모양 | 다음 스크립트가 파싱한다 | -- · -- 를 쓴다. -- 는 structured_ 을 준다 | headless |
| 팀 규칙 | CI 에서도 따라야 한다 | -- 면 CLAUDE.md 를 읽지 않는다. -- 등 플래그로 넣는다 | headless |
| CI 권한 | 잠가야 한다 | dontAsk(프롬프트 뜰 호출은 전부 거절한다)를 쓴다. -- 로 허용할 것만 준다 | headless |
| Actions 모드 | prompt 입력이 없다 | interactive 모드다. @claude 를 기다리고, 결과는 코멘트로 남긴다 | github-actions |
| Actions 모드 | prompt 입력이 있다 | automation 모드다. 모든 이벤트·cron 에서 돌고, 결과는 실행 로그에 남는다. 도구는 -- 로 줄 때까지 없다 | github-actions |
| 트리거 주체 | 봇 · 쓰기 권한 없는 사용자 | 기본으로 거부한다(allowed_ · allowed_) | github-actions |
| 조직 | ZDR 을 켰다 | Code Review 를 쓰지 못한다. Managed Agents 대상도 아니다 | code-review · managed-agents |
연습 문제
사내 Jenkins 빌드 파이프라인의 한 단계로CI 단계, 바뀐 파일의 문서 주석을 Claude 가 점검하게 하려 한다. 사람은 결과만 받아 본다무인. 한 팀원은 "자동화면 Agent SDK 로 서버를 따로 만들자" 고 한다. 어느 surface(쓰는 환경)에 올릴까?
시험 대비
함정
- "surface 는 셋이고, 자동화면 무조건 Agent SDK 다" 는 함정이다. 공식 비교표는 Agent SDK · CLI · Client SDK · Managed Agents 넷이다. 개발팀 반복 작업에는 GitHub Actions · Code Review · Routines 도 있다
- "서버 두기 싫은데 PR 리뷰·아침 요약을 Agent SDK 로 직접 호스팅한다" 는 함정이다. GitHub Actions(GitHub 호스트 러너) · Code Review · Routines 를 쓴다
- "워크플로 파일에 API 키를 직접 적는다" 는 함정이다. GitHub Secrets 에 둔다
- "CI 에
--bare를 붙여도 팀 CLAUDE.md 규칙은 따른다" 는 함정이다.--bare면 CLAUDE.md 를 읽지 않는다. 필요한 맥락은 플래그로 넣는다 - "외부 PR 리뷰 CI 는 저장소에 커밋된
.claude규칙이 지켜 준다" 는 함정이다. 그 파일을 PR 이 바꿀 수 있다. 남이 쓴 저장소면--bare로 시작한다 - "아침 보고서 cron 에 넉넉히 쓰기 권한까지 준다" 는 함정이다. 워크플로 권한과 도구는 필요한 만큼만 준다 (Skilljar 는 보고서면 읽기 전용이라고 한다)
- "
prompt만 주면 Claude 가 알아서 GitHub 을 읽는다" 는 함정이다. automation 모드 plain prompt 는--allowedTools로 줄 때까지 도구가 없다 - Skilljar 와 docs 가 다른 곳이 있다. Skilljar cci 486935 는 "
-p가 훅·skill·MCP·CLAUDE.md 자동 로드를 건너뛴다" 고 한다. docs 는 **--bare** 가 건너뛴다고 한다.-p만으로는 대화형과 같은 맥락을 로드한다 (docs 가 이긴다)
신호
"Use claude -p "prompt" in CI, pre-commit hooks, or scripts."
"Bare mode is useful for CI and scripts where you need the same result on every machine."
"Tasks tied to repo events like opened PRs, or cron schedules that should live alongside your workflow config."
"Never commit API keys or OAuth tokens directly to your repository."
"Have Anthropic host the agent, configured through the Claude API"
"Do interactive development or run one-off tasks from a terminal"
더 깊이 : 뒤집히는 때 · 오답 재료 (설명)
뒤집히는 때
1. "PR 리뷰 = 관리형 Code Review" 가 안 될 때
- 조건 : 조직이 ZDR 을 켰다. 또는 Team·Enterprise 구독이 아니다.
- 판단 : Code Review 는 research preview 이고 Team·Enterprise 전용이다. ZDR 조직은 쓸 수 없다. 그래서 GitHub Actions 에
code-review플러그인 워크플로를 직접 둔다(프롬프트·모델·트리거를 직접 제어한다). 또는 로컬/code-review를 쓴다. - 근거 : code-review · github-actions
2. --bare 로 바꿨더니 리뷰 품질이 떨어짐
- 조건 : CI 리뷰 잡을 "기계마다 같은 결과" 를 위해
--bare로 바꿨다. 그 뒤 저장소 규칙(예 "생성 파일은 지적 말 것")을 지키지 않는다. - 판단 :
--bare는 CLAUDE.md 까지 건너뛴다. 재현성과 팀 맥락 주입이 부딪힌다. 그래서 규칙을--append-system-prompt-file등으로 명시해 넣는다.--bare를 빼는 것도 답이다. 하지만 그러면 그 폴더의 훅·MCP 가 확인창 없이 실행된다(◆ 직접 API vs Agent SDK vs CLI vs Managed Agents). - 등급 : (플래그 목록) · 둘 중 고르는 기준은 업계 일반
- 근거 : headless
3. 예약 워크플로가 조용히 멈춤
- 조건 : 공개 저장소에서 매일 09:00 UTC 요약 cron 을 Actions 로 돌린다. 두 달쯤 커밋이 없던 뒤 보고서가 끊긴다.
- 판단 : GitHub 는 예약 워크플로를 기본 브랜치에서만 돌린다. 공개 저장소는 60일 활동이 없으면 예약을 끈다. 모델이나 키 문제가 아니다. 저장소 활동과 무관하게 돌아야 하면 Routines(클라우드) 쪽을 쓴다.
- 근거 : github-actions · common-workflows
4. 반복 작업이 "제품 기능" 이 될 때
- 조건 : 사내 PR 요약 봇을 고객용 SaaS 기능으로 팔기로 했다.
- 판단 : 이제 팀 도구(Actions · Routines)가 아니라 내 앱 안이다. 그래서 Agent SDK(내가 운영하는 프로세스)를 쓴다. 운영을 줄이려면 Managed Agents 를 쓴다. 이때부터는 ◆ 직접 API vs Agent SDK vs CLI vs Managed Agents 의 판단(ZDR · 인증 · 운영 인력)을 따른다.
- 등급 : (surface(쓰는 환경) 정의) · 판단 연결은 업계 일반
- 근거 : agent-sdk overview
오답 재료
| 오답 | 왜 끌리나 | 왜 틀리나 | 근거 |
|---|---|---|---|
| "surface 는 셋, 자동화면 무조건 Agent SDK" | SDK 가 가장 "프로그래밍 가능" 해 보인다 | 공식 비교표는 넷이다(Agent SDK · CLI · Client SDK · Managed Agents). 팀 반복 작업에는 Actions · Code Review · Routines 도 있다 | agent-sdk overview · common-workflows |
| "서버 두기 싫은데 SDK 로 직접 호스팅" | 통제(control)가 쉬워 보인다 | 프로세스 운영이 우리 몫이 된다. GitHub 호스트 러너나 관리형 서비스가 조건에 맞는다 | github-actions · agent-sdk overview |
| "워크플로 파일에 API 키를 적는다" | 설정이 한곳에 모인다 | GitHub Secrets 에 둔다. 저장소에 커밋하지 않는다 | github-actions |
"CI 에서 -p 만 쓰면 로컬 훅·MCP 는 실행 안 된다" | Skilljar 가 그렇게 말한다 | -- 가 건너뛴다. -p 만으로는 대화형과 같은 맥락을 로드한다 | headless (Skilljar cci 486935 와 충돌한다. docs 가 이긴다) |
"-- 로도 CLAUDE.md 팀 규칙은 따른다" | CLAUDE.md 를 늘 읽는 파일로 외웠다 | -- 는 CLAUDE.md 도 건너뛴다 | headless |
| "보고서 cron 에 넉넉한 쓰기 권한" | 나중에 기능 붙이기 쉽다 | 워크플로 권한과 도구는 필요한 만큼만 준다 | github-actions · ■ 최소 권한 |
"prompt 만 주면 Claude 가 GitHub 을 알아서 읽는다" | interactive 모드와 헷갈린다 | automation 모드 plain prompt 는 -- 로 줄 때까지 셸·GitHub API 가 없다 | github-actions |
| "무인 작업도 모호하면 Claude 가 되물을 것" | 대화형 습관이다 | 무인이라 되물을 수 없다. 성공 모습과 결과 처리를 적는다 | common-workflows |
참고
더 깊이 : CCA-F · 출처 · 상태 · 미해결 (참고)
CCA-F
겹침 (3.6 CI/CD 에서 Claude Code 의 -p 비대화형 · --output-format json + --json-schema · 세션 격리 리뷰). 여기서는 같은 반복 작업을 어느 surface(CLI · Actions · 관리형 Code Review · Routines · Agent SDK · Managed Agents)에 올리는지 묻는다. 키·권한·비용을 어떻게 묶는지도 묻는다
출처
- 가이드 목표 7.2 공식 시험 가이드 v1.0
- best-practices
- headless
- github-actions
- common-workflows
- agent-sdk overview
- managed-agents overview
- code-review
- permissions
- Skilljar cci 486935·486936 — 전부 2026-09-28 조회
상태
- Skilljar 교정 1곳
미해결
- Routines 의 "예약은 최소 1시간 간격 ·
claude/접두 브랜치에만 push" 는 Skilljar cci 486935 에만 있다. routines 문서를 받지 않아 docs 와 대조하지 않았다. 카드에 넣지 않았다. - Managed Agents 예약 배포(scheduled deployments)의 cron 세부는 문서를 열지 않았다(managed-agents은 링크만 있다).
- GitLab CI/CD 쪽(headless 링크)은 보지 않았다. 시험이 GitHub 외 CI 를 물으면
claude -p일반 원칙으로 답할 수밖에 없다. - 목록이 인용한 영상 주장(Part 16 [18:20] "표면 셋")은 유튜브 원문과 대조하지 않았다. 목록 메모("공식 비교표는 넷")를 공식 원문으로 다시 확인해 고쳤다.
--bare가-p기본값이 되는 시점은 "future release" 로만 적혀 있다(headless). 그래서 시험과 현재 중 어느 쪽 기본인지 흔들릴 수 있다.