컴퓨팅 기술의 역사에서 그렇지 않은 적이 있었을까 싶습니다마는 최근 몇 년간 몇 달 간격으로 수많은 변화가 숨 돌릴 틈 없이 휘몰아치고 있습니다. 대표적인 단절적 기술이라 평가받는 개인용 컴퓨터(1980년대)와 웹(2000년대) 시대에도 물론 변화가 컸지만 요즘은 그에 더해 무거운 압박이 느껴집니다. 바로 또 다른 단절적 기술 후보인 인공 지능 때문입니다.
지금까지 인공 지능이 불러온 변화, 앞으로 불러올 변화를 후대 역사가 어떻게 평가할지 모르겠지만 어쨌든 ‘루비콘강’을 건넌 것 같습니다. 그리고 강을 건너 쇄도해 오는 인공 지능 앞에서 사람에게 프로그래밍이란 무엇인가 하는 질문을 떠올리게 됩니다.
품질 문제가 여전히 있다고는 하지만 인공 지능이 생성해 내는 코드양은 이제는 사람이 따라잡기 곤란할 수준에 이르렀다고 합니다. 어쩌면 어마어마한 양에 압도되다가 어느새 ‘예스’를 클릭하는 게 프로그래밍 업무가 될지도 모르겠습니다. 그래서 혹자는 프로그래머들이 자신을 먹어 치울 기술을 개발했다고도 합니다. 과연 인간 개발자는 ‘대멸종’에 가까운 상황에 맞닥뜨리게 될까요?
맹목적인 향수는 바람직하지 않지만 시대가 급변할 때 인류는 과거를 살피고 거기에서 통찰을 길어 현재를 개척하고 미래를 만들어 나갔습니다. 역사가 상대적으로 짧은 컴퓨팅 세계에서 길어 올릴 통찰의 역사는 무엇이 있을까요? 이번에 소개하는 두 권 합해 60년이 다 되어 가는 오래된 인터뷰집 《오래된 인터뷰, 개발자의 미래를 긷다》 1, 2권이 그 실마리가 될 수 있지 않을까 싶습니다.
1권은 앞서 언급한 단절적 기술 중 하나인 1980년대 개인용 컴퓨터 시대로 독자들을 안내합니다. 젊고 야심만만한 개발자들이 기회의 시대에 히트작을 내려고 오늘날에 비하면 열악하기 짝이 없는(몇 MHz CPU와 몇십 KB 메모리 등) 컴퓨터로 고군분투하던 시절 인터뷰어 수전 래머스는 당시의 히트작을 낸 쟁쟁한 개발자들을 찾아가 프로그래밍이 과연 무엇인지 묻습니다. 단지 또 다른 숙련된 기능인지, 예술로서의 기예인지, 과학인지, 당시로서는 명확하게 정의하기 어려웠던 프로그래밍의 본질에 다가서면서 또한 프로그래머의 머릿속에서 과연 무슨 일이 벌어지는지도 탐색합니다. 40여 년 전 대답이지만 그들의 대답은 오늘날 개발자들에게도 공명을 일으킬 만합니다.

예술적인 관점에서 보면 최고의 소프트웨어는 직관의 영역에서 나옵니다. – [1권 13장 밥 카] 중에서

(누구나 번뜩 하는 ‘아하’의 순간의 기쁨을 체험해 보셨을 겁니다.)

1권 인터뷰이들이 빌 게이츠를 제외하곤 요즘에는 낯선 인물들이라면 2권의 인터뷰어 피터 사이블이 만난 사람들은 한 번쯤 이름을 들어 보았을 대가들입니다. JSON 창시자 더글러스 크락포드, 《이펙티브 자바》 저자 조슈아 블로크, 피터 노빅, 켄 톰프슨 그리고 ‘바로 그’ 도널스 커누스 등을 만나서 대가들의 사고를 캐냅니다. 이들은 각자 분야가 다르고 세부적인 의견은 다르지만 여러 주제에서 놀랍도록 공통된 의견을 냅니다. 그리고 여전히 유효하고 되새겨야 할 프로그래밍의 원리들이죠.
인터뷰집 편집 작업을 마칠 때쯤 느낀 점은 이 대가들을 이끈 것은 첨단 도구 사용이나 유행 편승 여부가 아니라 왕성한 호기심과 탐구 정신, 깊은 사유라는 사실이었습니다.

사물의 표면 아래에서 무슨 일이 벌어지고 있는지 궁금한 마음을 억누를 수 없어야 합니다. 호기심이 바로 프로그래머가 되기 위한 토대예요. – [2권 1장 제이미 자윈스키] 중에서

작고 단단한 코드를 차곡차곡 쌓아 올려 멋진 프로그램을 만든다는 이상은 멀리 사라졌고 이제는 이리저리 찔러 보며 돌아가기만 하면 되는 코드를 개발하는 게 현실이 되어 가고 있습니다. 그리고 그마저도 인공 지능이 자동에 가깝게(?) 생성해 주고 있죠. 그렇다면 인간에게 남은 도구는 무엇일까요? 결국 사고 또는 사유가 아닐까 싶습니다.
프로그래밍 도구들은 시대에 따라 바뀌어 왔습니다. 기계어(또는 어셈블리어)에서 고수준 언어로, 줄 단위 편집기에서 전화면 편집기를 거쳐 통합 개발 환경으로, 단순 함수 모음집에서 거대 라이브러리와 프레임워크로, 그 과정에서 기술의 복잡도는 높아지고 수명은 짧아지는 양상을 보이며 수많은 도구가 명멸해 왔지만 인터뷰이들의 ‘오래된’ 답변에서 보듯이 프로그래밍의 근본은 그 세월 동안 좀처럼 변하지 않고 이어져 오고 있음을 알 수 있습니다.
물론 경쟁이 치열한 시기에 어쩔 수 없이 현실에 떠밀리다 보면 지난 역사를 차분히 성찰하기 어렵고 과거의 교훈이 와 닿지 않을 수도 있지만 그럼에도 견지해야 할 그 무엇이 있지 않을까 싶습니다.

… 사람들이 학습에 대한 모험심이 강하다면, 바깥으로 나가서 새로운 기술뿐 아니라 예전 기술도 탐험할 것이며, 새로운 기술과 예전 기술 모두의 진가를 알아볼 수 있으며, 모든 사물이 어떻게 큰 그림에 맞아 떨어지는지 이해할 수 있을 겁니다. 컴퓨터 이면에 무엇이 있는지, 컴퓨터가 어디서 왔는지 충분히 제대로 인식하지 못한 상태에서 컴퓨터 기술을 피상적으로 사용하는 것은 커다란 위협이지만, 제 마음속에는 사람들은 크든 작든 바른 일을 할 것이라는 신념이 굳건히 자리 잡고 있습니다. – [1권 19장 마이클 홀리] 중에서

《함께 자라기》를 쓰신 김창준 님의 추천사 일부를 인용하며 책 소개를 마칩니다.

이 책들을 읽다 보면 철 지난 기술에 대한 세세한 내용이 나온다. … 그것이 어떤 역사적 의미가 있으며 당시의 문제의식은 뭐였고 어떤 선택을 했으며 후대의 평가는 무엇인지 이해하는 것이 역사 공부의 가치라고 할 수 있다. 마찬가지이다. … 이 이야기는 현재 나에게 어떤 의미로 번역할 수 있을까 자문하는 것이다. 그 기술적 문제를 해결하면서 당사자는 무슨 생각을 하고 어떤 의사 결정을 내린 걸까. 그 이면의 사고는 뭘까. 이런 생각을 하면서 능동적으로 이 책을 읽는다면 고리타분한 이야기가 팔딱팔딱 살아 숨 쉬는 이야기로 바뀔 것이다.

※ 《오래된 인터뷰, 개발자의 미래를 긷다》 1, 2권 북펀딩 중입니다. 관심 있는 독자들의 많은 성원과 참여 부탁드립니다.