"±âÁ¸ ¹Ì¿ë ÀÇ·á º´¿ø ¿î¿µ ü°è¸¦ ¿ÏÀüÈ÷ »õ·Ó°Ô ¹Ù²Ù´Â ¼Ö·ç¼ÇÀ» ¸¸µå´Â °Í"
ÀǷᱤ°í Ç÷§ÆûÀ» ³Ñ¾î¼ ÇâÇÏ°í ÀÖ´Â ¸ñÇ¥ÀÔ´Ï´Ù.
Àü ¼¼°è¿¡¼ ¹Ì¿ëÀÇ·áÀÇ µ¶º¸ÀûÀÎ ±Ô¸ð¸¦ ÀÚ¶ûÇÏ´Â ´ëÇѹα¹ÀÌÁö¸¸ ±× °·ÂÇÑ °æÀï·Â¿¡µµ ºÒ±¸ÇÏ°í, ¿ì¸®´Â º´¿ø ¿î¿µ°ú °í°´ °ü¸® ½Ã½ºÅÛÀÌ ÃֽŠ±â¼ú°ú ÀÇ·áÁøÀÇ ¹ßÀü ¼Óµµ¸¦ µû¶ó°¡Áö ¸øÇÏ°í ÀÖ´Ù´Â »ç½ÇÀ» ¹ß°ßÇß½À´Ï´Ù. ±×·Î ÀÎÇØ ³»¿øÇÏ´Â °í°´µéÀº ºÎÁ·ÇÑ Á¤º¸¿Í ºÒÇÊ¿äÇÑ ´ë±â ½Ã°£ µîÀ¸·Î °ï¶õÀ» °Þ°í, ¿î¿µÇÏ´Â º´¿øÃø¿¡¼´Â ºñÈ¿À²ÀûÀÎ Àη ¿î¿µ°ú Àǻ簡 °æ¿µ¿¡ ½Å°æ¾²´À¶ó ÀÇ·áÇàÀ§ ÀÚü¿¡ ÁýÁßÇÏÁö ¸øÇÏ´Â »óȲÀÌ ¹ß»ýÇÏ°í ÀÖ¾î¿ä.
ƯÈ÷³ª ¹Ì¿ë ÀÇ·á´Â ´Ü¼øÈ÷ ȯÀÚ¸¦ Ä¡·áÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó º´¿øÀÇ ½Å·Úµµ¿Í ÆòÆÇÀ» ³ôÀ̱â À§ÇÑ °í°´ ¸¸Á·µµ ±Ø´ëÈ°¡ Áß¿äÇÑ ¿µ¿ªÀ̱⿡, ¾ÆÁ÷ °ú°Å¿¡ ¸Ó¹°·¯ ÀÖ´Â º´¿ø ¿î¿µ ½Ã½ºÅÛ °³¼±Àº Àý½ÇÇÑ »óÅ¿¹¿ä.
ÆÀÀº º´¿øÀÌ Á÷¸éÇÑ ¹®Á¦µéÀ» ÇØ°áÇÔÀ¸·Î¼, °í°´¿¡°Ô ´õ ÁÁÀº ÀÇ·á ¼ºñ½º¸¦ Á¦°øÇÒ ¼ö ÀÖÀ»°Å¶ó »ý°¢ÇÕ´Ï´Ù.
¿ì¸®ÀÇ ¸ñÇ¥´Â ´Ü¼øÇÑ °í°´°ü¸® ÅøÀÌ ¾Æ´Ï¶ó, Àü ¼¼°è ¹Ì¿ë ÀÇ·á º´¿øÀÇ »ý¸íÁֱ⿡ ±â¿©ÇÒ ¼ö ÀÖ´Â ±Û·Î¹ú SaaS ÇüÅÂÀÇ ¿£ÅÍÇÁ¶óÀÌÁî ½Ã½ºÅÛÀ» ±¸ÃàÇÏ´Â °ÍÀÌ¿¡¿ä.
ºñ´Ü ¼ÒÇÁÆ®¿þ¾î»Ó¸¸ ¾Æ´Ï¶ó ÃÔ¿µ ¹× ÀÇ·á Àåºñ µîÀÇ Çϵå¿þ¾î, º´¿øÀ̶ó´Â °ø°£, °Å±â¼ ÀÏÇÏ´Â »ç¶÷µé°ú À¯±âÀûÀ¸·Î ¿¬°èµÇ´Â ÃÖÀûÀÇ °æÇèÀ» ¸¸µé·Á°í ÇØ¿ä. ±×¸®°í À̸¦ ÅëÇØ, ¹Ì¿ë ÀÇ·á °æÇèÀÇ È¹±âÀûÀÎ °³¼±°ú ºñ¿ë È¿À²¼ºÀ» µ¿½Ã¿¡ ½ÇÇöÇÒ °ÍÀÔ´Ï´Ù.
¶ÇÇÑ, ±¹³» ¹Ì¿ë ÀÇ·á ºÐ¾ßÀÇ 1À§ Ç÷§Æû°úÀÇ ½Ã³ÊÁö¸¦ È°¿ëÇØ Àü ¼¼°è ¹Ì¿ë ÀÇ·á ½ÃÀå º¯È¸¦ ´õ¿í ºü¸£°í È®½ÇÇÏ°Ô À̲ø¾î³ª°¥ °èȹÀÔ´Ï´Ù.
Continuous Integration
´ÜÁö Jenkins, GitHub Actions µî CI Áö¿øµµ±¸¸¦ »ç¿ëÇÏ´Â °Í°ú CI´Â ´Ù¸¨´Ï´Ù. Martin Fowler°¡ ¼Ò°³ÇÑ ´ÙÀ½ CI °ËÁõ °Ë»ç¸¦ ¸¸Á·Çϴ ȯ°æÀ» °¡²ã°¡°í ÀÖ½À´Ï´Ù.
ÀÌ·± ȯ°æ¿¡¼ °³¹ßÀÚ°¡ ¸¸µç °¡Ä¡´Â Á» ´õ ÀÚÁÖ, ºü¸£°Ô »ç¿ëÀÚ¿¡°Ô Àü´ÞµÇ°í °³¹ßÀÚ´Â ¾ÈÁ¤°¨ À§¿¡¼ ÄÚµùÇÒ ¼ö ÀÖ½À´Ï´Ù.
Å×½ºÆ® ÀÚµ¿È
Å×½ºÆ® ÀÚµ¿È´Â Continuous Integration, Continuous Deployment, DevOps µîÀÇ ÇÊ¿äÁ¶°ÇÀÔ´Ï´Ù. Å×½ºÆ®°¡ ³ôÀº ¼öÁØÀ¸·Î ÀÚµ¿È µÇ¾îÀÖÁö ¾Ê´Â ÇÁ·Î¼¼½º´Â ÀÌ·± À̸§À¸·Î ºÎ¸¦ ¼ö ¾ø½À´Ï´Ù. °³¹ßÀÚÀÇ ¸¹Àº ÀÛ¾÷µéÀÌ µµ±¸¿¡ ÀÇÇØ °ËÁõµÇ¾î °¡Ä¡ Àü´Þ¿¡ µÎ·Á¿òÀ» °®Áö ¾Êµµ·Ï ÀÚµ¿È µÈ Å×½ºÆ® ÄÉÀ̽º¸¦ ´Ã¸®°í, Å×½ºÆ® ÁÖµµ °³¹ß(test-driven development)À» Àû¿ëÇÏ°í, ½Ã½ºÅÛ°ú ÇÁ·Î¼¼½º¸¦ °³¼±ÇÏ°í ÀÖ½À´Ï´Ù.
µµ¸ÞÀÎ ÁÖµµ ¼³°è(Domain-Driven Design)
¹Ì¿ëÀÇ·á »ê¾÷µµ ºü¸£°Ô º¯ÈÇÏ°í È®ÀåµÇ°í ÀÖ½À´Ï´Ù. ÀÌ·± º¯È¿¡ ´ëÇÑ ½Ã½ºÅÛÀÇ ÀûÀÀ·ÂÀº ³ë·Â ¾øÀÌ ÁÖ¾îÁöÁö ¾Ê½À´Ï´Ù. ½Ã½ºÅÛÀÌ ºñÁî´Ï½º ȯ°æ¿¡ ÀûÀÀÇÏÁö ¸øÇÏ¸é ¼ºñ½ºµµ Á¶Á÷µµ ºñÀüµµ ¹°°ÅÇ°ÀÌ µË´Ï´Ù. ¼¹ö °³¹ßÀÚ´Â À¯¿¬ÇÑ ¾ÆÅ°ÅØó¸¦ È®º¸Çϱâ À§ÇØ ¿©·¯°¡Áö ¼³°è ±â¹ýÀ» ÇнÀÇÏ°í Àû¿ëÇÕ´Ï´Ù.
ÆÀÀº µµ¸ÞÀÎ ÁÖµµ ¼³°è¸¦ ¼¹ö ½Ã½ºÅÛ È®Àå¿¡ ±â¹ÝÀÌ µÇ´Â ±â¹ýÀ¸·Î Á¤Âø½ÃÅ°°í ÀÖ½À´Ï´Ù. Àü¼ú ±â¹ý¿¡¸¸ ¸Å¸ôµÇ¸é ÀÛÀº ¿£Áö´Ï¾î¸µ Àç¹Ì´Â ´À³¥Áö ¾ðÁ¤ °³¹ßÀÚÀÇ ½Ã¾ß°¡ Á¼¾ÆÁö°í µµ¸ÞÀÎ ÁÖµµ ¼³°èÀÇ °¡Ä¡¸¦ ÃëÇÏÁö ¸øÇÕ´Ï´Ù. ±×·¡¼ ¿ì¸®´Â Àü¼úÀû ÆÐÅÏ »Ó ¾Æ´Ï¶ó À¯ºñÄõÅͽº ¾ð¾î¿Í Àü·«Àû ¼³°è¿¡µµ ÁýÁßÇØ µµ¸ÞÀÎÀÇ ¹®Á¦¸¦ È¿À²ÀûÀ¸·Î Ç®¾î³»°í ¾ÆÅ°ÅØó Áö¼Ó¼ºÀ» È®º¸ÇÏ·Á ³ë·ÂÇÕ´Ï´Ù.
À̺¥Æ® ±â¹Ý ¾ÆÅ°ÅØó(Event-Driven Architecture)
Microservices ÆÐÅÏÀÌ À¯ÇàÇÏ°í ÀÖÁö¸¸ ´ÜÁö ¸ðµâ °ü°è¿¡ HTTP ¿äûÀ» Àû¿ëÇÏ´Â °Í¸¸À¸·Ð ÇØ°áµÇ´Â ¹®Á¦º¸´Ù À¯¹ßµÇ´Â ¹®Á¦°¡ ´õ ¸¹¾ÆÁú ¼ö ÀÖ½À´Ï´Ù. ¼¹ö °³¹ßÀÚ´Â µµ¸ÞÀÎ ÁÖµµ ¼³°è¿¡ ±â¹Ý ÇØ ½Ã½ºÅÛ ³» °æ°è¸¦ ¼³Á¤ÇÏ°í ºÐ¸®µÈ ¿ä¼ÒµéÀÌ ºñµ¿±â À̺¥Æ®¸¦ »ç¿ëÇØ À¯¿¬ÇÏ°Ô ÅëÇյǵµ·Ï ¾ÆÅ°ÅØó¸¦ ¼³°èÇÕ´Ï´Ù.
ÆÀ ¼¹ö °³¹ßÀÚ´Â ´ÙÀ½ÀÇ µµ±¸¸¦ ÁÖ·Î »ç¿ëÇØ¿ä. ±× ¹Û¿¡µµ ÁÖ¾îÁø ¹®Á¦¿¡ µû¶ó °¡Àå ÀûÇÕÇÑ ¿©·¯°¡Áö µµ±¸¸¦ µµÀÔÇÕ´Ï´Ù.
°æ·Â¸¸À¸·Î Áö¿ø ÀÚ°Ý(ÁִϾî, ½Ã´Ï¾î µî)À» °áÁ¤ÇÏÁö ¾ÊÀ¸¸ç, °³°³ÀÎÀÇ °æÇè°ú ¿ª·®À» °¡Àå Áß¿äÇÏ°Ô »ý°¢ÇÕ´Ï´Ù.
´ÙÀ½ ¿ª·®Àº ¼¹ö °³¹ßÀÚ·Î ÀúÈñ¿Í ÇÔ²² Çϱâ À§ÇØ ¹Ýµå½Ã ÇÊ¿äÇÏÁö´Â ¾ÊÁö¸¸ Á¦Ç°°³¹ß Á¶Á÷ÀÇ ¿ª·®À» ´õ¿í ³ô¿©ÁÙ ¼ö ÀÖ´Ù°í ¹Ï±â¿¡ ³ôÀÌ Æò°¡ÇÕ´Ï´Ù.
¼·ùÁö¿ø ¡æ ÄÚµå ¸®ºä Å×½ºÆ® ¡æ 1Â÷ Á÷¹« ÀÎÅͺä(¿Â¶óÀÎ) ¡æ 2Â÷ Á÷¹«/Çù¾÷/¹®È ÀÎÅͺä(¿ÀÇÁ¶óÀÎ) ¡æ ÆòÆÇÁ¶È¸ ¡æ ÃÖÁ¾ÇÕ°Ý