7살에 프로그래밍을 시작해 50세가 된 지금, 내가 사랑했던 것이 변했어요
(jamesdrandall.com)- 1983년부터 42년간 프로그래밍을 해온 개발자가 AI 시대의 도래로 소프트웨어 개발의 본질이 변화하고 있음을 체감하며 느끼는 복잡한 심경을 담은 글
- 8비트 컴퓨터부터 486까지, 기계의 모든 바이트를 이해하고 직접 제어하던 시대에서 시작해 수많은 기술 전환을 거쳐왔지만 핵심 역량은 항상 이전됨
- AI는 기존의 플랫폼·언어·패러다임 전환과 달리, "잘한다는 것"의 의미 자체를 바꾸는 전환
- 코드를 직접 작성하는 대신 검토하고 지시하는 역할로 바뀌면서, 퍼즐을 풀던 친밀한 피드백 루프가 사라지고 있음
- 42년의 경험으로 더 빠르게 제품을 만들고 있지만, 개발에서 느끼던 경이감과 정체성이 변화하는 과도기에 놓여 있음
나를 만든 시대
- 1983년, 7살에 세탁기 칩보다 처리 능력이 낮은 기계에 BASIC을 타이핑하며 첫 코드 작성
- 모든 RAM 바이트의 용도를 추적할 수 있었고, 화면의 모든 픽셀을 직접 배치했으며, 의도에서 결과까지의 경로가 직접적이고 가시적이었음
- 8비트부터 486DX2-66까지가 가장 좋아하는 시기로, 각 기계가 고유한 개성을 지님
- Sinclair Spectrum의 attribute clash, Commodore 64의 SID 칩이 설계 의도를 넘어선 활용, NES의 스캔라인당 8스프라이트 제한으로 인한 플리커링 트릭 등
- PC는 스프레드시트용 베이지색 상자에서 286, 386, 486을 거쳐 Doom을 구동하는 게이밍 파워하우스로 진화
- 단순 제품이 아니라 가시적 트레이드오프가 있는 엔지니어링 모험이었으며, IRQ 충돌, DMA 채널, CONFIG.SYS 및 AUTOEXEC.BAT 최적화, 메모리 관리자 등을 다루는 것 자체가 시스템 엔지니어 역할
- id Software 같은 소규모 팀이 아무도 규칙을 정하지 않은 상태에서 과감한 기술적 결정을 내림
- Carmack의 Wolfenstein 레이캐스팅, Doom의 VGA Mode X 트릭 등 실제 제약을 밀어붙여 진정으로 새로운 것을 만들어낸 사례
- Plug and Play 등장, Windows의 추상화로 와일드 웨스트가 종료되었고, 컴퓨터는 존중과 이해를 요구하는 매혹적인 기계에서 가전제품으로 변모
약속의 변질
- 초기에는 컴퓨터가 무엇이 될 수 있는지에 대한 진정한 낙관주의 존재 — Spectrum을 가진 아이가 스스로 무엇이든 만들 수 있었고, 초기 웹은 인류 역사상 가장 큰 평등화 수단처럼 느껴짐
- 그 희망은 불쾌한 방향으로 변질 — 사랑했던 기계들이 감시와 추출의 도구가 됨
- 연결을 약속했던 플랫폼들은 실제로는 사용자를 수익화하기 위해 만들어진 것
- 땜장이(tinkerer) 정신은 자연사한 것이 아니라 인수되어 광고 클릭 최적화에 투입됨
- 도구가 바뀐 것과는 다른 종류의 상실 — 사랑했던 것이 변한 후, 자랑스럽지 못한 일에 동원됨
거쳐온 전환들
- 40년간 수많은 기술 전환 경험 — 새 언어, 새 플랫폼, 새 패러다임, CLI에서 GUI, 데스크톱에서 웹, 웹에서 모바일, 모놀리스에서 마이크로서비스, 테이프·플로피·하드드라이브·SSD, 하루살이처럼 등장하고 사라지는 JavaScript 프레임워크
- 각 물결마다 새로운 것을 배워야 했지만 핵심 기술은 이전 가능 — 새 플랫폼을 배우고 시스템 작동 방식에 대한 기존 이해를 적용하며 계속 구축
- 더 이상 존재하지 않는 플랫폼에 소프트웨어를 출시한 경험까지 포함해, 업계가 새 방향으로 돌 때마다 경험이 복리로 축적됨
- 경험 많은 개발자와 업계의 암묵적 합의: "것들은 변하지만 이해는 지속된다"
이번에는 다름
- 이전 기술 전환은 "새로운 것을 배우고 기존 기술을 적용하는" 구조였지만, AI는 새 플랫폼·언어·패러다임이 아니라 "잘한다는 것의 의미" 자체를 바꾸는 전환
- 점진적으로 인식 — 기능 구축, 아키텍처 설계 시 여전히 같은 일을 하고 있지만 흥미로운 부분이 비워진(hollowed out) 느낌
- 우아한 해결책을 찾고, 제약과 씨름하고, 무언가가 맞아떨어지는 만족감을 느끼던 부분이 점점 우아함에 관심 없고 만족을 느끼지 못하는 모델에 의해 처리됨
- 더 저렴하고 빠르지만 속이 비어 있음
- 이제 코드를 직접 타이핑하지 않고 검토·지시·수정하는 역할로 전환 — 42년간 축적된 무엇이 작동하고 무엇이 아닌지에 대한 판단력이 가치 있다는 것을 알지만, 다른 종류의 작업이며 같은 느낌이 아님
- 피드백 루프가 변하고 친밀감이 사라짐 — 수십 년간 밤새게 했던 퍼즐, 추적, 마침내 왜 작동하지 않는지 이해하는 순간이 프롬프트와 응답으로 압축됨
- 경험의 극히 일부만 가진 사람들이 표면적으로 유사한 결과물을 생산하는 것을 목격 중 — 장인 정신의 차이는 실재하지만 외부에서 보기 어렵고, 가치 매기기도, 내적으로 느끼기도 어려워짐
추상화의 탑
- LinkedIn에서 20대 초반, 경력 몇 년 차 개발자가 AI로 "무슨 일이 일어나는지 모르겠다"고 한탄하는 것을 봄
- 그들은 이미 추상화 체인 꼭대기에서 흔들리는 젠가 탑 위에 있었음을 인지하지 못함
- TypeScript → JavaScript 컴파일 → C++로 작성된 V8 엔진 → OS 커널 시스템 콜 → 한 번도 생각하지 않은 코어의 스레드 스케줄링 → 캐싱 레이어가 있는 메모리 컨트롤러 → 한 줄도 읽어보지 않은 npm 400개 패키지
- 추상화의 배는 수십 년 전에 이미 출항했으나, 각 레이어가 점진적으로 도착하여 전체 스택을 이해하고 있다는 척이 가능했을 뿐
- AI는 그 척을 더 이상 유지할 수 없게 만든 레이어
- 전체 기계를 이해하는 느낌을 기억하고 있다는 것과 그것을 잃는 일종의 슬픔은 한 번도 경험하지 못한 사람은 온전히 느낄 수 없음
남아있는 것들
- 경험이 그 어느 때보다 가치 있고, 시스템 사고와 아키텍처 판단이 AI가 대체할 수 없는 것이며, 장인 정신이 다른 형태로 지속된다는 것은 사실
- 복잡한 작업 시 — 시스템 수준 의존성 관리, 여러 상호작용 사양에 걸친 멘탈 모델 유지, 무언가가 일관성 있게 느껴지도록 하는 수천 가지 작은 결정 — 여전히 AI가 갖지 못한 것을 가져옴: 감각(taste), 판단력, 수십 년의 패턴 인식
- 코드 생성이 저렴해지면 병목은 무엇을 요청할지 아는 사람, 출력이 미묘하게 잘못된 것을 감지할 수 있는 사람, 전체 그림을 유지할 수 있는 사람으로 이동 — 타이핑은 결코 어려운 부분이 아니었음
- 하지만 같은 느낌이라고 하면 거짓말 — 경이감에 접근하기 어려워짐, 순전한 끈기와 독창성으로 무언가를 알아내는 발견의 감각이 압축됨. 압축 속에서 무언가를 얻지만 무언가를 잃음
휴경기(Fallow Period)
- 최근 50세가 되었으며, 4년간의 강렬한 제작과 정체성 형성 이후 "휴경기(fallow period)"라고 부르기 시작한 시기에 진입
- 번아웃과는 다름 — 영구적이라 생각했던 건물 아래 지반이 움직이며 새 기반을 찾으려는 과정
- 깔끔한 결론은 없음 — "스택 위로 올라가라", "도구를 받아들여라", "AI가 못하는 것에 집중하라"는 조언이 아마 맞겠지만 느낌을 해결해주지는 못함
- 42년을 바친 것이 더 이상 알아보지 못할 수 있는 무언가로 변했다는 느낌 — 반드시 더 나쁘지는 않지만 다름, 그 주위에 세운 정체성에 도전하며 예전처럼 만족을 주지 않음
- 40세 이상 많은 개발자들이 비슷한 감정을 느끼면서도 말하지 않을 것이라 추측 — 업계가 젊음과 적응력을 숭배하기에 "예전 같지 않다"는 말이 뒤처지는 것처럼 들리기 때문
- 뒤처지는 것이 아님 — 새 도구를 활용해 그 어느 때보다 빠르게 구축하고 몇 년 전에는 꿈만 꾸던 제품을 만들고 있지만, 동시에 "만든다"는 것이 이제 무엇을 의미하는지 파악 중
- 7살에 기계가 시킨 대로 정확히 실행하고 탐구하고 궁극적으로 알 수 있을 것 같아 프로그래밍을 시작했으며 그것이 마법처럼 느껴졌고, 50세인 지금 마법은 다르며 그것과 함께하는 법을 배우는 중
저도 83년 BASIC으로 시작했고,
NEC의 스캔라인당 8스프라이트 제한을 동일하게 MSX에서 겪었었는데(MSX1은 4개), 시대와 경험을 공유한 글을 읽게되어 너무 반갑습니다.
현재 고민의 내용도 잘 이해가 됩니다.
저도 Basic 으로 시작해서 어느새 40년이 넘었네요.
주판 배우던 시절도 있었는데, 이제는 AI 에이전트를 부리고 있으니 세상 참 빠르게 변합니다.
근데 뭔가 글쓴이 같은 느낌은 없고, 그냥 요즘 돌아가는게 재미있어요.
Hacker News 의견들
- 나는 61세이며 57세에 은퇴했음. 1980년 무렵 BASIC으로 시작했고, 대학 시절엔 Macintosh용 게임을 만들다 1995년에 Apple에 입사하면서 본격적인 커리어를 시작했음
시간이 지나면서 OS의 복잡성 증가와 소프트웨어의 사회적 중요성이 커지며 개발 환경이 점점 나빠졌다고 느낌
1984년의 Mac은 이미 풍부한 그래픽 라이브러리를 갖추고 있었고, 추상화는 필연적인 흐름이었음. 나는 오히려 잘 설계된 프레임워크를 즐겼음
하지만 소프트웨어가 삶을 지배하게 되면서 ‘엔지니어가 주도하던 시대’가 끝났고, Agile, 단위 테스트, 코드 리뷰 같은 관리 중심 문화가 코딩의 즐거움을 빼앗았음
지금은 은퇴 후 다시 자유롭게 코딩하며 옛 시절의 ‘카우보이 프로그래머’ 감성을 즐기고 있음- 이 글은 정말 아름답게 쓰인 회고라고 생각함
- AI 도구로 인해 혼란을 느끼는 사람들에게 조언하자면, 자신을 믿고 자신감을 유지해야 함
AI가 만든 코드의 품질은 결국 그 도구를 사용하는 개발자의 수준에 비례함. 훌륭한 개발자는 여전히 훌륭한 결과를 냄
AI를 쓰더라도 중요한 부분은 직접 다듬으며 두뇌를 쓰는 시간을 가질 수 있음. 진짜 도전은 기술이 아니라 시간 관리라고 생각함- 나에게 문제는 실력보다도, 코딩 자체의 즐거움이 사라진다는 점임. AI에게 맡기는 건 지옥 같은 일로 느껴짐
- 나도 비슷함. LLM이 헛소리를 덜 하게 만드는 일은 전혀 즐겁지 않음. 이 때문에 업계를 떠날까 고민 중임
- 많은 사람들이 간과하는 존재론적 불안이 있음. 올해만 6,600억 달러가 AI 인프라에 투자되는데, 앞으로의 모델은 얼마나 강력해질지 두려움
- 소프트웨어를 제대로 이해하지 못하고 인력 감축만 노리는 회사들은 결국 망할 것임. 반대로 좋은 개발자는 AI 덕분에 더 빠르게 훌륭한 소프트웨어를 만들 기회를 얻음
- 나도 50세이고 1985년에 코딩을 시작했음. Steve Yegge의 인터뷰에서 말한 “잃어버린 마법을 되찾는 엔지니어들” 이야기에 깊이 공감함
예전엔 밤새 어셈블리 렌더링 라이브러리를 짜며 마법을 부리는 기분이었음. Docker 컨테이너에는 그런 마법이 없다고 생각했지만, 요즘 다시 새벽 2시에 모니터 불빛 아래서 마법을 부리는 기분을 느끼고 있음- 80~90년대의 문제들은 완벽히 균형 잡힌 MMORPG 같았음. 노력하면 해결할 수 있었고 성취감이 컸음. 하지만 AI 시대의 코딩은 ‘GOD 모드’ 같아서 성취감이 사라짐
- “Docker엔 마법이 없다”는 말엔 동의 못함. 여전히 마법 같은 걸 만들 수 있음. 나는 Relic의 게임들이 내 인생을 바꿨다고 느꼈음. 당신이 지금 하는 일이 정말 그 마법을 이어가는 일인지 스스로 물어보길 바람
- 당신이 AI 스타트업 Mnemom에서 일한다는 점을 공개해야 한다고 생각함. 그걸 알고 나니 발언이 다르게 들림
- 나도 어릴 때부터 코딩을 했고, 여전히 이 공간을 사랑함. 문제는 공간이 아니라 탐구심을 잃는 것임. 새로운 걸 시도하고, 어려운 걸 해보는 게 핵심임
- 나는 내 정체성과 장인정신을 잃은 걸 슬퍼하지만 동시에 AI의 마법도 즐기고 있음. 옛날 스크린세이버 코드를 Claude에게 변환시켜 다시 실행했을 때 진짜 마법 같았음
- 개발자에서 팀 리드나 매니저로 전환할 때 느끼는 감정과 비슷함. 이제는 코드보다 팀을 성장시키는 게 중요함
나도 50세인데, AI 코딩 어시스턴트 덕분에 예전엔 시간 부족으로 못 하던 개인 프로젝트들을 실현할 수 있게 되어 기대됨- 최근 몇 년간 프로젝트 매니저로 일하면서 느낀 건, AI 코딩은 프로그래밍이라기보다 프로젝트 관리에 가깝다는 점임. 그래도 스스로 코딩하는 즐거움은 포기하지 않음
- 많은 개발자들이 관리직으로 가길 꺼리는 이유가 여기에 있음. 하지만 이제는 LLM 팀을 관리하는 시대가 올 것 같음
- 개인 프로젝트처럼 결과에 부담이 없을 땐 초보자들을 관리하는 게 재밌지만, 실제 업무에선 스트레스가 큼
- 나도 리더 역할을 해봤지만 싫었음. 나는 직접 만드는 걸 좋아함
- 리더가 되면 생산성을 다른 방식으로 측정해야 해서 자아 인식이 흔들림. AI 시대의 생산성 기준도 아직 불안정함
- 나는 젊지만 AI를 쓰는 데서 거의 즐거움을 느끼지 못함. 코딩은 여정 자체가 즐거웠는데, AI는 그걸 빼앗음. 마치 책의 마지막 장만 읽는 기분임
챗봇과 함께 개발하는 건 폼을 채우는 일처럼 느껴짐. 그래도 세상은 변하니 받아들여야 함- 나도 퍼즐을 푸는 듯한 코딩의 즐거움을 느꼈는데, 프롬프트 조정은 그걸 대체하지 못함
- 코딩을 요리에 비유하면, 어떤 사람은 패스트푸드 공장을 원하고, 어떤 사람은 손맛을 즐김. AI는 전자를 위한 혁신임
대부분의 사람들은 장인정신보다 효율을 원하고, 진짜 장인은 드물다는 사실을 깨닫게 됨. 결국 우리는 또 한 조각의 문화를 잃게 될지도 모름
- 50대 중반으로, 예전엔 BASIC으로 코딩을 시작했음. 예전엔 디버깅이 모험이었고 성공하면 짜릿했음
하지만 LLM이 만든 코드를 디버깅하는 건 남의 코드를 고치는 느낌이라 성취감이 없음. 완성은 빠르지만 이제는 내 것이 아닌 듯함 - “어릴 때는 기계가 내 말을 그대로 따르는 게 마법 같았다”는 말에 공감하지만, 이건 세대의 문제라고 생각함
지금의 아이들도 여전히 마법을 느끼고 있음. 50년 뒤엔 “GPT-6.2 RAG 튜닝하던 시절이 그립다”는 말이 나올 것임- 하지만 지금은 폐쇄적 시스템이 너무 많음. 예전엔 config.sys를 마음껏 만졌지만, 이제는 스마트폰 파일 경로 하나 얻기도 힘듦
- 나는 젊지만 그 글쓴이의 감정에 공감함
- 과거엔 config.sys 하나면 됐지만, 지금은 수천 개의 구성요소가 있음. AI는 이 복잡성을 다루게 해주는 도구임. 지금은 오히려 AI의 황금기 초입일지도 모름
- AI는 시니어 개발자들을 두 부류로 나누는 듯함. 한쪽은 새로운 경이로움을 느끼고, 다른 쪽은 상실감을 느낌
나는 전자에 속함. AI 덕분에 시간 부족으로 못 하던 걸 만들 수 있음. 핵심 기능에 집중할 수 있게 되었음- 첫 번째 부류는 아마 취미로 개발하는 사람들, 두 번째는 생계형 개발자일 것임. 생계가 걸리면 태도가 달라짐
- 나는 두 감정을 다 느낌. AI의 발전 속도를 보면 내 커리어의 시한이 다가오는 것 같음
- UI를 대충 넘기면 형편없는 사용자 경험이 생김. 모든 세부를 중요하게 여기는 개발자일수록 AI 위임을 싫어함
- 나도 AI로 Rust 앱을 만들며 즐기지만, 밤새 고생해 완성했을 때의 성취감은 사라졌음
- 나도 비슷한 세대임. 2010년대 초반부터 기술의 흥분감이 급격히 식음. 지금은 레트로 하드웨어로만 즐김
미래의 기술에 대한 기대감이 사라져 다른 분야로 눈을 돌렸음- 사실 이런 감정은 AI 이전부터 있었음. VR, 소셜미디어, 크립토 등으로 기술의 매력이 줄어들었음. AI는 그래도 실질적 유용성이 있어 다르게 느껴짐
- 나도 같은 고민을 함. 기술 외에 장인정신을 살릴 수 있는 직업이 뭐가 있을지 모르겠음
- 지금은 무슨 일을 하며 생계를 유지하는지 궁금함
- 나는 독립 컨설턴트로 일하고 있어서 자유롭게 코딩함. 문제만 해결하면 방법은 내 마음대로임
대기업에 있을 때는 재미가 없었지만, 지금은 매일 IDE 앞에 앉는 게 즐거움
프로그래밍이 재미없어졌다면 컨설팅으로 전환해보길 권함. 독립성과 통제권이 다시 즐거움을 줌- 다만 AI 에이전트 도구가 컨설턴트 수요를 줄일 수도 있음. 하지만 AI가 만든 엉성한 코드를 고치기 위해 오히려 외부 전문가가 필요해질 수도 있음