2026년, AI 기반 코드 개발 툴의 환상과 현실을 조명합니다. 파이썬 프로젝트를 러스트로 이식하며 겪은 시행착오와 교훈을 통해 AI 툴의 진정한 가치를 탐구합니다.
2026년 현재, AI 기반 코드 개발 툴은 마법처럼 느껴지다가도, 예상치 못한 순간 환상을 깨뜨립니다. AI 에이전트가 코드베이스를 놀랍게 분석하다가 갑자기 "CoreCoreCoreCore" 같은 이상한 문자열을 쏟아내는 경험은 흔합니다. 개발자들은 이제 AI 툴이 잘 하는 일과 못하는 일, 그리고 하면 안 되는 일에 대해 더 확실한 감을 갖게 되었습니다. 이론적으로 AI 툴은 테스트 생성, 리팩터링, 문서용 예제 작성 등 단조로운 작업을 통해 개발자 역량을 강화하지만, 실제로는 이러한 "역량 강화"에 대가가 따르는 경우가 많습니다. AI가 초반에 쉽게 해준 일이 나중에 상황을 더 어렵게 만들기도 합니다.
본 글에서는 AI 툴을 사용하여 파이썬 프로젝트를 러스트로 이식하는 과정을 통해 AI 코딩 툴의 현실적인 면모를 탐구합니다. 클로드 소넷 4.6과 구글의 안티그래비티 IDE를 활용한 경험을 공유합니다.
AI 코드 이식: 파이썬에서 러스트로
이식 대상은 필자의 파이썬 기반 블로깅 시스템이었습니다. 정적 HTML 생성 및 워드프레스 유사 인터페이스를 제공하는 서버 앱으로, 기능이 비교적 적었습니다. 러스트 선택은 컴파일 시점의 정확성과 안전성 보장이 AI 이식 과정에 긍정적일 거라는 기대 때문이었습니다. AI 툴은 클로드 소넷 4.6과 구글 안티그래비티 IDE를 사용했습니다. 프로젝트엔 자바스크립트 프론트엔드도 있어 혼합 코드베이스 처리 능력도 시험했습니다.
첫 지시와 초기 계획의 한계
클로드에게 파이썬 블로깅 시스템의 러스트 마이그레이션 계획을 지시했습니다. 클로드는 코드를 검토 후 Axum, SeaORM, Tera, Tokio 등 러스트 스택 구성 요소를 추천했습니다. 파이썬 멀티프로세싱을 Tokio의 비동기 작업으로 대체하는 등, 라이브러리 대체와 동작 매핑은 순조로웠습니다. 원본이 동적 가져오기에 의존 않고 클로드가 ‘행동’을 분석해 재구현한 점도 긍정적이었습니다. 다만, 초기 계획에 새 데이터베이스용 플레이스홀더 데이터 생성이 누락되어, 추가 지시로 보완했습니다.
예상치 못한 누락과 반복의 시작
초기 순조로움과 달리, 클로드가 핵심 페이지 렌더링 로직은 구현했지만 관리자 패널(로그인, 게시물 편집/관리)을 완전히 누락했습니다. 명시적 지시 부족도 있었으나, AI가 사용자 접점을 간과한 점은 아쉬웠습니다. 누락 지적 후 클로드는 보틀 템플릿 마이그레이션 포함 관리자 UI 계획을 다시 생성했습니다. 이때부터 ‘프롬프트-생성-테스트-재프롬프트’ 사이클이 시작되었습니다. UI 구현 요청, 테스트, 오류/누락 발견, 수정 요청 과정이 반복되며 로그인부터 사용자 로직 문제까지 줄줄이 발생했습니다.
마법이 깨지는 순간: 크고 작은 오작동
클로드와의 마이그레이션은 AI 툴 없이 재작성하는 것과 유사하게 가다 서다를 반복했습니다. 그러나 클로드가 간혹 엉뚱하게 움직여 상당한 개입이 필요했습니다. 한번은 관리자 페이지 구현 지시 중 콘솔에 수백 라인 "CoreCoreCoreCore…"를 출력했고, 이후 응답 끝에 "Core"가 무작위로 나타났습니다. 다음 날 세션 재시작 후 문제는 사라졌지만, 모든 출력 결과를 일일이 확인하게 됐습니다. 클로드는 또한 실행 환경에 대한 검증되지 않은 가정을 세우고(예: bash 대신 PowerShell) 문제 발생 시 뒤늦게 수정하는 패턴을 보였습니다. 이는 AI 툴의 흔한 경향입니다.
AI 코드 개발, 세 가지 핵심 교훈
클로드와 밀고 당기기 끝에 원본 앱 기능을 러스트로 마이그레이션하며 세 가지 교훈을 얻었습니다. 첫째, 원본과 대상 언어에 대한 깊은 이해가 필수적입니다. AI 툴이 돕더라도 개발자가 두 언어에 능숙하지 않다면 생성 코드의 문제를 인식하고 해결하기 어렵습니다. 자동화는 경험을 보완할 뿐 대체하지 못합니다. 둘째, 반복을 예상해야 합니다. AI 지시가 명확해도 첫 시도에 완벽한 결과를 기대하기 어렵습니다. 다른 언어로 재구현 시 시행착오와 반복은 불가피합니다. 셋째, 생성 코드 책임은 전적으로 개발자에게 있습니다. AI가 코드를 생성했어도 각 단계 승인 및 최종 결정은 개발자의 몫입니다. 단순히 코드가 실행된다고 안심하지 말고, 대상 언어의 메타포와 관용구 활용까지 고려해야 합니다.