Offcanvas

개발자 / 경력관리 / 인문학|교양

칼럼 | 프로그래밍의 ‘짜릿함’과 ‘위대함’에 대하여

2022.06.14 Matthew Tyson  |  CIO
코딩 작업은 지루하고 스트레스 가득할 수 있다. 하지만 소프트웨어 프로그래밍이 얼마나 특별한 일일 수 있는지 찬찬히 살펴보자. 곳곳이 경이로움 그 자체라는 사실을 깨닫게 된다. 

우리 인간은 희한한 족속이다. 비행기라는 기적에 가까운 인류의 발명품에 감지덕지하던 것도 잠시, 이제는 탑승 수속이 오래 걸린다고 짜증을 낸다. 교통 체증에 불만을 품는 일은 다반사이지만 자동차라는 존재에 놀라워하는 것은 어쩌다 한 번이다.

근래 중요한 인류의 성과로 ‘프로그래밍 언어’를 빼놓을 수 없다. 프로그래밍 언어 탄생의 역사를 수놓은 위대한 정신적 업적의 면면을 살펴보면 그야말로 환상적인 프로그래밍의 본질을 재발견하게 된다.
 
Image Credit : Getty Images Bank

프로그래머는 시인과 같다
프로그래밍 분야의 명저 프레데릭 P. 브룩스 주니어의 논문집 <맨먼스 미신(Mythical Man Month)>에는 “시인과 마찬가지로 프로그래머는 순수한 사상과 밀접하게 붙어 작업한다”라는 문구가 나온다. 곱씹어 볼 만한 내용이다. 현직 프로그래머는 물론 관련 직무에 종사하는 사람들에게 영감을 불러일으킨다. 

프로그래밍은 정신적인 세계와 물리적인 세계를 오가는 활동이라 할 수 있다. 물리적 현실에 내재한 논리적 속성과 상호작용하는 방법이라고 할 수도 있겠다. 사상가들을 그토록 혼란에 빠뜨렸던 심신의 구분을 프로그래머들은 가뿐하게 넘나드는 셈이다.

프로그래밍이 가능한 디지털 컴퓨터의 개념을 창시한 찰스 배비지는 “말하자면 추론 능력이 필요한 순수 지력의 영역이다. 노동의 기계적인 부분을 기계가 실행하도록 하는 것이다”라고 말했다.

배비지는 1800년대에 러브레이스와 공동으로 컴퓨팅 개념을 창안했다. 그들은 아이디어 창출에 활용될 수 있는 물리적인 토양을 창조해 냈다. 아이디어를 구체적으로 실험하고 다른 사람들이 검토해 정교하게 발전시켜 나갈 수 있는 토양이었다.  

필자가 나름대로 철학을 공부하면서 느낀 바로는, 시험대에 오르지 않는 사상은 완전하기 어렵다.  이런 맥락에서 브룩스의 시각은 신선하다. “시와 달리 프로그램의 구성요소는 움직이고 작동한다는 점에서 현실적이다. 프로그램 구성요소는 그 자체와는 구분되는 눈에 보이는 산출물을 만들어낸다”라고 그는 기술했다. 

정신과 기계는 수백 년에 걸쳐 서로 영향을 주고받으며 서서히 발전된 끝에 오늘날 브라우저에서 F12 키를 눌러 불러낼 수 있는 형태에 이르렀다.

이제 18세기에 등장한 프로그래밍 가능한 베틀과 이 기계가 프로그래밍 언어의 이야기에 일조한 내용을 살펴보자. 알고리즘에 맞춰 천을 차는 바로크 시대 기계의 모습은 흥미롭다. 초기 컴퓨터인 천공 카드의 조상이자 정확한 아날로그 방식인 천공 카드의 모습도 마찬가지다. 사상의 압축과 기계의 세련화가 서로 영향을 주고받다가 마침내 만난 곳이 바로 현대 프로그래밍 언어이다.

경이감
좀더 사실적이고 기본적인 프로그래밍 발전의 역사는 론 프레슬러의 야심작 ‘유한한 감각과 무한한 사상’에서 확인할 수 있다. 이 책을 읽다보면 우물쭈물 조금씩 내딛은 발걸음에서부터 배비지와 튜링 등과 같은 거침없는 행보까지, 뭔가 완전하게 이해되지는 않지만 직감적으로 느껴진 것을 향한 움직임을 감지할 수 있다. 그리고 우리는 이 움직임이 마침내 광범위하게 활성화된 시대에 와 있다. 

프레슬러의 글에는 자세한 수학적이고 논리적인 내용이 휘몰아쳐 나온다. 그러나 그에 앞서 다음과 같이 서술돼 있다 “경이감은 강력한 마케팅 도구다. 그러나 명확한 설명을 하기보다는 오히려 혼란스럽게 만들기도 한다.” 오늘날 우리에게 프로그래밍 유행에 빠지지 말라는 경고로 다가온다. 지당한 충고이다. 

반면, 반대쪽인 무관심 상태로 빠져서도 곤란하다.  경이로움을 완전히 없애 버리는 것은 스스로에게 손해다. 영감을 살려 두는 것, 일에만 파묻혀 있지 말고 고개를 들어 먼 곳을 조망하는 것이 필수적이다. 건강에도 좋다.

코딩 분야에서 코딩의 즐거움을 굳이 떼어 놓을 이유는 전혀 없다. 사실 그렇게 하면 불만이 생겨날 수밖에 없다. IT계의 번아웃 현상은 만연하다. 경이로움은 줄일 것이 아니라 늘려야 한다.

튜링 완성(Turing-complete)
프로그래밍 이야기에 있어 핵심적인 존재 중 하나는 앨런 튜링의 범용 기계이다. 이 기계의 발명은 프로그래밍이 탄생하기까지 엄청난 지적 비용이 치러졌다는 사실(튜링의 경우에는 개인적으로도 큰 대가를 치름)을 인정하게 되는 또 하나의 사례다. 

스스로는 물론 실행 프로그램도 기술할 수 있는 ‘자기 참조 시스템’(self-referential system)이라는 개념은 생각하기 어렵다. 오늘날 우리는 정보는 물론 그 정보로 작업하기 위한 명령을 동일한 메모리 공간에 저장하는 컴퓨터를 사용하고 있다.

이런 발상을 차용한 폰 노이만의 아키텍처는 현대 컴퓨터 작동 방식의 근간을 이룬다. 시스템의 데이터 저장 능력을 시스템의 코드에도 활용한다는 것인데 “일단 하고 보면 너무나 당연해” 보이지만 막상 실제로 하기 전에는 전혀 그렇지 않다. 

여기서 핵심은, 데이터인 동시에 실행할 수도 있는 파일이라는 혁신적인 신개념이다. 덕분에 수정과 확장이 가능한 시스템이 탄생했고 지금까지 사용되고 있다는 것이다. 

단언컨대, 오늘날 현실화되고 일상적으로 사용할 수 있는 튜링 완성 기계는 단순히 대단한 수준이 아니라, 비교적 최근까지 생각조차 할 수 없었던 개념이다. 

인간의 상호작용
지금까지 프로그래밍 자체의 본질에 대해서만 고찰했다면 프로그래밍이 인간의 상호작용에 미친 영향도 거론할 만하다. 컴퓨터가 특이점을 향해 진화하고 있는지 여부를 떠나, 컴퓨터의 영향으로 인류의 의사소통 능력이 향상된 것은 분수령이라고 부를만한 사건이다.

이 시각에서 보면 웹 기반 소프트웨어는 새로운 종류의 상호작용 매개체라고 바라볼 수 있다. 앞서 기술한 정신세계와 물리적세계의 연결이라는 내용을 염두에 두고 바라본다면 이 상황은 매우 특별한 기회의 장이다. 즉, 실행 가능한 논리 하부구조의 도움을 받아 사상적으로 서로 상호작용할 수 있는 기회가 나타났다.

여기에 시스템 내에 구축된 잠재적인 기계의 우주라는 튜링의 아이디어를 결합한다면 서로 상호작용하는 아이디어의 세계가 갖는 잠재력이 눈에 보인다.

눈 앞에 펼쳐지는 미래
일상적인 프로그래밍 소프트웨어 업무는 예측 불가한 미래 현실의 일부분이라고 볼 수 있다. 

어쩌면 블록체인 혁신에 힘입어 웹3.0 분야에서 소용돌이치고 있는 아이디어들이 일정한 역할을 할 것이다. 확실히 그렇게 생각하는 사람이 많은 반면, 격렬한 반대파도 있다. 어찌 되었든, 페이스북이 괜히 사명을 메타로 바꾼 것이 아니다.

어쩌면 양자 컴퓨팅이 할 역할이 있을 것이다. 양자 컴퓨팅은 근본적인 물리적 현실이 이진수가 아닌 태생적으로 다른 문자와의 상호작용을 가능하게 하기 때문이다.

이 모든 것의 회귀점은 시스템을 사용하고 프로그래밍 작업을 하며 시스템의 성공을 돕는 인간이다. 무엇보다 기술은 인간에게 봉사한다는 점을 명심할 필요가 있다. 행복한 개발자가 더 좋은 코드를 작성한다. 그러면 수익에 도움이 되는 것도 사실이지만 더욱 근본적으로 중요한 것은 행복한 개발자가 행복한 사람이라는 점이다.

프로그램 코드에 내재된 가능성을 될 수 있으면 기억해야 한다. 그 가능성에 불을 붙인 것은 단순한 기술적인 관심이 아니라 다분히 환상적인 특성(fantastical quality)이었다. 안 될 건 또 뭔가? 불과 몇 십 년 전까지만 해도 프로그래밍 언어는 뭔가 실질적인 것으로 발전할지 여부를 알 수 없는 어렴풋한 가능성에 불과했다.

* Mattew Tyson은 다크 호스 그룹 설립자이자 인간 우선적 기술을 강조하는 칼럼니스트다. ciokr@idg.co.kr
CIO Korea 뉴스레터 및 IT 트랜드 보고서 무료 구독하기
추천 테크라이브러리

회사명:한국IDG 제호: CIO Korea 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아01641 등록발행일자 : 2011년 05월 27일

발행인 : 박형미 편집인 : 천신응 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.