Cursor AI 사용해보고 느낀 점

Giljae Joo (주길재)
6 min read5 days ago

--

처음에는 Cursor AI IDE를 그저 또 다른 AI 코딩 도구로 간주했었다.

Cursor AI, Windsurf, Cline등 다양한 것을 써보고, 지금 시점에는 관점이 상당히 바뀌었기에 이에 대해 글을 쓰기로 결정 했다.

AI 코딩 도구에 대한 나의 핵심 철학은 방대한 양의 코드를 생성하는 것이 아니다.

대신, 진부하고 지루한 작업을 처리하고, 반복적인 코딩 작업을 가속화하여, 비즈니스 로직, 아키텍처, 문제 해결등에 집중할 수 있게 해주는 비서를 찾는 개념이다.

Cursor AI에 대한 현재까지의 나의 느낌은 빠른 프로토타입 개발에서 빛을 발하고, 반복적인 코딩 블록에 대한 인지 부하를 줄여준다고 생각된다. 같이 사용하고 있는 동료도 나와 같은 생각을 하고 있고, 현재는 리팩토링 관점에서 접근해보고 있다.

기능

Cursor는 AI 기반 IDE 이다.

Cursor AI는 Visual Studio Code의 포크이다. LLM(Large Language Model)기능을 사용자 인터페이스에 통합했다. 개인적인 취향으로는 Active bar가 왼쪽 사이드에 위치하지 않는게 아쉽긴 하다. (이건 익숙해지면 되니까…)

Cursor는 무료와 유료 구독이 있고, 현재 회사의 지원으로 비즈니스 구독 모델을 사용중이다. Cursor는 개발자가 IDE 환경과 LLM 사이의 상호 작용하는 방식을 혁신하고자 한다. 실제로 사용해보면 코딩 경험이 꽤 좋고, 재미가 생긴다.

이런 기능은 인지적 부하를 줄이도록 해주며, 개발을 가속화하기 위한 Concept이라고 생각한다. Cursor를 사용하면 브라우저에서 검색하거나 ChatGPT에서 질문하고 코드를 복사하여 붙여넣을 필요가 없다.

이제 주요 특징을 살펴보자.

탭 완성

탭 완성 기능은 자동 완성과 다르게 코드를 예측하고 권장되는 코드를 탐색하는데 도움이 된다. 간단하게 탭을 누르면 된다. 옆에서 숙련된 개발자가 다음 코드를 언급해주는 것과 비슷하다.

일반적으로 대화 방식의 인터페이스에 주로 의존하는 것과 다르게, Cursor의 탭 완성 기능은 개발자의 작업 흐름을 자연스럽게 확장해주는 느낌이다.

맥락을 이해하고 있으며, 다음 코드를 추천해주는 것이 생각보다 똑똑하다.

인라인 편집

인라인 편집은 코드 수정을 위한 채팅 기반 인터페이스를 제공한다. 코드 블록을 선택하고 AI가 개선 사항이나 리팩토링을 제안하기에 다른 관점에서 도움을 받을 수 있다. 코드를 선택하고 Cmd/Ctrl-K을 누르면 기존 코드의 컨텍스트 내에서 변경 사항을 제안한다.

Diff 뷰를 생성하여 Accept 전에 제안된 수정 사항을 즉시 시각화할 수 있다. 이 기능은 특히 작은 코드 세그먼트를 구현하거나 특정 기능 내에서 사소한 리팩토링 작업을 실행하는데 유용하다.

채팅

채팅을 통해 개발자는 코드에 대해 AI와 논의를 할 수 있고, 복잡한 리팩토링 시나리오를 시뮬레이션 해 볼 수 있다.

AI와 “페어 프로그래밍”을 하면서 코드에 대한 전체 맥락을 이해할 수 있다. 또한 특정 파일에 태그를 지정하고 질문을 할 수 있다.

채팅 사이드바는 더 포괄적인 상호작용을 위한 대화 공간이다. Cmd/Ctrl-L 을 누르면 AI와의 대화를 위한 공간을 제공한다.

Composer

이건 정말 강력한 기능이다. 여러 파일에 걸쳐 diff을 생성하고 개발자가 체계적으로 변경 사항을 보면서 승인을 할 수 있는 인터페이스다.

여러 파일에 걸쳐 순차적으로 수정 사항을 검토하고 적용하기 위한 체계적인 워크플로우를 제공한다. 또한 사용자는 모델을 변경할 수 있다. 참고로 나는 Claude 3.5 Sonnet 모델을 사용한다.

결론

IDE에 AI를 통합하는 것은 매우 훌륭한 작업이라고 생각한다. Text를 다루는 것은 LLM이 잘하는 일이고 코딩은 그저 “텍스트” 데이터라고 볼 수 있기에 코딩에 엄청난 영향을 미칠 것으로 생각된다. 당분간은 인간의 작업을 도와주고 개선시켜주는 도구로써 활용하는 것으로 생각하고 있다. 아마도 인간을 대체한다는 목표보다는 개선 관점에 더 발전할 것이다.

Cursor를 사용하는 것은 나뿐만 아니라 주변 동료들에도 엄청난 생산성 향상을 가져다주었다. Cursor를 이용하여 MVP를 만들기전까지는 예상하지 못했던 일이었는데, 상당한 코딩 경험이 있는 개발자분들께는 추천하고 싶다. 주니어 개발자의 경우는 AI를 써도 나쁘진 않지만, 본인 생각과 경험도 매우 중요하기에 학습 경험을 방해하지 않는 선에서 사용했으면 좋겠다.

어제인가? Okky에서 생성형 AI와 주니어 개발자 채용 관련 인터뷰 요청이 있었다. 아직 인터뷰를 진행 하진 못했지만 생각 일부를 정리해본다.

“프로그래밍” 이라는 용어는 실제로는 공통된 목표를 향해 나아가는 몇 가지 활동이다. 즉, “컴퓨터”가 특정 프로세스를 시뮬레이션하도록 하는 것이다. “프로그래밍”은 아이디어를 인간 중심 언어에서 기계 중심 언어로 번역하는 과정이며, 이것은 다시 기계어로 번역된다.

사람들이 컴퓨터로 하기를 원하는 대부분은 누군가의 머릿속에 있다. 이를 꺼내기 위해서는 “분석”이 필요한데, 누군가를 인터뷰하여 프로세스화 하는 것과 비슷하다. 혹은 시니어 개발자가 설계 문서를 작성하는 것과 같다.

아마도 이 관점에서 AI는 코딩 부분을 대부분 사라지게 할 것이라고 생각한다. 아쉽지는 않다. 더 창의적인 일에 몰두 할 수 있기 때문이다. 이유는 코딩은 “프로그래밍” 프로세스에서 가장 비효율적인 부분이라고 생각하기 때문이다. 아이디어 혹은 로직을 코드로 표현하는 것은 식물을 키우는 과정과 비슷하기 때문이다. 이 작업은 꽤 지루하기도 하고, 반복되는 부분에서는 즐겁지 않다.

AI에게 무엇을 할지 알려주는 일은 지금도 어느 정도는 인간의 몫이고, 적어도 소프트웨어를 전공한 사람들이 이 일을 하는데 가장 적합하다고 생각한다. AI는 컴퓨터가 우리가 원하는 것을 시뮬레이션하도록 하는 전반적인 프로세스를 변화시킬 것이고, “코딩” 부분에서 인간의 역할은 점점 작아질 것이고, “분석” 부분은 크게 변화할 것이라고 생각한다.

물론, AI가 올바른 코드를 생성했는지는 사람이 보긴해야 한다. AI가 생성한 코드를 신뢰만 하고, 코드가 잘못되었는지를 이해하지 못하면 문제가 발생할 수 있다.

주변 동료들의 이야기를 언급하며, 글을 마친다.

“룰 세팅하고, 요구 사항을 명확히하여 지시하니, 생각보다 훌륭한데요?”

“얘는 쉬지도 않고, 불만도 없어요.”

“제가 힌트를 주니깐, 동의하며 바로 이해하는데요? 재미가 있어요.”

“상황에 따라, 주니어 개발자 혹은 시니어 개발자가 옆에 있는 느낌이에요.”

“레거시 인터페이스에 대해서는 아직 약한것 같아요. 한편으로는 컨트롤 및 분석 역할을 제가 할 수 있어서 다행이에요.”

Originally published at https://giljae.com.

--

--

Giljae Joo (주길재)
Giljae Joo (주길재)

No responses yet