
주니어 개발자 성장 과정이 붕괴되었고, AI가 그것을 망가뜨렸다
요약
AI가 주니어 개발자의 기초 업무를 자동화하면서, 미래의 시니어 엔지니어를 양성할 '견습 과정'이 사라지고 있다는 경고를 담고 있습니다. 판단력을 갖춘 시니어는 경험을 통해 만들어지는데, AI가 그 경험의 토대가 되는 업무들을 대체하고 있음을 지적합니다.
핵심 포인트
- AI가 주니어의 기초 업무를 자동화하며 성장 경로를 차단함
- 시니어의 판단력은 지루하고 반복적인 실무 경험을 통해 축적됨
- AI 시대에도 미래의 시니어를 위한 견습 과정(Apprenticeship)이 필수적임
- 단순히 AI가 코드를 잘 짜는 문제가 아니라 인적 자원 공급의 문제임
모두가 AI가 시니어 엔지니어를 더 가치 있게 만든다는 점에는 동의한다. 그러나 다음 세대의 시니어가 어디서 나올지에 대해서는 거의 아무도 질문하지 않는다. AI가 자동화해 버린 업무는 결코 낭비가 아니었다. 그것은 견습 과정(apprenticeship)이었고, 채용 데이터는 이미 가장 낮은 단계부터 사라졌다고 말한다.
현재 업계에서 사람들이 좋아하는 이야기가 있다: AI가 시니어 엔지니어를 더욱 가치 있게 만든다는 것이다. 판단력이 있고, 문턱을 넘자마자 나쁜 설계를 감지할 수 있는 사람들이 이 변화의 승자가 될 것이라는 이야기다. 이는 위안이 되는 이야기이며, 실제로도 사실이다.
하지만 그 중심에 채용 동결(hiring freeze)을 통과시킬 만큼 큰 구멍이 있다. 시니어는 재생 가능한 자원(renewable resource)이 아니다. 아무도 15년 동안의 상처가 미리 설치된 상태로 오지 않는다. 네가 함께 일했던 모든 시니어들은 흥미롭지 않은 업무를 받고 수년간 그것을 수행하며 시작한 주니어였다. 그리고 AI는 조용히 그 수년들이 만들어진 바로 그 업무들을 먹어치웠다.
이 글은 AI가 좋은 코드를 작성하는지에 대한 이야기가 아니다. AI는 충분히 많이 작성한다. 문제는 판단력을 갖춘 사람들의 공급(supply)에 무슨 일이 생기느냐 하는 것이다.
시니어 엔지니어가 실제로 어디서 오는가
시니어 엔지니어에게 그들이 어떻게 시니어가 되었는지 물어보면, '자격증'이라는 대답은 듣지 못할 것이다. 대신 그들은 자신이 망가뜨렸던 시스템, 겪었던 사고(incident), 아무것도 이해되지 않아 몇 주 동안 읽어야 했던 코드베이스에 대해 이야기할 것이다. 판단력은 다운로드되는 것이 아니다. 그것은 수천 번의 작고 실제 시스템과의 충돌을 통해 축적된다. 그리고 그 대부분은 흥미롭지 않았으며, 당시에는 많은 부분이 지루했다.
이것이야말로 '시니어가 승리한다'는 서사가 건너뛰는 부분이다. 이 서사는 시니어 공급을 날씨처럼 취급하며, 마치 그냥 존재하는 것이고 스스로 보충된다고 여긴다. 그렇지 않다. 그것은 만들어지는 것이다. 누군가에게 발 디딜 곳(bottom rung)을 제공하고 그 흔들림을 용인해 준 팀들에 의해 느리고 비싸게 제조되는 것이다.
너의 채용 계획은 아마도 2030년에 시니어가 필요할 때 시장에서 고용할 것이라고 가정할 것이다. 괜찮다. 하지만 그 시장은 단지 다른 회사들의 전직 주니어들일 뿐이다. 누군가, 어딘가에서는 견습 과정을 운영해야만 하고, 그렇지 않으면 채용할 것이 아무것도 없다.
AI 도구가 고도화되기 전, 주니어 개발자의 일주일이 실제로 어떠했는지 생각해 보십시오:
- 보일러플레이트 (Boilerplate) - CRUD 엔드포인트와 폼 검증 (form validation)을 위한 스캐폴딩 (scaffolding)을 구축하는 과정은 프레임워크의 형태, 파일이 위치하는 곳, 컨벤션 (conventions)이 무엇인지, 그리고 그것들이 왜 존재하는지를 가르쳐 주었습니다.
- 작은 버그 수정 (Small bug fixes) - 아무도 맡고 싶어 하지 않는 티켓을 처리하며 스택 트레이스 (stack traces)를 읽는 법을 배웠고, 그다음에는 로그 (logs)를, 그리고 결정적으로 타인의 코드를 읽는 법을 배웠습니다. 여러분이 작성할 코드가 아니라, 실제로 존재하는 코드를 말입니다.
- 글루 코드 (Glue code) - 서비스 A를 큐 B에 연결하는 작업은 시스템이 실제로 어떻게 연결되는지(타임아웃, 재시도, 오직 프로덕션 환경에서만 중요한 설정 값 등)를 가르쳐 주었습니다.
- 타인의 코드 추적 (Tracing someone else's code) - "이게 왜 발생하는지 알아내라"는 과제들은 향후 모든 아키텍처 결정의 토대가 될 시스템의 멘탈 모델 (mental model)을 구축해 주었습니다.
- PR의 사소한 지적들 (PR nitpicks) - 첫 풀 리퀘스트 (pull request)에 달린 40개의 코멘트는 쓰라렸지만, 동시에 업계가 가진 가장 빠른 지식 전수 메커니즘이기도 했습니다.
그 누구도 이 업무들을 옹호하지 않았습니다. 우리는 이를 노고 (toil), 단순 노동 (grunt work), 즉 숙련을 위해 거쳐야 하는 과정이라고 불렀습니다. 그래서 AI가 등장하여 이 모든 일을 단 몇 초 만에 해내기 시작했을 때, 우리는 환호했습니다. 마침내 주니어들이 지루한 부분을 건너뛰고 '진정한' 엔지니어링을 할 수 있게 되었다고 말이죠.
하지만 그 지루한 부분들이 바로 훈련 과정이었습니다. 견습 전기 기사는 케이블을 끌어오고 박스를 설치하는 데 수년을 보냅니다. 스승이 그것을 더 빨리 할 수 없어서가 아니라, 사람을 죽일 수도 있는 배전반 근처에 가기 전에 건물이 실제로 어떻게 작동하는지 배우는 방법이 바로 그것이기 때문입니다. 케이블을 당기는 일을 로봇에게 맡기면 건물은 여전히 배선이 된 채로 완공되겠지만, 전기 기사는 더 이상 배출되지 않을 것입니다.
자동화가 한 일이 바로 이것입니다. 낭비를 줄인 것이 아니라, 커리큘럼을 삭제하고 시험만 남겨둔 것입니다.
그리고 이는 오늘날의 주니어들을 기묘한 함정에 빠뜨렸습니다. AI를 통해 역사상 그 어떤 주니어보다 더 많은 결과물 (output)을 만들어낼 수 있지만, 역사상 그 어떤 주니어보다도 적은 반복 숙달 (reps)을 수행하게 된 것입니다. 주니어 업무의 목적은 결코 결과물 그 자체가 아니었습니다. 학습이 곧 제품이었고, 티켓은 단지 그것을 전달하는 메커니즘이었을 뿐입니다.
수치는 이미 나와 있습니다
데이터가 이미 이를 보여주고 있지 않았다면, 이 글은 그저 막연한 추측성 글(hand-wavy think piece)에 불과했을 것입니다. 하지만 데이터는 이미 여러 독립적인 방향에서 이를 증명하고 있습니다.
SignalFire의 기술 인재 현황 보고서 (SignalFire's State of Tech Talent report)에 따르면, 현재 신입 졸업생은 **빅테크 기업 채용의 단 7%**만을 차지하고 있으며, 신입 채용 규모는 팬데믹 이전인 2019년 수준보다 50% 이상 감소했습니다. 또한 이 보고서는 차마 입 밖으로 내뱉지 못하던 사실을 수면 위로 끌어올렸습니다. 바로 매니저의 37%가 Z세대 직원을 채용하는 것보다 AI를 사용하는 것을 선호한다고 답한 것입니다.
Erik Brynjolfsson이 이끄는 스탠퍼드(Stanford) 팀은 수백만 명의 근로자를 포함하는 ADP의 급여 데이터를 분석하였고, AI 노출도가 가장 높은 직업군에 종사하는 22세에서 25세 사이의 초기 경력 근로자(early-career workers)들이 2022년 말 이후 고용 측면에서 16%의 상대적 감소를 보였다는 사실을 발견했습니다. 소프트웨어 엔지니어링(Software engineering)은 그 대표적인 사례 중 하나입니다. 반면, [동일한] 직업군에서 30세 이상의 근로자들은 2025년 5월까지 6~12% 성장했습니다. 직무는 같지만 방향은 정반대이며, 연령에 따라 명확하게 갈리고 있습니다. 경기 침체(Recession)는 당신의 출생 연도를 따지지 않지만, AI 도입(AI adoption)은 분명히 따지는 듯합니다.
이러한 하류 효과(downstream effect)는 졸업생들의 결과에서도 나타납니다. 뉴욕 연준(New York Fed)의 데이터에 따르면, 최근 컴퓨터 과학(computer science) 전공 졸업생의 실업률은 6.1%로, 전체 졸업생 평균인 4.8%보다 높게 나타났습니다. 한 세대 전체가 선택하라고 권유받았던 주요 전공이 이제는 평균보다 낮은 성과를 내고 있습니다.
그리고 이러한 수치 뒤에 깔린 정서는 결코 미묘하지 않습니다. Stack Overflow가 다룬 설문 데이터에 따르면, 채용 매니저의 70%가 AI가 인턴의 업무를 수행할 수 있다고 믿는다고 답했으며, 57%는 AI의 결과물을 최근 졸업생의 작업물보다 더 신뢰한다고 답했습니다.
사다리의 맨 아랫단이 느슨해지고 있는 것이 아닙니다. 사다리 자체가 이미 사라지고 있습니다.
개인에게는 합리적이지만, 모두에게는 굶주림인 상황
여기 불편한 진실이 있습니다. 이 이야기 속의 그 누구도 실수를 저지르고 있지 않다는 점입니다.
한 팀을 기준으로 이번 분기의 비용을 계산해 보세요. 주니어 사원 한 명은 완전한 급여와, 그들이 순이익(net positive)을 내기까지 1년 이상 동안 시니어의 상당한 시간을 소모하며, 게다가 다른 곳에서 30% 인상된 연봉을 받고 떠날 수도 있습니다. 반면 AI 코딩 도구는 팀 커피 예산보다 적게 들면서도 오늘 오후에 생산성을 발휘합니다. 만약 당신이 채용 공고가 하나 남아 있고 납기일이 임박한 엔지니어링 매니저라면, 주니어를 건너뛰는 것이 올바른 결정입니다. 어떤 CFO라도 이에 동의할 것입니다. 대부분 그렇게 합니다.
문제는 모든 사람이 똑같은 스프레드시트를 돌린다는 점입니다. 각 회사는 개별적으로 시니어를 시장에서 채용하는 것을 선택하고, 그들을 육성하기보다는요. 그런데 이 시장은 다른 회사들의 주니어 프로그램 결과물에 불과합니다. 주니어를 건너뛰는 것은 다른 사람의 도제 과정을 무료로 이용하는 것(free-riding)입니다. 이것은 보편화될 때까지는 완벽하게 작동합니다.
이것은 공유지의 비극(commons problem)이며, 2031년의 시니어 풀(senior pool)이 바로 그 공유지입니다. 어느 단일 회사도 소유하지 않으며, 이번 분기에 이를 고갈시킨다고 해서 어떤 단일 회사도 처벌받지 않습니다. 그리고 누구의 손익계산서(P&L) 항목에도 이 비용은 나타나지 않습니다.
위험한 것은 시간 지연입니다. 2025년에 채용되지 않은 주니어들이 바로 2028년에는 존재하지 않을 미드 레벨 엔지니어가 되고, 2031년에는 존재하지 않을 시니어가 됩니다. 그리고 사라진 코호트(cohort)는 나중에 다시 채울 수 없습니다. 왜냐하면 당신이 채용하려 하는 것은 몇 년간 축적된 판단력이기 때문입니다. 한 예산 주기 동안 급여 범위(salary band)를 올릴 수는 있지만, 경험을 늘릴 수는 없습니다.
진지하게 생각해보면, 여전히 하나의 완고한 사실 때문에 이 구조는 무너집니다. 바로 누군가는 머지 (merge)에 자신의 이름을 남겨야 한다는 점입니다.
AI가 생성한 마이그레이션 (migration)이 새벽 2시에 운영 환경 (production)을 다운시켰을 때, "모델이 그랬습니다"라는 말은 그 누구도 받아들이지 않는 장애 보고서입니다. 고객도, 감사인 (auditor)도, 핀테크나 헬스케어 분야에 있다면 규제 기관도 마찬가지입니다. 책임 (Accountability)은 소프트웨어 조직에서 하중을 견디는 핵심 요소이며, 해고하거나, 해임하거나, 승진시킬 수 없는 시스템에 위임될 수 없습니다. 어떤 인간이 결과물을 검토하고, 승인하며, 그에 대해 책임을 져야 합니다.
그리고 검토 (review)는 단순히 체크박스를 채우는 행위가 아닙니다. 제대로 된 검토란 어떤 차이점 (diffs)이 위험하고 어떤 것이 일상적인지, 스키마 (schema) 변경의 영향 범위 (blast radius)가 어디까지인지, 테스트가 통과 (green)된 이유가 코드가 올바르기 때문인지 아니면 실패 모드 (failure mode)를 테스트하지 않기 때문인지를 아는 것을 의미합니다. 그것이 바로 판단력 (judgment)입니다. 이는 우리가 교육을 중단해버린 바로 그 사람들로부터, 과거 도제식 교육 (apprenticeship)이 만들어냈던 바로 그것입니다.
따라서 "AI가 시니어가 되는" 미래는 그 전제 자체를 갉아먹습니다. AI가 더 많은 코드를 작성할수록 인간의 업무는 검토로 변하며, 업계는 현재 이 기술을 만들어낼 수 있는 유일한 기계를 해체하면서 동시에 그 기술에 도박을 걸고 있습니다.
스탠퍼드 (Stanford)의 데이터에는 이를 뒷받침하는 미묘한 차이가 있습니다. AI가 사람을 "보조 (augments)"하는 역할에서는 고용이 유지되거나 성장한 반면, 업무 전체를 AI에 위임한 노동자들은 그렇지 않은 이들보다 성과가 좋지 않았습니다. 시장은 이미 사람들을 분류하고 있습니다. AI를 사용하느냐가 아니라, 판단력을 구축하는 방식으로 사용하느냐 혹은 판단력을 대체하는 방식으로 사용하느냐에 따라 말입니다.
도제식 교육을 유지하는 방법
책상 앞에 앉아서 업계 전반의 채용 인센티브를 고칠 수는 없습니다. 당신이 통제할 수 있는 것은 당신과 당신의 팀이 이미 수행하고 있는 업무 안에서 여전히 학습이 일어나고 있는지 여부입니다.
만약 당신이 커리어의 초기 단계에 있다면:
- 먼저 고군분투하고, 그다음에 프롬프트를 작성하세요 (Struggle first, prompt second). 모델에게 물어보기 전에 모든 문제에 대해 진심 어린 시도를 해보세요. 고군분투하는 과정은 제거해야 할 비효율성이 아닙니다. 그것은 교훈을 당신의 머릿속에 각인시키는 메커니즘입니다. AI는 당신이 이미 씨름했던 것을 설명해 줄 때는 경이로운 튜터(tutor)가 되지만, 당신이 질문을 형성하기도 전에 답을 내놓을 때는 학습을 파괴하는 파괴자가 됩니다.
- AI의 diff(차이점)를 리뷰어처럼 읽으세요. 당신이 바로 그 리뷰어이기 때문입니다. git blame과 당신의 팀의 관점에서 볼 때, 그 코드를 작성한 사람은 바로 당신입니다. 만약 diff의 한 줄이라도 설명할 수 없다면, 당신의 작업은 끝난 것이 아닙니다. 머지(merge)를 하는 것이 아니라, 결과물을 이해하는 것을 목표로 삼으세요.
- 의도적으로 어떤 일들은 느린 방식으로 해보세요. 프레임워크의 호출(call)을 한 번쯤은 직접 손으로 따라가며 추적(trace)해 보세요. 마이그레이션(migration)을 요청하기 전에 직접 작성해 보세요. 이는 순수주의자가 되려는 것이 아니라, 지게차가 존재함에도 불구하고 운동선수들이 여전히 웨이트 트레이닝을 하는 것과 마찬가지로 반복 훈련(reps)을 하는 것입니다.
- 초기에 리뷰(review) 능력을 키우세요. 리뷰는 업무가 나아갈 방향입니다. 리뷰를 자원하고, 팀 내 최고의 리뷰어가 어떻게 코멘트를 남기는지 공부하며, 특정 사항이 왜 위험한지 명확하게 설명하는 법을 배우세요. 그 기술은 단순한 산출량(output)보다 훨씬 빠르게 복리로 성장합니다.
만약 당신이 팀을 이끌고 있다면:
- 실질적인 계획을 가지고 주니어 한 명을 채용하세요. 자선 사업으로 채용하거나, 단순히 티켓 처리량(throughput)을 채우기 위한 인력으로 채용하지 마세요. 계획이란 다음과 같습니다: 서브시스템(subsystems) 순환 근무, 시간을 할애해 줄 지정 멘토 배치, 장애 리뷰(incident reviews) 참석 등입니다. 원칙적으로 의도적으로 성장시킨 주니어 한 명은 주니어가 없는 것보다 낫고, 실질적으로는 지원 없는 주니어 세 명보다 낫습니다.
- 단순한 산출물(output)이 아닌 이해를 과제로 부여하세요. 결제 흐름(payment flow)이 처음부터 끝까지 어떻게 작동하는지 발표하게 하세요. 온콜(on-call) 쉐도우 로테이션(shadow rotation)에 참여시키세요. 사후 분석(postmortem) 초안을 작성하게 하세요. 이 중 어떤 것도 기능을 출시(ship)하는 일은 아니지만, 이 모든 과정이 5년 뒤 당신이 간절히 채용하고 싶어 할 인재를 만들어냅니다.
- 교육적인 티켓은 인간의 몫으로 남겨두세요. 영혼을 갉아먹는 티켓이 아니라 말입니다. 그런 티켓들은 양심의 가책 없이 자동화하세요. 하지만 누군가가 실제로 시스템을 읽게 만드는 레거시 모듈(legacy module)의 까다로운 작은 버그는 어떤가요? 그 티켓은 교육비(tuition)입니다. 모델(model)에 그 비용을 쓰지 마세요.
- AI 사용 방식을 함께 검토하세요. 코드 페어 프로그래밍(pair programming)을 하듯, 프롬프트(prompts)와 차이점(diffs)을 함께 살펴보세요. 주니어가 모델을 사용하는 방식이 곧 그들의 현재 프로세스입니다. 만약 그 과정이 보이지 않는다면, 그들의 지식 공백(gaps) 또한 보이지 않게 됩니다.
이 중 어떤 것도 이번 분기의 속도(velocity)에는 나타나지 않습니다. 바로 그것이 핵심입니다. 도제식 교육(apprenticeship) 또한 속도에 나타나지 않았으며, 바로 그 점 때문에 그것이 무엇인지 아무도 알아차리지 못한 채 자동화되어 사라지기 너무나 쉬웠던 것입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기