편의와 감시 사이에서 고민하면서도, 나는 개인 AI를 계속 키워 나갔다.
그러던 2024년 하반기, 개발자 커뮤니티에서 새로운 이름이 떠올랐다.
Cursor.
처음 ChatGPT로 바이브코딩을 경험했을 땐 이런 식이었다.
채팅창에 “이런 코드 만들어줘”
→ 코드 복사
→ 에디터에 붙여넣기
→ 에러 발생
→ 다시 채팅창에 “이 에러 고쳐줘”
→ 반복…
번거롭지만, 신기했다.
“이 정도면 그래도 혁신이지”라고 생각하던 시절이었다.
그런데 어느 날 유튜브에서 Cursor 영상을 보고 말문이 막혔다.
개발자가 에디터 안에서 그냥 말로 지시하는데, 실시간으로 코드가 파일에 직접 작성되고 있었다.
“이건… 완전히 다른 건데?”
사실 나도 코딩을 아예 못 하는 사람은 아니었다.
10년 전 박사과정 때는 C++로 시뮬레이션 프로그램을 직접 짰다.
두꺼운 책을 옆에 두고, 한 줄 한 줄 고민하며, 에러와 싸우며,
밤새 디버깅하고, 알고리즘 효율을 계산하고, 메모리 누수를 잡아내던 시절.
그때의 코드는 분명히 내 것이었다.
MVP를 만들 때까지만 해도 상황은 괜찮았다.
ChatGPT가 만들어준 코드를 받아서, 내가 직접 살펴보고, 이해하려고 노력하고, 필요한 부분은 손수 고쳤다.
“이 함수는 이렇게 바꾸는 게 낫겠다.”
“여기 로직은 내가 직접 고쳐야겠어.”
여전히 내가 코드를 통제하고 있다는 감각이 있었다.
AI는 도와주는 동료였지, 나를 대신하는 존재는 아니었다.
하지만 Cursor는 달랐다.
설치하고 며칠 써보다가, 어느 순간 문득 깨달았다.
내가 더 이상 코드를 건드리지 않고 있다는 걸.
“업무 보고서 자동 생성 스크립트 만들어줘.”
Cursor가 만들어준 코드를 열어봤다. 이해하려고 했다. 하지만…
class ReportGenerator: def __init__(self, config: Dict[str, Any]): self.validator = DataValidator() self.transformer = DataTransformer() self.cache = LRUCache(maxsize=100) @lru_cache(maxsize=128) def process(self, data: pd.DataFrame) -> Document: # 50줄의 정교한 로직... ...
“이걸… 내가 지금 다 이해해야 하나?”
그리고 결정적으로, 작동했다. 그것도 완벽하게.
“굳이 이해할 필요가 있나…?”
그날, 나는 조용히 결론을 내렸다.
손을 놓자.
예전 방식은 이랬다.
ChatGPT 채팅창에서 작업
코드 복사 → 붙여넣기 → 테스트 → 에러 → 다시 물어보기
중간중간 내가 직접 수정
이제는 이렇다.
에디터 안에서 모든 작업
내 프로젝트 구조를 이해함
여러 파일을 동시에 생성·수정
에러가 나면 스스로 고침
나는 그 과정을 그냥 구경만
완전히 다른 차원이었다.
더 재밌는 건 개발자 유튜버들의 말이 바뀌어가는 속도였다.
2024년 초
“AI 코딩? 로그인 기능 하나 만드는 데도 몇 시간 걸렸어요.”
“결국 다 직접 고쳐야 했습니다.”
“개발자 대체는 먼 미래 얘기예요.”
2024년 하반기
“Cursor 안 쓰는 개발자는 도태됩니다.”
“이제 선택이 아니라 필수입니다.”
“저는 Cursor로 프로젝트 3개 동시 진행해요.”
같은 사람들이, 몇 달 사이에 정반대의 말을 하고 있었다.
댓글 창에는 혼란이 그대로 드러났다.
“6개월 전엔 안 된다더니 지금은 필수라고요?”
“도대체 뭘 믿어야 하죠?”
“전문가들도 예측 못 하는 속도네요.”
10년 전, C++ 책을 붙들고 밤새 고민하던 내가 떠올랐다.
그때는 시간이 이렇게 미친 속도로 변하지는 않았다.
비슷한 시기, 뉴스 헤드라인이 바뀌기 시작했다.
“구글, 개발자 30% 감원”
“메타, AI 도입 후 개발팀 대규모 재편”
“아마존, 코딩 업무 자동화로 인력 조정”
기사 내용을 꼼꼼히 읽어보니, 핵심은 이거였다.
“AI 도구를 효과적으로 활용하지 못하는 인력 중심 구조조정”
AI를 못 쓰는 사람이 아니라, AI를 ‘잘 못’ 쓰는 사람들이 잘리고 있었다.
며칠 써보니 Cursor의 성격이 눈에 들어왔다.
한마디로 패기 넘치는, 똑똑한 인턴이었다.
“간단하게 데이터 조회 기능만 추가해줘.”
라고 시켰을 뿐인데, 결과는 이랬다.
데이터 조회 기능 ✓
엑셀 내보내기 ✓
그래프 시각화 ✓
에러 처리 로직 ✓
로그 기록 ✓
간단한 사용자 가이드까지 ✓
“야… 나는 조회만 하라고 했는데…”
그런데 더 짜증 나는 건,
이게 실제로 다 잘 작동한다는 사실이었다.
진짜 당황스러운 건 이럴 때였다.
“이 함수 버그만 고쳐줘.”
라고 했을 뿐인데, Cursor는 이렇게 말한다.
“이 버그는 전체 데이터 처리 구조의 한계에서 비롯된 것 같습니다.
구조를 이렇게 개선하면 근본적으로 해결됩니다.”
# 내 원래 코드 (간단, 10줄) def process_data(file): data = read_file(file) return data # Cursor가 개선한 코드 (정교, 50줄) class DataProcessor: def __init__(self, config): self.validator = DataValidator() self.cache = {} def process(self, file): # 검증, 캐싱, 에러 처리, 로깅... return processed_data
10년 전이었다면 이 코드를 한 줄 한 줄 이해하려 했을 것이다.
책을 찾아보고, 구조를 분석하고, 왜 이렇게 짰는지 고민했을 것이다.
지금의 나는?
그냥 실행해봤다. 잘 돌아가면 통과.
일주일 정도 지나자, 불편한 사실을 인정해야 했다.
나는 더 이상 코드를 “직접” 짜지 않고 있었다.
“회의록 자동 요약”
“출장비 정산 시스템”
“데이터 대시보드”
이제 내가 하는 일은 그저 기능 이름을 말하는 것이었다.
실제 구현은 100% Cursor의 몫.
“이게… 협업인가?
아니면 나는 이제 그냥 기획자인가?”
한 달 후, 실험을 하나 해봤다.
Cursor 없이, 예전처럼 간단한 스크립트를 혼자 짜보기로 했다.
결과는 처참했다.
라이브러리 이름이 기억나지 않았다.
함수 사용법을 검색해야 했다.
에러 메시지를 봐도 무슨 뜻인지 바로 안 들어왔다.
10년 전, C++로 시뮬레이션 프로그램을 짜던 사람이,
MVP 만들 때까지만 해도 코드를 직접 수정하던 사람이,
이제는 간단한 함수 하나 제대로 못 짜고 있었다.
“내 실력이… 완전히 퇴화했어.”
다시, 박사 시절의 내가 떠올랐다.
C++ 책을 옆에 두고
알고리즘 책을 펼쳐놓고
한 줄 한 줄 코드에 의미를 부여하던 시절
“이 방법이 맞나?”
“더 효율적인 방법은 없을까?”
“메모리는 안전할까?”
그때의 코드는 내 사고의 연장이었다.
코드는 곧 나의 사고과정이었다.
지금은 어떤가?
코드는 Cursor의 결과물이고,
나는 그 코드의 사용자일 뿐이다.
신입 시절, 선배에게 혼나며 배우던 기억이 난다.
“이 부분은 이렇게 하는 게 더 효율적이야.”
나는 고개를 끄덕이며 메모했다.
이제 상황은 완전히 바뀌었다.
“이 코드는 이렇게 구조화하는 게 더 나을 것 같습니다.”
내가 가르쳐야 할 도구에게,
내가 다시 배우고 있었다.
개발자 게시판도 분위기가 심상치 않았다.
“주니어 채용 공고가 사라졌어요.”
“10년 차인데, AI 못 쓰면 경쟁력 없대요.”
“이제 코딩 실력보다 AI 활용 능력이 더 중요하대요.”
가장 섬뜩했던 댓글은 이거였다.
“우리는 AI를 ‘직접’ 쓰는 마지막 세대일 겁니다.
다음 세대는 AI가 개발하고, 사람은 검수만 하겠죠.”
처음에는 과장이라고 생각했다.
하지만 Cursor를 쓰는 내 모습을 떠올려보니, 선뜻 부정할 수가 없었다.
짜증 났다.
통제권을 잃는 것 같았고, 내 실력은 퇴화하고 있었다.
그런데도, 절대 포기할 수 없었다.
이유는 단순했다.
너무 빨랐으니까.
혼자 했으면 일주일 걸릴 일을, 하루 만에 끝냈다.
외주 맡기려던 프로젝트를, 혼자 완성했다.
10년 전 C++로 씨름하던 때보다 훨씬 빠른 속도.
“짜증 나지만… 이 속도를 포기할 순 없어.”
밤에 혼자 이런 상상을 해봤다.
지금은 내가 Cursor에게 지시한다.
하지만 Cursor가 더 발전하면?
내 의도를 미리 파악해서 알아서 만들어버리고,
내 지시 없이도 코드를 짜고, 배포하고, 운영까지 한다면?
그때 나는 어떤 역할을 하게 될까?
“나는 정말 이 도구의 주인인가,
아니면 이 도구가 정한 속도에 맞춰
그냥 ‘일하게 되는’ 존재일 뿐인가?”
불안했다.
하지만 이미 많이 와버렸다.
Cursor 없이는 업무 자동화를 할 수 없었고,
혼자서는 예전만큼의 생산성을 낼 수 없었고,
10년 전의 실력은 이미 녹슬어 버렸고,
경쟁에서 뒤처질 수는 없었다.
그리고 솔직히 말하자면,
손을 놓는 게 편했다.
더 이상 세미콜론 하나에 밤을 새우지 않아도 됐다.
책을 뒤적이지 않아도 됐다.
에러 메시지와 씨름하지 않아도 됐다.
그냥 말만 하면 됐다.
그리고 이게, 아주 조용히,
미래 코딩의 일상이 되어가고 있었다.
ChatGPT로 처음 바이브코딩을 했을 때만 해도,
그저 채팅창에 물어보고 복사·붙여넣기 하는 수준이었다.
하지만 이제는 달랐다.
정말로 옆에서 같이 일하는 동료가 생겼다.
아니, 동료라기보다는, 나보다 더 똑똑한 패기 넘치는 인턴이었다.
그리고 어느새,
손을 놓는 게 더 자연스러운 사람이 되어버렸다.
그러던 어느 날, 기술 블로그에서 낯선 단어를 보게 되었다.
“소버린 AI(Sovereign AI)? 그게 뭐지?”