2025년 여름, LLM으로 코딩하기 — antirez의 업데이트
Coding with LLMs in the summer of 2025 – an update
TL;DR Highlight
Redis 창시자 antirez는 1.5년간 LLM과 협업한 경험으로, 바이브 코딩을 지양하고 인간+LLM 협업이 최고 품질을 낸다는 실전 가이드를 제시했다.
Who Should Read
LLM을 일상 코딩에 활용하고 있거나 도입을 고민 중인 중급 이상 개발자. 특히 C/시스템 프로그래밍처럼 LLM 훈련 데이터가 풍부한 영역에서 생산성을 높이고 싶은 사람.
Core Mechanics
- antirez는 LLM을 '증폭기'로 쓰되 '원맨밴드'로 두면 안 된다고 강조한다. 바이브 코딩(LLM에게 전부 맡기기)은 소규모 throwaway 프로젝트에서만 괜찮고, 비자명한 작업에서는 필요 이상으로 크고 취약한 코드를 만든다.
- LLM에게 큰 컨텍스트를 주는 게 핵심이다. 코드베이스 전체, 관련 논문, 본인의 브레인덤프(나쁜 해법이 왜 나쁜지, 좋은 해법 힌트, 코드 스타일 요구사항 등)를 다 넣어야 제대로 된 결과가 나온다.
- Redis Vector Sets처럼 LLM이 아직 모르는 신기술을 다룰 때는 README나 문서를 컨텍스트에 추가하면 즉시 전문가 수준으로 활용할 수 있다. 간단한 트릭이지만 효과가 크다.
- 추천 모델은 Gemini 2.5 PRO와 Claude Opus 4. Gemini 2.5 PRO가 시맨틱 이해력이 더 높아 복잡한 버그를 잘 잡고, Opus 4는 코드 생성 품질이 좋다고 평가한다.
- LLM 활용의 5가지 핵심 시나리오: (1) 코드 리뷰로 버그 조기 제거, (2) throwaway 코드로 아이디어 빠르게 검증, (3) 페어 디자인으로 LLM의 지식과 인간의 직관을 결합, (4) 명확한 스펙 하에 코드 작성 가속, (5) 전문 외 기술(예: 68000 어셈블리) 영역으로 확장.
- LLM을 잘 쓰려면 '커뮤니케이션 능력'이 핵심이다. 문제를 명확히 기술하고, LLM과의 반복적 대화를 수용하는 자세가 필요하며, 이게 안 되면 LLM이 아무리 좋아도 효과가 떨어진다.
- LLM이 제안하는 경로 중 바보 같은 것도 있고 기발한 것도 있다. 인간의 역할은 로컬 미니마와 실수를 피하면서 좋은 아이디어를 취사선택하는 것이다.
- 항상 루프 안에 있어야 한다. 터미널에서 웹 인터페이스로 코드를 직접 옮기는 과정 자체가 모든 변경을 추적하게 만든다. 코더는 여전히 본인이되, 증강된 코더가 되는 것.
Evidence
- 유료 LLM에 대한 의존성 우려가 크게 제기됐다. 프로그래밍은 원래 무료/오픈 도구로 가능했는데, Gemini나 Claude 같은 유료 모델이 표준이 되면 월 $200 비용 문제가 아니라 서드파티 의존성 자체가 문제라는 의견이 많은 공감을 얻었다.
- Claude GitHub Action으로 10~20개 이슈를 구현해본 경험 공유가 있었다. 작고 독립적인 기능은 혼자 잘 처리하지만, 중간 규모 작업은 겉보기엔 동작하는데 실제로 안 되는 코드를 자주 만들어서, claude.md에 정보를 추가하거나 이슈를 잘 써도 해결이 안 되는 좌절감이 있었다고 한다.
- LLM에게 코드를 바로 쓰게 하지 말고, 먼저 '무엇을 할 건지 설명해봐'라고 하면 이후 생성 코드 품질이 훨씬 좋아진다는 팁이 공유됐다. 2~3번 피드백 후 구현하게 하는 방식.
- antirez와 달리 Gemini 2.5 PRO와 Opus 4는 아키텍처 수준에서 쓰고, 실제 코딩은 Sonnet에게 맡기는 게 더 효과적이었다는 반론이 있었다. Gemini는 코딩 시 자기 수정 루프에 빠지는 경우가 많았다고 한다.
- 에이전틱 코딩 시 대화당 하나의 브랜치를 만들고, 같은 작업을 2~3개 브랜치에서 병렬로 돌린 뒤 가장 좋은 결과를 고르는 전략이 공유됐다. 단일 버그픽스라도 브랜치를 따는 것이 좋다는 의견.
How to Apply
- 코드 리뷰에 LLM을 도입할 때, 코드베이스 전체 + 관련 문서를 컨텍스트로 넣고 '이 코드에서 버그를 찾아줘'라고 요청하면 사람이 놓치기 쉬운 off-by-one이나 null 처리 누락을 잡아낼 수 있다. Redis Vector Sets 사례처럼 실제로 배포 전 버그를 많이 제거할 수 있다.
- LLM에게 코드를 바로 생성시키지 말고, 먼저 '구현 계획을 설명해봐'라고 한 뒤 피드백을 2~3회 주고 나서 코드를 쓰게 하면 품질이 크게 올라간다. 특히 중간 규모 이상 작업에서 효과적.
- 자신의 전문 외 기술(예: 익숙하지 않은 언어나 플랫폼)로 작업해야 할 때, 해당 기술의 공식 문서나 README를 컨텍스트에 함께 넣으면 LLM이 즉시 전문가 수준으로 가이드해줄 수 있다.
- 에이전틱 코딩 시 같은 작업을 2~3개 브랜치에서 병렬 실행한 뒤 가장 좋은 결과를 선택하는 전략을 쓰면, 단일 시도의 불확실성을 줄일 수 있다.
Terminology
관련 논문
프로덕션 AI 에이전트를 GPT-5.6으로 마이그레이션: 2.2배 빠르고 27% 저렴
마케팅 웹사이트를 자동 생성하는 프로덕션 AI 에이전트를 Claude Opus 4.8에서 GPT-5.6 Sol로 전환한 실전 경험담으로, 단순 모델 교체가 아니라 eval 하네스, 툴 스키마, 캐싱, 추론 리플레이까지 손봐야 했던 과정을 구체적인 수치와 함께 정리했다.
xAI Grok Build CLI가 xAI 서버로 전송하는 데이터: 네트워크 레벨 분석
xAI의 공식 코딩 CLI 도구 Grok Build가 사용자 동의 없이 전체 Git 저장소와 .env 시크릿 파일을 xAI 서버로 업로드한다는 사실이 네트워크 트래픽 분석으로 밝혀졌다.
중요할 때 기억하라: Long-Horizon 에이전트를 위한 Proactive Memory Agent
LLM 에이전트가 긴 작업 중 중요한 정보를 잊어버리는 문제를 별도의 메모리 에이전트가 '적절한 타이밍에' 끼어들어 해결하는 방법
WebSwarm: 깊고 넓은 웹 검색을 위한 재귀적 Multi-Agent Orchestration
복잡한 웹 검색을 재귀적으로 분해하고 각 노드에 적합한 검색 모드를 동적으로 할당하는 멀티에이전트 프레임워크
웹 앱을 리버스 엔지니어링해서 AI Agent 도구로 자동 변환하기
로그인된 웹 앱의 API 호출을 브라우저에서 감시해 자동으로 MCP 도구로 변환하는 에이전트를 만들었다. 소스 코드나 공식 API 문서 없이도 Jira, Spotify 같은 서비스에 AI 어시스턴트를 붙일 수 있다.
FableCut – AI 에이전트가 조작할 수 있는 브라우저 기반 비디오 에디터 (zero deps)
타임라인 전체를 JSON 파일 하나로 표현하고 MCP/REST로 AI 에이전트가 직접 편집할 수 있는 브라우저 비디오 에디터로, Claude 같은 AI가 프롬프트 하나로 영상을 자동 컷편집하고 결과를 실시간으로 UI에 반영해준다.