CCAR-P 개념 카드

■ 자동화 surface 고르기

Claude Code · `claude -p` · GitHub Actions · Agent SDK · Managed Agents7.2 본편

표시가 없는 문장은 공식 문서에서 확인한 내용이에요. 다른 표시는 읽는 법

왜 배우나 — 시험이 요구하는 것

시험 목표 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)된다" 가 속이는 습관이다

Claude Code 의 도구와 루프라는 엔진은 같고, 사람·CI 단계·저장소 이벤트·내 앱 중 무엇이 부르느냐에 따라 CLI·claude -p·GitHub Actions·Agent SDK 를 고른다.
그림으로 보기 (AI 생성 · Codex · 누르면 크게)

ELI5

같은 로봇 한 대를 어디에 둘지 고르는 거예요.

  • 내 책상 옆에 두면 말로 시켜요 (대화형).
  • 공장 컨베이어에 두면 물건이 올 때마다 일해요 (CI · GitHub).
  • 우리 가게 안에 넣으면 손님 일을 해요 (내 앱).
  • 로봇 회사에 맡기면 관리는 그쪽이 해요 (관리형).

개념 설명

영상 — CI 단계의 점검, 어디에 올릴까? (약 43초 · 소리 없음 · 자막). 빌드 3번과 '내 제품 기능이 되면' 은 그림용 가정 · 실측 아님 작은 화면에서는 전체화면(⛶)으로 보세요.

원리

엔진은 하나다

  • 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)?

규칙과 판단

PR 리뷰만이면 관리형 Code Review, 아니면 @claude 호출 여부로 모드를 고르고, 예약은 Routines·Desktop scheduled tasks·/loop 중에서 고른다.
그림으로 보기 (AI 생성 · Codex · 누르면 크게)

갈림길

① 무엇이 부르나 [7.2②]

사람이 앞에 있나?
예 (터미널에서 대화)

Claude Code CLI

대화형 개발과 터미널 일회성 작업에 쓴다

아니오 (반복·무인)
어디에 붙이나?
PR·이슈 · 저장소 이벤트

↓ 아래 「GitHub 에서」 갈림길로 이어짐

다음 물음 — 할 일이 PR 리뷰뿐인가?

CI 단계 · pre-commit 훅 · 스크립트

claude -p

CI 는 --bare 와 --allowedTools 로 필요한 도구만 준다

내 Python·TS 앱·제품 안

Agent SDK

내가 운영하는 프로세스에 넣는다

루프·인프라를 안 만든다 · 장기 실행·비동기

Managed Agents

에이전트 호스팅을 Anthropic 에 맡긴다. 자세한 것은 ◆ 직접 API vs Agent SDK vs CLI vs Managed Agents 에 있다

시간 · 예약

↓ 아래 「예약 작업」 갈림길로 이어짐

다음 물음 — 어디서 돌아야 하나?

③⑤ GitHub 에서 [7.2②] [7.2③]

할 일이 PR 리뷰뿐인가?
예

Code Review (관리형)

워크플로 파일 없이 PR 마다 자동 리뷰한다. Team·Enterprise 용이고 research preview 다

아니오 (구현·보고서·트리아지)
사람이 @claude 로 부르나?
예

interactive 모드

prompt 가 없다. @claude 를 기다린다. 결과는 그 이슈·PR 코멘트에 남는다

아니오 (이벤트·cron 이 자동으로)

automation 모드

prompt 가 있다. 모든 GitHub 이벤트·cron 에서 돈다. 결과는 기본으로 워크플로 실행 로그에 남는다. 도구는 --allowedTools 로 줄 때까지 없다

① 예약 작업 [7.2②]

어디서 돌아야 하나?
컴퓨터가 꺼져 있어도

Routines

클라우드(기본 Anthropic 관리)에서 돈다

로컬 파일·미커밋 변경이 필요하다

Desktop scheduled tasks

로컬 파일이 필요한 예약에 쓴다

워크플로 설정과 같은 곳 · 저장소 이벤트

GitHub Actions cron

GitHub 호스트 러너에서 돈다

세션이 열린 동안만

/loop

세션이 열린 동안 폴링한다

나머지 규칙

  1. 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 에 있다

  2. 무인 작업 프롬프트 : 성공이 어떤 모습인지, 결과를 어디로 보낼지 명시한다. 무인이라 되물을 수 없다

규칙 원문 ①③⑤ (갈림길로 그린 규칙)
  1. 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 AgentsAnthropic 클라우드 또는 자체 호스팅 샌드박스

    그 밖에도 둘이 있다. 로컬 파일이 필요한 예약은 Desktop scheduled tasks 다. 세션이 열린 동안 폴링하려면 /loop 를 쓴다 [7.2②]

  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 조회)

  3. 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 에서 기계마다 같은 결과가 필요하다--bare 를 쓴다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 Agentsgithub-actions · common-workflows · managed-agents
호출 언어Python·TS 밖(Go·Ruby 등)CLI 를 subprocess 로 부른다. -p + --output-format json 을 쓴다agent-sdk overview
결과 모양다음 스크립트가 파싱한다--output-format json · --json-schema 를 쓴다. --json-schema 는 structured_output 을 준다headless
팀 규칙CI 에서도 따라야 한다--bare 면 CLAUDE.md 를 읽지 않는다. --append-system-prompt 등 플래그로 넣는다headless
CI 권한잠가야 한다dontAsk(프롬프트 뜰 호출은 전부 거절한다)를 쓴다. --allowedTools 로 허용할 것만 준다headless
Actions 모드prompt 입력이 없다interactive 모드다. @claude 를 기다리고, 결과는 코멘트로 남긴다github-actions
Actions 모드prompt 입력이 있다automation 모드다. 모든 이벤트·cron 에서 돌고, 결과는 실행 로그에 남는다. 도구는 --allowedTools 로 줄 때까지 없다github-actions
트리거 주체봇 · 쓰기 권한 없는 사용자기본으로 거부한다(allowed_bots · allowed_non_write_users)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"

PR 리뷰는 보통 관리형 Code Review 지만, ZDR 조직은 Actions 워크플로로 직접, --bare 면 규칙을 따로 주입, 공개 저장소 예약이 꺼지면 Routines 로 간다.
그림으로 보기 (AI 생성 · Codex · 누르면 크게) — 자세한 조건은 아래 '더 깊이'에 있어요
더 깊이 : 뒤집히는 때 · 오답 재료 (설명)

뒤집히는 때

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 가 그렇게 말한다--bare 가 건너뛴다. -p 만으로는 대화형과 같은 맥락을 로드한다headless (Skilljar cci 486935 와 충돌한다. docs 가 이긴다)
"--bare 로도 CLAUDE.md 팀 규칙은 따른다"CLAUDE.md 를 늘 읽는 파일로 외웠다--bare 는 CLAUDE.md 도 건너뛴다headless
"보고서 cron 에 넉넉한 쓰기 권한"나중에 기능 붙이기 쉽다워크플로 권한과 도구는 필요한 만큼만 준다github-actions · ■ 최소 권한
"prompt 만 주면 Claude 가 GitHub 을 알아서 읽는다"interactive 모드와 헷갈린다automation 모드 plain prompt 는 --allowedTools 로 줄 때까지 셸·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)에 올리는지 묻는다. 키·권한·비용을 어떻게 묶는지도 묻는다

출처

상태

  • Skilljar 교정 1곳

미해결

  1. Routines 의 "예약은 최소 1시간 간격 · claude/ 접두 브랜치에만 push" 는 Skilljar cci 486935 에만 있다. routines 문서를 받지 않아 docs 와 대조하지 않았다. 카드에 넣지 않았다.
  2. Managed Agents 예약 배포(scheduled deployments)의 cron 세부는 문서를 열지 않았다(managed-agents은 링크만 있다).
  3. GitLab CI/CD 쪽(headless 링크)은 보지 않았다. 시험이 GitHub 외 CI 를 물으면 claude -p 일반 원칙으로 답할 수밖에 없다.
  4. 목록이 인용한 영상 주장(Part 16 [18:20] "표면 셋")은 유튜브 원문과 대조하지 않았다. 목록 메모("공식 비교표는 넷")를 공식 원문으로 다시 확인해 고쳤다.
  5. --bare 가 -p 기본값이 되는 시점은 "future release" 로만 적혀 있다(headless). 그래서 시험과 현재 중 어느 쪽 기본인지 흔들릴 수 있다.