예제로 배우는 블록체인 - 비트코인, 이더리움 및 하이퍼레저를 이용한 블록체인 프로젝트 구축
벨라이 바드르 외 지음, 류광 옮김, 카르티케얀 수크마란 외 감수 / 한빛미디어 / 2019년 9월
평점 :
장바구니담기


리뷰에 앞서 본 리뷰는 한빛 출판 네트워크에서 진행한 “나는 리뷰어다” 이벤트에서 제공받은 책으로 진행한 것을 밝힙니다.

처음 비트코인이 나왔을 때, 이런 저런 이야기들이 많았으나, 신뢰할 만한 이야기는 사실 별로 없었던 것으로 기억한다. 당시 어떤 사이트를 가입하면, 어떤 정보를 제공하면 1 비트코인을 받을 수 있다는 사이트도 있었는데, 당시에 이걸 어떤용도로 쓸 수 있지 라는 생각을 하면서, 그냥 무시 했었다. 하지만 이제는 좀 달려졌다. 특히나 3년전쯤? 으로 기억하는데, 비트코인 광풍이 잠시 불었고, 많은 사람들이 돈을 벌기도 잃기도 하면서 블록체인은 모르지만 비트코인이라는 이름은 알게된 것으로 생각된다.

  리뷰를 하기 된, 이 책은, 예제로 배우는 책이기 때문에 쉽다고 느낄 수 있지만 생각보다 많은 지식의 허들이 있다는 생각이 든다. 물론 이 책을 읽는 분들이라면 프로그래밍 경력이나 여러가지 OS 관련 지식은 가지고 계시겠지만, 그렇지 않은 분들이라면, 이 책을 보면서 너무 급하게 모두 다 이해하려고 하지 않았으면 하는 생각이 들었다. 
  번역서인 만큼, 책을 읽을 때, 잘 읽히는 지가 중요할 수 밖에 없는데, 사실 이 부분은 번역자인 ‘류광’님의 이름을 보고 크게 우려하지 않았었다. 그리고 내 생각과 크게 다르지 않았다. 책은 읽기에 전혀 불편함이 없고, 적절한 위치에 쉼표도 잘 있어서, 간혹가다 책을 읽다 느끼는 숨막힘? 이런 것은 없었다. 
  
  이 책은 블록코인이 적용된 비트코인, 이더리움, 하이퍼레져와 같은 프로젝트를 클론해서 여러가지 예제를 적용하면서, 보다 쉽게 개념들을 읽힐 수 있도록 설명해 두었다. 이 책의 목적은 블록 체인을 사용자와 응용자 단에서 빠르게 어떤 것인지 이해하고, 이를 어떻게 적용하여 사용할 것인지를 설명하는데 중점을 둔 것으로 보인다. 블록 체인에 사용되는 내부 기술을 설명하자면, 한권의 책으로는 다 설명할 수 없을 뿐 아니라, 한번에 다 익힌다는 것도 무리이기 때문이다. 또 블록체인을 어떻게 사용하는지에 따라 어떻게 응용하면 좋을 지에 대해 프로젝트의 실습을 통해 빨리 감을 잡을 수 있도록 해 두었다.
  
  Java 프로그래머와 Javascript 프로그래머가 각각 선택해 내용을 살펴볼 수 있도록, 두 가지 언어를 통해 예제를 설명하고 있다. 어쩔 수 없이 기존 코드의 수정을 위해서 C++코드를 수정하는 부분에 대해서는 관련해서 설명하고 있어서, Java나 Javascript 프로그래머가 어렵지 않게 이해할 수 있도록 하고 있다. 또 예제를 수행하기 위해, 환경 설정을 어떻게 해야하는지, 어떤 버전을 써야하는 지 등 상세하게 설명이 잘 되어 있어, 따라하면서 예제를 실습하기에 큰 무리가 없다.
  
  이러한 책의 장점뿐만 아니라, 많은 내용을 한꺼번에 예제를 통해 설명을 하고 있다보니, 세세한 툴 사용법, 언어 사용법, 기본 네트워크 개념 및 보안 관련 툴 사용법이나 기본 개념에 대해서는 언급하지 않고 이미 알고 있다고 가정을 하고 설명을 하고 있다. 이 책에서 설명하는 프로그래밍 언어는 기본적으로 솔리디티와 같은 전용 언어를 제외하고, C++, Java, Javascript, Python, Go 를 다루고 있다. 그리고 Linux OS(Ubuntu 16.04 버전)를 기준으로 설명들이 나오므로 VM상에 Linux OS를 설치하고, apt를 이용하여 패키지를 설치해야 한다. 물론 VM을 사용하지 않아도 되지만, VM을 이용하는 편이 더 쉽게 책의 내용을 실습하기에 좋을 것이다.  그리고 container 사용을 위해, docker가 무엇인지 어떻게 사용하는지도 알고 있으면 좋다. 기본적으로 사용되는 find, sed, grep, curl과 같은 툴 사용법 및 regex 패턴 사용법에 대해서 이해하고 있으면 더 좋다. 또 책에서 설명하는 nano에디터(오래전 pico에디터의 확장판인 것 같다)나 vim, emacs 와 같은 Linux 에서 사용하는 command line editor도 간단하게 나마 사용법을 알고는 있는 편이 좋다. git, github, npm(Node.js), pip(Python)와 같은 툴이 어떤 것인지 간단히 어떻게 사용하는 것인지도 알고 있으면 더 좋다. 물론 책의 내용을 그대로 타이핑하면서 예제를 따라할 수는 있겠지만, 집중해야할 예제 이외에 다른 툴 때문에 허비하는 시간이 많을 수도 있다. 오래전에 vim을 들어갔다가 어떻게 빠져나오는지, 저장하는지 조차 몰라서 PC 전원을 껐다 켠 기억이… ^^;;
  
  책을 단 시간내에 리뷰를 하려다보니, 예제 확인해보고, 책 내용 읽어보는데, 시간이 꽤 걸린 책이다. 하지만, 이를 통해 기존에 어렴풋이 알고 있던 내용을 좀 더 명확히 알게 되었다. 이 책을 선택해 공부하시는 분들도 그러리라 생각된다. 좋은 책을 리뷰할 기회를 준 한빛 출판 미디어에 감사드리며 리뷰를 마칩니다.



댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo