이번에 리뷰할 책은 "HeadFirst Go"입니다.
Go는 구글에서 만든 프로그래밍 언어입니다.
go 혹은 golang으로 불리우며 컴파일하면 각각의 플랫폼에 맞는 바이너리 실행파일이 생성됩니다.
이 책 또한 헤드퍼스트 시리즈답게 쉽게 쓰여졌습니다
500페이지 분량의 책이지만, 큼지막한 글씨의 코드 많은 그림으로 이루어진 부가설명등으로
마치 글을 읽고 있기보다는 PPT나 그림등을 보고 있다는 느낌이 드네요.
대상독자는 초급자대상 입문용이라고 생각됩니다.
책의 목차는
문법기초, 조건문과 반복문, 함수, 패키지, 배열, 슬라이스, 맵, 구조체, 사용자 정의 타입, 캡슐화와 임베딩, 인터페이스,
실패 복구하기, 고루틴과 채널, 자동 테스트, 웹앱, HTML템플릿 으로 이루어져 있습니다.
이 책에서 좋았던 부분은 "부수면서 배우기"라는 코너가 중간중간 나오는데
초심자나 다른언어를 쓰다 go 언어를 쓰게되면 코드를 잘못 작성하거나 해서 오류가 났을때
익숙치 않은 에러메시지가 나와서 당황할 수 있는데, 이 코너에서 정상적인 코드 설명 후에
조금씩 코드를 망가뜨리고 그랬을때 어떤 오류가 어떤 이유로 실패하는지를 몇가지씩 보여주는데
언어를 처음 익힐때 도움이 많이 될 거라고 생각됩니다.
챕터마다 코드 퀴즈도 (객관식이긴 하지만) 내가 챕터를 제대로 이해했는지 판단할 수 있는 좋은 방법인거 같습니다.
C언어 이후에 간만에 포인터를 사용하는 코드를 봐서 걱정도 됐지만 예제수준의 내용으론 파악하기 문제가 없었고,
컴파일러에서도 어느정도 미리 잘못쓰여진 코드를 체크해주는거 같았습니다.
고루틴을 통한 동시성 지원, 코드의 타입과 변수명 순서가 다르다던지 struct구조체는 있는데 class는 없고, exception은 지원안하고 그대신 error를 리턴하게 하는등 여러가지 다른점이 있어서 go 언어를 배우려면 기본문법외에 별도의 best practice같은 걸 배워야 할 거 같습니다.
요새 나온 언어라서 쉽게 웹서버를 만들 수 있다던지, 자동테스트를 위한 패키지가 기본으로 들어가 있어서 토이프로그램을 만드는데는
일단 좋을거 같은데, 뭐랄까 어플리케이션을 개발한다고 했을때 기존 파이썬, node, 자바등에서 go로 넘어가야 할 이유를 딱히 찾지는 못했습니다.
컴파일속도가 빠르다한들 각각의 플랫폼마다 별도 빌드를 해야한다는 점도 있고.