






간결하며 신뢰할 수 있는 네트워크 소프트웨어!『Go 언어를 활용한 네트워크 프로그래밍』은 Go 언어를 사용하여 보안에 강하며, 신뢰할 수 있고, 가독성이 좋은, 그리고 실제 서비스에 사용할 수 있는 네트워크 코드를 작성할 수 있도록 도와준다. 전반부에서는 네트워크와 트래픽 라우팅에 대한 기본 지식을 배우며, 후반부에서는 배운 지식을 활용하여 TCP와 UDP, 유닉스 소켓을 사용하는, 신뢰성 있는 데이터 통신 프로그램을 작성한다.

애덤 우드벡은 바라쿠다 네트워크(Barracuda Networks)의 시니어 소프트웨어 엔지니어이며, 주로 Go 언어를 사용한 분산 클라우드 환경을 구현하고 있다. Go 언어로 작성된 네트워크 기반 서비스의 아키텍트로도 활동하고 있다.

옮긴이 머리말 xi베타리더 후기 xiii머리말 xv이 책에 대하여 xviiPART I |네트워크 아키텍처 1CHAPTER 1 |네트워크 시스템 개요 3네트워크 토폴로지 선택하기 3대역폭 vs 레이턴시 7개방형 시스템 상호 연결 참조 모델 8TCP/IP 모델 13이 장에서 배운 것 17CHAPTER 2 |리소스의 위치와 트래픽 라우팅 19인터넷 프로토콜 20IPv4 주소 지정 20IPv6 주소 지정 30인터넷 제어 메시지 프로토콜 36인터넷 트래픽 라우팅 37라우팅 프로토콜 38이름과 주소 해석 40이 장에서 배운 것 48PART II |소켓 계층 프로그래밍 49CHAPTER 3 |신뢰성 있는 TCP 데이터 스트림 51TCP를 신뢰성 있게 만드는 것 52TCP 세션 사용 52Go 언어 표준 라이브러리를 이용한 TCP 연결 수립 58이 장에서 배운 것 81CHAPTER 4 |TCP 데이터 전송하기 82net.Conn 인터페이스 사용하기 82데이터 송수신 83io 패키지를 이용한 안정적인 네트워크 애플리케이션 만들기 98Go의 TCPConn 객체 살펴보기 110일반적인 Go TCP 네트워크 문제 해결 114이 장에서 배운 것 116CHAPTER 5 |신뢰성 없는 UDP 통신 117간단하고 신뢰성 없는 UDP 사용하기 118UDP 데이터 송수신 119파편화 피하기 128이 장에서 배운 것 131CHAPTER 6 |UDP 통신의 신뢰성 확보 132TFTP를 이용한 신뢰성 있는 파일 전송 132TFTP 타입 133TFTP 서버 145UDP로 파일 다운로드 150이 장에서 배운 것 154CHAPTER 7 |유닉스 도메인 소켓 155유닉스 도메인 소켓이란 156유닉스 도메인 소켓 파일에 바인딩 157클라이언트와 인증하는 서비스 작성 170이 장에서 배운 것 177PART III |애플리케이션 계층 프로그래밍 179CHAPTER 8 |HTTP 클라이언트 작성 181HTTP의 기초 이해 182Go에서 웹 리소스 가져오기 191HTTP로 데이터 전송하기 197이 장에서 배운 것 204CHAPTER 9 |HTTP 서비스 작성 205Go HTTP 서버 해부 206핸들러 212미들웨어 222멀티플렉서 228HTTP/2 서버 푸시 232이 장에서 배운 것 238CHAPTER 10 |Caddy: 모던 웹 서버 239Caddy란 240Caddy 사용해 보기 241Caddy 환경구성 및 실행하기 242모듈과 어댑터로 Caddy 확장하기 248백엔드 웹 서비스로 요청 리버스 프락시하기 257이 장에서 배운 것 265CHAPTER 11 |TLS를 사용한 통신 보안 266전송 계층 보안 심층 탐구 267전송 중인 데이터의 보안 271상호 TLS 인증 283이 장에서 배운 것 295PART IV |서비스 아키텍처 297CHAPTER 12 |데이터 직렬화 299객체 직렬화하기 300직렬화된 객체 전송하기 316이 장에서 배운 것 328CHAPTER 13 |로깅과 메트릭스 329이벤트 로깅 330코드 계측하기 354기본적인 HTTP 서버 계측하기 359이 장에서 배운 것 366CHAPTER 14 |클라우드로 이동 368기초 작업하기 369AWS Lambda 372구글 Cloud Function 381애저 Functions 387이 장에서 배운 것 396찾아보기 398