¼ÒÇÁÆ®¿þ¾î °³¹ßÀ» ÀßÇÏ°í ½Í´Ù¸é ¡®°³¹ß¡¯ °øºÎ¸¦ ÇØ¾ß ÇÕ´Ï´Ù!ÀÚ¹Ù °³¹ßÀÚ°¡ ÄÚƲ¸° °°Àº ½Å»ý ¾ð¾î¸¦ ´Ù·ê ¼ö ÀÖ°Ô µÈ´Ù°í Çؼ °³¹ßÀ» ´õ ÀßÇÏ°Ô µÇ´Â °ÍÀº ¾Æ´Ï´Ù. ¼ÒÇÁÆ®¿þ¾î °³¹ß ´É·ÂÀ» Å°¿ì°í ½Í´Ù¸é ¡®°³¹ß¡¯ ±× ÀÚü¸¦ °øºÎÇÏ°í ±âÃÊÀûÀÎ ¼³°è ¿ø¸®¸¦ ÀÌÇØÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ÀÌ Ã¥Àº °´Ã¼ÁöÇâ, SOLID, µðÀÚÀÎ ÆÐÅÏ, Å×½ºÆ® °°Àº ÁÖ¿ä °³¹ß °ü·Ã ÀÌ·ÐÀÌ ½ÇÁ¦ ÇÁ·ÎÁ§Æ®¿¡ ¾î¶»°Ô Àû¿ëµÉ ¼ö ÀÖ´ÂÁö ¼³¸íÇÑ´Ù.
ÄÄÇ»ÅÍ °øÇÐÀ» Àü°øÇÏ°í Ä«Ä«¿À¿¡¼ ¹é¿£µå ¿£Áö´Ï¾î·Î ±Ù¹«ÇÏ°í ÀÖ´Ù. ÇöÀç´Â ¿¡·¯ ¹× ·Î±×¸¦ ¼öÁýÇÏ´Â ¿ÉÀú¹öºô¸®Æ¼ Ç÷§ÆûÀ» ¸¸µå´Â ÀÏ¿¡ ÁýÁßÇÏ°í ÀÖ´Ù. Ãë¹Ì°¡ °³¹ßÀ̶ó°í ´ç´çÇÏ°Ô ¸»ÇÒ ¼ö ÀÖÀ» ¸¸Å ¼ÒÇÁÆ®¿þ¾î °³¹ßÀ» »ç¶ûÇϸç Åð±Ù ÈÄ¿¡´Â ±×¸²À» ±×¸®°Å³ª °³ÀÎ ÇÁ·ÎÁ§Æ®¸¦ ÁøÇàÇÑ´Ù. 2020³â¿¡´Â °ø°³ SW °³¹ßÀÚ ´ëȸ¿¡¼ Á¤º¸Åë½Å»ê¾÷ÁøÈï¿øÀå»óÀ» ¼ö»óÇß´Ù.
[1ºÎ] °´Ã¼ÁöÇ⠢à µé¾î°¡¸ç °³¹ßÀ» ¹è¿ö¾ß ÇÑ´Ù __±â¼ú vs. °³¹ß __°³¹ß ´É·ÂÀ» ±æ·¯¾ß ÇÏ´Â ÀÌÀ¯ __½ºÇÁ¸µ°ú JPA´Â ±â¼úÀÌ´Ù ÀÌ Ã¥À» Ãâ°£ÇÏ°Ô µÈ ÀÌÀ¯ ¢Ã 01Àå: ÀýÂ÷ÁöÇâ°ú ºñ±³Çϱâ 1.1 Ã¥ÀÓ°ú ¿ªÇÒ 1.2 TDA ¿øÄ¢ ¢Ã 02Àå: °´Ã¼ÀÇ Á¾·ù 2.1 VO(Value Object: °ª °´Ã¼) __2.1.1 ºÒº¯¼º __2.1.2 µ¿µî¼º __2.1.3 ÀÚ°¡ °ËÁõ 2.2 DTO(Data Transfer Object: µ¥ÀÌÅÍ Àü¼Û °´Ã¼) 2.3 DAO(Data Access Object: µ¥ÀÌÅÍ Á¢±Ù °´Ã¼) 2.4 ¿£Æ¼Æ¼(Entity: °³Ã¼) __2.4.1 µµ¸ÞÀÎ ¿£Æ¼Æ¼ __2.4.2 DB ¿£Æ¼Æ¼ __2.4.3 JPA ¿£Æ¼Æ¼ __2.4.4 Çؼ® 2.5 °´Ã¼ÀÇ ´Ù¾çÇÑ Á¾·ù ¢Ã 03Àå: Çൿ 3.1 ´ö ŸÀÌÇÎ 3.2 Çൿ°ú ±¸Çö 3.3 ÀÎÅÍÆäÀ̽º 3.4 Çൿ°ú ¿ªÇÒ 3.5 ¸Þ¼µå ¢Ã 04Àå: SOLID 4.1 SOLID ¼Ò°³ __4.1.1 ´ÜÀÏ Ã¥ÀÓ ¿øÄ¢ __4.1.2 °³¹æ Æó¼â ¿øÄ¢ __4.1.3 ¸®½ºÄÚÇÁ ġȯ ¿øÄ¢ __4.1.4 ÀÎÅÍÆäÀ̽º ºÐ¸® ¿øÄ¢ __4.1.5 ÀÇÁ¸¼º ¿ªÀü ¿øÄ¢ 4.2 ÀÇÁ¸¼º __4.2.1 ÀÇÁ¸¼º ÁÖÀÔ __4.2.2 ÀÇÁ¸¼º ¿ªÀü __4.2.3 ÀÇÁ¸¼º ¿ªÀü°ú ½ºÇÁ¸µ __4.2.4 ÀÇÁ¸¼ºÀÌ °Á¶µÇ´Â ÀÌÀ¯ 4.3 SOLID¿Í °´Ã¼ÁöÇâ 4.4 µðÀÚÀÎ ÆÐÅÏ ¢Ã 05Àå: ¼øȯ ÂüÁ¶ 5.1 ¼øȯ ÂüÁ¶ÀÇ ¹®Á¦Á¡ __5.1.1 ¹«ÇÑ ·çÇÁ __5.1.2 ½Ã½ºÅÛ º¹Àâµµ 5.2 ¼øȯ ÂüÁ¶¸¦ ÇØ°áÇÏ´Â ¹æ¹ý __5.2.1 ºÒÇÊ¿äÇÑ ÂüÁ¶ Á¦°Å __5.2.2 °£Á¢ ÂüÁ¶ È°¿ë __5.2.3 °øÅë ÄÄÆ÷³ÍÆ® ºÐ¸® __5.2.4 À̺¥Æ® ±â¹Ý ½Ã½ºÅÛ »ç¿ë 5.3 ¾ç¹æÇâ ¸ÅÇÎ 5.4 »óÀ§ ¼öÁØÀÇ ¼øȯ ÂüÁ¶ [2ºÎ] ½ºÇÁ¸µ°ú °´Ã¼ÁöÇâ ¼³°è ¢Ã 06Àå: ¾ÈƼÆÐÅÏ 6.1 ½º¸¶Æ® UI 6.2 ¾ç¹æÇâ ·¹À̾îµå ¾ÆÅ°ÅØó __6.2.1 ·¹À̾ ¸ðµ¨ ±¸¼º __6.2.2 °øÅë ¸ðµâ ±¸¼º 6.3 ¿ÏÈµÈ ·¹À̾îµå ¾ÆÅ°ÅØó 6.4 Æ®·£Àè¼Ç ½ºÅ©¸³Æ® ¢Ã 07Àå: ¼ºñ½º 7.1 Manager 7.2 ¼ºñ½ºº¸´Ù µµ¸ÞÀÎ ¸ðµ¨ 7.3 ÀÛÀº ±â°è 7.4 Á¶¾ð ¢Ã 08Àå: ·¹À̾îµå ¾ÆÅ°ÅØó 8.1 ·¹À̾îµå ¾ÆÅ°ÅØóÀÇ ÃÖ¼Ò Á¶°Ç 8.2 À߸øµÈ ·¹À̾îµå ¾ÆÅ°ÅØó __8.2.1 JPA ¿£Æ¼Æ¼ ¿ì¼± Á¢±Ù __8.2.2 API ¿£µåÆ÷ÀÎÆ® ¿ì¼± Á¢±Ù __8.2.3 º»ÁúÀ» ´Ù½Ã »ý°¢Çϱâ 8.3 ÁøÈÇÏ´Â ¾ÆÅ°ÅØó __8.3.1 ÀÎÁö ¸ðµ¨ º¯°æÇϱâ __8.3.2 JPA¿ÍÀÇ °áÇÕ ²÷±â __8.3.3 À¥ ÇÁ·¹ÀÓ¿öÅ©¿ÍÀÇ °áÇÕ ²÷±â 8.4 »õ·Î¿î Á¢±Ù¹ý 8.5 ºó¾àÇÑ µµ¸ÞÀÎ ¢Ã 09Àå: ¸ðµâ 9.1 ¸ðµâ¼º __9.1.1 µ¶¸³¼º __9.1.2 Àº´Ð¼º 9.2 ÆÐÅ°Áö ±¸Á¶ __9.2.1 °èÃþ ±â¹Ý ±¸Á¶ __9.2.2 µµ¸ÞÀÎ ±â¹Ý ±¸Á¶ __9.2.3 Á¤¸® 9.3 ÆÐÅ°Áö¿Í ¸ðµâ ¢Ã 10Àå: µµ¸ÞÀÎ 10.1 ¼ÒÇÁÆ®¿þ¾î °³¹ßÀÇ ½ÃÀÛ 10.2 ¾ÖÇø®ÄÉÀ̼ÇÀÇ º»Áú 10.3 µµ¸ÞÀÎ ¸ðµ¨°ú ¿µ¼Ó¼º °´Ã¼ __10.3.1 ÅëÇÕÇϱâ Àü·« __10.3.2 ±¸ºÐÇϱâ Àü·« __10.3.3 Æò°¡ ¢Ã 11Àå: ¾Ë¾ÆµÎ¸é À¯¿ëÇÑ ½ºÇÁ¸µ È°¿ë¹ý 11.1 ŸÀÔ ±â¹Ý ÁÖÀÔ 11.2 ÀÚ°¡ È£Ãâ [03ºÎ] Å×½ºÆ® ¢Ã 12Àå: ÀÚµ¿ Å×½ºÆ® 12.1 Regression 12.2 Àǵµ 12.3 ·¹°Å½Ã ÄÚµå ¢Ã 13Àå: Å×½ºÆ® ÇǶó¹Ìµå 13.1 ±¸±ÛÀÇ Å×½ºÆ® ÇǶó¹Ìµå 13.2 Å×½ºÆ® ºÐ·ù ±âÁØ 13.3 ¼ÒÇü Å×½ºÆ®ÀÇ Á߿伺 ¢Ã 14Àå: Å×½ºÆ® ´ë¿ª 14.1 Dummy 14.2 Stub 14.3 Fake 14.4 Mock __14.4.1 »óÅ ±â¹Ý °ËÁõ __14.4.2 ÇàÀ§ ±â¹Ý °ËÁõ __14.4.3 »óÅ ±â¹Ý vs. ÇàÀ§ ±â¹Ý 14.5 Spy 14.6 Á¤¸® ¢Ã 15Àå: Å×½ºÆ® °¡´É¼º 15.1 Å×½ºÆ®¸¦ ¾î·Æ°Ô ¸¸µå´Â ¿ä¼Ò __15.1.1 ¼û°ÜÁø ÀÔ·Â __15.1.2 ¼û°ÜÁø Ãâ·Â 15.2 Å×½ºÆ®°¡ º¸³»´Â ½ÅÈ£ ¢Ã 16Àå: Å×½ºÆ®¿Í ¼³°è 16.1 Å×½ºÆ®¿Í SRP 16.2 Å×½ºÆ®¿Í ISP 16.3 Å×½ºÆ®¿Í OCP, DIP 16.4 Å×½ºÆ®¿Í LSP ¢Ã 17Àå: Å×½ºÆ®¿Í °³¹ß ¹æ¹ý·Ð 17.1 TDD 17.2 BDD [ºÎ·Ï] A: Æ÷Æ®-¾î´ðÅÍ ÆÐÅÏ B: Ŭ¸° ¾ÆÅ°ÅØó C: ¼ÒÇÁÆ®¿þ¾î ¿£Áö´Ï¾î D: ½Ç¿ëÁÖÀÇ E: Âü°í ÀÚ·á