◈ 이 책에서 다루는 내용 ◈
◆ Go 언어 및 도구에 대한 확실한 이해를 얻는다.
◆ Go 표준 라이브러리에 대한 심층 지식을 얻는다.
◆ 동시/병렬 작업에 Go를 사용한다.
◆ 클라이언트 및 서버 측 개발에 Go를 사용한다.
◈ 이 책의 대상 독자 ◈
Go를 사용해 애플리케이션을 만들고 싶은 숙련된 개발자를 위한 책이다.
◈ 이 책의 구성 ◈
세 부분으로 나눠 Go 언어를 포괄적으로 소개한다. 1부는 Go 언어에 대한 전반적인 이해를 도와준다. 1부는 앱을 만드는 과정을 안내하고 Go 도구, 흐름 제어, 배열, 슬라이스 및 맵, 메서드 및 인터페이스 사용, 패키지 만들기 및 사용, 에러 처리 등을 소개한다. 2부는 Go 표준 라이브러리를 소개한다. 문자열 처리 및 정규식, 수학 함수 및 데이터 정렬, 파일 작업, HTML 및 텍스트 템플릿, 단위 테스트, 벤치마킹, 로깅, 영역을 배울 수 있다. 마지막으로 3부는 Go를 적용하는 방법을 다룬다. ‘SportsStore’ 애플리케이션을 개발하면서 웹 플랫폼, 미들웨어, 템플릿, 핸들러 등을 만드는 방법을 배울 수 있기 때문에 집에서도 쉽게 Go 개발을 할 수 있다.
각 주제는 명확하고 간결하고 실용적인 접근 방식으로 다뤄진다. 효과적인 학습에 진정으로 필요한 세부 정보로 가득 채우기 위해 장마다 일반적인 문제와 문제를 방지하는 방법을 포함하고 있다.
◈ 옮긴이의 말 ◈
Go 언어는 아주 간단한 문법으로 다른 프로그래밍 언어에 비해 굉장히 배우기 쉽습니다.
컴퓨터공학 전공 수업 과제나 실습 수준의 개발 경험만 있던 신입사원도 입사하고 일주일 만에 Go언어를 공부하고 곧바로 프로젝트에 투입돼 Go 언어로 API를 개발할 수 있습니다.
하지만 제대로 Go 언어를 사용하기는 쉽지 않습니다. 간단한 문법은 그만큼 지원하지 않는 것이 많다는 것을 의미하고 나머지는 결국 개발자의 몫이 됩니다. 예를 들면 Go 언어는 클래스 문법을 지원하지 않기 때문에 개발자가 인터페이스와 메서드를 활용해서 다형성을 구현해야 합니다. Go 언어의 강력한 장점인 고루틴도 개발자가 스레드 개념을 정확하게 인지하지 못하고 채널을 통해 고루틴을 제대로 관리할 수 없다면 동시성 프로그래밍의 장점을 누릴 수 없습니다. 사실 C 언어든 자바(Java) 언어든 어느 정도 프로그래밍 언어를 공부하고 컴퓨터 사이언스 지식이 있어야 Go가 가장 최소한의 문법으로 자유도 높은 프로그래밍을 즐길 수 있는 언어라는 것을 느낄 수 있습니다.
그런 의미에서 이 책은 간단한 문법이 특징인 Go 언어를 공부하는 책 치곤 분량이 많다고 느낄 수 있지만 다른 프로그래밍 언어보다 Go 언어의 강력함을 최대한 느낄 수 있게끔 다양한 예제와 풍부한 설명을 담고 있습니다. 개발 경험이 적은 독자에게는 섬세하게 Go 언어 프로그래밍을 알려줄 수 있으며, 개발 경험이 있는 독자에게는 여러 해답을 제시하고 생각할 거리를 던져줄 것입니다.
이 책을 번역하기 위해 약 1년 간 주말마다 공부하던 시간이 소중하게 느껴집니다. 중간중간 포기하고 싶은 마음도 들었지만 많은 분의 도움이 있었기 때문에 성공적으로 마무리할 수 있었던 것 같습니다. 첫 번역이라 아쉬운 부분이 많지만 원서가 전달하려던 지식과 정보를 독자에게 정확하게 전달하기 위해 노력했습니다.