코딩 도중 탭 키 한 번으로 자동완성 기능이 얼마나 편리해졌는지 느껴본 적 있을 것입니다. 하지만 그 기능이 어떻게 작동하는지, 또 어떤 기술들이 그 뒤에 숨어 있는지는 잘 알려져 있지 않습니다. 이 글에서는 코드 자동완성 기술의 발전 과정을 되짚어보고, 어떻게 Cursor가 현존하는 최고의 탭 자동완성 모델을 갖게 되었는지에 대한 이야기를 다룹니다. 특히 TabNine부터 Babble, 그리고 Cursor까지 이어지는 주요 흐름을 따라가며 기술적 차별성과 훈련 방식, 그리고 인수합병의 배경을 분석합니다.
코드 자동완성의 시작: TabNine의 등장
TabNine의 개발자, Jacob Jackson
2018년, LLM(Large Language Model)이 대중화되기 훨씬 이전에 Jacob Jackson이라는 개발자가 TabNine이라는 코드 자동완성 도구를 만들었습니다. 당시 Jackson은 워털루 대학교 재학 중이었으며, Jane Street, Hudson River Trading, OpenAI 등에서 인턴을 거치며 개발 도구에 대한 이해를 넓혀갔습니다.
TabNine의 의미
TabNine은 코드 작성 중 다음에 올 가능성이 높은 구문이나 명령어를 예측해 자동으로 제안하는 기능을 제공합니다. 초기에는 단순한 코드 예측이었지만, 개발 생산성을 크게 높이는 혁신적인 도구로 주목받았습니다.
인수와 확장: Codota와 OpenAI
Codota의 인수
2019년 11월, TabNine은 Codota에 인수되었고 Jacob Jackson은 OpenAI로 자리를 옮겨 2년 반 동안 연구 과학자로 활동했습니다.
Supermaven 창업
이후 2022년, 그는 Supermaven이라는 회사를 창업하며 Cursor와 직접 경쟁하게 됩니다. 비록 시장 점유율 면에서는 Cursor에 미치지 못했지만, Supermaven의 자동완성 모델인 Babble은 기술적 완성도 면에서 업계 최고라는 평가를 받았습니다.
기술적 진보: Babble의 차별점
Babble vs. 기존 모델들
2024년 기준으로 대부분의 대형 언어 모델은 약 32K의 컨텍스트 윈도우를 가졌던 반면, Babble은 300K 컨텍스트 윈도우를 제공하며 **250ms의 지연 시간(latency)**을 기록했습니다. 같은 시점 Cursor 모델의 지연 시간은 1883ms였습니다.
1M 컨텍스트 윈도우의 등장
Supermaven이 인수되기 직전, Babble은 무려 100만 토큰 크기의 컨텍스트 윈도우를 자랑했습니다. 이는 당시 대부분의 모델이 128K 수준이었던 것을 고려하면 매우 혁신적인 성능입니다.
Babble의 학습 방식: 편집 시퀀스 기반
기존 자동완성 모델은 ‘FIM(Fill-in-the-Middle)’ 방식으로 훈련되어 왔습니다. 이 방식은 커서 위치에서 이후 코드 흐름을 예측하는 데에는 유용하지만, 파일의 맨 위로 이동해 새로운 패키지를 import한다거나, 다른 파일로 점프하는 등의 맥락을 반영하기엔 한계가 있습니다.
Babble은 이러한 한계를 극복하기 위해 ‘편집 시퀀스’ 기반의 학습을 선택했습니다. 이는 git diff와 유사한 방식으로, 코드 라인 자체보다는 개발자가 어떤 수정, 삽입, 삭제 등을 했는지를 바탕으로 모델을 훈련시킵니다. 이 방식은 실제 개발자가 코드 작성을 어떻게 수정해 나가는지를 보다 정밀하게 반영할 수 있어 높은 정확도의 자동완성을 가능하게 합니다.
Cursor와 Babble의 만남
Cursor의 입장
Cursor는 자체 에디터를 보유하고 있었기에, 사용자의 입력, 수정, 취소 등 전체 개발 흐름을 직접 수집할 수 있는 강점을 가지고 있었습니다. 하지만 한동안 자동완성 모델 성능에서는 Babble에 뒤쳐졌습니다.
전략적 인수
이후 Cursor 팀은 Jacob Jackson과의 관계를 통해 Supermaven의 인수를 성사시켰고, Babble 모델을 Cursor에 통합하면서 자동완성 기술의 선두주자로 올라섰습니다.
Cursor는 이미 방대한 고객 기반을 보유하고 있었고, 이로 인해 **고품질 학습 데이터를 지속적으로 확보할 수 있는 ‘데이터 모터(data moat)’**를 형성했습니다. 이는 모델 성능을 꾸준히 개선하고 유지하는 데 큰 역할을 합니다.
TabNine에서 시작된 코드 자동완성 기술은 Babble이라는 고도화된 모델을 거쳐 Cursor의 손에 들어오며 비약적인 발전을 이루었습니다. 단순한 코드 완성을 넘어, 개발자의 의도와 흐름을 이해하는 수준으로 진화한 것입니다.
기술적 성능뿐 아니라, 어떻게 학습하고 어떤 데이터를 기반으로 개선되는지가 자동완성 기술의 핵심 경쟁력이 되고 있다는 점은 시사하는 바가 큽니다. 앞으로 이러한 기술은 단순 보조 도구를 넘어, 개발자의 사고방식과 개발 습관을 구조적으로 바꿔나갈 것으로 기대됩니다.
https://www.coplay.dev/blog/a-brief-history-of-cursor-s-tab-completion
A Brief History of Cursor's Tab Completion - Coplay - Your Unity Copilot
Seamlessly create, customize, and deploy AI agents with Coplay. Cutting-edge intelligence frameworks, optimized performance, and an intuitive developer experience—all within your Unity environment.
www.coplay.dev
'인공지능' 카테고리의 다른 글
오픈소스인데도 이 정도 성능? 엔비디아의 코드 추론 모델 ‘OCR’이 놀라운 이유 (0) | 2025.05.12 |
---|---|
Cursor를 넘는 코드 코파일럿? Cline이 조용히 바꿔놓은 게임의 판도 (0) | 2025.05.12 |
CURSOR-이젠 버그도 리팩토링도 대신 해준다? Background Agent의 미래형 개발 자동화 체험기 (0) | 2025.05.12 |
낯선 GitHub 코드도 AI가 설명해준다? - AI Codebase Knowledge Builder로 오픈소스 튜토리얼 자동 생성하기 (0) | 2025.05.12 |
업무 효율을 바꾸는 도구, Fellou: 크로스 플랫폼 자동화와 딥서치의 미래 (0) | 2025.05.12 |