legen***
2022-03-30

개발 숙련도와는 상관없이 누구나 Go 언어 개발자처럼 생각할 수 있다. 더 나아가 경험이 풍부한 Go 개발자들이 채용한 디자인 패턴과 선택한 이유를 소개한다. Go 언어를 이용해 명확하고 관용적으로 개발할 수 있도록 기초 지식을 전달하는 실용적인 가이드다.
Google에서 개발한 언어라는 이유로 초창기 1.0버전 발표무렵에 한참 스터디했던 기억이 있다. c와 많이 비슷하면서 변수 선언, 세미콜론(;) 입력 생략(가능), 동시성 프로그래밍에 강점을 가지며, 간단하게 서버 구현을 할 수 있다는 강한 인상을 남겼던 언어였던 것으로 기억하고 있다. 업무에서의 실전 개발(?) 기회를 얻지 못하고 약간의 맛(?)만을 본 후 잊혀져간 언어이다.
최근에 컨테이너, 클라우드 구축의 인기에 힘입어 도커, 쿠버네티스, 이더리움 등 많은 곳에서 성능과 안정성을 인정받고 있는 것으로 알고 있으며, 이번에 기회가 되어 '러닝(Learning Go)' 서적을 읽어볼 수 있는 기회가 생겼다.
2022년 3월 현재, Go의 최신 버전은 1.18이다. (1.0출시기준)10년 조금넘게 지난 시점에 적다면 적고, 많다면 많은 버전 변화가 있었다. 번역서 초판 출판 시점이 22년 2월임에도 불구하고 가장 최신 버전인 1.18에 포함된 제너릭 프로그래밍도 책의 가장 마지막 챕터를 할애하고 있다는 점이 인상적이다. 그러나, 한 챕터에서 제너릭의 내용을 모두 설명하기에는 다소 부족한면이 큰것이 사실이다. 이 부분은 향후 개정판을 기대해보는 것도 좋을 것 같다.
출판사페이지의 '출판사리뷰'의 타이틀에서 느껴지듯
"뭐라Go? 아직도 모른다Go? 알려준다Go! 가 보자Go!"
이 책은 Go를 사용해보지 않은 사용자를 포함하여, 이미 어느 정도 Go를 사용한 독자라도 도움을 줄 수 있는 책이 되는 것이 저자의 목표이다. 초보자를 대상으로 하고 있지만 컴퓨터 언어를 전혀 접해보지 않은 독자에게는 파이썬과 같은 언어에 비해서는 독자가 쉽게 설명해 주려는 노력도 어느 정도 한계가 있기 마련이다. 다른 프로그래밍 언어 특히 C언어 경험이 있다면 책을 읽고 Go언어를 익히는데 많은 도움을 얻을 수 있다.
초반부 챕터들은 여타의 프로그래밍 서적에서와 같이 환경설정을 시작으로 데이터 타입, 제어, 함수 등을 다루고 있다.
문법 나열식의 서적이라면 지루 할 수 있겠지만, 저자의 경험이 녹아 실질적으로 도움이 될 수 있는 패키지와 모듈의 사용법과 협업시 용이한 도구들의 사용법도 알려주고 있어 실무에서도 만은 도움을 얻기 충분하다.
웹을 포함하여 현대적인 환경에서 효과적인 프로그래밍이 가능한 Go 언어를 익히고자 한다면, 이 책 '러닝 Go'와 함께 하길 바란다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."