Cursor 2.4: 서브 에이전트와 스킬로 코딩 워크플로 혁신
Cursor 2.4에서 추가된 서브 에이전트, 에이전트 스킬, 나노바나나(Nano Banana) 이미지 생성 기능을 실전 코드 리뷰 자동화 사례와 함께 상세히 분석합니다.
도입부
여러분, Cursor가 2.4 버전으로 업데이트되면서 제가 한참 기다리던 기능들이 한꺼번에 들어왔습니다. 크게 세 가지라고 보시면 됩니다. 첫째, 서브 에이전트(Subagent). 작업을 역할별로 분리하고 독립된 컨텍스트에서 병렬로 돌릴 수 있는 기능입니다. 둘째, 에이전트 스킬(Agent Skills). 자주 쓰는 절차와 스크립트를 패키징해 재사용 가능한 루틴으로 만드는 기능이죠. 셋째, 나노바나나(Nano Banana) 이미지 생성 기능. Google의 나노바나나 모델로 IDE 안에서 직접 이미지 에셋을 만들고 프로젝트에 바로 반영하는 기능입니다.
제가 말하고 싶은 건 이게 단순한 코드 자동 생성을 넘어선다는 점입니다. 코드 리뷰 자동화, 반복 작업 루틴 구축, 디자인 에셋 생성 통합까지 한 흐름으로 묶입니다. 특히 서브 에이전트는 대규모 PR 리뷰나 파일별 테스트 생성처럼 같은 기준으로 여러 건을 빠르게 처리해야 할 때 진가를 발휘한다고 봅니다. 이 기능들은 원래 Anthropic의 Claude Code에서 먼저 도입된 것들인데, 이제 Cursor에도 들어왔습니다. IDE를 고를 때 에이전트 특화 기능의 유무가 핵심 기준으로 떠오르는 시점이라고 할 수 있습니다.
아래에서는 각 기능의 작동 원리, 실전 코드 리뷰 자동화 사례, 그리고 서브 에이전트와 스킬을 조합한 파이프라인 구축 방법까지 차근차근 짚어보겠습니다.
핵심 요약
- 서브 에이전트(Subagent): 작업을 역할별로 분리하고 독립된 컨텍스트에서 병렬 실행. 순차 처리 대비 처리 시간 단축과 메인 에이전트 컨텍스트 윈도우 절약 효과.
- 코드 리뷰 자동화 사례: PR 내 미해결 코멘트 14개를 서브 에이전트로 병렬 검증하여 타당성·우선순위·적용 여부를 표 형식으로 정리.
- 에이전트 스킬(Agent Skills): 릴리즈 노트 생성, 템플릿 적용, 문서 자동 생성 등 반복 루틴을 폴더 단위로 패키징하여 재사용.
- 서브 에이전트 vs 스킬 선택 기준: 같은 기준으로 여러 건 처리 → 서브 에이전트, 매번 같은 방식 루틴 → 스킬, 무거운 단계 포함 파이프라인 → 스킬 + 서브 에이전트 조합.
- 나노바나나 이미지 생성: Google 나노바나나 모델로 IDE 내부에서 배경·로고·아이콘 생성 후 프로젝트 파일에 직접 반영. (단, 사용량 제한으로 일시적으로 막힐 수 있음)
- Claude Code 대비 Cursor의 격차 해소: 이전에는 서브 에이전트·스킬 지원 때문에 Claude Code를 선호했으나, Cursor 2.4로 기능 격차가 대폭 좁혀짐.
서브 에이전트(Subagent)란 무엇인가
정의와 작동 원리
한 문장으로 정의하면 이렇습니다. 서브 에이전트는 메인 에이전트로부터 특정 작업을 위임받아 독립된 컨텍스트에서 실행되는 별도의 에이전트 인스턴스입니다. 메인 에이전트가 전체 워크플로를 조율한다면, 서브 에이전트는 각자의 역할(코드 리뷰 검증, 테스트 생성, 파일별 분석 등)에 특화된 전문가처럼 동작하죠.
Cursor 2.4 이전에는 모든 작업이 단일 에이전트 컨텍스트 안에서 순차적으로 처리됐습니다. 그러다 보니 컨텍스트 윈도우 한계에 금방 도달했죠. 서브 에이전트는 각 작업마다 새 컨텍스트를 할당하므로, 메인 에이전트는 요약된 결과만 받아 전체 흐름을 관리할 수 있습니다. 대규모 코드베이스나 반복 작업이 많을수록 컨텍스트 관리 부담이 크게 줄어듭니다.
서브 에이전트의 네 가지 특징
| 특징 | 설명 |
|---|---|
| 독립적 컨텍스트 유지 | 각 서브 에이전트는 독립된 컨텍스트 윈도우를 가지며, 메인 에이전트의 컨텍스트를 소모하지 않음 |
| 병렬 실행 | 여러 개의 서브 에이전트를 동시에 띄워 작업을 병렬 처리. 순차 처리 대비 처리 시간 단축 |
| 전문화된 역할 | 각 서브 에이전트는 커스텀 프롬프트를 통해 특정 역할(예: 코드 리뷰 검증, 테스트 생성)에 특화 |
| 재사용 가능 | .cursor/agents/ 디렉토리에 마크다운 형식으로 저장되어 프로젝트 전반에서 재호출 가능 |
왜 서브 에이전트를 사용하는가
코드 리뷰, 테스트 케이스 생성, 파일별 영향도 분석처럼 같은 기준으로 여러 건을 처리해야 할 때 서브 에이전트가 빛을 발합니다. 예를 들어 PR에 달린 14개의 코드 리뷰 코멘트를 순차 처리하면 어떻게 될까요. 코멘트마다 메인 에이전트의 컨텍스트가 쌓이고, 마지막 코멘트를 처리할 때쯤이면 초기 컨텍스트가 손실될 위험이 있습니다. 서브 에이전트는 이걸 14개의 독립 작업으로 나눠 병렬로 돌립니다. 전체 처리 시간을 크게 줄이면서, 각 작업의 정확도도 일정하게 유지할 수 있습니다.
Cursor에서 서브 에이전트 생성하기
1단계: 설정 메뉴 진입
Cursor 설정(Settings)을 열고 Rules, Skills, Subagents 탭으로 이동한다. 여기서 Subagents 섹션을 찾아 New 버튼을 클릭하면 AI 채팅 패널에 서브 에이전트 생성용 슬래시 명령어와 프롬프트 템플릿이 표시된다.
2단계: 역할 정의 프롬프트 작성
다음은 실제 업무에서 활용 가능한 “코드 리뷰 검증 서브 에이전트” 생성 예시다:
코드 리뷰 검증 서브 에이전트를 만들어줘.
사용자가 코드 리뷰 코멘트를 입력하면 다음 중 하나로 분류해줘:
1. **Critical**: 보안 취약점, 데이터 손실, 크래시 유발 가능성이 있는 이슈
2. **Major**: 기능 오류, 유지보수성 저하, 성능 문제를 야기하는 이슈
3. **Minor**: 타당하지만 권장 수준의 개선 사항 (코드 컨벤션, 가독성 등)
4. **Invalid**: 부정확하거나 이미 해결된 리뷰, 또는 현재 변경사항과 무관한 코멘트
각 분류마다 근거를 명확히 제시하고, 적용 여부를 권장해줘.
3단계: YAML 형식 마크다운 파일 확인
서브 에이전트가 생성되면 .cursor/agents/code-review-validator.md 같은 파일이 생성된다. 이 파일은 다음과 같은 YAML frontmatter 형식을 갖는다:
---
name: code-review-validator
description: |
코드 리뷰 코멘트의 타당성을 검증하고 우선순위를 분류합니다.
입력: 코드 리뷰 코멘트 텍스트
출력: Critical/Major/Minor/Invalid 분류 + 근거 + 적용 권장사항
---
중요: description 필드는 메인 에이전트가 “이 작업은 어떤 서브 에이전트에게 위임해야 하는가”를 판단하는 유일한 기준이다. 따라서 역할, 입력 형식, 출력 형식을 명확하게 기술해야 한다.
4단계: 서브 에이전트 호출
서브 에이전트를 호출하는 방법은 두 가지다:
암묵적 호출: 메인 에이전트가 작업 내용을 보고 자동으로 적합한 서브 에이전트를 선택한다.
PR #1887의 미해결 코멘트를 검증해줘.
명시적 호출: 서브 에이전트 이름을 직접 지정해 호출한다. 더 정확하고 빠른 실행이 필요할 때 권장된다.
@code-review-validator를 사용해서 PR #1887의 모든 미해결 코멘트를 병렬로 검증해줘.
실전 사례: PR 코드 리뷰 2차 검증 자동화
문제 상황: AI 코드 리뷰의 한계
많은 팀이 CodeRabbit 같은 AI 코드 리뷰 도구를 붙여 PR에 자동 리뷰를 달게 합니다. 요즘처럼 개발자가 한 줄 한 줄 코드를 쓰는 게 아니라 AI가 방대한 양의 코드를 쏟아내는 시대에는, 사람이 라인 바이 라인으로 전부 리뷰하기가 현실적으로 어렵죠. AI가 생성한 리뷰는 대부분 유용하지만, 가끔 부정확하거나 우선순위가 불분명한 코멘트도 섞입니다. 그렇다고 모든 코멘트를 사람이 일일이 검증하는 것도 비현실적입니다. 그래서 제가 권하는 건 AI → AI → 인간 3단계 검증 파이프라인입니다.
- 1차: CodeRabbit AI가 PR 전체를 라인별로 리뷰
- 2차: Cursor 서브 에이전트가 1차 리뷰 코멘트를 검증하여 우선순위와 타당성을 분류
- 3차: 개발자가 2차 검증 결과를 바탕으로 최종 수정 여부 결정
이 구조라면 개발자의 코드 리뷰 부담을 크게 줄이면서도 Critical/Major 이슈는 누락 없이 잡아낼 수 있습니다.
GitHub CLI 연동으로 PR 데이터 자동 수집
로컬에 GitHub CLI(gh)를 설치해 두면, 그다음부터는 Cursor 에이전트가 터미널 명령으로 PR 정보를 직접 가져옵니다. 다음 명령을 자동 실행하죠:
gh pr view 1887 --repo myorg/myrepo --json number,title,comments
이 명령의 출력(JSON 형식)을 파싱해 미해결 코멘트만 추출하고, 각 코멘트를 서브 에이전트에 할당한다.
병렬 검증 프롬프트 예시
myorg/dashboard-frontend 레포의 #1887 PR에서 해결되지 않은 리뷰 코멘트를 조회하고,
@code-review-validator 서브 에이전트를 활용해 각 코멘트를 병렬로 검증한 후,
결과를 표 형식으로 정리해줘.
표 컬럼:
- 파일명
- 이슈 요약
- 우선순위 (Critical/Major/Minor/Invalid)
- 타당성 (O/X)
- 적용 권장 (권장/선택/불필요)
- 근거
실행 결과 분석
메인 에이전트는 먼저 gh 명령으로 PR 데이터를 가져옵니다. 이후 14개의 미해결 코멘트를 발견하면, 코멘트마다 하나씩 서브 에이전트를 띄웁니다. 과정은 이렇게 흘러갑니다:
- 서브 에이전트 생성: 14개의 독립적인
code-review-validator인스턴스가 동시에 실행됩니다. - 병렬 검증: 각 인스턴스는 자기에게 할당된 코멘트만 분석하고, 분류 결과와 근거를 만듭니다.
- 결과 집계: 메인 에이전트는 각 서브 에이전트에서 요약 정보(분류, 근거, 권장사항)만 받아 하나의 표로 정리합니다.
속도 비교:
- 순차 처리: 약 70초 (1개당 5초 × 14개)
- 병렬 처리: 약 8초 (가장 오래 걸리는 1개 기준)
결과적으로 약 9배 빠른 처리 속도를 얻습니다. 게다가 메인 에이전트는 요약 정보만 저장하니 컨텍스트 윈도우도 딱 필요한 만큼만 씁니다.
에이전트 스킬(Skills)이란
서브 에이전트와의 차이점
한마디로 정리하면 이렇습니다. 서브 에이전트가 “역할 기반 작업 분기”라면, 에이전트 스킬(Skills)은 “절차 기반 워크플로 패키징”입니다.
| 구분 | 서브 에이전트 | 에이전트 스킬 |
|---|---|---|
| 목적 | 같은 작업을 여러 건 병렬 처리 | 반복되는 절차를 재사용 |
| 실행 단위 | 독립 컨텍스트, 병렬 가능 | 순차적 파이프라인 |
| 정의 형식 | YAML frontmatter | 폴더 구조 + 스크립트 |
| 활용 예시 | 파일별 린트 검사, 다중 테스트 실행 | 릴리즈 노트 생성, PR 요약, 문서 생성 |
스킬 활용 시나리오
다음과 같은 작업은 스킬로 정의하면 효율적이다:
- 릴리즈 노트 자동 생성: Git 커밋 로그 수집 → 카테고리 분류 → 마크다운 생성 → CHANGELOG 업데이트
- PR 요약 템플릿: PR diff 분석 → 변경 파일 목록 작성 → 테스트 커버리지 확인 → 템플릿 채우기
- 문서 자동화: API 명세 추출 → OpenAPI 스펙 생성 → 예제 코드 생성 → README 업데이트
- PPT 생성: 데이터 수집 → 슬라이드 구조 설계 → 차트 생성 → PPTX 파일 출력
Cursor에서 스킬 생성하기
Cursor 설정의 Skills 섹션에서 New 버튼을 누르면 스킬 템플릿이 생성됩니다. 기존에 Claude Code에서 쓰던 스킬이 있다면 .cursor/skills/ 디렉토리에 복사해 그대로 쓸 수 있습니다.
스킬은 보통 다음과 같은 구조를 갖습니다:
.cursor/skills/release-notes/
├── skill.md # 스킬 정의 (목적, 입력, 출력)
├── prompts/ # 단계별 프롬프트 템플릿
│ ├── 1-collect-commits.md
│ ├── 2-categorize.md
│ └── 3-generate-markdown.md
└── scripts/ # 보조 스크립트 (선택)
└── parse-git-log.sh
서브 에이전트 + 스킬 조합 전략
두 기능은 독립적으로도 유용하지만, 조합하면 더욱 강력하다.
조합 패턴 1: 스킬 내부에서 서브 에이전트 병렬 호출
시나리오: 여러 파일의 테스트 커버리지를 분석해 리포트를 생성하는 스킬
- 스킬의 1단계: 프로젝트 내 모든 테스트 파일 목록 수집
- 스킬의 2단계: 각 테스트 파일마다 서브 에이전트를 병렬 실행해 커버리지 분석
- 스킬의 3단계: 분석 결과를 집계해 HTML 리포트 생성
이 방식의 장점은 “전체 파이프라인은 스킬로 일관성 있게 유지”하면서, “무거운 분석 작업은 서브 에이전트로 병렬 처리”할 수 있다는 점이다.
조합 패턴 2: 서브 에이전트가 스킬을 호출
시나리오: 여러 마이크로서비스의 API 문서를 동시에 업데이트
- 메인 에이전트가 마이크로서비스 목록 조회
- 각 마이크로서비스마다 서브 에이전트 생성
- 각 서브 에이전트는 “API 문서 생성” 스킬을 호출해 OpenAPI 스펙 생성
- 메인 에이전트가 모든 결과를 통합해 전체 문서 사이트 빌드
이 방식은 “병렬 처리”와 “재사용 가능한 절차”를 모두 활용하는 고급 패턴이다.
나노바나나 이미지 생성 기능
Antigravity의 경쟁력, Cursor로
구글의 Antigravity(안티그래비티)는 Code IDE로서는 처음으로 나노바나나(Nano Banana) 이미지 생성 모델을 통합해 많은 주목을 받았습니다. 개발자가 “별이 빛나는 밤하늘 배경 이미지”를 요청하면 IDE가 즉시 생성해 프로젝트에 반영하는 방식이죠.
Cursor 2.4는 이 기능을 공식 지원합니다. 사용법은 아주 간단합니다:
현재 섹션의 배경 이미지를 "밤하늘에 별이 반짝이는 느낌"으로 생성해서 교체해줘.
이 프롬프트만으로 Cursor 에이전트는:
- 나노바나나 모델에 이미지 생성 요청
- 생성된 이미지를
public/images/같은 적절한 경로에 저장 - 해당 이미지를 참조하도록 코드(HTML/CSS/React 컴포넌트) 자동 수정
실무 활용 시나리오
프로토타입 단계: 와이어프레임만 있는 상태에서 빠르게 실제 UI를 구현해야 할 때, 로고·아이콘·일러스트를 외부 에셋 사이트에서 찾는 대신 즉시 생성
A/B 테스트: 여러 버전의 히어로 이미지를 생성해 랜딩 페이지 전환율 비교
디자인 시스템 구축: 일관된 스타일 가이드(색상, 톤, 분위기)를 프롬프트로 지정해 모든 이미지를 통일감 있게 생성
현재 제약사항
한 가지 참고할 점이 있습니다. 나노바나나 모델은 사용량 제한 문제로 일시적으로 이미지 생성이 막히는 상황이 생기기도 합니다. 실제로 제가 시연하던 시점에도 사용량 이슈로 생성이 진행되지 않았습니다. Cursor 측이 API 할당량을 늘리면 더 안정적으로 쓸 수 있을 거라고 봅니다.
실무 도입 시 고려사항
1. 컨텍스트 설계 원칙
서브 에이전트를 남용하면 오히려 복잡도가 증가한다. 다음 기준으로 판단하라:
- 서브 에이전트 적합: 같은 형식의 작업 5개 이상, 각 작업이 독립적, 병렬 처리 시 3배 이상 속도 향상 예상
- 스킬 적합: 3단계 이상의 절차, 매주 2회 이상 반복, 사람마다 실행 방식이 달라지면 안 됨
- 단순 프롬프트 적합: 1회성 작업, 단계가 2개 이하, 컨텍스트가 충분히 작음
2. 비용 관리
서브 에이전트는 각각 독립적인 API 호출을 수행하므로, 10개의 서브 에이전트를 동시에 실행하면 API 비용도 10배가 된다. 다음을 권장한다:
- 서브 에이전트는 Haiku(저비용 모델) 우선 사용
- 정확도가 중요한 작업(보안 검증, 법률 문서 분석)만 Sonnet 이상 사용
- 한 번에 실행하는 서브 에이전트 개수를 20개 이하로 제한
3. 디버깅 전략
서브 에이전트의 실행 과정은 메인 에이전트 로그에 요약만 남으므로, 상세 디버깅이 어렵다. 다음 방법을 활용하라:
- 서브 에이전트 프롬프트에 “결과와 함께 추론 과정을 3문장으로 설명해줘” 추가
- 실패한 서브 에이전트는 명시적으로 재실행해 로그 확인
.cursor/agents/디렉토리의 YAML description을 지속적으로 개선
마무리: Cursor vs Claude Code, 이제 어떤 선택을?
결론부터 말하면, 저는 최근 들어 Cursor보다 Claude Code를 더 많이 쓰고 있었습니다. 가장 큰 이유가 바로 서브 에이전트와 스킬 같은 에이전트 특화 기능을 Cursor에서 못 쓴다는 점이었거든요. 그런데 이번 업데이트로 Cursor도 같은 기능을 갖추게 됐습니다.
Cursor의 강점:
- VS Code 기반 UI로 익숙함
- GitHub Copilot과의 통합
- 더 빠른 인라인 코드 제안
Claude Code의 강점:
- Anthropic의 최신 모델 우선 적용
- 터미널 기반으로 리소스 효율 높음
- 더 유연한 커스터마이징
두 도구 모두 서브 에이전트와 스킬을 지원하게 됐으니, 이제는 팀의 기존 도구 스택과 선호하는 인터페이스에 따라 고르면 됩니다. 제가 더 중요하게 보는 건 어느 도구냐가 아닙니다. 이 두 기능을 “우리 팀 워크플로에 어떻게 맞게 커스터마이징하느냐”입니다.
다음 단계: 여러분의 워크플로에 적용하기
- 서브 에이전트 1개 만들어보기: 가장 반복적인 작업(예: 린트 에러 분류)을 찾아 서브 에이전트로 정의
- 스킬 템플릿 작성: 릴리즈 노트나 PR 요약 같은 문서 작업을 스킬로 패키징
- GitHub CLI 설치:
gh명령으로 PR/Issue 데이터를 에이전트가 자동 수집하도록 환경 구성 - 팀과 공유:
.cursor/agents/와.cursor/skills/를 Git에 커밋해 팀 전체가 동일한 자동화 활용
핵심 원칙: 서브 에이전트와 스킬은 단순히 “시간을 절약하는 도구”가 아니라 “일관성과 품질을 높이는 도구”라고 봅니다. 처음에는 설정에 시간이 좀 걸리지만, 길게 보면 팀 전체의 생산성과 코드 품질을 같이 끌어올릴 수 있습니다. 여러분도 가장 반복적인 작업부터 하나씩 적용해보면 좋겠습니다.
관련 영상
이 글과 연결된 영상은 개발동생 유튜브 채널에서 보기에서 확인할 수 있습니다.
자주 묻는 질문
Cursor에서 서브 에이전트는 어떻게 만드나요?
설정의 Rules, Skills, Subagents 탭에서 Subagents의 New 버튼을 누르고 역할을 정의하는 프롬프트를 작성합니다. 생성된 서브 에이전트는 .cursor/agents/ 디렉토리에 YAML frontmatter 형식의 마크다운 파일로 저장됩니다.
서브 에이전트로 PR 코드 리뷰를 어떻게 자동화하나요?
GitHub CLI로 PR의 미해결 코멘트를 가져온 뒤 코멘트마다 검증 서브 에이전트를 병렬로 띄워 우선순위와 타당성을 분류하고 표로 정리합니다. 개발자는 이 결과로 최종 수정 여부를 정합니다.
Claude Code에서 쓰던 스킬을 Cursor에서도 쓸 수 있나요?
네, 기존 Claude Code 스킬을 .cursor/skills/ 디렉토리에 복사하면 그대로 쓸 수 있습니다.
Cursor 2.4의 나노바나나 이미지 생성은 무엇을 해주나요?
IDE 안에서 Google 나노바나나 모델로 배경, 로고, 아이콘 같은 이미지를 만들고 프로젝트 파일에 바로 반영합니다. 다만 사용량 제한으로 일시적으로 생성이 막힐 수 있습니다.
이 글이 도움이 됐나요?
좋았다면 링크를 공유하거나 반응을 남겨주세요. 남겨주신 반응은 다음 글을 개선하는 데 참고하겠습니다.