¡Ú ÀÌ Ã¥¿¡¼ ´Ù·ç´Â ³»¿ë ¡Ú
¡á ½ÇÁ¦ ¾ÖÇø®ÄÉÀÌ¼Ç ±¸ÇöÀ» ÅëÇÑ Go ÇÁ·Î±×·¡¹Ö ÀÌÇØ
¡á ¸®¾×Æ® ÇÁ·¹ÀÓ¿öÅ© ±â¹ÝÀÇ ¾ÖÇø®ÄÉÀÌ¼Ç ÇÁ·ÐÆ®¿£µå ±¸Çö
¡á GopherJS ÇÁ·¹ÀÓ¿öÅ©¿Í µ¿Çü Go À¥ °³¹ß
¡á Gin ÇÁ·¹ÀÓ¿öÅ© ±â¹ÝÀÇ RESTful À¥ API °³¹ß
¡á ORM ·¹À̾î¿Í º¸¾È Åë½Å, ½ºÆ®¶óÀÌÇÁ API µîÀÇ À¯¿ëÇÑ ¹é¿£µå ±â¼ú
¡á Go ¾ð¾î ±â¹ÝÀÇ À¥ API Å×½ºÆ®¿Í º¥Ä¡¸¶Å·
¡Ú ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ ¡Ú
Go ¾ð¾î ±â¹ÝÀÇ Ç®½ºÅà À¥ ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ßÀ» óÀ½ ½ÃÀÛÇÏ´Â °³¹ßÀÚ¸¦ À§ÇÑ Ã¥ÀÌ´Ù.
¡Ú ÀÌ Ã¥ÀÇ ±¸¼º ¡Ú
...
´õº¸±â
¡Ú ÀÌ Ã¥¿¡¼ ´Ù·ç´Â ³»¿ë ¡Ú
¡á ½ÇÁ¦ ¾ÖÇø®ÄÉÀÌ¼Ç ±¸ÇöÀ» ÅëÇÑ Go ÇÁ·Î±×·¡¹Ö ÀÌÇØ
¡á ¸®¾×Æ® ÇÁ·¹ÀÓ¿öÅ© ±â¹ÝÀÇ ¾ÖÇø®ÄÉÀÌ¼Ç ÇÁ·ÐÆ®¿£µå ±¸Çö
¡á GopherJS ÇÁ·¹ÀÓ¿öÅ©¿Í µ¿Çü Go À¥ °³¹ß
¡á Gin ÇÁ·¹ÀÓ¿öÅ© ±â¹ÝÀÇ RESTful À¥ API °³¹ß
¡á ORM ·¹À̾î¿Í º¸¾È Åë½Å, ½ºÆ®¶óÀÌÇÁ API µîÀÇ À¯¿ëÇÑ ¹é¿£µå ±â¼ú
¡á Go ¾ð¾î ±â¹ÝÀÇ À¥ API Å×½ºÆ®¿Í º¥Ä¡¸¶Å·
¡Ú ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ ¡Ú
Go ¾ð¾î ±â¹ÝÀÇ Ç®½ºÅà À¥ ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ßÀ» óÀ½ ½ÃÀÛÇÏ´Â °³¹ßÀÚ¸¦ À§ÇÑ Ã¥ÀÌ´Ù.
¡Ú ÀÌ Ã¥ÀÇ ±¸¼º ¡Ú
1Àå, ¡®Ç®½ºÅà Go¡¯¿¡¼´Â ÀÌ Ã¥¿¡¼ ´Ù·ç´Â ÁÖÁ¦¸¦ »ìÆìº¸°í, °³¹ßÇÒ ¾ÖÇø®ÄÉÀ̼ÇÀÇ ±¸Á¶µµ ¾Ë¾Æº»´Ù. ÀÌ Ã¥¿¡¼ ¹«¾ùÀ» ¹è¿ïÁö Àü¹ÝÀûÀ¸·Î ¼Ò°³ÇÑ´Ù.
2Àå, ¡®Go ¾ð¾îÀÇ ±¸¼º ¿ä¼Ò¡¯¿¡¼´Â Go ¾ð¾î ±â¹ÝÀÇ ¾ÖÇø®ÄÉÀ̼ÇÀ» ¸¸µå´Â µ¥ ¹Ýµå½Ã ÇÊ¿äÇÑ ±âº» °³³äÀ» ¼³¸íÇÑ´Ù. Go ¾ð¾îÀÇ º¯¼ö ¼±¾ð¹®°ú Á¶°Ç¹®, ·çÇÁ, ÇÔ¼ö µîÀ» »ìÆìº»´Ù. ÀÚ·á ±¸Á¶¸¦ Á¤ÀÇÇÏ°í ¸Þ¼µå¿¡¼ »ç¿ëÇÏ´Â ¹æ¹ýµµ ¼³¸íÇÑ´Ù. ³ª¾Æ°¡ ÇÁ·Î±×·¥ÀÇ ÇàÀ§¸¦ Á¤ÀÇÇÏ´Â ÀÎÅÍÆäÀ̽º¸¦ ÀÛ¼ºÇÏ´Â ¹æ¹ýµµ ¾Ë¾Æº»´Ù.
3Àå, ¡®Go µ¿½Ã¼º ÇÁ·Î±×·¡¹Ö¡¯¿¡¼´Â Go ¾ð¾îÀÇ µ¿½Ã¼ºÀ» ¼³¸íÇÑ´Ù. Go ¾ð¾î°¡ Áö¿øÇÏ´Â °í·çƾ°ú ä³Î, select¹® µîÀ» ¾Ë¾Æº¸°í È¿À²ÀûÀÎ µ¿½Ã¼º ÇÁ·Î±×·¥ °³¹ß¿¡ ¹Ýµå½Ã ÇÊ¿äÇÑ Àá±Ý°ú ´ë±â ±×·ì(wait group)ÀÇ °³³äµµ ¹è¿î´Ù.
4Àå, ¡®¸®¾×Æ®¿Í ÇÁ·ÐÆ®¿£µå °³¹ß¡¯¿¡¼´Â Àαâ ÀÖ´Â React.js ÇÁ·¹ÀÓ¿öÅ©ÀÇ ±¸¼º ¿ä¼Ò¸¦ ¼³¸íÇÑ´Ù. ¸®¾×Æ® ÇÁ·¹ÀÓ¿öÅ©ÀÇ ÇÙ½É ¿ä¼ÒÀÎ ¸®¾×Æ® ÄÄÆ÷³ÍÆ®¸¦ »ìÆìº»´Ù. ³ª¾Æ°¡ ÄÄÆ÷³ÍÆ®·Î µ¥ÀÌÅ͸¦ Àü´ÞÇÏ´Â ¹æ¹ý°ú »óŸ¦ Á¦¾îÇÏ´Â ¹æ¹ý, ¸®¾×Æ® °³¹ß ÅøÀ» »ç¿ëÇÏ´Â ¹æ¹ýÀ» ¹è¿î´Ù.
5Àå, ¡®GoMusic ÇÁ·ÐÆ®¿£µå °³¹ß¡¯¿¡¼´Â ¾Õ¿¡¼ ÇнÀÇÑ ³»¿ëÀ» ¹ÙÅÁÀ¸·Î GoMusic ¾ÖÇø®ÄÉÀ̼ÇÀÇ ÇÁ·ÐÆ®¿£µå¸¦ ±¸ÇöÇÑ´Ù. GoMusic¿¡ ÇÊ¿äÇÑ ¸®¾×Æ® ÄÄÆ÷³ÍÆ®¸¦ ¸¸µé°í °³¹ß ÅøÀ» »ç¿ëÇØ ÇÁ·ÐÆ®¿£µå¸¦ ¼öÁ¤ÇÑ´Ù. ÇÁ·ÐÆ®¿£µåÀÇ ´ëºÎºÐÀ» ±¸ÇöÇÑ´Ù.
6Àå, ¡®Gin ÇÁ·¹ÀÓ¿öÅ© ±â¹Ý Go RESTful À¥ API¡¯¿¡¼´Â Gin ÇÁ·¹ÀÓ¿öÅ©¿Í RESTful À¥ API¸¦ ¼Ò°³ÇÑ´Ù. Gin ÇÁ·¹ÀÓ¿öÅ©ÀÇ °³³ä°ú ±¸¼º ¿ä¼Ò¸¦ ¾Ë¾Æº¸°í À̸¦ »ç¿ëÇØ À¥ API¸¦ ÀÛ¼ºÇÑ´Ù. HTTP ¿äû ¶ó¿ìÆÃ°ú ±×·ìÇÎÀÇ °³³äµµ ¾Ë¾Æº»´Ù.
7Àå, ¡®Gin°ú ¸®¾×Æ® ±â¹Ý °í±Þ À¥ ¾ÖÇø®ÄÉÀ̼ǡ¯¿¡¼´Â Gin ÇÁ·¹ÀÓ¿öÅ©¿Í À¥ APIÀÇ ½Éµµ ÀÖ´Â ÁÖÁ¦¸¦ ¼³¸íÇÑ´Ù. ¹Ìµé¿þ¾î »ç¿ë°ú »ç¿ëÀÚ ÀÎÁõ, ·Î±ë, ¸ðµ¨ ¹ÙÀεù °ËÁõ µîÀÇ Áß¿äÇÏ°í ½Ç¿ëÀûÀÎ ÁÖÁ¦¸¦ ´Ù·é´Ù. ORMÀÇ °³³ä°ú Go ORMÀ» »ç¿ëÇØ À¥ API ¹é¿£µå¿Í MySQLÀ» ¿¬°áÇÏ´Â ¹æ¹ýÀ» ÇнÀÇÑ´Ù. ¾Õ¿¡¼ ÀÛ¼ºÇÑ ¸®¾×Æ® ÇÁ·ÐÆ®¿£µåÀÇ ±¸ÇöÀ» ¸¶¹«¸®Çϰí Go ¹é¿£µå¿Í ¿¬°áÇÏ´Â ¹æ¹ýÀ» ´Ù·é´Ù. ³ª¾Æ°¡ ¸®¾×Æ® ¾ÖÇø®ÄÉÀ̼ÇÀ» ºôµåÇÏ°í ¹èÆ÷ÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº»´Ù.
8Àå, ¡®À¥ API Å×½ºÆ®¿Í º¥Ä¡¸¶Å·¡¯¿¡¼´Â Go ¾ÖÇø®ÄÉÀ̼ÇÀ» Å×½ºÆ®ÇÏ°í º¥Ä¡¸¶Å·ÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù. À¯´Ö Å×½ºÆ®¸¦ ÀÛ¼ºÇÒ ¶§ »ç¿ëÇÏ´Â testing ÆÐŰÁö°¡ Á¦°øÇϴ ŸÀÔ°ú ¸Þ¼µå¸¦ »ìÆìº»´Ù. À̸¦ ±â¹ÝÀ¸·Î ¾Õ¼ ÀÛ¼ºÇÑ Äڵ带 º¥Ä¡¸¶Å·ÇÏ°í ¼º´ÉÀ» ÃøÁ¤ÇÑ´Ù.
9Àå, ¡®GopherJS¿Í µ¿Çü Go ÇÁ·Î±×·¡¹Ö ¼Ò°³¡¯¿¡¼´Â ÇÁ·ÐÆ®¿£µå¸¦ Go ¾ð¾î·Î ÀÛ¼ºÇÒ ¼ö ÀÖµµ·Ï Go Äڵ带 ÀÚ¹Ù½ºÅ©¸³Æ® ÄÚµå·Î Æ®·£½ºÆÄÀÏÇÏ´Â GopherJS ¿ÀǼҽº ÇÁ·ÎÁ§Æ®¸¦ ¼Ò°³ÇÑ´Ù. ÀÚ¹Ù½ºÅ©¸³Æ® ´ë½Å Go ¾ð¾î·Î ÇÁ·ÐÆ®¿£µå¸¦ ±¸ÇöÇØ¾ß ÇÑ´Ù¸é GopherJS¸¦ ±ÇÇÑ´Ù. GopherJSÀÇ °³³ä°ú ¸î °¡Áö ¿¹Á¦¿Í »ç¿ë »ç·Ê¸¦ »ìÆìº¸°í GopherJS¸¦ »ç¿ëÇØ °£´ÜÇÑ ¸®¾×Æ® ¾ÖÇø®ÄÉÀ̼ÇÀ» ±¸ÇöÇÑ´Ù.
10Àå, ¡®Å¬¶ó¿ìµå ³×ÀÌÆ¼ºê ¾ÖÇø®ÄÉÀ̼ǰú ¸®¾×Æ® ³×ÀÌÆ¼ºê ÇÁ·¹ÀÓ¿öÅ©¡¯¿¡¼´Â ÀÌ Ã¥ ÀÌÈÄ¿¡ ³ª¾Æ°¥ ÇнÀ ¹æÇâÀ» Á¦½ÃÇÑ´Ù. Ŭ¶ó¿ìµå ³×ÀÌÆ¼ºê ¾ÆÅ°ÅØÃ³¿Í ÄÁÅ×À̳ÊÀÇ °³³ä°ú ¸®¾×Æ® ³×ÀÌÆ¼ºê¸¦ »ç¿ëÇÑ ¸ð¹ÙÀÏ ¾Û °³¹ßÀ» ¼Ò°³ÇÑ´Ù.
´Ý±â