
【Python】『뉴스 요약 사이트』를 만들어 보았다 (실전편) ⑱
요약
Cursor의 요청 제한 문제를 해결하기 위해 새로운 AI IDE인 Windsurf를 도입하고 설치 및 설정하는 과정을 다룹니다. Cursor와 Windsurf의 작동 방식 차이를 비교하며, 기존 설정을 손쉽게 가져오는 방법과 초기 실행 팁을 제공합니다.
핵심 포인트
- Cursor는 사용자 지정형, Windsurf는 AI 자율형(Delegation-type) 방식임
- Windsurf는 VS Code 기반이며 기존 Cursor 설정을 임포트 가능함
- 설치 후 언어 변경 및 재시작을 통해 초기 연결 에러를 해결할 수 있음
자, 지난번 상황을 복습해 보겠습니다.
이전부터 Cursor로 앱을 만들고 있었습니다만, 요청 제한(Request Limit)의 벽에 부딪히고 말았습니다.
Cursor의 다음 선택지로 떠오른 것이 Windsurf였습니다.
Cursor에서 중간까지 만들었던 읽어주기 앱을 가져와서, 개발을 그대로 이어갈 수 있을지 시험해 보기로 합니다.
기왕 하는 거 무엇이든 해보자!
갑작스러운 Cursor와의 이별은 예상치 못했지만, 새로운 도구도 접해보는 것이 Win-Win라고 생각하기로 합니다.
'Cursor와는 무엇이 다를까?'라고 생각하니, 같은 의문을 가진 분들의 기사가 여기저기 보이더군요.
역시 모두가 같은 부분을 궁금해하는군요.
『【철저 비교】Cursor vs Windsurf: AI 코딩의 신시대』
이 내용을 염두에 두면서, Windsurf를 이용할 수 있는 환경 구축을 진행하겠습니다.
Codeium이라는 회사가 만든 AI 탑재 IDE로, 베이스는 VS Code의 포크(Fork)입니다.
외관은 거의 VS Code와 같아서, Cursor 사용자라면 조작에 헤맬 일은 거의 없습니다.
다만, 내부의 사상은 Cursor와 꽤 다릅니다.
- Cursor → AI에게 보여줄 파일을 사용자가 "@파일명"으로 지정하는 컨트롤형 (Control-type)
- Windsurf → AI가 스스로 프로젝트 전체를 읽어내는 맡김형 (Delegation-type)
(참고로 2025년 5월에 OpenAI가 약 30억 달러에 인수했다는 뉴스도 있었다고 하던데…………)
VS Code와의 관계에서 보면, 둘은 사촌 같은 느낌일까요.
그렇게 생각하니 VS Code란 정말 대단하네요. 이제야 실감이 납니다.
【① 다운로드】
공식 사이트 https://windsurf.com 에 접속하여, OS를 선택해 다운로드합니다.
Windows : WindsurfUserSetup-x64-x.x.x.exe
【② 설치】
다운로드한 파일을 더블 클릭 → 이용 약관에 동의 → 설치 경로를 확인하고 설치.
평소 소프트웨어를 설치하는 것과 같습니다.
【③ 실행 & 계정 연동】
최초 실행 시 화면에서 주목한 것이, "VS Code나 Cursor의 설정을 임포트(Import)한다"라는 옵션입니다. 처음부터 "너희들 어차피 얘네들 쓰고 있잖아? 괜찮아, 제대로 계승하고 있어"라고 꿰뚫어 보는 느낌이라 매우 친절합니다. 고맙군.
위에는 VS Code를, 아래는 Cursor를 선택해 둡니다.
다른 하나인 Vim은 마우스가 필요 없고 키보드로 완결되는 숙련된 에디터로, 잘 다루면 확실히 멋있지만, "종료하는 법을 몰라서" 막히는 초보자가 속출하는 난코스라고 합니다.
또한, 이미지 아래의 "Install surf terminal command" 체크는 그대로 켜두면, 터미널에서 surf 명령어로 Windsurf를 열 수 있게 되어 편리하다고 합니다.
공식 문서(https://docs.windsurf.com/ja/windsurf/getting-started)에도 기재되어 있으며, 여러 가지를 그대로 이어받을 수 있습니다.
Cursor 설정을 임포트했더니 외관이 거의 그대로여서, 허무할 정도로 매끄러웠습니다.
계정은 Google 로그인으로 OK. 무료 플랜부터 시작할 수 있습니다.
참고로 실행 시에는 다음과 같은 에러가 발생했습니다. 메모용입니다.
- 위(파란색) "Change Language and Restart" → 누르면 일본어화 해줍니다.
- 아래(빨간색) "Client windsurf: connection to server is erroring" → 이것은 실행 직후에 자주 발생하는 에러로, 일본어화를 위해 재시작하면 대부분 함께 해소된다고 합니다. 지금은 무시하고 위의 "Change Language and Restart"를 먼저 누르는 것이 좋아 보입니다.
재시작했더니, 이번에는 아무 일 없이 실행되었습니다!
【프로젝트를 여는 것만으로】
Windsurf에서 『파일』 > 『폴더 열기』로 Cursor의 프로젝트 폴더를 열기만 하면 계속해서 개발에 사용할 수 있다고 합니다.
『news-digest』를 열면, 확실히 문제없이 열 수 있었습니다.
【동작 확인】
통합 터미널(Ctrl+@)을 열어, 의존 패키지(Dependency Package)를 설치합니다.
requirements.txt
는 Cursor에서 개발할 때 만들었던 파일로, 이 앱에 필요한 라이브러리가 목록으로 되어 있습니다. pip install -r
는 "이 리스트에 적혀 있는 것을 전부 설치해줘"라는 의미가 됩니다.
이것들은 PC 본체에 이미 설치되어 있는 것들이라, 솔직히 말하면 Cursor에서 설치했다면 불필요한 작업이라고 합니다만, 만약을 위해 실행해 두자고 해서 순순히 따르기로 했습니다.
미리 해두는 이유는 Windsurf로 인계하는 시점에 라이브러리 버전이 맞는지 확인할 수 있기 때문이라고 합니다. 인계하는 시점에 최신 버전이 바뀌어 있을 가능성이 있다거나, 그런 느낌……?
그럼, pip install -r requirements.txt를 다음과 같이 진행합니다.
……에러가 났는데?
『'pip'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다.』라고 합니다.
경로(Path)가 설정되어 있지 않아서 에러가……?
python -m pip install (직접 호출! 경로가 필요 없음)을 했더니, 문제없이 완료되었습니다.
Cursor에서 사용하던 .cursorrules는 Windsurf에서 그대로 읽히지 않는다고 합니다.
이번에 Windsurf로 인계할 경우에는, 동일한 내용을 .windsurfrules라는 파일명으로 프로젝트 루트(Root)에 두면 읽어줍니다.
.cursorrules의 내용을 그대로 복사해서 파일명만 .windsurfrules로 바꾸면 OK!
.cursorrules는 Cursor에서 사용하던 규칙(Rule) 파일입니다.
AI에 대하여 "이 프로젝트에서는 이런 규칙으로 작성해줘"라는 약속을 적어두는 파일입니다. 적어두면 Cursor가 매번 그것을 읽고 코드를 작성해 줍니다.
……라고 합니다만, Cursor로 개발할 때 만들지 않았던 모양입니다. 없어도 처음에 동일한 지시를 내리면 문제가 없다고 하니, 신경 쓰지 않고 그대로 진행합니다.
다시 한번 두 가지 차이점을 정리하며 기사를 마치겠습니다!
| Cursor의 조작 | Windsurf에서의 대응 |
|---|---|
| @파일명 으로 참조 지정 | 원칙적으로 불필요 (자동 스캔). @멘션도 사용 가능 |
| ... |
AI 패널을 부르는 이름도 다른 것 같아!
왠지 각각 독자적인 이름이 있어서 귀엽다.
| 툴 | AI 패널의 이름 |
|---|---|
| Cursor | Composer |
| Windsurf | Cascade |
Windsurf로의 이행은 매우 쉬웠습니다.
우선 무료 플랜으로 시도해 보겠습니다.
아직 Cursor와의 차이를 피부로 크게 느끼지는 못하고 있어서, 조금씩 만져보겠습니다!
Windsurf 공식 문서 (일본어)
https://docs.windsurf.com/ja/windsurf/getting-started
Cascade 개요 페이지
https://docs.windsurf.com/ja/plugins/cascade/cascade-overview
【철저 비교】Cursor vs Windsurf: AI 코딩의 신시대 - Qiita
https://qiita.com/syukan3/items/c5f4cb48a6f1a5396e4e
Windsurf에서 AI 코딩 규칙을 설정하기 - Qiita
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기