°­³²¾ð´Ï ÆÀ ¼­¹ö °³¹ßÀÚ´Â ÀÌ·¸°Ô ÀÏÇØ¿ä


¹è¿ì°í °æÇèÇÏ°í ¼ºÀåÇØ¿ä


¿ì¸®´Â ¸ØÃßÁö ¾Ê°í ¼ºÀåÇÏ°í ½Í¾î¿ä. °­³²¾ð´Ï ÆÀÀº '´õ ÁÁÀº ÀÇ·á ¼­ºñ½º¸¦ ´©±¸³ª ´©¸± ¼ö ÀÖ°Ô'¶ó´Â ¸ñÇ¥¸¦ ÀÌ·ç±â À§ÇØ ½ÃÀåÀÇ ¹®Á¦¸¦ ÇØ°áÇØ ¿Ô½À´Ï´Ù. ÀÌÁ¦ ±×µ¿¾Èº¸´Ù ´õ Å©°í º¹ÀâÇÑ ¹®Á¦¸¦ ÇØ°áÇØ ³ª°¡±â À§ÇØ °³¹ßÀÚ¸¦ ºñ·ÔÇÑ Á¦Ç°°³¹ß Á¶Á÷ ±¸¼º¿øµéÀÇ Áö¼ÓÀû ¼ºÀåÀÌ ¹Ýµå½Ã ÇÊ¿äÇÏ´Ù°í ÆÇ´ÜÇÏ°í ÀÖ¾î¿ä. ±×·¯±â¿¡ °­³²¾ð´Ï ÆÀ °³¹ßÀÚ´Â ¸¶ÁÖÇÑ ¹®Á¦¸¦ ÇØ°áÇÏ´Â °Í ¸¸Å­À̳ª, ÇØ°á °úÁ¤ÀÇ °æÇè°ú »õ·Î¿î Áö½ÄÀÇ ÇнÀÀ» ÅëÇØ ¼ºÀåÀ» ÀÌ·ç·Á ³ë·ÂÇØ¿ä.


¹Ì¿ëÀÇ·á »ê¾÷ÀÇ º¹ÀâÇÑ ¹®Á¦ ÇØ°áÀ» ¿£Áö´Ï¾î¸µÇØ¿ä


°­³²¾ð´Ï ÆÀÀÌ ´Ù·ç´Â ¸¹Àº ¹®Á¦´Â Å©°í º¹ÀâÇÕ´Ï´Ù. °­³²¾ð´Ï ÆÀ ¼­¹ö °³¹ßÀÚ´Â ÀÇ·á ¼­ºñ½º »ç¿ëÀÚ, º´¿ø, ÀÇ»ç, ÀÇ·á¹ý, °³ÀÎÁ¤º¸ º¸È£ µî ´Ù¾çÇÑ ÁÖü¿Í ÀÌÇØ°ü°è ³»¿¡¼­ ±ÕÇüÀÖ°Ô ºñÁî´Ï½º ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇØ ´Ù¾çÇÑ ¿£Áö´Ï¾î¸µ µµ±¸¸¦ »ç¿ëÇØ¿ä. ¶§·Î´Â ½Å¼ÓÇÑ ¹®Á¦ ÇØ°á¿¡ ÁýÁßÇÏÁö¸¸ ½Ã½ºÅÛÀÇ Áö¼Ó¼º¿¡ ¸ØÃßÁö ¾Ê°í ÅõÀÚÇÕ´Ï´Ù.


Çù¾÷ÇØ¿ä


°­³²¾ð´Ï ÆÀÀÇ ±× ´©±¸µµ È¥ÀÚ¼­ ¹®Á¦¸¦ ÇØ°áÇÏÁö ¾Ê¾Æ¿ä. °­³²¾ð´Ï ÆÀÀº ³ôÀº ¼öÁØÀÇ Çù¾÷À» Ãß±¸ÇÕ´Ï´Ù. ¿ì¸®´Â ±ØµµÀÇ Çù¾÷À» ÅëÇؼ­¸¸ ¶Ù¾î³­ ÆÀÀÌ ¸¸µé¾îÁö¸ç ¹Ì¿ëÀÇ·á »ê¾÷ÀÇ Å©°í º¹ÀâÇÑ ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ÀÖ´Ù°í ¹Ï¾î¿ä. °­³²¾ð´Ï ÆÀ ¼­¹ö °³¹ßÀÚ´Â µ¿·á ¼­¹ö °³¹ßÀÚ, ÇÁ·ÐÆ®¿£µå °³¹ßÀÚ, µðÀÚÀ̳Ê, PO¿Í ±ä¹ÐÇÏ°Ô Çù¾÷ÇØ, È¥ÀÚ¼­´Â Ç®¾î³»±â ¾î·Á¿î ¹®Á¦µéÀ» Ç®¾î³»°í ÀÖ¾î¿ä.


¿£Áö´Ï¾î¸µ µµ±¸ÀÇ °¡Ä¡¿¡ ÁýÁßÇØ¿ä


À¯ÇàÇÏ´Â ±â¼ú ¿ë¾î¿¡ ¸Í¸ñÀûÀ¸·Î µû¸£Áö ¾Ê°í µµ±¸ÀÇ °¡Ä¡¿¡ ÁýÁßÇØ ¹®Á¦ ÇØ°á¿¡ »ç¿ëÇØ¿ä. Áö±Ý °­³²¾ð´Ï ÆÀ ¼­¹ö °³¹ßÀÚ´Â º¸´Ù ¾ÈÁ¤ÀûÀÎ ¿£Áö´Ï¾î¸µ °æÇèÀ» È®º¸Çϱâ À§ÇØ ÀÌ·± ±â¹ýµéÀ» Á¤Âø½ÃÅ°·Á ³ë·ÂÇÏ°í ÀÖ¾î¿ä.


Continuous Integration


´ÜÁö Jenkins, GitHub Actions µî CI Áö¿øµµ±¸¸¦ »ç¿ëÇÏ´Â °Í°ú CI´Â ´Þ¶ó¿ä. Martin Fowler°¡ ¼Ò°³ÇÑ ´ÙÀ½ CI °ËÁõ °Ë»ç¸¦ ¸¸Á·Çϴ ȯ°æÀ» °¡²ã°¡°í ÀÖ¾î¿ä.



ÀÌ·± ȯ°æ¿¡¼­ °³¹ßÇÏ¸é ±× °¡Ä¡°¡ ´õ ÀÚÁÖ, ´õ ºü¸£°Ô »ç¿ëÀÚ¿¡°Ô Àü´ÞµÉ ¼ö ÀÖ°í, °³¹ßÀÚ´Â ¾ÈÁ¤°¨ À§¿¡¼­ ÄÚµùÇÒ ¼ö ÀÖ°Ô µÅ¿ä.


Å×½ºÆ® ÀÚµ¿È­


Å×½ºÆ® ÀÚµ¿È­´Â Continuous Integration, Continuous Deployment, DevOps µîÀÇ ÇÊ¿äÁ¶°ÇÀÌ¿¡¿ä. Å×½ºÆ®°¡ ³ôÀº ¼öÁØÀ¸·Î ÀÚµ¿È­ µÇ¾îÀÖÁö ¾Ê´Â ÇÁ·Î¼¼½º´Â ÀÌ·± À̸§À¸·Î ºÎ¸¦ ¼ö ¾ø½À´Ï´Ù. °³¹ßÀÚÀÇ ¸¹Àº ÀÛ¾÷µéÀÌ µµ±¸¿¡ ÀÇÇØ °ËÁõµÇ¾î °¡Ä¡ Àü´Þ¿¡ µÎ·Á¿òÀ» °®Áö ¾Êµµ·Ï ÀÚµ¿È­ µÈ Å×½ºÆ® ÄÉÀ̽º¸¦ ´ÃÀÌ°í, Å×½ºÆ® ÁÖµµ °³¹ß(test-driven development)À» Àû¿ëÇÏ°í, ½Ã½ºÅÛ°ú ÇÁ·Î¼¼½º¸¦ °³¼±ÇÏ°í ÀÖ¾î¿ä.


¦ ÇÁ·Î±×·¡¹Ö(Pair Programming), ´Üü ÇÁ·Î±×·¡¹Ö(Mob Programming), ÄÚµå ¸®ºä


ÄÚµùÀº Çù¾÷ÀÔ´Ï´Ù. ¸ðµç °­³²¾ð´Ï ÆÀ °³¹ßÀڴ ȥÀÚ¸¸ÀÇ ÆÇ´ÜÀ¸·Î main ºê·£Ä¡¿¡ Ä¿¹ÔÇÒ ¼ö ¾øµµ·Ï ±ÇÇÑÀÌ Á¦ÇѵǾî ÀÖ¾î¿ä. ¸ðµç ÄÚµå´Â ¦ ÇÁ·Î±×·¡¹ÖÀ» ÅëÇØ ÀÛ¼ºµÇ°Å³ª µ¿·áÀÇ ¸®ºä¸¦ °ÅÄ£ ½ÂÀÎÀ» ¹Þ¾Æ¾ß¸¸ pull request¸¦ ÅëÇØ main ºê·£Ä¡¿¡ Ãß°¡µÉ ¼ö ÀÖ¾î¿ä. ¶§·Ð °°Àº ºñÁî´Ï½º ¿ä±¸»çÇ×À» ´Ù·ç´Â ¼­¹ö, À¥ ÇÁ·ÐÆ®¿£µå, ¸ð¹ÙÀÏ °³¹ßÀÚ°¡ ÇÔ²² ¸ð¿© Äڵ带 ¾²±âµµ ÇØ¿ä.


µµ¸ÞÀÎ ÁÖµµ ¼³°è(Domain-Driven Design)


°­³²¾ð´Ï ÆÀµµ ¹Ì¿ëÀÇ·á »ê¾÷µµ ºü¸£°Ô º¯È­ÇÏ°í È®ÀåµÇ°í ÀÖ¾î¿ä. ÀÌ·± º¯È­¿¡ ´ëÇÑ ½Ã½ºÅÛÀÇ ÀûÀÀ·ÂÀº ³ë·Â ¾øÀÌ ÁÖ¾îÁöÁö ¾Ê¾Æ¿ä. ½Ã½ºÅÛÀÌ ºñÁî´Ï½º ȯ°æ¿¡ ÀûÀÀÇÏÁö ¸øÇÏ¸é ¼­ºñ½ºµµ Á¶Á÷µµ ºñÀüµµ ¹°°ÅÇ°ÀÌ µË´Ï´Ù. À¯¿¬ÇÑ ¾ÆÅ°ÅØó¸¦ È®º¸Çϱâ À§ÇØ ¿©·¯°¡Áö ¼³°è ±â¹ýÀ» ÇнÀÇÏ°í Àû¿ëÇØ¾ß ÇØ¿ä.


°­³²¾ð´Ï ÆÀÀº µµ¸ÞÀÎ ÁÖµµ ¼³°è¸¦ ¼­¹ö ½Ã½ºÅÛ È®Àå¿¡ ±â¹ÝÀÌ µÇ´Â ±â¹ýÀ¸·Î Á¤Âø½ÃÅ°°í ÀÖ¾î¿ä. Àü¼ú ±â¹ý¿¡¸¸ ¸Å¸ôµÇ¸é ÀÛÀº ¿£Áö´Ï¾î¸µ Àç¹Ì´Â ´À³¥Áö¾ðÁ¤ °³¹ßÀÚÀÇ ½Ã¾ß°¡ Á¼¾ÆÁö°í µµ¸ÞÀÎ ÁÖµµ ¼³°èÀÇ °¡Ä¡¸¦ ÃëÇÏÁö ¸øÇÕ´Ï´Ù. ±×·¡¼­ ¿ì¸®´Â Àü¼úÀû ÆÐÅÏ »Ó ¾Æ´Ï¶ó À¯ºñÄõÅͽº ¾ð¾î¿Í Àü·«Àû ¼³°è¿¡µµ ÁýÁßÇØ µµ¸ÞÀÎÀÇ ¹®Á¦¸¦ È¿À²ÀûÀ¸·Î Ç®¾î³»°í ¾ÆÅ°ÅØó Áö¼Ó¼ºÀ» È®º¸ÇÏ·Á ³ë·ÂÇØ¿ä.


À̺¥Æ® ±â¹Ý ¾ÆÅ°ÅØó(Event-Driven Architecture)


Microservices ÆÐÅÏÀÌ À¯ÇàÇÏ°í ÀÖÁö¸¸ ´ÜÁö ¸ðµâ °ü°è¿¡ HTTP ¿äûÀ» Àû¿ëÇÏ´Â °Í¸¸À¸·Ð ÇØ°áµÇ´Â ¹®Á¦º¸´Ù À¯¹ßµÇ´Â ¹®Á¦°¡ ´õ ¸¹¾ÆÁú ¼ö ÀÖ¾î¿ä. °­³²¾ð´Ï ÆÀ °³¹ßÀÚ´Â µµ¸ÞÀÎ ÁÖµµ ¼³°è¿¡ ±â¹ÝÇØ ½Ã½ºÅÛ ³» °æ°è¸¦ ¼³Á¤ÇÏ°í ºÐ¸®µÈ ¿ä¼ÒµéÀÌ ºñµ¿±â À̺¥Æ®¸¦ »ç¿ëÇØ À¯¿¬ÇÏ°Ô ÅëÇյǵµ·Ï ¾ÆÅ°ÅØó¸¦ ¼³°èÇØ¿ä.



¿ì¸®´Â ÀÌ·± µµ±¸¸¦ »ç¿ëÇØ¿ä


°­³²¾ð´Ï ÆÀ ¼­¹ö °³¹ßÀÚ´Â ´ÙÀ½ÀÇ µµ±¸¸¦ ÁÖ·Î »ç¿ëÇØ¿ä. ±× ¹Û¿¡µµ ÁÖ¾îÁø ¹®Á¦¿¡ µû¶ó °¡Àå ÀûÇÕÇÑ ¿©·¯°¡Áö µµ±¸¸¦ µµÀÔÇÕ´Ï´Ù.


°³¹ß ¾ð¾î


ÇÁ·¹ÀÓ¿öÅ©


µ¥ÀÌÅͺ£À̽º


ÀÎÇÁ¶ó



ÀÌ·± ºÐÀ» ¸ð½Ã°í ½Í¾î¿ä




ÀÌ·± Á¡ÀÌ ÀÖ´Ù¸é ´õ¿í ÁÁ¾Æ¿ä





¿ì¸®´Â °­³²¾ð´Ï ÆÀ(Èú¸µÆäÀÌÆÛ)ÀÇ ÀÌÀÍ¿¡ ÃÖ¼±ÀÌ µÇ´Â ¹æÇâÀ¸·Î, ±ÔÄ¢º¸´Ü ¿øÄ¢¿¡ ±â¹ÝÇÏ¿© ¿òÁ÷ÀÔ´Ï´Ù. µ¿·áµéÀÌ ÇÔ²² ¸ñÀûÀ» ´Þ¼ºÇϴµ¥ ´õ ¸ôÀÔÇÏ°í ´õ ¼ºÀåÇÒ ¼ö ÀÖµµ·Ï ¿©·¯°¡Áö ¹®È­Àû Á¦µµ¿Í ¼­Æ÷Æà ÇÁ·Î±×·¥À» ¿î¿µÇÕ´Ï´Ù.



ÀÌ·± ¹®È­·Î ÀÏÇÏ°í ÀÖ¾î¿ä


¼ÖÁ÷ÇÏ°í ¿øÈ°ÇÑ Ä¿¹Â´ÏÄÉÀ̼ÇÀ» ÅëÇØ Çù¾÷À» ÀÌ·ç´Â ¹®È­¸¦ ÁöÇâÇÕ´Ï´Ù



Åõ¸íÇÑ Á¤º¸ÀÇ È帧À» ¹ÙÅÁÀ¸·Î ÀÇ»ç°áÁ¤À» ³»¸®°í ¸ñÀûÀ» ´Þ¼ºÇØ ³ª°©´Ï´Ù




ÀÌ·¸°Ô µ¿·á¸¦ ¼­Æ÷Æ®ÇØ¿ä


°­³²¾ð´Ï ÆÀÀÇ ÀÌÀÍ¿¡ ÃÖ¼±ÀÌ µÇ´Â ¹æÇâÀ¸·Î ÇൿÇÏ°í ¼ºÀåÇÏ´Â µ¿·áµéÀ» ¼­Æ÷Æ®ÇÕ´Ï´Ù



¾÷¹«¿¡ ´õ¿í ¸ôÀÔÇϱâ À§ÇØ ¾÷¹« ¿ÜÀÇ »îÀ» ¼­Æ÷Æ®ÇÕ´Ï´Ù



Ãâ±Ù½Ã°£ : ¿ÀÀü 10½Ã (°³Àΰú ÆÀÀÇ »óȲ¿¡ µû¶ó Á¶À² °¡´É)
¼ö½À±â°£: 3°³¿ù(±Þ¿©, ¼­Æ÷Æà ÇÁ·Î±×·¥ Â÷µî ¾øÀ½)



ÀÌ·± °úÁ¤À¸·Î ÇÕ·ùÇØ¿ä

¼­·ù °ËÅä ¡æ ÄÚµùÅ×½ºÆ® ¡æ »çÀü ÀÎÅͺä(¿Â¶óÀÎ) ¡æ º» ÀÎÅͺä(´ë¸é) ¡æ ÆòÆÇÁ¶È¸ ¡æ ó¿ì ÇùÀÇ ¡æ ÀÔ»ç