Day 9: Cursor / Windsurf 에디터 체험

AI Tools Mastery Curriculum — Week 2, Day 9 소요 시간: 50분 | 탐색 중심

핵심 배운 점

  • Tab / Inline Edit / Agent / Plan 4가지 모드
  • Agent가 핵심: 멀티 파일 편집 + 자율 실행 루프
  • IntelliJ 메인 + Claude Code/Cursor 보조 조합 추천

① Cursor 설치 & 실무 프로젝트 열기

Cursor란

Cursor는 VS Code를 포크해서 만든 AI 네이티브 IDE다. 플러그인으로 AI를 붙인 게 아니라, 에디터 자체가 AI를 중심으로 설계되었다. 코드베이스 전체를 인덱싱해서 AI가 프로젝트를 “이해”한 상태에서 동작한다.

Claude Code, Gemini CLI, Codex CLI와의 핵심 차이:

터미널 에이전트 (Claude Code 등):  터미널에서 텍스트 기반 대화
AI IDE (Cursor):                   에디터 안에서 코드를 보면서 AI 활용

터미널 에이전트는 코드를 “텍스트로 읽고 텍스트로 수정”한다. Cursor는 에디터에서 diff를 시각적으로 보여주고, 파일 트리를 탐색하면서 AI를 활용한다.

가격 정책

플랜월 비용핵심 기능
Hobby (무료)$0제한된 Agent 요청 + 제한된 Tab 완성
Pro$20/월무제한 Tab + $20 크레딧 풀 + Cloud Agent
Pro+$60/월Pro의 3배 사용량
Ultra$200/월Pro의 20배 사용량

무료 Hobby 플랜으로도 체험은 가능하지만, 일상 개발용으로는 부족하다. 7일 무료 Pro 트라이얼이 있으니 이번 체험에 활용하자.

설치

# macOS
brew install --cask cursor
 
# 또는 cursor.com에서 직접 다운로드
# Windows, macOS, Linux 모두 지원

VS Code 설정 마이그레이션

Cursor는 VS Code 포크이므로, 기존 VS Code 설정을 그대로 가져올 수 있다:

1. Cursor 첫 실행 시 "Import VS Code Settings" 선택
2. 확장, 테마, 키바인딩 자동 마이그레이션
3. 기존 VS Code 확장 대부분 호환

프로젝트 열기 & 인덱싱

1. File → Open Folder → 프로젝트 폴더 선택
2. Cursor가 자동으로 코드베이스 인덱싱 시작
3. 인덱싱 완료까지 수 분 소요 (프로젝트 크기에 따라)
4. 완료 후 AI가 프로젝트 전체를 "이해"한 상태

인덱싱이 완료되면 “이 프로젝트의 인증 로직이 어디에 있어?”같은 질문에 정확하게 파일을 찾아준다.

.cursorrules 설정 (CLAUDE.md에 해당)

Cursor에도 프로젝트별 AI 지시 파일이 있다:

<!-- .cursor/rules/project.md -->
# Project Rules
 
## 코딩 컨벤션
- DateTime: LocalDateTime 대신 OffsetDateTime 사용
- @Transactional 안에서 외부 API 호출 금지
- WebClient maxConnections=10
 
## 테스트 규칙
- @WebMvcTest 사용 (@SpringBootTest 금지)
- 정상/유효성실패/인증실패 3가지 시나리오 필수
 
## 빌드
- ./gradlew build
- ./gradlew test

CLAUDE.md와 내용은 동일하되, 위치와 형식이 다르다.


② Cursor의 4가지 AI 모드 활용

Cursor의 AI 모드 구조 (2026년 현재)

Cursor 2.0 이후 Composer가 Agent에 통합되면서 모드 구조가 바뀌었다. 현재 Cmd+I를 누르면 다음 4가지 모드를 선택할 수 있다:

모드용도자율성
Agent멀티 파일 편집 + 자율 실행 루프최대 (기본값)
Plan분석/계획만, 코드 수정 안 함읽기 전용
Debug에러 원인 추적 + 가설 기반 디버깅중간
Ask코드베이스에 대한 질문/답변만최소

이 4가지 외에 Tab(코딩 중 자동완성)과 Inline Edit(Cmd+K, 선택 영역 수정)이 별도로 존재한다.

참고: 예전 글이나 튜토리얼에서 “Composer 모드”와 “Agent 모드”를 분리해서 설명하는 경우가 많다. 2026년 현재 Composer는 독립 모드가 아니라 Agent 내부의 모델 선택지(Composer 1.5)로 통합되었다.

Tab — AI 자동완성

코딩 중 자동으로 다음 코드를 예측한다. GitHub Copilot과 유사하지만, Cursor는 프로젝트 전체를 인덱싱해서 예측하므로 정확도가 높다.

// Tab이 다음 줄을 예측
public CourseResponse getCourse(Long courseId) {
    // Tab: return courseRepository.findById(courseId)
    //          .map(CourseResponse::from)
    //          .orElseThrow(() -> new CourseNotFoundException(courseId));
}

Tab은 코딩 흐름을 끊지 않고 속도를 높이는 데 최적화되어 있다.

Inline Edit (Cmd+K) — 선택 영역 수정

코드를 선택하고 Cmd+K를 누르면 해당 부분만 AI로 수정한다:

1. 수정할 코드 블록 선택
2. Cmd+K
3. "이 메서드를 비동기로 전환해줘" 입력
4. 변경 사항 diff로 확인 후 적용/취소

작은 범위의 정밀한 수정에 적합하다. 한 메서드, 한 클래스 수준.

Agent (Cmd+I) — 핵심 모드

Cursor의 가장 강력한 기능. 자연어로 지시하면 멀티 파일 편집 + 터미널 실행 + 자동 수정을 자율적으로 수행한다:

Cmd+I → Agent 모드(기본값):

> "수강신청 API에 정원 체크 로직을 추가해줘.
  CourseService에 정원 확인 메서드를 추가하고,
  EnrollmentService에서 수강신청 전에 호출하고,
  정원 초과 시 CourseFullException을 던져줘."

Agent가 하는 일:

  1. 코드베이스를 탐색해서 관련 파일 파악
  2. CourseService.java에 checkCapacity() 메서드 추가
  3. EnrollmentService.java에 호출 코드 추가
  4. CourseFullException.java 새 파일 생성
  5. 터미널에서 빌드 실행
  6. 에러 발생 시 자동 수정
  7. 각 파일의 변경사항을 diff로 보여줌

Agent의 핵심 장점: 변경사항을 시각적 diff로 확인할 수 있다. 터미널 에이전트(Claude Code 등)에서는 코드가 텍스트로 출력되지만, Cursor에서는 에디터의 diff 뷰에서 파일별로 적용/취소를 선택할 수 있다.

Agent 모드에서 모델을 선택할 수 있다:

  • Auto: Cursor가 자동으로 최적 모델 선택 (무제한, 비용 효율적)
  • Composer 1.5: Cursor 자체 코딩 모델 (빠름, 에이전트 특화)
  • Claude Opus/Sonnet: Anthropic 모델 (크레딧 풀 소모)
  • GPT-5.2: OpenAI 모델 (크레딧 풀 소모)
  • Gemini 3 Pro: Google 모델 (크레딧 풀 소모)

Plan — 분석/계획 전용

Claude Code의 Plan Mode와 유사하다. 코드를 읽고 분석할 수 있지만 수정은 할 수 없다:

Cmd+I → Plan 모드:

> "EnrollmentService의 구조를 분석하고 리팩토링 계획을 세워줘"

Plan 모드에서 계획을 세운 뒤, Agent 모드로 전환해서 실행하는 워크플로우가 효과적이다. Plan에서 만든 계획을 다른 모델의 Agent로 빌드할 수도 있다.

Debug — 에러 추적

에러가 발생했을 때 AI가 가설을 세우고 원인을 추적한다:

Cmd+I → Debug 모드:

> "테스트 실행 시 EnrollmentServiceTest에서 NullPointerException이 발생해"

Debug 모드는 에러 로그, 스택 트레이스, 관련 코드를 종합 분석해서 원인을 추적하고 수정안을 제시한다.

Ask — 질문/답변

코드베이스에 대해 질문만 한다. 파일 수정 없음:

Cmd+I → Ask 모드:

> "이 프로젝트에서 인증 로직이 어떻게 구현되어 있어?"

모드 선택 가이드

어떤 모드를 써야 할까?

"코드를 수정/생성해야 한다"     → Agent
"먼저 분석/계획만 하고 싶다"    → Plan
"에러가 나서 원인을 찾고 싶다"  → Debug
"궁금한 점만 물어보고 싶다"     → Ask
"한 줄~수 줄만 빠르게 수정"     → Inline Edit (Cmd+K)

@컨텍스트 참조

Agent/Plan/Ask 모드에서 특정 파일이나 폴더를 참조할 수 있다:

> @src/main/java/com/example/service/ 이 폴더의 서비스들을 
  분석하고 공통 패턴을 정리해줘

> @CourseService.java 이 파일을 리팩토링해줘

> @https://docs.spring.io/spring-boot/reference/web.html 
  이 문서를 참고해서 구현해줘

.cursor/rules/ 로 AI 행동 제어

프로젝트별 AI 규칙을 설정할 수 있다:

<!-- .cursor/rules/java-conventions.md -->
# Java Conventions
 
## 필수 규칙
- OffsetDateTime 사용 (LocalDateTime 금지)
- @Transactional 내 외부 API 호출 금지
- 테스트에 @WebMvcTest 사용
 
## 응답 형식
- 한국어로 설명
- 변경 이유를 항상 주석으로 포함

③ IntelliJ 워크플로우와 비교 분석

백엔드 개발자가 비교해야 할 포인트

IntelliJ는 백엔드 개발자의 메인 IDE다. Cursor를 대체할 것인지, 병행할 것인지 판단하려면 실무 워크플로우 기준으로 비교해야 한다.

기능별 비교

기능IntelliJ IDEACursor
Java/Spring 지원최고 수준 (네이티브)VS Code 수준 (확장 필요)
리팩토링정적 분석 기반 (안전)AI 기반 (유연하지만 검증 필요)
디버깅완전한 디버거VS Code 수준 디버거
AI 자동완성AI Assistant 플러그인네이티브 (Tab, 프로젝트 인덱싱)
멀티 파일 편집수동Agent 모드로 자동
AI AgentCursor ACP로 사용 가능 (2026.3~)네이티브 Agent 모드
Gradle 통합네이티브터미널 기반
DB 도구Database 탭 내장없음 (외부 도구 필요)
Git 통합강력한 내장 도구VS Code 수준
가격Ultimate $249/년Pro 240/년)

실무 시나리오별 비교

시나리오 1: 새 API 엔드포인트 추가

IntelliJ:
  1. Controller 클래스에서 메서드 생성 (타이핑)
  2. Service 인터페이스 작성 → Alt+Enter로 구현체 생성
  3. Repository 메서드 추가
  4. DTO 작성
  → 정적 타입 검사가 실시간으로 동작, 안전

Cursor:
  1. Cmd+I → "수강 검색 API를 추가해줘"
  2. Composer가 Controller + Service + Repository + DTO 동시 생성
  3. diff로 확인 후 적용
  → 빠르지만 생성된 코드 검토 필요

시나리오 2: 복잡한 리팩토링

IntelliJ:
  1. 클래스 선택 → Refactor → Extract Interface
  2. 정적 분석으로 모든 참조 자동 업데이트
  3. 컴파일 에러 0개 보장
  → 안전하지만 복잡한 구조 변경은 수동

Cursor:
  1. Cmd+I → "이 서비스에서 외부 API 호출을 분리해줘"
  2. Agent가 새 클래스 생성, 기존 코드 수정, 테스트 실행
  3. 빌드 실패 시 자동 수정
  → 유연하지만 AI가 놓치는 참조가 있을 수 있음

시나리오 3: 디버깅

IntelliJ:
  1. 브레이크포인트 설정
  2. Debug 모드로 실행
  3. 변수 값 실시간 확인, 스텝 오버/인투
  → 압도적 우위. Cursor로는 대체 불가.

Cursor:
  1. Debug Mode에서 AI가 에러 원인 추적
  2. 가설 기반 디버깅 제안
  → 보조 도구로는 유용하지만, 실제 디버거 대체는 불가

실무적 결론: 대체가 아니라 병행

대부분의 백엔드 개발자에게 현실적인 조합은:

메인 IDE:    IntelliJ IDEA (디버깅, 리팩토링, Spring 지원)
보조 도구 1: Claude Code (터미널 기반 AI, 분석/생성)
보조 도구 2: Cursor (멀티 파일 편집, 시각적 diff 확인)

Cursor가 IntelliJ를 완전히 대체하기 어려운 이유:

  • Java/Spring 생태계 지원이 IntelliJ에 비해 약함
  • 정적 분석 기반 리팩토링의 안전성을 AI가 보장할 수 없음
  • 디버거 품질 차이가 큼

Cursor가 IntelliJ보다 나은 영역:

  • 멀티 파일 AI 편집 (Composer)
  • 코드베이스 전체를 대상으로 한 자연어 질문
  • 빠른 프로토타이핑 (Agent 모드)

최신 소식: Cursor in JetBrains (ACP)

2026년 3월부터 Cursor가 JetBrains IDE 안에서 사용 가능해졌다. Agent Client Protocol(ACP)을 통해 IntelliJ 안에서 Cursor의 AI Agent를 사용할 수 있다.

IntelliJ → Cursor ACP 플러그인 설치 → Cursor 계정 로그인
→ IntelliJ의 강력한 Java 지원 + Cursor의 AI Agent를 동시에 사용

이 조합이 성숙하면 “IntelliJ vs Cursor”가 아니라 “IntelliJ + Cursor”가 될 수 있다.


실습 과제

과제 1: Cursor 설치 & 설정 (10분)

  1. cursor.com에서 다운로드 → 설치
  2. VS Code 설정 마이그레이션
  3. 프로젝트 열기 → 인덱싱 완료 대기
  4. .cursor/rules/ 에 프로젝트 규칙 작성

과제 2: 4가지 모드 체험 (25분)

  1. Tab 자동완성으로 코드 작성 체험
  2. Cmd+K로 Inline Edit 체험 (메서드 하나 수정)
  3. Cmd+I → Agent 모드로 멀티 파일 기능 구현 체험
  4. Cmd+I → Plan 모드로 분석만 수행 체험
  5. Cmd+I → Ask 모드로 코드베이스 질문 체험
  6. 각 모드의 적합한 상황 메모

과제 3: IntelliJ 비교 분석 (15분)

  1. 동일 태스크를 IntelliJ(수동)과 Cursor(AI)로 수행
  2. 속도, 정확도, 안전성 비교 기록
  3. “어떤 상황에서 어떤 도구가 더 나은가” 결론 정리
  4. Cursor in JetBrains (ACP) 설치 체험 (가능하면)

오늘의 핵심 정리

포인트설명
Cursor 본질VS Code 포크 기반 AI 네이티브 IDE
Tab프로젝트 인덱싱 기반 자동완성, 코딩 흐름 유지
Inline Edit (Cmd+K)선택 영역 정밀 수정
Agent (Cmd+I)멀티 파일 편집 + 자율 실행 루프 (기본 모드)
Plan / Debug / Ask분석 전용 / 에러 추적 / 질문 응답
Composer 1.5Agent 내 모델 선택지 (별도 모드가 아님)
vs IntelliJJava/Spring/디버깅은 IntelliJ, AI 편집은 Cursor
실무 결론대체가 아닌 병행. IntelliJ(메인) + Claude Code/Cursor(보조)
ACPCursor가 JetBrains 안에서 동작 가능 (2026.3~)
가격무료(제한적), Pro $20/월, 7일 무료 트라이얼

참고 리소스