iOS 개발자를 위한 Cursor 가이드(1)
About Cursor
처음 접하시는 분들을 위해 간단히 설명드리면 Cursor는 VSCode를 fork한 코드 에디터 입니다. 수많은 AI 지원 코드 편집 기능을 추가되었어요. VSCode에서 Copilot을 사용해보셨다면 어떤 느낌인지 아실거에요. Copilot보다 10배 더 뛰어나고 생산성을 높이기 위한 다양한 AI 기능들이 포함되어 있다고 생각하시면 됩니다. VSCode 를 사용하고 있다면 Cursor 마이그레이션도 지원하고 VSCode 에서 사용하던 Extension 도 그대로 사용할 수 있어요. CLI 툴을 설치 하면 cursor, code 등으로 사용할 수 있습니다.
기능
Tab, Chat, Composer (normal/agent)
Tab
커서를 사용할 때 놀랍도록 유용한 기능은 Tab 입니다. 다음에 변경해야 할 코드를 예측해 하이라이트 해주고 Tab하면 그 위치로 이동합니다. 다시 한번 Tab하면 Cursor 가 제안하는 코드를 적용합니다. 여러 줄 편집, 린트, 포멧을 탭 한번으로 적용할 수 있어요. Cursor 팀은 Tab 기능만을 위해 새로운 커스텀 모델을 만들었다고 합니다. 1월 13일에는 Fusion 이라고 하는 새로운 Tab 모델을 업데이트 했어요. Tab 모델의 목표는 코드 에디팅에 있어서 지연시간을 없애는 것이라고 하고 새로운 Tab 모델인 Fusion 은 큰 진전을 이루었다고 합니다. Tab 모델은 현존하는 모든 LLM 보다 더 많은 코드를 생성하고 있다고 합니다.
Chat
Chat 기능은 ChatGPT 가 코드 에디터에 통합되어 있다고 보면 됩니다. 대신 여러 유용한 기능들이 포함되어 있어요. 다양한 모델을 사용할 수 있고요. 코드를 제안하지만 적용하지는 않아요. 개발자가 더 개입할 수 있습니다. 단축키 Command + L 로 기능을 선택할 수 있습니다. Chat 을 코드를 이해할 때 사용할 수 있고 에러에 대한 질문이나 수정을 제안 받을 수 있습니다. @Codebase 로 전체 코드 베이스를 참도하도록 할 수 있습니다.
Composer
커서의 메인 기능입니다. 커서가 코드를 직접 작성하고 실행시키는 기능입니다. 두 개의 모드가 있어요. normal / agent. normal 모드는 초기에 나온 Composer 이고 터미널이 통합되기 전 기능입니다. agent 모드를 사용하세요. agent 모드는 코드를 작성하고 에러를 수정하고 터미널과 통합되어 직접 실행할 수도 있습니다. 커서를 사용하는 개발자들이 매일 사용하는 기능이고 계속 발전하고 있어요. 단축키 Command + I 로 접근 할 수 있습니다.
그럼 Cursor 에서 iOS 개발환경 세팅을 해볼까요?
필요한 툴
- Xcode Build Server
- Sweetpad
- [Optional] swift-format
- [Optional] xcbeautify
Xcode Build Server
커서에서 jump to definition 이나 auto completion기능을 사용할 수 있게 해줍니다.
# https://github.com/SolaWing/xcode-build-server
brew install xcode-build-server
Sweetpad
Sweetpad 는 Cursor 에서 iOS 앱을 빌드할 수 있게 하는 익스텐션입니다. 자동완성 기능, Build/Run, formatting, 디바이스 관리, 디버깅 기능까지 지원합니다. Sweetpad 는 xcodebuild 의 명령어들을 래핑해서 단축키로 사용할 수 있도록 해줍니다. 예를 들면 아마 Xcode 에서 가장 많이 사용하는 단축키 Command + R 을 똑같이 Cursor 에서 사용할 수 있도록 합니다. Xcode 를 사용할 때 사용하던 다양한 커맨드들을 똑같이 매핑할 수 있어요.
먼저 위에서 설치한 Xcode Build Server를 이용해 프로젝트를 세팅해줘야 합니다. 프로젝트의 사이즈가 크다면 시간이 다소 걸릴 수 있어요.
커맨드 실행이 끝나면 buildServer.json 파일이 프로젝트 루트 디렉토리에 생성됩니다. xcode build server 가 이 파일을 참조해 Syntx highlighting, jump to definition등 sourcekit-lsp 의 기능을 사용할 수 있도록 합니다. debugging 도 가능합니다.
swift-format
# https://github.com/swiftlang/swift-format
brew install swift-format
.vscode/settings.json 에 아래 설정을 추가해 보세요. 저장할 때마다 파일 포메팅을 실행합니다.
{
"[swift]": {
"editor.defaultFormatter": "sweetpad.sweetpad",
"editor.formatOnSave": true,
},
}
지금 까지의 느낌
지난 몇주간 iOS 개발을 위해 Cursor를 사용하고 있습니다. 아직 사용이 서툴긴 합니다. 물론 Xcode도 함께 사용하고 있어요. 사용 비율은 50:50 입니다. Cursor 의 Tab 기능은 귀신같이 다음에 작성해야 할 코드의 위치로 가있습니다. 여러 줄에 걸친 변경도 탭 한번으로 빠르게 실행 할 수 있어요. Cursor를 사용하면서 생산성이 2배는 증가했습니다. Xcode의 Copilot Extension 도 사용하고 있지만 Cursor 만큼 훌륭하지는 않습니다.
Xcode를 버리기는 어렵겠지만 Cursor 에 익숙해지면 iOS 개발을 위한 강력한 AI 툴을 하나 얻게 될겁니다.
Cursor 파운더들이 Lex Fridman 팟캐스트에 출연했습니다. 시간날 때 한번 쯤 보시는걸 추천해요.
⏰ 딜라이트룸에서 알라미와 함께 아침을 바꿀 분들을 모십니다 🙌
- 딜라이트룸 채용 공고 살펴보기 ⏰
(+ 여기서 지원하면 입사 축하금 100만원💸)