본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 04. 09:13

Claude Code Skills vs Subagents vs Dynamic Workflows: 어떤 것을 사용해야 할까요?

요약

Claude Code, Cursor 등 AI 코딩 도구에서 활용되는 스킬, 서브에이전트, 동적 워크플로의 차이점과 적절한 사용 사례를 다룹니다. 작업의 복잡도와 위험도에 따라 최적의 워크플로 프리미티브를 선택할 수 있는 의사결정 프레임워크를 제공합니다.

핵심 포인트

  • 단순 프롬프트는 작고 위험도가 낮은 일회성 작업에 적합함
  • 스킬은 반복되는 운영 지식을 재사용 가능한 형태로 만든 것임
  • 작업의 형태와 복잡도에 따라 적절한 프리미티브를 선택해야 함

Claude Code Skills vs Subagents vs Dynamic Workflows: 어떤 것을 사용해야 할까요?

AI 코딩 도구들은 더 이상 단순한 채팅창이 아닙니다.

Claude Code, Codex, Cursor, OpenClaw 및 유사한 도구들은 워크플로 프리미티브 (workflow primitives)인 스킬 (skills), 서브에이전트 (subagents), 백그라운드 에이전트 (background agents), 그리고 동적 워크플로 (dynamic workflows)를 향해 나아가고 있습니다.

이는 좋은 현상이지만, 새로운 문제를 야기합니다. 개발자들이 모든 작업에 똑같은 망치를 사용하기 시작했다는 점입니다.

단순한 프롬프트 (simple prompt), 재사용 가능한 스킬 (reusable skill), 서브에이전트 (subagent), 백그라운드 브랜치 (background branch), 그리고 동적 워크플로 (dynamic workflow)는 모두 같은 것이 아닙니다.

이 가이드는 실질적인 의사결정 프레임워크 (decision framework)를 제공합니다.

Dynamic workflow routing benchmark

빠른 답변

프리미티브 (Primitive)최적의 용도피해야 할 경우
단순 프롬프트 (Simple prompt)작고 위험도가 낮은 일회성 작업다중 파일 또는 위험도가 높은 변경
...
핵심 아이디어: 유행이 아니라 워크플로의 형태에 따라 프리미티브를 선택하세요.

1. 단순 프롬프트 (Simple prompt)

작업이 작고 되돌릴 수 있는 경우에 단순 프롬프트를 사용하세요.

예시:

  • 이 함수를 설명해줘;
  • 한 파일 내의 변수 이름을 변경해줘;
  • 짧은 정규 표현식 (regex)을 작성해줘;
  • 에러 메시지를 요약해줘;
  • 작은 README 섹션 초안을 작성해줘.

단순 프롬프트는 빠릅니다. 오버헤드 (overhead)가 낮습니다. 오케스트레이션 (orchestration)이 필요하지 않습니다.

하지만 작업에 여러 단계가 있거나 숨겨진 위험이 있는 경우에는 한계가 있습니다.

2. 스킬 (Skill)

동일한 프로세스를 여러 번 반복해야 할 때 스킬이 가장 적합합니다.

예시:

  • 송장 이메일 SOP (표준 운영 절차);
  • 블로그 게시 규칙;
  • 일일 성장 보고서 워크플로;
  • 플랫폼별 포맷팅 규칙;
  • 지원 분류 (support triage) 절차;
  • 벤치마크 기사 체크리스트.

스킬은 작업자가 아닙니다. 그것은 재사용 가능한 운영 지식 (operational knowledge)입니다.

만약 본인이 똑같은 지침을 반복해서 쓰고 있다는 것을 깨닫는다면, 그것을 스킬로 만드세요.

저희의 워크플로에서는 다음과 같은 것을 만들었습니다:

skills/agent-workflow-replicator/SKILL.md

그 역할은 바이럴(viral)이 된 Codex, Claude Code, 그리고 Cursor 워크플로 예시들을 재현 가능한 실험, 기사, 그리고 도구로 변환하는 것입니다.

3. Subagent (서브에이전트)

서브에이전트(Subagent)는 작업의 범위를 지정하고 위임할 수 있을 때 유용합니다.

예시:

  • 이 PR(Pull Request)의 보안 이슈를 감사(audit)할 것;
  • 저장소(repo) 내의 깨진 링크를 검사할 것;
  • 세 가지 API 응답을 비교할 것;
  • 경쟁 도구들을 조사할 것;
  • 로그를 검토하고 근본 원인(root cause)을 요약할 것.

훌륭한 서브에이전트는 좁은 임무를 가지고 있으며 결과를 보고합니다.

실수는 모든 서브에이전트에게 전체 제품 목표를 부여하는 것입니다. 이는 중복을 초래하고 일관성 없는 결정을 만듭니다.

서브에이전트는 작업자(workers)입니다. 그들이 항상 오케스트레이터(orchestrators)인 것은 아닙니다.

4. Background agent (백그라운드 에이전트)

백그라운드 에이전트(Background agent)는 작업이 비동기적(asynchronously)으로 실행될 수 있을 때 유용합니다.

예시:

  • 별도의 브랜치(branch)에서 대규모 리팩토링(refactor) 수행;
  • 코드베이스 전체에 걸쳐 테스트 생성;
  • 의존성 마이그레이션(dependency migration);
  • 밤샘 조사(overnight research);
  • 여러 개의 git worktree 실험.

이것은 많은 Cursor 백그라운드 에이전트 논의의 이면에 있는 패턴입니다: 오래 걸리는 작업을 로컬의 단일 브랜치 루프(single-branch loop) 밖으로 옮기는 것입니다.

핵심 요구사항은 격리(isolation)입니다. 백그라운드 에이전트는 메인 작업 트리(working tree)를 조용히 오염시켜서는 안 됩니다.

브랜치(branches), 워크트리(worktrees), 명시적인 디프(explicit diffs), 그리고 리뷰 게이트(review gates)를 사용하세요.

5. Dynamic workflow (동적 워크플로)

동적 워크플로(Dynamic workflow)는 여러 단계가 필요한 복잡한 작업을 위한 것입니다.

예시:

  • 권한 테스트를 포함한 결제 내역 내보내기(billing export);
  • 다중 파일 마이그레이션(multi-file migration);
  • 보안에 민감한 리팩토링(refactor);
  • 에이전트 워크플로 벤치마크(agent workflow benchmark);
  • 운영 환경 장애 자동화(production incident automation);
  • 모델 라우팅 평가(model routing evaluation).

동적 워크플로는 다음과 같은 패킷(packets)을 생성해야 합니다:

planner -> implementer -> adversarial reviewer -> verifier

그것이 저희가 다음을 구축한 이유입니다:

tools/agent_workflows/workflow_orchestrator.py

이 도구는 역할 패킷(role packets), 검증 게이트(verification gates), 그리고 트레이스 로깅(trace logging)을 포함하는 재현 가능한 워크플로 폴더를 생성합니다.

A selector tool (선택 도구)

저희는 또한 작은 선택기(selector)를 만들었습니다:

tools/agent_workflows/workflow_primitive_selector.py

예시:

python tools/agent_workflows/workflow_primitive_selector.py \
  --task "Refactor billing export across 20 files with authorization tests and rollback notes" \
  --json

출력(Output):

{
  "task": "Refactor billing export across 20 files with authorization tests and rollback notes",
  "scores": {
...

이 셀렉터(selector)는 의도적으로 단순하게 설계되었습니다. 이는 팀들이 자신들만의 워크플로우 정책(workflow policy)을 인코딩할 수 있는 시작점입니다.

모델 라우팅(model routing)의 역할

프리미티브(primitive)를 선택했다면, 다음으로 모델 경로(model route)를 선택하십시오.

예시:

단계 (Step)모델 경로 아이디어 (Model route idea)
기술 가이드 포맷팅 (Skill-guided formatting)빠르고 저렴한 모델 (fast/cheap model)
...

Crazyrouter를 사용하면 클라이언트는 OpenAI 호환성을 유지할 수 있습니다:

from openai import OpenAI

client = OpenAI(
...

API 베이스 URL(base URLs)에 UTM 파라미터를 추가하지 마십시오. 사람이 보는 링크에는 UTM을 사용할 수 있지만, 코드 엔드포인트(endpoints)는 깔끔하게 유지되어야 합니다.

의사결정 트리 (Decision tree)

다음의 경험칙(rule of thumb)을 사용하십시오:

매우 작고 리스크가 낮은가?
  -> 단순 프롬프트 (simple prompt)

...

흔한 실수들 (Common mistakes)

실수 1: 모든 작업을 동적 워크플로우(dynamic workflow)로 만드는 것

동적 워크플로우는 오버헤드(overhead)가 발생합니다. 아주 작은 수정 작업에는 사용하지 마십시오.

실수 2: 기술(skills)을 마치 작업자(workers)처럼 사용하는 것

기술(skills)은 재사용 가능한 지침(instructions)입니다. 기술이 실행(execution)이나 검증(verification)을 대체할 수는 없습니다.

실수 3: 서브에이전트(subagents)가 제품 수준의 결정을 내리게 하는 것

서브에이전트는 발견 사항을 보고해야 합니다. 결정은 오케스트레이터(orchestrator)나 사람 소유자가 내려야 합니다.

실수 4: 트레이스 로그(trace logs)가 없는 것

워크플로우에 여러 단계가 있다면 역할(role), 모델(model), 지연 시간(latency), 토큰(tokens), 결과(result), 그리고 근거(evidence)를 로그로 남기십시오.

로그가 없다면 라우팅(routing)을 개선할 수 없습니다.

최종 권장 사항

프로덕션 AI 코딩을 위해서는 에이전트(agents)를 중심으로 한 작은 운영체제(operating system)를 구축하십시오:

  • 반복되는 규칙을 위한 기술(skills);
  • 범위가 정해진 작업을 위한 서브에이전트(subagents);
  • 격리된 장기 실행 작업을 위한 백그라운드 에이전트(background agents);
  • 복잡한 변경을 위한 동적 워크플로우(dynamic workflows);
  • 비용 및 품질 제어를 위한 모델 라우팅(model routing);
  • 근거 확보를 위한 트레이스 로그(trace logs).

미래는 단 하나의 마법 같은 코딩 에이전트(coding agent)가 아닙니다. 그것은 적절한 모델(models)을 통해 라우팅(routed)되고 근거(evidence)로 검증되는 워크플로 프리미티브(workflow primitives)의 집합입니다.

Crazyrouter를 사용하여 모델 라우팅(model routing)을 시도해 보세요: Crazyrouter

AI 자동 생성 콘텐츠

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

원문 바로가기
0

댓글

0