¡á °í±Þ Å×½ºÆ® ¹æ¹ý·ÐÀ» ¹ÙÅÁÀ¸·Î ¾ÖÇø®ÄÉÀÌ¼Ç Å×½ºÆ®
¡á ¾ÖÇø®ÄÉÀÌ¼Ç ±¸Á¶, ÀÎÅÍÆäÀ̽º µðÀÚÀÎ ¹× Åø¸µ
¡á ¼µåÆÄƼ ÆÐŰÁö¿Í ÀÇÁ¸¼º, º¥´õ¸µ Àü·« ¼ö¸³
¡á Ä÷º¼Ç°ú °°Àº µ¥ÀÌÅ͸¦ ´Ù·ç´Â ¹æ¹ý
¡á ¿¡·¯ ó¸® ¹× ó¸®µÈ ¿¡·¯¸¦ È£Ãâ ÇÔ¼ö·Î Àü´ÞÇÏ´Â ¹æ¹ý
¡á À̽ļº Çâ»ó°ú Å×½ºÆ®¸¦ À§ÇØ ÀÎÅÍÆäÀ̽º·Î ÀÇÁ¸¼º ·¡ÇÎ
¡á GoÀÇ ¹ÝÀÀÇü ÇÁ·Î±×·¡¹Ö ¹× µðÀÚÀÎ ÆÐÅÏ
À¥ °³¹ßÀÚ, ÇÁ·Î±×·¡¸Ó, ¿£ÅÍÇÁ¶óÀÌÁî °³¹ßÀÚ¸¦ ´ë»óÀ¸·Î ÇÑ´Ù. Go ¾ð¾î¿¡ ´ëÇÑ ±âº»ÀûÀÎ Áö½ÄÀ» °¡Á³´Ù°í °¡Á¤Çϸç, ¹é¿£µå ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß °æÇèÀÌ ¹Ýµå½Ã ÇÊ¿äÇÑ °ÍÀº ...
´õº¸±â
¡á °í±Þ Å×½ºÆ® ¹æ¹ý·ÐÀ» ¹ÙÅÁÀ¸·Î ¾ÖÇø®ÄÉÀÌ¼Ç Å×½ºÆ®
¡á ¾ÖÇø®ÄÉÀÌ¼Ç ±¸Á¶, ÀÎÅÍÆäÀ̽º µðÀÚÀÎ ¹× Åø¸µ
¡á ¼µåÆÄƼ ÆÐŰÁö¿Í ÀÇÁ¸¼º, º¥´õ¸µ Àü·« ¼ö¸³
¡á Ä÷º¼Ç°ú °°Àº µ¥ÀÌÅ͸¦ ´Ù·ç´Â ¹æ¹ý
¡á ¿¡·¯ ó¸® ¹× ó¸®µÈ ¿¡·¯¸¦ È£Ãâ ÇÔ¼ö·Î Àü´ÞÇÏ´Â ¹æ¹ý
¡á À̽ļº Çâ»ó°ú Å×½ºÆ®¸¦ À§ÇØ ÀÎÅÍÆäÀ̽º·Î ÀÇÁ¸¼º ·¡ÇÎ
¡á GoÀÇ ¹ÝÀÀÇü ÇÁ·Î±×·¡¹Ö ¹× µðÀÚÀÎ ÆÐÅÏ
À¥ °³¹ßÀÚ, ÇÁ·Î±×·¡¸Ó, ¿£ÅÍÇÁ¶óÀÌÁî °³¹ßÀÚ¸¦ ´ë»óÀ¸·Î ÇÑ´Ù. Go ¾ð¾î¿¡ ´ëÇÑ ±âº»ÀûÀÎ Áö½ÄÀ» °¡Á³´Ù°í °¡Á¤Çϸç, ¹é¿£µå ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß °æÇèÀÌ ¹Ýµå½Ã ÇÊ¿äÇÑ °ÍÀº ¾Æ´ÏÁö¸¸ °æÇèÀÌ ÀÖ´Ù¸é ·¹½ÃÇÇ ¹è°æÀ» ÀÌÇØÇÏ´Â µ¥ µµ¿òÀÌ µÈ´Ù.
¿¹Á¦³ª Âü°í »çÇ×À» ã´Â ´É¼÷ÇÑ Go ¾ð¾î °³¹ßÀÚ¿¡°Ôµµ ÁÁÀº Âü°í¼°¡ µÈ´Ù. ¿ÀǼҽº ÄÚµå ÀúÀå¼Ò¸¦ Ȱ¿ëÇϸé ÀÌ Ã¥ÀÇ ¿¹Á¦µéÀ» ºü¸£°Ô ÀÚ½ÅÀÇ ¼Ò½º Äڵ忡 Àû¿ëÇÒ ¼ö ÀÖ´Ù.
1Àå, 'I/O ¹× ÆÄÀϽýºÅÛ'¿¡¼´Â ÀϹÝÀûÀÎ I/O ÀÎÅÍÆäÀ̽º¸¦ ´Ù·ç°í ÆÄÀϽýºÅÛ ÀÛ¾÷¿¡ ´ëÇØ ¼³¸íÇÑ´Ù. Àӽà ÆÄÀÏ, ÅÛÇø´ ¹× CSV ÆÄÀÏÀÌ Æ÷ÇԵȴÙ.
2Àå, 'Ä¿¸Çµå¶óÀÎ µµ±¸'¿¡¼´Â Ä¿¸Çµå¶óÀÎÀ» ¹ÙÅÁÀ¸·Î »ç¿ëÀÚÀÇ ÀÔ·ÂÀ» ¹Þ´Â ¹æ¹ý°ú TOML, YAML ¹× JSON°ú °°Àº ÀϹÝÀûÀÎ µ¥ÀÌÅÍ À¯ÇüÀ» ó¸®ÇÏ´Â ¹æ¹ýÀ» »ìÆìº»´Ù.
3Àå, 'µ¥ÀÌÅÍ º¯È¯°ú ÇÕ¼º'¿¡¼´Â Go ÀÎÅÍÆäÀ̽º¿Í µ¥ÀÌÅÍ Å¸ÀÔ »çÀÌÀÇ º¯È¯ ¹æ¹ýÀ» º¸¿©ÁØ´Ù. ¶ÇÇÑ GoÀÇ ÀÎÄÚµù Àü·« ¹× ÀϺΠ±â´É µðÀÚÀÎ ÆÐÅÏÀ» º¸¿©ÁØ´Ù.
4Àå, 'GoÀÇ ¿¡·¯ ó¸®'¿¡¼´Â ¿¡·¯¸¦ ó¸®Çϱâ À§ÇÑ GoÀÇ Àü·«À» »ìÆìº»´Ù. ¿¡·¯¸¦ Àü´ÞÇϰí ó¸®ÇÏ°í ±â·Ï(log)ÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº»´Ù.
5Àå, 'µ¥ÀÌÅͺ£À̽º¿Í ½ºÅ丮Áö¿¡ °üÇÑ ¸ðµç °Í MySQL°ú °°Àº µ¥ÀÌÅÍ ½ºÅ丮Áö ½Ã½ºÅÛ¿¡ ¾×¼¼½ºÇϱâ À§ÇÑ ´Ù¾çÇÑ ÀúÀå¼Ò ¶óÀ̺귯¸®¸¦ ´Ù·é´Ù. ¶ÇÇÑ ¾ÖÇø®ÄÉÀ̼ÇÀÇ ³í¸®(logic)¿¡¼ ¶óÀ̺귯¸®¸¦ ºÐ¸®Çϱâ À§ÇÑ ÀÎÅÍÆäÀ̽º »ç¿ëÀ» º¸¿©ÁØ´Ù.
6Àå, 'À¥ Ŭ¶óÀÌ¾ðÆ® ¹× API'¿¡¼´Â Go HTTP Ŭ¶óÀÌ¾ðÆ® ÀÎÅÍÆäÀ̽º, REST Ŭ¶óÀ̾ðÆ®, OAuth2 Ŭ¶óÀ̾ðÆ®, Ŭ¶óÀÌ¾ðÆ®¿¡ ±â´ÉÀ» Ãß°¡¸¦ À§ÇÑ µ¥ÄÚ·¹ÀÌ¼Ç ¹× È®Àå, GRPC ±¸Çö¿¡ ´ëÇØ »ìÆìº»´Ù.
7Àå, 'Go ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¸¶ÀÌÅ©·Î¼ºñ½º'¿¡¼´Â À¥ Çڵ鷯¿¡ ´ëÇØ ¾Ë¾Æº¸°í »óŸ¦ Çڵ鷯¿¡ Àü´ÞÇÏ´Â ¹æ¹ý, »ç¿ëÀÚ ÀÔ·Â ¹× ¹Ìµé¿þ¾î¿¡ ´ëÇÑ À¯È¿¼º °Ë»ç¸¦ ¼öÇàÇÏ´Â ¹æ¹ýÀ» »ìÆìº»´Ù.
8Àå, 'Å×½ºÆ®'¿¡¼´Â ¸ñ(mock), Å×½ºÆ® Ä¿¹ö¸®Áö(test coverage), ÆÛ¡(fuzzing), µ¿ÀÛ Å×½ºÆ®(behavior test)¸¦ ºñ·ÔÇÑ ¿©·¯ °¡Áö À¯¿ëÇÑ Å×½ºÆ® µµ±¸¿¡ ÁßÁ¡À» µÎ°í Å×½ºÆ®¿¡ ´ëÇØ ¾Ë¾Æº»´Ù.
9Àå, 'º´·Ä¼º°ú µ¿½Ã¼º'¿¡¼´Â ä³Î ¹× ºñµ¿±â ÀÛ¾÷, ¾ÆÅä¹Í °ª(atomic value), Go ÄÁÅØ½ºÆ® °´Ã¼ ¹× ä³Î »óÅ °ü¸®¿¡ ´ëÇØ Âü°íÇÒ ¸¸ÇÑ ³»¿ëÀ» Á¦°øÇÑ´Ù.
10Àå, 'ºÐ»ê ½Ã½ºÅÛ'¿¡¼´Â ¼ºñ½º Ž»ö(service discovery), Docker ÄÁÅ×À̳ÊÈ(containerization), ¸ÞÆ®¸¯ ¹× ¸ð´ÏÅ͸µ, ¿ÀÄɽºÆ®·¹À̼ÇÀ» ±¸ÇöÇÑ´Ù. Go ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¹èÆ÷(deploy)¿Í ½ÇÁ¦ ¹èÄ¡(productionisation)¸¦ ÁÖ·Î ´Ù·ç°í ÀÖ´Ù.
11Àå, '¹ÝÀÀÇü ÇÁ·Î±×·¡¹Ö°ú µ¥ÀÌÅÍ ½ºÆ®¸²'¿¡¼´Â ¹ÝÀÀÇü/µ¥ÀÌÅÍ ÇÃ·Î¿ì ¾ÖÇø®ÄÉÀ̼Ç, Kafka ¹× ºÐ»ê ¸Þ½ÃÁö ´ë±â¿ ¹× GraphQL ¼¹ö¿¡ ´ëÇØ »ìÆìº»´Ù.
12Àå, '¼¹ö¸®½º ÇÁ·Î±×·¡¹Ö'¿¡¼´Â ¼¹ö¸¦ À¯Áö °ü¸®ÇÏÁö ¾Ê°í Go ¾ÖÇø®ÄÉÀ̼ÇÀ» ¹èÆ÷ÇÏ´Â ¹æ¹ýÀ» ´Ù·é´Ù. ¿©±â¿¡´Â ¼¹ö¸®½º(serverless) ȯ°æ¿¡¼ Google App Engine, Firebase, Lambda ¹× ·Î±ë »ç¿ëÀÌ Æ÷ÇԵȴÙ.
13Àå, '¼º´É Çâ»ó, ÆÁ ¹× Æ®¸¯'¿¡¼´Â º¥Ä¡¸¶Å·, º´¸ñ Çö»ó È®ÀÎ, ÃÖÀûÈ ¹× Go ¾ÖÇø®ÄÉÀ̼ÇÀÇ HTTP ¼º´É Çâ»ó¿¡ ´ëÇØ ´Ù·é´Ù.
´Ý±â