파이브북스 3: Code-The Hidden Language of Computer Hardware and Software

  컴퓨터에 대한 개론적인 이해가 필요했다. 작년에 컴퓨터과학과에 20개의 수업(물론 그 중에는 일본어문법 같은 컴퓨터와 전혀 상관이 없는 교양 강의 같은 것도 존재했지만)을 수강하고 닥치는대로 인풋을 늘리겠다는(영어교육과에서 배운 얼치기 이론으로) 각오로 이해가 되든 안 되든 진도를 나갔다. 작년보다는 높은 이해도를 보이고 있지만, 여전히 대부분의 강의가 무슨 말인지를 잘 모르겠는 상태인 건 마찬가지고 컴퓨터 제반 분야에 대한 이해와 취미가 심화된 것 같지도 않은 초조함이 있었다. 그 과정에서 파이브북스에서 선택한 찰스 펫졸드의 <코드>는 이런 내 상황에 매우 적절한 독서 경험을 제공할 수 있었다고 하겠다.

  무엇보다 좋았던 것은 책 구매로 인한 지출 비용이 들지 않았다는 것이다. 책에 과소비를 하는 편이라, 유동성 부족에 시달리는 내 입장에서 더 이상의 책 구매는 큰 부담이 되는 상황이었는데 영어 텍스트를 쉽게 구글에서 구할 수 있는 책이라 좋았다. 오랜만의 영어 온책읽기라 그동안 내팽개쳐 둔 영어 능력을 다시 조금이나마 회복하는 계기가 되기도 했고, 경험상 이런 종류의 책은 번역과 싸우며 씨름하기보단 영어 원어로 읽는 것이 보다 직관적으로 이해가 쉽다는 것을 알고 있었기 때문에 영어로 읽는 것이 더욱 적합하다는 생각이 들었다.

  이 텍스트는 1학기에 수강하는 '컴퓨터의 이해'의 부교재로 써도 좋겠다는 생각이 들었다. 주로 한국의 지식인과 텍스트는 거대한 문제에서 디테일한 분야로 탑 다운(Top-down)하는 방식을 택하는 게 일반적인데 미국의 책은 작고 구체적인 문제에서 크고 거대한 분야로 상승하는 버텀 업(Bottom-up)의 방식을 취하는 것 같다. 어떤 것이 옳고 좋은 접근인지는 상황에 따라 다르고 사람에 따라 다르겠지만, 인공지능이 주도하는 미래니 암호화폐의 가치와 위상이니 하는 거대한 이야기에 질식될 것 같다가 막상 수업에 나오는 디테일한 분야까지는 뻗어나가지도 않는 상황에 허우적대다 정보통신 매체로써의 컴퓨터의 본질에서부터 출발하는 <코드>의 접근 방향은 나에게 꼭 필요한 도움을 제공하는 듯 했다.

  결국 컴퓨터는 통신, 즉 의사소통과 그를 위한 코드의 문제에서 발전했다. 이 책에서는 옆집에 랜턴을 통해 빛의 깜빡거림을 이용한 의사소통에서 출발한다. 이것은 더욱 정교한 의사소통을 위해 모스 부호를 탄생시키고 더 먼 거리로 뻗어나가기 위해 전기 신호를 이용한 전보로 발전하고, 더욱 정교한 이진부호, 이진법의 알고리즘을 탄생시킨다. 이것이 참과 거짓의 논리를 다루는 부울 대수로 쓰인 이산수학과 결합되어 바코드에도 뻗어나가고 디지털 전자회로에도 뻗어나간다. 이는 컴퓨터 구조를 형성하고 하드웨어와 소프트웨어의 의사소통을 가능하게 하여 지금 우리가 쓰는 고성능의 컴퓨터에서도 활용된다.

  4월 4일 그로스로그 행사로 뵌 컴퓨터과학과 강지훈 교수님은 인공지능 시대의 개발자에게 필요한 능력은 모든 것을 다 알려는 욕심에 기 죽기보다는 컴퓨터가 데이터를 처리하기 위한 전산 도구라는 본질을 이해해야 한다고 말했다. 이 텍스트는 바로 그 본질에서 출발해 컴퓨터과학 주요 과목들을 구성하는 내용들, 컴퓨터의 이해, 알고리즘, 자료구조, 운영체제, 데이터베이스 시스템, 디지털 전자회로, 컴퓨터 구조 내용을 크게 한 바퀴 순회하는 내용으로 구성되어 있었다. 한 챕터 한 챕터를 읽어가며 '그 과목에서 왜 그런 얘기를 강조했는지 이제야 알겠다', '그 과목 되게 어렵고 지루하던데 이런 의미였구나' 하는 느낌이 많았다.

  강지훈 교수님은 GPU 시스템 자원을 연구 주제로 하고 있는 소장파 교수님인데 C를 주 언어로 이용하고 있다고 했다. 좋은 개발자가 되기 위해선 lower level에 대한 이해가 필요하다는 말씀인데 코드를 부트캠프에서 기계적으로 훈련받기보다는(그런 저레벨의 단순 코더는 당연히 인공지능만도 못하다) 운영체제나 하드웨어 단계에서 소프트웨어와 어떤 방식으로 소통이 이루어지고 프로그램이 구현되는지 원리를 알아야 한다는 이야기였고 C가 여기에 적합한 언어라는 말씀이었다고 기억한다. 아무래도 이러한 강지훈 교수님의 '위로가 되는 조언'과 그동안 만 33세의 늦은 나이로 컴퓨터과학과에 편입해 컴퓨터과학 늦깎이 공부를 마구잡이로 해나가던(하면된다 돌격정신) 나의 경험과 이념을 전반적으로 감싸주는 책이 이번에 읽은 찰스 펫졸드의 <코드>가 되겠다 이렇게 요약할 수 있겠다. 컴퓨터과학을 이해하기 위해 몸부림치고 있는 나, 어쨌든 화이팅이다.

Comments