티스토리 뷰

Hobby/Book

[Book] Head First Go

생각많은 소심남 2020. 4. 30. 23:01

(해당 포스트는 "Head First Go"에 대한 서평으로, 해당 책은 한빛미디어로부터 제공받았음을 알려드립니다.)

 현업에서도 데이터 분석이랑 시각화 관련 작업을 하다보니, R과 Python, 어쩌다가 C로 업무를 하게 되는데, 최근 트렌드 중에 "Go" 라는 언어가 많이 나오고 있는 것 같았다. 그래서 언젠가는 어떤 포인트로든 내가 하는 업무에 Go 를 접목시켜서 좀 배워볼 기회를 가지면 좋겠다 싶었는데, 마침 책으로써 미리 다뤄볼 기회가 생겨서, 이에 대한 글을 좀 남겨보고자 한다.

그림1. Go의 마스코트, Gopher

Go는 2009년, Google의 Rob Griesemer와 Rob Pike, Ken Thompson이 만든 functional language이다. 원래의 목적은 google 내부에서 많이 다뤄지는 network기반의 데이터 처리를 용이하게 하기 위해서 만든 언어였지만, 빅데이터를 처리하는 요즘 트렌드와 맞물려서 오픈소스로 많이 활용되고 있다.

그림2. Go의 TIOBE Index

C나 Java와 같이 많이 쓰이는 언어에 비해서 비교적 최근에 나온 언어인만큼 다른 언어의 장점을 많이 살리고, 최근 기술의 경향성을 반영한 측면이 많이 드러나 있다. 사실 나도 Go를 모르는 상태에서 책을 읽으면서 많이 느꼈던 게, 뭔가 여러 언어가 짬뽕이 되어 있다는 것이었다. 특히 package handling같은 것은 Python을 보는 듯했고, pointer를 처리하고 memory에 직접 접근하는 부분은 C/C++에서 사용하던 부분과 많이 유사해보였다.

그림3. Head First Go

 시중에 Go 관련 번역서들이 많이 나와있지 않은 상태에서, 이 책은 Go를 딱 처음 접하는 사람들이 하나씩 직접 기초 문법을 접하면서, 궁극적으로 하나의 간단한 웹앱을 만드는 과정을 다루고 있다. 세부적으로 따지자면, Go의 기본적인 문법(함수, 타입, 조건/반복문, 함수 선언, 포인터)와 자료형(배열, 구조체, 맵 등), tool(package나 test, web 등) 와 같이 Go의 전반적인 내용들을 전부 다루고 있다. 아마 Head First 시리즈를 접해본 사람이라면 알겠지만, 책의 내용이 다른 책에 비해 쉽게 기술되어 있다. 이 책이 지향하는 부분은 명확하다. 이해를 쉽게 하기 위한 그림이 많고, 눈코딩과 퀴즈들이 많이 들어 있다. 물론 Go를 활용해서 실무에 활용해야 하는 사람이라면, 부족하게 느낄 수도 있겠지만(서문에도 딱 "이 책은 레퍼런스를 찾는 슈퍼 개발자를 위한 책이 아닙니다"라고 적혀있다.), 그래도 나름대로 Go에서 추구하는 testing이나 routine과 같은 고급 문법도 나름 이해가 쉽게끔 설명이 되어 있어 좋았다.

  원서의 기존 내용 만큼이나 번역 내용도 깔끔해서 마치 재미있게 풀어쓴 소설책을 읽는 느낌이 나고, 어쩌면 나처럼 Go를 처음 접하는 사람이라면 재미있게 책을 읽으면서 Go를 공부할 수 있을 것이다. 이런 부분이 여타 Go 번역서와 비교되는 Head First Go 만이 가지는 차별성이 될 거 같다. 

(참고로 해당 도서 관련 추가 예제도 따로 홈페이지(영어)로 구축되어 있으니 참고하면 학습에 많이 도움이 될 거라 생각한다.)

댓글