- 전문 프로그래머인 글쓴이는 자녀에게 코딩을 가르치려던 확신이 GPT-4 경험 이후 흔들렸고, 아이가 타자를 칠 나이가 될 때 코딩의 직업적 가치가 달라질 수 있다고 봄
- 최신 코딩 경험이 거의 없던 친구 Ben은 ChatGPT Plus와 GPT-4로 명령줄 도구, iPhone 단어 평가 앱, 마이크로컨트롤러와 Firebase 연동 코드를 빠르게 만들어냄
- 코딩은 오랫동안 인내, 반복 디버깅, 기계의 한계를 감각적으로 이해하는 mechanical sympathy를 요구했지만, AI 보조는 세부 구현과 난해한 지식의 일부를 자연어 대화로 대체하기 시작함
- GPT-4는 아직 전문 프로그래머보다 못한 부분이 있고 일반인이 같은 방식으로 다루기도 어렵지만, 프로그래머와 AI가 결합한 centaur 형태는 단독 인간이나 단독 AI와 다른 생산성을 보임
- 코딩 자체의 중요성이 줄어들수록 무엇을 만들지 판단하고, 사용자가 좋아할 것을 이해하며, 기술적으로도 인간적으로도 소통하는 능력이 더 중요해질 수 있음
GPT-4가 흔든 코딩의 직업적 확신
- 글쓴이는 부모가 읽기와 쓰기를 가르친 것처럼 자신의 아이에게도 컴퓨터 프로그래밍을 가르치려 했음
- 코딩은 영화 제작부터 물리학까지 포괄하는 새로운 기술이자 필수 역량으로 여겨졌음
- 전문 코더인 그는 아이가 타자를 칠 수 있을 때쯤 코딩의 가치가 사라졌을 수도 있다고 느낌
- 전환점은 친구 Ben과 함께 Times 스타일 크로스워드 퍼즐을 컴퓨터로 만드는 취미 프로젝트였음
- 2018년에는 소프트웨어의 도움으로 토요일 퍼즐을 만들었고, 인간은 취향을 조금 적용하는 정도였음
- 이번에는 인간의 손길 없이 퍼즐 제작 프로그램을 만들려 했음
- Ben은 하드웨어에는 강했지만 전문 코딩 경험은 짧고 얕았으며, 거의 20년 전 수준에 머물러 있었음
- 그러나 ChatGPT Plus에 가입해 GPT-4를 코딩 보조로 쓰기 시작함
- 프로젝트에 필요한 작은 도구를 놀랄 만큼 빠르게 직접 만들어냄
취미 프로젝트에서 본 AI 코딩 보조의 성능
- 사전 파일에서 무작위 100줄을 출력하는 명령을 만들 때, 글쓴이는 문제를 생각하고 검색하며 시행착오를 겪었음
- Ben은 GPT-4에 원하는 것을 말했고, 실행되는 코드를 얻음
- 글쓴이는 이런 명령은 원래 까다롭고 누구나 찾아보는 영역이라 “진짜 프로그래밍”은 아니라고 여김
- 며칠 뒤 Ben은 사전 단어를 평가하는 iPhone 앱을 만들고 싶다고 했음
- 글쓴이는 Apple의 프로그래밍 환경, 새 언어, UI 컴포넌트, 패키징 과정을 배워야 해서 iPhone 앱 제작을 부담스럽게 봄
- 다음 날 Ben은 원하는 기능을 정확히 수행하고 귀여운 디자인까지 갖춘 앱을 보냄
- Ben은 몇 시간 만에 만들었고, GPT-4가 대부분의 어려운 작업을 처리했다고 말함
- Ben은 왕 Charles 초상화 프레임에 작은 스피커와 빨간 LED를 연결하는 프로젝트도 진행함
- 웹사이트에 메시지를 입력하면 스피커가 음악을 재생하고 LED가 왕관 보석처럼 모스 부호를 깜빡이는 장치였음
- 새 메시지를 가져오는 코드는 마이크로컨트롤러와 Firebase 지식이 필요해 Ben에게 어려웠음
- GPT-4는 Firebase의 적절한 기능과 마이크로컨트롤러에서 쓸 수 있는 코드를 제안함
- Ben은 GPT-4로 Nokia 휴대전화의 Snake 게임 같은 것도 만들었음
- 짧은 대화 뒤, 패배 시 최적 경로에서 얼마나 벗어났는지 보여주는 기능까지 추가하게 함
- 글쓴이는 이 수정 작업을 자신도 할 수 있을지 확신하지 못했음
- GPT-4는 약 10초 만에 이를 수행함
코딩이 주던 매력과 숙련의 형성
- 글쓴이가 컴퓨터에 처음 매혹된 계기는 1990년대 초 Montreal에서 형과 Mortal Kombat를 하던 경험이었음
- 형은 MS-DOS 터미널에서 FTP 서버에 접속해 명령을 입력하고, 게임 속 모든 fatality 지시가 담긴 코드를 출력했음
- 글쓴이는 형을 해커처럼 여겼고, 숨겨진 장소와 지식을 찾는 데 매력을 느낌
- “The Hacker’s Manifesto”의 “내 범죄는 호기심”이라는 문장과 1995년 영화 “Hackers”는 지식이 힘이라는 감각을 강화함
- 영화 속 Dade Murphy는 컴퓨터 책 표지만 보고 알아보며, 키보드 입력으로 학교 스프링클러와 유조선 평형을 제어함
- 글쓴이에게 해킹은 파괴보다 숨겨진 것을 배우는 행위에 가까웠음
- 고등학교 때 산 Ivor Horton의 “Beginning Visual C++”는 1,200쪽짜리 첫 입문서였음
- 초반은 쉬웠지만 “Dynamic Memory Allocation” 부분에서 막힘
- 그는 이를 중세 학생들이 어려운 첫 지점에 붙인 말인 pons asinorum, 즉 “당나귀의 다리”에 비유함
- “Hello, world”를 실행하기까지의 경험은 프로그래밍이 지식이나 기술보다 인내와 집착에 가깝다는 느낌을 줌
- Borland C++ 컴파일러를 작동시키려 여러 날 고생했고, 하나의 오류를 고치면 다른 오류가 나타났음
- 마침내 “Hello, world”가 표시되자 컴퓨터가 자기 목소리로 깨어나 인사한 것처럼 느껴짐
- 대학 시절에는 작은 프로그램을 만들며 코딩의 즐거움을 넓혀감
- 2006 Masters Tournament에서 Tiger Woods가 버디나 보기를 할 때 문자 메시지를 보내는 프로그램을 만듦
- “Ulysses”의 문장을 무작위로 뽑아 음절 수를 세고 하이쿠를 조립하는 프로그램도 작성함
- 친구들과 즐긴 “Jimbo Jeopardy!”를 14시간 동안 만들며, 누군가가 자신이 만든 것을 즐기는 경험의 강렬함을 느낌
소프트웨어 엔지니어의 전성기와 자동화의 역설
- 2009년 금융위기 속에서 2.9 GPA로 졸업했지만, 프로그래밍 실무 경험 덕분에 첫 정규직을 쉽게 얻음
- 당시 기업들은 우수한 프로그래머를 두고 경쟁했고, 경험 있는 프로그래머에게 공격적으로 연락했음
- 컴퓨터 과학 전공 인기는 폭발하기 시작했고, 코딩 부트캠프는 1년 안에 초보자를 고연봉 프로그래머로 만들 수 있다고 내세움
- 저금리와 기술 섹터 성장 속에서 소프트웨어 엔지니어의 대우는 높아짐
- Google 같은 회사는 무료 에스프레소, 케이터링 식사, 좋은 의료 복지, 육아휴직, 사내 체육관, 자전거 보관소, 캐주얼 복장, 20% time 같은 관행을 확산시킴
- 코딩 작업은 언제든 버그가 드러날 수 있어 기간 추정이 어리석다고 여겨졌고, 마감은 금기처럼 다뤄짐
- 압박이 심하면 “burnout”이라는 말만으로 몇 달을 벌 수 있다는 분위기도 있었음
- 이런 대우가 계속될 수 있는지에 대한 의문도 커짐
- 과거 웹디자인도 주말 작업으로 수천 달러를 벌 수 있을 만큼 수요가 컸음
- Squarespace 같은 도구가 등장하면서 피자집 주인이나 프리랜서 아티스트도 클릭만으로 웹사이트를 만들 수 있게 됨
- 전문 코더에게는 고수익·저노력 업무 일부가 사라짐
- 프로그래머 커뮤니티의 대응은 더 어려운 기술을 계속 배워야 한다는 쪽에 가까웠음
- 소프트웨어 엔지니어는 자동화를 좋아하고, 뛰어난 엔지니어는 다른 종류의 일을 쓸모없게 만드는 도구를 만듦
- 코드 하나가 수백만 명의 작업에 영향을 줄 수 있다는 레버리지가 프로그래머 대우의 근거였음
- 같은 자동화 본능은 프로그래머 자신의 일도 일부 대체함
AI 시대의 프로그래머, centaur와 남는 역량
- 회사에서 AI 챗봇을 프로그래밍 보조로 사용할 수 있게 된 뒤, 글쓴이는 처음에는 의식적으로 피했음
- 곧 동료 화면에서 AI 채팅의 질의응답 패턴을 자주 보게 됨
- 동료들은 이런 도구가 생산성을 높이고, 어떤 경우 문제를 10배 빠르게 풀게 해준다고 말함
- 글쓴이는 AI가 퍼즐을 푸는 즐거움과 스스로 해결했다는 만족감을 빼앗을까 걱정함
- 일반적인 프로그래밍 결과물은 대개 흥미롭지 않고 때로는 우스울 만큼 평범함
- 예컨대 중요한 문서의 테이블에 여러 열을 가로지르는 헤더를 추가하는 일은 결과만 보면 단순했음
- 그러나 사용자 API를 어떻게 만들지, 데이터가 없는 열이 빠질 때 어떻게 처리할지 고민하는 과정이 즐거움의 핵심이었음
- 결국 그는 업무 중 검색 결과에서 사용자 쿼리와 일치하는 부분을 강조하는 작은 도구를 만들며 GPT-4를 사용함
- Edsger W. Dijkstra는 1978년 “On the Foolishness of ‘Natural Language Programming’”에서 자연어는 컴퓨터가 제공하는 정밀성을 버리는 방식이라고 봄
- 실제 GPT-4 사용은 “문제를 풀어줘”라고 말하는 수준이 아니었고, 초보자에게 말하듯 원하는 것을 조심스럽게 지정해야 했음
- 실패를 보며 프롬프트를 덜 야심적으로 바꾸고, 문제를 구체적이고 추상적이며 모호하지 않은 하위 문제로 나눠야 했음
- 이후 작업 곳곳에서 GPT-4가 들어맞는 크기의 빈틈이 보이기 시작함
- 크로스워드 출력 결과를 보기 좋은 웹페이지로 바꾸는 작업에서도 GPT-4와 대화함
- 각 글자를 가로·세로 단어와 연결해야 하는 세부 문제가 있었지만, 예전처럼 숫자, 패턴, 루프를 머릿속으로 시뮬레이션하지 않음
- Geoffrey Litt가 비슷한 경험 뒤 쓴 것처럼 “상세한 프로그래머 두뇌”를 쓰지 않았다는 감각이 남음
- Go의 Lee Sedol과 체스 사례는 AI 이후에도 기술의 문화가 사라지지만은 않는다는 점을 보여줌
- Lee Sedol은 2016년 AlphaGo에 패했고, 며칠간의 대국 끝에 한 판을 이긴 것을 자랑스럽게 여겼으며, 3년 뒤 은퇴함
- 체스는 AI가 정복한 뒤에도 더 인기 있어졌고, 학습자는 AI 코치에게 자신의 수준 바로 위 문제와 패배 원인을 받을 수 있음
- 최상위 그랜드마스터들은 컴퓨터가 제안한 수를 신의 석판처럼 연구함
- GPT-4는 현재 글쓴이보다 못한 프로그래머이고, 일반인도 프로그래머처럼 다루기 어렵지만 centaur 방식은 이미 등장함
- Ben 단독은 글쓴이보다 훨씬 못한 프로그래머이고 GPT-4 단독도 아직 글쓴이보다 못하지만, Ben과 GPT-4의 조합은 위협적인 생산성을 보임
- 소프트웨어를 만들기 쉬워지면 더 많이 퍼지고, 프로그래머는 설계, 설정, 유지보수를 맡게 될 수 있음
- 코딩 자체가 덜 중요해지면 무엇을 만들 가치가 있는지, 사용자가 무엇을 좋아하는지, 기술적으로도 인간적으로도 어떻게 소통할지가 더 중요해질 수 있음
- 자녀에게 가르칠 것은 특정 기술보다 해킹의 정신일 수 있음
- 미래에는 C++나 Python을 직접 입력하는 프로그래밍이 펀치카드에 이진 명령을 내리는 것처럼 우스워 보일 수 있음
- 컴퓨터에게 원하는 일을 정확히 시키는 것이 공손히 요청하는 일이 될 수도 있음
- 농경 시대의 코더는 물레방아와 작물 품종을 만졌고, Newton 시대에는 유리, 염료, 시간 측정에 집착했을 수 있음
- 다음 세대는 부모가 블랙박스로 여겼던 AI의 내부를 파고들며 밤을 보낼 수 있고, 코딩의 시대가 저물어도 해킹은 계속됨