Go 언어는 아주 간단한 문법으로 다른 프로그래밍 언어에 비해 굉장히 배우기 쉽습니다. 컴퓨터공학 전공 수업 과제나 실습 수준의 개발 경험만 있던 신입사원도 입사하고 일주일 만에 Go언어를 공부하고 곧바로 프로젝트에 투입돼 Go 언어로 API를 개발할 수 있습니다.
하지만 제대로 Go 언어를 사용하기는 쉽지 않습니다. 간단한 문법은 그만큼 지원하지 않는 것이 많다는 것을 의미하고 나머지는 결국 개발자의 몫이 됩니다. 예를 들면 Go 언어는 클래스 문법을 지원하지 않기 때문에 개발자가 인터페이스와 메서드를 활용해서 다형성을 구현해야 합니다. Go 언어의 강력한 장점인 고루틴도 개발자가 스레드 개념을 정확하게 인지하지 못하고 채널을 통해 고루틴을 제대로 관리할 수 없다면 동시성 프로그래밍의 장점을 누릴 수 없습니다. 사실 C 언어든 자바(Java) 언어든 어느 정도 프로그래밍 언어를 공부하고 컴퓨터 사이언스 지식이 있어야 Go가 가장 최소한의 문법으로 자유도 높은 프로그래밍을 즐길 수 있는 언어라는 것을 느낄 수 있습니다.
그런 의미에서 이 책은 간단한 문법이 특징인 Go 언어를 공부하는 책 치곤 분량이 많다고 느낄 수 있지만 다른 프로그래밍 언어보다 Go 언어의 강력함을 최대한 느낄 수 있게끔 다양한 예제와 풍부한 설명을 담고 있습니다. 개발 경험이 적은 독자에게는 섬세하게 Go 언어 프로그래밍을 알려줄 수 있으며, 개발 경험이 있는 독자에게는 여러 해답을 제시하고 생각할 거리를 던져줄 것입니다.
이 책을 번역하기 위해 약 1년 간 주말마다 공부하던 시간이 소중하게 느껴집니다. 중간중간 포기하고 싶은 마음도 들었지만 많은 분의 도움이 있었기 때문에 성공적으로 마무리할 수 있었던 것 같습니다. 첫 번역이라 아쉬운 부분이 많지만 원서가 전달하려던 지식과 정보를 독자에게 정확하게 전달하기 위해 노력했습니다.