Top

Go Cookbook [예제로 배우는 Go 언어 활용법]

  • 원서명Go Cookbook: Build modular, readable, and testable applications in Go (ISBN 9781783286836)
  • 지은이애런 토레스(Aaron Torres)
  • 옮긴이이상식
  • ISBN : 9791161750880
  • 30,000원
  • 2017년 12월 13일 펴냄
  • 페이퍼백 | 484쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 프로그래밍 언어

판매처

개정판

책 소개

소스 코드 파일은 여기에서 내려 받으실 수 있습니다.

요약

Go 언어는 구글이 만든 언어로, 그 생산성과 성능을 검증받아 구글 내부 프로젝트뿐만 아니라 도커(Docker)의 개발에도 활용되고 있다. 이 책은 Go 언어의 상황에 따른 맞춤 활용법을 다룬다. 요리책의 레시피 소개 형식을 빌려 파일 입출력부터 예외 처리, 데이터베이스 연결, 마이크로서비스 개발에 이르기까지 다양한 상황에서의 활용법을 예제와 함께 제공한다. Go 언어 입문자나 간단한 문법만 알지만 어떻게 활용할지 몰라 고민하는 개발자, 다른 언어를 사용하고 있지만 새로운 언어를 배워보려는 개발자 또는 실무에서 Go 언어를 활용하고 있는데 상황에 따라 빠르게 참고할 예제 코드를 찾고 있는 개발자 모두에게 알맞은 책이다.

이 책에서 다루는 내용

■ 고급 테스트 방법론을 바탕으로 애플리케이션 테스트
■ 애플리케이션 구조, 인터페이스 디자인 및 툴링
■ 서드파티 패키지와 의존성, 벤더링 전략 수립
■ 컬렉션과 같은 데이터를 다루는 방법
■ 에러 처리 및 처리된 에러를 호출 함수로 전달하는 방법
■ 이식성 향상과 테스트를 위해 인터페이스로 의존성 래핑
■ Go의 반응형 프로그래밍 및 디자인 패턴

이 책의 대상 독자

웹 개발자, 프로그래머, 엔터프라이즈 개발자를 대상으로 한다. Go 언어에 대한 기본적인 지식을 가졌다고 가정하며, 백엔드 애플리케이션 개발 경험이 반드시 필요한 것은 아니지만 경험이 있다면 레시피 배경을 이해하는 데 도움이 된다.
예제나 참고 사항을 찾는 능숙한 Go 언어 개발자에게도 좋은 참고서가 된다. 오픈소스 코드 저장소를 활용하면 이 책의 예제들을 빠르게 자신의 소스 코드에 적용할 수 있다.

이 책의 구성

1장, 'I/O 및 파일시스템'에서는 일반적인 I/O 인터페이스를 다루고 파일시스템 작업에 대해 설명한다. 임시 파일, 템플릿 및 CSV 파일이 포함된다.
2장, '커맨드라인 도구'에서는 커맨드라인을 바탕으로 사용자의 입력을 받는 방법과 TOML, YAML 및 JSON과 같은 일반적인 데이터 유형을 처리하는 방법을 살펴본다.
3장, '데이터 변환과 합성'에서는 Go 인터페이스와 데이터 타입 사이의 변환 방법을 보여준다. 또한 Go의 인코딩 전략 및 일부 기능 디자인 패턴을 보여준다.
4장, 'Go의 에러 처리'에서는 에러를 처리하기 위한 Go의 전략을 살펴본다. 에러를 전달하고 처리하고 기록(log)하는 방법을 알아본다.
5장, '데이터베이스와 스토리지에 관한 모든 것 MySQL과 같은 데이터 스토리지 시스템에 액세스하기 위한 다양한 저장소 라이브러리를 다룬다. 또한 애플리케이션의 논리(logic)에서 라이브러리를 분리하기 위한 인터페이스 사용을 보여준다.
6장, '웹 클라이언트 및 API'에서는 Go HTTP 클라이언트 인터페이스, REST 클라이언트, OAuth2 클라이언트, 클라이언트에 기능을 추가를 위한 데코레이션 및 확장, GRPC 구현에 대해 살펴본다.
7장, 'Go 애플리케이션의 마이크로서비스'에서는 웹 핸들러에 대해 알아보고 상태를 핸들러에 전달하는 방법, 사용자 입력 및 미들웨어에 대한 유효성 검사를 수행하는 방법을 살펴본다.
8장, '테스트'에서는 목(mock), 테스트 커버리지(test coverage), 퍼징(fuzzing), 동작 테스트(behavior test)를 비롯한 여러 가지 유용한 테스트 도구에 중점을 두고 테스트에 대해 알아본다.
9장, '병렬성과 동시성'에서는 채널 및 비동기 작업, 아토믹 값(atomic value), Go 컨텍스트 객체 및 채널 상태 관리에 대해 참고할 만한 내용을 제공한다.
10장, '분산 시스템'에서는 서비스 탐색(service discovery), Docker 컨테이너화(containerization), 메트릭 및 모니터링, 오케스트레이션을 구현한다. Go 애플리케이션의 배포(deploy)와 실제 배치(productionisation)를 주로 다루고 있다.
11장, '반응형 프로그래밍과 데이터 스트림'에서는 반응형/데이터 플로우 애플리케이션, Kafka 및 분산 메시지 대기열 및 GraphQL 서버에 대해 살펴본다.
12장, '서버리스 프로그래밍'에서는 서버를 유지 관리하지 않고 Go 애플리케이션을 배포하는 방법을 다룬다. 여기에는 서버리스(serverless) 환경에서 Google App Engine, Firebase, Lambda 및 로깅 사용이 포함된다.
13장, '성능 향상, 팁 및 트릭'에서는 벤치마킹, 병목 현상 확인, 최적화 및 Go 애플리케이션의 HTTP 성능 향상에 대해 다룬다.