디스커버리 Go 언어
Go는 범용 프로그래밍 언어로, 깔끔하고 간결하게 생산성 높은 프로그래밍이 가능합니다. 작성한 코드를 빠르게 컴파일하고 가비지 컬렉션을 지원하며, 정적 자료형 언어이지만 동적 자료형 언어로 프로그램을 작성하는 것 같은 기분을 느끼게 해주는 매력적인 언어입니다. 또한 동시성을 지원하는 코드를 쉽게 작성할 수 있습니다.
대상독자:
이 책의 대상독자로는 쉽고 재미있게 Go언어의 핵심을 알고 싶은 개발자 혹은 개발 지식이 있는 분들입니다. Go언어를 다른 언어와 비교하는 것이 많이 언급이 되며, 전반적인 내용 설명이 독자가 기본 프로그래밍 지식을 알고 있다는 가정하에 전개되기 때문에 아예 "처음" 프로그래밍 입문용으로는 어려울 수 있다고 생각합니다.
리뷰:
개인적으로 한빛 IT 서적의 가장 큰 장점을 하나 꼽자면, 쉽고 자세한 설명이라 할 수 있겠습니다. 이 책에서도 그러한 장점이 고스란히 녹아있는 것을 볼 수 있어요. 쉽고 자세하면서 간결합니다.
1장은 저자님께서 Go언어의 장점들을 짧지만 강력하게 추려놓으셨습니다.
1장을 읽으면서 약간의 문화충격(?)을 좀 느꼈는데요. 여타 도서들의 1장은 소개 및 설치의 내용이 메인이기에 편안히 넘겨보는 편인데, 첫 장부터 냅다 실전으로 들어가자며 go놀이터(https://play.golang.org/)로 인도하신 것이 일단 그랬구요. 스마트폰에서도 컴파일러를 활용할 수 있다고 하니 장소와 장비에 큰 제약 없이 간단한 기능 구현 연습을 할 수 있겠구나 싶었네요. (실제 설치와 환경설정과 관련한 부분은 2장에 자세히 나옵니다. ) 이 외에도 책의 전개에 따라 제게 익숙하던 언어와는 다른 여러 문화충격을 선사하시며 Go언어의 문법, 유용하게 활용할 수 있는 부분들을 소개해 주십니다. Go언어 함수의 특성을 잘 활용한다면, 프로그래밍에 유연하게 적용할 수 있으며, 언어에 익숙해지면 가독성, 유연성 측면에서 아주 좋을 것 같다는 생각이 들었습니다.
앞서 잠시 책이 (여타 프로그래밍 서적과 비교하여) 얇다고 언급하였습니다. 불필요한 내용은 제외한, 실제로 프로그래밍을 하다가 궁금해질 수 있는 부분에 대해 예제를 제시하기 때문입니다. 얇지만 문법활용부터 웹어플리케이션 작성과 네트워크 등 실무 패턴 등의 예제까지 살펴볼 수 있습니다. 양이 아닌 질로 승부를 하는 책이라는 생각이 들었습니다. Go언어 자체가 가볍고 강력한 언어라는 소문을 익히 들어와서인지 해당 책이 이러한 Go언어의 이미지를 아주 잘 표현하고 있다는 느낌이 듭니다.
또한 이 책은 Go언어의 문법과 더불어 Go언어를 활용할 수 있는 여러 소스들에 관한 팁도 제공합니다. 예를 들면, github에서 소스코드를 불러와서 볼 수도 있고, 참고할 수 있는 가이드라인 및 자료에 대한 링크도 제시합니다. 타 튜토리얼 등에서 쉽게 접할 수 있는 문법에 관한 학습보다는 실제 활용 시 접할 수 있는 문제에 대한 예제들에 좀 더 초점을 맞추었고요. 각 단원마다 마무리 내용정리와 연습문제를 통해서 배운 내용을 복습하고, 더 심화하여 생각해볼 기회도 제공하기 때문에 책 한 권으로도 다양한 컨텐츠를 활용해 학습하실 수 있는 기회가 될 수 있었네요.
직접 실행해볼 수 있는 예제들은 "소스코드 따라써보세요." 하는 기능 구현의 증명(?)의 예제라기보다는, 진행과정의 일부를 보여주고, "여기서 잠깐 생각해봅시다." 하고 해당 설명과 주의사항 등을 언급하며 한 단계 한 단계씩 진행해 나가는 방식이기에 기능이 가진 여러가지 역할을 살펴보며 진행할 수 있습니다. 여러 예제를 살펴보면서 다른 언어로는 구현하기가 까다로워 보이던 것도 Go언어로 표현하니 생각보다 간결하고 쉽게 되는 것이 참 신기하기도 했습니다.
Go언어의 특성이 궁금하신 개발자분들, 혹은 입문을 원하시는 분들께는 아주 좋은 실용서임은 두말할 것이 없어보이지만, 프로그래밍 언어의 전반적인 기능을 살펴보시고자 하는 분들께도 좋은 책입니다.