안녕하세요?
이번달은 헤드 퍼스트 Go를 신청해서 읽었습니다.
늘 그렇듯이 이 책 리뷰를 누가 읽을까? 많이 고민하면서 씁니다.
프로그램밍을 처음 접하시는 분들도 계시고, 다른 언어를 사용하시다가 Go 언어에 관심이 생기셔서 검색하고 오신 분들도 많으실꺼에요.
이 책을 신청하게 된 계기가 제가 요즘 쿠버네티스도 좀 보고 있는데, 쿠버네티스가 Go로 만들었다고 해서 급 관심이 생겼습니다.
쿠버네티스를 만들었다고 하면, 우리가 Go 에 대해서 충분히 관심을 가질만하다고 생각합니다.
결론부터 이야기하면 다른 언어로 입문 공부하신 분들이 읽으시면 좋습니다.
저는 주로 파이썬으로 공부를 해서, 파이썬을 위주로 자바스크립트, 자바, C#과 관련하여 코멘트를 조금 하자고 합니다.(초보용이에요)
일반 프로그래밍 언어처럼 비슷한 순서로 목차가 구성되어있습니다.
중반 이후부터 파이썬과 자바스크립트 입문에서는 볼 수 없는 Go 프로그래밍 언어의 특징적인 개념들이 많이 나옵니다. 그래서, 개념이 낯설어서 힘들게 느껴질수도 있습니다.
그래도, 중반까지의 개념 설명들을 읽으면 왜 요즘 자바스크립트에서 타입스크립트를 선호하는 개발자들이 늘고 있는지 이해가 갑니다.
Go 를 보면서, 파이썬이나 자바스크립트 보다 전체 문법 구조가 더 탄탄하다는 느낌을 받았습니다. 처음 시작은 패키지 임포트하면서 비슷하게 가는 것 같지만, 빠르게 간단한 프로그램을 만들것인가? 시간이 걸리더라도 에러없는 탄탄한 프로그램을 만들것인가? 에 대한 선택의 문제인 것 같습니다.
파이썬의 경우 자동형 변환, 타입 설정을 별도로 하지 않아도, 에러 값 처리에 대한 신경을 별로 하지 않아도 되지만(물론 견고하게 프로그래밍하려면 다 신경써야 하지만, 프로그램 입문자의 경우 그렇게 하기 힘들다는 일반적인 이유에서), 헤드퍼스트 Go 에서는 처음부터 이 부분까지 신경쓰면서 Go 언어를 설명합니다.
그래서, 파이썬 같은 프로그래밍 입문자의 경우에도 자신의 프로그램이 여러 에러에 잘 대처하기 위해서는 어떤식으로 프로그래밍을 해야 하는지 좋은 느낌을 받을 수 있습니다.
여러 타입과 문제와 해결이 전체적인 유기성을 갖고 차근차근 설명합니다. 그래서 여기서 이 프로그래밍 개념들을 왜 배워야하는지 수긍하게 되어서, 자꾸 뒷페이지로 넘어가게 됩니다. 책 내용이 특별히 어렵다보다는 첫 개념 잡는데 시간을 많이 할애하고, 앞에서 배운 것들을 뒷에서도 자꾸 언급하게 되어서 전체 개념을 잡기에 좋습니다.
그래서, 문법 구조나 개념이 자바나 C# 를 배우는 듯한 느낌도 들지만, 책 설명이 쉽고, 예제가 간단한 것들이라서 중급으로 가는 길목이라면 어렵지 않게 공부할 수 있습니다.
다만, 헤드 퍼스트에 대한 호불호에 따라서 다른 평가가 나올 것 같습니다. 제 생각에는 어느 정도 아는 입장에서 보면, 소설책 읽듯이 아~ 그렇지, 아 ~ 이런 면은 좋네 라고 생각하면서 전체적이 그림을 잡기에 좋지만, 처음 입문자라면 자꾸 말이 길어지고, 정확한 개념을 잡는데 다소 장황할 수 있습니다.
저는 이번에 책을 읽으면서, 프로그램밍을 할 때 고려해야 할 여러가지들을 이해하는데 많은 도움이 되었습니다. 그러나, 파이썬을 주로 사용하다가 보니, 이렇게까지 고려하면서 할 필요는 없는 것 같습니다. 기존 개발자분들 중에서 Go 언어에 대해서 관심이 생기신 분들은 책 양이 많아보이지만, 엄청 빠르게 읽을 수 있기 때문에, 일독을 하시면서, 잘 짜여진 문법 구조를 맛보시기를 바랍니다.