viewimageM.php?id=reading&no=24b0d769e1d32ca73cef80fa11d028311d91f76561c72d2bb692991be83158b9ec52f4e3ce7f27ecd411ae3456642715d079db1fa60409035434cc1e52927b7ba77b238500a4257c8f2f959eb902daf3a726

토익 문제집 사러갔다가 충동구매로 산 책인데 막 산 책치고는 매우 재미있게 읽었다. 역시 동아시아 출판사의 과학서적은 믿고 구입해도 되는거 같다.

이 책은 코딩 기술을 직접적으로 다루기보다는 오늘날에 코딩이 왜 중요해졌고 코딩이 세계를 구성하는데 어떤 역할을 하고있는지 그리고 구체적으로 코딩이 어떻게 작동되는지에 대해 다루고있다. 코딩에 대해 흥미를 유발하고 코딩을 배워야할 이유에 대해 '영업'하고 있는 책이라고도 볼수 있을것이다. 이 책에서의 영업은 매우 성공적이어서 400쪽이라는 아주 짧지는 않은 분량임에도 빠르고 재미있게 읽어낼 수 있었다. 코딩의 역사나 각종 컴퓨터관련 철학자의 일화, 컴퓨터 뿐 아니라 세상의 근본원리 역시 코딩과 관련있음을 밝히는 부분이 흥미로웠고 표지에도 나와있듯이 기술적이 아닌 '인문학'적 서술이 돋보였던 것 같다.

이 책의 저자는 학자도, 전문작가도 아닌 현업에서 일하는 변리사이다. 책을 읽을때 저자의 이력을 살펴보고 책의 특성에 어떻게 반영되는지 살펴보곤 하는데 저자가 학자인지 전문작가인지 관련업무 종사자인지에 대해 서술에 차이가 있는거 같다. 학자의 서술의 경우 참고자료가 매우 풍부하고 특정 주제에대해 전문성이 돋보인다. 그러나 대중서적으로 썼음에도 본인 고유의 연구성과를 보이고 싶어서인지 특정분야의 서술에 치우치고 배경설명이 없는 경우가 많다. 전문작가의 경우 주요서적에 대한 요약과 문학적 서술에 치중하는데 읽는맛은 뛰어난편이나 스스로도 잘 이해하지 못하는 내용에대해 글을 쓰는것이 아닌가하는 의심을 떨칠수 없는것이 사실이다.

현업에서 일하는 사회인들의 글은 참고문헌이 거의 없는것이 특징이다. 거의 모든 내용을 자신이 아는 한도에서 자신의 언어로만 설명한다. 그리고 내용적으로는 수험서적과 비슷하면서 약간의 유머를 포함한다. 본인들도 수험생 출신이어서 수험서적식 서술에 익숙한 경향이 강한거같다. 수험서적식 설명을 매우쉽게 그리고 배경설명을 많이하면서 서술한다. 이러한 현업인들 글의 특징은 과거 '누워서 읽는 법학'(독갤 검색하면 나옴)의 변호사의 글을 보며 느꼈던 것인데 이 변리사의 글에서 다시금 느낄수 있었다. 누워서읽는 법학은 그 자체가 준 수험서로 쓰여서 이거보다 더 내용중심적이지만 이 책도 내용이 알차고 수험서적 느낌이 난다. 이 책을 통해 각종 개념들에 대해 배울수 있었다.

이 책은 5개의 장으로 구성되어 있다. 전술했듯이 각 장이 모여서 코딩의 중요성과 그 작동원리에 대해 홍보하는 것이 이 책의 큰 주제이다.

1장에서는 오늘날 코딩의 보편성과 코딩의 주요한 결과물들에 대해 말하고 있다. 코딩은 과거의 삽질과 톱질을 대신하는 것으로 기계(컴퓨터)를 사용해서 물리적 창작물을 만들어내는 다가올 시대의 노동이라고 보고있다. 코딩의 언어를 통해 게임 인터넷사이트 등의 각종 가상세계가 탄생했고 코딩언어는 협업을 통해 이루어지는것이라는 것 등의 이야기들을 하고있다.

2장에서는 코딩에서 사용되는 인공언어들이 구체적으로 어떻게 표현되는지에 대해 말한다. 이 책은 코딩기술을 다루는 교과서가 아니기 때문에 컴퓨터언어에 대해 다루는것이 주가 되지는 않지만 2장에서는 컴퓨터언어를 다루고있다. 우선적으로 언어의 위계상 인간이 사용하는 자연언어와 기계에 명령하는 프로그래밍 언어, 실제 기계가 작업하는 기계어의 위계가 있음을 설명하고 프로그래밍 언어가 인간의 자연어와 컴퓨터 기계어 중 어느쪽에 가까운지에 따라 다양한 종류로 나뉜다는것을 예시를통해 보이고있다. Hello world를 구현시키는 방법도 여러 컴퓨터언어에 따라 다름을 보이는데 엑셀언어만 알아도 기본적으로 컴퓨터에 명령하는 구조가 비슷하기 때문에 이해에무리가 없다. 프로그래밍 언어가 자연어와 극한적으로 비슷해진다면 자연어가 그대로 기계어로 번역되기 때문에 코딩이 전혀 필요치 않게될수도 있으나 그 구조를 아는사람과 그냥 자연어를 쓰며 만족하는 사람은 문맹과 비문맹수준의 차이가 날것이다.

3장에서는 코딩이 컴퓨터뿐 아니라 세계를 구성하는 근본원인임을 설명하고 있다. 내가 이 책에서 가장 재미있게 읽은 부분이자 각종 철학과 타분야 과학지식이 코딩이라는 분야로 통합되는 부분이다. 저자의 변리사 경력과 서울대 전자과졸업이라는 학식이 이 쉽지만은 않은 작업을 매끄럽게 해 주었다고 본다. 이 장에서는 세상만물을 생물과 무생물로 나누고 생물은 인간과 비인간, 인간의 생성물인 하드웨어와 소프트웨어 그 중간형태인 펌웨어로 구분짓는다. 그리고 이 모든분류가 코딩으로 이루어져 있음을 하나하나 각개격파식으로 설명한다. 가장 작은분류인 소프트웨어는 당연히 프로그래머의 코딩으로 구현된 것이다. 그러나 더 나아가 인간의 dna구조역시 4가지의 염기서열로 코딩된 것이고 가장 큰 단위인 우주 역시 각종 물리법칙으로 코딩된 것일 뿐이라는 설명을 한다. 우주를 코딩의 결과로 보기 때문에 각종 물리법칙이 코딩공식으로 적용될수 있는것이다. 그리고 이러한 코딩의 원칙을 세운 철학적 원리로 칸트의 물자체원리나 엘링튜터의 이미테이션 원칙등을 설명하는데 그 서술이 매우 직관적이라 이해하기 쉽다.

4장에서는 3장에서의 내용을 보다 좁혀서 컴퓨터에서의 코딩으로 돌아온다. 생물에서의 기본구성이 원자(구체적으론 더 나뉘지만) 우주에서의 기본구성이 빛의속도로 이루어져 있다면 컴퓨터의 기본구성은 비트로 이루어져 있다는 것이 이 장의 출발이다. 컴퓨터에서는 글자 그림 동영상등이 모두 같은 원리를통해 구현되고 그것은 컴퓨터가 2진수인 비트를 매우 빠른속도로 읽어내기 때문이다. 이 장에서는 각종 정보들이 비트처리과정을 통해 결과물로 구현되는 과정을 보여준다. 그리고 그 과정은 인간이 소리를 듣고 사물을 보고 그 정보를 뇌로 처리해서 반응하는것과 일치한다. 마지막으로는 정보의 단위와 기술적 난점등에 대해 언급한다.

5장에서는 코딩이 구현되는 바탕인 컴퓨터 그 자체에 대해 다루고 있다. 코딩은 컴퓨터의 하드웨어 정보 내에서 실행되어야하고 코딩언어와 이를 중재하는 OS의 상호작용으로 작동한다. 작가가 글을 쓸때 독자를 생각하듯이 프로그래머도 코딩을 할때 그 대상인 컴퓨터에 대해 잘 알필요가 있다. 그렇기 때문에 소프트웨어인 코딩을 하더라도 하드웨어 구조에 대해 알아야 한다. 이 장에서는 하드웨어가 어떤 과정을 통해 컴퓨터언어를 받아드려서 결과를 내놓는지에 대해 설명하는데 컴퓨터개론 지식이 많아서 매우 유익하다.