지난 몇 달간의 이야기. 머릿속에서만 계속 맴돌던 생각들을 꺼내본다.
Vibe Coding으로, Agentic Coding으로 변화하면서 개발자 1명이 할 수 있는 일이 점점 더 커졌고, 프로젝트에 필요한 개발자 수는 크게 줄어들었다. Fullstack Engineer를 넘어서, Product Engineer라는 채용 공고를 올리는 회사들도 보이고, 건너 듣기로는 기획자나 디자이너에게 Claude Code나 Codex 교육을 1~2달 해준 후, 혼자 프로젝트를 만들라고 시키는 회사도 있다고 들었다. 즉, 이제는 팀이 프로젝트를 하는 게 아니라 1명이 프로젝트를 만드는 시대가 된 것이다.
회사 주니어 개발자분과 1-on-1을 하다가 놀란 적이 있었다. 그분 맥북을 보다가 터미널을 같이 보게 되었는데, 터미널 설정이 맥북 기본 설정이었다. 최근에 들어오신 분도 아니고, 작년에 우리 회사에서 반년이나 인턴을 하고, 석사 졸업 후 입사해서 벌써 9달 가까이 일하고 계시던 분이었다. 예전 기억으로는 개발을 많이 안해본 새로운 인턴이 오더라도, 1~2주 내로, 혹은 길면 한 달 정도 뒤에는 다른 개발자들의 터미널처럼 개발자다운 터미널 설정으로 바뀌어 있었다. 그런데 이분의 터미널은 그렇지 않았다. 그렇다고 일을 안하는 것도, 못하는 분도 아니었다. 혼자 프로젝트 하나를 맡아 하고 있는 개발자였고, 성과도 내고 있었다. 그런데 왜 그랬을까?
MIT에서 하는 온라인 수업 중에 The Missing Semester of Your CS Education 라는 수업이 있다. AI를 활용해 개발하기 전인 2019년부터 만들어진 강의인데, 강의가 만들어진 취지가 인상적이다.
수년간 MIT에서 여러 과목을 가르치면서 학생들이 유용한 도구를 제대로 활용하는 데 필요한 지식이 부족하다는 사실을 거듭 확인했습니다. 컴퓨터는 수작업을 자동화하기 위해 만들어졌지만, 학생들은 반복적인 일을 여전히 손으로 처리하거나 버전 관리 시스템, 텍스트 편집기 같은 강력한 도구를 제대로 활용하지 못하는 경우가 많습니다. 최악의 경우 데이터가 손실되거나 특정 작업을 완료하지 못할 수 있습니다. 적어도 비효율과 시간 낭비로 이어집니다. 이러한 주제는 대학 교육과정에 포함되지 않습니다. 학생들은 이런 도구를 사용하는 법, 적어도 효율적으로 사용하는 법을 배우지 못해 간단해야 할 작업에도 시간과 노력을 낭비합니다. 표준 컴퓨터 과학 교육과정은 학생들이 훨씬 수월하게 일할 수 있도록 돕는 컴퓨팅 생태계의 중요한 주제들을 간과하고 있습니다.
MIT조차도 개발자가 되기 위해 필요한 것들을 정규 과목에서 다루지 못하고 있다. 그래도 다행인 건, 학교에서 배우지 못하더라도, 인턴을 하거나, 개발자로 취업을 하면 같이 있는 선배들에게, 동료들에게 배울 수 있는 기회가 있었다. 왜냐하면, 우리는 각자 일하지 않고 팀으로 일했기 때문에, 함께 일하면서 다른 사람의 터미널과 좋은 개발 습관, 여러 가지 관습을 배울 수 있는 환경이 제공되어 있었기 때문이다. 그러나 지금은 그걸 배울 수 있을까?

예전에는 팀으로 일했기 때문에, 어디 출신이라는 것이 그 사람의 실력을 보장해주는 징표가 되었다. 빅테크 출신 개발자라는 것은 그곳에 들어갈 수 있을 정도로 실력이 있으면서, 그곳에서 기술의 최전선에서 함께 배우고 성장한 사람임을 보장해 주었다. 그러나, 이제는 어떻게 될까? 보장해 줄 수 있을까?
합창단의 시대는 지나가고 모두가 아티스트가 되어야 하는 세상이 될 것이다. 예를 들어, 아이유가 속해 있는 이담 엔터테인먼트 소속 가수라는 게, 이 사람이 아이유만큼 노래를 잘 부른다는 걸 보장해주지 못하듯이, 앞으로는 “OOO 출신”이라는 게 더 이상 그 사람의 실력을 보장해 주지 못할 것이다. OOO에 다니는 A와 B는 소속만 같을 뿐, 단절된 상태로 일하고 있을 테니.
9월부터 서울 모 대학 AI 대학원 겸임교수가 되었다. 그리고 3학점짜리 대학원 수업을 맡게 되었다. AI 관련 논문 세미나를 학생들에게 맡기는 강의였지만, 그렇게만 하기 싫었다. 앞서 말한 단절을 수업에서 다루지 않으면, 이제는 회사에 가서도 배우기 어려울 것 같은 것들을 함께 알려주면 좋겠다고 생각했다. 그래서 절반은 내가 준비하고, 같이 Hands-on을 하는 시간으로, 나머지 절반은 수업의 내용대로 학생들에게 맡기는 세미나 발표로 수업을 꾸렸다.
1강_Introduction to Modern & Postmodern SWE_공개용
Introduction to Modern and Post-Modern Software Engineering
아직까지는 우당탕탕하고 있다. 대학원에서 연구를 하는 학생들과 나의 생각의 갭이 예상보다 컸고, 나도 이런 한 학기 강의는 처음하다보니 매주 우당탕탕의 연속이다. 그래도 학생들도 배우고, 나도 배우는 게 계속 생기지 않을까? 예를 들면, 같이 Software Design Document 만들기 hands-on처럼.
ThreadsLaeyoung Chang (@laeyoung) on Threads
Laeyoung Chang (@laeyoung) on Threads
답을 찾지는 못했다. 아직도 찾는 중이고, 솔직히 답을 찾을 수 있을지도 모르겠다. 모든 지식 노동자가 전망을 가질 수 있는 세상이 올지. 그래도 누군가는 사과나무를 계속 심어야 한다. 요즘 취향으로는 사과나무보다는 무화과나무가 더 끌리긴 하다만.
—
PS. 앞서 소개한 주니어 개발자분과는 1-on-1을 하면서 MIT 강의를 한 강씩 함께 진행했다. 덕분에 나도 배웠고, 그분도 배웠으며, 서로에 대한 이해도 깊어졌다고 생각한다.
