러닝 Go - Go 개발자처럼 생각하는 방법
존 보드너 지음, 윤대석 옮김 / 한빛미디어 / 2022년 2월
평점 :
장바구니담기


1. 시작


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


2022년 3월달에 소개할 책은 Learning Go(러닝 Go) 입니다


개발자 사이에서 핫한 언어는 Go언어 입니다.

인기를 한번 볼까요?


가장 유명한 프로그래밍 언어 인기 순위 사이트(타이오베)

https://www.tiobe.com/tiobe-index/



13위 입니다.

Go 언어는 C++의 복잡함, 긴 컴파일 시간을 단축시켜주는 구글에서 만든 언어입니다.

C, C++보다 배우기 쉽습니다.


Go 언어는 무엇을 개발할때 사용하면 좋을까요?


가장 유명한 오픈소스 도커, 쿠버네티스를 Go 언어로 만들었습니다.

컨테이너, 클라우드 환경, 시스템 프로그래밍에 적합한 언어라고 할수 있습니다.


Go언어를 학습하기 위한 모든 문법적인 부분을 포함하고 있습니다. 


책 서문에 필자는 이책에 대해서 다음과 같이 얘기하고 있습니다.


이 책은 Go 언어를 이용해 명확하고 관용적으로 개발할 수 있도록 기초 지식을 전달하는 실용적인 가이드다.


2. 책속으로

이 책은 완전 초급용은 아니고, 어느정도 프로그래밍 언어를 다룰 수 있는 대상을 독자로 책이 쓰여졌으며, 주요 내용을 목차순으로 설명하도록 하겠습니다.


첫장은 간단한 Go 개발 환경 설정을 안내합니다.

저는 Visual Studio Code를 사용해서 개발환경을 설정했습니다.

자동으로 Go관련 플러그인을 설치할 수 있어서 쉽게 환경설정을 해주는것이 초급 개발자에게는 너무나 편안합니다.



두번째장에서는 내장타입사용, 변수선언, 할당 및 연산자 역할을 이해할 수 있는 내용을 다루고 있습니다.


세번째장은 배열, 슬라이스, 맵, 구조체와 같은 복합타입에 대한 내용을 다루고 있습니다.


네번째장은 블록, 섀도, 제어구조(if,for, switch, goto)에 대해서 다루고 있습니다. 프로그래밍 언어에서 소스코드 해석에 대한 복잡성 때문에 사용하지 않는 goto문이 go언어에 포함이 되어 있다는것은 특이한 것 같습니다.


다섯번째장에서는 다른 언어에서의 함수를 비교해서 유사한점과 다른점을 알려줍니다.


여섯번째장은 포인터가 무엇인지, 사용은 어떻게 하는지?, 언제 사용하는지에 대해서 도움을 주는 내용들입니다.

그림을 통해서 쉽게 설명하도록 노력하고 있는데, 결코 쉬운 얘기는 아닙니다.


일곱번째장은 타입, 메서드, 인터페이스를 다루고 있습니다.


여덟번째장에서는 오류가 무엇인지? 정의하는 방법과, 확인하는 방법에 대해 다루고 있습니다.


아홉번째장은 모듈 동작 방법, 패키지 내에 코드 구성방법, 서드파티 모듈 사용법, 자신의 모듈을 배포하는 방법을 다루고 있습니다.


열번째장은 Go언어의 핵심기능중에 하나입니다. 동시성에 대해서 다루고 있습니다.


열한번째장은 표준 라이브러리에서 가장 일반적으로 사용되는 패키지 몇가지를 소개하고 있습니다.


열두번째장은 컨텍스트를 사용하여 요청 메타 데이터를 관리하는 방법을 가르쳐줍니다.


열세번째장은 테스트 작성, 테스팅, 코드 커버리지, 벤치마킹 등 코드 품질을 높이는 방법에 대해서 다루고 있습니다.


뒤로 갈수록 내용은 어려워집니다. 중고급 대상으로 쓰여진책이다 보니 내용이 쉽지가 않네요~^^; 하지만 깊이 있는 책인것은 확실합니다.


열네번째장은 리플렉션, unsafe, cgo를 다루고 있습니다.




마지막 열다섯번째장은 제네릭에 대해 설명하고, 문제를 해결하기 위한 Go사용 법 제네릭을 다루고 있습니다. 이책이 나오기 전에는 제너릭이 포함되지 않았지만, 이 서평을 쓰기 시작할때쯤 1.18버전이 나왔으며, 제네릭이 포함이 되었다고 합니다.

Go언어에서 제네릭이 구현하지 않은 이유가 책에서 3가지로 알려줍니다.

1.빠른 컴파일러

2.가독성이 좋은 코드

3.좋은 실행시간

제네릭을 위의 3가지를 훼손 시키기 때문에 구현을 하지 않았다고 합니다.



3. 아쉬운점

번역이 매끄럽지 못해서, 술술 읽히지 않는 부분이 아쉬운 점으로 남습니다.

대부분의 기술서적은 내용 자체가 딱딱하기 때문에 번역또한 쉽지 않은 부분이 있습니다.


그림, 도표가 거의 없습니다. 

그래도 다행인 것은 포인터 설명은 그림이 포함이 되어서 이해를 도와주고 있습니다. 

그외에는 소스코드, 글자가 대부분이어서, 가독성이 부족할 수 밖에 없어서 아쉬운 부분입니다.


보통의 프로그래밍 언어 책과 유사(기본 명령어에만 치중되어 있는)해서 다소 지겨울 수 있습니다.

재미있는 프로젝트 기반 예제가 없어서 아쉽습니다.


다만 책에서 제공하는 예제가 확장가능하도록 제작했다고 하지만, 아쉬운 부분은 있을수밖에 없습니다.


프로그래밍 언어 배울수 있는 책에 대해서 아쉬운 부분은

실제 업무에서 사용가능한 프로젝트 기반 예제

재미있는 샘플 예제를 통한 기본명령어, 문법, 데이터 타입을 배울 수 있으면 좋을것 같았는데, 늘 아쉬운 부분입니다.



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


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