spaci***
2020-05-29

이 책은 Go 입문자가 알아야 할 것에 초점을 맞추어 Go 언어의 핵심을 간추리고 이를 쉽게, 재미있게 풀어쓴 Go 입문서입니다.
화면을 보면 대충 짐작하겠지만 Golang은 멀티 리턴값을 지원하고 언어 자체적으로 컨벤션을 제공한다.
(언어 자체적으로 제공하는 컨벤션이 맘이 들지 않는다면 어쩔 수 없다. 구글에 요청 메일을 보내자.)
개인적으로 가장 맘에 들었던 부분은 프로그램이 커질수록 모듈화가 필요한데 Golang에서 어떻게 모듈화를 하여 사용할 수 있는지 여러 페이지를 할애하여 잘 나와있다는 것이다. Golang에서 모듈화를 몇번 연습하면 오바좀 해서 언어의50%가량 익힌 것이라 생각한다. 프로그램의 구조를 어떻게 정의할 수 있는지 미리 알고 사용할 수록 커다란 프로그램을 만드는데 도움이 되기 때문이다.
아래는 책의 중간에 나온 모듈화를 하고 가져와서 사용하는 내용의 일부이다.
Head First Go에선 이후 Go언어의 배열을 비롯한 멀티태스킹, 채널등의 개념을 배우고 마지막으로 웹앱을 만들며 책을 끝맺는다. Go언어에서 멀티태스킹은 특히 중요한데 Go의 내부 스케줄러가 마이크로프로세스를 관리하는 능력이 뛰어나기 때문이다. 최대 사용할 마이크로프로세스의 개수를 지정하는 API도 있다. (좀 더 스케줄러의 내용을 깊이 들어가보면 최대 마이크로프로세스의 개수를 넘겨서 사용하는 경우가 발생할 수 있는데, 이 경우를 확실히 이해하는 것이 좋다.)
Go언어의 간결한 문법으로 사용가능한 멀티태스킹 기능을 사용하면 빠르게 강력한 스케줄러를 갖춘 멀티태스킹 프로그램을 작성할 수 있다. Go언어의 스케줄러는 Go언어를 사용하는 이유이자 언어의 꽃이라고 해도 지나치지않다.
입문자에겐 눈에 보기 쉽게 쓰여진 책이고 중급자 이상에겐 매번 언어의 특성을 기억해야 하는 번거로움을 덜어줄 레퍼런스로서의 역활을 독톡히 할 책이 출판되었다고 생각한다.
Go언어에 관심이 있는 개발자들이라면 이 책을 한권 소장해 보기를 권한다