실무에 바로 쓰는 Go 언어 핸즈온 가이드 (Go 언어의 개념, 기능, 패턴부터 커맨드 라인, HTTP, gRPC 애플리케이션 개발까지)

실무에 바로 쓰는 Go 언어 핸즈온 가이드 (Go 언어의 개념, 기능, 패턴부터 커맨드 라인, HTTP, gRPC 애플리케이션 개발까지)

$37.75
Description
실무에 바로 쓸 수 있는 꿀팁이 가득한 Go 언어 가이드
주요 내용
● 커맨드 라인 애플리케이션 작성
● HTTP 서버 및 클라이언트 작성
● gRPC를 사용한 RPC 서비스 및 클라이언트 작성
● 네트워크 클라이언트와 서버의 미들웨어 작성
● 클라우드 오브젝트 저장소 및 SQL 데이터베이스에 데이터 저장
● 관용적 기법을 사용한 애플리케이션 테스트
● 애플리케이션에 관측 가능성 추가
● 애플리케이션의 구성 데이터 관리
저자

아미트사하

호주시드니에위치한아틀라시안의소프트웨어엔지니어다.저서로는《파이썬으로풀어보는수학》(에이콘출판사,2016)와《WriteYourFirstProgram》(PHILearning,2013)이있다.작성한글들은기술잡지,학회,연구저널등에등재되었다.

목차

지은이·옮긴이소개x
기술감수자소개xi
옮긴이머리말xii
베타리더후기xiii
감사의글xv
이책에대하여xvi
시작하기xix

CHAPTER1커맨드라인애플리케이션작성1
1.1첫애플리케이션1
1.2유닛테스트작성10
1.3Flag패키지사용17
__1.3.1플래그파싱로직테스트23
1.4사용자인터페이스개선26
__1.4.1중복된오류메시지제거26
__1.4.2사용법메시지사용자정의28
__1.4.3위치인수를통해이름받기29
1.5유닛테스트업데이트32
1.6요약37

CHAPTER2고급커맨드라인애플리케이션38
2.1서브커맨드구현38
__2.1.1서브커맨드주도애플리케이션아키텍처43
__2.1.2메인패키지테스트49
__2.1.3Cmd패키지테스트52
2.2강건한애플리케이션작성54
__2.2.1데드라인을사용한사용자입력55
__2.2.2사용자시그널처리59
2.3요약64

CHAPTER3HTTP클라이언트작성65
3.1데이터다운로드65
__3.1.1데이터다운로더테스트67
3.2수신데이터역직렬화69
3.3데이터송신75
3.4바이너리데이터취급82
3.5요약91

CHAPTER4고급HTTP클라이언트92
4.1커스텀HTTP클라이언트사용92
__4.1.1과부화상태의서버에서다운로드92
__4.1.2타임아웃동작테스트97
__4.1.3리다이렉트동작설정100
4.2사용자요청커스터마이징103
4.3클라이언트미들웨어구현105
__4.3.1RoundTripper인터페이스이해106
__4.3.2로깅미들웨어107
__4.3.3모든요청에헤더추가110
4.4커넥션풀링113
__4.4.1커넥션풀설정116
4.5요약118

CHAPTER5HTTP서버작성119
5.1첫HTTP서버119
5.2요청핸들러설정122
__5.2.1핸들러함수123
5.3서버테스트126
5.4Request구조체129
__5.4.1메서드130
__5.4.2URL130
__5.4.3Proto,ProtoMajor,ProtoMinor131
__5.4.4Header131
__5.4.5Host131
__5.4.6Body131
__5.4.7Form,PostForm131
__5.4.8MultipartForm132
5.5Request객체에메타데이터부착133
5.6스트리밍요청처리137
5.7응답데이터스트리밍143
5.8요약150

CHAPTER6고급HTTP서버애플리케이션151
6.1Handler타입151
6.2핸들러함수간에데이터공유153
6.3서버미들웨어작성158
__6.3.1커스텀HTTP핸들러기법158
__6.3.2HandlerFunc기법159
__6.3.3미들웨어체이닝162
6.4복잡한서버애플리케이션의테스트작성167
__6.4.1코드정리167
__6.4.2핸들러함수테스트173
__6.4.3미들웨어테스트176
__6.4.4초기서버시작테스트178
6.5요약181

CHAPTER7실서비스가능한HTTP서버182
7.1요청핸들링중단182
__7.1.1요청처리중단전략186
__7.1.2클라이언트연결끊김처리191
7.2서버단타임아웃195
__7.2.1모든핸들러함수에타임아웃구현195
__7.2.2서버타임아웃구현196
__7.2.3우아한종료구현203
7.3TLS를활용한보안통신207
__7.3.1TLS와HTTP/2구성208
__7.3.2TLS서버테스트212
7.4요약216

CHAPTER8gRPC를사용한RPC애플리케이션개발217
8.1gRPC와프로토콜버퍼217
8.2첫서비스작성221
__8.2.1서버작성223
__8.2.2클라이언트작성229
__8.2.3서버테스트234
__8.2.4클라이언트테스트238
8.3프로토콜버퍼메시지살펴보기241
__8.3.1마샬링과언마샬링241
__8.3.2상위호환성및하위호환성247
8.4여러개의서비스249
8.5에러핸들링256
8.6요약259

CHAPTER9고급gRPC애플리케이션260
9.1스트리밍커뮤니케이션260
__9.1.1서버사이드스트리밍261
__9.1.2클라이언트사이드스트리밍269
__9.1.3양방향스트리밍272
9.2임의의데이터송수신281
9.3인터셉터를활용한미들웨어구현292
__9.3.1클라이언트사이드인터셉터294
__9.3.2서버사이드인터셉터301
__9.3.3스트림래핑307/9.3.4인터셉터체이닝309
9.4요약311

CHAPTER10실서비스가능한gRPC애플리케이션312
10.1TLS를활용한보안통신312
10.2서버의강건성315
__10.2.1헬스체크구현316
__10.2.2런타임오류처리324
__10.2.3요청처리중단328
10.3강건한클라이언트338
__10.3.1연결구성개선338
__10.3.2일시적인장애상황대응340
__10.3.3메서드호출에타임아웃설정346
10.4연결관리348
10.5요약351

CHAPTER11데이터저장소활용352
11.1오브젝트저장소활용353
__11.1.1패키지서버접근및활용354
__11.1.2패키지업로드테스트365
__11.1.3기반드라이버타입접근368
11.2관계형데이터베이스활용370
__11.2.1패키지서버와통합372
__11.2.2데이터스토리지테스트383
__11.2.3데이터타입형변환388
__11.2.4데이터베이스트랜잭션이용392
11.3요약394

APPENDIXA애플리케이션을관측가능하게만들기395
A.1로그,메트릭,그리고트레이스395
A.2텔레메트리데이터내보내기399
__A.2.1커맨드라인애플리케이션399
__A.2.2HTTP애플리케이션408
__A.2.3gRPC애플리케이션413
A.3요약415

APPENDIXB애플리케이션배포하기415
B.1환경설정정보관리415
B.2애플리케이션배포418
B.3서버애플리케이션배포421
B.4요약422

찾아보기423

출판사 서평

업무에Go언어를사용하고있는고퍼라면마주칠수있는문제들을깔끔하게풀어주는책이다.우선프로그래밍언어를활용하여다양한범주의애플리케이션을개발하기위한개념과패턴을소개하고,실서비스가능한커맨드라인애플리케이션,HTTP애플리케이션,gRPC애플리케이션에초점을맞춘다.

1장과2장에서는커맨드라인애플리케이션을개발하는방법을배운다.표준라이브러리패키지를활용하여확장성있고테스트가능한커맨드라인프로그램을개발하는방법을살펴본다.3장과4장에서는실제로서비스가가능한HTTP클라이언트를개발하는방법을알아본다.타임아웃을설정하는방법,커넥션풀링,미들웨어컴포넌트를구현하는방법을배운다.

5장부터7장까지는HTTP서버애플리케이션을개발하는방법을알아본다.데이터를스트리밍하기위한방법,미들웨어컴포넌트를구현하는방법,핸들러함수간에데이터를공유하는방법,애플리케이션의안정성을개선하기위한다양한기법들을배운다.

8장부터10장까지는gRPC를활용하여RPC애플리케이션을개발하는방법을배운다.프로토콜버퍼,다양한RPC통신패턴을구현하는방법,애플리케이션의일반기능들을구현하기위해클라이언트사이드와서버사이드의인터셉터를구현하는방법을알아본다.11장에서는애플리케이션에서오브젝트스토어,관계형데이터베이스에접근하여데이터를조회하고저장하는등의사용방법을살펴본다.

부록에서는애플리케이션에관측가능성을추가하는방법을익히고애플리케이션을배포하는일부가이드라인도제공한다.코드를직접작성하고실행해보며연습문제까지풀어보면Go언어초급자도Go언어전문가가될수있다.