러닝 Go - Go 개발자처럼 생각하는 방법

“한빛미디어 <나는 리뷰어다=""> 활동을 위해서 책을 제공받아 작성된 서평입니다."

책표지

TL;DR

  1. Go언어에 관심있다면 이 책을 가장 추천한다. 이전에 읽었던 책을 모두 포함해서 이 책 정도면 Go언어를 실무에서 사용할 수 있는 최소한의 수준은 커버.
  • 참고로 저는 이 책 이후에 “밑바닥부터 만드는 컴파일러 in Go”와 “Gin“에 도전해볼 생각인데, 다른 좋은 의견 있으시면 언제든 연락주세요!
  1. 설치 관련해서는 구글이나 네이버에서 별도의 검색할 필요없이 교재에 나와있는 방법을 활용하면 됨.
  • 이 책을 함께 읽었던 분들 중 대부분이 윈도우 사용자라서 제가 개인적으로 설치 방법을 따로 정리해둔 것이 있으니 필요하시면 참고하시고, macOS의 경우 brew를 사용해서 설치하시길 권장합니다.
  1. Go가 처음이라면 VSCode와 플러그인(Go with Go Team at Google)을 함께 사용하길 권하며, JetbrainsGoLand를 사용하신다면 IDE 관련해서 설정 등과 같은 것들에 관한 내용은 GoLand 사용법을 꼭 참고해서 진행하시길 권장함.

  2. 저는 기존에 Go와 문법 구조와 철학이 유사한 언어를 알고 있어서 Ch1 -> Ch5 -> Ch13 -> Ch7 -> Ch8 -> Ch9 순서로 공부를 진행했고, 나머지는 순서대로 진행하였음

1

올해는 Go언어를 배워보기로 결정하고, 몇가지 사전 조사를 끝내고 Golang tutorial series을 하나씩 진행하고 있었다. 언어가 영어라서 알듯 모를듯한 내용을 뒤로 천천히 하고 있다가 3월에 한빛미디어에서 진행하는 리뷰 목록 중에서 러닝 Go책이 있어서 냅다 신청했다.

왜냐하면 Go 1.18 버전에 업데이트 되는 제네릭(generic)에 관한 내용이 책에 포함되어 있어서 내가 원하는 내용 뿐만 아니라 기존에 영어 때문에 알듯 모를듯한 내용도 바로잡기 위해서 냅다 신청했다.

만약 Go언어에 관심있다면 이 책을 가장 추천한다. 이 책 정도면 Go언어를 실무에서 사용할 수 있는 최소한의 수준으로 충분하다고 생각한다. 기존에 출판된 Go책도 몇권 봤지만, 언어 명세가 변경되었기 때문에 이왕이면 변경된 명세가 반영된 책을 참고하시길 권한다.

책의 특성상 문법 위주로 설명하고 있지만, 세부적으로 살펴보면 적당한 난이도가 있는 예제를 중심으로 진행하고 있다.

2

책의 구성상 처음부터 천천히 읽어보셔도 좋지만, 만약 기존에 언어를 사용하고 계시거나 1~2개 정도 언어를 알고 계시면 목차를 참고하시고 기초적인 변수/제어문 정도는 건너띄고 읽으셔도 큰 불편함은 없을 듯 하다. 왜냐하면 책이 앞서 소개한 개념이나 내용을 계속해서 가볍게 언급하고 있어서 필요할 때 참고하시면 좋을 듯 하다.

구성

학습을 진행할 때 약간의 불편함이 있는데, 1) 설치와 관련된 문제와 2) 예제 실습을 위해서 Makefile를 사용한다는 점이다.

  1. 설치의 경우 기존에 구글이나 네이버에서 설치 관련된 내용을 별도로 검색하지 마시고 교재에서 안내된 것으로 진행해도 충분하다. 윈도우에서 사용하는 Go 1.18의 경우 필요한 환경 설정은 대부분 자동으로 진행되기 때문에 특별히 새롭게 설정해야 되는 점은 없다.

  2. 예제 실습을 위해서 Makefile을 사용하길 권장하는데, 대부분의 경우 VSCode에서 해결된다. 그리고 이 책에 있는 80% 이상의 예제를 실행하면서 Makefile 때문에 문제가 발생한 적은 없으니 너무 걱정하지 않아도 된다.

마지막으로 GitHub에 공개된 예제가 하나의 저장소가 아니라 여러 저장소에 나눠져있기 때문에 예제를 활용할 때 GitHub의 learning-go-book 계정에서 필요한 예제를 clone 해서 사용해야 한다는 점은 미리 알아두면 좋을 듯 싶다.

3

저는 기존에 Go와 문법 구조와 철학이 유사한 언어를 알고 있어서 Ch1 -> Ch5 -> Ch13 -> Ch7 -> Ch8 -> Ch9 순서로 공부를 진행했고, 나머지는 순서대로 진행했다. 테스트 방법을 먼저 학습하고 나머지 챕터는 책을 읽으면서 어설프지만 나름대로 테스트 코드를 작성해서 진행하였다. 이렇게 공부하는데 귀찮긴 하지만 언어에서 제공하는 구문을 효율적으로 학습할 수 있다고 생각해서 개인적으로 생각하는 방법 중 하나다.

Go언어를 처음 접하신다면 순서대로 진행하시길 권하며, 다른 언어에 대한 사용 경험이 있으시면 자신만의 Path를 만들어서 진행하셔도 좋다.

저는 Go에 관심이 많고, 리뷰를 위해서 책을 다 읽었기 때문에(이것이 리뷰 이벤트에 참여하는 중요한 이유!) “밑바닥부터 만드는 컴파일러 in Go”와 “Gin“에 도전해볼 생각이다. Go를 좀 더 잘 활용하고 싶어서 선택했고, Gin은 초보자에게 적합하다는 풍문을 믿고 진행하기로 했다.

P.S : Go를 쉽고 재미있게 접할 수 있기를 기원하며, 문법 이후에 대해서 새로운 아이디어가 있으시면 언제든 연락주시면 반영해서 해당 문서를 업데이트 할 수 있도록 하겠습니다.

Written on March 20, 2022