AI가 코드를 짜주는 시대다. 이제 개발자는 “코드를 작성하는 사람”에서 “AI와 함께 문제를 해결하는 사람”으로 변하고 있다.
하지만 빠른 속도와 편리함 뒤에는 놓치기 쉬운 함정이 있다. Google Chrome 팀에서 13년간 근무한 엔지니어링 리더 Addy Osmani는 “AI 도구는 강력하지만, 품질과 신뢰를 유지하는 일은 여전히 인간의 몫”이라고 강조한다.
이 글에서는 Addy Osmani의 강연 *‘Vibe Coding을 넘어’*를 바탕으로, AI 코딩 시대의 새로운 개발 패러다임과 인간 엔지니어가 가져야 할 사고방식을 정리한다.
1. Vibe Coding이란 무엇인가 – 빠르지만 불완전한 흐름
Vibe Coding은 AI와의 창의적 ‘흐름(vibe)’에 몰입하는 코딩 방식이다.
개발자는 AI에게 고수준의 명령(프롬프트)을 내리고, 세부 코드는 AI가 작성한다. 이 방식은 빠른 프로토타이핑과 아이디어 실험에는 매우 효율적이다.
하지만 문제는 프로덕션 단계에서 드러난다.
Vibe Coding은 속도를 위해 정확성과 유지보수성을 희생하기 쉽다. 코드 품질, 보안, 아키텍처의 일관성이 떨어지며, 나중에 전체를 다시 작성해야 하는 경우도 많다.
Addy는 “Vibe Coding은 아이디어를 시각화하기 위한 도구일 뿐, 실제 제품을 만들기 위한 방법론은 아니다”라고 말한다.
2. AI 보조 엔지니어링 – 도구가 아닌 협력자로서의 AI
AI 보조 엔지니어링(AI-assisted engineering)은 단순히 AI에게 코드를 ‘시키는 것’이 아니라, AI를 강력한 협력자로 활용하는 접근법이다.
이 방식에서 AI는 반복적이고 보일러플레이트성 작업, 디버깅, 배포 자동화 등에서 엔지니어를 돕는다. 그러나 아키텍처 설계, 코드 검토, 보안 점검 등 핵심 의사결정은 여전히 인간의 책임이다.
Addy는 이를 “Force multiplier”, 즉 인간의 역량을 증폭시키는 도구라고 표현한다.
결국 AI가 작성한 코드는 완전히 이해할 수 있는 수준에서만 리포지토리에 커밋해야 한다는 것이 그의 원칙이다.
3. ‘70% 문제’ – 나머지 30%가 진짜 실력이다
대규모 언어 모델(LLM)은 애플리케이션의 약 70%를 매우 빠르게 생성할 수 있다.
하지만 나머지 30%는 여전히 인간의 손을 필요로 한다.
이 마지막 30%는 단순한 마무리가 아니다.
여기에는 보안 취약점 제거, 유지보수성 확보, 기능 간 일관성, 그리고 사용자 경험 설계가 포함된다.
즉, 이 영역이 바로 숙련된 엔지니어의 진짜 경쟁력이다.
Addy는 이를 “Two steps back” 패턴이라고 부른다. AI가 한 번의 잘못된 프롬프트로 전체 기능을 다시 작성하는 등, 오히려 개발 속도를 늦출 수도 있다는 것이다.
따라서 LLM의 출력을 그대로 받아들이지 말고, 반드시 검증과 테스트를 통해 품질을 보증해야 한다.
4. 명세 기반 개발과 테스트의 중요성
Addy는 “AI를 효과적으로 사용하려면 명확한 계획이 먼저 있어야 한다”고 강조한다.
그는 이를 **명세 기반 개발(Spec-driven Development)**이라 부른다.
즉, 무엇을 만들지 정의하고, 이를 기반으로 AI에게 작업을 요청해야 한다는 것이다.
명세가 불분명하면 AI는 엉뚱한 결과를 내놓고, 그 책임은 결국 인간에게 돌아온다.
또한 테스트 작성은 필수적이다.
최신 모델조차 완벽하지 않으며, 테스트를 통해만 코드가 의도대로 작동하는지 확인할 수 있다.
테스트는 단순한 버그 검출 도구가 아니라, AI 코드에 대한 인간의 이해를 보장하는 과정이다.
5. 비판적 사고와 코드 이해력 – AI 시대의 생존 조건
AI 도구가 발전하면서 개발자는 점점 ‘검토하지 않고 수용하는’ 습관을 들이기 쉽다.
하지만 Addy는 이것이 가장 위험한 지점이라고 경고한다.
AI가 빠르게 코드를 제안할수록, 인간의 비판적 사고력과 코드 이해력은 더 중요해진다.
AI의 제안을 그대로 받아들이는 대신,
- 왜 이런 구조로 작성했는지,
- 다른 접근법이 가능한지,
- 이 코드가 시스템 전체에 어떤 영향을 주는지
를 스스로 설명할 수 있어야 한다.
결국 “코드를 작성하지 않아도 코드를 이해하는 능력”이 AI 시대의 핵심 경쟁력이다.
6. 새로운 워크플로우 – 비동기 에이전트와 병렬 코딩
최근에는 백그라운드에서 코드를 작성하는 비동기 에이전트(Jewels, Devin, Codex 등)가 등장하고 있다.
이들은 테스트 자동화, 버전 마이그레이션, 간단한 UI 변경 같은 작업을 스스로 수행한다.
하지만 이런 환경일수록 인간의 감독이 중요하다.
모든 에이전트의 작업을 오케스트라처럼 조율해야 하며, 지나친 자동화는 오히려 품질 리스크를 키운다.
AI가 코드를 짜더라도, 최종 책임은 여전히 인간 엔지니어에게 있다.
7. 평생 학습자로서의 엔지니어 – 변하지 않는 원칙
Addy는 “AI 시대에도 변하지 않는 단 하나의 진리는 ‘평생 학습자(Lifelong learner)’가 되어야 한다는 것”이라고 말한다.
새로운 모델, 프레임워크, 도구가 계속 등장하는 시대에
가장 큰 자산은 학습에 대한 개방성이다.
AI는 개발자의 하한선을 끌어올리지만, 동시에 상한선도 높인다.
결국 더 빠르게 배우고, 더 깊이 이해하는 사람이 차별화된다.
또한 리더는 팀 내에 ‘심리적 안전성’을 조성해야 한다.
누구나 실험하고, 새로운 도구를 시도하고, 실패를 공유할 수 있는 문화가 필요하다.
이것이 진정한 AI 네이티브 팀의 특징이다.
AI는 대체가 아니라 증폭이다
AI는 개발자를 대체하지 않는다.
오히려 숙련된 엔지니어의 역량을 증폭시키는 도구다.
AI가 70%의 코드를 만들어도, 나머지 30%의 완성도와 품질은 인간의 손에서 결정된다.
Addy Osmani의 메시지는 명확하다.
“AI는 당신의 속도를 높여주지만, 방향을 잡는 것은 여전히 당신이다.”
AI 시대의 진짜 엔지니어는 코드를 ‘작성’하는 사람이 아니라,
AI와 함께 문제를 정의하고, 품질을 검증하고, 시스템을 이해하는 사람이다.
https://www.youtube.com/watch?v=dHIppEqwi0g

'인공지능' 카테고리의 다른 글
| LangSmith의 No Code Agent Builder로 누구나 AI 에이전트를 만들다 (0) | 2025.11.02 |
|---|---|
| 브라우저에서 풀스택 개발을? AI가 만드는 새로운 개발 환경, Bolt.new (0) | 2025.11.01 |
| 병렬 AI 에이전트의 부상: 개발 생산성을 다시 정의하다 (0) | 2025.11.01 |
| Spring AI Bench: 엔터프라이즈 Java 시대의 진짜 AI 벤치마크 (0) | 2025.10.31 |
| 벡터 데이터베이스란 무엇인가 - 최적의 벡터 데이터베이스 선정을 위한 알고리즘 부터 주요 벡터 데이터베이스 비교 분석까지 (0) | 2025.10.31 |