Ã¥¼Ò°³
°¡Àå ½±°Ô ¹è¿ì´Â µµ¸ÞÀÎ ÁÖµµ ¼³°è ÀÔ¹®¼!ÀÌ Ã¥Àº µµ¸ÞÀÎ ÁÖµµ ¼³°è(DDD)¸¦ óÀ½ ¹è¿ì´Â °³¹ßÀÚ¸¦ À§ÇÑ Ã¥ÀÌ´Ù. ½ÇÁ¦ ¾÷¹«¿¡ DDD¸¦ Àû¿ëÇÒ ¼ö ÀÖµµ·Ï ±âº»ÀûÀÎ DDDÀÇ ÇÙ½É °³³äÀ» ÀÍÈ÷°í ±¸ÇöÀ» ÅëÇØ ÇнÀÇÒ ¼ö ÀÖµµ·Ï ±¸¼ºÇß´Ù. ÀÌ Ã¥À¸·Î µµ¸ÞÀÎ ¸ðµ¨À» ÀÌ¿ëÇÏ¿© ¾ÖÇø®ÄÉÀ̼ÇÀ» ±¸ÇöÇÏ¸é¼ DDD¿¡ ´ëÇÑ ÀÌÇظ¦ ³ÐÈú ¼ö ÀÖÀ» °ÍÀÌ´Ù.
ÀúÀÚ¼Ò°³
ÄÚµùÀ» ÁÁ¾ÆÇÏ¿© ³ªÀ̸¦ ¸Ô°í ¹é¹ßÀÌ µÇ¾îµµ °³¹ßÀ» ÇÏ°í ½ÍÀº °³¹ßÀÚ´Ù. ÁÁÀº Ã¥ ¾²´Â °ÍÀ» ¸ñÇ¥·Î ²ÙÁØÈ÷ ºí·Î±×¿Í ºê·±Ä¡¿¡ ±ÛÀ» ¾²°í ÀÖÀ¸¸ç ¸¹Àº °¿¬ È°µ¿µµ ÇÏ°í ÀÖ´Ù.
- Àü) ¾ÆÀ̽ºÅ©¸²¿¡µà, ¿¡½º¾¾Áö¼Ö·ç¼ÇÁî, À§¸ÞÀ̵忣ÅÍÅ×ÀθÕÆ®, ´ÙÀ½Ä¿¹Â´ÏÄÉÀÌ¼Ç °³¹ßÀÚ
- Çö) ¿¡½º¾¾Áö·¦ °³¹ß½ÇÀå
Àú¼: ¡ºÅ×½ºÆ® ÁÖµµ °³¹ß ½ÃÀÛÇϱ⡻(°¡¸ÞÃâÆÇ»ç), ¡º½ºÇÁ¸µ5 ÇÁ·Î±×·¡¹Ö ÀÔ¹®¡»(°¡¸ÞÃâÆÇ»ç), ¡ºJPA ÇÁ·Î±×·¡¹Ö ÀÔ¹®¡»(°¡¸ÞÃâÆÇ»ç), ¡ºDDD START¡»(Áö¾Ø¼±), ¡º°´Ã¼ ÁöÇâ°ú µðÀÚÀÎ ÆÐÅÏ¡»(ÀÎÅõºÏ½º) µî
¸ñÂ÷
Chapter 1. µµ¸ÞÀÎ ¸ðµ¨ ½ÃÀÛÇϱâ 1.1 µµ¸ÞÀÎÀ̶õ? 1.2 µµ¸ÞÀÎ Àü¹®°¡¿Í °³¹ßÀÚ °£ Áö½Ä °øÀ¯ 1.3 µµ¸ÞÀÎ ¸ðµ¨ 1.4 µµ¸ÞÀÎ ¸ðµ¨ ÆÐÅÏ 1.5 µµ¸ÞÀÎ ¸ðµ¨ µµÃâ 1.6 ¿£Æ¼Æ¼¿Í ¹ë·ù 1.6.1 ¿£Æ¼Æ¼ 1.6.2 ¿£Æ¼Æ¼ÀÇ ½Äº°ÀÚ »ý¼º 1.6.3 ¹ë·ù ŸÀÔ 1.6.4 ¿£Æ¼Æ¼ ½Äº°ÀÚ¿Í ¹ë·ù ŸÀÔ 1.6.5 µµ¸ÞÀÎ ¸ðµ¨¿¡ set ¸Þ¼µå ³ÖÁö ¾Ê±â 1.7 µµ¸ÞÀÎ ¿ë¾î¿Í À¯ºñÄõÅͽº ¾ð¾î Chapter 2. ¾ÆÅ°ÅØó °³¿ä 2.1 ³× °³ÀÇ ¿µ¿ª 2.2 °èÃþ ±¸Á¶ ¾ÆÅ°ÅØó 2.3 DIP 2.3.1 DIP ÁÖÀÇ»çÇ× 2.3.2 DIP¿Í ¾ÆÅ°ÅØó 2.4 µµ¸ÞÀÎ ¿µ¿ªÀÇ ÁÖ¿ä ±¸¼º¿ä¼Ò 2.4.1 ¿£Æ¼Æ¼¿Í ¹ë·ù 2.4.2 ¾Ö±×¸®°ÅÆ® 2.4.3 ¸®Æ÷ÁöÅ͸® 2.5 ¿äû ó¸® È帧 2.6 ÀÎÇÁ¶ó½ºÆ®·°Ã³ °³¿ä 2.7 ¸ðµâ ±¸¼ºChapter 3. ¾Ö±×¸®°ÅÆ® 3.1 ¾Ö±×¸®°ÅÆ® 3.2 ¾Ö±×¸®°ÅÆ® ·çÆ® 3.2.1 µµ¸ÞÀÎ ±ÔÄ¢°ú ÀÏ°ü¼º 3.2.2 ¾Ö±×¸®°ÅÆ® ·çÆ®ÀÇ ±â´É ±¸Çö 3.2.3 Æ®·£Àè¼Ç ¹üÀ§ 3.3 ¸®Æ÷ÁöÅ͸®¿Í ¾Ö±×¸®°ÅÆ® 3.4 ID¸¦ ÀÌ¿ëÇÑ ¾Ö±×¸®°ÅÆ® ÂüÁ¶ 3.4.1 ID¸¦ ÀÌ¿ëÇÑ ÂüÁ¶¿Í Á¶È¸ ¼º´É 3.5 ¾Ö±×¸®°ÅÆ® °£ ÁýÇÕ ¿¬°ü 3.6 ¾Ö±×¸®°ÅÆ®¸¦ ÆÑÅ丮·Î »ç¿ëÇϱâChapter 4. ¸®Æ÷ÁöÅ͸®¿Í ¸ðµ¨ ±¸Çö(JPA Áß½É) 4.1 JPA¸¦ ÀÌ¿ëÇÑ ¸®Æ÷ÁöÅ͸® ±¸Çö 4.1.1 ¸ðµâ À§Ä¡ 4.1.2 ¸®Æ÷ÁöÅ͸® ±âº» ±â´É ±¸Çö 4.2 ½ºÇÁ¸µ µ¥ÀÌÅÍ JPA¸¦ ÀÌ¿ëÇÑ ¸®Æ÷ÁöÅ͸® ±¸Çö 4.3 ¸ÅÇÎ ±¸Çö 4.3.1 ¿£Æ¼Æ¼¿Í ¹ë·ù ±âº» ¸ÅÇÎ ±¸Çö 4.3.2 ±âº» »ý¼ºÀÚ 4.3.3 Çʵå Á¢±Ù ¹æ½Ä »ç¿ë 4.3.4 AttributeConverter¸¦ ÀÌ¿ëÇÑ ¹ë·ù ¸ÅÇΠó¸® 4.3.5 ¹ë·ù Ä÷º¼Ç: º°µµ Å×ÀÌºí ¸ÅÇÎ 4.3.6 ¹ë·ù Ä÷º¼Ç: ÇÑ °³ Ä®·³ ¸ÅÇÎ 4.3.7 ¹ë·ù¸¦ ÀÌ¿ëÇÑ ID ¸ÅÇÎ 4.3.8 º°µµ Å×ÀÌºí¿¡ ÀúÀåÇÏ´Â ¹ë·ù ¸ÅÇÎ 4.3.9 ¹ë·ù Ä÷º¼ÇÀ» @Entity·Î ¸ÅÇÎÇϱâ 4.3.10 ID ÂüÁ¶¿Í Á¶ÀÎ Å×À̺íÀ» ÀÌ¿ëÇÑ ´Ü¹æÇâ M-N ¸ÅÇÎ 4.4 ¾Ö±×¸®°ÅÆ® ·Îµù Àü·« 4.5 ¾Ö±×¸®°ÅÆ®ÀÇ ¿µ¼Ó¼º ÀüÆÄ 4.6 ½Äº°ÀÚ »ý¼º ±â´É 4.7 µµ¸ÞÀÎ ±¸Çö°ú DIPChapter 5. ½ºÇÁ¸µ µ¥ÀÌÅÍ JPA¸¦ ÀÌ¿ëÇÑ Á¶È¸ ±â´É 5.1 ½ÃÀÛ¿¡ ¾Õ¼ 5.2 °Ë»öÀ» À§ÇÑ ½ºÆå 5.3 ½ºÇÁ¸µ µ¥ÀÌÅÍ JPA¸¦ ÀÌ¿ëÇÑ ½ºÆå ±¸Çö 5.4 ¸®Æ÷ÁöÅ͸®/DAO¿¡¼ ½ºÆå »ç¿ëÇϱâ 5.5 ½ºÆå Á¶ÇÕ 5.6 Á¤·Ä ÁöÁ¤Çϱâ 5.7 ÆäÀÌ¡ ó¸®Çϱâ 5.8 ½ºÆå Á¶ÇÕÀ» À§ÇÑ ½ºÆå ºô´õ Ŭ·¡½º 5.9 µ¿Àû ÀνºÅϽº »ý¼º 5.10 ÇÏÀ̹ö³×ÀÌÆ® @Subselect »ç¿ëChapter 6. ÀÀ¿ë ¼ºñ½º¿Í Ç¥Çö ¿µ¿ª 6.1 Ç¥Çö ¿µ¿ª°ú ÀÀ¿ë ¿µ¿ª 6.2 ÀÀ¿ë ¼ºñ½ºÀÇ ¿ªÇÒ 6.2.1 µµ¸ÞÀÎ ·ÎÁ÷ ³ÖÁö ¾Ê±â 6.3 ÀÀ¿ë ¼ºñ½ºÀÇ ±¸Çö 6.3.1 ÀÀ¿ë ¼ºñ½ºÀÇ Å©±â 6.3.2 ÀÀ¿ë ¼ºñ½ºÀÇ ÀÎÅÍÆäÀ̽º¿Í Ŭ·¡½º 6.3.3 ¸Þ¼µå ÆĶó¹ÌÅÍ¿Í °ª ¸®ÅÏ 6.3.4 Ç¥Çö ¿µ¿ª¿¡ ÀÇÁ¸ÇÏÁö ¾Ê±â 6.3.5 Æ®·£Àè¼Ç ó¸® 6.4 Ç¥Çö ¿µ¿ª 6.5 °ª °ËÁõ 6.6 ±ÇÇÑ °Ë»ç 6.7 Á¶È¸ Àü¿ë ±â´É°ú ÀÀ¿ë ¼ºñ½ºChapter 7. µµ¸ÞÀÎ ¼ºñ½º 7.1 ¿©·¯ ¾Ö±×¸®°ÅÆ®°¡ ÇÊ¿äÇÑ ±â´É 7.2 µµ¸ÞÀÎ ¼ºñ½º 7.2.1 °è»ê ·ÎÁ÷°ú µµ¸ÞÀÎ ¼ºñ½º 7.2.2 ¿ÜºÎ ½Ã½ºÅÛ ¿¬µ¿°ú µµ¸ÞÀÎ ¼ºñ½º 7.2.3 µµ¸ÞÀÎ ¼ºñ½ºÀÇ ÆÐÅ°Áö À§Ä¡ 7.2.4 µµ¸ÞÀÎ ¼ºñ½ºÀÇ ÀÎÅÍÆäÀ̽º¿Í Ŭ·¡½ºChapter 8. ¾Ö±×¸®°ÅÆ® Æ®·£Àè¼Ç °ü¸® 8.1 ¾Ö±×¸®°ÅÆ®¿Í Æ®·£Àè¼Ç 8.2 ¼±Á¡ Àá±Ý 8.2.1 ¼±Á¡ Àá±Ý°ú ±³Âø »óÅ 8.3 ºñ¼±Á¡ Àá±Ý 8.3.1 °Á¦ ¹öÀü Áõ°¡ 8.4 ¿ÀÇÁ¶óÀÎ ¼±Á¡ Àá±Ý 8.4.1 ¿ÀÇÁ¶óÀÎ ¼±Á¡ Àá±ÝÀ» À§ÇÑ LockManager ÀÎÅÍÆäÀ̽º¿Í °ü·Ã Ŭ·¡½º 8.4.2 DB¸¦ ÀÌ¿ëÇÑ LockManager ±¸ÇöChapter 9. µµ¸ÞÀÎ ¸ðµ¨°ú ¹Ù¿îµðµå ÄÁÅؽºÆ® 9.1 µµ¸ÞÀÎ ¸ðµ¨°ú °æ°è 9.2 ¹Ù¿îµðµå ÄÁÅؽºÆ® 9.3 ¹Ù¿îµðµå ÄÁÅؽºÆ® ±¸Çö 9.4 ¹Ù¿îµðµå ÄÁÅؽºÆ® °£ ÅëÇÕ 9.5 ¹Ù¿îµðµå ÄÁÅؽºÆ® °£ °ü°è 9.6 ÄÁÅؽºÆ® ¸ÊChapter 10. À̺¥Æ® 10.1 ½Ã½ºÅÛ °£ °°áÇÕ ¹®Á¦ 10.2 À̺¥Æ® °³¿ä 10.2.1 À̺¥Æ® °ü·Ã ±¸¼º¿ä¼Ò 10.2.2 À̺¥Æ®ÀÇ ±¸¼º 10.2.3 À̺¥Æ® ¿ëµµ 10.2.4 À̺¥Æ® ÀåÁ¡ 10.3 À̺¥Æ®, Çڵ鷯, µð½ºÆÐó ±¸Çö 10.3.1 À̺¥Æ® Ŭ·¡½º 10.3.2 Events Ŭ·¡½º¿Í ApplicationEventPublisher 10.3.3 À̺¥Æ® ¹ß»ý°ú À̺¥Æ® Çڵ鷯 10.3.4 È帧 Á¤¸® 10.4 µ¿±â À̺¥Æ® ó¸® ¹®Á¦ 10.5 ºñµ¿±â À̺¥Æ® ó¸® 10.5.1 ·ÎÄà Çڵ鷯 ºñµ¿±â ½ÇÇà 10.5.2 ¸Þ½Ã¡ ½Ã½ºÅÛÀ» ÀÌ¿ëÇÑ ºñµ¿±â ±¸Çö 10.5.3 À̺¥Æ® ÀúÀå¼Ò¸¦ ÀÌ¿ëÇÑ ºñµ¿±â ó¸® 10.6 À̺¥Æ® Àû¿ë ½Ã Ãß°¡ °í·Á »çÇ× 10.6.1 À̺¥Æ® ó¸®¿Í DB Æ®·£Àè¼Ç °í·ÁChapter 11. CQRS 11.1 ´ÜÀÏ ¸ðµ¨ÀÇ ´ÜÁ¡ 11.2 CQRS 11.2.1 À¥°ú CQRS 11.2.2 CQRS Àå´ÜÁ¡