창의와 소통을 위한 코딩 인문학, 《세상을 만드는 글자, 코딩》
프롤로그
CHAPTER 1 코딩은 아무나 한다 ( 프로그래머 이해하기 )
CHAPTER 2 프로그래밍 언어는 나와 컴퓨터를 이어준다 ( 프로그래밍 언어 이해하기 )
CHAPTER 3 코딩은 만물의 근본이다 ( 세상 만물 이해하기 )
CHAPTER 4 비트는 디지털 세계의 원자다 ( 디지털 이해하기 )
CHAPTER 5 컴퓨터는 책 읽는 기계다 ( 컴퓨터 이해하기 )
에필로그
2020년 여름, 서비스의 오픈을 앞두고 서버를 독립하며 내부 개발자의 부재로 본의치 않게 호스팅사와 엄청난 양의 문의와 답변을 주고 받았었다. 대학교 때 파이썬 수업들을 우수한 성적으로 마치고, 군대에서도 정보처리기능사 자격증을 취득하였다 보니 해당 분야에 대한 막연한 두려움은 없었지만, 서버라던가 웹에 관련된 부분은 너무도 낯설어 호스팅사의 답변을 이해하는 데에만 몇 시간씩 걸렸던 기억이 있다. 그리고 이때 컴퓨터 프로그래밍의 세계는 정말 상상 이상으로 넓구나, 단순해 보이는 웹사이트 하나가 태어나고, 돌아가는 데에 참 많은 기술과 지식이 필요하구나를 깨달았다.
컴퓨터는 기존의 기계들과 다르게 특정 기능을 위해 만들어진 것이 아닌 최초의 범용 기계이다. 이 책을 통해 컴퓨터와 대화할 수 있는 언어인 ‘코딩’이 어떤 식으로 발전해 왔는지 이해하고, 또 0과 1의 세계에 대해 어렴풋한 지도를 그릴 수 있게 되지 않을까 하는 기대가 있다.
처음에는 책 제목에 ‘코딩’이라는 단어가 있어 프로그래밍 언어에 관한 책이라 생각했다. 그런데 그 이상이다. ‘프로그램’이란 단지 컴퓨터와 비트의 세계에 국한된 이야기가 아니란 것과, ‘언어’가 갖는 의미에 대해 이야기한다. 우리가 흔히 생각하는 프로그램은 함수에 가깝다. A를 입력하면 B가 나오는 함수. 이 A와 B 사이의 관계를 정의할 수 있다면 프로그램을 만들 수 있다. 인공지능 프로그램은 조금 다르다. A를 입력하면 B가 나온다는 사실을 알려주고, 이를 반복해서 학습시킨다. 그러면 프로그램이 만들어진다. A와 B 사이의 정확한 관계를 알지 못하더라도 프로그램을 만들 수 있게 된 것이다. 여기까지는 비트 세계의 이야기다. 비트는 컴퓨터의 최소 단위이다.
그렇다면 인간 세계의 최소 단위는 무엇일까? 바로 원자이다. 이 책을 읽고 나면 원자 세계도 프로그래밍되어 있다는 사실을 알 수 있다. 사고가 확장되는 근사한 순간이다. E=mc^2, F=ma가 물리학 공식에서 우주의 기본 프로그램으로 바뀌고, 물체에 반사된 빛이 우리의 망막세포에 닿아 뇌까지 전달되어 무언가를 본다고 느끼는 것 또한 인간의 내장 프로그램이라는 사실을 깨닫게 된다. 생명체도 결국 정교하게 설계된 하나의 프로그램이라는 것이다. 다만 이 정교함의 차이로 우리에게는 이 프로그램을 바꿀 수 있는 능력이 주어진다. 그것이 바로 ‘학습’이며, 뇌가 끊임없이 변화할 수 있는 원동력이다.
다음은 언어의 의미이다. 먼저 언어는 (아직까지는) 인간의 자의식의 존재를 증명할 수 있는 유일한 수단이며, 인간을 지적인 생명체로 만들어 주는 요소이다. 지능은 언어를 낳았고, 언어는 코딩을 낳았으며, 코딩은 통신을 낳았다. 그리고 통신은 언어의 전달과 소통을 도우니 이러한 흐름은 필연적인 과정이었던 것이다. 이 과정 속에서 언어는 인간과 인간의 소통을 넘어 인간과 기계가, 혹은 기계와 기계가 소통을 할 수 있는 형태로 진화해왔다. 책을 읽고 난 후 찾아온 가장 큰 변화는 내 생활 속 기계들과 상호작용에 친밀감이 더 생겼다는 것이다. 예컨대 이전에는 “시리야, 불 켜줘.”라고 말하는 행위가 단순히 내 방의 스마트 전구를 키는 줄로만 알았더라면, 이제는 어떤 하드웨어와 소프트웨어가 이 여정에 참여하는지와, 이러한 기술의 원리는 무엇인지 등을 알게 되었다. 추상적이었던 관념이 객관적인 실체가 되어 다가오는 느낌인 것이다.
이렇게 컴퓨터의 언어 ‘코딩’으로 시작하지만, 코딩의 기본 단위인 0과 1, 즉 이산의 개념으로 우리가 사는 세상을 설명하며 새로운 시선을 선물한다.