# 구글 엔지니어가 말하는 DevTools AI 에이전트의 함정: 스파게티 코드에서 Rust 리팩토링까지
구글 엔지니어 Lalit Maganti는 3개월 동안 약 250시간을 투자해 syntaqlite를 개발했습니다. 이는 SQLite 도구 모음으로 parser, formatter, linter, LSP 서버를 포함합니다. Claude에 완전히 위임하는 첫 번째 접근법은 관리 불가능한 코드로 이어져 전부 폐기해야 했습니다. Rust로 전환하고 AI를 자동완성 도구로 활용하자 작동하는 0.1 릴리스를 만들어냈습니다.
첫 번째 반복: AI에 위임하고 코드 혼돈
Maganti는 최대 자동화를 목표로 시작했습니다. Claude가 설계와 구현을 맡고, 저자는 매니저 역할을 했습니다. 한 달 만에 다음을 만들어냈습니다:
- C로 작성된 Parser.
- Formatter.
- 웹 인터페이스.
- 500개 이상의 테스트.
기능적으로는 작동했지만, 검토 결과 문제가 드러났습니다:
- 함수들이 파일 곳곳에 무질서하게 흩어짐.
- 모듈이 수천 줄로 불어남.
- SQLite 소스에서 코드 추출 파이프라인이 저자 자신도 이해 못 할 정도로 복잡해짐.
코드베이스는 '스파게티 코드'가 됐습니다. 해결책: 완전 철거 후 재시작.
두 번째 반복: Rust, 수동 설계, AI 자동완성
스택을 Rust로 바꾸고 Maganti가 아키텍처를 직접 잡았습니다. Claude는 정확한 스펙에 기반한 코드 생성에만 사용됐고, 엄격한 리뷰를 거쳤습니다.
주요 관행:
- 자동화 테스트: 드라이버가 1390개의 SQLite 업스트림 테스트마다 SQL 쿼리를 syntaqlite parser와 비교 검증.
- 지속적 리팩토링: 모든 변경에 수동 리뷰 실시.
- 저널링: 저널(~4000단어), 세션 대화록, 커밋 히스토리 기록.
코어는 2월에 완성됐고, 0.1 릴리스는 3월 중순에 나왔습니다. 8년간 숙성된 프로젝트를 사이드 프로젝트로 구현한 셈입니다.
AI 에이전트 함정: 중독에서 통제력 상실까지
Maganti는 Claude 작업을 슬롯머신에 비유합니다:
- '한 번만 더 프롬프트'가 밤늦게까지 이어짐.
- 피로로 프롬프트 품질 저하.
- 코드베이스에 대한 '감각' 상실로 타인의 코드 위에 매니저가 됨.
소통이 무너졌습니다: 모호한 설명이 잘못된 해석으로 이어짐. AI는 함수/클래스 수준에서는 뛰어나지만 아키텍처, API 설계, 프로젝트 맥락에서는 약합니다.
주요 교훈
- AI는 구현을 가속화하지만 설계를 대체 못 함: 모델에 '감각'과 히스토리가 없음.
- 완전 위임은 관리 불가능한 코드로 이어짐: 수동 리뷰 필수.
- Rust + AI 자동완성 > C + 에이전트: 아키텍처가 핵심.
- 업스트림 테스트로 검증 필수 SQLite parser의 경우.
- 저널링으로 반복 속도 향상: 원샷 스토리 대신 저널 공개.
중급/시니어 개발자 추천
- 일상 작업에 AI 활용: 자동완성, 작은 부분 리팩토링.
- 아키텍처는 직접 통제: 모델이 장기 맥락 못 파악.
- 자동화 파이프라인 구현: 참조 테스트(SQLite 업스트림)와 비교.
- 세션 로그: 프롬프트, 커밋, 오류 분석.
Maganti의 접근은 보여줍니다: AI는 사이드 프로젝트를 가속하지만 규율이 필요합니다. Syntaqlite는 복잡한 DevTools에서 인간과 에이전트 균형의 사례입니다.
— Editorial Team
아직 댓글이 없습니다.