안녕하세요! 오늘은 개발자들의 생산성을 혁신적으로 높여줄 수 있는 AI 도구인 Cursor에 대한 흥미로운 블로그 글을 가져왔습니다. Builder.io의 스티브 세웰(Steve Sewell)이 작성한 이 글에서 그는 Cursor를 어떻게 사용하고 있는지, 그리고 그가 직접 경험하며 얻은 최고의 팁들을 공유하고 있어요.
스티브에 따르면, 그의 팀 시니어 엔지니어는 이제 코드를 거의 타이핑하지 않고 Cursor의 에이전트 상자에만 입력한다고 해요. 스티브 자신도 이와 비슷하게 시간의 약 80%를 Cursor를 활용하며 보낸다고 합니다. 복잡한 작업에서도 제대로 효과를 보려면 사용하는 사람이 Cursor를 잘 이해하고 활용하는 것이 중요하다고 하니, 그의 팁들을 함께 살펴보시죠.
1. YOLO 모드의 힘: 단순한 코드 작성을 넘어 검증까지
많은 사람들이 간과하기 쉬운 Cursor의 가장 멋진 기능 중 하나는 바로 YOLO 모드(YOLO mode)입니다. 이 모드를 켜면 에이전트가 코드를 작성하는 것을 넘어, 단순히 린트(lint)를 확인하는 것을 넘어 코드의 정확성을 스스로 검증할 때까지 작업을 수행합니다.
설정에 들어가려면 Ctrl + Shift + J(또는 Cmd + Shift + J)을 누른 뒤, “Features” 탭에서 YOLO 모드 체크박스를 활성화하면 됩니다. 참고 https://forum.cursor.com/t/yolo-mode-is-amazing/36262/9
YOLO 모드를 켜려면 설정에서 스크롤을 내려 해당 옵션을 활성화하면 됩니다. 이름 때문에 주저할 수도 있지만, 스티브는 반드시 사용해야 한다고 강력히 추천합니다. YOLO 모드를 활성화하면 프롬프트, 허용 목록(allow list), 거부 목록(deny list) 등 더 많은 옵션을 설정할 수 있습니다.
스티브가 사용하는 YOLO 모드 프롬프트에는 테스트 실행(vitest, npm test, nr test 등), 기본적인 빌드 명령(build, tsc 등), 파일 및 디렉토리 생성(touch, mkdir 등)이 항상 허용된다는 내용이 포함되어 있습니다. 이렇게 설정하면 Cursor는 mkdir, tsc, 린트 확인 등을 직접 실행할 수 있습니다. 특히 tsc를 실행하여 빌드 오류가 발생하면, Cursor가 스스로 오류를 찾아 수정하고 빌드가 통과될 때까지 반복하는 작업 흐름이 가능해지는데, 이는 정말 대단한 기능이라고 합니다.
2. 복잡한 작업 처리: AI와 함께하는 테스트 주도 개발 (TDD)
복잡한 작업을 Cursor로 처리하는 방법도 소개되었습니다. 예를 들어, 마크다운 문자열을 HTML 문자열로 변환하는 함수를 만드는 작업은 많은 AI가 한 번에 완벽하게 해내기 어렵다고 해요. 전통적인 방식으로는 코드를 받고, 수동으로 테스트하고, 오류를 발견하여 다시 수정하는 과정이 반복되어 마치 QA 테스터가 된 느낌을 받을 수 있습니다.
이러한 비효율을 해결하기 위해 자동화된 테스트가 개발되었고, 스티브는 AI와 함께 작업할 때는 테스트 주도 개발(TDD) 방식이 매우 효과적이라고 말합니다. 단순한 프롬프트 대신, 다음과 같이 “테스트를 먼저 작성한 다음 코드를 작성하고, 테스트를 실행하고 테스트가 통과될 때까지 코드를 업데이트하라”는 한 줄을 추가하는 것이 좋습니다.
이렇게 하면 Cursor는 테스트 파일을 만들고 package.json 등에서 필요한 정보를 파악하여 스스로 테스트를 실행하고 코드를 수정하는 과정을 반복합니다. 처음에는 테스트에 실패하더라도, YOLO 모드가 켜져 있다면 Cursor가 테스트가 통과될 때까지 코드를 자동으로 수정하며 반복 작업을 수행합니다. 물론 AI가 예상치 못한 방향으로 갈 때도 있기 때문에 중간 진행 상황을 확인하고 필요시 중단 및 재조정을 지시해야 할 수도 있습니다.
3. 기존 테스트 스위트 활용 및 디버깅
Cursor는 기존에 작성된 테스트 스위트를 활용하는 데에도 뛰어납니다. 새로운 테스트 케이스를 추가하고 코드가 이를 통과하는지 확인하는 식으로 활용할 수 있습니다. 스티브는 Builder 프로젝트에서 발생하는 변환기 오류를 해결하기 위해, 로그에서 변환되지 않은 코드를 가져와 Cursor에게 제공하고 해당 문제에 대한 테스트를 작성한 후 모든 테스트가 통과될 때까지 코드를 업데이트하도록 지시한다고 합니다. 이는 코드의 견고성을 높이는 훌륭한 방법입니다.
또한, 특히 해결하기 어려운 문제의 경우 로그를 활용한 디버깅이 유용합니다. Cursor에게 코드에 로그를 추가하여 가시성을 높이도록 요청한 후, 코드를 실행하고 로그 결과를 Cursor에게 다시 제공합니다. Cursor는 이 로그 출력을 분석하여 문제의 원인을 파악하고 실제 코드의 동작에 기반한 더 정확한 해결책을 제시할 수 있습니다. 이는 코드만으로는 파악하기 어려운 까다로운 버그를 해결하는 데 특히 강력한 기술입니다. 이 과정 역시 몇 번의 반복이 필요할 수 있습니다.
4. TypeScript 오류 및 빌드 문제 자동 수정
개발 중 TypeScript 오류나 린트(lint) 문제가 발생했을 때도 Cursor를 유용하게 사용할 수 있습니다. 빌드를 실행하고 발생하는 모든 오류를 확인한 후, Cursor에게 “빌드 오류가 있습니다. nr build를 실행하여 오류를 확인한 후 수정하고, 빌드가 통과될 때까지 다시 빌드를 실행하세요”라고 지시하면 됩니다. 스티브는 많은 작업을 이러한 방식으로 마무리한다고 하며, lint 문제 등 사소한 오류 수정은 Cursor에게 맡긴다고 합니다.
그는 또한 CI 빌드 실패를 방지하기 위해 tsc, Prettier, ESLint 등 빠르고 기본적인 빌드 단계를 포함하는 “pre-PR” 명령을 사용하는데, Cursor에게 이 명령을 실행하고 문제가 발생하면 수정하도록 하여 PR(Pull Request)이 준비될 때까지 모든 것이 통과되도록 한다고 합니다. 이는 크고 복잡한 프로젝트에서도 매우 효과적이라고 합니다.
5. 유용한 단축키 및 기능들
Cursor에는 작업 흐름을 개선하는 몇 가지 유용한 단축키와 기능이 있습니다.
•Command K: 선택된 코드에 대해 빠른 변경을 적용하는 데 유용합니다. 예를 들어, 특정 텍스트를 제외한 모든 글꼴 크기를 작게 만들고 싶을 때 코드를 선택하고 Command K를 누른 후 변경 내용을 지시하면 됩니다. Command I보다 빠르며, 선택된 코드에만 집중하므로 효율적입니다. 인라인 UI도 편리합니다. 터미널에서도 Command K를 사용하여 복잡한 명령어를 쉽게 실행할 수 있습니다 (예: 최근 5개 Git 브랜치 목록 보기). 복잡한 명령어를 외울 필요 없이 중요한 문제 해결에 집중할 수 있게 해줍니다.
•Command I: 에이전트를 열고 선택된 코드를 컨텍스트에 추가합니다. 특정 코드 부분에 대해 논의하거나 수정하고 싶을 때 유용합니다.
•자동 완성 및 탭 탐색: 일반적인 자동 완성 외에 “tab again” 기능이 있습니다. 회색 텍스트 제안이 나타났을 때 탭을 다시 누르면 해당 내용으로 자동 완성됩니다. 때로는 코드를 완성하고 때로는 다음 제안으로 이동하는 등 약간 직관적이지 않을 수 있으므로 익숙해질 필요가 있습니다.
•커밋 메시지 생성: 소스 제어 탭에서 마법봉 아이콘을 눌러 커밋 메시지를 생성할 수 있습니다. 항상 완벽하지는 않지만, 시작점으로 유용합니다.
•버그 찾기 (Bug finder): Command Shift P를 누르고 “bug finder”를 입력하여 접근할 수 있습니다. 현재 변경 사항과 메인 브랜치를 비교하여 도입했을 수 있는 잠재적인 버그를 식별하려고 시도합니다. 예를 들어, UI 작업에서 위치를 다룰 때 0 값을 제대로 처리하지 않은 경우 등을 잡아낼 수 있습니다. 완벽하지는 않지만 놓쳤을 수 있는 문제를 포착하는 데 도움이 됩니다.
6. AI 활용과 코딩 실력
많은 개발자들이 AI 도구를 사용하면 코딩 실력이 퇴보할까 우려합니다. 스티브는 이에 대해 코딩 실력을 ‘코드로 좋은 제품을 좋은 방식으로 만드는 능력’으로 정의한다면, 매일 손으로 코드를 작성해야만 이 실력을 유지하거나 향상시킬 수 있는 것은 아니다라고 말합니다.
AI는 기본적인 작업의 많은 부분을 자동화하여 시간과 정신적 에너지를 절약하고, 개발자가 더 어려운 문제에 집중할 수 있게 해줍니다. AI가 UI를 구성하는 등의 작업을 수행하게 하고, 더 복잡해지는 부분에서는 개발자가 직접 개입하여 코드를 수정하는 방식이 효과적입니다.
그는 AI 도구가 발전하더라도 제품 전체를 AI에만 의존하여 만드는 세상은 오지 않을 것이라고 생각합니다. 코드를 직접 수정하고 구현하는 작업은 항상 필요하며, 코딩하는 방법과 디버깅하는 방법을 모른다면 막히는 지점에서 스스로 해결할 수 없을 것이라고 강조합니다. AI는 시니어 개발자에게 가장 큰 도움이 되며, 개발자가 할 수 있는 가장 좋은 것은 최대한 많은 개발 기술을 배우고 AI의 도움을 받되, 실제로 코드를 다루는 방법을 알아야 한다는 것입니다.
결론적으로, AI와 함께 코드를 다루는 것은 여전히 코딩 실력을 쌓는 것이며, 그와 함께 생산성과 효율성이라는 중요한 능력을 기르는 것입니다. 스티브는 Cursor를 잘 활용하는 개발자를 그렇지 않고 모든 것을 손으로 코딩하는 개발자보다 선호한다고 말합니다. AI 도구를 통해 더 적게, 더 효율적으로 일하는 개발자가 결국 더 많은 것을 달성할 수 있기 때문입니다.
결론
Cursor는 놀라운 도구입니다. 단순히 자동 완성 기능만 사용하고 있다면 Cursor의 진가를 제대로 활용하지 못하는 것일 수 있습니다. 에이전트 기능과 다른 유용한 기능들을 시도해보고, 어떤 작업 흐름이 AI 에이전트와 잘 맞는지, 테스트와 함께 어떻게 활용할 수 있는지 등을 익히는 것이 중요합니다.
궁극적으로 AI 도구를 사용하는 목적은 더 효율적으로 고객에게 더 나은 제품을 제공하여 비즈니스에 기여하는 것입니다. AI의 도움을 받되, 자신의 코딩 실력과 문제 해결 능력 또한 여전히 중요하다는 것을 잊지 말아야 합니다.
이것이 스티브가 공유한 Cursor 활용 최고의 팁들입니다. 이러한 팁들을 시도해보고 여러분의 개발 작업 흐름이 어떻게 개선되는지 직접 경험해 보세요!
Builder.io에서는 디자인을 고품질 코드로 변환하는 Visual Copilot과 같은 도구들도 제공하고 있습니다. 이 도구는 Figma 디자인을 여러분의 컴포넌트를 사용하여 고품질 코드로 바꿔준다고 하니, 디자인-투-코드 작업 자동화에 관심 있다면 살펴보는 것도 좋겠네요.
- 코딩 속도를 혁신적으로 높여주는 AI 코드 에디터, 커서(Cursor) 알아보기
- Cursor 사용법: 개발 효율을 극대화하는 팁들
- 🧠 비전공자를 위한 Cursor AI 시작 가이드
- 🤖 코딩을 처음 배우는 당신에게, Cursor AI는 어떤 도구일까?
- 🎯 Claude Task Master 시작하기: Cursor 에디터에서 AI 개발 자동화 완전 정복
- 💰 Cursor AI, 무료로 어디까지 쓸 수 있을까? 유료 전환이 필요한 순간은?
- Cursor Rules: AI 어시스턴트의 능력을 무한대로 확장하는 비결!
- Cursor AI 개발 생산성 극대화하기: awesome-cursorrules 완벽 활용 가이드 🚀