장바구니 담기 close

장바구니에 상품을 담았습니다.

Go Cookbook

Go Cookbook

  • 애런 토레스
  • |
  • 에이콘출판
  • |
  • 2017-12-13 출간
  • |
  • 488페이지
  • |
  • 188 X 235 mm
  • |
  • ISBN 9791161750880
판매가

30,000원

즉시할인가

27,000

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
27,000

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평

■ 고급 테스트 방법론을 바탕으로 애플리케이션 테스트
■ 애플리케이션 구조, 인터페이스 디자인 및 툴링
■ 서드파티 패키지와 의존성, 벤더링 전략 수립
■ 컬렉션과 같은 데이터를 다루는 방법
■ 에러 처리 및 처리된 에러를 호출 함수로 전달하는 방법
■ 이식성 향상과 테스트를 위해 인터페이스로 의존성 래핑
■ 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 성능 향상에 대해 다룬다.

목차

1장. I/O 및 파일시스템
__소개
__공통 I/O 인터페이스 사용하기
__bytes 및 strings 패키지 사용
__디렉터리 및 파일 작업
__CSV 형식 작업하기
__동작 원리
__임시 파일 작업하기
__text/template 및 HTML/template으로 작업하기


2장. 커맨드라인 도구
__소개
__커맨드라인 플래그 사용하기
__커맨드라인 인수 사용하기
__환경 변수 읽기 및 설정
__TOML, YAML, JSON으로 환경 설정하기
__유닉스 파이프 다루기
__시그널 잡기와 처리하기
__애플리케이션에서 ANSI 컬러 사용하기

3장. 데이터 변환과 합성
__소개
__데이터 타입 변환과 인터페이스 캐스팅
__math와 math/big을 이용한 산술 데이터 타입 다루기
__통화 변환 및 float64에 관한 고려 사항
__인코딩 및 디코딩에 포인터와 SQL NullTypes 사용하기
__Go 데이터의 인코딩과 디코딩
__Go의 구조체 태그 및 기본적인 리플렉션
__클로저를 통한 컬렉션 구현

4장. Go의 에러 처리
__소개
__에러 처리 및 에러 인터페이스
__pkg/errors 패키지 사용 및 에러 감싸기
__log 패키지 사용과 에러 기록 시기 이해하기
__apex와 logrus 패키지를 사용한 구조적 로깅
__context 패키지를 사용한 로깅
__패키지 수준의 전역 변수 사용
__장기 실행 프로세스에서 패닉 잡기

5장. 데이터베이스와 스토리지에 관한 모든 것
__소개
__MySQL로 알아보는 database/sql 패키지
__데이터베이스 트랜잭션 인터페이스 실행하기
__SQL의 커넥션 풀, 속도 제한 및 시간 초과
__Redis 사용하기
__MongoDB 및 mgo와 함께 NoSQL 사용하기
__데이터 이식성을 높이기 위한 스토리지 인터페이스 만들기

6장. 웹 클라이언트 및 API
__소개
__http
__REST API용 클라이언트 작성하기
__병렬 및 비동기 클라이언트 요청 실행하기
__OAuth2 클라이언트 사용하기
__OAuth2 토큰 스토리지 인터페이스 구현하기
__추가 기능 및 함수 합성으로 클라이언트 감싸기
__GRPC 클라이언트 이해하기

7장. Go 애플리케이션의 마이크로서비스
__소개
__웹 핸들러와 요청, ResponseWriter 사용하기
__상태 추적 가능한 핸들러를 위한 구조체 및 클로저 사용하기
__Go 구조체 입력 및 사용자 입력 검증하기
__렌더링 및 내용 협상
__미들웨어 구현 및 사용하기
__역방향 프록시 애플리케이션 작성
__GRPC를 JSON API로 내보내기

8장. 테스트
__소개
__표준 라이브러리를 이용한 모조품 만들기
__Mockgen 패키지 사용하기
__테스트 커버리지 향상을 위한 테이블 기반 테스트
__서드파티 테스트 도구 사용하기
__실용적인 퍼징
__Go로 동작 테스트하기

9장. 병렬성과 동시성
__소개
__채널 및 select문 사용하기
__sync
__아토믹 연산 및 뮤텍스 사용하기
__컨텍스트 패키지 사용하기
__채널의 상태 관리 실행하기
__작업자 풀 디자인 패턴 사용하기
__작업자를 사용해 파이프라인 만들기

10장. 분산 시스템
__소개
__Consul로 서비스 탐색 사용하기
__Raft로 기본 합의 구현하기
__Docker로 컨테이너화 사용하기
__오케스트레이션과 배포 전략
__애플리케이션 모니터링
__메트릭 수집

11장. 반응형 프로그래밍과 데이터 스트림
__소개
__데이터플로우 프로그래밍을 위한 Goflow
__RxGo를 이용한 반응형 프로그래밍
__Sarama로 Kafka 사용하기
__Kafka에서 비동기 생산자 사용하기
__Kafka와 Goflow 연결하기
__Go에서 GraphQL 서버 작성하기

12장. 서버리스 프로그래밍
__소개
__Apex를 사용해 Lambda에서 Go 프로그래밍하기
__Apex의 서버리스 로깅 및 메트릭
__Go와 구글 App Engine
__zabawaba99/firego로 Firebase 다루기

13장. 성능 향상, 팁 및 트릭
__소개
__컴파일과 테스트 주기의 속도 향상
__pprof 도구 사용하기
__벤치마크와 병목 현상 찾기
__메모리 할당 및 힙 관리
__벤더링 및 프로젝트 레이아웃
__fasthttprouter와 fasthttp 사용하기

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.