ÄÜÅÙÃ÷»ó¼¼º¸±â

½Ç¹«¿¡ ¹Ù·Î ¾²´Â Go ¾ð¾î ÇÚÁî¿Â °¡À̵å
½Ç¹«¿¡ ¹Ù·Î ¾²´Â Go ¾ð¾î ÇÚÁî¿Â °¡À̵å
  • ÀúÀÚ<¾Æ¹ÌÆ® »çÇÏ> Àú/<±èÂùºó> ¿ª
  • ÃâÆÇ»çÁ¦ÀÌÆà
  • ÃâÆÇÀÏ2023-03-10
  • µî·ÏÀÏ2023-05-23
º¸À¯ 1, ´ëÃâ 0, ¿¹¾à 0, ´©Àû´ëÃâ 2, ´©Àû¿¹¾à 0

Ã¥¼Ò°³

Go ¾ð¾î °í·¾ÀÌ µÇ°í ½ÍÀº ¸ðµç °íÆÛ¸¦ À§ÇѠå 

Go ¾ð¾î¿¡ ÀÔ¹®ÇÏ°í Àç¹Ì¸¦ ¾Ë±â ½ÃÀÛÇߴµ¥ ½Ç¹«¿¡ Àû¿ëÇϱⰡ ¾î·Æ´Ù¸é À̠åÀÌ ¾È¼º¸ÂÃãÀÌ´Ù. Go ¾ð¾î·Î ¼ÒÇÁÆ®¿þ¾î ¾ÖÇø®ÄÉÀ̼ÇÀ» °³¹ßÇϸ砽ǹ«¿¡ ¹Ù·Î ¾²À̴ ²ÜÆÁÀ» ¹è¿öº¸ÀÚ. Ä¿¸Çµå ¶óÀΠµµ±¸, À¥ ¾ÖÇø®ÄÉÀ̼Ç, gRPC ¾ÖÇø®ÄÉÀ̼ÇÀ» ¸¸µé ¼ö Àִ Áö½ÄÀ» µü ÇÊ¿äÇÑ ¸¸Å­ ¹è¿ï ¼ö ÀÖ´Ù. ½ÇÀü¿¡¼­ ¹ß»ýÇÒ ¸¸ÇÑ ¹®Á¦¸¦ ¼ÕÀ¸·Î Á÷Á¢ ÇØ°áÇسª°¡¸ç 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