앞으로 모든 코드의 90%는 AI가 작성할 수 있도록
앞으로 모든 코드의 90%는 AI가 작성할 수 있도록
요즘 코딩을 독학하고 있는데요, HTML 밖에 몰랐던 제가 2주 만에 Next.js로 개인 블로그를 만들게 되었어요. 영상을 보거나 과외를 받지도 않았고요. 대신 특별한 코드 에디터를 사용했어요. 바로 자연어로 개발할 수 있는 코드 에디터, Cursor에요.
특히 내장된 채팅 기능이 신기했는데요, 프롬프트가 부정확하거나 추상적이어도 디렉토리 내의 엄청난 양의 코드를 읽고 굉장히 빠르게 답변하는데 퀄리티도 정말 좋았어요. 최근까지는 이렇게 완성도 높은 제품을 앞세워 OpenAI, 전 Github의 CEO 냇 프리드먼, Dropbox 공동창업가 아리시 페르도시로부터 약 100억원을 유치하면서 제품개발에 속도를 내고 있어요.
이번 글에서는 VScode의 새로운 경쟁자, Cursor만의 특별한 UX를 알아보고, 어떻게 코드의 90%를 AI가 작성할 수 있게 하는지 적어봤어요.
특히 이런 분들이 읽었을 때 도움이 될 수 있어요.
- 효율적인 프롬프팅 경험을 설계하고 싶은 사람
- AI 제품개발 시 어떻게 UX를 설계해야할지 공부하고 싶은 사람
- 실제 제품을 만들면서 코딩을 독학하고 싶은 사람
기존의 코딩이 어려웠던 이유
주니어, 시니어를 막론하고 개발과정에서 가장 고통스러운 경험은 '틀린 이유를 모르는 것'이에요.
이 상황에서는 크게 두 가지 어려움을 겪어요.
- 에러의 원인을 발견하는게 어렵다 - 원인을 알기 위해 파악해야하는 맥락이 너무 많다
- 원인을 파악하기 위한 질문이 너무 어렵다 - 무엇을 어떻게 질문해야할지 모르겠다.

그래서 지금까지는 오픈소스 커뮤니티와 구글링을 통해 문제를 해결해왔는데요, 저마다의 개발환경이 다르다보니 사례를 참고할 수는 있어도 즉각적인 해결방안을 도출하는 일은 어려웠어요. 물론 그마저도 코딩을 처음 배우는 사람들에게는 버거웠고요. Cursor는 위의 두 가지 문제를 정확히 해결하는 제품을 만들게 됩니다.
우선 Cursor가 제공하는 대표적인 기능 5가지는 다음과 같아요.
- Codebase Chat / Apply : 코드베이스에 기반해 수정안을 제시하고, 유저가 승인하면 코드에 자동적용.
- Copilot ++ : 기존의 Copilot보다 더 많은 데이터를 학습. Cursor의 예측모델은 정확도가 높음.
- Docs : 특정 프레임워크, 언어 등의 문서 링크를 첨부하면 그걸 학습하고 답변.
- Vision : 복잡한 텍스트 대신 프롬프팅 가능. 컴포넌트 UI를 만들어주기도 함.
- Auto Debug : Cursor 터미널에 내장된 에이전트. 터미널 에러에 어떻게 대처해야하는지 안을 제시.
그리고 이 5가지 기능의 대전제는, '내 모든 코드를 이해하는 AI와 자연어로 소통할 수 있다'고요.
그런데 개인적으로 Cursor를 사용하면서 이런 의문이 들었어요. 우리는 AI와 소통할 때는 명확하고 쉬운 커뮤니케이션이 중요한데, '개발'이라는 분야는 문제의 복잡도가 높고, 사용자도 문제의 원인을 파악하지 못하는 경우가 많아요. 그렇다면 이런 상황에서 명확한 프롬프트를 작성하는 것이 가능할까요? 오히려 복잡한 상황과 맥락을 자세하게 설명하기 위해 프롬프트를 길게 작성하면 모델의 성능이 떨어지지 않을까요?
그래서 Cursor는 이 문제를 어떻게 해결했는지 찾아봤어요.
Cursor의 'Priompt'를 활용한 프롬프트 디자인
Cursor는 모호한 프롬프트로 인해 답변의 품질이 떨어지는 문제를 해결하기 위해 '프롬프트 디자인'이라는 개념을 만들었어요. 프롬프트 디자인이란, 유저의 프롬프트를 컴퓨터가 한 번 읽고 더 명확하고 간결하게 수정하는 방법이에요. 아래와 같이 작동하는 것이죠.
이 코드에 문제가 있어 > a 파일, 15번째 줄에 문제가 있어
이 기능은 기본적으로 GPT가 의도파악에 뛰어나기 때문에 가능했는데요, Cursor 팀은 제품을 만들다보니 프롬프트 효율화를 진행했음에도 답변의 품질이 떨어지거나 잘못된 답변을 하는 것을 발견하게 됩니다. 그래서 프롬프트에 우선순위를 부여하게 되는데요, 이렇게 프롬프트에 우선순위를 부여하는 개념을 Priompt라고 정의하게 됩니다.
예를 들어 '안녕 아스터야, 어제는 고마웠어. 잘 지내!'라는 문장이 있을 때, 다음과 같이 우선순위를 매길 수 있어요.
안녕 아스터야 ㅡ 중요도 중간
어제는 고마웠어 ㅡ 중요도 높음잘 지내 ㅡ 중요도 낮음
// 중요도 값을 텍스트 투명도에 대입했을 경우.
그리고 프롬프트의 길이가 길어지면 중요도가 낮은 것부터 제거하며 프롬프트 효율화를 진행해요. 또한 이 과정은 문장의 핵심문맥을 유지하는 것에 초점을 맞추기 때문에 할루시네이션 예방에도 도움이 됩니다.
이외에도 프롬프트를 마치 리액트처럼 컴포넌트화하는 등 다양한 방법으로 효율화를 진행했는데요, 너무 기술적인 이야기라 자세히 다루지는 않았어요. 다만, AI 제품을 만드는 분들을 위해 코드베이스를 공유해드릴게요!
- Priompt 바로가기
Cursor의 제작 배경
사실 Cursor를 만든 Anysphere 팀이 처음부터 Cursor를 만든 것은 아니에요. 원래는 CAD 소프트웨어로 모델링 작업을 할 때 AI가 어떤 설계 부품이 필요할지 예측해서 제공하는 프로그램을 만들려고 했거든요. 이건 Cursor의 하드웨어 버전인 것이죠. 하지만 오픈소스가 만연한 코드와는 다르게 CAD 분야에서는 충분한 데이터를 확보하는 것이 어려웠고, 특히 AI 모델이 공간적 추론을 잘하지 못하는 한계에 부딪히게 돼요. 결국 좋은 성과를 내지 못했고, 새로운 방향을 모색하죠.
이 시행착오를 거치면서 Anysphere는 스스로가 제품의 주요고객이어야 한다는 것을 깨닫게 되는데요, 그 뒤에 GPT-4에 얼리엑세스 권한을 얻게 되었고, GPT가 하드웨어와는 다르게 소프트웨어 개발에 강점이 있다는 것을 발견하게 돼요. 특히 GPT4는 코드 생성, 코드 가독성 높이기, 디버깅의 영역에서 뛰어났고요. 그렇게 Cursor가 탄생하게 됩니다. 이렇게 보니 Cursor도 만들어진지 얼마 안되었네요.
Cursor 앞으로의 방향성
현재 VScode에서 작성되는 코드의 **약 46%**는 Copilot에 의해 작성되었는데요. Cursor는 이 수치를 90% 이상으로 끌어올리는 것이 목표인 팀이에요.
그래서 Cursor가 이 목표를 달성하기 위해 계획 중인 흥미로운 UX를 몇 가지 추려봤어요.
15분 뒤를 예측하기
- 지금까지의 수정사항을 파악하고, 앞으로 15분 동안의 코드 변경 사항을 예측하고 수정할 코드를 제안. 한 번의 키로 모든 코드를 수정/삭제할 수 있는 기능
더 효율적으로 맥락 이해하기
- 사용자의 질문에 가장 관련된 정보를 즉시 파악할 수 있도록 개선. 이를 위해 50만개의 토큰을 모아 가장 관련 있는 8천 개의 토큰으로 줄이는 맞춤형 모델을 개발 중
완전히 일을 위임할 수 있는 에이전트
- 유저의 지시에 따라 테스크를 생성/수행하는 에이전트. 완전히 위임할 수 있도록 모델 개발 중
잠재적 버그 찾기
- Cursor가 항상 파일을 스캔하며 잠재적인 버그를 발견하고 제보/수정
어떤가요? 저는 제품의 기능과 로드맵을 들었을 때 ‘이걸로 뭐 만들 수 있겠다’ 싶은 상상이 드는 제품이 영감을 주는 제품이라고 생각하는데요, 개인적으로 Cursor는 최근 사용해본 AI 제품 중에 가장 큰 임팩트를 느꼈던 제품이었어요. 앞으로의 업데이트를 기대하지 않을 수가 없는 것 같네요 :)
혹시 이 글이 좋으셨다면 업보트 눌러주세요! 그리고 AI가 코딩을 어떻게 바꿀지에 대해 댓글로 생각을 공유해주세요.