- 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세인 지금 마법은 다르며 그것과 함께하는 법을 배우는 중