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Àå. gRPCgRPC ¼Ò°³____ÇÁ·ÎÅäÄÝ ¹öÆÛ__ÀÎÅÍÆäÀ̽º Á¤ÀÇ ¾ð¾î ÆÄÀÏ ÀÛ¼º__gRPC ¼¹ö °³¹ß__gRPC Ŭ¶óÀ̾ðÆ® °³¹ß____Ŭ¶óÀ̾ðÆ®¸¦ ÀÌ¿ëÇÑ gRPC ¼¹ö Å×½ºÆ®__¿¬½À¹®Á¦__¿ä¾à__Âü°í ÀÚ·á13Àå. Á¦³×¸¯__Á¦³×¸¯ ¼Ò°³__Á¦¾à Á¶°Ç____Á¦¾à Á¶°Ç ¸¸µé±â__Á¦³×¸¯À» ÀÌ¿ëÇÑ µ¥ÀÌÅÍ Å¸ÀÔ Á¤ÀÇ____Go ±¸Á¶Ã¼¿¡¼ÀÇ Á¦³×¸¯ »ç¿ë__ÀÎÅÍÆäÀ̽º¿Í Á¦³×¸¯__¸®Ç÷º¼Ç°ú Á¦³×¸¯__¿¬½À ¹®Á¦__¿ä¾à__Âü°í ÀÚ·áºÎ·ÏA. Go °¡ºñÁö Ä÷ºÅÍ__Èü°ú ½ºÅÃ__°¡ºñÁö Ä÷º¼Ç____»ï»ö ¾Ë°í¸®µë____Go °¡ºñÁö Ä÷ºÅÍÀÇ »ó¼¼ÇÑ µ¿ÀÛ ¹æ½Ä____¸Ê, ½½¶óÀ̽º¿Í Go °¡ºñÁö Ä÷ºÅÍ______½½¶óÀ̽º »ç¿ë______¸Ê¿¡ Æ÷ÀÎÅÍ »ç¿ë______Æ÷ÀÎÅ͸¦ »ç¿ëÇÏÁö ¾Ê´Â ¸Ê »ç¿ë______¸Ê ³ª´©±â____¿¹Á¦ ¼º´É ºñ±³__Âü°í ÀÚ·á