이 상품은 구매 후 지원 기기에서 예스24 eBook앱 설치 후 바로 이용 가능한 상품입니다.
|
지은이·옮긴이 소개 x기술 감수자 소개 xi옮긴이 머리말 xii베타리더 후기 xiii감사의 글 xv이 책에 대하여 xvi시작하기 xixCHAPTER 1 커맨드 라인 애플리케이션 작성 11.1 첫 애플리케이션 11.2 유닛 테스트 작성 101.3 Flag 패키지 사용 17__1.3.1 플래그 파싱 로직 테스트 231.4 사용자 인터페이스 개선 26__1.4.1 중복된 오류 메시지 제거 26 __1.4.2 사용법 메시지 사용자 정의 28__1.4.3 위치 인수를 통해 이름 받기 291.5 유닛 테스트 업데이트 321.6 요약 37CHAPTER 2 고급 커맨드 라인 애플리케이션 382.1 서브커맨드 구현 38__2.1.1 서브커맨드 주도 애플리케이션 아키텍처 43 __2.1.2 메인 패키지 테스트 49__2.1.3 Cmd 패키지 테스트 522.2 강건한 애플리케이션 작성 54__2.2.1 데드라인을 사용한 사용자 입력 55 __2.2.2 사용자 시그널 처리 592.3 요약 64CHAPTER 3 HTTP 클라이언트 작성 653.1 데이터 다운로드 65__3.1.1 데이터 다운로더 테스트 673.2 수신 데이터 역직렬화 693.3 데이터 송신 753.4 바이너리 데이터 취급 823.5 요약 91CHAPTER 4 고급 HTTP 클라이언트 924.1 커스텀 HTTP 클라이언트 사용 92__4.1.1 과부화 상태의 서버에서 다운로드 92 __4.1.2 타임아웃 동작 테스트 97__4.1.3 리다이렉트 동작 설정 1004.2 사용자 요청 커스터마이징 1034.3 클라이언트 미들웨어 구현 105__4.3.1 RoundTripper 인터페이스 이해 106 __4.3.2 로깅 미들웨어 107__4.3.3 모든 요청에 헤더 추가 1104.4 커넥션 풀링 113__4.4.1 커넥션 풀 설정 1164.5 요약 118CHAPTER 5 HTTP 서버 작성 1195.1 첫 HTTP 서버 1195.2 요청 핸들러 설정 122__5.2.1 핸들러 함수 1235.3 서버 테스트 1265.4 Request 구조체 129__5.4.1 메서드 130 __5.4.2 URL 130 __5.4.3 Proto, ProtoMajor, ProtoMinor 131__5.4.4 Header 131 __5.4.5 Host 131 __5.4.6 Body 131__5.4.7 Form, PostForm 131 __5.4.8 MultipartForm 1325.5 Request 객체에 메타데이터 부착 1335.6 스트리밍 요청 처리 1375.7 응답 데이터 스트리밍 1435.8 요약 150CHAPTER 6 고급 HTTP 서버 애플리케이션 1516.1 Handler 타입 1516.2 핸들러 함수 간에 데이터 공유 1536.3 서버 미들웨어 작성 158__6.3.1 커스텀 HTTP 핸들러 기법 158 __6.3.2 HandlerFunc 기법 159__6.3.3 미들웨어 체이닝 1626.4 복잡한 서버 애플리케이션의 테스트 작성 167__6.4.1 코드 정리 167 __6.4.2 핸들러 함수 테스트 173__6.4.3 미들웨어 테스트 176 __6.4.4 초기 서버 시작 테스트 1786.5 요약 181CHAPTER 7 실서비스 가능한 HTTP 서버 1827.1 요청 핸들링 중단 182__7.1.1 요청 처리 중단 전략 186 __7.1.2 클라이언트 연결 끊김 처리 1917.2 서버단 타임아웃 195__7.2.1 모든 핸들러 함수에 타임아웃 구현 195 __7.2.2 서버 타임아웃 구현 196__7.2.3 우아한 종료 구현 2037.3 TLS를 활용한 보안 통신 207__7.3.1 TLS와 HTTP/2 구성 208 __7.3.2 TLS 서버 테스트 2127.4 요약 216CHAPTER 8 gRPC를 사용한 RPC 애플리케이션 개발 2178.1 gRPC와 프로토콜 버퍼 2178.2 첫 서비스 작성 221__8.2.1 서버 작성 223 __8.2.2 클라이언트 작성 229__8.2.3 서버 테스트 234 __8.2.4 클라이언트 테스트 2388.3 프로토콜 버퍼 메시지 살펴보기 241__8.3.1 마샬링과 언마샬링 241 __8.3.2 상위 호환성 및 하위 호환성 2478.4 여러 개의 서비스 2498.5 에러 핸들링 2568.6 요약 259CHAPTER 9 고급 gRPC 애플리케이션 2609.1 스트리밍 커뮤니케이션 260__9.1.1 서버 사이드 스트리밍 261__9.1.2 클라이언트 사이드 스트리밍 269__9.1.3 양방향 스트리밍 2729.2 임의의 데이터 송수신 2819.3 인터셉터를 활용한 미들웨어 구현 292__9.3.1 클라이언트 사이드 인터셉터 294 __9.3.2 서버 사이드 인터셉터 301__9.3.3 스트림 래핑 307 / 9.3.4 인터셉터 체이닝 3099.4 요약 311CHAPTER 10 실서비스 가능한 gRPC 애플리케이션 31210.1 TLS를 활용한 보안 통신 31210.2 서버의 강건성 315__10.2.1 헬스 체크 구현 316 __10.2.2 런타임 오류 처리 324__10.2.3 요청 처리 중단 32810.3 강건한 클라이언트 338__10.3.1 연결 구성 개선 338 __10.3.2 일시적인 장애 상황 대응 340__10.3.3 메서드 호출에 타임아웃 설정 34610.4 연결 관리 34810.5 요약 351CHAPTER 11 데이터 저장소 활용 35211.1 오브젝트 저장소 활용 353__11.1.1 패키지 서버 접근 및 활용 354 __11.1.2 패키지 업로드 테스트 365__11.1.3 기반 드라이버 타입 접근 36811.2 관계형 데이터베이스 활용 370__11.2.1 패키지 서버와 통합 372 __11.2.2 데이터 스토리지 테스트 383__11.2.3 데이터 타입 형 변환 388 __11.2.4 데이터베이스 트랜잭션 이용 39211.3 요약 394APPENDIX A 애플리케이션을 관측 가능하게 만들기 395A.1 로그, 메트릭, 그리고 트레이스 395A.2 텔레메트리 데이터 내보내기 399__A.2.1 커맨드 라인 애플리케이션 399__A.2.2 HTTP 애플리케이션 408__A.2.3 gRPC 애플리케이션 413A.3 요약 415APPENDIX B 애플리케이션 배포하기 415B.1 환경설정 정보 관리 415B.2 애플리케이션 배포 418B.3 서버 애플리케이션 배포 421B.4 요약 422찾아보기 423
|
|
실무에 바로 쓸 수 있는 꿀팁이 가득한 Go 언어 가이드업무에 Go 언어를 사용하고 있는 고퍼라면 마주칠 수 있는 문제들을 깔끔하게 풀어주는 책이다. 우선 프로그래밍 언어를 활용하여 다양한 범주의 애플리케이션을 개발하기 위한 개념과 패턴을 소개하고, 실서비스 가능한 커맨드 라인 애플리케이션, HTTP 애플리케이션, gRPC 애플리케이션에 초점을 맞춘다.1장과 2장에서는 커맨드 라인 애플리케이션을 개발하는 방법을 배운다. 표준 라이브러리 패키지를 활용하여 확장성 있고 테스트 가능한 커맨드 라인 프로그램을 개발하는 방법을 살펴본다. 3장과 4장에서는 실제로 서비스가 가능한 HTTP 클라이언트를 개발하는 방법을 알아본다. 타임아웃을 설정하는 방법, 커넥션 풀링, 미들웨어 컴포넌트를 구현하는 방법을 배운다.5장부터 7장까지는 HTTP 서버 애플리케이션을 개발하는 방법을 알아본다. 데이터를 스트리밍하기 위한 방법, 미들웨어 컴포넌트를 구현하는 방법, 핸들러 함수 간에 데이터를 공유하는 방법, 애플리케이션의 안정성을 개선하기 위한 다양한 기법들을 배운다.8장부터 10장까지는 gRPC를 활용하여 RPC 애플리케이션을 개발하는 방법을 배운다. 프로토콜 버퍼, 다양한 RPC 통신 패턴을 구현하는 방법, 애플리케이션의 일반 기능들을 구현하기 위해 클라이언트 사이드와 서버 사이드의 인터셉터를 구현하는 방법을 알아본다. 11장에서는 애플리케이션에서 오브젝트 스토어, 관계형 데이터베이스에 접근하여 데이터를 조회하고 저장하는 등의 사용 방법을 살펴본다.부록에서는 애플리케이션에 관측 가능성을 추가하는 방법을 익히고 애플리케이션을 배포하는 일부 가이드라인도 제공한다. 코드를 직접 작성하고 실행해보며 연습 문제까지 풀어보면 Go 언어 초급자도 Go 언어 전문가가 될 수 있다. 주요 내용ㆍ 커맨드 라인 애플리케이션 작성ㆍ HTTP 서버 및 클라이언트 작성ㆍ gRPC를 사용한 RPC 서비스 및 클라이언트 작성ㆍ 네트워크 클라이언트와 서버의 미들웨어 작성ㆍ 클라우드 오브젝트 저장소 및 SQL 데이터베이스에 데이터 저장ㆍ 관용적 기법을 사용한 애플리케이션 테스트ㆍ 애플리케이션에 관측 가능성 추가ㆍ 애플리케이션의 구성 데이터 관리
|