본문으로 건너뛰기

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월