Ŭ¶ó¿ìµå ³×ÀÌƼºê Go
µ¿¾çºÏ½º | 2023-05-03
eBook
2023-08-02
´ëÃ⿹Á¤ÀÏ2024-09-10 º¸À¯ 1 ´ëÃâ 1 ¿¹¾à 0
ezPDF | ±³º¸ÀüÀÚÃ¥
Ã¥ Á¤º¸
µµÄ¿(Docker), Äí¹ö³×Ƽ½º(Kubernetes), ÇÁ·Î¸ÞÅ׿콺(Prometheus) °°Àº Ŭ¶ó¿ìµå ³×ÀÌƼºê ±â¼úÀÇ °øÅëÁ¡Àº ¹«¾ùÀϱî¿ä? ¹Ù·Î Go¶ó´Â ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î ¸¸µé¾îÁ³´Ù´Â °ÍÀÔ´Ï´Ù. ÀÌ Ã¥Àº GoÀÇ ÀåÁ¡À» È°¿ëÇØ ¿¹ÃøÇÒ ¼ö ¾ø´Â ȯ°æ¿¡¼µµ È®Àå °¡´ÉÇÏ¸é¼ Åº·ÂÀûÀΠŬ¶ó¿ìµå ³×ÀÌƼºê ¼ºñ½º¸¦ °³¹ßÇÏ´Â ¹æ¹ýÀ» ¾Ë·ÁÁÝ´Ï´Ù. ƯÈ÷ Go ÇÁ·Î±×·¡¹Ö ¾ð¾î°¡ Áö´Ñ ·Î ·¹º§ÀÇ Æ¯Â¡, ¹Ìµé·¹º§ÀÇ µðÀÚÀÎ ÆÐÅÏ, ÇÏÀÌ·¹º§ ¾ÆÅ°ÅØó °í·Á »çÇ× µî¿¡ ¸ÂÃá ¾ÖÇø®ÄÉÀ̼ÇÀÇ ±¸Á¶°ú ±¸¼ºÀ» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÌ Ã¥¿¡¼´Â Go¸¦ ÀÌ¿ëÇØ °£´ÜÇÏÁö¸¸ ¸ðµç ±â´ÉÀ» °®Ãá ºÐ»ê Å°-°ª ÀúÀå¼Ò¸¦ ±¸ÃàÇÕ´Ï´Ù. ÀúÀå¼Ò¸¦ ±¸ÃàÇÏ¸é¼ Áß±Þ¿¡¼ °í±Þ °³¹ßÀÚ±îÁö Âü°íÇÒ ¼ö Àִ Ŭ¶ó¿ìµå ³×ÀÌƼºê °ü¸®¿Í ¹èÆ÷ ¹®Á¦¸¦ ÇØ°áÇÏ´Â ¸ð¹ü »ç·Ê¸¦ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×¸®°í ¿Ö Ŭ¶ó¿ìµå ³×ÀÌƼºê ¼ºñ½º¸¦ °³¹ßÇÏ´Â ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î Go¸¦ äÅÃÇß´ÂÁö¸¦ ÀÚ¿¬½º·´°Ô ¾Ë ¼ö ÀÖ½À´Ï´Ù.
ÀúÀÚ Á¤º¸
¸ÅÆ© A. ƼƮ¹«½º( ÀúÀÚ)
ºÐÀÚ »ý¹°ÇÐ ÇÐÀ§¸¦ ÃëµæÇÑ °æÇèÀÌ ÀÖ´Â ¼ÒÇÁÆ®¿þ¾î °³¹ß ¾÷°èÀÇ Àü¹®°¡ÀÔ´Ï´Ù. Ŭ¶ó¿ìµå ³×ÀÌƼºê ±â¼ú°ú Go ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÇ ¾ó¸® ¾î´äÅÍÀÌÀÚ ¿ËÈ£ÀÚÀ̸ç, ÇÁ·Î´ö¼Ç Ç°Áú ½Ã½ºÅÛ ±¸Ãà¿¡ ÇÊ¿äÇÑ »çÇ׿¡ °üÇØ ¿Á¤ÀûÀÎ °ü½ÉÀÌ ÀÖ½À´Ï´Ù. ºÐ»ê ½Ã½ºÅÛÀ» °üÂûÇÏ°í Á¶Á¤ÇÏ´Â Àü·«À» ±¸ÇöÇÏ´Â µ¥ ¸¹Àº ½Ã°£À» º¸³»´Â ÁßÀÔ´Ï´Ù.
³ë½ÂÇå( ¿ªÀÚ)
¸ñÂ÷
Part 1 Ŭ¶ó¿ìµå ³×ÀÌƼºê·ÎÀÇ º¯È
1Àå Ŭ¶ó¿ìµå ³×ÀÌƼºê ¾ÖÇø®ÄÉÀ̼ÇÀ̶õ?
1.1 Áö±Ý±îÁöÀÇ À̾߱â
1.2 Ŭ¶ó¿ìµå ³×ÀÌƼºê¶õ ¹«¾ùÀΰ¡?
1.2.1 È®À强
1.2.2 ´À½¼ÇÑ °áÇÕ
1.2.3 ź·Â¼º
1.2.4 °ü¸® ¿ëÀ̼º
1.2.5 °üÂû °¡´É¼º
1.3 Ŭ¶ó¿ìµå ³×ÀÌƼºê´Â ¿Ö Áß¿äÇÑ°¡?
¿ä¾à
2Àå ¿Ö Go°¡ Ŭ¶ó¿ìµå ³×ÀÌƼºê ¼¼»óÀ» Áö¹èÇϴ°¡?
2.1 Go¸¦ ¸¸µé°Ô µÈ °è±â
2.2 Ŭ¶ó¿ìµå ³×ÀÌƼºê ¼¼°è¸¦ À§ÇÑ ±â´É
2.2.1 ÄÄÆ÷Áö¼Ç°ú ±¸Á¶ ŸÀÌÇÎ
2.2.2 ÀÌÇØÇϱ⠽¬¿î ¾ð¾î
2.2.3 CSP ½ºÅ¸ÀÏÀÇ µ¿½Ã¼º
2.2.4 ºü¸¥ ºôµå ¼Óµµ
2.2.5 ¾ð¾îÀÇ ¾ÈÁ¤¼º
2.2.6 ¸Þ¸ð¸® º¸¾È
2.2.7 ¼º´É
2.2.8 Á¤Àû ¸µÅ©
2.2.9 Á¤Àû ŸÀÌÇÎ
¿ä¾à
Part 2 Ŭ¶ó¿ìµå ³×ÀÌƼºê GoÀÇ ±¸¼º
3Àå Go ÇÁ·Î±×·¡¹Ö ±âÃÊ
3.1 ±âº» µ¥ÀÌÅÍ Å¸ÀÔ
3.1.1 ºÒ¸°
3.1.2 °£´ÜÇÑ ¼ýÀÚ
3.1.3 º¹¼Ò¼ö
3.1.4 ¹®ÀÚ¿
3.2 º¯¼ö
3.2.1 ´ÜÃà º¯¼ö ¼±¾ð
3.2.2 Á¦·Î°ª
3.2.3 °ø¹é ½Äº°ÀÚ
3.2.4 »ó¼ö
3.3 ÄÁÅ×ÀÌ³Ê Å¸ÀÔ: ¹è¿, ½½¶óÀ̽º, ¸Ê
3.3.1 ¹è¿
3.3.2 ½½¶óÀ̽º
3.3.3 ¸Ê
3.4 Æ÷ÀÎÅÍ
3.5 Á¦¾î ±¸Á¶
3.5.1 forÀÇ Àç¹Ì
3.5.2 if ±¸¹®
3.5.3 switch ±¸¹®
3.6 ¿¡·¯ Á¦¾î
3.6.1 ¿¡·¯ Á¤ÀÇÇϱâ
3.7 ÇÔ¼ö¿¡ Àç¹Ì¸¦ ´õÇϱâ: °¡º¯ÀÎÀÚ¿Í Å¬·ÎÀú
3.7.1 ÇÔ¼ö
3.7.2 °¡º¯ÀÎÀÚ ÇÔ¼ö
3.7.3 À͸í ÇÔ¼ö¿Í Ŭ·ÎÀú
3.8 ±¸Á¶Ã¼, ¸Þ¼µå, ÀÎÅÍÆäÀ̽º
3.8.1 ±¸Á¶Ã¼
3.8.2 ¸Þ¼µå
3.8.3 ÀÎÅÍÆäÀ̽º
3.8.4 ŸÀÔ ÀÓº£µùÀ» ÅëÇÑ ÄÄÆ÷Áö¼Ç
3.9 ÀåÁ¡: µ¿½Ã¼º
3.9.1 °í·çƾ
3.9.2 ä³Î
3.9.3 Select
¿ä¾à
4Àå Ŭ¶ó¿ìµå ³×ÀÌƼºê ÆÐÅÏ
4.1 Context ÆÐÅ°Áö
4.1.1 Context°¡ ÇÏ´Â ÀÏ
4.1.2 Context »ý¼º
4.1.3 Context Á¾·á ½ÃÁ¡°ú ŸÀӾƿô Á¤ÀÇ
4.1.4 ¿äû ¹üÀ§ °ªÀÇ Á¤ÀÇ
4.1.5 Context »ç¿ëÇϱâ
4.2 ÀÌ ÀåÀÇ ±¸¼º
4.3 ¾ÈÁ¤¼º ÆÐÅÏ
4.3.1 ¼Å¶ ºê·¹ÀÌÄ¿
4.3.2 µð¹Ù¿î½º
4.3.3 Àç½Ãµµ
4.3.4 ½º·ÎƲ
4.3.5 ŸÀӾƿô
4.4 µ¿½Ã¼º ÆÐÅÏ
4.4.1 ÆÒÀÎ
4.4.2 ÆҾƿô
4.4.3 ǻó
4.4.4 »þµù
¿ä¾à
5Àå Ŭ¶ó¿ìµå ³×ÀÌƼºê ¼ºñ½º ±¸Ãà
5.1 ¼ºñ½º¸¦ ¸¸µé¾îº¾½Ã´Ù
5.1.1 Å°-°ª ÀúÀå¼Ò¶õ?
5.2 ¿ä±¸»çÇ×
5.2.1 ¸èµî¼ºÀ̶õ ¹«¾ùÀÌ°í ¿Ö Áß¿äÇÒ±î?
5.2.2 ±Ã±ØÀûÀÎ ¸ñÇ¥
5.3 Á¦³Ê·¹ÀÌ¼Ç 0: ÇÙ½É ±â´É
5.3.1 ¾ÆÁÖ °£´ÜÇÑ API
5.4 Á¦³Ê·¹ÀÌ¼Ç 1: ¸ð³î¸®½º
5.4.1 net/http ÆÐÅ°Áö¸¦ ÀÌ¿ëÇÑ HTTP ¼¹ö ±¸¼º
5.4.2 gorilla/mux ÆÐÅ°Áö¸¦ ÀÌ¿ëÇÑ HTTP ¼¹ö ±¸¼º
5.4.3 RESTful ¼ºñ½º ¸¸µé±â
5.4.4 µ¿½Ã¼º À̽´·ÎºÎÅÍ ¾ÈÀüÇÑ µ¥ÀÌÅÍ ±¸Á¶ ¸¸µé±â
5.5 Á¦³Ê·¹ÀÌ¼Ç 2: ¸®¼Ò½º »óÅ À¯Áö
5.5.1 Æ®·£Àè¼Ç ·Î±×¶õ ¹«¾ùÀϱî?
5.5.2 Æ®·£Àè¼Ç ·Î±× ÆÄÀÏ¿¡ »óÅ ÀúÀåÇϱâ
5.5.3 ¿ÜºÎ µ¥ÀÌÅͺ£À̽º¿¡ »óÅ ÀúÀåÇϱâ
5.6 Á¦³Ê·¹ÀÌ¼Ç 3: Àü¼Û °èÃþ º¸¾È ±¸Çö
5.6.1 Àü¼Û °èÃþ º¸¾È
5.6.2 »ç¼³Å°¿Í ÀÎÁõ¼ ÆÄÀÏ
5.6.3 À¥ ¼ºñ½º¸¦ HTTPS·Î º¸È£Çϱâ
5.6.4 Àü¼Û °èÃþ ¿ä¾à
5.7 Å°-°ª ÀúÀå¼ÒÀÇ ÄÁÅ×À̳ÊÈ
5.7.1 »ýÃʺ¸¸¦ À§ÇÑ µµÄ¿ ±âÃÊ
5.7.2 Å°-°ª ÀúÀå¼Ò ÄÁÅ×ÀÌ³Ê ¸¸µé±â
5.7.3 ÄÁÅ×ÀÌ³Ê µ¥ÀÌÅÍÀÇ ¿ÜºÎÈ
¿ä¾à
Part 3 Ŭ¶ó¿ìµå ³×ÀÌƼºê Ư¡
6Àå ½ÅÀμº
6.1 Ŭ¶ó¿ìµå ³×ÀÌƼºêÀÇ ÇÙ½ÉÀº ¹«¾ùÀΰ¡?
6.2 °¡Àå Áß¿äÇÑ °ÍÀº ½ÅÀμºÀÌ´Ù
6.3 ½ÅÀμºÀº ¹«¾ùÀÌ°í ¿Ö Áß¿äÇÑ°¡?
6.3.1 ½ÅÀμº: ´õ ÀÌ»ó ¿î¿µ¸¸À» À§ÇÑ °ÍÀÌ ¾Æ´Ï´Ù
6.4 ½ÅÀμº È®º¸
6.4.1 °áÇÔ ¿¹¹æ
6.4.2 °áÇÔ °¨³»
6.4.3 °áÇÔ Á¦°Å
6.4.4 °áÇÔ ¿¹Ãø
6.5 The Twelve-Factor App°úÀÇ Áö¼ÓÀûÀÎ °ü·Ã¼º
6.5.1 Äڵ庣À̽º
6.5.2 ÀÇÁ¸¼º
6.5.3 ¼³Á¤
6.5.4 ¹é¿£µå ¼ºñ½º
6.5.5 ºôµå, ¸±¸®Áî, ½ÇÇà
6.5.6 ÇÁ·Î¼¼½º
6.5.7 µ¥ÀÌÅÍ °Ý¸®
6.5.8 È®À强
6.5.9 Æó±â °¡´É¼º
6.5.10 °³¹ß/ÇÁ·Î´ö¼Ç ȯ°æ ÀÏÄ¡
6.5.11 ·Î±×
6.5.12 °ü¸® ÇÁ·Î¼¼½º
¿ä¾à
7Àå È®À强
7.1 È®À强À̶õ ¹«¾ùÀϱî?
7.1.1 ´Ù¾çÇÑ ÇüÅÂÀÇ È®Àå
7.2 4°¡Áö ´ëÇ¥ÀûÀÎ º´¸ñ
7.3 ½ºÅ×ÀÌÆ®¿Í ½ºÅ×ÀÌÆ®¸®½º
7.3.1 ¾ÖÇø®ÄÉÀÌ¼Ç ½ºÅ×ÀÌÆ®¿Í ¸®¼Ò½º ½ºÅ×ÀÌÆ®ÀÇ Â÷ÀÌ
7.3.2 ½ºÅ×ÀÌÆ®¸®½ºÀÇ ÀåÁ¡
7.4 Áö¿¬µÈ È®Àå: È¿À²¼º
7.4.1 LRU ij½Ã¸¦ ÀÌ¿ëÇÑ È¿À²Àû ij½Ì
7.4.2 È¿À²ÀûÀÎ µ¿±âÈ
7.4.3 ¸Þ¸ð¸® ¸¯
7.4.4 È¿À²¼ºÀ̶õ
7.5 ¼ºñ½º ¾ÆÅ°ÅØó
7.5.1 ¸ð³î¸®½º ½Ã½ºÅÛ ¾ÆÅ°ÅØó
7.5.2 ¸¶ÀÌÅ©·Î¼ºñ½º ½Ã½ºÅÛ ¾ÆÅ°ÅØó
7.5.3 ¼¹ö¸®½º ¾ÆÅ°ÅØó
¿ä¾à
8Àå ´À½¼ÇÑ °áÇÕ
8.1 °ÇÑ °áÇÕ
8.1.1 °ÇÑ °áÇÕÀÇ ´Ù¾çÇÑ ÇüÅÂ
8.2 ¼ºñ½º °£ÀÇ Åë½Å
8.3 ¿äû-ÀÀ´ä ¸Þ½Ã¡
8.3.1 ÀϹÝÀûÀÎ ¿äû-ÀÀ´ä ±¸Çö
8.3.2 net/http ÆÐÅ°Áö¸¦ ÀÌ¿ëÇÑ HTTP ¿äû ¹ßÇà
8.3.3 gRPC¸¦ ÀÌ¿ëÇÑ ¿ø°Ý ÇÁ·Î½ÃÀú È£Ãâ
8.4 Ç÷¯±×ÀÎÀ» ÀÌ¿ëÇÑ ·ÎÄà ¸®¼Ò½ºÀÇ ´À½¼ÇÑ °áÇÕ
8.4.1 Ç÷¯±×ÀÎ ÆÐÅ°Áö¸¦ ÅëÇÑ ÇÁ·Î¼¼½º ³»ºÎ Ç÷¯±×ÀÎ
8.4.2 RPC¸¦ ÀÌ¿ëÇÑ ÇؽÃÄÚÇÁÀÇ Go Ç÷¯±×ÀÎ ½Ã½ºÅÛ
8.5 À°°¢Çü ¾ÆÅ°ÅØó
8.5.1 ¾ÆÅ°ÅØó
8.5.2 À°°¢Çü ¼ºñ½º ±¸Çö
¿ä¾à
9Àå ź·Â¼º
9.1 ¿Ö ź·Â¼ºÀÌ ¹®Á¦Àΰ¡
9.2 ½Ã½ºÅÛÀÌ ½ÇÆÐÇÑ´Ù´Â Àǹ̴ ¹«¾ùÀΰ¡?
9.2.1 ź·Â¼ºÀ» ³ôÀÌ´Â ¿©·¯ °¡Áö ¹æ¹ý
9.3 ¿¬¼âÀûÀÎ ½ÇÆÐ
9.3.1 °úºÎÇÏ ¹æÁö
9.4 ´Ù½Ã ½ÃµµÇϱâ: ¿äû Àç½Ãµµ
9.4.1 ¹é¿ÀÇÁ ¾Ë°í¸®Áò
9.4.2 ¼Å¶ ºê·¹ÀÌÅ·
9.4.3 ŸÀӾƿô
9.4.4 ¸èµî¹ýÄ¢
9.5 ¼ºñ½º Áߺ¹¼º
9.5.1 Áߺ¹¼ºÀ» À§ÇÑ ¼³°è
9.5.2 ¿ÀÅ佺ÄÉÀϸµ
9.6 °Ç°ÇÑ Çコ üũ
9.6.1 ÀνºÅϽº°¡ ¡®°Ç°ÇÏ´Ù¡¯´Â °ÍÀº ¾î¶² ÀǹÌÀϱî?
9.6.2 Çコ üũÀÇ ¼¼ °¡Áö ŸÀÔ
9.6.3 ÆäÀÏ ¿ÀÇÂ
¿ä¾à
10Àå °ü¸® ¿ëÀ̼º
10.1 °ü¸® ¿ëÀ̼ºÀº ¹«¾ùÀÌ°í ¿Ö ½Å°æ ½á¾ß ÇÒ±î¿ä?
10.2 ¾ÖÇø®ÄÉÀÌ¼Ç ¼³Á¤Çϱâ
10.2.1 ¼³Á¤ ¸ð¹ü »ç·Ê
10.2.2 ȯ°æ º¯¼ö¸¦ ÀÌ¿ëÇÑ ¼³Á¤
10.2.3 Ä¿¸Çµå¶óÀÎ ÀÎÀÚ¸¦ ÀÌ¿ëÇÑ ¼³Á¤
10.2.4 ÆÄÀÏÀ» ÀÌ¿ëÇÑ ¼³Á¤
10.2.5 Viper: ¼³Á¤ ÆÐÅ°Áö¸¦ À§ÇÑ ½ºÀ§½º ±º¿ë Ä®
10.3 ÇÇó Ç÷¡±×¸¦ ÀÌ¿ëÇÑ ±â´É °ü¸®
10.3.1 ±â´É Ç÷¡±×ÀÇ ÁøÈ
10.3.2 Á¦³Ê·¹ÀÌ¼Ç 0: Ãʱ⠱¸Çö
10.3.3 Á¦³Ê·¹ÀÌ¼Ç 1: ÇϵåÄÚµùµÈ ÇÇó Ç÷¡±×
10.3.4 Á¦³Ê·¹ÀÌ¼Ç 2: ¼³Á¤ÇÒ ¼ö ÀÖ´Â Ç÷¡±×
10.3.5 Á¦³Ê·¹ÀÌ¼Ç 3: µ¿ÀûÀÎ ÇÇó Ç÷¡±×
¿ä¾à
11Àå °üÂû °¡´É¼º
11.1 °üÂû °¡´É¼ºÀ̶õ ¹«¾ùÀΰ¡?
11.1.1 °üÂû °¡´É¼ºÀº ¿Ö ÇÊ¿äÇÑ°¡?
11.1.2 °üÂû °¡´É¼ºÀº ¡®ÀüÅëÀûÀΡ¯ ¸ð´ÏÅ͸µ°ú ¾î¶»°Ô ´Ù¸¥°¡?
11.2 °üÂû °¡´É¼ºÀÇ ¼¼ °¡Áö ±âµÕ
11.3 OpenTelemetry
11.3.1 OpenTelemetry ÄÄÆ÷³ÍÆ®
11.4 Æ®·¹À̽Ì
11.4.1 Æ®·¹À̽ÌÀÇ °³³ä
11.4.2 OpenTelemetry¸¦ ÀÌ¿ëÇÑ Æ®·¹À̽Ì
11.4.3 ¸ðµÎ Çϳª·Î ÇÕÄ¡±â: Æ®·¹À̽Ì
11.5 ÁöÇ¥
11.5.1 Ǫ½Ã, Ç® ¹æ½ÄÀÇ ÁöÇ¥ ¼öÁý ºñ±³
11.5.2 OpenTelemetryÀÇ ÁöÇ¥
11.5.3 ¸ðµÎ Çϳª·Î ÇÕÄ¡±â: ÁöÇ¥
11.6 ·Î±ë
11.6.1 ·Î±ë ¸ð¹ü »ç·Ê
11.6.2 Go Ç¥ÁØ ·Î±× ÆÐÅ°Áö¸¦ ÀÌ¿ëÇÑ ·Î±ë
11.6.3 Zap ·Î±ë ÆÐÅ°Áö
¿ä¾à
ÃßõÇØ¿ä
- µî·ÏµÈ Ãßõ±ÛÀÌ ¾ø½À´Ï´Ù.
¸ÅÆ© A. ƼƮ¹«½ºÀÇ ´Ù¸¥ Ã¥
ÀúÀÚÀÇ ´Ù¸¥ Ã¥ Á¤º¸°¡ ¾ø½À´Ï´Ù.