- ÇöÀç À§Ä¡
- home > ÄÄÇ»ÅÍ¡¤ICT¡¤¾îÇÐ > ÄÄÇ»ÅÍ¡¤IT µµ¼ > ÇÁ·Î±×·¡¹Ö/¾ð¾î > Go ÇÁ·Î±×·¡¹Ö ÄîºÏ 2/e[¿¡ÀÌÄÜÃâÆÇ]
Go ¾ð¾î·Î °³¹ßÇÒ ¶§ ÇÊ¿äÇÑ °¡À̵å¶óÀÎÀ» Á¦°øÇÑ´Ù. ÆÄÀÏ ÀÔÃâ·Â, Ä¿¸Çµå¶óÀÎ µµ±¸, µ¥ÀÌÅÍ º¯È¯ ¹× ÇÕ¼º, ¿¡·¯ ó¸®, ³×Æ®¿öÅ© ÇÁ·Î±×·¡¹Ö, µ¥ÀÌÅÍ º£À̽º, À¥ Ŭ¶óÀ̾ðÆ® API, ¸¶ÀÌÅ©·Î¼ºñ½º ¾ÖÇø®ÄÉÀÌ¼Ç Á¦ÀÛ ¹æ¹ý, ÄÚµå Å×½ºÆ® ¹æ¹ý, º´·Ä ó¸®, ºÐ»ê ½Ã½ºÅÛ, ¸®¾×Ƽºê ÇÁ·Î±×·¡¹Ö, ¼¹ö¸®½º ÇÁ·Î±×·¡¹Ö¿¡ À̸£±â±îÁö ÃѸÁ¶óÇØ ¼³¸íÇÑ´Ù.
¿©±â¿¡ ½ÇÁ¦ °³¹ß¿¡ È°¿ëÇÒ ¼ö ÀÖ´Â ¸ðµâÈµÈ ¿¹Á¦¸¦ Á¦°øÇؼ ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß °úÁ¤¿¡¼ ¿¹Á¦ Äڵ带 Âü°íÇϱ⿡ Æí¸®ÇÏ´Ù. Go ¾ð¾î°¡ Á¦°øÇÏ´Â ±â´É¿¡ ´ëÇÑ Àü¹ÝÀûÀÎ ³»¿ëÀ» °øºÎÇÏ°í ½ÍÀº µ¶ÀÚ¿Í ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß °úÁ¤¿¡¼ ƯÁ¤ ±â´É¿¡ ´ëÇÑ ¿¹Á¦ Äڵ带 Âü°íÇÏ°í ½ÍÀº µ¶ÀÚ¿¡°Ô ÈǸ¢ÇÑ Âü°í¼°¡ µÉ °ÍÀÌ´Ù.
¿©±â¿¡ ½ÇÁ¦ °³¹ß¿¡ È°¿ëÇÒ ¼ö ÀÖ´Â ¸ðµâÈµÈ ¿¹Á¦¸¦ Á¦°øÇؼ ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß °úÁ¤¿¡¼ ¿¹Á¦ Äڵ带 Âü°íÇϱ⿡ Æí¸®ÇÏ´Ù. Go ¾ð¾î°¡ Á¦°øÇÏ´Â ±â´É¿¡ ´ëÇÑ Àü¹ÝÀûÀÎ ³»¿ëÀ» °øºÎÇÏ°í ½ÍÀº µ¶ÀÚ¿Í ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß °úÁ¤¿¡¼ ƯÁ¤ ±â´É¿¡ ´ëÇÑ ¿¹Á¦ Äڵ带 Âü°íÇÏ°í ½ÍÀº µ¶ÀÚ¿¡°Ô ÈǸ¢ÇÑ Âü°í¼°¡ µÉ °ÍÀÌ´Ù.
ÀúÀÚ: ¾Ö·± Åä·¹½º
01Àå. I/O¿Í ÆÄÀÏ ½Ã½ºÅÛ
__±â¼úÀû ¿ä±¸ »çÇ×
__ÀϹÝÀûÀÎ I/O ÀÎÅÍÆäÀ̽º »ç¿ëÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__bytes¿Í strings ÆÐÅ°Áö »ç¿ëÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__µð·ºÅ͸®¿Í ÆÄÀÏÀ» È°¿ëÇÑ ÀÛ¾÷
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__CSV Æ÷¸ËÀ» È°¿ëÇÑ ÀÛ¾÷
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__Àӽà ÆÄÀÏÀ» È°¿ëÇÑ ÀÛ¾÷
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__text/template°ú html/templateÀ» È°¿ëÇÑ ÀÛ¾÷
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
02Àå. ¸í·ÉÁÙ µµ±¸
__±â¼úÀû ¿ä±¸ »çÇ×
__¸í·ÉÁÙ Ç÷¡±× »ç¿ëÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__¸í·ÉÁÙ ¸Å°³º¯¼ö »ç¿ëÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__ȯ°æ º¯¼ö ÀÐ±â ¹× ¼³Á¤Çϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__TOML, YAML, JSONÀ» »ç¿ëÇÑ È¯°æ ¼³Á¤
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__À¯´Ð½º ÆÄÀÌÇÁ¸¦ È°¿ëÇÑ ÀÛ¾÷
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__½ÅÈ£ Àâ±â ¹× ó¸®
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__ANSI Ä÷¯ ¾ÖÇø®ÄÉÀ̼Ç
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
03Àå. µ¥ÀÌÅÍ º¯È¯ ¹× ±¸¼º
__±â¼úÀû ¿ä±¸ »çÇ×
__µ¥ÀÌÅÍ Å¸ÀÔ º¯È¯ ¹× ÀÎÅÍÆäÀ̽º Çü º¯È¯
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__math¿Í math/bigÀ» È°¿ëÇÑ ¼ýÀÚ µ¥ÀÌÅÍ Å¸ÀÔ ÀÛ¾÷
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__ÅëÈ º¯È¯°ú float64¿¡ ´ëÇÑ °í·Á
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__ÀÎÄÚµù°ú µðÄÚµù¿¡ Æ÷ÀÎÅÍ¿Í SQL NullType »ç¿ëÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__Go µ¥ÀÌÅÍÀÇ ÀÎÄÚµù ¹× µðÄÚµù
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__GoÀÇ ±¸Á¶Ã¼ ÅÂ±×¿Í ±âº»ÀûÀÎ ¸®Ç÷º¼Ç
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__Ŭ·ÎÀú¸¦ »ç¿ëÇØ Ä÷º¼Ç ±¸ÇöÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
04Àå, GoÀÇ ¿À·ù ó¸®
__±â¼úÀû ¿ä±¸ »çÇ×
__¿À·ù ó¸® ¹× Error ÀÎÅÍÆäÀ̽º
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__pkg/errors ÆÐÅ°Áö »ç¿ëÇÏ±â ¹× ¿À·ù ·¡ÇÎ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__log ÆÐÅ°Áö »ç¿ëÇϱâ¿Í ¿À·ùÀÇ ·Î±× ±â·Ï ½Ã±â ÀÌÇØÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__apex¿Í logrus ÆÐÅ°Áö¸¦ È°¿ëÇÑ ±¸Á¶ÈµÈ ·Î±ë
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__context ÆÐÅ°Áö¸¦ È°¿ëÇÑ ·Î±ë
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__ÆÐÅ°Áö ¼öÁØÀÇ Àü¿ª º¯¼ö »ç¿ëÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__Àå±â°£ ½ÇÇàµÇ´Â ÇÁ·Î¼¼½º¿¡ ´ëÇÑ ÆдРÇØ°áÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
05Àå. ³×Æ®¿öÅ© ÇÁ·Î±×·¡¹Ö
__±â¼úÀû ¿ä±¸ »çÇ×
__TCP/IP ¿¡ÄÚ ¼¹ö ¹× Ŭ¶óÀ̾ðÆ® ÀÛ¼ºÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__UDP ¼¹ö ¹× Ŭ¶óÀ̾ðÆ® ÀÛ¼ºÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__µµ¸ÞÀÎ À̸§ È®ÀÎ ÀÛ¾÷Çϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__À¥¼ÒÄÏÀ¸·Î ÀÛ¾÷Çϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__net/rpc¸¦ È°¿ëÇØ ¿ø°Ý ¸Þ¼Òµå(ÇÔ¼ö) È£ÃâÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__net/mailÀ» È°¿ëÇØ À̸ÞÀÏ ÆĽÌÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
06Àå. µ¥ÀÌÅͺ£À̽º¿Í ÀúÀå¼ÒÀÇ ¸ðµç °Í
__MySQL°ú ÇÔ²² database/sql ÆÐÅ°Áö »ç¿ëÇϱâ
__Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__µ¥ÀÌÅͺ£À̽º Æ®·£Àè¼Ç ÀÎÅÍÆäÀ̽º ½ÇÇàÇϱâ
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__SQL¿¡ ´ëÇÑ Ä¿³Ø¼Ç Ç®¸µ, ¼Óµµ Á¦ÇÑ ¹× ŸÀӾƿô
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__Redis¸¦ È°¿ëÇÑ ÀÛ¾÷
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__MongoDB¸¦ È°¿ëÇÑ NoSQL »ç¿ëÇϱâ
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__µ¥ÀÌÅÍ À̽ļºÀ» °í·ÁÇÑ ÀúÀå¼Ò ÀÎÅÍÆäÀ̽º »ý¼ºÇϱâ
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
07Àå. À¥ Ŭ¶óÀ̾ðÆ® ¹× API
__±â¼ú ¿ä±¸ »çÇ×
__http.Client °´Ã¼ÀÇ ÃʱâÈ, ÀúÀå, Àü´ÞÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__REST API¿ë Ŭ¶óÀ̾ðÆ® ÀÛ¼ºÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__º´·Ä ¹× ºñµ¿±â Ŭ¶óÀ̾ðÆ® ¿äû ½ÇÇàÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__OAuth2 Ŭ¶óÀ̾ðÆ® È°¿ë
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__OAuth2 ÅäÅ« ÀúÀå¼Ò ÀÎÅÍÆäÀ̽º ±¸ÇöÇϱâ
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__Ãß°¡µÈ ±â´É ¹× ÇÔ¼ö ±¸¼ºÀ¸·Î Ŭ¶óÀ̾ðÆ® ·¡ÇÎÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__GRPC Ŭ¶óÀ̾ðÆ® ÀÌÇØÇϱâ
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__RPC¸¦ À§ÇÑ twitchtv/twirp »ç¿ëÇϱâ
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
08Àå. GoÀÇ ¾ÖÇø®ÄÉÀÌ¼Ç¿ë ¸¶ÀÌÅ©·Î¼ºñ½º
__±â¼úÀû ¿ä±¸ »çÇ×
__À¥ Çڵ鷯, ¿äû, ResponseWriter ÀνºÅϽº¸¦ È°¿ëÇÑ ÀÛ¾÷
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__»óÅ ÀúÀå Çڵ鷯¿¡ ±¸Á¶Ã¼¿Í Ŭ·ÎÀú È°¿ëÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__Go ±¸Á¶Ã¼¿Í »ç¿ëÀÚ ÀԷ¿¡ ´ëÇÑ ÀÔ·Â °ËÁõ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__·»´õ¸µ ¹× ³»¿ë Çù»ó
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__¹Ìµé¿þ¾î ±¸Çö ¹× »ç¿ëÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__¸®¹ö½º ÇÁ·Ï½Ã ¾ÖÇø®ÄÉÀÌ¼Ç Á¦ÀÛÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__JSON API·Î GRPC ³»º¸³»±â
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
09Àå. Go ÄÚµå Å×½ºÆ®Çϱâ
__±â¼úÀû ¿ä±¸ »çÇ×
__Ç¥ÁØ ¶óÀ̺귯¸®¸¦ »ç¿ëÇÑ ¸ðÀÇ Å×½ºÆ®
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__¸ðÀÇ ÀÎÅÍÆäÀ̽º¸¦ Å×½ºÆ®Çϱâ À§ÇÑ Mockgen ÆÐÅ°Áö »ç¿ëÇϱâ
__Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__Å×ÀÌºí ±â¹Ý Å×½ºÆ®¸¦ »ç¿ëÇØ Àû¿ë ¹üÀ§ Çâ»ó½ÃÅ°±â
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__¼µåÆÄƼ Å×½ºÆ® µµ±¸ »ç¿ëÇϱâ
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__Go¸¦ »ç¿ëÇÑ µ¿ÀÛ Å×½ºÆ®
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
10Àå. º´·Ä ó¸®¿Í µ¿½Ã¼º
__±â¼úÀû ¿ä±¸ »çÇ×
__ä³Î ¹× select ±¸¹® »ç¿ëÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__sync.WaitGroupÀ» È°¿ëÇÑ ºñµ¿±â ÀÛ¾÷ ¼öÇàÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__¿øÀÚÀû ¿¬»ê ¹× ¹ÂÅؽº »ç¿ëÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__context ÆÐÅ°Áö »ç¿ëÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__ä³Î¿¡ ´ëÇÑ »óÅ °ü¸® ½ÇÇàÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__¿öÄ¿ Ç® µðÀÚÀÎ ÆÐÅÏ »ç¿ëÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__¿öÄ¿¸¦ »ç¿ëÇØ ÆÄÀÌÇÁ¶óÀÎ »ý¼ºÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
11Àå. ºÐ»ê ½Ã½ºÅÛ
__±â¼úÀû ¿ä±¸ »çÇ×
__ConsulÀ» È°¿ëÇÑ ¼ºñ½º °Ë»ö »ç¿ëÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__Raft¸¦ È°¿ëÇÑ ±âº»ÀûÀÎ ÄÁ¼¾¼½º ±¸ÇöÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__µµÄ¿¸¦ È°¿ëÇÑ ÄÁÅ×À̳ÊÈ »ç¿ëÇϱâ
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__¿ÀÄɽºÆ®·¹ÀÌ¼Ç ¹× ¹èÆ÷ Àü·«
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__¸ð´ÏÅ͸µ ¾ÖÇø®ÄÉÀ̼Ç
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__ÁöÇ¥ ¼öÁý
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
12Àå. ¹ÝÀÀÇü ÇÁ·Î±×·¡¹Ö°ú µ¥ÀÌÅÍ ½ºÆ®¸²
__±â¼úÀû ¿ä±¸ »çÇ×
__µ¥ÀÌÅÍ È帧 ÇÁ·Î±×·¡¹Ö¿¡ Goflow »ç¿ëÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__Ä«ÇÁÄ«¿Í Sarama »ç¿ëÇϱâ
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__Ä«ÇÁÄ«¸¦ È°¿ëÇÑ ºñµ¿±â producer »ç¿ëÇϱâ
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__Ä«ÇÁÄ«¸¦ Goflow¿¡ ¿¬°áÇϱâ
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__Go·Î GraphQL ¼¹ö ÀÛ¼ºÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
13Àå. ¼¹ö¸®½º ÇÁ·Î±×·¡¹Ö
__Apex¸¦ È°¿ëÇØ ¶÷´Ù¿¡¼ Go ÇÁ·Î±×·¡¹ÖÇϱâ
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__Apex ¼¹ö¸®½º ·Î±ë ¹× ÀÚ·á ¼öÁý
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__Go¿Í ±¸±Û ¾Û ¿£Áø
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__firebase.google.com/go ÆÐÅ°Áö¸¦ È°¿ëÇÑ ÆÄÀ̾À̽º ÀÛ¾÷
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
14Àå. ¼º´É Çâ»ó, ÆÁ ±×¸®°í À¯¿ëÇÑ ±â¹ý
__±â¼úÀû ¿ä±¸ »çÇ×
__pprof µµ±¸ »ç¿ëÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__º¥Ä¡¸¶Å· ¹× º´¸ñ Çö»ó ã±â
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__¸Þ¸ð¸® ÇÒ´ç°ú Èü °ü¸®
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__fasthttprouter¿Í fasthttp »ç¿ëÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__±â¼úÀû ¿ä±¸ »çÇ×
__ÀϹÝÀûÀÎ I/O ÀÎÅÍÆäÀ̽º »ç¿ëÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__bytes¿Í strings ÆÐÅ°Áö »ç¿ëÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__µð·ºÅ͸®¿Í ÆÄÀÏÀ» È°¿ëÇÑ ÀÛ¾÷
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__CSV Æ÷¸ËÀ» È°¿ëÇÑ ÀÛ¾÷
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__Àӽà ÆÄÀÏÀ» È°¿ëÇÑ ÀÛ¾÷
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__text/template°ú html/templateÀ» È°¿ëÇÑ ÀÛ¾÷
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
02Àå. ¸í·ÉÁÙ µµ±¸
__±â¼úÀû ¿ä±¸ »çÇ×
__¸í·ÉÁÙ Ç÷¡±× »ç¿ëÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__¸í·ÉÁÙ ¸Å°³º¯¼ö »ç¿ëÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__ȯ°æ º¯¼ö ÀÐ±â ¹× ¼³Á¤Çϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__TOML, YAML, JSONÀ» »ç¿ëÇÑ È¯°æ ¼³Á¤
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__À¯´Ð½º ÆÄÀÌÇÁ¸¦ È°¿ëÇÑ ÀÛ¾÷
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__½ÅÈ£ Àâ±â ¹× ó¸®
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__ANSI Ä÷¯ ¾ÖÇø®ÄÉÀ̼Ç
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
03Àå. µ¥ÀÌÅÍ º¯È¯ ¹× ±¸¼º
__±â¼úÀû ¿ä±¸ »çÇ×
__µ¥ÀÌÅÍ Å¸ÀÔ º¯È¯ ¹× ÀÎÅÍÆäÀ̽º Çü º¯È¯
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__math¿Í math/bigÀ» È°¿ëÇÑ ¼ýÀÚ µ¥ÀÌÅÍ Å¸ÀÔ ÀÛ¾÷
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__ÅëÈ º¯È¯°ú float64¿¡ ´ëÇÑ °í·Á
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__ÀÎÄÚµù°ú µðÄÚµù¿¡ Æ÷ÀÎÅÍ¿Í SQL NullType »ç¿ëÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__Go µ¥ÀÌÅÍÀÇ ÀÎÄÚµù ¹× µðÄÚµù
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__GoÀÇ ±¸Á¶Ã¼ ÅÂ±×¿Í ±âº»ÀûÀÎ ¸®Ç÷º¼Ç
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__Ŭ·ÎÀú¸¦ »ç¿ëÇØ Ä÷º¼Ç ±¸ÇöÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
04Àå, GoÀÇ ¿À·ù ó¸®
__±â¼úÀû ¿ä±¸ »çÇ×
__¿À·ù ó¸® ¹× Error ÀÎÅÍÆäÀ̽º
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__pkg/errors ÆÐÅ°Áö »ç¿ëÇÏ±â ¹× ¿À·ù ·¡ÇÎ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__log ÆÐÅ°Áö »ç¿ëÇϱâ¿Í ¿À·ùÀÇ ·Î±× ±â·Ï ½Ã±â ÀÌÇØÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__apex¿Í logrus ÆÐÅ°Áö¸¦ È°¿ëÇÑ ±¸Á¶ÈµÈ ·Î±ë
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__context ÆÐÅ°Áö¸¦ È°¿ëÇÑ ·Î±ë
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__ÆÐÅ°Áö ¼öÁØÀÇ Àü¿ª º¯¼ö »ç¿ëÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__Àå±â°£ ½ÇÇàµÇ´Â ÇÁ·Î¼¼½º¿¡ ´ëÇÑ ÆдРÇØ°áÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
05Àå. ³×Æ®¿öÅ© ÇÁ·Î±×·¡¹Ö
__±â¼úÀû ¿ä±¸ »çÇ×
__TCP/IP ¿¡ÄÚ ¼¹ö ¹× Ŭ¶óÀ̾ðÆ® ÀÛ¼ºÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__UDP ¼¹ö ¹× Ŭ¶óÀ̾ðÆ® ÀÛ¼ºÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__µµ¸ÞÀÎ À̸§ È®ÀÎ ÀÛ¾÷Çϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__À¥¼ÒÄÏÀ¸·Î ÀÛ¾÷Çϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__net/rpc¸¦ È°¿ëÇØ ¿ø°Ý ¸Þ¼Òµå(ÇÔ¼ö) È£ÃâÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__net/mailÀ» È°¿ëÇØ À̸ÞÀÏ ÆĽÌÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
06Àå. µ¥ÀÌÅͺ£À̽º¿Í ÀúÀå¼ÒÀÇ ¸ðµç °Í
__MySQL°ú ÇÔ²² database/sql ÆÐÅ°Áö »ç¿ëÇϱâ
__Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__µ¥ÀÌÅͺ£À̽º Æ®·£Àè¼Ç ÀÎÅÍÆäÀ̽º ½ÇÇàÇϱâ
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__SQL¿¡ ´ëÇÑ Ä¿³Ø¼Ç Ç®¸µ, ¼Óµµ Á¦ÇÑ ¹× ŸÀӾƿô
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__Redis¸¦ È°¿ëÇÑ ÀÛ¾÷
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__MongoDB¸¦ È°¿ëÇÑ NoSQL »ç¿ëÇϱâ
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__µ¥ÀÌÅÍ À̽ļºÀ» °í·ÁÇÑ ÀúÀå¼Ò ÀÎÅÍÆäÀ̽º »ý¼ºÇϱâ
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
07Àå. À¥ Ŭ¶óÀ̾ðÆ® ¹× API
__±â¼ú ¿ä±¸ »çÇ×
__http.Client °´Ã¼ÀÇ ÃʱâÈ, ÀúÀå, Àü´ÞÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__REST API¿ë Ŭ¶óÀ̾ðÆ® ÀÛ¼ºÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__º´·Ä ¹× ºñµ¿±â Ŭ¶óÀ̾ðÆ® ¿äû ½ÇÇàÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__OAuth2 Ŭ¶óÀ̾ðÆ® È°¿ë
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__OAuth2 ÅäÅ« ÀúÀå¼Ò ÀÎÅÍÆäÀ̽º ±¸ÇöÇϱâ
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__Ãß°¡µÈ ±â´É ¹× ÇÔ¼ö ±¸¼ºÀ¸·Î Ŭ¶óÀ̾ðÆ® ·¡ÇÎÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__GRPC Ŭ¶óÀ̾ðÆ® ÀÌÇØÇϱâ
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__RPC¸¦ À§ÇÑ twitchtv/twirp »ç¿ëÇϱâ
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
08Àå. GoÀÇ ¾ÖÇø®ÄÉÀÌ¼Ç¿ë ¸¶ÀÌÅ©·Î¼ºñ½º
__±â¼úÀû ¿ä±¸ »çÇ×
__À¥ Çڵ鷯, ¿äû, ResponseWriter ÀνºÅϽº¸¦ È°¿ëÇÑ ÀÛ¾÷
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__»óÅ ÀúÀå Çڵ鷯¿¡ ±¸Á¶Ã¼¿Í Ŭ·ÎÀú È°¿ëÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__Go ±¸Á¶Ã¼¿Í »ç¿ëÀÚ ÀԷ¿¡ ´ëÇÑ ÀÔ·Â °ËÁõ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__·»´õ¸µ ¹× ³»¿ë Çù»ó
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__¹Ìµé¿þ¾î ±¸Çö ¹× »ç¿ëÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__¸®¹ö½º ÇÁ·Ï½Ã ¾ÖÇø®ÄÉÀÌ¼Ç Á¦ÀÛÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__JSON API·Î GRPC ³»º¸³»±â
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
09Àå. Go ÄÚµå Å×½ºÆ®Çϱâ
__±â¼úÀû ¿ä±¸ »çÇ×
__Ç¥ÁØ ¶óÀ̺귯¸®¸¦ »ç¿ëÇÑ ¸ðÀÇ Å×½ºÆ®
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__¸ðÀÇ ÀÎÅÍÆäÀ̽º¸¦ Å×½ºÆ®Çϱâ À§ÇÑ Mockgen ÆÐÅ°Áö »ç¿ëÇϱâ
__Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__Å×ÀÌºí ±â¹Ý Å×½ºÆ®¸¦ »ç¿ëÇØ Àû¿ë ¹üÀ§ Çâ»ó½ÃÅ°±â
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__¼µåÆÄƼ Å×½ºÆ® µµ±¸ »ç¿ëÇϱâ
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__Go¸¦ »ç¿ëÇÑ µ¿ÀÛ Å×½ºÆ®
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
10Àå. º´·Ä ó¸®¿Í µ¿½Ã¼º
__±â¼úÀû ¿ä±¸ »çÇ×
__ä³Î ¹× select ±¸¹® »ç¿ëÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__sync.WaitGroupÀ» È°¿ëÇÑ ºñµ¿±â ÀÛ¾÷ ¼öÇàÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__¿øÀÚÀû ¿¬»ê ¹× ¹ÂÅؽº »ç¿ëÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__context ÆÐÅ°Áö »ç¿ëÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__ä³Î¿¡ ´ëÇÑ »óÅ °ü¸® ½ÇÇàÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__¿öÄ¿ Ç® µðÀÚÀÎ ÆÐÅÏ »ç¿ëÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__¿öÄ¿¸¦ »ç¿ëÇØ ÆÄÀÌÇÁ¶óÀÎ »ý¼ºÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
11Àå. ºÐ»ê ½Ã½ºÅÛ
__±â¼úÀû ¿ä±¸ »çÇ×
__ConsulÀ» È°¿ëÇÑ ¼ºñ½º °Ë»ö »ç¿ëÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__Raft¸¦ È°¿ëÇÑ ±âº»ÀûÀÎ ÄÁ¼¾¼½º ±¸ÇöÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__µµÄ¿¸¦ È°¿ëÇÑ ÄÁÅ×À̳ÊÈ »ç¿ëÇϱâ
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__¿ÀÄɽºÆ®·¹ÀÌ¼Ç ¹× ¹èÆ÷ Àü·«
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__¸ð´ÏÅ͸µ ¾ÖÇø®ÄÉÀ̼Ç
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__ÁöÇ¥ ¼öÁý
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
12Àå. ¹ÝÀÀÇü ÇÁ·Î±×·¡¹Ö°ú µ¥ÀÌÅÍ ½ºÆ®¸²
__±â¼úÀû ¿ä±¸ »çÇ×
__µ¥ÀÌÅÍ È帧 ÇÁ·Î±×·¡¹Ö¿¡ Goflow »ç¿ëÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__Ä«ÇÁÄ«¿Í Sarama »ç¿ëÇϱâ
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__Ä«ÇÁÄ«¸¦ È°¿ëÇÑ ºñµ¿±â producer »ç¿ëÇϱâ
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__Ä«ÇÁÄ«¸¦ Goflow¿¡ ¿¬°áÇϱâ
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__Go·Î GraphQL ¼¹ö ÀÛ¼ºÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
13Àå. ¼¹ö¸®½º ÇÁ·Î±×·¡¹Ö
__Apex¸¦ È°¿ëÇØ ¶÷´Ù¿¡¼ Go ÇÁ·Î±×·¡¹ÖÇϱâ
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__Apex ¼¹ö¸®½º ·Î±ë ¹× ÀÚ·á ¼öÁý
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__Go¿Í ±¸±Û ¾Û ¿£Áø
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__firebase.google.com/go ÆÐÅ°Áö¸¦ È°¿ëÇÑ ÆÄÀ̾À̽º ÀÛ¾÷
____Áغñ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
14Àå. ¼º´É Çâ»ó, ÆÁ ±×¸®°í À¯¿ëÇÑ ±â¹ý
__±â¼úÀû ¿ä±¸ »çÇ×
__pprof µµ±¸ »ç¿ëÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__º¥Ä¡¸¶Å· ¹× º´¸ñ Çö»ó ã±â
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__¸Þ¸ð¸® ÇÒ´ç°ú Èü °ü¸®
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
__fasthttprouter¿Í fasthttp »ç¿ëÇϱâ
____¿¹Á¦ ±¸Çö
____¿¹Á¦ ºÐ¼®
¢Â ÀÌ Ã¥¿¡¼ ´Ù·ç´Â ³»¿ë ¢Â
¡ß ÇÊ¿ä¿¡ µû¸¥ ¼öÁ¤À» ÅëÇÑ ¼µå ÆÄƼ Go ÇÁ·ÎÁ§Æ® È°¿ë ¹æ¹ý
¡ß ÃֽŠ¸ð¹ü »ç·Ê¸¦ »ç¿ëÇÑ Go ÄÚµå ÀÛ¼º ¹æ¹ý
¡ß »õ·Î¿î Go ¸ðµâ ½Ã½ºÅÛÀ» È°¿ëÇÑ ÀÇÁ¸¼º °ü¸®
¡ß ¹é¿£µå ½Ã½ºÅÛ ¶Ç´Â µ¥ºê¿É½º(DevOps)¸¦ ó¸®ÇÒ ¶§ ¹ß»ýÇÏ´Â ÀϹÝÀûÀÎ ¹®Á¦ ÇØ°á ¹æ¹ý
¡ß Go Ç¥ÁØ ¶óÀ̺귯¸® ¹× »ç¿ë ¹æ¹ý
¡ß Go ¾ÖÇø®ÄÉÀ̼ÇÀÇ Å×½ºÆ®, ÇÁ·ÎÆÄÀϸµ, ¼¼ºÎ Æ©´×
¢Â ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ ¢Â
À¥ °³¹ßÀÚ, ÇÁ·Î±×·¡¸Ó, ±â¾÷ Á¦Ç° °³¹ßÀÚ¸¦ ´ë»óÀ¸·Î Çϸç Go ¾ð¾î¿¡ ´ëÇÑ ±âº» Áö½ÄÀÌ ÀÖ´Ù°í °¡Á¤ÇÑ´Ù. ¹é¿£µå ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß °æÇèÀÌ ÀÖ´Ù¸é ÀϺΠ±â¹ýÀÇ µ¿±â¸¦ ÀÌÇØÇÏ´Â µ¥ µµ¿òÀÌ µÇÁö¸¸ °æÇèÀÌ ¾ø´õ¶óµµ ÃæºÐÈ÷ ³»¿ëÀ» ÀÌÇØÇÒ ¼ö ÀÖ´Ù.
ÀÌ Ã¥Àº ÀÌ¹Ì Àͼ÷È÷ ¾Ë°í ÀÖ´ø ³»¿ëÀ» »ó±â½ÃÅ°°Å³ª ¿¹Á¦, Âü°í ÀÚ·á°¡ ÇÊ¿äÇÑ Go °³¹ßÀÚ¸¦ À§ÇÑ ÈǸ¢ÇÑ Âü°í ÀڷḦ Á¦°øÇÑ´Ù. ¿ÀǼҽº ÀúÀå¼Ò¸¦ ÅëÇØ ÀÌ·± ¿¹Á¦µéÀ» ÆÀ°ú ºü¸£°Ô °øÀ¯ÇÒ ¼ö ÀÖ´Ù. Go ÇÁ·Î±×·¡¹Ö¿¡ ´ëÇÑ ÀϹÝÀûÀÎ ¹®Á¦³ª ÀϹÝÀûÀÌÁö ¾ÊÀº ¹®Á¦ÀÇ ºü¸¥ ÇØ´äÀ» ã°í ÀÖ´Ù¸é µµ¿òÀÌ µÉ °ÍÀÌ´Ù.
¢Â ÀÌ Ã¥ÀÇ ±¸¼º ¢Â
1Àå, I/O¿Í ÆÄÀÏ ½Ã½ºÅÛ¿¡¼´Â ÀϹÝÀûÀÎ GoÀÇ I/O ÀÎÅÍÆäÀ̽º¿¡ ´ëÇÑ ³»¿ëÀ» ´Ù·ç¸ç ÆÄÀÏ ½Ã½ºÅÛ °ü·Ã ÀÛ¾÷À» »ìÆ캸¸ç Àӽà ÆÄÀÏ, ÅÛÇø´, CSV ÆÄÀÏÀ» ¼³¸íÇÑ´Ù.
2Àå, ¸í·ÉÁÙ µµ±¸¿¡¼´Â ¸í·ÉÁÙÀ» ÅëÇØ »ç¿ëÀÚ ÀÔ·ÂÀ» ¹Þ´Â ³»¿ëÀ» ´Ù·ç¸ç TOML, YAML, JSON°ú °°Àº ÀϹÝÀûÀÎ µ¥ÀÌÅÍ Å¸ÀÔ Ã³¸®¸¦ »ìÆ캻´Ù.
3Àå, µ¥ÀÌÅÍ º¯È¯ ¹× ±¸¼º¿¡¼´Â Go ÀÎÅÍÆäÀ̽º¿Í µ¥ÀÌÅÍ Å¸ÀÔ °£ÀÇ Çü º¯È¯°ú º¯È¯ ¹æ¹ýÀ» ¼³¸íÇϸç, ÀÎÄÚµù Àü·«°ú Go¸¦ À§ÇÑ ±â´ÉÀû µðÀÚÀÎ ÆÐÅϵµ º¸¿©ÁØ´Ù.
4Àå, GoÀÇ ¿À·ù 󸮿¡¼´Â Go¿¡¼ ¿À·ù¸¦ ó¸®Çϱâ À§ÇÑ Àü·«À» º¸¿©ÁØ´Ù. ¿À·ù Àü´Þ, ó¸®, ·Î±×¸¦ ±â·ÏÇÏ´Â ¹æ¹ýÀ» »ìÆ캻´Ù.
5Àå, ³×Æ®¿öÅ© ÇÁ·Î±×·¡¹Ö¿¡¼´Â UDP, TCP/IP¿Í °°Àº ´Ù¾çÇÑ ³×Æ®¿öÅ· ±âº» ¿ä¼ÒÀÇ »ç¿ë¹ýÀ» º¸¿©ÁØ´Ù. ¶ÇÇÑ ¿ø½Ã À̸ÞÀÏ ¸Þ½ÃÁö¿Í ±âº»ÀûÀÎ ¿ø°Ý ÇÁ·Î½ÃÀú È£Ãâ(RPC)À» »ç¿ëÇØ DNS(Domain Name System)¿¡ ´ëÇÑ ³»¿ëÀ» »ìÆ캻´Ù.
6Àå, µ¥ÀÌÅͺ£À̽º¿Í ÀúÀå¼ÒÀÇ ¸ðµç °Í¿¡¼´Â MySQL°ú °°Àº µ¥ÀÌÅÍ ÀúÀå ½Ã½ºÅÛÀ» »ç¿ëÇϱâ À§ÇÑ ´Ù¾çÇÑ ÀúÀå ¶óÀ̺귯¸®¸¦ ´Ù·é´Ù. ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇØ ¾ÖÇø®ÄÉÀÌ¼Ç ·ÎÁ÷À¸·ÎºÎÅÍ ¶óÀ̺귯¸®¸¦ ºÐ¸®ÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁØ´Ù.
7Àå, À¥ Ŭ¶óÀ̾ðÆ® ¹× API¿¡¼´Â Go HTTP Ŭ¶óÀ̾ðÆ® ÀÎÅÍÆäÀ̽º, REST Ŭ¶óÀ̾ðÆ®, OAuth2 Ŭ¶óÀ̾ðÆ®ÀÇ ±¸Çö ¹× È®ÀåÀ» »ìÆ캸°í gRPC¸¦ ±¸ÇöÇÑ´Ù.
8Àå, GoÀÇ ¾ÖÇø®ÄÉÀÌ¼Ç¿ë ¸¶ÀÌÅ©·Î¼ºñ½º »óÅÂ(state)¸¦ Çڵ鷯(handler)·Î Àü´ÞÇÏ°í, »ç¿ëÀÚ ÀԷ°ú ¹Ìµé¿þ¾îÀÇ À¯È¿¼º °Ë»ç¸¦ À§ÇÑ À¥ Çڵ鷯¸¦ »ìÆ캻´Ù.
9Àå, Go ÄÚµå Å×½ºÆ®Çϱ⿡¼´Â ¸ðÀÇ Å×½ºÆ®(mocking), Å×½ºÆ® Ä¿¹ö¸®Áö(test coverage), ÆÛ¡(fuzzing), µ¿ÀÛ Å×½ºÆ®(behavior testing), À¯¿ëÇÑ Å×½ºÆ® µµ±¸¿¡ ÃÊÁ¡À» ¸ÂÃß°í °ü·Ã ³»¿ëÀ» »ìÆ캻´Ù.
10Àå, º´·Ä ó¸®¿Í µ¿½Ã¼º¿¡¼´Â ä³Î(channel)°ú ºñµ¿±â ÀÛ¾÷, ¿øÀÚ(atomic) °ª, Go ÄÁÅؽºÆ® °´Ã¼, ä³Î »óÅ °ü¸®¿¡ ´ëÇØ Âü°íÇÒ ¼ö ÀÖ´Â ³»¿ëÀ» Á¦°øÇÑ´Ù.
11Àå, ºÐ»ê ½Ã½ºÅÛ¿¡¼´Â ¼ºñ½º °Ë»ö, µµÄ¿(Docker) ÄÁÅ×À̳ÊÈ, ÃøÁ¤ ¹× ¸ð´ÏÅ͸µ, ÄÁÅ×ÀÌ³Ê ¿ÀÄɽºÆ®·¹À̼Ç(orchestration)À» ±¸ÇöÇÑ´Ù. ¶ÇÇÑ 11Àå¿¡¼´Â ´ëºÎºÐ Go ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¹èÆ÷¿Í Á¦Ç°È °úÁ¤À» ´Ù·é´Ù.
12Àå, ¹ÝÀÀÇü ÇÁ·Î±×·¡¹Ö°ú µ¥ÀÌÅÍ ½ºÆ®¸²¿¡¼´Â ¹ÝÀÀÇü ¾ÖÇø®ÄÉÀ̼Ç(reactive programming)°ú µ¥ÀÌÅÍ È帧(dataflow) ¾ÖÇø®ÄÉÀ̼Ç, Ä«ÇÁÄ«(Kafka)¿Í ºÐ»ê ¸Þ½ÃÁö Å¥, GraphQL ¼¹ö¸¦ »ìÆ캻´Ù.
13Àå, ¼¹ö¸®½º ÇÁ·Î±×·¡¹Ö¿¡¼´Â ¼¹ö¸¦ À¯ÁöÇÏÁö ¾Ê°í Go ¾ÖÇø®ÄÉÀ̼ÇÀ» ¹èÆ÷ÇÏ´Â ¹æ¹ýÀ» ´Ù·é´Ù. ¿©±â¿¡´Â ±¸±Û ¾Û ¿£Áø(Google App Engine), ÆÄÀ̾À̽º(Firebase), ¶÷´Ù(Lambda)¿Í ¼¹ö¸®½º(serverless) ȯ°æ¿¡¼ ·Î±ë(logging)À» »ç¿ëÇÏ´Â ¹æ¹ýÀÌ Æ÷ÇԵȴÙ.
14Àå, ¼º´É Çâ»ó, ÆÁ ±×¸®°í À¯¿ëÇÑ ±â¹ý¿¡¼´Â º¥Ä¡¸¶Å·, º´¸ñÇö»ó È®ÀÎÇϱâ, ÃÖÀûÈ, Go ¾ÖÇø®ÄÉÀ̼ÇÀ» À§ÇÑ HTTP ¼º´É Çâ»óÀ» ´Ù·é´Ù.
¡ß ÇÊ¿ä¿¡ µû¸¥ ¼öÁ¤À» ÅëÇÑ ¼µå ÆÄƼ Go ÇÁ·ÎÁ§Æ® È°¿ë ¹æ¹ý
¡ß ÃֽŠ¸ð¹ü »ç·Ê¸¦ »ç¿ëÇÑ Go ÄÚµå ÀÛ¼º ¹æ¹ý
¡ß »õ·Î¿î Go ¸ðµâ ½Ã½ºÅÛÀ» È°¿ëÇÑ ÀÇÁ¸¼º °ü¸®
¡ß ¹é¿£µå ½Ã½ºÅÛ ¶Ç´Â µ¥ºê¿É½º(DevOps)¸¦ ó¸®ÇÒ ¶§ ¹ß»ýÇÏ´Â ÀϹÝÀûÀÎ ¹®Á¦ ÇØ°á ¹æ¹ý
¡ß Go Ç¥ÁØ ¶óÀ̺귯¸® ¹× »ç¿ë ¹æ¹ý
¡ß Go ¾ÖÇø®ÄÉÀ̼ÇÀÇ Å×½ºÆ®, ÇÁ·ÎÆÄÀϸµ, ¼¼ºÎ Æ©´×
¢Â ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ ¢Â
À¥ °³¹ßÀÚ, ÇÁ·Î±×·¡¸Ó, ±â¾÷ Á¦Ç° °³¹ßÀÚ¸¦ ´ë»óÀ¸·Î Çϸç Go ¾ð¾î¿¡ ´ëÇÑ ±âº» Áö½ÄÀÌ ÀÖ´Ù°í °¡Á¤ÇÑ´Ù. ¹é¿£µå ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß °æÇèÀÌ ÀÖ´Ù¸é ÀϺΠ±â¹ýÀÇ µ¿±â¸¦ ÀÌÇØÇÏ´Â µ¥ µµ¿òÀÌ µÇÁö¸¸ °æÇèÀÌ ¾ø´õ¶óµµ ÃæºÐÈ÷ ³»¿ëÀ» ÀÌÇØÇÒ ¼ö ÀÖ´Ù.
ÀÌ Ã¥Àº ÀÌ¹Ì Àͼ÷È÷ ¾Ë°í ÀÖ´ø ³»¿ëÀ» »ó±â½ÃÅ°°Å³ª ¿¹Á¦, Âü°í ÀÚ·á°¡ ÇÊ¿äÇÑ Go °³¹ßÀÚ¸¦ À§ÇÑ ÈǸ¢ÇÑ Âü°í ÀڷḦ Á¦°øÇÑ´Ù. ¿ÀǼҽº ÀúÀå¼Ò¸¦ ÅëÇØ ÀÌ·± ¿¹Á¦µéÀ» ÆÀ°ú ºü¸£°Ô °øÀ¯ÇÒ ¼ö ÀÖ´Ù. Go ÇÁ·Î±×·¡¹Ö¿¡ ´ëÇÑ ÀϹÝÀûÀÎ ¹®Á¦³ª ÀϹÝÀûÀÌÁö ¾ÊÀº ¹®Á¦ÀÇ ºü¸¥ ÇØ´äÀ» ã°í ÀÖ´Ù¸é µµ¿òÀÌ µÉ °ÍÀÌ´Ù.
¢Â ÀÌ Ã¥ÀÇ ±¸¼º ¢Â
1Àå, I/O¿Í ÆÄÀÏ ½Ã½ºÅÛ¿¡¼´Â ÀϹÝÀûÀÎ GoÀÇ I/O ÀÎÅÍÆäÀ̽º¿¡ ´ëÇÑ ³»¿ëÀ» ´Ù·ç¸ç ÆÄÀÏ ½Ã½ºÅÛ °ü·Ã ÀÛ¾÷À» »ìÆ캸¸ç Àӽà ÆÄÀÏ, ÅÛÇø´, CSV ÆÄÀÏÀ» ¼³¸íÇÑ´Ù.
2Àå, ¸í·ÉÁÙ µµ±¸¿¡¼´Â ¸í·ÉÁÙÀ» ÅëÇØ »ç¿ëÀÚ ÀÔ·ÂÀ» ¹Þ´Â ³»¿ëÀ» ´Ù·ç¸ç TOML, YAML, JSON°ú °°Àº ÀϹÝÀûÀÎ µ¥ÀÌÅÍ Å¸ÀÔ Ã³¸®¸¦ »ìÆ캻´Ù.
3Àå, µ¥ÀÌÅÍ º¯È¯ ¹× ±¸¼º¿¡¼´Â Go ÀÎÅÍÆäÀ̽º¿Í µ¥ÀÌÅÍ Å¸ÀÔ °£ÀÇ Çü º¯È¯°ú º¯È¯ ¹æ¹ýÀ» ¼³¸íÇϸç, ÀÎÄÚµù Àü·«°ú Go¸¦ À§ÇÑ ±â´ÉÀû µðÀÚÀÎ ÆÐÅϵµ º¸¿©ÁØ´Ù.
4Àå, GoÀÇ ¿À·ù 󸮿¡¼´Â Go¿¡¼ ¿À·ù¸¦ ó¸®Çϱâ À§ÇÑ Àü·«À» º¸¿©ÁØ´Ù. ¿À·ù Àü´Þ, ó¸®, ·Î±×¸¦ ±â·ÏÇÏ´Â ¹æ¹ýÀ» »ìÆ캻´Ù.
5Àå, ³×Æ®¿öÅ© ÇÁ·Î±×·¡¹Ö¿¡¼´Â UDP, TCP/IP¿Í °°Àº ´Ù¾çÇÑ ³×Æ®¿öÅ· ±âº» ¿ä¼ÒÀÇ »ç¿ë¹ýÀ» º¸¿©ÁØ´Ù. ¶ÇÇÑ ¿ø½Ã À̸ÞÀÏ ¸Þ½ÃÁö¿Í ±âº»ÀûÀÎ ¿ø°Ý ÇÁ·Î½ÃÀú È£Ãâ(RPC)À» »ç¿ëÇØ DNS(Domain Name System)¿¡ ´ëÇÑ ³»¿ëÀ» »ìÆ캻´Ù.
6Àå, µ¥ÀÌÅͺ£À̽º¿Í ÀúÀå¼ÒÀÇ ¸ðµç °Í¿¡¼´Â MySQL°ú °°Àº µ¥ÀÌÅÍ ÀúÀå ½Ã½ºÅÛÀ» »ç¿ëÇϱâ À§ÇÑ ´Ù¾çÇÑ ÀúÀå ¶óÀ̺귯¸®¸¦ ´Ù·é´Ù. ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇØ ¾ÖÇø®ÄÉÀÌ¼Ç ·ÎÁ÷À¸·ÎºÎÅÍ ¶óÀ̺귯¸®¸¦ ºÐ¸®ÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁØ´Ù.
7Àå, À¥ Ŭ¶óÀ̾ðÆ® ¹× API¿¡¼´Â Go HTTP Ŭ¶óÀ̾ðÆ® ÀÎÅÍÆäÀ̽º, REST Ŭ¶óÀ̾ðÆ®, OAuth2 Ŭ¶óÀ̾ðÆ®ÀÇ ±¸Çö ¹× È®ÀåÀ» »ìÆ캸°í gRPC¸¦ ±¸ÇöÇÑ´Ù.
8Àå, GoÀÇ ¾ÖÇø®ÄÉÀÌ¼Ç¿ë ¸¶ÀÌÅ©·Î¼ºñ½º »óÅÂ(state)¸¦ Çڵ鷯(handler)·Î Àü´ÞÇÏ°í, »ç¿ëÀÚ ÀԷ°ú ¹Ìµé¿þ¾îÀÇ À¯È¿¼º °Ë»ç¸¦ À§ÇÑ À¥ Çڵ鷯¸¦ »ìÆ캻´Ù.
9Àå, Go ÄÚµå Å×½ºÆ®Çϱ⿡¼´Â ¸ðÀÇ Å×½ºÆ®(mocking), Å×½ºÆ® Ä¿¹ö¸®Áö(test coverage), ÆÛ¡(fuzzing), µ¿ÀÛ Å×½ºÆ®(behavior testing), À¯¿ëÇÑ Å×½ºÆ® µµ±¸¿¡ ÃÊÁ¡À» ¸ÂÃß°í °ü·Ã ³»¿ëÀ» »ìÆ캻´Ù.
10Àå, º´·Ä ó¸®¿Í µ¿½Ã¼º¿¡¼´Â ä³Î(channel)°ú ºñµ¿±â ÀÛ¾÷, ¿øÀÚ(atomic) °ª, Go ÄÁÅؽºÆ® °´Ã¼, ä³Î »óÅ °ü¸®¿¡ ´ëÇØ Âü°íÇÒ ¼ö ÀÖ´Â ³»¿ëÀ» Á¦°øÇÑ´Ù.
11Àå, ºÐ»ê ½Ã½ºÅÛ¿¡¼´Â ¼ºñ½º °Ë»ö, µµÄ¿(Docker) ÄÁÅ×À̳ÊÈ, ÃøÁ¤ ¹× ¸ð´ÏÅ͸µ, ÄÁÅ×ÀÌ³Ê ¿ÀÄɽºÆ®·¹À̼Ç(orchestration)À» ±¸ÇöÇÑ´Ù. ¶ÇÇÑ 11Àå¿¡¼´Â ´ëºÎºÐ Go ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¹èÆ÷¿Í Á¦Ç°È °úÁ¤À» ´Ù·é´Ù.
12Àå, ¹ÝÀÀÇü ÇÁ·Î±×·¡¹Ö°ú µ¥ÀÌÅÍ ½ºÆ®¸²¿¡¼´Â ¹ÝÀÀÇü ¾ÖÇø®ÄÉÀ̼Ç(reactive programming)°ú µ¥ÀÌÅÍ È帧(dataflow) ¾ÖÇø®ÄÉÀ̼Ç, Ä«ÇÁÄ«(Kafka)¿Í ºÐ»ê ¸Þ½ÃÁö Å¥, GraphQL ¼¹ö¸¦ »ìÆ캻´Ù.
13Àå, ¼¹ö¸®½º ÇÁ·Î±×·¡¹Ö¿¡¼´Â ¼¹ö¸¦ À¯ÁöÇÏÁö ¾Ê°í Go ¾ÖÇø®ÄÉÀ̼ÇÀ» ¹èÆ÷ÇÏ´Â ¹æ¹ýÀ» ´Ù·é´Ù. ¿©±â¿¡´Â ±¸±Û ¾Û ¿£Áø(Google App Engine), ÆÄÀ̾À̽º(Firebase), ¶÷´Ù(Lambda)¿Í ¼¹ö¸®½º(serverless) ȯ°æ¿¡¼ ·Î±ë(logging)À» »ç¿ëÇÏ´Â ¹æ¹ýÀÌ Æ÷ÇԵȴÙ.
14Àå, ¼º´É Çâ»ó, ÆÁ ±×¸®°í À¯¿ëÇÑ ±â¹ý¿¡¼´Â º¥Ä¡¸¶Å·, º´¸ñÇö»ó È®ÀÎÇϱâ, ÃÖÀûÈ, Go ¾ÖÇø®ÄÉÀ̼ÇÀ» À§ÇÑ HTTP ¼º´É Çâ»óÀ» ´Ù·é´Ù.