aim***
2020-05-31

이 책은 Go 입문자가 알아야 할 것에 초점을 맞추어 Go 언어의 핵심을 간추리고 이를 쉽게, 재미있게 풀어쓴 Go 입문서입니다.
Head First 시리즈에서도 Go 입문서이다. Head First 시리즈는 상당히 유명한 걸로 알고 있고 디자인 패턴, 서블릿 등 몇몇 책은 이미 몇 권 가지고 있다. 이 시리즈에서 설명해주는 방법은 속도는 좀 느리지만 하나씩 차근차근 충분한 그림과 코드를 사용하는 것이다. 어떤 언어에 대해 입문하는 것을 이 시리즈로 접해보는 건 처음이다.
실무나 프로젝트를 통해서 언어를 한두 개 사용해본 사람의 경우, 보통 입문서를 보면 초반은 지루해서 많이 건너뛰곤 한다. 주로 나오는 내용이 함수, 조건문, 반복문일 테니까 말이다.
본인은 언어의 성격을 알기 위해서이기도 하고, 딱히 특정 언어에 대해 굉장히 deep 하게 아는 게 아니기 때문에 조건문이나 반복문도 꼭 살펴보곤 한다. 문법도 익힐 겸 말이다. 이 책도 기초부터 굉장히 쓸모 있는 설명을 많이 해준다. 특히 에러와 로그에 관련된 부분이 기억나는데, 실제로 지금도 업무에서 어떤 기능에 대해 설계하고 구현을 하다 보면 테스트 코드나 로그에 대해 별로 신경을 못쓰는 경우가 대부분이다. Go에서는 에러를 반환하는 함수의 경우 여러 개의 변수 중 하나의 변수로 에러 값을 리턴해준다. 그리고 사용하지 않는 변수는 선언할 수 없다. 변수를 사용하지 않는 방법도 있지만, 실무에서는 보통 최대한 많은 에러에 대해 대비를 해야 하기 때문에 컴파일 시 에러에 대해 예외 처리하지 않은 부분을 알 수 있으니까 정말 좋은 언어라는 생각도 들었다.
C/C++, Java, PHP를 주로 사용하는 본인의 경우 Go는 파이썬과 비슷한 수준의 언어로 생각이 된다. 문법이라든지 패키지 사용법 등이 그렇다. 나이를 먹다 보니 새로운 언어를 배워도 막상 쓸 일이 별로 없다. 하지만 새로운 프로젝트를 맡게 될 때나 이직(?)을 하게 된다면 또 다른 언어를 주로 사용하게 될 수도 있지 않을까? 본인은 기억력이 상당히 안 좋다. 책을 봐도, 리뷰를 해도 금세 까먹는다. 언어 입문서도 그렇고 자기 계발서도 그렇다. 그래서 오히려 더 지식에 대한 지식이 중요하다고 생각한다. 이야기가 좀 샌 것 같다.
언어 입문서지만 설명이 간결하고 자연스러운 반복학습을 유도하며 개념적인 부분에 신경 쓰다 보니 읽다 보면 이해도 쏙쏙 되고 금방금방 페이지가 넘어가는 것 같다. 점심시간 전에 20분씩만 읽어도 금방이다. 국내에서는 아직 golang을 별로 사용하지 않는 것 같다. golang이 클라우드 쪽에 강점이 있는 것 같은데, 앞으로 좀 더 활용할 기회가 많아지지 않을까 싶다.