주니어 개발자의 종말
요약
생성형 AI 도입으로 인해 주니어 개발자의 채용 수요가 급감하고 있는 업계 현황을 분석합니다. AI 도구를 활용하는 시니어 개발자의 생산성 향상이 주니어의 역할이었던 단순 구현 업무를 대체하며 고용 시장의 구조적 변화를 일으키고 있습니다.
핵심 포인트
- AI 도입 기업의 주니어 고용률 7~12% 감소
- Big Tech 신입 채용 비중 급락 (32% -> 7%)
- AI가 단순 구현(Implementation) 비용을 낮추며 주니어 역할 대체
- 시니어 개발자의 AI 도구 활용으로 인한 생산성 극대화
지금 이 순간 어딘가에서, 채용 담당자가 주니어 개발자 채용 요청서를 보며 2년 전에는 존재하지 않았던 질문을 던지고 있습니다. '시니어 개발자와 그들의 AI 도구들이 이미 처리하고 있는 일을 왜 굳이 누군가를 고용해서 시켜야 하는가?' 업계 전반에 걸쳐, 컴퓨터 과학 (CS) 졸업생들은 교수들이 설명했던 것과는 전혀 다른 구직 게시판을 바라보고 있습니다. 신입 채용 공고는 2022년 이후 60% 감소했습니다. 그들이 약속받았던 커리어 경로는 첫 번째 계단이 있어야 할 자리에 공백이 생겼습니다. 두 쪽 모두 우려하는 것이 당연합니다. 하지만 두 쪽 모두 명확한 답을 가지고 있지 않습니다.
수치는 명확합니다. 285,000개의 미국 기업에 걸쳐 6,200만 명의 노동자를 추적한 Harvard의 연구에 따르면, 생성형 AI (Generative AI)를 도입한 기업들은 6분기 이내에 주니어 고용을 7~12% 줄였습니다. 시니어 고용은 정체 상태를 유지했습니다. 이러한 감소는 해고가 아닌 채용 속도의 저하로 인해 발생했습니다. 주니어들이 해고된 것이 아닙니다. 애초에 채용되지 않은 것입니다. Stanford의 Digital Economy Lab은 22세에서 25세 사이 개발자의 고용이 2022년 말 정점 대비 약 20% 하락했다는 사실을 발견했습니다. CS 졸업생 실업률은 6.1%입니다. 22세에서 27세 사이의 실업률은 7.4%로, 전국 평균의 거의 두 배에 달합니다. Big Tech의 신입 채용 비중은 2019년 신규 채용의 32%에서 현재 7%로 떨어졌습니다. Salesforce는 신입 엔지니어 채용을 완전히 중단했습니다. Klarna는 개발자 채용을 동결했습니다. LeadDev의 설문 조사에 따르면 엔지니어링 리더의 54%가 향후 주니어 채용을 줄일 계획이라고 답했습니다. 그때마다 제시된 이유는 AI였습니다. 계산은 간단합니다. 만약 AI 도구를 사용하는 시니어 개발자가 시니어 한 명과 주니어 두 명의 결과물을 만들어낸다면, 그 주니어 두 명은 채용되지 않습니다. 이것은 이데올로기가 아닙니다. 스프레드시트의 결과입니다.
제1진영: 주니어는 짐이다. 효율성을 중시하는 진영은 이를 입 밖으로 내어 말하는 것을 즐기지 않지만, 속으로는 그렇게 생각하고 있습니다. Copilot, Cursor, 또는 Claude Code를 사용하는 시니어 엔지니어는 주니어가 한 달 동안 내놓는 것보다 더 많은 코드를 일주일 만에 배포합니다. 코드는 더 낫습니다. 리뷰가 덜 필요합니다. 버그도 더 적습니다. 시니어는 이미 아키텍처 (Architecture), 예외 케이스 (Edge cases), 패턴 (Patterns)을 알고 있기 때문입니다.
AI는 구현 (Implementation) 과정을 압축합니다. 주니어는 곧 구현 그 자체였습니다. Anthropic의 CEO인 Dario Amodei는 이를 명확하게 말했습니다. 엔트리 레벨 (Entry-level) 직무가 정조준되고 있다는 것입니다. 그는 AI가 5년 이내에 엔트리 레벨 사무직 일자리의 50%를 없앨 수 있다고 예측했습니다. 그는 리더들이 다가올 미래를 미화하고 있다고 말했습니다. 기업들은 AI 코딩 도구를 도입한 후 스프린트 (Sprint)당 코드 출력량이 40~55% 증가했다고 보고합니다. 속도 향상은 실재합니다. 하지만 이를 만들어내는 개발자의 고된 노동은 가차 없습니다. 그리고 그 속도 향상의 대부분은 주니어들이 하던 일, 즉 보일러플레이트 (Boilerplate), CRUD 엔드포인트 (Endpoints), 시니어가 설계하고 주니어가 타이핑하던 단순한 구현들을 제거함으로써 얻은 것이었습니다. 이 진영은 시장이 교정되고 있는 것이라고 말할 것입니다. 구현 비용이 비쌌기 때문에 업계가 수년간 주니어를 과잉 채용해 왔다고 말입니다. AI가 구현 비용을 저렴하게 만들었습니다. 비싼 임금을 주며 저렴한 일을 하는 사람을 채용하는 것은 지속 가능하지 않습니다. 이것은 잔인한 것이 아니라 수학입니다.
두 번째 진영: 우리는 종자를 먹어치우고 있다. 파이프라인 (Pipeline) 진영은 효율성 진영이 답할 수 없는 질문을 하나 던집니다. 미래의 시니어는 어디에서 오는가? AWS의 CEO인 Matt Garman은 주니어를 AI로 대체하는 것을 그가 들어본 것 중 가장 어리석은 일 중 하나라고 불렀습니다. 그의 논거는 이렇습니다. 그들은 가장 저렴한 직원이며, AI를 가장 적극적으로 활용하는 학습자입니다. 만약 지금 그들을 채용하지 않는다면, 10년 후 시니어 엔지니어가 필요할 때 아무도 배운 사람이 없게 될 것입니다. Microsoft의 Mark Russinovich와 Scott Hanselman은 Communications of the ACM에 논문을 발표하며, 기업들이 미래의 시니어를 배출하는 파이프라인이 조용히 붕괴되는 동안 단기적인 처리량 (Throughput)만을 최적화하고 있다고 경고했습니다. 그들의 예측에 따르면, 2024년에서 2026년 사이의 주니어 채용 감소는 2031년에서 2036년 사이의 비례적인 시니어 부족을 의미합니다. Fast Company는 주니어를 제거했을 때 발생하는 현상인 번아웃 (Burnout)에 관한 기사를 다루었습니다.
주니어의 업무량을 흡수하면서 동시에 AI 도구까지 관리해야 하는 시니어 엔지니어들이 기업이 교체하는 속도보다 더 빠르게 번아웃 (Burnout)을 겪고 있습니다. 주니어를 멘토링하지 않음으로써 이득을 얻어야 했던 시니어들은, 과거 주니어들이 나누어 가졌던 업무량에 잠겨버리고 있습니다. 이 캠프는 시니어 엔지니어가 어디선가 갑자기 나타나는 것이 아니라고 말할 것입니다. 그들은 만들어지는 것입니다. 수년간 좋지 않은 코드를 배포하고 실패로부터 배우면서 만들어집니다. 새벽 2시에 운영 환경의 장애 (Production incidents)를 디버깅(Debugging)하며, 6개월 전에 택했던 지름길이 왜 지금 자신을 깨어 있게 만든 원인인지 이해하면서 만들어집니다. 또한, 더 숙련된 개발자가 무엇이 잘못되었는지뿐만 아니라 그것이 왜 중요한지까지 설명해 주던 코드 리뷰 (Code reviews)를 통해 만들어집니다. 그 과정을 제거한다고 해서 더 효율적인 산업이 되는 것은 아닙니다. 대신 인재 공급의 유효 기간이 10년밖에 남지 않은 산업을 마주하게 될 뿐입니다. 그러한 인재 격차로 인한 보안상의 결과는 이미 가시화되고 있습니다.
아무도 말하지 않는 학습의 역설 (The Learning Paradox)
채용 수치 이면에는 더 깊은 문제가 있습니다. AI는 단순히 주니어의 업무를 대체하는 것이 아니라, 주니어의 학습을 대체합니다. Anthropic의 자체 연구에 따르면, 지속적인 AI의 도움을 받으며 학습한 개발자와 수동으로 코딩한 개발자 사이에 17포인트의 이해도 격차가 있는 것으로 나타났습니다. 특히 디버깅 (Debugging) 기술에서 가장 큰 저하가 관찰되었습니다. AI를 가장 많이 사용한 개발자들이 자신들이 구축한 것에 대해 가장 적게 이해하고 있었습니다. METR의 무작위 대조 시험 (Randomized trial)에 따르면, AI를 사용하는 숙련된 오픈 소스 (Open-source) 개발자들은 평균적으로 19% 더 느렸지만, 스스로는 더 빠르다고 믿었습니다. 숙련된 개발자조차 AI를 사용할 때 자신의 생산성을 잘못 판단한다면, AI 없이 일해본 적이 없는 사람에게는 어떤 일이 벌어질지 상상해 보십시오. 잘못된 데이터베이스 스키마 (Database schema)와 씨름해 본 적 없는 주니어 개발자는 정규화 (Normalization)가 왜 중요한지 배우지 못할 것입니다. 느린 쿼리 (Query)를 직접 최적화해 본 적 없는 개발자는 데이터베이스가 실제로 무엇을 하고 있는지에 대한 직관을 기를 수 없습니다. 테스트 (Tests) 없이 코드를 배포했다가 새벽 2시에 호출을 받아본 적 없는 개발자는 테스트가 왜 선택 사항이 아닌지를 내면화하지 못할 것입니다. 고통이 곧 교육이었습니다. 고통을 제거하면 교육도 제거됩니다.
남는 것은 자신이 평가하거나, 디버깅하거나, 설명할 수 없는 코드를 생성하도록 AI에게 프롬프트(Prompt)를 입력할 수 있는 사람뿐입니다. 그것은 주니어 개발자가 아닙니다. 그것은 자신이 조작하는 기계를 이해하지 못하는 운영자(Operator)입니다. 그리고 그들의 코드가 단순한 형식적 승인(Rubber stamp)으로 변질된 리뷰 프로세스를 통과할 때, 더 이상 안전망은 남아있지 않습니다. '신뢰 문제(The Trust Problem)' 연구에 따르면, 주니어 개발자는 AI 출력물을 78%의 확률로 신뢰합니다. 시니어는 39%의 확률로 신뢰합니다. 이 격차는 회의론 대 열정의 문제가 아닙니다. 그것은 패턴 인식(Pattern recognition)의 문제입니다. 시니어 개발자는 AI가 어디서 틀리기 쉬운지 알 수 있을 만큼 충분한 운영 환경(Production)의 실패를 목격해 왔습니다. 그들은 수년간의 결과를 통해 구축된 보안, 성능, 유지보수성(Maintainability)에 대한 직관을 가지고 있습니다. AI가 깔끔해 보이지만 미묘한 결함이 있는 무언가를 생성할 때, 시니어는 이전에 동일한 유형의 결함으로 고생해 본 적이 있기 때문에 이를 잡아냅니다. 주니어 개발자는 그러한 실패의 라이브러리를 가지고 있지 않습니다. 그들은 맥락화(Contextualize)할 수 없는 것을 평가할 수 없습니다. 그들은 회의론을 가질 근거가 없기 때문에 출력을 수용합니다. 코드는 컴파일됩니다. 테스트는 통과합니다. PR(Pull Request)은 승인됩니다. 결함은 운영 환경(Production)으로 배포되고, 고객이 발견할 때까지 아무도 모릅니다. 역설적이게도, AI는 그것을 완전히 신뢰할 가능성이 가장 높은 사람들의 손에 있을 때 가장 위험합니다. 그리고 그것을 완전히 신뢰할 가능성이 가장 높은 사람들은 AI가 생성한 것을 검증할 경험이 가장 적은 사람들입니다.
어느 진영도 계획이 없다
효율성(Efficiency) 진영은 파이프라인 문제에 대한 답을 가지고 있지 않습니다. 시니어들로만 영원히 산업을 운영할 수는 없습니다. 그들은 은퇴합니다. 그들은 번아웃(Burnout)을 겪습니다. 그들은 관리직이나 컨설팅, 혹은 농사나 사람들이 온콜(On-call) 업무에 지쳤을 때 하는 그 어떤 일로 떠나버립니다. 만약 아무도 그들을 대체하지 않는다면, 그것은 인재 부족이 아니라 인재 멸종입니다. 파이프라인(Pipeline) 진영은 경제성에 대한 답을 가지고 있지 않습니다. 자동화될 수 있는 업무를 위해 필요하지도 않은 사람들을 채용하라고 기업에 말하는 것은 인력 전략이 아닙니다. 그것은 교육이라는 라벨을 붙인 자선 활동일 뿐입니다.
어떤 CFO도 7년 후에나 유용해질지도 모르는 사람을 위해 인력(headcount)을 승인하지 않을 것입니다. 진짜 정답은 아마 그 중간 어디쯤에 있을 것이며, 어느 진영도 그 말을 듣고 싶어 하지 않을 것입니다. 2010년부터 2022년까지 존재했던 형태의 주니어 개발자(junior developer) 역할은 사라졌습니다. 그 역할을 정의했던 업무들, 즉 상용구 코드(boilerplate)와 기본적인 구현(basic implementations)은 자동화되었습니다. 그 특정 직무는 돌아오지 않을 것입니다. 하지만 시니어 엔지니어(senior engineer)가 되기 위해 배우고 있는 사람들에 대한 필요성은 사라지지 않았습니다. 역할이 변해야 합니다. 그것이 수습 과정(apprenticeships)이 될지, Microsoft가 제안했던 것과 같은 지도 과정(preceptorships)이 될지, 아니면 완전히 새로운 무언가가 될지는 아직 아무도 알아내지 못했습니다. 업계는 이를 멈춰 서서 생각하기에는 너무 빠르게 움직이고 있으며, 바로 그렇기 때문에 멈춰 서서 생각해야만 합니다.
아무도 묻고 싶어 하지 않는 질문
만약 당신이 채용 담당자(hiring manager)라면: 5년 후의 당신의 팀을 바라보십시오. 당신의 시니어 엔지니어들은 어디에서 오는가? 만약 그 답이 다른 회사들이라면, 모든 회사가 똑같은 계획을 갖게 되었을 때 어떤 일이 벌어질지 스스로에게 물어보십시오.
만약 당신이 주니어 개발자라면: 당신 이전 세대에게 존재했던 커리어 경로(career path)는 사라졌습니다. 그것이 경로가 없다는 뜻은 아닙니다. 그 경로는 아직 구축되지 않았으며, 당신이 그 구축을 도와야 할 수도 있다는 뜻입니다. 단순히 프롬프팅(prompting)이 아니라 실제적인 이해(comprehension)를 바탕으로 AI 도구를 진정한 이해와 결합하는 방법을 찾아내는 개발자들은 엄청난 가치를 지니게 될 것입니다. AI를 도구가 아닌 목발로 사용하는 사람들은, 효율성 중시 진영이 다음 세대를 채용하지 않는 것을 정당화할 때 지목될 대상이 될 것입니다.
만약 당신이 시니어 개발자라면: 오늘 당신이 멘토링하는 주니어들이 당신의 속도를 늦추고 있는 것이 아닙니다. 그들은 당신이 떠난 후 당신의 시스템을 유지 관리할 누군가가 존재하게 만드는 이유입니다. 주니어에게 왜 그들의 접근 방식에 숨겨진 성능 문제(performance problem)가 있는지 가르치기 위해 코드 리뷰(code review)에 쓰는 30분은 손실된 생산성이 아닙니다. 그것은 시니어 엔지니어를 만들어내는 유일한 투자입니다.
주니어 개발자는 죽지 않았습니다. 하지만 우리가 알고 있던 주니어 개발자의 역할은 죽었습니다.
그리고 업계에는 그 결과가 되돌릴 수 없을 만큼 심각해지기 전에, 무엇이 그 역할을 대체할 것인지 파악할 수 있는 약 5년의 시간이 남아 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기