- IDE 자동완성에서 GitHub Copilot·Claude Code로 이어진 경험은 AI가 생각을 더 빠르게 코드로 옮기고 기존 코드를 분석·수정하는 실용적 개발 도구가 됐음을 보여줌
- 초기 실패만 보고 AI를 외면했지만 Claude의 질의응답과 바이너리 역공학, Ollama 로컬 모델을 직접 경험한 뒤 모든 AI 기술을 무용하거나 해롭다고 단정하는 태도도 순진하다고 판단함
- 40년 전 방식으로 고전 Macintosh 소프트웨어를 직접 만드는 과정에서는 결과물뿐 아니라 C와 플랫폼을 배우고 커뮤니티를 형성하는 노동과 학습 자체의 가치를 얻음
- 수년간 개발한 고전 Mac용 브라우저와 유사한 제품을 AI가 더 많은 기능과 세련된 인터페이스로 빠르게 생성하자, 자신의 작업이 묻히고 그동안의 노력이 무의미해질 수 있다는 불안을 느낌
- 바이브 코딩 도구가 지금 유용하다면 커뮤니티의 사용을 받아들이면서 자신의 버전은 계속 직접 개발해 준비됐을 때 공개할 수 있으며, Claude의 결과물 역시 기존 인간의 코드에 의존함
자동완성이 개발자의 사고 속도를 따라잡다
- 2019년부터 Andreas Kling의 프로그래밍 영상을 보며 SerenityOS 라이브 코딩 과정을 지켜봄
- Kling은 C++ 코드 전체를 이해하는 Qt Creator로 클래스, 변수명, 함수 시그니처를 자동완성함
- 당시에는 필요한 코드가 이미 머릿속에 있고 타이핑 속도만 개발을 제한하는 듯했음
- 4년 뒤 Kling은 초기 GitHub Copilot을 지원하는 CLion으로 전환함
회의론에서 실제 활용으로
- Kling의 개발 속도가 빨라지는 모습은 흥미로웠지만, 오랫동안 자신의 작업에 AI를 쓰고 싶지는 않았으며 편집기에서 IDE나 LSP조차 사용하지 않았음
- 초기 AI의 실패를 보고 기술을 너무 일찍 외면했을 가능성이 있음
- 이후 웹 브라우저에서 Claude를 시험하며 검색 엔진과 Stack Overflow 대신 질문에 대한 답을 얻기 시작함
- Claude Code에 노트북의 코드 디렉터리를 맡겨 파일을 직접 읽고 수정하게 하자 그 능력에 놀랐음
- 아무런 맥락 없이 바이너리 블롭을 빠르고 완전하게 역공학하는 능력도 인상적이었음
- 작고 성능 좋은 로컬 모델이 등장한 뒤에는 M4 Mac Mini에서 Ollama를 사용해 오프라인으로 작업하기 시작함
AI 기술과 AI 산업을 구분하기
- 기술·언어·도구를 좋아하고 사용하면서도 그 주변의 과장과 사기, 부정적인 커뮤니티는 거부할 수 있으며 Rails와 Rust도 같은 사례임
- 반대로 해당 기술을 좋아하거나 사용할 의무도 없음
- 원형 톱 대신 수동 톱을 쓰거나 자율주행 전기차 대신 수동변속기 자동차를 선택할 수 있음
- 현시점에서 모든 AI 기술이 쓸모없거나 나쁘다고 보는 태도는 순진하지만, AI 산업에는 별개의 문제가 있다고 봄
40년 전 방식으로 만드는 Macintosh 소프트웨어
- 2020년 Kling에게 영감을 받아 8MHz Macintosh 512Ke와 이후 Macintosh Plus에서 프로그래밍하는 영상 시리즈를 시작함
- 고전 Macintosh를 실제로 사용해본 적이 없어, 40년 전 개발자가 경험했을 방식대로 THINK C 5 IDE에서 프로그래밍하고자 했음
- 코드는 Macintosh 자체에서만 작성함
- 모든 입력은 Apple M0110 키보드로 수행함
- 현대 컴퓨터는 코드 작성·편집·컴파일에 사용하지 않는다는 규칙을 세움
- 이후 여러 소프트웨어를 대부분 직접 개발함
- IMAP 이메일 클라이언트
- Amend 리비전 제어 시스템
- Wikipedia 리더
- Wallops IRC 클라이언트
- 다중 사용자·다중 스레드 Subtext BBS 서버
- 이 과정에서 Macintosh와 C를 많이 배웠고, 빈티지 컴퓨팅 취미를 시작해 여러 새로운 친구를 만남
고전 Mac에서 현대 웹에 접근하기
- 이메일 클라이언트는 느린 Macintosh에 평문을 전달하기 위해 현대 서버에서 TLS를 제거하는 프록시 서버가 필요했음
- Mac Plus에 Wi-Fi 기능을 추가한 뒤 TLS 오프로딩 장치를 구현함
- 이를 통해 Mac이 독립적으로 TLS 복호화를 수행할 수 있게 됨
- 오늘날 거의 모든 통신이 암호화돼 있어 TLS 처리는 고전 Mac OS용 현대적 웹 브라우저를 만드는 데 필요한 마지막 큰 퍼즐 조각이었음
- 목표는 MacWeb보다 새롭고 HTML5를 파싱할 수 있는 브라우저였음
- 2024년부터 브라우저 개발을 시작해 Gopher와 마지못해 Gemini 프로토콜도 추가함
바이브 코딩이 만든 허탈감
- 몇 달 전, 새로운 소프트웨어 프로젝트와 특히 빈티지 컴퓨팅 프로젝트를 읽고 싶은 열의를 모두 잃었다는 메모를 남김
- 1~2년 전이라면 놀랍게 여기고 개발자와 교류했을 프로젝트도 이제는 AI가 생성했다고 가정해 공허하고 지루하게 느끼며 지나치게 됨
- 또 다른 메모에서는 1년 동안 느리고 꾸준하게 새로운 소프트웨어를 만들어도, 누군가는 아이디어를 듣고 Claude로 일주일 만에 기능이 10배 많은 제품을 만들 수 있다고 토로함
- 실제로 다음 프로젝트를 보고도 AI가 모두 작성했을 것으로 생각해 지나쳤음
- CSS, ES5 JavaScript, TLS를 지원하는 Mac OS 9용 현대적 웹 브라우저
- 비디오를 지원하는 System 7용 3D 프린터 모니터링 앱
- 이후 고전 Mac OS용 Gopher 클라이언트 Geomys가 완전히 바이브 코딩으로 제작됐고, Claude가 세련된 웹사이트까지 만들었음을 확인함
- 기여자 기록에서도 바이브 코딩의 흔적을 볼 수 있음
- 일부 네트워크 코드와 시스템 유틸리티 코드는 자신의 프로젝트에서 가져온 것이었음
직접 코딩하는 이유를 다시 묻다
- Andreas Kling은 2026년에 “실제로 손으로 코딩하는 것을 즐긴다”는 말이 프로그래머의 큰 미덕 과시가 될 것 같다고 게시함
- 이에 완전히 동의하지는 않지만, 소수만 사용하는 40년 된 컴퓨터용 소프트웨어를 왜 만드는지, 이 영역의 바이브 코딩이 왜 불편한지 되묻게 됨
- 많은 소프트웨어는 자신이 필요해서 만들지만, 커뮤니티의 다른 사람들이 사용하는 일도 기쁘게 여김
- 동시에 자신이 속한 커뮤니티에서 애정과 노동을 투입한 작업을 인정받고 싶은 허영이 있을 수 있다고 봄
- 기능이 많고 인터페이스가 세련된 바이브 코딩 제품이 등장하면 자신의 작업이 묻힐까 두려움
- 그동안 들인 노력이 낭비처럼 느껴지고, 자신의 Comet이 Yahoo에 밀리는 상황을 우려함
유용한 도구와 개인적 작업의 공존
- 바이브 코딩 도구가 실제로 유용하고 수년간 개발 중인 자신의 제품보다 먼저 이용 가능하다면, 커뮤니티가 그 도구를 쓸 수 있다는 사실을 반길 수도 있음
- 자신의 버전은 개인적인 목적으로 계속 개발하고 준비됐을 때 공개할 수 있음
- Claude가 코드를 생성하려면 결국 어딘가에 존재하는 기존 인간의 코드에 의존해야 함