(퍼온 글) 마지막 세대의 인간 코더들

마지막 세대의 인간 코더들
우리의 직업이 실시간으로 사라져가는 것을 지켜보고 있습니다.

원 글 : The Last Generation of Human Coders
Watching our own profession fade in real time.
글쓴이 : Maxime
출처 : https://medium.com/loop-of-thought/the-last-generation-of-human-coders-717c28eb549d

[아래는 구글번역 입니다]

혹시 여러분도 자신의 직업이 실시간으로 사라져가는 걸 지켜보는 듯한 느낌을 받은 적 있나요? 2025년에 코드를 작성하는 게 딱 그런 느낌입니다. 코딩 자체가 재미없어서가 아니라, 코드가 마침내 컴파일될 때 느껴지는 짜릿한 도파민 분비는 여전히 즐겁거든요. 다만, 제가 이 일을 손으로 직접 하는 마지막 세대에 속하게 될지도 모른다는 생각 때문에 그런 겁니다.

존재하지 않았던 도제 교육

제가 코딩을 배우기 시작했을 때는, 밤늦도록 텅 빈 에디터를 멍하니 바라보며 어처구니없는 실수를 저지르고, 그 실수를 어렵게 고치는 과정이었습니다. 디버깅은 일종의 통과의례였죠. 터미널에 코드를 한 줄씩 쏟아내며 수정해야 했습니다.

하지만 지금은 어떨까요? 초보 개발자는 단 한 번의 프롬프트로 그 고통의 절반을 건너뛸 수 있습니다. “문서를 읽어라”, "RTFM(Read the Documents Manual)"은 잊으세요. 매뉴얼은 이제 제가 만났던 어떤 멘토보다도 빠르고, 친절하고, 인내심 있는 AI에게 맡겨졌습니다. 물론 좋은 점도 있지만, 이는 수많은 개발자 세대를 키워낸 도제 교육 모델이 조용히 사라지고 있다는 것을 의미합니다.

자동화가 서서히 스며들고 있습니다.

처음에는 자동 완성 기능이었습니다. 그다음에는 코파일럿(Copilot)이 전체 기능을 제안해 주었죠. 이제는 AI 도구가 프로젝트 전체를 구성하는 뼈대 역할을 하고 있습니다. 당시에는 각 단계가 무해해 보였습니다. 지루한 CRUD 앱 개발 시간을 몇 시간이라도 줄여준다면 누가 마다하겠습니까?

우리는 계속해서 이것은 단지 보조 도구일 뿐이라고, 실제 코딩은 여전히 ​​우리의 몫이라고 되뇌입니다. 하지만 그 사이, 보조 도구는 점점 더 많은 작업을 처리하고, 우리는 마치 아무도 읽지 않는 잡지의 지친 편집자처럼 기계가 만들어낸 결과물을 교정하는 일만 남게 됩니다.

장인정신의 환상

예전에는 함수의 우아함이나 데이터 구조 선택의 기발함에 자부심을 느꼈습니다. 물론 그런 것들은 여전히 ​​중요하지만, 예전만큼은 아닙니다. AI가 뼈대를 만들어내면 장인정신은 눈에 띄지 않게 되기 때문입니다. 루프를 직접 손으로 짰는지 아무도 신경 쓰지 않습니다. 그저 제대로 작동하는지만 알면 됩니다.

어쩌면 장인정신은 우리가 생각했던 것만큼 중요하지 않았을지도 모릅니다. "클린 코드"는 반은 미적인 요소이고 반은 맹목적인 숭배였을지도 모릅니다. 기계는 함수가 예쁜지에는 관심이 없습니다. 그저 제대로 작동하는지만 알면 됩니다.

우리에게 무슨 일이 벌어질까요?

그렇다면 인간 코더에게 남은 것은 무엇일까요? 저는 "프롬프트 엔지니어"라는 말에 동의하지 않습니다. 그건 그냥 "틀에 입력하는 법만 아는 사람"이라는 말을 그럴듯하게 포장한 것에 불과하니까요.

제 생각에는 우리의 가치가 그보다 더 상위 단계로 옮겨갈 것 같습니다. 문제 정의, 시스템 설계, 첫 코드를 작성하기 전에 올바른 질문을 던지는 것 말이죠. 인공지능이 아직 제대로 해내지 못하는 부분이 바로 이런 것들입니다. 맥락, 정치적인 문제, 인간적인 변수 등 인간적인 요소가 개입되기 때문입니다.

하지만 솔직히 말해서, 이건 더 이상 "코딩"이라고 할 수 없습니다. 완전히 다른 무언가일 겁니다. 어쩌면 아키텍처, 제품 전략, 아니면… 우리 뒤에 나타날 새로운 역할에 더 가까울지도 모르죠.

마지막 세대

저는 가끔 제 직업을 1900년대 초 대장간의 작업과 비교해 봅니다. 여전히 가치 있고, 나름대로 낭만적이지만, 공장에서 부품을 찍어내는 속도보다 망치질하는 속도가 훨씬 빠른 시대에 이미 그 시대는 저물어 가고 있습니다. 살아남은 대장장이들은 기계를 이겨내지 못했습니다. 그들은 다른 무언가가 되었습니다.

그래서 저는 우리가 옛날 의미의 인간 코더, 즉 키보드 앞에 앉아 버그와 해킹, 그리고 밤샘 작업의 기적들을 겪으며 시스템을 처음부터 구축해 온 마지막 세대일지도 모른다고 생각합니다.

문제는 코딩이 사라질 것인가가 아닙니다. 우리가 사랑했던 코딩과는 전혀 다른 미래의 모습을 받아들일 수 있는가, 그리고 코드를 작성하는 대신 미래를 만들어갈 준비가 되어 있는가입니다.

4개의 좋아요

위 글에 대한 댓글들


대장장이 대신 자동차 정비공을 비유로 드는 게 더 적절할 것 같습니다.
AI가 아무리 많은 코드를 "작성"한다 해도(이 표현을 다소 느슨하게 사용하긴 하지만!), 그 결과물을 읽고 수정할 수 있는 개발자가 여전히 필요할 겁니다. 그것도 최상의 경우죠! (AI가 생성한 코드 중 상당수는 완전히 엉망입니다. 뼈대 역할은 할 수 있겠지만, 실제 운영 환경에서 사용할 코드는 절대 안 되죠.)


우선, 당신은 법학 석사(LLM) 학위 소지자들을 너무 과대평가하고 있습니다. 그들은 코딩을 그렇게 잘하지 못합니다. 둘째로, 코딩은 업무의 10%도 채 되지 않습니다.


제 생각엔 앞으로도 꽤 오랫동안 이 분야에 있을 것 같아요. 주니어 개발자들이 CoPilot이 작성한 코드가 작동하지 않을 때 왜 그런지 몰라서 몇 시간씩 헤매는 걸 보면 안타깝습니다. 코드가 무슨 역할을 하는지 이해하지 못하기 때문이죠.


AI 시스템 통합 전문가인 친구에게서 전화가 왔는데, 그 친구가 사용하는 Claude 소프트웨어가 프로덕션 환경에 자동 배포될 때 프로덕션 데이터베이스 전체를 삭제해 버렸다고 하더군요. 문제는 데이터베이스를 백업하고, 테이블을 수정하고, 데이터를 복원하는 SQL 스크립트에 있었습니다. Claude는 스크립트가 100% 정확하다고 확신했죠. 제가 5분 만에 오류를 찾아 수정하고 데이터베이스 백업을 복원했습니다. 그런데 다음 날 Claude가 다시 실행되면서 제 스크립트 변경 사항 때문에 프로덕션 데이터베이스를 또 삭제해 버렸습니다.


새로운 세대의 코더들이 등장한 것은 사실이지만, “무언가를 작동시키는” 책임을 자동화된 프로세스, 더 나아가 인공지능(AI)에 위임할 수 있다고는 생각하지 않습니다. AI가 생성한 코드가 알 수 없는 이유로 오류를 일으키거나, 자원과 시간이 무한한 것처럼 자원을 낭비하는 것을 누가 이해하고 고칠 수 있을까요? AI가 애플리케이션을 디버깅하거나 프로파일링하는 데 필요한 과학적 프로세스에 접근할 수 있을까요? 더 나아가 필요한 수정 사항과 최적화 방법을 찾아낼 수 있을까요?
우리 직업의 핵심은 항상 문제 영역에 대한 깊은 이해를 바탕으로, 복잡하고 난해한 문제를 응집력 있는 구조로 분해하고, 그 이해와 구조를 반영하는 코드를 생성한 다음, 왜 문제가 발생하는지 진단하는 것이었습니다. 문제는 우리가 문제 영역의 어떤 중요한 부분을 이해하지 못해서 발생하는 것일까요? 아니면 구조가 그 이해를 제대로 반영하지 못해서 발생하는 것일까요? 아니면 코드를 작성하는 방식에 문제가 있는 것일까요? 인공지능이 할 수 있는 일 중 하나는 주어진 프롬프트에 따라 코드를 생성하는 것인데, 그 프롬프트가 구조나 문제 영역을 정확하게 명시하고 있다는 가정 하에 그렇습니다.
저는 제 코드에 자부심을 느낍니다. 제가 코드를 공개하거나 제품을 출시할 때, 저는 그 코드가 어떻게 작동하는지 충분히 이해하고 있으며, 코드는 저나 다른 사람(제 현재 기억력과 사고방식에 따라 보통 저 자신이겠지만)이 코드를 가져와 새로운 발견이나 확장을 적용하면서도 전체 시스템을 망가뜨리지 않을 것이라는 확신을 가질 수 있을 만큼 명확하게 작성되어 있습니다. 진정으로 유용한 소프트웨어 제품은 문제 영역에 대한 이해가 확장되거나 변화함에 따라 지속적으로 유지 관리되고 발전하는 제품입니다.
저는 인공지능이 아무런 근거 없이 전체 애플리케이션을 "직관적으로 코딩"할 수 있다고 믿을 의향은 있지만, 그 믿음은 거기까지입니다. 저는 그러한 애플리케이션에서 생성된 코드가 의미 있는 주석이나 바람직한 규칙이 부족할 가능성이 높고, 유지 관리는 물론 수정까지 가능할 것이라고는 생각하지 않습니다. 이 코드를 수정하려는 시도는 아마도 완전히 새로운 오류와 눈에 띄지 않는 실수들을 잔뜩 만들어내어 코드를 처음부터 다시 작성하게 될 것이고, 결국 두 번째 또는 그 이후 세대의 코드가 원래 목적에 부합할 것이라는 희망은 사막의 이슬처럼 사라져 버릴 것입니다.


한 세대 정도 더 있을 수 있겠지만, 두 세대를 넘지는 않을 것 같습니다. 분석해 주셔서 감사합니다.


펀치 카드에서 어셈블리로, 그리고 어셈블리에서 C 언어로 넘어갈 때도 똑같은 말이 나왔을 거라고 생각합니다. 하지만 저도 시간 문제일 뿐이라는 데 동의합니다. 하지만 다른 분들이 말씀하신 것처럼, 적어도 가까운 미래에는 AI가 생산 수준의 복잡한 작업을 처리하기에는 역부족일 겁니다. 심지어 AI가 생성한 코드를 수정하는 전문가라고 주장하는 사람들까지 나타나기 시작했는데, 며칠 전에 이 사이트에서 그런 프리랜서들에 대한 글을 읽었습니다.
무언가를 컴파일하고 작동시키는 데서 오는 그 짜릿함, 그 창의력을 사람들이 결코 알지 못한다는 사실이 정말 안타깝습니다. 제가 90년대에 이 분야에 뛰어든 가장 큰 이유 중 하나가 바로 무언가를 만들고 작동 원리를 알아내는 것이었거든요. 지금은 스크립트 키티와 프롬프터밖에 없는 것 같습니다. 레딧에서 "해킹은 어떻게 시작하나요?"라는 질문을 얼마나 많이 봤는지 모르겠네요. (우선, 그런 사람들은 해커와 크래커의 차이점조차 제대로 모르는 경우가 많아요.) 제가 컴퓨터 아키텍처, OSI/IP 모델, TCP/IP 핸드셰이크 작동 방식, DNS, DHCP 등에 대해 설명해 드려도 대부분 답글이 없어요. 한 명은 궁금한 점이 있으면 DM 보내라고 했는데, 일주일쯤 지나서 다시 연락이 왔죠. 아마 고수준 도구만 배우고 싶었던 것 같아요. 재밌게 배우고 있다가도, 구글 DNS 서버 대신 ISP DNS 서버를 대상으로 nmap 스캔을 해보면 낭패를 보겠죠. 하하… 아무튼, 푸념은 이쯤 하고요.


맞아요, AI 없이 코딩하는 건 어려웠지만, 한밤중에 버그를 해결했을 때의 성취감은 정말 컸어요. 회사뿐 아니라 우리 자신에게도 큰 성취였죠.


늘 그랬듯이, 프로그램이 제대로 작동하면 아무도 내부 작동 방식에는 신경 쓰지 않습니다. 그리고 제대로 작동하지 않더라도 여전히 신경 쓰지 않지만, 최대한 빨리 고쳐주기를 바랍니다.

1개의 좋아요

좋은 내용 감사합니다.
그런데 이런 글은 긱뉴스에 쓰면 더 좋겠다는 생각이 들었습니다.
어차피 여기 오는 사람들은 긱뉴스도 열심히 볼 것 같아서요.

2개의 좋아요

재밌습니다!

2개의 좋아요