iOS 개발자를 위한 Cursor 가이드(3)
Cursor 0.46
최근 Cursor 0.46 버전이 출시 되었습니다. 기존 Agent mode가 이제 기본 모드가 되었고 헷갈리던 여러 기능들이 Chat 안에서 정리 되었습니다. Command + I 로 Agent 를 선택할 수 있고 기존 normal 모드는 Edit 으로 사용할 수 있어요. 코드 변경 없이 대화 모드로 사용할 때에는 Command + L 을 이용해 Ask 를 사용하면 됩니다.
UI 도 사용하기 편하게 조금 개편되었더라고요. 명시적인 @Web 커맨드 없이 자동으로 웹검색도 진행한다고 하네요 .cursorignore 관련 기능이 개선되고 .cursorindexingignore 이 추가되어서 인덱싱 제외할 파일들을 명시적으로 제외할 수 있다고 합니다. 그 외에도 여러 버그가 수정되었고 MCP 관련 기능도 추가되었어요.
이번 업데이트 후 기존 normal 모드 사용자들 중에 불만을 토로하는 분들도 있더군요. 특히 Large codebase 에서는 Agent 기능이 오류나는 코드를 자주 생성한다고 합니다. rules를 편집할 때에도 description 으로 focus 가 계속 바뀌는 이슈가 있는데요. 아직 해결은 안되었지만 mdc 파일을 우클릭하고 Open With > Text Editor 를 선택하면 편집 가능합니다.
새로 바뀐 UI 커서 기능 이해하기
- Ask: 빠른 버그 수정 `@Codebase` 를 이용한 코드베이스에 대해 이해하기
- Edit: 리팩토링, 코드 개선하기, 제안만 하고 적용은 개발자가 해야 함
- Agent: 코드베이스에 대해 복잡도 있는 로직을 구현할 수 있고 파일 생성, 수정, 삭제, 실행까지 진행. Command + Delete 로 이전 상태로 되돌릴 수 있음
Agent를 사용할 때 이미 존재하는 파일인 데도 다시 생성하는 경우가 있어서 cursor rules 에서 파일 구조를 잘 정의해 줘야 합니다.
Yolo 모드
켜는 방법: Cursor Settings > Features > Enable Yolo mode
요즘은 Yolo 모드를 켜놓고 개발하고 있습니다. Yolo 모드는 Agent가 자동으로 터미널 명령어를 실행할 수 있는 기능을 제공합니다. 특히 명령어 실행이나 파일 삭제와 같은 작업을 자동화할 때 유용합니다. 배포 스크립트 실행과 같은 중요한 변경 사항에 대해서는 직접 실행하지 않고 개발자의 승인을 필요로 해요. Yolo 모드는 MCP 와도 호환됩니다.
며칠동안 Yolo mode 를 켜고 사용하고 있어요. 스스로 문제를 찾고 해결하는 것까지 완료 하더군요. 예를 들어 LocalizedStringResource 를 이용해서 지역화를 제공하고 있는데요. Label 에는 직접 LocalizedStringResource를 추가할 수 없습니다.
// I18N.Settings.appSettings is LocalizedStringResource
Label(I18N.Settings.appSettings, systemImage: "gear") // 오류코드
대신 아래와 같은 방법으로 할 수 있어요.
Label(String(localized: I18N.Settings.appSettings), systemImage: "gear")
처음에는 오류가 있는 방법으로 코딩을 했지만 오류를 감지하고 위와 같은 형태로 코딩을 진행하더라구요. 오류있는 코드를 작성, 스스로 오류를 감지, 더 나은 방법을 찾고 해결까지 완벽하게 수행 하더라고요. extension 으로 사용하면 더 편하지 않을까 생각하여 추가 명령을 내렸습니다. 결과는 놀라웠어요.
저는 아래와 같은 최적화를 생각했었는데
Label(I18N.Settings.appSettings.value, systemImage: "gear")
Cursor 는 한발짝 더 나가서 아래와 같은 결과를 내더군요. Label 에 초기화 함수를 추가하는 방식으로 해결했습니다.
정말 많은 사례 중 하나에 불과 할 뿐이에요. 놀라운 코드를 작성하고 배움을 주는 경우는 매우 많았습니다.
Global Rules 보다 Project Rules 사용하기
Using the "project-rules" in 0.45.2
0.45.2 에 추가된 기능이긴 하지만 .cursor/rulese/swift.mdc 와 같은 방식으로 Project rules 를 사용할 수 있습니다. 알라미 프로젝트에서는 아래와 같은 방식으로 tca, swiftui, swift 등 사용하는 기술에 대한 rules 를 추가하고 사용중입니다.
Cursor 0.47
커서팀 개발자 Eric에 따르면 0.47 버전에서는 sonet3.7을 이용해 더 어려운 작업을 위임할 수 있을 거라고 하네요.
거의 대부분의 코딩은 sync 와 async 한 작업으로 나눌 수 있어. sync 는 직접하는거, async 는 위임하는거, 더 많은 작업을 async 로 할거고 그건 ai 가 할거야. sonet 3.7은 시작에 불과해.
요즘은 Xcode 보다 Cursor 를 더 많이 사용하고 있어요. 0.46 버전은 큰 변경으로 커뮤니티에서 많은 반발이 있었지만 저는 만족하면서 사용중이에요. 계속 사용하다보면 더 많은 노하우가 쌓이지 않을까요? 더 다양한 작업들을 async 로 실행해야 겠습니다.
⏰ 딜라이트룸에서 알라미와 함께 아침을 바꿀 분들을 모십니다 🙌
- 딜라이트룸 채용 공고 살펴보기 ⏰
(+ 여기서 지원하면 입사 축하금 100만원💸)