0
AI 바이브 코딩에 Go를 쓰는 이유 — Rust도 Python도 아닌
backend
요약
기사 전체 정리
AI가 코드의 90%를 쓰는 시대, Go가 바이브 코딩 최적의 언어라는 주장
Python: "실행된다"는 건 품질 기준이 아님
- 타입 안전성이 사실상 없음. 타입 힌트는 선택사항이고, 선택사항이라는 건 없는 거나 마찬가지임
- AI가 하루에 4,000줄 쓰면 전부 "실행"은 됨. 근데 그 안에 딕셔너리 키 오타, None이 함수 3개를 관통해서 전파되는 버그가 숨어 있음
- 버그가 프로덕션에서 터짐. AI가 못 써서가 아니라, AI와 프로덕션 사이에서 "안 돼"라고 말해주는 게 아무것도 없기 때문임
- mypy? strict 모드로 100% 커버되는 Python 프로젝트를 본 적이 없다는 거임. 대부분 20%만 커버하고 나머지 80%는
Any임 - 프로토타이핑이 빠른 것과 프로덕션 장애가 빠른 것은 같은 속성이라는 냉정한 지적
Rust: 맞는 말만 하는데 너무 많이 함
- 빌림 검사기는 진짜 버그를 잡음. 타입 시스템도 엄격함. 컴파일러가 "안 돼"라고 할 때 틀린 적이 없음
- 문제는 컴파일러가 너무 자주 "안 돼"라고 한다는 것
- AI가 생성한 Rust 코드에 빌림 검사기가 싸움을 걸면, 인간의 "미적 감각 예산(taste budget)"을 아키텍처 대신 라이프타임 어노테이션에 써야 함
.clone()추가,Arc<Mutex<>>래핑 같은 건 언어가 만든 문제를 인간이 해결하는 꼴임
Rust의 비동기 세금
- Go는
go func()한 줄이면 끝. goroutine으로 HTTP 핸들러, NATS 컨슈머, 파일시스템 워처, SSE 스트림 전부 다 돌림 - Rust는 tokio를 골라야 하고, 모든 크레이트가 tokio 호환인지 확인해야 함. 하나가 async-std 쓰면 런타임이 2개가 됨
Pin<Box<dyn Future>>,Arc<Mutex<>>같은 걸 AI한테 설명하느라 인간의 주의력을 낭비하게 된다는 거임
Rust 생태계의 취약성
- 3개월 뒤에 돌아와서
cargo update돌리면 들어본 적도 없는 크레이트의 트레이트 바운드가 바뀌어서 빌드가 깨짐 - Go의 하위 호환성 약속은 진짜임. 2024년에 고른 의존성이 2026년에도 컴파일됨. 언어, 표준 라이브러리, 생태계 문화 전반에서 하위 호환성을 진지하게 지킴
Go의 5단계 필터 프레임워크
저자가 제시하는 "기계와 프로덕션 사이의 5단계":
- 컴파일러: 타입 불일치, 미사용 임포트 등 명백한 오류 포착. 싸고 즉각적임
- 타입 시스템: 구조적 오류 포착. 함수가
WikiLinkResolver를 기대하는데func(string) string을 넘기면 잡아냄 - 명시적 에러 처리:
if err != nil을 파일당 400번 씀. Go에는except: pass가 없으니 AI도 에러를 반드시 처리해야 함 - 강제된 단순성: 루프 방식 하나, 포맷 방식 하나. AI가 균일한 코드를 생성할 수밖에 없어서 인간이 한눈에 읽을 수 있음
- 인간: 가장 비싼 레이어. "다크 모드 대응해", "커버 상단이 잘렸어" 같은 다섯 단어짜리 교정만 하면 됨
핵심은 Go가 1~4단계에서 걸러낼 건 다 걸러주니까, 인간은 5단계에만 집중하면 된다는 것. Python은 전부 인간한테 보내고, Rust는 인간의 문제 + 언어 자체의 문제까지 같이 보낸다는 비교임.
실전 증명: 한 세션에 풀스택 사이트 완성
- 3개 도메인 라우팅, 애니메이션 비디오 커버, 오디오 플레이어, 다크 모드, RSS 피드, 소셜 카드, 라이트박스까지 갖춘 블로그
- 7 커밋, 테스트 실패 0건, 바이너리 1개
- 배포 스크립트 30줄:
go build→scp→systemctl restart. 끝임 - Python이면 virtualenv나 Docker 필요하고, Rust면 400개 크레이트 다운로드에 빌드 4분 걸림
- Go는 바이너리 하나 복사하면 끝.
COPY binary /usr/local/bin/한 줄임
결론: Go는 최고의 언어가 아니라 최고의 필터
"기계가 코드의 90%를 쓸 때, 언어는 쓰는 도구가 아니라 잡아내는 도구임"
- Python은 아무것도 안 잡음
- Rust는 문제가 아닌 것까지 전부 잡음
- Go는 중요한 것만 잡고 비켜줌
컴파일러가 바닥, 인간이 미적 감각, 바이너리가 증거라는 깔끔한 정리임.
댓글
댓글
댓글을 불러오는 중...