logo
logo
x
바코드검색
BOOKPRICE.co.kr
책, 도서 가격비교 사이트
바코드검색

인기 검색어

실시간 검색어

검색가능 서점

도서목록 제공

Practical Go: Building Scalable Network and Non-Network Applications

Practical Go: Building Scalable Network and Non-Network Applications (Paperback)

아미트 사하 (지은이)
John Wiley & Sons Inc
70,000원

일반도서

검색중
서점 할인가 할인률 배송비 혜택/추가 실질최저가 구매하기
45,500원 -35% 0원
460원
45,040원 >
yes24 로딩중
교보문고 로딩중
notice_icon 검색 결과 내에 다른 책이 포함되어 있을 수 있습니다.

중고도서

검색중
서점 유형 등록개수 최저가 구매하기
로딩중

eBook

검색중
서점 정가 할인가 마일리지 실질최저가 구매하기
로딩중

책 이미지

Practical Go: Building Scalable Network and Non-Network Applications
eBook 미리보기

책 정보

· 제목 : Practical Go: Building Scalable Network and Non-Network Applications (Paperback) 
· 분류 : 외국도서 > 컴퓨터 > 프로그래밍 > 오픈소스
· ISBN : 9781119773818
· 쪽수 : 416쪽
· 출판일 : 2021-12-21

목차

Introduction xvii

Getting Started xxi

Chapter 1 Writing Command-Line Applications 1

Your First Application 1

Writing Unit Tests 8

Using the Flag Package 14

Testing the Parsing Logic 20

Improving the User Interface 22

Removing Duplicate Error Messages 23

Customizing Usage Message 24

Accept Name via a Positional Argument 25

Updating the Unit Tests 28

Summary 32

Chapter 2 Advanced Command-Line Applications 33

Implementing Sub-commands 33

An Architecture for Sub-command-Driven Applications 37

Testing the Main Package 43

Testing the Cmd Package 45

Making Your Applications Robust 47

User Input with Deadlines 48

Handling User Signals 52

Summary 56

Chapter 3 Writing HTTP Clients 57

Downloading Data 57

Testing the Data Downloader 59

Deserializing Received Data 61

Sending Data 66

Working with Binary Data 72

Summary 80

Chapter 4 Advanced HTTP Clients 81

Using a Custom HTTP Client 81

Downloading from an Overloaded Server 81

Testing the Time-Out Behavior 85

Configuring the Redirect Behavior 88

Customizing Your Requests 91

Implementing Client Middleware 92

Understanding the RoundTripper Interface 93

A Logging Middleware 94

Add a Header to All Requests 96

Connection Pooling 99

Configuring the Connection Pool 103

Summary 104

Chapter 5 Building HTTP Servers 105

Your First HTTP Server 105

Setting Up Request Handlers 108

Handler Functions 109

Testing Your Server 112

The Request Struct 114

Method 115

URL 115

Proto, ProtoMajor, and ProtoMinor 116

Header 116

Host 116

Body 116

Form, PostForm 116

MultipartForm 117

Attaching Metadata to a Request 118

Processing Streaming Requests 121

Streaming Data as Responses 126

Summary 132

Chapter 6 Advanced HTTP Server Applications 133

The Handler Type 133

Sharing Data across Handler Functions 134

Writing Server Middleware 139

Custom HTTP Handler Technique 139

The HandlerFunc Technique 140

Chaining Middleware 142

Writing Tests for Complex Server Applications 147

Code Organization 147

Testing the Handler Functions 153

Testing the Middleware 155

Testing the Server Startup 157

Summary 159

Chapter 7 Production-Ready HTTP Servers 161

Aborting Request Handling 161

Strategies to Abort Request Processing 165

Handling Client Disconnects 169

Server-Wide Time-Outs 173

Implement a Time-Out for All Handler Functions 173

Implementing Server Time-Out 174

Implementing Graceful Shutdown 179

Securing Communication with TLS 184

Configuring TLS and HTTP/2 184

Testing TLS Servers 188

Summary 192

Chapter 8 Building RPC Applications with gRPC 193

gRPC and Protocol Buffers 193

Writing Your First Service 197

Writing the Server 198

Writing a Client 203

Testing the Server 207

Testing the Client 211

A Detour into Protobuf Messages 214

Marshalling and Unmarshalling 214

Forward and Backward Compatibility 219

Multiple Services 220

Error Handling 226

Summary 228

Chapter 9 Advanced gRPC Applications 229

Streaming Communication 229

Server-Side

Streaming 230

Client-Side

Streaming 237

Bidirectional Streaming 239

Receiving and Sending Arbitrary Bytes 247

Implementing Middleware Using Interceptors 256

Client-Side Interceptors 257

Server-Side Interceptors 263

Wrapping Streams 269

Chaining Interceptors 271

Summary 272

Chapter 10 Production-Ready gRPC Applications 275

Securing Communication with TLS 275

Robustness in Servers 278

Implementing Health Checks 278

Handling Runtime Errors 286

Aborting Request Processing 289

Robustness in Clients 297

Improving Connection Setup 298

Handling Transient Failures 300

Setting Time-Outs for Method Calls 305

Connection Management 306

Summary 309

Chapter 11 Working with Data Stores 311

Working with Object Stores 312

Integration with Package Server 313

Testing Package Uploads 323

Accessing Underlying Driver Types 325

Working with Relational Databases 327

Integration with Package Server 328

Testing Data Storage 339

Data Type Conversions 343

Using Database Transactions 346

Summary 348

Appendix A Making Your Applications Observable 349

Logs, Metrics, and Traces 349

Emitting Telemetry Data 352

Command-Line Applications 352

HTTP Applications 360

gRPC Applications 364

Summary 366

Appendix B Deploying Applications 367

Managing Configuration 367

Distributing Your Application 370

Deploying Server Applications 372

Summary 373

Index 375

 xiii
Contents
Introduction xvii
Getting Started xxi
Chapter 1 Writing Command-Line Applications 1
Your First Application 1
Writing Unit Tests 8
Using the Flag Package 14
Testing the Parsing Logic 20
Improving the User Interface 22
Removing Duplicate Error Messages 23
Customizing Usage Message 24
Accept Name via a Positional Argument 25
Updating the Unit Tests 28
Summary 32
Chapter 2 Advanced Command-Line Applications 33
Implementing Sub-commands 33
An Architecture for Sub-command-Driven Applications 37
Testing the Main Package 43
Testing the Cmd Package 45
Making Your Applications Robust 47
User Input with Deadlines 48
Handling User Signals 52
Summary 56
Chapter 3 Writing HTTP Clients 57
Downloading Data 57
Testing the Data Downloader 59
Deserializing Received Data 61
Sending Data 66
COPYRIGHTED MATERIAL
xiv Contents
Working with Binary Data 72
Summary 80
Chapter 4 Advanced HTTP Clients 81
Using a Custom HTTP Client 81
Downloading from an Overloaded Server 81
Testing the Time-Out Behavior 85
Configuring the Redirect Behavior 88
Customizing Your Requests 91
Implementing Client Middleware 92
Understanding the RoundTripper Interface 93
A Logging Middleware 94
Add a Header to All Requests 96
Connection Pooling 99
Configuring the Connection Pool 103
Summary 104
Chapter 5 Building HTTP Servers 105
Your First HTTP Server 105
Setting Up Request Handlers 108
Handler Functions 109
Testing Your Server 112
The Request Struct 114
Method 115
URL 115
Proto, ProtoMajor, and ProtoMinor 116
Header 116
Host 116
Body 116
Form, PostForm 116
MultipartForm 117
Attaching Metadata to a Request 118
Processing Streaming Requests 121
Streaming Data as Responses 126
Summary 132
Chapter 6 Advanced HTTP Server Applications 133
The Handler Type 133
Sharing Data across Handler Functions 134
Writing Server Middleware 139
Custom HTTP Handler Technique 139
The HandlerFunc Technique 140
Chaining Middleware 142
Writing Tests for Complex Server Applications 147
Code Organization 147
Testing the Handler Functions 153
Testing the Middleware 155
Testing the Server Startup 157
Summary 159
Contents xv
Chapter 7 Production-Ready
HTTP Servers 161
Aborting Request Handling 161
Strategies to Abort Request Processing 165
Handling Client Disconnects 169
Server-Wide Time-Outs
173
Implement a Time-Out
for All Handler Functions 173
Implementing Server Time-Out
174
Implementing Graceful Shutdown 179
Securing Communication with TLS 184
Configuring TLS and HTTP/2 184
Testing TLS Servers 188
Summary 192
Chapter 8 Building RPC Applications with gRPC 193
gRPC and Protocol Buffers 193
Writing Your First Service 197
Writing the Server 198
Writing a Client 203
Testing the Server 207
Testing the Client 211
A Detour into Protobuf Messages 214
Marshalling and Unmarshalling 214
Forward and Backward Compatibility 219
Multiple Services 220
Error Handling 226
Summary 228
Chapter 9 Advanced gRPC Applications 229
Streaming Communication 229
Server-Side
Streaming 230
Client-Side
Streaming 237
Bidirectional Streaming 239
Receiving and Sending Arbitrary Bytes 247
Implementing Middleware Using Interceptors 256
Client-Side
Interceptors 257
Server-Side
Interceptors 263
Wrapping Streams 269
Chaining Interceptors 271
Summary 272
Chapter 10 Production-Ready
gRPC Applications 275
Securing Communication with TLS 275
Robustness in Servers 278
Implementing Health Checks 278
Handling Runtime Errors 286
Aborting Request Processing 289
xvi Contents
Robustness in Clients 297
Improving Connection Setup 298
Handling Transient Failures 300
Setting Time-Outs
for Method Calls 305
Connection Management 306
Summary 309
Chapter 11 Working with Data Stores 311
Working with Object Stores 312
Integration with Package Server 313
Testing Package Uploads 323
Accessing Underlying Driver Types 325
Working with Relational Databases 327
Integration with Package Server 328
Testing Data Storage 339
Data Type Conversions 343
Using Database Transactions 346
Summary 348
Appendix A Making Your Applications Observable 349
Logs, Metrics, and Traces 349
Emitting Telemetry Data 352
Command-Line
Applications 352
HTTP Applications 360
gRPC Applications 364
Summary 366
Appendix B Deploying Applications 367
Managing Configuration 367
Distributing Your Application 370
Deploying Server Applications 372
Summary 373
Index 375
NOTE A glossary of relevant terms is available for free download from the book’s
web page: https://www.wiley.com/go/practicalgo.xiii
Contents
Introduction xvii
Getting Started xxi
Chapter 1 Writing Command-Line Applications 1
Your First Application 1
Writing Unit Tests 8
Using the Flag Package 14
Testing the Parsing Logic 20
Improving the User Interface 22
Removing Duplicate Error Messages 23
Customizing Usage Message 24
Accept Name via a Positional Argument 25
Updating the Unit Tests 28
Summary 32
Chapter 2 Advanced Command-Line Applications 33
Implementing Sub-commands 33
An Architecture for Sub-command-Driven Applications 37
Testing the Main Package 43
Testing the Cmd Package 45
Making Your Applications Robust 47
User Input with Deadlines 48
Handling User Signals 52
Summary 56
Chapter 3 Writing HTTP Clients 57
Downloading Data 57
Testing the Data Downloader 59
Deserializing Received Data 61
Sending Data 66
COPYRIGHTED MATERIAL
xiv Contents
Working with Binary Data 72
Summary 80
Chapter 4 Advanced HTTP Clients 81
Using a Custom HTTP Client 81
Downloading from an Overloaded Server 81
Testing the Time-Out Behavior 85
Configuring the Redirect Behavior 88
Customizing Your Requests 91
Implementing Client Middleware 92
Understanding the RoundTripper Interface 93
A Logging Middleware 94
Add a Header to All Requests 96
Connection Pooling 99
Configuring the Connection Pool 103
Summary 104
Chapter 5 Building HTTP Servers 105
Your First HTTP Server 105
Setting Up Request Handlers 108
Handler Functions 109
Testing Your Server 112
The Request Struct 114
Method 115
URL 115
Proto, ProtoMajor, and ProtoMinor 116
Header 116
Host 116
Body 116
Form, PostForm 116
MultipartForm 117
Attaching Metadata to a Request 118
Processing Streaming Requests 121
Streaming Data as Responses 126
Summary 132
Chapter 6 Advanced HTTP Server Applications 133
The Handler Type 133
Sharing Data across Handler Functions 134
Writing Server Middleware 139
Custom HTTP Handler Technique 139
The HandlerFunc Technique 140
Chaining Middleware 142
Writing Tests for Complex Server Applications 147
Code Organization 147
Testing the Handler Functions 153
Testing the Middleware 155
Testing the Server Startup 157
Summary 159
Contents xv
Chapter 7 Production-Ready
HTTP Servers 161
Aborting Request Handling 161
Strategies to Abort Request Processing 165
Handling Client Disconnects 169
Server-Wide Time-Outs
173
Implement a Time-Out
for All Handler Functions 173
Implementing Server Time-Out
174
Implementing Graceful Shutdown 179
Securing Communication with TLS 184
Configuring TLS and HTTP/2 184
Testing TLS Servers 188
Summary 192
Chapter 8 Building RPC Applications with gRPC 193
gRPC and Protocol Buffers 193
Writing Your First Service 197
Writing the Server 198
Writing a Client 203
Testing the Server 207
Testing the Client 211
A Detour into Protobuf Messages 214
Marshalling and Unmarshalling 214
Forward and Backward Compatibility 219
Multiple Services 220
Error Handling 226
Summary 228
Chapter 9 Advanced gRPC Applications 229
Streaming Communication 229
Server-Side
Streaming 230
Client-Side
Streaming 237
Bidirectional Streaming 239
Receiving and Sending Arbitrary Bytes 247
Implementing Middleware Using Interceptors 256
Client-Side
Interceptors 257
Server-Side
Interceptors 263
Wrapping Streams 269
Chaining Interceptors 271
Summary 272
Chapter 10 Production-Ready
gRPC Applications 275
Securing Communication with TLS 275
Robustness in Servers 278
Implementing Health Checks 278
Handling Runtime Errors 286
Aborting Request Processing 289
xvi Contents
Robustness in Clients 297
Improving Connection Setup 298
Handling Transient Failures 300
Setting Time-Outs
for Method Calls 305
Connection Management 306
Summary 309
Chapter 11 Working with Data Stores 311
Working with Object Stores 312
Integration with Package Server 313
Testing Package Uploads 323
Accessing Underlying Driver Types 325
Working with Relational Databases 327
Integration with Package Server 328
Testing Data Storage 339
Data Type Conversions 343
Using Database Transactions 346
Summary 348
Appendix A Making Your Applications Observable 349
Logs, Metrics, and Traces 349
Emitting Telemetry Data 352
Command-Line
Applications 352
HTTP Applications 360
gRPC Applications 364
Summary 366
Appendix B Deploying Applications 367
Managing Configuration 367
Distributing Your Application 370
Deploying Server Applications 372
Summary 373
Index 375
NOTE A glossary of relevant terms is available for free download from the book’s
web page: https://www.wiley.com/go/practicalgo.

저자소개

아미트 사하 (지은이)    정보 더보기
호주 시드니에 위치한 아틀라시안의 소프트웨어 엔지니어다. 저서로는 《파이썬으로 풀어보는 수학》(에이콘출판사, 2016)와 《Write Your First Program》(PHI Learning, 2013)이 있다. 작성한 글들은 기술 잡지, 학회, 연구 저널 등에 등재되었다.
펼치기
이 포스팅은 쿠팡 파트너스 활동의 일환으로,
이에 따른 일정액의 수수료를 제공받습니다.
이 포스팅은 제휴마케팅이 포함된 광고로 커미션을 지급 받습니다.
도서 DB 제공 : 알라딘 서점(www.aladin.co.kr)
최근 본 책