ÄÜÅÙÃ÷ »ó¼¼º¸±â
Go ¸¶½ºÅÍÇϱâ 3/e


Go ¸¶½ºÅÍÇϱâ 3/e

Go ¸¶½ºÅÍÇϱâ 3/e

<¹ÌÇÒ¸®½º ÃßÄ®·Î½º> Àú/<Ç㼺¿¬> ¿ª | ¿¡ÀÌÄÜÃâÆÇ»ç

Ãâ°£ÀÏ
2022-12-01
ÆÄÀÏÆ÷¸Ë
ePub
¿ë·®
36 M
Áö¿ø±â±â
PC½º¸¶Æ®ÆùÅÂºí¸´PC
ÇöȲ
½Åû °Ç¼ö : 0 °Ç
°£·« ½Åû ¸Þ¼¼Áö
ÄÜÅÙÃ÷ ¼Ò°³
ÀúÀÚ ¼Ò°³
¸ñÂ÷
ÇÑÁÙ¼­Æò

ÄÜÅÙÃ÷ ¼Ò°³

Go ¾ð¾î¿¡ °ü·ÃÇÑ Áö½ÄÀ» Á» ´õ ³ÐÈ÷°í ½ÍÀº Áß±Þ Go ÇÁ·Î±×·¡¸Ó³ª ´Ù¸¥ ÇÁ·Î±×·¡¹Ö ¾ð¾î °æÇèÀÌ ÀÖ´Â µ¶ÀÚµéÀ» ´ë»óÀ¸·Î Çϴ åÀÌ´Ù. Go ¾ð¾îÀÇ ±âº» °³³äºÎÅÍ ³×Æ®¿öÅ©, µ¿½Ã¼º, Å×½ºÆ®, gRPC, Á¦³×¸¯ µîÀÇ ÁÖÁ¦µéÀ» ¸¹Àº ½Ç½À ¿¹Á¦¿Í ÇÔ²² ¼Ò°³ÇÑ´Ù. 3ÆÇ¿¡¼­´Â 2ÆÇ¿¡ ºñÇØ Ã¥ÀÇ µÎ²²¸¦ ÁÙ¿´À¸¸ç ´õ ÀÚ¿¬½º·¯¿î È帧À¸·Î À籸¼ºÇß´Ù. ´õ ³ªÀº Go ¾ð¾î °³¹ßÀÚ°¡ µÇ°í ½Í´Ù¸é ÀÌ Ã¥ÀÌ µµ¿òÀ» ÁÙ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

ÀúÀÚ¼Ò°³

±â¼ú °ü·Ã ±Û¾²±â¸¦ ÁÁ¾ÆÇÏ´Â À¯´Ð½º ½Ã½ºÅÛ ¿£Áö´Ï¾î´Ù. ¡ºGo Systems Programming¡»(Packt, 2017)°ú ¡ºGo ¸¶½ºÅÍÇϱ⡻(¿¡ÀÌÄÜ, 2018), ¡ºGo ¸¶½ºÅÍÇϱâ 2/e¡»(¿¡ÀÌÄÜ, 2021)ÀÇ ÀúÀÚÀ̱⵵ ÇÏ´Ù. ÆÄÆ®¶ó½º´ëÇб³(University of Patras)¿¡¼­ ¼öÇÐ Çлç ÇÐÀ§¸¦ ¹Þ¾ÒÀ¸¸ç À¯´Ï¹ö½ÃƼ Ä®¸®Áö ·±´ø(University College London)¿¡¼­ IT °ü·Ã ¼®»ç ÇÐÀ§µµ ¹Þ¾Ò´Ù. Áö±Ý±îÁö ¡¸Sys Admin¡¹, ¡¸MacTech¡¹, ¡¸Linux User and Developer¡¹, ¡¸Usenix;login:¡¹, ¡¸Linux Format¡¹, ¡¸Linux Journal¡¹ µîÀÇ ¿©·¯ Àú³Î¿¡ 300¿© Æí ÀÌ»óÀÇ ±ÛÀ» ±â°íÇß´Ù. ÁÖ¿ä °ü½É ºÐ¾ß´Â ½Ã°è¿­, µ¥ÀÌÅͺ£À̽º, À妽º´Ù. https://www.mtsoukalos.eu/¿Í @mactsouk¿¡¼­ Á÷Á¢ ¸¸³ªº¼ ¼ö ÀÖ´Ù.

¸ñÂ÷

01Àå. GoÀÇ °£·«ÇÑ ¼Ò°³
__Go ¼Ò°³
____GoÀÇ ¿ª»ç
____À©µµ¿ì°¡ ¾Æ´Ï¶ó À¯´Ð½ºÀÎ ÀÌÀ¯
____GoÀÇ ÀåÁ¡
____go doc°ú godoc À¯Æ¿¸®Æ¼
__Hello World!
____ÇÔ¼ö ¼Ò°³
____ÆÐÅ°Áö ¼Ò°³
__Go ÄÚµå ½ÇÇà
____Go ÄÚµå ÄÄÆÄÀÏ
____Go¸¦ ½ºÅ©¸³Æ® ¾ð¾îó·³ »ç¿ë
____Áß¿äÇÑ Çü½Ä°ú ÄÚµù ±ÔÄ¢
__GoÀÇ Áß¿äÇÑ Æ¯¼º
____º¯¼ö ¼±¾ð°ú »ç¿ë
______º¯¼ö Ãâ·Â
____ÇÁ·Î±×·¥ È帧 Á¦¾î
____for ·çÇÁ¿Í range·Î ¹Ýº¹
____»ç¿ëÀÚ ÀԷ¹ޱâ
____Ç¥ÁØ ÀÔ·Â Àбâ
______Ä¿¸Çµå¶óÀÎ Àμö »ç¿ë
____¿¡·¯ º¯¼ö·Î ÀԷ ŸÀÔ ±¸ºÐ
____GoÀÇ µ¿½Ã¼º ¸ðµ¨ ÀÌÇØ
__Go·Î which(1) °³¹ß
__Á¤º¸ ·Î±ë
____log.Fatal()°ú log.Panic()
____Ä¿½ºÅÒ ·Î±× ÆÄÀÏ ÀÛ¼º
____·Î±× Ç׸ñ¿¡ ÁÙ ¹øÈ£ Ãú·Â
__Á¦³×¸¯ °³¿ä
__±âÃÊÀûÀÎ ÀüÈ­¹øÈ£ºÎ ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß
__¿¬½À¹®Á¦
__¿ä¾à
__Âü°í ÀÚ·á

02Àå. ±âº» ŸÀÔ
__error ŸÀÔ
__¼ýÀÚ µ¥ÀÌÅÍ Å¸ÀÔ
__¼ýÀÚ°¡ ¾Æ´Ñ µ¥ÀÌÅÍ Å¸ÀÔ
____¹®ÀÚ¿­, ¹®ÀÚ, ·é
______Á¤¼ö¸¦ ¹®ÀÚ¿­·Î º¯È¯
______unicode ÆÐÅ°Áö
______strings ÆÐÅ°Áö
____³¯Â¥¿Í ½Ã°£
______³¯Â¥¿Í ½Ã°£À» ÆĽÌÇÏ´Â À¯Æ¿¸®Æ¼
______ŸÀÓ Á¸ ´Ù·ç±â
__Go »ó¼ö
____»ó¼ö »ý¼º±â iota
__ºñ½ÁÇÑ µ¥ÀÌÅÍ ¸ðÀ¸±â
____¹è¿­
____½½¶óÀ̽º
______½½¶óÀ̽º ±æÀÌ¿Í ¿ë·®
______½½¶óÀ̽ºÀÇ ÀϺκР¼±ÅÃ
______¹ÙÀÌÆ® ½½¶óÀ̽º
______½½¶óÀ̽º¿¡¼­ ¿ø¼Ò »èÁ¦
______¹è¿­°ú ½½¶óÀ̽ºÀÇ °ü°è
______copy() ÇÔ¼ö
______½½¶óÀ̽º Á¤·Ä
__Æ÷ÀÎÅÍ
__³­¼ö »ý¼º
____·£´ýÇÑ ¹®ÀÚ¿­ »ý¼º
____¾ÈÀüÇÑ ³­¼ö »ý¼º
__ÀüÈ­¹øÈ£ºÎ ¾ÖÇø®ÄÉÀÌ¼Ç ¾÷µ¥ÀÌÆ®
__¿¬½À¹®Á¦
__¿ä¾à
__Âü°í ÀÚ·á

03Àå. ÇÕ¼º µ¥ÀÌÅÍ Å¸ÀÔ
__¸Ê
____nil ¸Ê¿¡ ÀúÀå
____¸Ê ¹Ýº¹
__±¸Á¶Ã¼
____»õ ±¸Á¶Ã¼ Á¤ÀÇ
____new Å°¿öµå »ç¿ë
____±¸Á¶Ã¼ÀÇ ½½¶óÀ̽º
__Á¤±ÔÇ¥Çö½Ä°ú ÆÐÅÏ ¸ÅĪ
____Go Á¤±ÔÇ¥Çö½Ä
____À̸§°ú ¼º ¸ÅĪ
____Á¤¼ö ¸ÅĪ
____·¹ÄÚµåÀÇ ÇÊµå ¸ÅĪ
__ÀüÈ­¹øÈ£ºÎ ¾ÖÇø®ÄÉÀÌ¼Ç °³¼±
____CSV ÆÄÀÏ ´Ù·ç±â
____À妽º Ãß°¡
____ÀüÈ­¹øÈ£ºÎ ¾ÖÇø®ÄÉÀ̼ÇÀÇ °³¼±µÈ ¹öÀü
__¿¬½À¹®Á¦
__¿ä¾à
__Âü°í ÀÚ·á

04Àå. ¸®Ç÷º¼Ç°ú ÀÎÅÍÆäÀ̽º
__¸®Ç÷º¼Ç
____Go ±¸Á¶Ã¼ÀÇ ³»ºÎ
____¸®Ç÷º¼ÇÀ» ÀÌ¿ëÇØ ±¸Á¶Ã¼ °ª ¹Ù²Ù±â
____¸®Ç÷º¼ÇÀÇ ¼¼ °¡Áö ´ÜÁ¡
__ŸÀÔ ¸Þ¼­µå
____ŸÀÔ ¸Þ¼­µå »ý¼º
____ŸÀÔ ¸Þ¼­µå »ç¿ë
__ÀÎÅÍÆäÀ̽º
____sort.Interface ÀÎÅÍÆäÀ̽º
____ºó ÀÎÅÍÆäÀ̽º
____ŸÀÔ ´Ü¾ð°ú ŸÀÔ ½ºÀ§Ä¡
____map[string]interface{} ¸Ê
____¿¡·¯ ŸÀÔ
____³ª¸¸ÀÇ ÀÎÅÍÆäÀ̽º ¸¸µé±â
______Go ÀÎÅÍÆäÀ̽º »ç¿ë
______3Â÷¿ø ÇüÅ µ¥ÀÌÅÍ¿¡¼­ sort.Interface ±¸Çö
__µÎ °¡Áö CSV ÆÄÀÏ Æ÷¸Ë ´Ù·ç±â
__GoÀÇ °´Ã¼ÁöÇâ ÇÁ·Î±×·¡¹Ö
__ÀüÈ­¹øÈ£ºÎ ¾ÖÇø®ÄÉÀÌ¼Ç ¾÷µ¥ÀÌÆ®
____CSV ÆÄÀÏ °ª ¼³Á¤
____sort ÆÐÅ°Áö »ç¿ë
__¿¬½À¹®Á¦
__¿ä¾à
__Âü°í ÀÚ·á

05Àå. ÆÐÅ°Áö¿Í ÇÔ¼ö
__Go ÆÐÅ°Áö
____Go ÆÐÅ°Áö ´Ù¿î·Îµå
__ÇÔ¼ö
____À͸í ÇÔ¼ö
____¿©·¯ °ªÀ» ¹ÝȯÇÏ´Â ÇÔ¼ö
____ÇÔ¼öÀÇ ¹Ýȯ°ª¿¡µµ À̸§À» ºÙÀÏ ¼ö ÀÖ´Ù.
____ÇÔ¼ö¸¦ ¸Å°³º¯¼ö·Î ¹Þ´Â ÇÔ¼ö
____ÇÔ¼ö¸¦ ¹ÝȯÇÏ´Â ÇÔ¼ö
____°¡º¯ Àμö ÇÔ¼ö
____defer Å°¿öµå
__Go ÆÐÅ°Áö Á÷Á¢ ¸¸µé±â
____init() ÇÔ¼ö
____½ÇÇà ¼ø¼­
__±êÇãºê¿¡ Go ÆÐÅ°Áö ÀúÀå
__µ¥ÀÌÅͺ£À̽º¸¦ ´Ù·ç´Â Go ÆÐÅ°Áö
____µ¥ÀÌÅͺ£À̽º ÀÌÇØ
____Go ÆÐÅ°Áö ÀúÀå
____Go ÆÐÅ°ÁöÀÇ ¼³°è
____Go ÆÐÅ°Áö ±¸Çö
____Go ÆÐÅ°Áö Å×½ºÆ®
__¸ðµâ
__Go ÆÐÅ°Áö¸¦ Àß ¸¸µå´Â ¹æ¹ý
__¹®¼­È­
__±ê·¦ ·¯³Ê
____Ãʱ⠼³Á¤ ÆÄÀÏ
____ÃÖÁ¾ ¼³Á¤ ÆÄÀÏ
__±êÇãºê ¾×¼Ç
____±êÇãºê¿¡ ½ÃÅ©¸´ ÀúÀå
____ÃÖÁ¾ ¼³Á¤ ÆÄÀÏ
__¹öÀü ºÎ¿©
__¿¬½À¹®Á¦
__¿ä¾à
__Âü°í ÀÚ·á

06Àå. À¯´Ð½º ½Ã½ºÅÛ¿¡°Ô ÀÛ¾÷ Áö½Ã
__stdin, stdout, stderr
__À¯´Ð½º ÇÁ·Î¼¼½º
__À¯´Ð½º ½Ã±×³Î ó¸®
____µÎ °¡Áö ½Ã±×³Î ó¸®
__ÆÄÀÏ ÀÔÃâ·Â
____io.Reader¿Í io.Writer ÀÎÅÍÆäÀ̽º
____io.Reader¿Í io.WriterÀÇ »ç¿ë°ú ¿À¿ë
____¹öÆÛ¸¦ ÀÌ¿ëÇÑ ÆÄÀÏ ÀÔÃâ·Â°ú ¹öÆÛ¸¦ ÀÌ¿ëÇÏÁö ¾Ê´Â ÆÄÀÏ ÀÔÃâ·Â
__ÅؽºÆ® ÆÄÀÏ Àбâ
____ÁÙ ´ÜÀ§·Î ÅؽºÆ® ÆÄÀÏ Àбâ
____´Ü¾î ´ÜÀ§·Î ÅؽºÆ® ÆÄÀÏ Àбâ
____¹®ÀÚ ´ÜÀ§·Î ÅؽºÆ® ÆÄÀÏ Àбâ
____/dev/random Àбâ
____ÆÄÀÏ¿¡¼­ ¿øÇÏ´Â ¸¸Å­¸¸ µ¥ÀÌÅÍ Àбâ
__ÆÄÀÏ ¾²±â
__JSON µ¥ÀÌÅÍ ´Ù·ç±â
____Marshal()°ú Unmarshal()
____±¸Á¶Ã¼¿Í JSON
____½ºÆ®¸² ÇüÅ·ΠJSON µ¥ÀÌÅÍ ÀÐ°í ¾²±â
____JSON ·¹ÄÚµå Ãâ·Â ´Ùµë±â
__XML ´Ù·ç±â
____JSON°ú XML º¯È¯
__YAML ´Ù·ç±â
__viper ÆÐÅ°Áö
____Ä¿¸Çµå¶óÀÎ Ç÷¡±× »ç¿ë
____JSON ¼³Á¤ ÆÄÀÏ Àбâ
__cobra ÆÐÅ°Áö
____¼¼ °³ÀÇ Ä¿¸Çµå°¡ ÀÖ´Â À¯Æ¿¸®Æ¼
____Ä¿¸Çµå¶óÀÎ Ç÷¡±× Ãß°¡
____Ä¿¸Çµå ¾Ù¸®¾î½º »ý¼º
____ÇÏÀ§ Ä¿¸Çµå »ý¼º
__À¯´Ð½º ÆÄÀÏ ½Ã½ºÅÛ¿¡¼­ ¼øȯ ÂüÁ¶ ã±â
__Go 1.16ÀÇ »õ·Î¿î ±â´É
____ÆÄÀÏ ÀÓº£µù
____ReadDir°ú DirEntry
____io/fs ÆÐÅ°Áö
__ÀüÈ­¹øÈ£ºÎ ¾ÖÇø®ÄÉÀÌ¼Ç ¾÷µ¥ÀÌÆ®
____cobra »ç¿ë
____JSON µ¥ÀÌÅÍ ÀúÀåÇÏ°í Àбâ
____delete Ä¿¸Çµå ±¸Çö
____insert Ä¿¸Çµå ±¸Çö
____list Ä¿¸Çµå ±¸Çö
____search Ä¿¸Çµå ±¸Çö
__¿¬½À¹®Á¦
__¿ä¾à
__Âü°í ÀÚ·á


07Àå. GoÀÇ µ¿½Ã¼º
__ÇÁ·Î¼¼½º, ½º·¹µå, °í·çƾ
__Go ½ºÄÉÁÙ·¯
____GOMAXPROCS ȯ°æ º¯¼ö
____µ¿½Ã¼º°ú º´·Ä¼º
__°í·çƾ
____°í·çƾ »ý¼º
____°í·çƾ ¿©·¯ °³ »ý¼º
____°í·çƾÀÌ ³¡³¯ ¶§±îÁö ±â´Ù¸®±â
____Add()¿Í Done()ÀÇ È£Ãâ Ƚ¼ö°¡ ÀÏÄ¡ÇÏÁö ¾Ê´Â °æ¿ì
____°í·çƾÀ¸·Î ¿©·¯ ÆÄÀÏ »ý¼º
__ä³Î
____ä³Î¿¡ µ¥ÀÌÅÍ ¾²°í Àбâ
____´ÝÈù ä³Î¿¡¼­ µ¥ÀÌÅÍ ¹Þ±â
____ÇÔ¼ö ¸Å°³º¯¼ö·Î ÁöÁ¤ÇÑ Ã¤³Î
__°æÀï »óÅÂ
____Go °æÀï »óÅ °¨Áö±â
__select Å°¿öµå
__°í·çƾ ŸÀӾƿô
____main() ³»ºÎ¿¡¼­ °í·çƾ ŸÀӾƿô
____main() ¹Ù±ù¿¡¼­ °í·çƾ ŸÀӾƿô
__Go ä³Î ´Ù½Ã º¸±â
____¹öÆÛ Ã¤³Î
____nil ä³Î
____¿öÄ¿ Ç®
____½Ã±×³Î ä³Î
______°í·çƾÀÇ ½ÇÇà ¼ø¼­ ÁöÁ¤
__°øÀ¯ ¸Þ¸ð¸®¿Í °øÀ¯ º¯¼ö
____sync.Mutex ŸÀÔ
______¹ÂÅؽº¸¦ ÇØÁ¦ÇÏ´Â °ÍÀ» Àؾî¹ö·ÈÀ» °æ¿ì
____sync.RWMutex ŸÀÔ
____atomic ÆÐÅ°Áö
____°í·çƾÀ¸·Î ¸Þ¸ð¸® °øÀ¯
__Ŭ·ÎÀú º¯¼ö¿Í go ±¸¹®
__context ÆÐÅ°Áö
____context¸¦ Å°/°ª ÀúÀå¼Ò·Î »ç¿ë
__semaphore ÆÐÅ°Áö
__¿¬½À¹®Á¦
__¿ä¾à
__Âü°í ÀÚ·á

08Àå. À¥ ¼­ºñ½º ¸¸µé±â
__net/http ÆÐÅ°Áö
____http.Response ŸÀÔ
____http.Request ŸÀÔ
____http.Transport ŸÀÔ
__À¥ ¼­¹ö »ý¼º
__ÀüÈ­¹øÈ£ºÎ ¾ÖÇø®ÄÉÀÌ¼Ç ¾÷µ¥ÀÌÆ®
____API Á¤ÀÇ
____Çڵ鷯 ±¸Çö
__ÇÁ·Î¸ÞÅ׿콺·Î ¸ÞÆ®¸¯ ³ëÃâ
____runtime/metrics ÆÐÅ°Áö
____¸ÞÆ®¸¯ ³ëÃâ
______Go ¼­¹öÀÇ µµÄ¿ À̹ÌÁö »ý¼º
______¸ÞÆ®¸¯ ³ëÃâ
____¸ÞÆ®¸¯ Àбâ
____ÇÁ·Î¸ÞÅ׿콺¿¡ ¸ÞÆ®¸¯ ³Ö±â
____±×¶óÆijª¿¡¼­ ÇÁ·Î¸ÞÅ׿콺 ¸ÞÆ®¸¯ ½Ã°¢È­
__À¥ Ŭ¶óÀ̾ðÆ® °³¹ß
____http.NewRequest()¸¦ »ç¿ëÇØ Å¬¶óÀ̾ðÆ® °³¼±
____ÀüÈ­¹øÈ£ºÎ ¼­ºñ½ºÀÇ Å¬¶óÀ̾ðÆ® ¸¸µé±â
__ÆÄÀÏ ¼­¹ö ¸¸µé±â
____ÀüÈ­¹øÈ£ºÎ ¾ÖÇø®ÄÉÀ̼ǿ¡¼­ ´Ù¿î·ÎµåÇϱâ
__HTTP ¿¬°á ŸÀӾƿô ¼³Á¤
____SetDeadline() »ç¿ë
____Ŭ¶óÀ̾ðÆ®¿¡¼­ ŸÀӾƿô ¼³Á¤
____¼­¹ö¿¡¼­ ŸÀӾƿô ¼³Á¤
__¿¬½À¹®Á¦
__¿ä¾à
__Âü°í ÀÚ·á

09Àå. TCP/IP¿Í À¥¼ÒÄÏ
__TCP/IP
____nc(1) Ä¿¸Çµå¶óÀÎ À¯Æ¿¸®Æ¼
__net ÆÐÅ°Áö
__TCP Ŭ¶óÀ̾ðÆ® °³¹ß
____net.Dial()À» ÀÌ¿ëÇÑ TCP Ŭ¶óÀ̾ðÆ® °³¹ß
____net.DialTCP()¸¦ ÀÌ¿ëÇØ TCP Ŭ¶óÀ̾ðÆ® °³¹ß
__TCP ¼­¹ö °³¹ß
____net.Listen()À» ÀÌ¿ëÇÑ TCP ¼­¹ö °³¹ß
____net.ListenTCP()¸¦ »ç¿ëÇÑ TCP ¼­¹ö °³¹ß
__UDP Ŭ¶óÀ̾ðÆ® °³¹ß
__UDP ¼­¹ö °³¹ß
__µ¿½Ã¼º ÀÖ´Â TCP ¼­¹ö °³¹ß
__À¯´Ð½º µµ¸ÞÀÎ ¼ÒÄÏ
____À¯´Ð½º µµ¸ÞÀÎ ¼ÒÄÏ ¼­¹ö
____À¯´Ð½º µµ¸ÞÀÎ ¼ÒÄÏ Å¬¶óÀ̾ðÆ®
__À¥¼ÒÄÏ ¼­¹ö °³¹ß
____¼­¹ö ±¸Çö
______websocat »ç¿ë
______ÀÚ¹Ù½ºÅ©¸³Æ® »ç¿ë
__À¥¼ÒÄÏ Å¬¶óÀ̾ðÆ® °³¹ß
__¿¬½À¹®Á¦
__¿ä¾à
__Âü°í ÀÚ·á

10Àå. REST API
__REST ¼Ò°³
__RESTful ¼­¹ö ¹× Ŭ¶óÀ̾ðÆ® °³¹ß
____RESTful ¼­¹ö
____RESTful Ŭ¶óÀ̾ðÆ®
__½ÇÁ¦·Î ÀÛµ¿ÇÏ´Â RESTful ¼­¹ö °³¹ß
____REST API
____gorilla/mux
____¼­ºê¶ó¿ìÅÍ »ç¿ë
____µ¥ÀÌÅͺ£À̽º »ç¿ë
____restdb Å×½ºÆ®
____RESTful ¼­¹ö ±¸Çö
____RESTful ¼­¹ö Å×½ºÆ®
______GET Çڵ鷯 Å×½ºÆ®
______POST Çڵ鷯 Å×½ºÆ®
______PUT Çڵ鷯 Å×½ºÆ®
______DELETE Çڵ鷯 Å×½ºÆ®
__RESTful Ŭ¶óÀ̾ðÆ®
____Ä¿¸Çµå¶óÀΠŬ¶óÀ̾ðÆ® ±¸Á¶ °®Ãß±â
____RESTful Ŭ¶óÀ̾ðÆ® Ä¿¸Çµå ±¸Çö
____RESTful Ŭ¶óÀ̾ðÆ® »ç¿ë
____¿©·¯ REST API ¹öÀü »ç¿ë
__¹ÙÀ̳ʸ® ÆÄÀÏ ¾÷·Îµå¿Í ´Ù¿î·Îµå
__REST API ¹®¼­È­¸¦ À§ÇÑ ½º¿þ°Å
____REST API ¹®¼­È­
____¹®¼­ ÆÄÀÏ »ý¼º
____¹®¼­ ÆÄÀÏ Á¦°ø
__¿¬½À¹®Á¦
__¿ä¾à
__Âü°í ÀÚ·á

11Àå. ÄÚµå Å×½ºÆðú ÇÁ·ÎÆÄÀϸµ
__ÄÚµå ÃÖÀûÈ­
__ÄÚµå º¥Ä¡¸¶Å·
____´õ ³ªÀº Å×½ºÆ®¸¦ À§ÇÑ main() ÇÔ¼ö ÀçÀÛ¼º
____¾²±â ¹× Àб⠹öÆÛ º¥Ä¡¸¶Å·
____benchstat À¯Æ¿¸®Æ¼
____À߸ø ÀÛ¼ºÇÑ º¥Ä¡¸¶Å© ÇÔ¼ö
__ÄÚµå ÇÁ·ÎÆÄÀϸµ
____Ä¿¸Çµå¶óÀÎ ¾ÖÇø®ÄÉÀÌ¼Ç ÇÁ·ÎÆÄÀϸµ
____HTTP ¼­¹ö ÇÁ·ÎÆÄÀϸµ
____Go ÇÁ·ÎÆÄÀÏ·¯ÀÇ À¥ ÀÎÅÍÆäÀ̽º
__go tool trace À¯Æ¿¸®Æ¼
____Ŭ¶óÀ̾ðÆ®¿¡¼­ À¥ ¼­¹ö ÃßÀû
____À¥ ¼­¹öÀÇ ¸ðµç °æ·Î ¹æ¹®
__Go ÄÚµå Å×½ºÆ®
____./ch03/intRE.go Å×½ºÆ® ÀÛ¼º
____TempDir() ÇÔ¼ö
____CleanUp() ÇÔ¼ö
____testing/quick ÆÐÅ°Áö
____Å×½ºÆ® ŸÀӾƿô
____ÄÚµå Ä¿¹ö¸®Áö Å×½ºÆ®
____µµ´ÞÇÒ ¼ö ¾ø´Â ÄÚµå ã±â
__µ¥ÀÌÅͺ£À̽º ¹é¿£µå¸¦ °®Ãá HTTP ¼­¹ö Å×½ºÆ®
__ÆÛÁî Å×½ºÆ®
__Å©·Î½ºÄÄÆÄÀÏ
__go:generate
__¿¹Á¦ ÇÔ¼ö »ý¼º
__¿¬½À¹®Á¦
__¿ä¾à
__Âü°í ÀÚ·á

12Àå. gRPC
gRPC ¼Ò°³
____ÇÁ·ÎÅäÄÝ ¹öÆÛ
__ÀÎÅÍÆäÀ̽º Á¤ÀÇ ¾ð¾î ÆÄÀÏ ÀÛ¼º
__gRPC ¼­¹ö °³¹ß
__gRPC Ŭ¶óÀ̾ðÆ® °³¹ß
____Ŭ¶óÀ̾ðÆ®¸¦ ÀÌ¿ëÇÑ gRPC ¼­¹ö Å×½ºÆ®
__¿¬½À¹®Á¦
__¿ä¾à
__Âü°í ÀÚ·á

13Àå. Á¦³×¸¯
__Á¦³×¸¯ ¼Ò°³
__Á¦¾à Á¶°Ç
____Á¦¾à Á¶°Ç ¸¸µé±â
__Á¦³×¸¯À» ÀÌ¿ëÇÑ µ¥ÀÌÅÍ Å¸ÀÔ Á¤ÀÇ
____Go ±¸Á¶Ã¼¿¡¼­ÀÇ Á¦³×¸¯ »ç¿ë
__ÀÎÅÍÆäÀ̽º¿Í Á¦³×¸¯
__¸®Ç÷º¼Ç°ú Á¦³×¸¯
__¿¬½À ¹®Á¦
__¿ä¾à
__Âü°í ÀÚ·á

ºÎ·ÏA. Go °¡ºñÁö Ä÷ºÅÍ
__Èü°ú ½ºÅÃ
__°¡ºñÁö Ä÷º¼Ç
____»ï»ö ¾Ë°í¸®µë
____Go °¡ºñÁö Ä÷ºÅÍÀÇ »ó¼¼ÇÑ µ¿ÀÛ ¹æ½Ä
____¸Ê, ½½¶óÀ̽º¿Í Go °¡ºñÁö Ä÷ºÅÍ
______½½¶óÀ̽º »ç¿ë
______¸Ê¿¡ Æ÷ÀÎÅÍ »ç¿ë
______Æ÷ÀÎÅ͸¦ »ç¿ëÇÏÁö ¾Ê´Â ¸Ê »ç¿ë
______¸Ê ³ª´©±â
____¿¹Á¦ ¼º´É ºñ±³
__Âü°í ÀÚ·á