Vibe 코딩과 개발자 종말론, 주니어 개발자의 성장 방향에 대한 생각
(stdy.blog)- Vibe 코딩이 뜨면서 함께 "이제 개발자는 필요없다" vs "그래도 아직 멀었다" 논쟁도 활발함
- 둘 다 일리가 있음. AI 발전 지켜보며, 프로덕 엔지니어로서 일하며 해왔던 생각을 정리했음
- 다만 나는 AI 전문가도 아니고 그냥 개발자임. Vibe 코딩 경험도 적음. 그러나 다른 분들의 의견을 듣고 싶어서, 그리고 불안해하는 주니어 개발자 분들께 도움이 되길 바라며 글을 썼음
직접 경험해본 Vibe: 이정도까지 vs 이정도밖에
Vibe 코딩으로 주말동안 알까기 게임 제작해봄. 7살 딸아이랑 같이 해보려고 만듦. 90% 코딩을 프롬프트만으로 진행, 구현 시간이 비약적으로 감소함(4시간 만에 나쁘지 않은 퀄리티로 완성)
이 과정에서 '이런 간단한 것도 못해?'라는 실망감과 '이 정도 요구사항만으로도 이렇게 훌륭하게 만들어준다고?'라는 놀라움을 번갈아 느낌. 특히 전자는 AI가 '내 말을 따르게' 하는 게 쉽지 않았기 때문이 컸음
그러나 어쨌든 프롬프트 다듬고 기술이 더 발전한다면 '놀라움'의 비중이 훨씬 더 커질 것이고, 이게 확실하게 주니어 개발자 채용 급감을 불러올 것이라고 생각
이 느낌을 파레토 법칙과 제품 성숙도 개념으로 얘기해보겠음
절망편: 96%의 코드는 AI가 작성할지도 모른다
제품 성숙도를 3단계 (제로투원, 원투텐, 그 이상)으로 본다면, 제로투원 수준의 코딩 대부분이 AI로 대체 가능해졌다는 것에 충격받음
파레토 법칙으로 보면 개발자가 제품 개발을 위해 생산하는 코드의 80%가 이 제로투원을 위한 산출물 아니었을까 생각함.
- 아이디어를 구현하고 PMF를 찾는 과정에서 나오는 코드들. 그리고 Vibe 코딩으로 비개발자도 쉽게 제작 가능한 코드들.
나아가 원투텐에서 필요한 80%를 잘 정의하고 쪼개서 제로투원 수준으로 처리 가능하다고 가정한다면...
- 극단적으로는 코드 생산량의 약 96% (= 0.8 + 0.2 * 0.8) 는 AI가 대체할 수 있지 않나 하는 생각
- Vibe 코딩을 소개한 Y Combinator 영상에서도 몇몇 창업자는 "제품 코드베이스의 95%를 AI가 작성했다"고 말했다던데 묘하게 숫자가 맞아떨어짐
이는 개발자 역량에 대한 기대치와, MVP 수준의 제품에 대한 기대치를 상향 평준화할 것으로 예상.
- Bootstrap, TailwindCSS 이후 프론트엔드 개발자에게 '괜찮은 수준의 UI 스타일링'이 기본 소양으로 되어버린 것과 유사
그렇다면 이전에는 제로투원 단계의 제품을 만드는 개발 능력만으로도 존중받았을 개발자들에 대한 채용 슬롯이 줄어드는 건 당연해 보임. 그러니 "이제 개발자는 필요없다"는 말이 과장이 아니게 된 것....
...정말 그럴까?
희망편: 그래도 여전히 개발자가 할 일은 많다
1) 시장 크기가 훨씬 커져서 할 일이 많아짐
Vibe 코딩의 가장 큰 의의는 제품 개발의 진입장벽을 낮추는 데 있음
- 기존에 제로투원을 위해 개발자가 손으로 해야 했던 일들의 대부분을 코딩 에이전트들이 극단적으로 적은 비용(시간/돈/사람)으로 대체.
- 즉 개발자 없이도 아이디어 실행-검증 싸이클을 빠르게 돌릴 수 있게 됨
따라서 이전에는 등장하지 못했던 제로투원 (또는 그 이하) 수준의 제품이 폭발적으로 많이 등장하게 될 것이고, '나도 내 아이디어를 구현해보고 싶다'는 사람들도 훨씬 더 늘어남.
이 모든 게 '개발자가 돈을 벌 수 있는' 시장 크기를 키우는 효과를 가져올 것. 원래는 개발자들의 고객이 아니었던 사람들이 새로운 고객층으로 바뀜. 예를 들면
- 비개발자, PM, 디자이너가 본인 아이디어를 실현할 수 있게 해주는 Vibe 코딩 교육
- Cursor와 함께 90%는 만들었는데 완성까지는 못가고 있는 제품의 완성을 돕는 단기 외주
- 어떻게든 만든 제품을 실제로 운영해서 지속적인 수익화로 이어지게 해주는 컨설팅
- Vibe 코딩을 더 잘, 더 쉽게 하는 데 도움을 주는 여러가지 유료 도구 개발
회사 밖에서 이런 일로 부수입을 얻든, 이런 일들을 하는 기업이 생기든 간에 시장 변화의 수혜는 개발자들이 가장 많이 누릴 거라고 봄
2) 개발자가 코딩 외에도 할 수 있고 해야 하는 일이 많음
AI가 '코딩'의 90%를 대체한다 해서 개발자 90%를 해고할 순 없음
- 코딩이 제품 개발, 더 나아가 프로덕 엔지니어링에서 차지하는 비중이 생각보다 크지 않기 때문
제품에 단 하나의 기능이 추가되기까지 대략 어떤 과정을 거치는지만 봐도 이렇게나 단계가 많음.
- 문제 인식
- 해결 아이디어 도출
- 기대효과 및 비용 예상, 개발 우선순위 결정
- 제품에 기능으로 녹이기 위한 기획
- UI/UX 디자인
- 아키텍처 설계
- 백엔드 + 프론트엔드 + 인프라 구현
- 코드리뷰, 자동화 테스트, QA
- 배포, 모니터링, 기능 홍보, A/B 테스팅
- 유저 피드백 수집, 운영, 개선
Vibe 코딩은 여기서 7과 8의 일부만 대신해줄 뿐임.
- 탁월한 프로덕 엔지니어라면 이 모든 단계에 일정 수준 이상 개입해야 함
- 코딩을 AI가 대신해주니 나머지를 잘 하는 사람들의 가치가 오히려 커지는 것
3) 코딩만 보더라도 여전히 유의미하게 할 일이 많음
굳이 프로덕 엔지니어링까지 가지 않아도 할 일 많음
- 원투텐 코딩의 마지막 몇%를 마무리할 일도 많고
- 개발자가 스펙 설계와 구조 설계, 작업 쪼개기 등을 도와주면 Vibe 코딩에 들어가는 비용도 줄어들 것
그리고 원투텐 이상의 제품에서는 Vibe 코딩에 한계가 많음
- 코드베이스 커짐 -> 제한된 컨텍스트 윈도우
- 높은 보안 수준을 지키고 성능 향상시키려면 전문가의 직접 개입 필요
- AI가 학습 잘 하지 못했을 라이브러리나 언어로 코딩할 때도 마찬가지
- https://news.hada.io/topic?id=19923 도 비슷한 문제를 얘기하고 있음
그러면 이제 주니어 개발자는 어떻게?
세상이 절먕편으로 가든 희망편으로 가든 너무 빠르게 변하고 있는 건 확실함. 특히 채용의 문이 급격히 좁아지는 상황에서 주니어들이 어떻게 학습/성장하면 좋을까?
<무엇이 탁월한 개발자를 만드는가?> 논문을 읽고, 탁월한 개발자의 5가지 핵심 역량을 이렇게 정의해봤음
- 훌륭한 코드를 짠다
- 근거 기반 의사결정을 연습한다
- 동료의 효과적 의사결정을 돕는다
- 작업의 현재 가치를 극대화한다
- 효과적으로 꾸준히 학습한다
이는 AI 시대에도 여전히 중요. 이걸 희망편과 엮어볼 수 있음
1) 커지는 시장을 적극 활용하기
나라면 이런 걸 해볼 것
- 프롬프트 엔지니어링 공부하기
- 새로 등장하는 AI 앱들 하나씩 찍먹하기
- 어떻게 작업을 쪼개야 코딩 에이전트가 내 요구사항을 잘 들어주는지 공부하고 실험하기
- 나의 작은 문제를 해결하는 앱을 Vibe 코딩으로 구현해서 배포해보기
- 비개발자 지인이 Vibe 코딩 하고 싶다고 하면 (돈 받으며) 과외해주기
- 지인이 구현 마무리해서 배포하고 운영하는 것도 (역시 돈 받으며) 도와줘보기
2) 프로덕 엔지니어로서 역량 갖추기
나라면 이런 걸 해볼 것
- 문제 인식, 아이디어, 기획, 설계, 테스트, 운영 등 제품 전반에 관심 가지기
- 솔로 창업가처럼 앱 제작/운영해보면 프로덕 엔지니어링 역량 자연스레 성장할 것
- 팀 협업 통해 제품 개선 노력하면서 협업 + 프로덕 엔지니어링 역량 향상 시도
나는 개발자 채용해서 오퍼레터 작성할 때 항상 '당신이 미니 CTO라고 생각하고 일해주기를 바란다'는 내용을 넣곤 했음
- 적어도 당신이 맡은 프로젝트에서는 당신이 기술적 의사결정의 최종 책임자다
- 그 프로젝트를 성공시키는 데 있어서 필요한 모든 단계에 개입하라
- 기술적이든 비기술적이든 동료가 효과적 의사결정과 행동을 할 수 있게 도와라
3) 개별 기술에 대해 깊이 이해하고 코딩 센스 키우기
개별 기술을 깊이 이해하는 개발자는 꾸준히 수요가 있음. PMF를 넘어 유니콘/데카콘 기업으로 가려면 Make it Right & Fast가 필수니까.
여기엔 왕도가 없음. (AI 도움 받으면서) 시간 투자해서 노력해야 함.
- 프레임워크/라이브러리 내부 탐구, 역사적 맥락 이해, 오픈소스 기여, 라이브러리 직접 제작, 버그 추적/수정, 웹 표준/성능 개선 등
동시에 좋은 코드에 대한 자신만의 기준을 세우고, 좋은 코드를 알아보는 '코딩 센스'가 더욱 중요해질 것. AI의 잘못된 Vibe를 인지하고, 멈추고, 개입해야 하기 때문.
코딩 센스를 기르려면 의도적 수련 필요. 여기서도 시간과 노력 들여야 함
- 좋은 코드를 많이 보고, 내가 짠 코드에 대해 AI든 시니어 개발자든 피드백을 많이 받아보고, AI나 동료가 작성한 코드를 보며 '이대로 가면 어떤 문제가 생길 것 같은지' 예상하고, 실제와 비교해보기
스타트업에 필요한 프로덕트 엔지니어링을 깊이 이해하는 것도 좋지만, 오히려 기술을 극한까지 추구하고 갈고닦는 길도 여전히 유의미하다고 생각합니다. 간단한 웹 애플리케이션을 만드는 개발은 AI가 대체하겠지만, 누군가는 Kubernetes를 고안하고 ElasticSearch를 디자인해야 한다고 생각해요.
댓글을 달다 보니, 제가 글에서 표현하고 싶었던 메시지가 정리되네요.
저는 개별 기업에서는 개발자 수요는 어찌됐든 줄어들 것 같은데, '개발 업무'를 필요로 하는 기업 또는 그에 준하는 사업자/개인의 수는 훨씬 더 늘어날 것이니 개발자가 할 일은 여전히 많다고 생각했습니다.
물론 그것들 또한 AI가 대체할 수도 있겠지만 그쯤 되면 대체 안되는 직군이 없지 않을까...
동의합니다. 앞으로는 AI코딩으로 할일과 인간이 할 설계, 검토로 나눠질 것 같고, 프로젝트 전체를 이해하는 AI가 나올때 까지는 공생할 것 같아요
어쨌든 소프트웨어 엔지니어링의 실무는 많이 변할 겁니다. 코드머신들은 경쟁력이 떨어지겠지만, 실제로 제품을 End-to-End로 만들 수 있는 엔지니어들은 살아남을 거라 저는 베팅하고 있습니다.