¢Â ÀÌ Ã¥¿¡¼ ´Ù·ç´Â ³»¿ë ¢Â
¡ß µµ¸ÞÀÎ ÁÖµµ ¼³°èÀÇ ºôµù ºí·Ï°ú °´Ã¼ÁöÇâ ¼³°è ¿øÄ¢(SOLID)À» »ç·Ê·Î ¼³¸í
¡ß À̺¥Æ® ¼Ò½ÌÀ» »ç¿ëÇÒ ¶§ ¸¸³ª´Â ´ëÇ¥ÀûÀÎ ¹®Á¦¿Í ÇØ°á ¹æ¹ý ¼Ò°³
¡ß ¸¶ÀÌÅ©·Î¼ºñ½º ¾ÆÅ°ÅØó¿¡¼ ¼ºñ½º°£ RESTful API¿Í À̺¥Æ®¸¦ »ç¿ëÇÑ Çù·Â ¼³¸í
¡ß °á°úÀû ÀÏ°ü¼ºÀ» ±¸ÇöÇÏ´Â »ó¼¼ÇÑ ¹æ¹ý°ú À̺¥Æ® ¼Ò½Ì
¡ß °á°úÀû ÀÏ°ü¼ºÀÇ ºñµ¿±â ÇÁ·Î¼¼½º¿Í »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º ±¸Çö ¹æ¹ý ¼³¸í
¡ß ¸í·É°ú Á¶È¸ Ã¥ÀÓ ºÐ¸®(CQRS)¿¡ ´ëÇÑ ´Ù¾çÇÑ »ç·Ê ¿¬±¸ ¼Ò°³
¡ß Äí¹ö³×Ƽ½º/À̽ºÆ¼¿À¸¦ È°¿ëÇÑ ¼ºñ½º ¹èÆ÷¿Í ¸ð´ÏÅ͸µ
¢Â ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ ¢Â
¡ß µµ¸ÞÀÎ ÁÖµµ ¼³°è³ª °´Ã¼ÁöÇâ ¼³°è ¿øÄ¢À» óÀ½ Á¢ÇÏ´Â °³¹ßÀÚ
¡ß À̺¥Æ® ¼Ò½ÌÀ» ü°èÀûÀ¸·Î ÇнÀÇÏ°í ½Ç¹«¿¡ Àû¿ëÇÏ°í ½ÍÀº °³¹ßÀÚ
¡ß °á°úÀû ÀÏ°ü¼ºÀ» ±¸ÇöÇÏ´Â ±¸Ã¼ÀûÀÎ ¹æ¹ýÀ» ¾Ë°í ½ÍÀº °³¹ßÀÚ
¡ß ¸¶ÀÌÅ©·Î¼ºñ½º ¾ÆÅ°ÅØó¿¡¼ ÁÖ¿ä ÁÖÁ¦¿¡ ´ëÇØ Á¤¸®ÇÏ°í ½ÍÀº °³¹ßÀÚ
¢Â ÀÌ Ã¥ÀÇ ±¸¼º ¢Â
ÀÌ Ã¥Àº ÃÑ 9ÀåÀ¸·Î ±¸¼ºµÅ ÀÖ½À´Ï´Ù. µµ¸ÞÀÎ ÁÖµµ ¼³°è, °´Ã¼ÁöÇâ ¼³°è ¿øÄ¢¿¡¼ ½ÃÀÛÇØ À̺¥Æ® ¼Ò½Ì, CQRS¿Í ÇÔ²² ¸¶ÀÌÅ©·Î¼ºñ½º °£ Çù·Â ¹æ¹ý ±×¸®°í º¸»ó Æ®·£Àè¼Ç(Compensating Transaction) ¶Ç´Â »ç°¡SAGA·Î ¾Ë·ÁÁø °á°úÀû ÀÏ°ü¼ºÀ» ´Ù·ì´Ï´Ù. ÈĹݺο¡´Â ¸¶ÀÌÅ©·Î¼ºñ½º ¾ÆÅ°ÅØó¿¡¼ »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º¿Í °ü·ÃµÈ À̽´¿Í ¹èÆ÷ ¹× ¿î¿µÀ» À§ÇÑ µµÄ¿(Docker)¿Í Äí¹ö³×Ƽ½º(Kubernetes)ó·³ Ŭ¶ó¿ìµå ȯ°æ¿¡¼ ¸¹ÀÌ »ç¿ëÇÏ´Â ±â¼úÀ» ´Ù·ì´Ï´Ù.
¡®1Àå, µµ¸ÞÀÎ ÁÖµµ ¼³°è'¿¡¼´Â µµ¸ÞÀÎ ÁÖµµ ¼³°èÀÇ ±âº» ¿ä¼ÒÀÎ ¿£Æ¼Æ¼, °ª °´Ã¼, ¾Ö±×¸®°ÔÀÌÆ®, ¼ºñ½º, ¸®Æ÷ÁöÅ丮, ÆÑÅ丮¸¦ ¼Ò°³ÇÕ´Ï´Ù. ƯÈ÷ ¸¶ÀÌÅ©·Î¼ºñ½º ¾ÆÅ°ÅØó´Â µµ¸ÞÀÎ ÁÖµµ ¼³°è¿¡¼ ¸»ÇÏ´Â ¾Ö±×¸®°ÔÀÌÆ®¿Í Àß ¾î¿ï¸®´Â Á¢±Ù¹ýÀÔ´Ï´Ù. ÀÌ ¿©¼¸ °³ ±¸¼º ¿ä¼Ò¸¦ Á¤È®ÇÏ°Ô ÀÌÇØÇÏ´Â °Í¸¸À¸·Îµµ ´ÜÀÏ ¸¶ÀÌÅ©·Î¼ºñ½ºÀÇ ³»ºÎ ¾ÆÅ°ÅØó¸¦ ¼³°èÇÒ ¼ö ÀÖ½À´Ï´Ù.
¡®2Àå, °´Ã¼ÁöÇâ ¼³°è ¿øÄ¢¡¯¿¡¼´Â 1Àå¿¡¼ ¼³¸íÇÑ µµ¸ÞÀÎ ÁÖµµ ¼³°èÀÇ ºôµù ºí·Ï°ú ÇÔ²² °´Ã¼ÁöÇâ ¼³°è ¿øÄ¢ÀÎ SOLID¸¦ »ìÆ캾´Ï´Ù. SOLID´Â ¿À·¡µÈ ¿øÄ¢ÀÌÁö¸¸ ¿©ÀüÈ÷ Áß¿äÇϸç È¿°ú°¡ ÀÖ½À´Ï´Ù.
¡®3Àå, À̺¥Æ® ¼Ò½Ì I¡¯¿¡¼´Â ±×·º ¿µÀÌ °ø°³ÇÑ ¡ºCQRS Documents¡»¿¡¼ Á¦½ÃÇÑ ¾ÆÀ̵ð¾î¸¦ ±â¹ÝÀ¸·Î À̺¥Æ® ¼Ò½Ì ¸ÞÄ¿´ÏÁò¿¡ ´ëÇØ ¼³¸íÇÏ°í ±¸ÇöÇÕ´Ï´Ù. ÀÌ ¸ÞÄ¿´ÏÁòÀº À̾îÁö´Â Àå¿¡¼ ¼³¸íÇÏ´Â À̺¥Æ® ¼Ò½ÌÀÇ ÁÖ¿ä Ư¡°ú À̽´¸¦ ÇØ°áÇϱâ À§ÇØ Áö¼ÓÀûÀ¸·Î °³¼±ÇÕ´Ï´Ù.
¡®4Àå, À̺¥Æ® ¼Ò½Ì II¡¯¿¡¼´Â À̺¥Æ® ¼Ò½ÌÀ» Àû¿ëÇßÀ» ¶§ ¹ß»ýÇÒ ¼ö ÀÖ´Â ´ëÇ¥ÀûÀÎ ¹®Á¦¸¦ »ìÆ캾´Ï´Ù. ±ä ¶óÀÌÇÁ»çÀÌŬÀ» °¡Áö´Â ¾Ö±×¸®°ÔÀÌÆ®´Â ¸¹Àº À̺¥Æ®°¡ ¹ß»ýÇÕ´Ï´Ù. À̺¥Æ®µéÀ» ¸®Ç÷¹ÀÌÇÒ ¶§ »ç¿ë °¡´ÉÇÑ ¸Þ¸ð¸®ÀÇ ÇÑ°è¿Í ¼º´É ÀúÇϸ¦ ¹æÁöÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº¾´Ï´Ù. ¶ÇÇÑ ½Ã½ºÅÛÀ» À¯Áöº¸¼öÇÒ ¶§ ¿ä±¸»çÇ×À» ¼ö¿ëÇÏ¸é¼ À̺¥Æ®ÀÇ º¯È(¹öÀü º¯È)¸¦ ó¸®ÇÏ´Â ¹æ¹ýµµ ¼Ò°³ÇÕ´Ï´Ù. ¾Ö±×¸®°ÔÀÌÆ®´Â µ¶¸³ÀûÀÎ Á¸ÀçÀÌÁö¸¸ °°Àº ¾Ö±×¸®°ÔÀÌÆ®°¡ µ¿½Ã¿¡ ´Ù¸¥ ¸í·ÉÀ» ó¸®ÇÏ¸é¼ °°Àº ¼Ó¼ºÀ» º¯°æÇÒ ¶§ ºÎ¼öÀûÀ¸·Î ¹ß»ýÇÒ ¼ö ÀÖ´Â ¹®Á¦¿Í ÇØ°á ¹æ¹ýÀ» ¾Ë¾Æº¾´Ï´Ù.
¡®5Àå, ¸¶ÀÌÅ©·Î¼ºñ½º Çù¾÷¡¯¿¡¼´Â Çí»ç°í³¯ ¾ÆÅ°ÅØó(Hexagonal Architecture)¿¡¼ ¼ºñ½º °£ Çù·Â ¹æ¹ýÀÎ Àιٿîµå¿Í ¾Æ¿ô¹Ù¿îµå ¾î´ðÅ͸¦ ¼³¸íÇÏ°í ´ëÇ¥ÀûÀÎ ±¸Çö ±â¼úÀÎ RESTful API¿Í À̺¥Æ®¸¦ »ìÆ캾´Ï´Ù. Àιٿîµå ¾î´ðÅÍ´Â ¿ÜºÎÀÇ ¿äûÀ» ¹Þ¾Æ ºñÁî´Ï½º ·ÎÁ÷À» ó¸®ÇÏ°í ¾Æ¿ô¹Ù¿îµå ¾î´ðÅÍ´Â ºñÁî´Ï½º ·ÎÁ÷ ¼öÇà Àü¹Ý¿¡ °ÉÃÄ ´Ù¸¥ ¼ºñ½º¿ÍÀÇ Çù·Â¿¡ »ç¿ëÇÕ´Ï´Ù.
¡®6Àå, °á°úÀû ÀÏ°ü¼º ¸¶ÀÌÅ©·Î¼ºñ½º ¾ÆÅ°ÅØ󡯿¡¼ ³í¶õÀÇ Áß½ÉÀÌ µÇ´Â °á°úÀû ÀÏ°ü¼º(ºÐ»ê Æ®·£Àè¼Ç, º¸»ó Æ®·£Àè¼Ç, »ç°¡)°ú À̸¦ ÇØ°áÇÏ´Â ¿ø¸®¸¦ ¼³¸íÇÕ´Ï´Ù. ¿¡¸¯ ¿¡¹Ý½º(Eric Evans)°¡ µµ¸ÞÀÎ ÁÖµµ ¼³°è¿¡¼ ¼Ò°³ÇÑ °èÁ ÀÌü¸¦ »ç°¡·Î ±¸ÇöÇØ º¾´Ï´Ù.
¡®7Àå, ¸í·É°ú Á¶È¸ Ã¥ÀÓ ºÐ¸®(CQRS)¡¯¿¡¼´Â 3Àå°ú 4Àå¿¡¼ ¼³¸íÇÑ À̺¥Æ® ¸®Ç÷¹ÀÌÀÇ ´ÜÁ¡À» º¸¿ÏÇϱâ À§ÇØ Á¶È¸ Àü¿ë µ¥ÀÌÅ͸¦ ¹Ì¸® »ý¼ºÇÏ´Â CQRS¸¦ ´Ù·ç°í ´ëÇ¥ÀûÀÎ È°¿ë »ç·Ê¸¦ ¼Ò°³ÇÕ´Ï´Ù. CQRS´Â Æ®·£Àè¼Ç ¿ä±¸»çÇ׿¡ µû¶ó ¸¶ÀÌÅ©·Î¼ºñ½º °£»Ó¸¸ ¾Æ´Ï¶ó ´ÜÀÏ ¸¶ÀÌÅ©·Î¼ºñ½º¿¡µµ Àû¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
¡®8Àå, »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º¡¯¿¡¼´Â ¸¶ÀÌÅ©·Î¼ºñ½º ¾ÆÅ°ÅØó¿¡¼ ¹é¿£µå ºÐ¸®¸¸Å ÇÁ·ÐÆ®¿£µåÀÇ ºÐ¸®µµ Áß¿äÇÕ´Ï´Ù. ÀÌ Àå¿¡¼´Â ¹é¿£µåó·³ »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º¸¦ ºÐ¸®ÇÏ´Â ¸¶ÀÌÅ©·Î ÇÁ·ÐÆ®¿£µå¿Í ¸¶ÀÌÅ©·Î¼ºñ½ºÀÇ µ¶¸³¼ºÀ» ³ôÀ̱â À§ÇÑ ¹èÆ÷ ¹æ¹ýÀ» ¼Ò°³ÇÕ´Ï´Ù. ÇÁ·ÐÆ®¿£µå°¡ ¹é¿£µå·Î ¿äû ÈÄ ÀÀ´äÀ» ¹Þ¾ÒÁö¸¸ ºñÁî´Ï½º Æ®·£Àè¼ÇÀº ¾ÆÁ÷ ÁøÇà ÁßÀÏ ¼ö ÀÖ½À´Ï´Ù. ÀÌ´Â ¹é¿£µå °£ °á°úÀû ÀÏ°ü¼ºÀ» ´Þ¼ºÇϱâ À§ÇØ À̺¥Æ®¸¦ È°¿ëÇÏ°í ºñµ¿±â·Î µ¿ÀÛÇϱ⠶§¹®ÀÔ´Ï´Ù. °á±¹ ÇÁ·ÐÆ®¿£µå ¿äû°ú ÀÀ´ä°£ ´ÜÀýÀÌ ¹ß»ýÇϴµ¥ À̸¦ ÇØ°áÇÏ´Â ´ëÇ¥ÀûÀÎ ÆÐÅϵéÀ» ¼³¸íÇÏ°í ½ºº§Æ®·Î ±¸ÇöÇØ º¾´Ï´Ù.
¡®9Àå, Ŭ¶ó¿ìµå ȯ°æ¡¯¿¡¼´Â Ŭ¶ó¿ìµå ¿î¿µ¿¡ ÇÊ¿äÇÑ ÁÖ¿ä ±â¼úÀ» ¼³¸íÇÏ°í ¾Õ¼ °³¹ßÇÑ ¼ºñ½º¸¦ ¹èÆ÷ÇØ º¾´Ï´Ù.
µ¶¸³ÀûÀÎ ¸¶ÀÌÅ©·Î¼ºñ½º¸¦ ¿î¿µÇÏ¸é¼ ºí·ç-±×¸°/Ä«³ª¸® ¹èÆ÷¸¦ Áö¿øÇÏ´Â ÃÖÀûÀÇ ¿ÀǼҽº ¼Ö·ç¼ÇÀÎ µµÄ¿¿Í Äí¹ö³×Ƽ½ºÀÇ ±âº» ±¸¼º ¿ä¼Ò¸¦ ¼Ò°³ÇÕ´Ï´Ù. ¸¶ÀÌÅ©·Î¼ºñ½º °³¹ß ½Ã Ŭ¶ó¿ìµå °ü·Ã ±â¼ú ¿ä¼Ò¸¦ Äڵ庣À̽º¿Í ºÐ¸®ÇØ ºñÁî´Ï½º¿¡ ´õ¿í ÁýÁßÇÒ ¼ö ÀÖ°Ô ÇÏ´Â ¼ºñ½º ¸Þ½ÃÀÎ À̽ºÆ¼¿À ¹× ¹èÆ÷ÇÑ ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¸ÅÆ®¸¯À» ¸ð´ÏÅ͸µÇØ ½Ã°è¿ µ¥ÀÌÅÍ·Î ¼öÁýÇÏ´Â ÇÁ·Î¸ÞÅ׿콺(Prometheus), ÇÁ·Î¸ÞÅ׿콺·Î ¼öÁýÇÑ ¸ÅÆ®¸¯À» ½Ã°¢ÈÇÏ´Â ±×¶óÆijª(Grafana), Å°¾Ë¸®(Kiali)¸¦ ¼³Ä¡ÇÏ°í ¼³Á¤ÇØ º¾´Ï´Ù.
À¥ ½ºÅ©·¡ÇÎ ±â¹Ý ¼ºñ½º ȸ»ç¿¡¼ °³¹ßÀÚ·Î ½ÃÀÛÇÑ ÈÄ º¸Çè °ü·Ã SI ȸ»ç¸¦ °ÅÃÄ ÇöÀç´Â ³Ø½ºÆ®¸®¿¡¼ ±Ù¹«ÇÏ°í ÀÖ½À´Ï´Ù. 2018³â ¾ÆÅ°ÅØó ÄÁ¼³ÆÃÀ» ½ÃÀÛÀ¸·Î ¸ðµç ½Ã½ºÅÛÀ» ¸¶ÀÌÅ©·Î¼ºñ½º ¾ÆÅ°ÅØó·Î ±¸ÃàÇÏ¸é¼ ´Ù¾çÇÑ »óȲ¿¡¼ ÇØ°áÃ¥À» ã°í ÀÖ½À´Ï´Ù. ÃÖ±Ù¿¡´Â ¸ÖƼ-Å׳ÍÆ® ¾ÆÅ°ÅØó¿¡¼ ¿ªÇÒ ¹× ±ÇÇÑ °ü¸®¿Í ¸¶ÀÌÅ©·Î ÇÁ·ÐÆ®¿£µåÀÇ È¿À²ÀûÀÎ ±¸Çö/¹èÆ÷ ¹æ¹ýÀ» °í¹ÎÇÏ°í ÀÖ½À´Ï´Ù.
1Àå. µµ¸ÞÀÎ ÁÖµµ ¼³°è
1.1 µµ¸ÞÀÎ ·ÎÁ÷ ÆÐÅÏ
1.1.1 Æ®·£Àè¼Ç ½ºÅ©¸³Æ® ÆÐÅÏ
1.1.2 Å×ÀÌºí ¸ðµâ ÆÐÅÏ
1.1.3 ¼ºñ½º ·¹À̾î ÆÐÅÏ
1.1.4 µµ¸ÞÀÎ ¸ðµ¨ ÆÐÅÏ
1.2 Çí»ç°í³¯ ¾ÆÅ°ÅØó
1.3 µµ¸ÞÀÎ ÁÖµµ ¼³°è
1.3.1 À¯ºñÄõÅͽº ¾ð¾î
1.3.2 ºôµù ºí·Ï
1.3.3 ¿£Æ¼Æ¼
1.3.4 °ª °´Ã¼
1.3.5 ¼ºñ½º
1.3.6 ¸ðµâ
1.4 ¶óÀÌÇÁ»çÀÌŬ
1.4.1 ¾Ö±×¸®°ÔÀÌÆ®
1.4.2 ¾Ö±×¸®°ÔÀÌÆ®¿Í ´ÜÀ§ Å×½ºÆ®
1.4.3 ¾Ö±×¸®°ÔÀÌÆ® ¼³°è ±ÔÄ¢
1.4.4 ÆÑÅ丮
1.4.5 ¸®Æ÷ÁöÅ丮
1.5 Ãß»óÈµÈ ÇÙ½É
1.6 ¿ä¾à
2Àå. °´Ã¼ÁöÇâ ¼³°è ¿øÄ¢
2.1 Ã¥ÀÓ ÁÖµµ ¼³°è
2.2 ´ÜÀÏ Ã¥ÀÓ ¿øÄ¢
2.3 °³¹æ/Æó¼â ¿øÄ¢
2.4 ¸®½ºÄÚÇÁ ġȯ ¿øÄ¢
2.5 ÀÎÅÍÆäÀ̽º ºÐ¸® ¿øÄ¢
2.6 ÀÇÁ¸¼º ¿ªÀü ¿øÄ¢
2.7 ¸ðµâ
2.8 ¿ä¾à
3Àå. À̺¥Æ® ¼Ò½Ì I
3.1 ºÎ¼ À̵¿
3.2 °¨»ç¿Í ÀÌ·Â
3.2.1 ´ÜÀÏ Å×À̺í°ú ½ÃÄö½º
3.2.2 »óÅ Å×À̺í°ú ÀÌ·Â Å×ÀÌºí ºÐ¸®
3.2.3 º¯°æ °ª
3.3 µµ¸ÞÀÎ À̺¥Æ®
3.4 À̺¥Æ® ¼Ò½Ì
3.5 À̺¥Æ® ¼Ò½Ì ±¸Çö
3.5.1 µ¥ÀÌÅÍ ¸ðµ¨
3.5.2 ¾Ö±×¸®°ÔÀÌÆ®¿Í À̺¥Æ® ÀúÀå
3.5.3 Ä¿¸Çµå¿Í À̺¥Æ®
3.5.4 Ä¿¸Çµå¿Í À¯È¿¼º °Ë»ç
3.5.5 Àç¼öÈ(À̺¥Æ® ¸®Ç÷¹ÀÌ)
3.6 ¸¶ÀÌÅ©·Î¼ºñ½º ¸ðµâ
3.7 À̺¥Æ® ¼Ò½Ì°ú ´ÜÀ§ Å×½ºÆ®
3.8 ¿ä¾à
4Àå. À̺¥Æ® ¼Ò½Ì II
4.1 µµ¸ÞÀÎ °´Ã¼ ¶óÀÌÇÁ»çÀÌŬ
4.1.1 ¾Ö±×¸®°ÔÀÌÆ® »ý¼º
4.1.2 ¾Ö±×¸®°ÔÀÌÆ® »èÁ¦
4.2 µ¿½Ã¼º°ú À̺¥Æ® Ãæµ¹
4.3 Àç¼öÈ ¼º´É°ú ½º³À¼¦
4.3.1 ½º³À¼¦ »ý¼º
4.3.2 Àç¼öÈ Á¦¿Ü À̺¥Æ®
4.4 ½º³À¼¦ »ý¼º Àü·«
4.4.1 ÁÖ±âÀûÀÎ ½Ã°£
4.4.2 ¸Å N¹ø° À̺¥Æ®
4.4.3 µµ¸ÞÀÎ À̺¥Æ®
4.5 À̺¥Æ® ¼Ò½Ì°ú »ó¼ö
4.6 µµ¸ÞÀÎ À̺¥Æ®¿Í ¹öÀü
4.6.1 ¾÷ij½ºÆÃ
4.6.2 ¾÷ij½ºÅÍ
4.6.3 Áß°£ À̺¥Æ®
4.6.4 À̺¥Æ® ¸¶À̱׷¹À̼Ç
4.6.5 À̺¥Æ® ¹öÀü°ú ½º³À¼¦
4.7 ¸¶ÀÌÅ©·Î¼ºñ½º ¸ðµâ
4.8 ´Ù°Ç ó¸®(¹Ýº¹¹®)¿Í ¼º´É
4.8.1 º´·Ä ó¸®
4.8.2 ij½Ì
4.9 µ¥ÀÌÅÍ ¸¶À̱׷¹À̼Ç
4.10 ¹é¾÷°ú ¾ÆÄ«À̺ù
4.11 À̺¥½º ¼Ò½Ì°ú Ãß»óÈµÈ ÇÙ½É
4.11.1 EventSourcedAggregate
4.11.2 Command
4.11.3 AggregateStore
4.12 ¿ä¾à
5Àå. ¸¶ÀÌÅ©·Î¼ºñ½º Çù¾÷
5.1 Àιٿîµå ¾î´ðÅÍ¿Í RESTful API
5.1.1 HTTP ¸Þ¼Òµå
5.1.2 ¾Ö±×¸®°ÔÀÌÆ®¿Í URL
5.1.3 Ä¿¸Çµå¿Í RESTful API
5.1.4 Á¶È¸¿Í RESTful API
5.1.5 Àü¿ª ¿¹¿Ü ó¸®
5.1.6 ¸¶ÀÌÅ©·Î¼ºñ½º ¸ðµâ
5.2 ¾Æ¿ô¹Ù¿îµå ¾î´ðÅÍ¿Í RESTful API
5.3 À̺¥Æ® ºê·ÎÄ¿
5.3.1 µµÄ¿¿Í Ä«ÇÁÄ«
5.4 ¾Æ¿ô¹Ù¿îµå ¾î´ðÅÍ¿Í À̺¥Æ® ¹ßÇà
5.4.1 À̺¥Æ® ¹ßÇà
5.4.2 À̺¥Æ® ºê·ÎÄ¿¿Í ¸Þ½ÃÁö
5.4.3 º¯È¯(2Â÷) ¸Þ½ÃÁö(Ä¿¸Çµå/À̺¥Æ®)
5.4.4 ¼ºñ½º ³»ºÎ À̺¥Æ®¿Í ¿ÜºÎ ¹ßÇà À̺¥Æ®
5.5 Àιٿîµå ¾î´ðÅÍ¿Í À̺¥Æ® ¼Òºñ
5.6 À̺¥Æ® ¾î´ðÅÍ¿Í ¸¶ÀÌÅ©·Î¼ºñ½º ¸ðµâ
5.7 À̺¥Æ® ¾î´ðÅÍ¿Í Ãß»óÈµÈ ÇÙ½É
5.7.1 ¾î³ëÅ×À̼Ç
5.8 ·¹°Å½Ã ÅëÇÕ
5.8.1 Çǵå
5.8.2 À¥ÈÅ
5.8.3 ±×·¡ÇÁ Å¥¿¤
5.9 ¿ä¾à
6Àå. °á°úÀû ÀÏ°ü¼º
6.1 ±â¾÷ ÅëÇÕ ÆÐÅÏ
6.1.1 ¶ó¿ìÆà ½½¸³ ÆÐÅÏ
6.1.2 ÇÁ·Î¼¼½º ¸Å´ÏÀú ÆÐÅÏ
6.2 ºÐ»ê Æ®·£Àè¼Ç
6.3 »ç°¡
6.3.1 »ó°ü °ü°è ¾ÆÀ̵ð
6.3.2 ¿ÀÄÉÀ̽º·¹À̼Ç
6.3.3 ÄÚ·¹¿À±×·¡ÇÇ
6.3.4 ŸÀӾƿô
6.3.5 ÀǹÌÀû Àá±Ý
6.4 °èÁ ÀÌü
6.4.1 ¿ÀÄɽºÆ®·¹À̼Ç
6.4.2 ÄÚ·¹¿À±×·¡ÇÇ
6.5 À̺¥Æ® ¼Ò½Ì°ú °á°úÀû ÀÏ°ü¼º
6.5.1 À̺¥Æ® ¼Ò½Ì°ú »ç°¡
6.5.2 ÀǹÌÀû Àá±Ý
6.5.3 °á°úÀû ÀÏ°ü¼º
6.5.4 ŸÀӾƿô
6.5.5 »ó°ü °ü°è ¾ÆÀ̵ð¿Í ÃßÀû¼º
6.6 »ç·Ê ¿¬±¸
6.6.1 Ä«Æ®¿Í °ü½É »óÇ°
6.6.2 ÁÖ¹®°ú Àç°í
6.6.3 °áÁ¦¿Í °áÁ¦ ½ÇÆÐ
6.7 ÀüÅëÀûÀÎ À̷°ü¸®¿Í °á°úÀû ÀÏ°ü¼º
6.8 µµ¸ÞÀÎ À̺¥Æ®¿Í ¶óÀ̺귯¸®
6.9 ÀÏ°ü¼º°ú ¸¶ÀÌÅ©·Î¼ºñ½º ºÐ¸® ¹× ÅëÇÕ
6.10 ¿ä¾à
7Àå. ¸í·É°ú Á¶È¸ Ã¥ÀÓ ºÐ¸®(CQRS)
7.1 ¸í·É°ú Á¶È¸ Ã¥ÀÓ ºÐ¸®
7.2 ±¸Ã¼ÈµÈ ºä¿Í À̺¥Æ® Çڵ鷯
7.2.1 »óÇ° ÆǸŷ® ºä
7.2.2 »ó´ã»ç ÀÏÀÏ ÃÑ ÅëȽ𣠺ä
7.3 ºä Á¶È¸
7.4 CQRS¿Í RESTful API
7.5 ºä º¹¿ø
7.6 ¸¶ÀÌÅ©·Î¼ºñ½º ¸ðµâ
7.7 CQRS È°¿ë »ç·Ê
7.7.1 ¼±ÅÃÀû µ¿±âÈ ? ÄÚµå
7.7.2 À̺¥Æ® ÅëÇÕ ÀúÀå¼Ò ? °¨»ç
7.7.3 °ª ´©Àû ? ½Ç½Ã°£ ¸ÅÃâ ÇöȲ
7.7.4 º¹ÀâÇÑ °è»ê ? ¼³°è»ç ¼ö¼ö·á
7.7.5 µ¥ÀÌÅÍ µ¿±âÈ ? Ä«Æ®¿Í »óÇ° ÆǸŰ¡°Ý º¯°æ
7.8 À̺¥Æ® ¼Ò½Ì°ú ºä ÀÏ°ü¼º
7.9 ¿ä¾à
8Àå. »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º
8.1 CRUD »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º
8.2 ŽºÅ© ±â¹Ý »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º
8.3 »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º¿Í Ä¿¸Çµå
8.3.1 º¹ÇÕ Ä¿¸Çµå
8.3.2 ¸ñ·Ï°ú »ó¼¼
8.4 ÆäÀÌÁö¿Í ÄÄÆ÷³ÍÆ® ±¸¼º
8.5 »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º¿Í ºñµ¿±â ¼ºñ½º
8.5.1 È¸é ºñÈ°¼ºÈ ÈÄ »õ·Î°íħ
8.5.2 È®ÀÎ(¿Ï·á) ȸé
8.5.3 ¿¹»ó °á°ú Ç¥½Ã
8.5.4 À̺¥Æ®¿Í Ǫ½Ã
8.5.5 ŸÀÌ¸Ó¿Í Æú¸µ
8.6 ½ºº§Æ®¿Í ºñÆ®
8.6.1 ½ºº§Æ® ÇÁ·ÎÁ§Æ® »ý¼º
8.6.2 ¼¹ö ¼³Á¤
8.6.3 svelte-navigator ÀÇÁ¸¼º
8.7 °èÁ ÀÌü¿Í °èÁ ÆäÀÌÁö
8.8 ºñµ¿±â ±¸Çö
8.8.1 Æú¸µ°ú setInterval ÇÔ¼ö
8.8.2 Ǫ½Ã¿Í À¥¼ÒÄÏ
8.9 ¸¶ÀÌÅ©·Î ÇÁ·ÐÆ®¿£µå
8.9.1 ´ÜÀÏ ÆäÀÌÁö ¾ÖÇø®ÄÉÀ̼ǰú ÄÄÆ÷³ÍÆ®
8.9.2 ÄÄÆ÷³ÍÆ®¿Í À̺¥Æ® ÇÁ·Î±×·¡¹Ö
8.9.3 ÄÄÆ÷³ÍÆ® vs. À¥ ÄÄÆ÷³ÍÆ®
8.9.4 Assets output °æ·Î
8.10 ¸¶ÀÌÅ©·Î¼ºñ½º¿Í Çü»ó °ü¸®
8.11 ¿ä¾à
9Àå. Ŭ¶ó¿ìµå ȯ°æ
9.1 µµÄ¿
9.1.1 µµÄ¿ Å×½ºÅ©Å¾ ´Ù¿î·Îµå ¹× ¼³Ä¡
9.1.2 µµÄ¿ ¸®¼Ò½º ¼³Á¤
9.1.3 Dockerfile
9.1.4 À̹ÌÁö »ý¼º
9.1.5 µµÄ¿ Çãºê¿¡ À̹ÌÁö Ǫ½Ã
9.2 Äí¹ö³×Ƽ½º
9.2.1 Äí¹ö³×Ƽ½º ¼³Ä¡
9.3 Äí¹ö³×Ƽ½º ±¸¼º ¿ä¼Ò
9.3.1 ³×ÀÓ½ºÆäÀ̽º
9.3.2 Æĵå
9.3.3 ÄÁÇDZ׸Ê
9.3.4 ½ÃÅ©¸´
9.3.5 ¼ºñ½º
9.3.6 ¿£µåÆ÷ÀÎÆ®
9.3.7 µðÇ÷ÎÀ̸ÕÆ®¿Í ·¹Çø®Ä«¼Â
9.3.8 µðÇ÷ÎÀ̸ÕÆ®¿Í ½ÃÅ©¸´
9.4 À̽ºÆ¼¿À
9.4.1 À̽ºÆ¼¿À ¼³Ä¡
9.4.2 ³×ÀÓ½ºÆäÀ̽º »ý¼º
9.4.3 »çÀ̵åÄ« ¼³Á¤
9.4.4 °ÔÀÌÆ®¿þÀÌ
9.4.5 ¹öÃß¾ó ¼ºñ½º
9.5 ÇÁ·Î¸ÞÅ׿콺¿Í ±×¶óÆijª
9.5.1 ÇÁ·Î¸ÞÅ׿콺¿Í ±×¶óÆijª ¼³Ä¡
9.5.2 À̽ºÆ¼¿À °ÔÀÌÆ®¿þÀÌ
9.5.3 ¸¶ÀÌÅ©·Î¹ÌÅÍ
9.6 Å°¾Ë¸®
9.6.1 Å°¾Ë¸® ¼³Ä¡
9.6.2 Å°¾Ë¸®¿Í ¼ºñ½º ÀÇÁ¸¼º
9.7 ¿ä¾à