본문 바로가기

리디 접속이 원활하지 않습니다.
강제 새로 고침(Ctrl + F5)이나 브라우저 캐시 삭제를 진행해주세요.
계속해서 문제가 발생한다면 리디 접속 테스트를 통해 원인을 파악하고 대응 방법을 안내드리겠습니다.
테스트 페이지로 이동하기

실무에 바로 쓰는 Go 언어 핸즈온 가이드 상세페이지

컴퓨터/IT 개발/프로그래밍

실무에 바로 쓰는 Go 언어 핸즈온 가이드

Go 언어의 개념, 기능, 패턴부터 커맨드 라인, HTTP, gRPC 애플리케이션 개발까지
소장종이책 정가35,000
전자책 정가30%24,500
판매가24,500
실무에 바로 쓰는 Go 언어 핸즈온 가이드 표지 이미지

실무에 바로 쓰는 Go 언어 핸즈온 가이드작품 소개

<실무에 바로 쓰는 Go 언어 핸즈온 가이드> Go 언어 고렙이 되고 싶은 모든 고퍼를 위한 책

Go 언어에 입문하고 재미를 알기 시작했는데 실무에 적용하기가 어렵다면 이 책이 안성맞춤이다. Go 언어로 소프트웨어 애플리케이션을 개발하며 실무에 바로 쓰이는 꿀팁을 배워보자. 커맨드 라인 도구, 웹 애플리케이션, gRPC 애플리케이션을 만들 수 있는 지식을 딱 필요한 만큼 배울 수 있다. 실전에서 발생할 만한 문제를 손으로 직접 해결해나가며 Go 레벨을 상승시키자.


출판사 서평

실무에 바로 쓸 수 있는 꿀팁이 가득한 Go 언어 가이드

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

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

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

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

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

주요 내용

ㆍ 커맨드 라인 애플리케이션 작성
ㆍ HTTP 서버 및 클라이언트 작성
ㆍ gRPC를 사용한 RPC 서비스 및 클라이언트 작성
ㆍ 네트워크 클라이언트와 서버의 미들웨어 작성
ㆍ 클라우드 오브젝트 저장소 및 SQL 데이터베이스에 데이터 저장
ㆍ 관용적 기법을 사용한 애플리케이션 테스트
ㆍ 애플리케이션에 관측 가능성 추가
ㆍ 애플리케이션의 구성 데이터 관리



저자 소개

저자 : 아미트 사하
레드햇과 선마이크로시스템에서 재직했던 소프트웨어 엔지니어다. Fedora Scientific라는 과학과 교육용 유저대상 리눅스를 배포하는 회사를 만들고 운영하고 있다. 또한 Prentice Hall Learning에서 출간한 『Write Your First Program』의 저자이기도 하다.

역 : 김찬빈
숭실대학교에서 정보통신공학 학사와 석사를 취득하였다. Go 언어의 매력에 빠져 2017년부터 시스템 엔지니어로 근무하며 다양한 시스템 도구와 대규모 트래픽 서비스를 Go 언어로 구현하고 운영하였다. 또한, 기존에 작성된 시스템 중 개선이 필요한 부분을 Go 언어로 포팅하여 비약적인 성능 향상을 이루기도 했다. 평소 동료 개발자들에게 Go 언어의 매력을 전하는 한편, 백발의 개발자를 꿈꾸며 개발과 삽질을 즐기는 중이다.

목차

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

CHAPTER 1 커맨드 라인 애플리케이션 작성 1

1.1 첫 애플리케이션 1
1.2 유닛 테스트 작성 10
1.3 Flag 패키지 사용 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

CHAPTER 2 고급 커맨드 라인 애플리케이션 38

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

CHAPTER 3 HTTP 클라이언트 작성 65

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

CHAPTER 4 고급 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.1 RoundTripper 인터페이스 이해 106
__4.3.2 로깅 미들웨어 107
__4.3.3 모든 요청에 헤더 추가 110
4.4 커넥션 풀링 113
__4.4.1 커넥션 풀 설정 116
4.5 요약 118

CHAPTER 5 HTTP 서버 작성 119

5.1 첫 HTTP 서버 119
5.2 요청 핸들러 설정 122
__5.2.1 핸들러 함수 123
5.3 서버 테스트 126
5.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 132
5.5 Request 객체에 메타데이터 부착 133
5.6 스트리밍 요청 처리 137
5.7 응답 데이터 스트리밍 143
5.8 요약 150

CHAPTER 6 고급 HTTP 서버 애플리케이션 151

6.1 Handler 타입 151
6.2 핸들러 함수 간에 데이터 공유 153
6.3 서버 미들웨어 작성 158
__6.3.1 커스텀 HTTP 핸들러 기법 158
__6.3.2 HandlerFunc 기법 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

CHAPTER 7 실서비스 가능한 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.3 TLS를 활용한 보안 통신 207
__7.3.1 TLS와 HTTP/2 구성 208
__7.3.2 TLS 서버 테스트 212
7.4 요약 216

CHAPTER 8 gRPC를 사용한 RPC 애플리케이션 개발 217

8.1 gRPC와 프로토콜 버퍼 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

CHAPTER 9 고급 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

CHAPTER 10 실서비스 가능한 gRPC 애플리케이션 312

10.1 TLS를 활용한 보안 통신 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

CHAPTER 11 데이터 저장소 활용 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

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

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

찾아보기 423


리뷰

구매자 별점

0.0

점수비율
  • 5
  • 4
  • 3
  • 2
  • 1

0명이 평가함

리뷰 작성 영역

이 책을 평가해주세요!

내가 남긴 별점 0.0

별로예요

그저 그래요

보통이에요

좋아요

최고예요

별점 취소

구매자 표시 기준은 무엇인가요?

'구매자' 표시는 리디에서 유료도서 결제 후 다운로드 하시거나 리디셀렉트 도서를 다운로드하신 경우에만 표시됩니다.

무료 도서 (프로모션 등으로 무료로 전환된 도서 포함)
'구매자'로 표시되지 않습니다.
시리즈 도서 내 무료 도서
'구매자’로 표시되지 않습니다. 하지만 같은 시리즈의 유료 도서를 결제한 뒤 리뷰를 수정하거나 재등록하면 '구매자'로 표시됩니다.
영구 삭제
도서를 영구 삭제해도 ‘구매자’ 표시는 남아있습니다.
결제 취소
‘구매자’ 표시가 자동으로 사라집니다.

실무에 바로 쓰는 시리즈


이 책과 함께 구매한 책


이 책과 함께 둘러본 책



본문 끝 최상단으로 돌아가기

spinner
모바일 버전