본문으로 건너뛰기

Cursor로 Swift 및 iOS 개발하기

Cursor는 강력한 AI 기반 편집기이지만, Swift 및 iOS 개발에는 고유한 도전 과제가 따릅니다. JavaScript나 Python 프로젝트와 달리 iOS 앱은 Xcode의 빌드 시스템, Interface Builder, iOS Simulator에 크게 의존합니다. 이 가이드에서는 Cursor를 Swift 개발용으로 설정하고, Xcode와 통합하며, 현재의 제한 사항을 우회하는 방법을 설명합니다.

왜 Cursor를 Swift 개발에 사용할까요?

Xcode는 Apple 플랫폼의 공식 IDE이며, 많은 작업에 필수적입니다. 하지만 Cursor는 Xcode가 제공하지 않는 이점을 제공합니다:

  • AI 기반 코드 생성 — 보일러플레이트 SwiftUI 및 UIKit 코드용
  • 다중 파일에 걸친 지능형 리팩토링
  • 자연어 채팅 — 레거시 Objective-C나 복잡한 Swift 코드 이해용
  • Composer — 다중 파일 편집 및 새 기능 스캐폴드용
  • 더 나은 텍스트 편집 경험 — VS Code 단축키 및 확장 프로그램 제공

가장 생산적인 워크플로우는 Cursor 또는 Xcode가 아니라, Cursor 그리고 Xcode를 함께 사용하는 것입니다.

Cursor를 Swift 개발용으로 설정하기

1. Swift 언어 지원 설치

Cursor는 VS Code 기반이므로 마켓플레이스에서 확장 프로그램을 설치할 수 있습니다. Swift 개발용으로 다음을 설치하세요:

  1. Cursor 열기
  2. 확장 프로그램으로 이동 (Ctrl+Shift+X / Cmd+Shift+X)
  3. 검색하여 설치:
    • Swift by sswg.swift-lang — 구문 강조, 진단, 코드 탐색 제공
    • SwiftFormat — 자동 코드 포맷팅용
    • Xcode Keymap (선택 사항) — Xcode 단축키를 선호할 경우
// .vscode/extensions.json에 권장 확장 프로그램
{
"recommendations": [
"sswg.swift-lang",
"vknabel.vscode-swiftformat",
"apple-swift.swift-vscode"
]
}

2. Xcode 프로젝트를 Cursor에서 열기

Xcode 프로젝트를 Cursor에서 직접 열 수 있지만, 몇 가지 주의사항이 있습니다:

# 프로젝트 디렉토리로 이동
cd ~/Projects/MyiOSApp

# Cursor에서 열기
cursor .
프로젝트 파일

Cursor는 .swift 파일을 읽을 수 있지만, .xcodeproj.xcworkspace 파일을 직접 파싱할 수는 없습니다. 프로젝트 구조는 평면적인 파일 트리로 표시됩니다. 스토리보드, 에셋 카탈로그, 프로젝트 설정은 여전히 Xcode가 필요합니다.

3. 빌드 작업 구성

Cursor는 Xcode 빌드를 기본적으로 트리거할 수 없으므로, 사용자 지정 작업을 설정하세요:

// .vscode/tasks.json
{
"version": "2.0.0",
"tasks": [
{
"label": "Build iOS App",
"type": "shell",
"command": "xcodebuild",
"args": [
"-project", "MyApp.xcodeproj",
"-scheme", "MyApp",
"-destination", "platform=iOS Simulator,name=iPhone 15",
"build"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}

Ctrl+Shift+B (macOS에서는 Cmd+Shift+B)로 빌드를 실행하세요.

듀얼 에디터 워크플로우

커뮤니티 피드백을 기반으로 가장 잘 작동하는 워크플로우는 두 에디터를 나란히 실행하는 것입니다:

작업도구이유
Swift 코드 작성 및 편집CursorAI 지원, 더 나은 편집
빌드 및 실행Xcode기본 시뮬레이터 통합
스토리보드 / SwiftUI 미리보기Xcode시각적 편집 필요
에셋 관리Xcode.xcassets 처리
중단점으로 디버깅Xcode우수한 LLDB 통합
Git 커밋둘 다Cursor에도 좋은 Git UI가 있음

권장 워크플로우 단계

  1. Xcode에서 프로젝트 생성 — 타겟, 서명, 종속성 설정
  2. Cursor에서 동일한 폴더 열기.swift 파일 편집
  3. Cursor에서 코드베이스 인덱싱 활성화 (오른쪽 상단의 톱니바퀴 아이콘 클릭)
  4. Cursor에서 편집 — 채팅, Composer, Tab으로 코드 생성
  5. Cursor에서 저장 — 변경 사항이 즉시 디스크에 기록됨
  6. Xcode로 전환 — 파일 변경이 자동으로 감지됨; 빌드 및 실행
파일 동기화

두 에디터는 디스크의 동일한 파일을 감시합니다. 수동 동기화가 필요 없습니다. Cursor에서 저장하고 Xcode에서 빌드하세요. 문제가 발생하면 Git이 버전 관리를 처리합니다.

Xcode 없이 빌드하기

Xcode 사용을 최소화하려는 개발자를 위해 xcodebuild가 답입니다. 이는 Apple의 명령줄 빌드 도구이며 Xcode가 지원하는 모든 것을 지원합니다.

기본 빌드 명령어

# 시뮬레이터용 빌드
xcodebuild -project MyApp.xcodeproj -scheme MyApp -destination 'platform=iOS Simulator,name=iPhone 15' build

# 기기용 빌드
xcodebuild -project MyApp.xcodeproj -scheme MyApp -destination 'generic/platform=iOS' build

# 테스트 실행
xcodebuild -project MyApp.xcodeproj -scheme MyApp -destination 'platform=iOS Simulator,name=iPhone 15' test

# 빌드 폴더 정리
xcodebuild -project MyApp.xcodeproj -scheme MyApp clean

Swift Package Manager 사용

프로젝트가 SPM을 사용하는 경우 Cursor가 더 잘 작동합니다:

# 빌드
swift build

# 테스트 실행
swift test

# Xcode 프로젝트 생성 (필요한 경우)
swift package generate-xcodeproj

SPM 기반 프로젝트는 .xcodeproj 파일에 의존하지 않으므로 더 "Cursor 친화적"입니다.

Inject를 이용한 핫 리로딩

Cursor에서 Swift 개발을 위한 커뮤니티 최애 도구는 Krzysztof Zablocki의 Inject입니다. 이는 Swift 애플리케이션에 핫 리로딩을 활성화하여 Xcode에서 지속적으로 재빌드할 필요를 줄여줍니다.

// AppDelegate 또는 메인 진입점에 추가
#if DEBUG
import Inject
#endif

// 뷰 컨트롤러나 SwiftUI 뷰에서
#if DEBUG
@ObservedObject var inject = Inject.observer
#endif

Inject를 사용하면 Xcode에서 한 번 빌드하고, Cursor에서 편집할 때 코드 변경 사항을 즉시 확인할 수 있습니다.

제한 사항 및 해결 방법

iOS 개발에서 Cursor가 할 수 없는 것

제한 사항해결 방법
Interface Builder 지원 없음SwiftUI 사용 또는 Xcode에서 스토리보드 편집
iOS Simulator 통합 없음Xcode 또는 xcodebuild에서 빌드 및 실행
.xcodeproj 파싱 없음프로젝트 파일은 Xcode에서 관리
에셋 카탈로그 미리보기 없음이미지 및 색상 에셋은 Xcode 사용
코드 서명 UI 없음Xcode에서 서명 구성
SwiftUI 라이브 미리보기 없음Xcode에서 미리보기, Cursor에서 편집

일반적인 문제

문제: Cursor가 UIKit 임포트를 인식하지 못함

해결 방법: Swift 확장 프로그램이 설치되어 있고 프로젝트가 인덱싱되었는지 확인하세요. 확장 프로그램 설치 후 Cursor를 다시 시작해야 할 때도 있습니다.

문제: 빌드 오류가 인라인으로 표시되지 않음

해결 방법: Cursor의 터미널 패널에서 xcodebuild를 실행하여 오류를 확인하거나, 빌드 단계를 위해 Xcode로 전환하세요.

문제: Apple 프레임워크에 대한 자동 완성이 약함

해결 방법: Cursor의 Tab 자동 완성은 Swift에서 잘 작동하지만, Apple 프레임워크 문서는 Xcode만큼 깊이 통합되어 있지 않습니다. 특정 API에 대해 Cursor 채팅을 사용하세요.

모범 사례

1. Xcode를 빌드 권한으로 유지

커밋하기 전에 항상 앱이 Xcode에서 빌드되고 실행되는지 확인하세요. Cursor는 코드 작성에 탁월하지만, 컴파일 여부의 진실은 Xcode입니다.

2. AI 지원 변경을 위한 Git 브랜치 사용

Cursor의 Composer나 에이전트 모드를 사용하여 대규모 리팩토링을 할 때는 먼저 브랜치를 생성하세요:

git checkout -b cursor-refactor
git add .
git commit -m "Cursor 리팩토링 전 체크포인트"

이렇게 하면 AI가 생성한 변경 사항이 빌드를 깨뜨릴 경우 되돌릴 수 있습니다.

3. 코드베이스 인덱싱

Cursor에 변경을 요청하기 전에 프로젝트를 인덱싱하세요:

  1. 채팅 패널 열기
  2. 인덱스 버튼 클릭 (톱니바퀴 아이콘)
  3. 인덱싱 완료 대기

이렇게 하면 Cursor가 전체 프로젝트 구조를 이해하므로 AI 제안의 품질이 향상됩니다.

4. Swift용 프롬프트 구조화

Cursor에 Swift 코드 생성을 요청할 때는 프레임워크를 구체적으로 명시하세요:

좋음: "비동기 이미지 로딩이 있는 사용자 목록을 표시하는 SwiftUI 뷰 생성"

나쁨: "사용자 목록 화면 만들기"

요약

Cursor는 iOS 개발자 도구 키트에 귀중한 추가 기능이지만, Xcode를 대체할 수는 없습니다. 가장 효과적인 접근 방식은 듀얼 에디터 워크플로우입니다: AI 지원을 사용하여 Cursor에서 코드를 작성하고 리팩토링한 다음, Xcode에서 빌드, 미리보기, 디버깅하세요.

핵심 요점:

  • Cursor에서 Swift 지원을 위해 sswg.swift-lang 확장 프로그램 설치
  • Cursor에 머물고 싶을 때 명령줄 빌드를 위해 xcodebuild 사용
  • 두 에디터를 동시에 실행 — 파일 시스템을 통해 동기화됨
  • 대규모 AI 지원 리팩토링 전 Git 브랜치 사용
  • 제한 사항 인지: 스토리보드 편집 없음, 시뮬레이터 없음, 코드 서명 UI 없음

생태계가 발전함에 따라 더 긴밀한 통합이 가능해질 수 있습니다. 현재로서는 Cursor의 AI 기능과 Xcode의 플랫폼 도구를 결합하는 것이 두 세계의 장점을 모두 제공합니다.


마지막 업데이트: 2025년 6월