°´Ã¼ÁöÇâ µðÀÚÀÎ ÆÐÅÏ


À̹ø °´Ã¼ÁöÇâ µðÀÚÀÎ ÆÐÅÏ Àº ÇÁ·Î±×·¡¹Ö¿¡¼ ¹ß»ýÇÏ´Â ºñ½ÁÇÑ ¹®Á¦µéÀ» Ãß»óÈÇØ¼ Ŭ·¡½º °£ÀÇ °ü°è, Çൿ¾ç½ÄÀ» ºÐ·ùÇØ °¢°¢ÀÇ ºñ½ÁÇÑ ¹®Á¦ »óȲµé¿¡ µîÀåÇÒ¹ýÇÑ °´Ã¼µéÀ» ¼³Á¤ÇÏ°í °ü°è¸¦ Á¤ÀÇÇÏ´Â °ÍÀ» ¸»ÇÕ´Ï´Ù. ÀÚ¹Ù °´Ã¼ÁöÇâ µðÀÚÀÎ ÆÐÅÏ Àº ÇÁ·ÎÁ§Æ® ±Ô¸ð°¡ Ŭ¼ö·Ï ÀÏÀ» º¸´Ù È¿À²ÀûÀ¸·Î ó¸®ÇÒ ¼ö ÀÖ°Ô ¸¸µé¾îÁÖ´Â ÀåÁ¡ÀÌ ÀÖ½À´Ï´Ù. ¾ËÁö¿À ÀÚ¹Ù °´Ã¼ÁöÇâ µðÀÚÀÎ ÆÐÅÏ °ÀǸ¦ ÅëÇØ ÀýÂ÷ÁöÇâ°ú °´Ã¼ ÁöÇâ, ĸ½¶È, »ó¼Ó°ú Àç»ç¿ë, ´ÜÀÏ Ã¥ÀÓ ¿øÄ¢, °³¹æ Æó¼â ¿øÄ¢, ¸®½ºÄÚÇÁ ġȯ ¿øÄ¢, ÀÎÅÍÆäÀ̽º ºÐ¸® ¿øÄ¢, ÀÇÁ¸ ¿ªÀü ¿øÄ¢ µî °´Ã¼ÁöÇâ µðÀÚÀÎ ÆÐÅÏ ÀÇ ¸ðµç ºÎºÐ¿¡ ´ëÇØ ÇнÀÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.
-
01.56ºÐ µðÀÚÀÎ ÆÐÅϰú °´Ã¼ÁöÇâ part1
µðÀÚÀÎ ÆÐÅÏÀÇ Çʿ伺, ½ºÅ©¸°UI Ãß°¡, ¸Þ´ºº° Ŭ·¡½º »ý¼º ¹æ¹ý, ¸ðµ¨ÀÇ ¿ªÇÒ, UML ¸ðµ¨¸µ ¾ð¾î, ±¸Á¶ ´ÙÀ̾î±×·¥, ÇàÀÇ ´ÙÀ̾î±×·¥, Ŭ·¡½º ´ÙÀ̾î±×·¥, Àç±ÍÀû ¿¬°ü °ü°è
Ã¥°¥ÇÇ[00:14] °´Ã¼ÁöÇâ°ú µðÀÚÀÎ ÆÐÅÏÀÇ Çʿ伺/[01:14] ¼ÒÇÁÆ®¿þ¾îÀÇ ¼³°è°¡ Á¦´ë·Î µÇÁö ¾Ê¾ÒÀ» ¶§ ¹ß»ýÇÏ´Â ¹®Á¦Á¡/[01:36] applicationŬ·¡½º »ìÆìº¸±â/[01:47] ȸ鱸¼º È®ÀÎ/[02:30] ÄÚµå ¸®½ºÆ® ÀÛ¼º/[02:58] ȸé ÀüȯÀ» À§ÇÑ ÄÚµå/[03:21] clicked¸Þ¼Òµå¿¡¼ À̺¥Æ® ó¸®/[04:00] currentmenu¿¡ °¢°¢ ÇØ´çµÇ´Â ¸Þ´º¸í ÀúÀå/[04:24] ¹öư2 Ãß°¡/[05:00] clicked¸Þ¼Òµå È®ÀÎ/[06:59] °°Àº »óȲÀ» °´Ã¼ÁöÇâ ¹æ½ÄÀ¸·Î ó¸®/[07:15] ¸Þ´º°¡ ¼±ÅõǸé ÇØ´ç ȸé Ãâ·Â/[07:30] ¹öư1À» Ŭ¸¯ÇÏ¸é ¼±ÅÃµÈ ¸Þ´ºÈ¸é¿¡¼ ÀûÀýÇÑ Ã³¸® ¼öÇà/[08:03] screenUIŸÀÔ Á¤ÀÇ/[08:18] show¸Þ¼Òµå/[08:35] handlebutton1click¸Þ¼Òµå/[09:07] ¸Þ´ºº°·Î screenUI ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÑ Å¬·¡½º ÀÛ¼º/[09:35] clicked¸Þ¼Òµå È®ÀÎ/[10:01] show¸Þ¼Òµå È£Ãâ/[11:05] button1À» Ŭ¸¯ÇßÀ» ¶§ ó¸®ÇÏ´Â ºÎºÐ/[11:33] clicked¸Þ¼Òµå¿¡¼ Á¤¸®ÇØ¾ß ÇÒ ÄÚµù ºÎºÐ/[12:03] µÎ Á¾·ùÀÇ ¹öưó¸® ÄÚµå/[12:58] clickde¸Þ¼Òµå¸¦ ¸Þ´ºÃ³¸® ºÎºÐ°ú ¹öưó¸® ºÎºÐÀ¸·Î ºÐ¸®/[13:43] ¹öư2 Ãß°¡/[13:58] ÀÎÅÍÆäÀ̽º¿¡ handlebutton2clickÃß°¡/[14:22] ¹öư2 ó¸® ³»¿ë ÀÛ¼º/[16:30] ÃÖÁ¾ÀûÀ¸·Î ¼öÁ¤µÈ ÄÚµå ³»¿ë/[16:56] if/else±¸¹® »ç¿ë/[17:03] ¸Þ´º3À» Ãß°¡ ÇÒ °æ¿ì/[18:14] screenUIŸÀÔÀ» Ãß°¡½ÃŰ°í ¸Þ´ºº°·Î Ŭ·¡½º ¸¸µå´Â ¹æ¹ý ±¸Çö ¿Ï·á/[18:33] ÇÊ¿äÇÑ ³»¿ëÀ» ºÐ¸®ÇÔÀ¸·Î ¾òÀ» ¼ö ÀÖ´Â ÀåÁ¡/[19:18] °´Ã¼ÁöÇâ ±â¹ý/[19:45] °´Ã¼ÁöÇ⠸𵨸µ/[20:15] ¸ðµ¨ÀÇ ¿ªÇÒ/[21:03] ¸ðµ¨¸µ ¾ð¾î UML/[22:18] ´Ù¾çÇÑ ´ÙÀ̾î±×·¥ÀÇ Á¦°ø ÀÌÀ¯/[22:30] ±¸Á¶ ´ÙÀ̾î±×·¥/[23:45] ÇàÀ§ ´ÙÀ̾î±×·¥/[25:29] Ŭ·¡½º ´ÙÀ̾î±×·¥/[25:48] ÁÖ¿ä ±¸¼º ¿ä¼Ò/[26:03] Ŭ·¡½º ¼³¸í/[26:33] °í¾çÀ̸¦ ¸¸µé¾î³»´Â ¼³°èµµ/[27:22] Ŭ·¡½ºÀÇ ¼Ó¼º°ú ¿¬»êÀ» ±â¼ú/[27:48] public/private/protected/package/[28:52] ºÐ¼® ´Ü°è/[29:03] ¼³°è ´Ü°è/[29:37] °ü°è ¼³¸í/[30:07] ¿¬°ü °ü°è(association)/[30:48] µÎ Ŭ·¡½º »çÀÌÀÇ ¿¬°ü °ü°è/[31:48] µÎ¹øÂ° ´ÙÀ̾î±×·¥ È®ÀÎ/[32:30] µÎ Ŭ·¡½º »çÀÌÀÇ ¿¬°ü °ü°è¸¦ ³ªÅ¸³»´Â È»ìÇ¥/[33:14] ¼ýÀÚ·Î °´Ã¼ ¹üÀ§¸¦ Ç¥Çö/[33:35] ´ÙÁß¼ºÀÇ Ç¥Çö/[34:28] ¿¬°ü °ü°èÀÇ ¹æÇ⼺/[35:19] Ŭ·¡½º ´ÙÀ̾î±×·¥À» ¼Ò½ºÄÚµå·Î ±¸Çö/[35:49] Ŭ·¡½º·Î Ç¥Çö/[36:07] ¸Þ¼Òµå´Â publicÀ¸·Î ¼±¾ð/[36:45] ¿¬°ü °ü°è°¡ Ç¥ÇöµÇ¾î Àִ Ŭ·¡½º ´ÙÀ̾î±×·¥µµ ¼Ò½ºÄÚµå·Î ±¸Çö/[37:51] ¼Ó¼ºÀÇ À̸§ÀÌ ¿ªÇÒÀÇ À̸§ Ȱ¿ë/[38:13] ´Ü¹æÇâ ¿¬°ü °ü°è/[38:37] ¼Ò½ºÄÚµå ±¸Çö/[39:05] setter/getter¸Þ¼Òµå/[39:37] ´ÙÁß¼º ±¸Çö/[40:00] ¼Ò½ºÄÚµå ±¸Çö/[40:45] vectorÀÌ¿ë/[41:37] course°´Ã¼¿Í student°´Ã¼ÀÇ °ü°è/[42:15] ´ÙÁß¼º ¼öÁ¤/[42:52] ¼Ò½ºÄÚµå ±¸Çö/[43:12] class student¿Í class course°¡ µ¶¸³ÀûÀ¸·Î ¼±¾ð/[43:30] course classº¯È/[44:22] ¿¬°ü Ŭ·¡½º(association class)/[46:12] ¿¬°ü °ü°è¿¡ Ãß°¡ÇÒ ¼Ó¼ºÀ̳ª ÇàÀ§°¡ ÀÖÀ» ¶§ »ç¿ë/[46:37] ¿¬°ü Ŭ·¡½º ±¸Çö ¹æ¹ý/[46:52] ¿¹Á¦ È®ÀÎ/[47:22] transcriptŬ·¡½º/[48:36] studentŬ·¡½º¿Í transcriptŬ·¡½ºÀÇ ¿¬°ü °ü°èÀÇ ´ÙÁß¼º/[48:57] ÀÏ¹Ý Å¬·¡½º·Î º¯È¯ ÇÑ ¿¹/[49:05] transcript¸¦ ¼Ò½º¿¡ Àû¿ë/[50:00] transcript»ý¼º ÀÚ·á/[51:06] Ŭ·¡½º ´ÙÀ̾î±×·¥ Ãß°¡/[51:52] borrowing¿¬°ü °ü°è/[52:07] Àç±ÍÀû ¿¬°ü °ü°è/[54:44] °ü°èÀÇ ·çÇÁ -
02.54ºÐ °´Ã¼ÁöÇâ part2
Ŭ·¡½º ´ÙÀ̾î±×·¥, ÀϹÝÈ °ü°è, ÁýÇÕ °ü°è(ÇÕ¼º °ü°è, Áý¾à °ü°è), ÀÇÁ¸ °ü°è, ½ÇÃ¼È °ü°è, ÀýÂ÷ÁöÇâ°ú °´Ã¼ÁöÇâÀÇ Â÷ÀÌÁ¡, °´Ã¼ÀÇ Á¤ÀÇ, °´Ã¼ÀÇ Ã¥ÀÓ°ú Å©±â
Ã¥°¥ÇÇ[00:03] ÀϹÝÈ °ü°è(generalization)/[00:26] ÀÚ½ÄŬ·¡½º(¼ºêŬ·¡½º)/ºÎ¸ðŬ·¡½º(½´ÆÛŬ·¡½º)/[00:57] is a kind of °ü°è/[02:52] Ãß»ó ¸Þ¼Òµå/[03:00] Ãß»ó Ŭ·¡½º/[03:15] ÀϹÝÈ °ü°è¸¦ Ŭ·¡½º ´ÙÀ̾î±×·¥À¸·Î Ç¥Çö/[03:53] ÁýÇÕ °ü°è(composition, aggregation)/[04:15] ÇÕ¼º °ü°è(composition)/[04:39] ºÎºÐ °´Ã¼°¡ Àüü °´Ã¼¿¡ ¼ÓÇÏ´Â °ü°è/[05:15] Áý¾à °ü°è(aggregation)/[06:10] ºÎºÐ °´Ã¼¿Í Àüü °´Ã¼°¡ µ¶¸³Àû/[06:46] ¼Ò½ºÄÚµå ºñ±³/[07:08] ¼Ó¼ºÀº ¸ðµÎ µ¿ÀÏ/[08:07] ÇÕ¼º °ü°è ¸ðµ¨¸µ/[08:52] Áý¾à °ü°è ¸ðµ¨¸µ/[09:11] ÀÇÁ¸ °ü°è(dependency)/[09:37] Ŭ·¡½ºÀÇ ¼Ó¼º¿¡¼ ÂüÁ¶ÇÒ ¶§/[11:28] ¿¬»êÀÇ ÀÎÀÚ·Î »ç¿ëµÉ ¶§/[11:50] person°ú carÀÇ ¿¬°ü °ü°è ¼Ò½ºÄÚµå ±¸Çö/[12:26] gaspumpÃß°¡/[12:58] ½ÇÃ¼È °ü°è(realization)/[13:11] ÀÎÅÍÆäÀ̽º/[13:43] turn_on/turn_off±â´É/[14:24] Ŭ·¡½º ´ÙÀ̾î±×·¥ È®ÀÎ/[15:58] ½ºÅ×·¹¿À·Î interfaceÀÔ·Â/[16:25] Ű¿öµå/[16:59] ÀÎÅÍÆäÀ̽º¿Í Ŭ·¡½º »çÀÌÀÇ ½ÇÃ¼È °ü°è/[17:29] can do this °ü°è/[17:41] °´Ã¼ÁöÇâ¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ¼³¸í/[18:21] ÀýÂ÷ÁöÇâ/[18:48] ÇÁ·Î½ÃÀúµéÀÌ µ¥ÀÌÅ͸¦ Á¶ÀÛ/[19:37] ÇÁ·Î½ÃÀú¸¦ ÀÌ¿ëÇÑ ÇÁ·Î±×·¡¹Ö ±â¹ý/[21:33] ¿©·¯°¡Áö ¹®Á¦ ¹ß»ý/[22:41] °´Ã¼ÁöÇâ/[23:14] °´Ã¼µé·Î ±¸¼º/[23:45] ÇÁ·Î½ÃÀú´Â ÀÚ½ÅÀÌ ¼ÓÇÑ °´Ã¼ÀÇ µ¥ÀÌÅÍ¿¡¸¸ Á¢±Ù °¡´É/[24:30] application.java´Â ÀýÂ÷ÁöÇâÀ¸·Î ±¸Çö/[25:37] ÀýÂ÷ÁöÇâ-ÇÁ·Î±×·¥ ¼öÁ¤ÀÌ ¾î·Á¿î ±¸Á¶/[25:56] °´Ã¼ÁöÇâ-ÇÁ·Î±×·¥ ¼öÁ¤ÀÌ ½¬¿î ±¸Á¶/[26:11] °´Ã¼(object)¾Ë¾Æº¸±â/[26:41] °´Ã¼°¡ Á¦°øÇØ¾ß ÇÒ ±â´É-¼Ò¸®Å©±â Á¦¾î °´Ã¼/[28:18] signature(±â´É½Äº°À̸§, ÆÄ¶ó¹ÌÅÍ, °á°ú°ª)/[29:02] ÀÎÅÍÆäÀ̽º/[29:26] Ŭ·¡½º/[29:37] ¼Ò¸®Å©±â Á¦¾î °´Ã¼/[30:56] ÆÄÀÏ Àб⠰´Ã¼/[31:18] ¾ÏÈ£È Ã³¸® °´Ã¼/[31:48] ¸Þ½ÃÁö/[32:07] °´Ã¼ÀÇ Ã¥ÀÓ°ú Å©±â/[33:04] °´Ã¼ÀÇ Ã¥ÀÓÀ» Á¤ÀÇ-ÀÎÅÍÆäÀ̽º/[33:43] ÇÁ·Î±×·¥À» ¸¸µé±â À§ÇØ ÇÊ¿äÇÑ ±â´ÉÀÇ ¸ñ·Ï Á¤¸®/[34:22] °´Ã¼ÀÇ ±¸¼º/[35:30] ±ÔÄ¢/[36:27] ÀýÂ÷ÁöÇâ ¹æ½Ä°ú µ¿ÀÏÇÑ ±¸Á¶/[36:52] °´Ã¼ÁöÇâÀÇ ÀåÁ¡/[37:05] ´ÜÀÏ Ã¥ÀÓ ¿øÄ¢(single responsibility principle)/[37:59] ÀÇÁ¸/[38:28] ´Ù¸¥ °´Ã¼ ÀÌ¿ë/[38:49] È帧Á¦¾î °´Ã¼ ¼Ò½ºÄÚµå ±¸Çö/[39:49] ´Ù¸¥ °´Ã¼¸¦ »ý¼º/´Ù¸¥ °´Ã¼ÀÇ ¸Þ¼Òµå È£Ãâ/[40:15] ÆÄ¶ó¹ÌÅÍ Àü´Þ/[41:06] ½ºÆ®¸µ ŸÀÔÀ¸·Î ÆÄÀÏ °æ·Î¸¦ ¹Þµµ·Ï ¼öÁ¤µÉ °æ¿ì/[41:22] ½ºÆ®¸µ º¯¼ö Ãß°¡/[41:52] º¯°æÀº ÀÇÁ¸ °ü°è¿¡ µû¶ó ÀüÀÌ/[42:37] ¼øÈ¯ ÀÇÁ¸ÀÇ Æ¯¼º/[43:07] ÀÇÁ¸ÀÇ ¾ç¸é¼ºÀ» È®ÀÎÇÏ´Â ÄÚµå/[44:30] authenticatorŬ·¡½º¿¡ ÀÇÁ¸/[45:22] try/catch¹®¿¡ exceptionÀ» ÅëÇØ ±¸ºÐ/[45:52] authenticate¸Þ¼ÒµåÀÇ º¯°æ/[46:30] ÀÇÁ¸ÀÌ »óÈ£°£ÀÇ ¿µÇâÀ» ÁÖ´Â °Í ÀǹÌ/[47:19] ĸ½¶È(encapsulation)/[47:59] ¼Ò½ºÄÚµå È®ÀÎ/[48:15] ÀýÂ÷ÁöÇâÀûÀÎ ÄÚµù/[48:45] ¸¸·á½Ã ó¸®/[49:15] ¸¸·á ¿©ºÎ¸¦ È®ÀÎÇÏ´Â ±ÔÄ¢ÀÇ º¯°æÀ» Äڵ忡 ¹Ý¿µ/[49:52] ¹ö±× ¹ß»ý °¡´É¼º/[50:22] ¹®Á¦ ¹ß»ýÀÇ ÀÌÀ¯/[51:04] °´Ã¼ÁöÇâÀûÀ¸·Î ÄÚµå Àç ±¸Çö/[51:13] ĸ½¶È ±â´É/[51:51] ¸¸·á ¿©ºÎ È®ÀÎ ±¸ÇöÀ» ĸ½¶È/[52:28] ¸¸·á½Ã ó¸® ºÎºÐ È®ÀÎ/[53:13] ¸¸·á ¿©ºÎ ±ÔÄ¢ÀÇ º¯°æ/[54:13] ±â´ÉÀ» »ç¿ëÇÏ´Â °÷ÀÇ ¿µÇâÀ» ÃÖ¼ÒÈ -
03.53ºÐ °´Ã¼ÁöÇâ part3
ĸ½¶È ±â´É ±¸Çö, ĸ½¶È¸¦ À§ÇÑ ±ÔÄ¢, °´Ã¼ÁöÇâ ¼³°è°úÁ¤, °´Ã¼ÁöÇàÀÇ ¿ø¸®
Ã¥°¥ÇÇ[00:45] ĸ½¶È¸¦ À§ÇÑ 2°¡Áö ±ÔÄ¢/[00:55] tell, don't ask/[01:59] ¸¸·á ÀÏÀÚ µ¥ÀÌÅ͸¦ °¡Áø member°´Ã¼¿¡°Ô ¸¸·á ¿©ºÎ È®ÀÎ/[02:36] isexpired¸¦ memberŬ·¡½º¿¡¼ ±¸Çö/[02:45] µ¥¹ÌÅ׸£ÀÇ ¹ýÄ¢(law of demeter)/[03:38] ÆÄ¶ó¹ÌÅÍ·Î ¹ÞÀº °´Ã¼ÀÇ ¸Þ¼Òµå¸¸ È£Ãâ/[04:30] ±â´É ±¸ÇöÀÇ Ä¸½¶È¸¦ Çâ»ó/[04:40] ¿¹Á¦ ÄÚµå È®ÀÎ(½Å¹® ¹è´ÞºÎ ¿¹Á¦)/[04:56] °í°´°ú Áö°©¿¡ ´ëÇÑ Å¬·¡½º È®ÀÎ/[05:15] ½Å¹® ¹è´ÞºÎ Ŭ·¡½º/[06:54] ½Å¹® ¹è´ÞºÎ°¡ °í°´ÀÇ Áö°©À» È®ÀÎÇÏÁö ¾ÊÀ» °æ¿ì/[07:46] µ¥¹ÌÅ׸£ÀÇ ¹ýÄ¢À» ¾î±â°í ÀÖ´Â ÄÚµå/[08:39] µ¥¹ÌÅ׸£ÀÇ ¹ýÄ¢À» ÁöŰÁö ¾Ê´Â Áõ»ó/[09:22] °´Ã¼ÁöÇâ ¼³°è°úÁ¤/[09:52] Á¦°øÇØ¾ß ÇÒ ±â´É ã°í ¾Ë¸ÂÀº °´Ã¼¿¡ ÇÒ´ç/[10:20] °´Ã¼ °£¿¡ ¾î¶»°Ô ¸Þ½ÃÁö¸¦ ÁÖ°í ¹ÞÀ» Áö °áÁ¤/[10:37] ÆÄÀÏ µ¥ÀÌÅÍ ¾ÏÈ£È ±â´É ¸ñ·Ï/[11:01] °¢ °´Ã¼ÀÇ ¿¬°á ±×¸²/[11:41] °´Ã¼ÀÇ Å©±â´Â ±¸ÇöÀ» ÁøÇàÇÏ´Â °úÁ¤¿¡¼ ¸íÈ®/[12:13] °´Ã¼¸¦ »õ·Î ¸¸µé¾î ºÐ¸®/[13:24] ¼³°è¸¦ ÇÒ ¶§ º¯°æµÇ´Â ºÎºÐ °í·Á/[13:37] °´Ã¼ÁöÇâÀÇ ¿ø¸®/[13:56] Ãß»óÈ/[15:00] ÇÊ¿ä·ÎÇÏ´Â ¼Ó¼ºÀ̳ª ÇൿÀ» ÃßÃâÇÏ´Â ÀÛ¾÷/[15:16] Ãß»óÈÀÇ Á¤ÀÇ/[16:56] ĸ½¶È/[17:26] ÀÀÁýµµ/°áÇÕµµ/[18:07] °´Ã¼ÁöÇâ ¼³°è ¿ø¸®/[18:18] Á¤º¸Àº´Ð/[19:11] ÀϹÝÈ °ü°è/[19:48] ÀϹÝÈÀÇ °³³ä/[21:25] ¿¹Á¦ ¼Ò½ºÄÚµå È®ÀÎ/[21:56] Äڵ带 ¼öÁ¤ÇÒ Çʿ䰡 ¾øµµ·Ï ÀÛ¼º/[22:52] ¼ºêŬ·¡½º ĸ½¶È/[23:11] ÀϹÝÈ °ü°è¿Í À§ÀÓ/[23:30] ¿¹Á¦ È®ÀÎ/[24:33] ¿¹Á¦ ¼Ò½ºÄÚµå È®ÀÎ/[25:22] ¸ÞÀÎ ¸Þ¼Òµå È®ÀÎ/[25:41] stack¿¡¼ »ç¿ëÇØ¼´Â ¾ÈµÇ´Â ¸Þ¼Òµå/[25:56] is a kind of °ü°èÀÇ ¼º¸³/[26:56] À§ÀÓ/[27:25] ÀϹÝȸ¦ ´ë½ÅÇØ¼ À§ÀÓÀ» »ç¿ëÇÏ´Â ¹æ¹ý/[28:33] arlist°´Ã¼ »ý¼º-this·Î ÃʱâÈ/[28:52] arlist °´Ã¼¸¦ ÂüÁ¶ÇÒ ¼ö ÀÖµµ·Ï º¯°æ/[29:11] Ŭ·¡½ºÀÇ ÀϹÝÈ °ü°è Á¦°Å/[29:37] isempty/size¸Þ¼ÒµåÀÇ À§ÀӸ޼ҵ带 ¼ºêŬ·¡½º¿¡ Ãß°¡/[30:03] ÁýÇÕ·Ð °üÁ¡À¸·Î º» ÀϹÝÈ °ü°è/[31:06] disjoint/complete Á¦¾àÁ¶°Ç »ç¿ë/[31:48] ¿¹Á¦ È®ÀÎ/[33:28] ÀϹÝÈÀÇ ¿ª°ü°è Ư¼öÈ/[34:50] local/non local/[35:58] ´ÙÁß ºÐ·ù/[36:45] ºÐ·ù °¡´ÉÇÑ Á¶ÇÕ¿¡ °¢°¢ ´ëÀÀµÇ´Â Ŭ·¡½º »ý¼º/[37:15] ÁýÇÕ·Ð °üÁ¡/[38:06] ´ÙÇü¼º/[38:37] ¿¹Á¦ ¼Ò½ºÄÚµå È®ÀÎ/[39:00] ´ÙÇü¼ºÀÇ °³³ä/[40:00] ´ÙÇü¼ºÀ» »ç¿ëÇÏÁö ¾Ê°í ÀÛ¼ºÇÑ ¿¹Á¦ ÄÚµå/[40:20] ¸ÞÀÎÄÚµå È®ÀÎ/[40:52] ´ÙÇü¼ºÀ» »ç¿ëÇÑ ÄÚµå/[41:52] ÇÇÅÍÄÚµåÀÇ »ó¼Ó ±ÔÄ¢/[42:52] Ŭ·¡½º ´ÙÀ̾î±×·¥ÀÇ ¿¹Á¦/[45:15] ¿¬°ü°ü°è-Áý¾à°ü°è »ç¿ë/[45:50] ´ÙÇü¼º°ú Ãß»óŸÀÔ, Àç»ç¿ë/[46:05] ´ÙÇü¼º°ú »ó¼Ó/[47:14] ÀÚ¹Ù-Á¤ÀûŸÀÔ ¾ð¾î/[47:22] ÀÚ¹Ù½ºÅ©¸³Æ®,·çºñ,±×·çºñ-µ¿ÀûŸÀÔ ¾ð¾î/[47:45] ¿¹Á¦ ¼Ò½ºÄÚµå È®ÀÎ/[49:15] ŸÀÔÀÇ »ó¼Ó-ÀÎÅÍÆäÀ̽º »ó¼Ó,±¸Çö »ó¼Ó/[50:36] »ó¼Ó¹ÞÀº ÀÎÅÍÆäÀ̽º¿¡ Á¤ÀÇµÈ ¸Þ¼Òµå ½ÇÁ¦ ±¸Çö/[51:05] ±¸Çö»ó¼Ó -
04.51ºÐ ´ÙÇü¼º°ú Ãß»óŸÀÔ, Àç»ç¿ë
Ãß»ó ŸÀÔ°ú À¯¿¬ÇÔ, »ó¼Ó°ú Àç»ç¿ë, Á¶¸³À» ÀÌ¿ëÇÑ Àç»ç¿ë
Ã¥°¥ÇÇ[00:17] ½ÇÁ¦ ÄÚµå È®ÀÎ/[00:25] Ãß»ó ŸÀÔ°ú ½ÇÁ¦ ±¸ÇöÀÇ ¿¬°á/[01:03] Ŭ·¡½º ´ÙÀ̾î±×·¥ È®ÀÎ/[01:40] collector/[02:13] collector°´Ã¼Å¸ÀÔÀÇ collect¸Þ¼Òµå È£Ãâ/[03:53] socketlogreader/[04:15] Ãß»ó ŸÀÔÀ» ÀÌ¿ëÇÑ ±¸Çö ±³Ã¼ÀÇ À¯¿¬ÇÔ/[04:43] °¢°¢ÀÇ ±â´É¿¡ µû¶ó ³ª´« Ŭ·¡½º/[04:58] flowcontrollerÀÇ ÄÚµå º¸±â/[05:45] file readºÎºÐ ¼öÁ¤/[06:30] »ý¼ºÀÚ boolean/[07:10] flowcontroller ¼³¸í/[07:46] ±âÁ¸ ¿ä±¸»çÇ×°ú Ãß°¡µÈ ¿ä±¸»çÇ×/[08:33] ±¸Çö Ãß»óÈ/[08:50] byteSource.java ÀÎÅÍÆäÀ̽º Ãß°¡/[09:26] socketDateReaderÃß°¡Çؼ byteSource»ó¼Ó¹Þ±â/[10:07] flowcontrollerÄÚµå´Â byteSource¸¦ »ç¿ëÇϵµ·Ï ¼öÁ¤ °¡´É/[10:50] source.read¸Þ¼Òµå È£Ãâ/[11:37] byteSourceŸÀÔÀÇ °´Ã¼¸¦ »ý¼ºÇÏ´Â ºÎºÐ/[12:26] byteSourceŸÀÔ °´Ã¼ »ý¼º±â´É ºÐ¸®/[12:46] »ý¼ºÀÚ¸¦ ÀÌ¿ë, byteSourceÀü´Þ¹Þ±â/[13:07] ¹®Á¦ ÇØ°á/[13:20] create¸Þ¼Òµå º¸±â/[13:50] singleton patternÀû¿ëÇÑ ºÎºÐ/[14:16] flowcontroller ¼öÁ¤/[14:50] http¸¦ ÀÌ¿ëÇØ ¾ÏÈ£ÈÇÒ µ¥ÀÌÅ͸¦ Àоî¿À¶ó´Â ¿ä±¸ ¹ß»ý/[15:20] º¯°æµÇ´Â Ŭ·¡½º´Â byteSourceFactory¿¡ Àû¿ë/[16:03] Ãß»óÈ °úÁ¤À» ÅëÇØ ¾òÀº 2°¡Áö À¯¿¬ÇÔ/[17:48] µ¥ÀÌÅÍ Àд ºÎºÐ°ú »ý¼ºÇÏ´Â ºÎºÐ Ãß»óÈ/[18:02] º¯ÈµÇ´Â ºÎºÐÀ» Ãß»óÈÇϱâ/[19:07] Ãß»óŸÀÔÀ¸·Î ±³Ã¼/[20:10] Ãß»óȰ¡ µÇ¾îÀÖÁö ¾ÊÀº ÄÚµå/[21:21] ÀÎÅÍÆäÀ̽º¿¡ ´ë°í ÇÁ·Î±×·¡¹ÖÇϱâ/[22:22] ÀÎÅÍÆäÀ̽º´Â »õ·Ó°Ô ¹ß°ßµÈ Ã߻󰳳äÀ» ÅëÇØ µµÃâ/[23:03] program to interface±ÔÄ¢/[23:37] ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇØ¾ßÇÒ °æ¿ì/[24:37] ÀÎÅÍÆäÀ̽º´Â ÀÎÅÍÆäÀ̽º »ç¿ëÀÚ ÀÔÀå¿¡¼ ¸¸µé±â/[25:22] ¼ÒÄÏÀ» ÀÌ¿ëÇØ µ¥ÀÌÅ͸¦ Àоî¿À´Â ±â´ÉÀÌ ÇÊ¿äÇÒ °æ¿ì/[26:29] ByteSource/[26:52] ÀÎÅÍÆäÀ̽º¿Í Å×½ºÆ®/[27:48] testProcessŬ·¡½º ÀÛ¼º/[28:21] byteSourceÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇϵµ·Ï ÇÁ·Î±×·¡¹Ö µÇ¾îÀÖ´Â °æ¿ì/[28:45] mock°´Ã¼¸¦ ÀÌ¿ëÇØ Å×½ºÆ®/[30:18] mock°´Ã¼¸¦ ¸¸µå´Â ¹æ¹ý/[30:45] »ó¼Ó°ú Àç»ç¿ë/[31:22] À¥ ¿äûÀ» ó¸®Çϱâ À§ÇÑ Å¬·¡½º Á¦°ø/[31:41] BaseCommandController/[32:45] BaseCommandController°¡ AbstractController±â´É È®Àå/[33:37] »ó¼ÓÀÇ ´ÜÁ¡/[34:51] ÀÇÁ¸Çϴ Ŭ·¡½º Äڵ尡 º¯°æµÇ¸é ÀÚ½Ä Å¬·¡½º¿¡ ¿µÇâ/[35:57] »ó¼ÓÀ» ÅëÇÑ Àç»ç¿ëÀÇ ´ÜÁ¡/[36:14] Ŭ·¡½ºÀÇ ºÒÇÊ¿äÇÑ Áõ°¡/[37:19] ¾ÐÃàÀ» ¸ÕÀú ÇÏ°í ¾ÏÈ£ÈÇÑ ÀúÀå¼Ò°¡ ÇÊ¿äÇÒ °æ¿ì/[39:15] »ó¼ÓÀÇ ¿À¿ë/[40:52] Á¶¸³À» ÀÌ¿ëÇÑ Àç»ç¿ë/[41:37] 4°³ÀÇ °´Ã¼¸¦ Á¶¸³ÇÑ ¿¹Á¦/[42:30] EncryptorŬ·¡½º Àç»ç¿ë/[44:00] Á¶¸³À» ÀÌ¿ëÇÏ¸é ºÒÇÊ¿äÇÑ Å¬·¡½º Áõ°¡ ¹æÁö/[44:37] Á¶¸³¹æ½ÄÀÇ ¶Ç ´Ù¸¥ ÀåÁ¡/[45:36] »ó¼Óº¸´Ù´Â °´Ã¼ Á¶¸³ »ç¿ë/[46:06] Á¶¸³À» »ç¿ëÇÒ¶§ÀÇ ´ÜÁ¡/[46:37] À§ÀÓ(delegation)/[48:05] »ó¼ÓÀ» »ç¿ëÇÒ °æ¿ì/[49:37] Ŭ·¡½º °èÃþÀÇ Æ¯Â¡/[51:15] Á¶¸³À¸·Î ÀüȯÇÏ´Â ºÎºÐ °í·Á -
05.56ºÐ ¼³°è ¿øÄ¢°ú DI¿Í ¼ºñ½º ·ÎÄÉÀÌÅÍ part1
´ÜÀÏ Ã¥ÀÓ ¿øÄ¢, °³¹æ Æó¼â ¿øÄ¢, ¸®½ºÄÚÇÁ ġȯ ¿øÄ¢, ÀÎÅÍÆäÀ̽º ºÐ¸® ¿øÄ¢, ÀÇÁ¸ ¿ªÀü ¿øÄ¢, ¾îÇø®ÄÉÆ¼¼Ç ¿µ¿ª, ¸ÞÀÎ ¿µ¿ª
Ã¥°¥ÇÇ[00:28] ¼³°è ¿øÄ¢(SOLID)/[01:25] ´ÜÀÏ Ã¥ÀÓ ¿øÄ¢(Single responsibility principle)/[02:13] ´ÜÀÏ Ã¥ÀÓ ¿øÄ¢À» À§¹ÝÇßÀ» °æ¿ìÀÇ ¹®Á¦/[02:42] updateGui¸Þ¼Òµå/[03:20] httpÇÁ·ÎÅäÄÝ¿¡¼ ¼ÒÄÏÇÁ·ÎÅäÄÝ·Î º¯°æÀÌµÉ °æ¿ì/[05:10] ´ÜÀÏ Ã¥ÀÓ ¿øÄ¢À» À§¹ÝÇßÀ» °æ¿ìÀÇ ¶Ç ´Ù¸¥ ¹®Á¦/[05:30] ´ÜÀÏ Ã¥ÀÓ ¿øÄ¢À» ÁؼöÇÒ °æ¿ì/[06:15] µ¥ÀÌÅÍ Àбâ, µ¥ÀÌÅÍ º¸¿©ÁÖ±â/[07:09] ´ÜÀÏ Ã¥ÀÓ ¿øÄ¢À» Áöų ¼ö ÀÖ´Â ¹æ¹ý/[08:26] °³¹æ Æó¼â ¿øÄ¢(Open-closed principle)/[09:52] ±â´ÉÀ» È®ÀåÇϸ鼵µ ±âÁ¸ÄÚµå´Â º¯°æµÇÁö ¾Ê´Â °ÍÀ» ÀǹÌ/[10:22] º¯ÈµÇ´Â ºÎºÐÀ» Ãß»óÈÇØ¼ Ç¥Çö/[10:58] °³¹æ Æó¼â ¿øÄ¢À» ±¸ÇöÇÏ´Â ¶Ç ´Ù¸¥ ¹æ¹ý/[11:16] ResponseSenderŬ·¡½º ¿¹Á¦/[11:48] sendHeader, sendBody/[12:20] ResponseSender¸¦ »ó¼Ó¹ÞÀº Ŭ·¡½º/[13:01] ResponseSenderŬ·¡½º´Â È®Àå¿¡´Â ¿·ÁÀÖÁö¸¸ º¯°æ¿¡´Â ´ÝÇôÀÖ´Â°Í ÀǹÌ/[13:46] °³¹æ Æó¼â ¿øÄ¢ÀÌ ±úÁø °ÍÀÌ ¾Æ´ÑÁö È®ÀÎÇØ¾ßÇÒ Æ¯Â¡/[14:11] ´Ù¿îij½ºÆÃ/[14:43] ŸÀÔÈ®ÀÎ/[15:18] instanceof ŸÀÔÈ®ÀÎ ¿¬»êÀÚ/[15:46] drawSpecific¸Þ¼Òµå/[16:10] ºñ½ÁÇÑ if-elseºí·Ï/[16:48] EnemyŬ·¡½º¿¡ »õ·Î¿î °æ·ÎÆÐÅÏÀ» Ãß°¡ÇÒ °æ¿ì/[17:11] °æ·ÎÆÐÅÏ Ãß»óÈ/[18:48] ¸®½ºÄÚÇÁ ġȯ ¿øÄ¢(Liskov substitution principle)/[20:18] °¡Àå ´ëÇ¥ÀûÀÎ ¿¹Á¦(Á÷»ç°¢Çü, Á¤»ç°¢Çü) È®ÀÎ/[20:48] squareŬ·¡½º°¡ rectangleŬ·¡½º¸¦ »ó¼Ó¹Þµµ·Ï ±¸Çö/[21:22] increseHeight¸Þ¼Òµå »ìÆìº¸±â/[22:41] instanceof¿¬»êÀÚ »ç¿ë/[23:55] LSP´Â °è¾à°ú È®Àå¿¡ ´ëÇÑ °Í/[25:45] ¸®½ºÄÚÇÁ ġȯ ¿øÄ¢À» ¾î±æ °æ¿ì/[27:07] instanceof¿¬»êÀÚ¸¦ »ç¿ëÇØ¼ È®ÀÎ/[28:29] »óÀ§Å¸ÀÔÀÇ Ãß»óȰ¡ µÇÁö¾Ê¾Æ »ý±ä ¹®Á¦/[29:15] itemŬ·¡½º¿Í specialitemŬ·¡½º ¼Ò½ºÄÚµå È®ÀÎ/[30:03] instanceof¿¬»êÀÚ¸¦ »ç¿ëÇÏ´ø Äڵ带 Ŭ·¡½º¸¸ »ç¿ëÇϵµ·Ï ±¸Çö/[31:00] ÀÎÅÍÆäÀ̽º ºÐ¸® ¿øÄ¢(Interface segregation principle)/[31:17] Ŭ¶óÀÌ¾ðÆ®´Â ÀÚ½ÅÀÌ »ç¿ëÇÏ´Â ¸Þ¼Òµå¿¡¸¸ ÀÇÁ¸/[31:47] ÀÎÅÍÆäÀ̽º ºÐ¸® ¿øÄ¢À» ÁöŰÁö ¾Ê¾ÒÀ» °æ¿ì/[33:05] ArticleServiceÀÇ ¸ñ·Ï Àб⠱â´ÉÀÇ º¯°æ ¹ß»ý/[34:22] °Ô½Ã±Û ¸ñ·Ï ±â´É¿¡¸¸ º¯°æÀÌ µÆ¾îµµ ¸ðµç ¼Ò½º¸¦ ´Ù½Ã ÄÄÆÄÀÏ/[36:06] ¿ëµµ¿¡ ¸Â°Ô ÀÎÅÍÆäÀ̽º ºÐ¸®/[36:52] ÀÎÅÍÆäÀ̽º¸¦ ºÐ¸®ÇÏ´Â ±âÁØ-Ŭ¶óÀ̾ðÆ®/[37:14] ÀÇÁ¸ ¿ªÀü ¿øÄ¢(Dependency inversion principle)/[37:44] °í¼öÁØ ¸ðµâ°ú Àú¼öÁØ ¸ðµâ/[38:43] °í¼öÁØ ¸ðµâ°ú Àú¼öÁØ ¸ðµâÀÇ ¿¹Á¦/[40:37] Àú¼öÁØ ¸ðµâÀÌ °í¼öÁØ ¸ðµâÀ» ÀÇÁ¸ÇÏ°Ô ¸¸µé¾î ÇØ°á/[41:43] ÀÇÁ¸ ¿ªÀü ¿øÄ¢Àº ŸÀÔÀÇ ¼ÒÀ¯µµ ¿ªÀü/[42:30] ¹èÆ÷ ±âÁØÀÌ µÇ´Â ÆÐŰÁö/[43:19] ÀÇÁ¸ ¿ªÀü ¿øÄ¢À» Àû¿ëÇÏÁö ¾ÊÀ» °æ¿ì/[43:50] DI¿Í ¼ºñ½º ·ÎÄÉÀÌÅÍ/[44:07] ¾îÇø®ÄÉÀÌ¼Ç ¿µ¿ª / ¸ÞÀÎ ¿µ¿ª/[44:43] ºñµð¿À Æ÷¸Ë º¯È¯±â ¿¹Á¦/[45:34] ¿ä±¸»çÇ× ºÐ¼®/[46:15] ºñµð¿À Æ÷¸Ë º¯È¯±â ¼³°è È®ÀÎ/[47:35] °³¹æ Æó¼â ¿øÄ¢/[48:19] workerŬ·¡½º ÄÚµå »ìÆìº¸±â/[49:00] jobQueue¸¦ ±¸ÇöÇÑ °´Ã¼ ±¸Çϱâ/[49:20] Locator°´Ã¼ »ç¿ë/[50:22] LocatorŬ·¡½º´Â transcoderÆÐŰÁö¿¡ À§Ä¡/[51:35] Locator°´Ã¼ÀÇ ÃʱâÈ/[51:52] ¸ÞÀÎ ¿µ¿ª/[53:00] ¾îÇø®ÄÉÀÌ¼Ç ¿µ¿ªÀÇ °´Ã¼µéÀ» »ý¼º, ¼³Á¤, ½ÇÇà/[55:08] ¼ºñ½º locator¹æ½Ä -
06.58ºÐ ¼³°è ¿øÄ¢°ú DI¿Í ¼ºñ½º ·ÎÄÉÀÌÅÍ part2
DI¸¦ ÀÌ¿ëÇÑ ¿ÜÁ¸°´Ã¼ »ç¿ë ¹æ¹ý, ¼ºñ½º ·ÎÄÉÀÌÅ͸¦ ÀÌ¿ëÇÑ ÀÇÁ¸ °´Ã¼ »ç¿ë, µðÀÚÀÎ ÆÐÅÏÀÇ ÀÌÇØ, GoF µðÀÚÀÎ ÆÐÅÏ, UML°ú µðÀÚÀÎ ÆÐÅÏ, °¢ µðÀÚÀÎ ÆÐÅϵé
Ã¥°¥ÇÇ[00:19] DI¸¦ ÀÌ¿ëÇÑ ÀÇÁ¸ °´Ã¼ »ç¿ë¹æ¹ý/[00:56] ¼ºñ½º ·ÎÄÉÀÌÅ͸¦ »ç¿ëÇÒ °æ¿ì/[01:38] worker»ý¼ºÀÚ/[02:15] mainŬ·¡½º º¯°æ/[03:23] DI¸¦ ÅëÇØ ÀÇÁ¸ °´Ã¼¸¦ °ü¸®ÇÒ °æ¿ì/[03:38] mainŬ·¡½º°¡ Á¶¸³±âÀÇ ¿ªÇÒ/[03:57] AssemblerÀÛ¼º/[04:27] getWorker, getJobCLI¸¦ Á¦°ø/[05:46] DI¸¦ ÀÌ¿ëÇÑ ÀÇÁ¸ °´Ã¼ »ç¿ë/[06:15] »ý¼ºÀÚ ¹æ½Ä/[06:42] ¼³Á¤ ¸Þ¼µå ¹æ½Ä/[07:30] Á¶¸³±â´Â »ý¼ºÀÚ¿Í ¼³Á¤ ¸Þ¼µå¸¦ ÀÌ¿ëÇØ ÀÇÁ¸ °´Ã¼ Àü´Þ/[07:46] DI¿Í Å×½ºÆ®/[08:20] Ŭ·¡½º ±¸ÇöÀÌ ¿Ï·áµÇÁö ¾ÊÀº »óȲ/[09:03] springframework»ìÆìº¸±â/[09:33] worker´Â »ý¼ºÀÚ ¹æ½Ä, jobCli´Â ¼³Á¤ ¸Þ¼µå ¹æ½Ä ÀÌ¿ë/[10:13] propertyű×/[11:46] classPathXmlApplicationContextŬ·¡½º/[12:11] string Á¶¸³±âÀÇ ¿ªÇÒ/[13:13] xml¼³Á¤ÆÄÀÏÀ» »ç¿ëÇÏ´Â ¹æ½Ä/[14:11] xmlÀ» »ç¿ëÇÒ ¶§ÀÇ ¹®Á¦Á¡À» ÇØ°áÇÏ´Â ¹æ¹ý/[14:31] xmlÆÄÀÏÀ» javaÄÚµå ±â¹ÝÀ¸·Î ±³Ã¼ÇÑ ¿¹Á¦/[15:20] ÀÇÁ¸ °´Ã¼¸¦ º¯°æÇØ¾ß ÇÏ´Â °æ¿ì/[15:46] ¼ºñ½º ·ÎÄÉÀÌÅ͸¦ ÀÌ¿ëÇÑ ÀÇÁ¸ °´Ã¼ »ç¿ë/[16:45] ½ÇÇà ȯ°æÀÇ Á¦¾à¶§¹®¿¡ DIÆÐÅÏÀ» Àû¿ëÇÒ ¼ö ¾ø´Â °æ¿ì/[17:07] serviceLocator/[17:41] ¼ºñ½º ·ÎÄÉÀÌÅͰ¡ ¿Ã¹Ù¸£°Ô µ¿ÀÛ ÇÏ·Á¸é/[18:26] ¼ºñ½º ·ÎÄÉÀÌÅ͸¦ ±¸ÇöÇÏ´Â ¹æ½Ä/[18:52] °´Ã¼ µî·Ï ¹æ½Ä/[19:15] ¼ºñ½º ·ÎÄÉÀÌÅÍ Á¢±Ù À§ÇÑ static¸Þ¼µå Á¦°ø/[19:37] ¸ÞÀÎ ¿µ¿ªÀÇ ÄÚµå È®ÀÎ/[20:00] ¾îÇø®ÄÉÀÌ¼Ç ¿µ¿ª ÄÚµå È®ÀÎ/[20:37] ¼ºñ½º ·ÎÄÉÀÌÅͰ¡ Á¦°øÇÒ °´Ã¼ÀÇ Á¾·ù/[21:48] ¾îÇø®ÄÉÀÌ¼Ç ¿µ¿ª¿¡¼ ÀÇÁ¸ °´Ã¼ º¯°æ °¡´É/[22:33] »ó¼Ó/[23:03] abstract¸¦ ÀÌ¿ëÇØ ±¸Çö/[23:33] ÀÇÁ¸ °´Ã¼¸¦ ÇÊ¿ä·Î ÇÏ´Â ÄÚµå/[24:25] myServiceLocatorÁ¤ÀÇ/[25:14] main¿µ¿ª¿¡¼ Ŭ·¡½ºÀÇ °´Ã¼ »ý¼º/[25:59] Áö³×¸¯ / ÅÛÇø´/[26:07] serviceLocatorÀÇ ´ÜÁ¡/[27:22] jobQueueLocator¿Í transcoderLocator¸¦ µû·Î »ý¼º/[28:15] Áö³×¸¯À̳ª ÅÛÇø´À» ÀÌ¿ëÇØ ¼ºñ½º ·ÎÄÉÀÌÅ͸¦ ±¸ÇöÇÒ °æ¿ì/[28:33] Áö³×¸¯ ¹æ½ÄÀÇ ¿¹Á¦/[28:56] static¸Þ¼µå¸¸À¸·Î ±¸¼º/[29:41] jobQueue¿¡¸¸ ÀÇÁ¸/[30:33] ¼ºñ½º ·ÎÄÉÀÌÅÍÀÇ °¡Àå Å« ´ÜÁ¡/[31:48] ¼ºñ½º ·ÎÄÉÀÌÅÍ º¸´Ù´Â DI»ç¿ë/[32:07] µðÀÚÀÎ ÆÐÅÏ/[33:22] µðÀÚÀÎ ÆÐÅÏÀÇ ÀÌÇØ/[34:13] µðÀÚÀÎ ÆÐÅÏÀÇ ±¸Á¶/[36:19] GpF µðÀÚÀÎ ÆÐÅÏ/[37:04] »ý¼ºÆÐÅÏ/[37:35] ±¸Á¶ÆÐÅÏ/[38:15] ÇàÀ§ÆÐÅÏ/[40:30] UML°ú µðÀÚÀÎ ÆÐÅÏ/[40:37] Ä÷¹º¸·¹À̼Ç(Collaboration)/[41:59] °´Ã¼¿Í ¿ªÇÒ »çÀÌÀÇ °ü°è/[42:52] °´Ã¼µéÀÌ Æ¯Á¤ »óȲ¿¡¼ ¼öÇàÇÏ´Â »óÈ£ÀÛ¿ë/[44:05] ±¸Ã¼ÀûÀÎ »óȲÀÇ Äݶ󺸷¹ÀÌ¼Ç Àû¿ë Ç¥Çö/[45:20] ¼øÂ÷ ´ÙÀ̾î±×·¥(Sequence diagram)/[46:37] »ý¸í¼±/[47:19] °´Ã¼ »çÀÌÀÇ ¸Þ½ÃÁö´Â È»ìÇ¥·Î Ç¥½Ã/[47:52] ¿·ÁÀÖ´Â È»ìÇ¥´Â ºñµ¿±â ¸Þ½ÃÁö/[48:14] ä¿öÁ® ÀÖ´Â È»ìÇ¥´Â µ¿±â ¸Þ½ÃÁö/[48:50] <>°´Ã¼»ý¼º ¸Þ½ÃÁö /[49:00] <>°´Ã¼¼Ò¸ê ¸Þ½ÃÁö /[49:21] ¸Þ½ÃÁö¸¦ Ç¥ÇöÇÏ´Â Çü½Ä/[49:36] ½ÃÄö½º ¹øÈ£/[50:14] °¡µå/[50:34] ÀÀ´ä ¸Þ½ÃÁö/[51:35] µµ¼´ë¿© °ü·Ã ¼øÂ÷ ´ÙÀ̾î±×·¥ ¿¹Á¦/[52:22] refŰ¿öµå »ç¿ë/[53:07] °´Ã¼»çÀÌÀÇ »óÈ£ÀÛ¿ëÀ» È¿°úÀûÀ¸·Î ³ªÅ¸³»´Â ¿©·¯°¡Áö ¿¬»ê Á¦°ø/[54:52] ¼øÂ÷ ´ÙÀ̾î±×·¥°ú Ŭ·¡½º ´ÙÀ̾î±×·¥ÀÇ °ü°è/[56:15] Â÷ÀÌÁ¡/[57:19] Ŭ·¡½ºx¿Í Ŭ·¡½ºyÀÇ ¿¬°ü°ü°è ¼º¸³ -
07.50ºÐ µðÀÚÀÎ ÆÐÅϵé part1
»ý¼º ÆÐÅÏ, ±¸Á¶ ÆÐÅÏ, ÇàÀ§ ÆÐÅÏ, Abstract Factory, Builder
Ã¥°¥ÇÇ[00:05] °¢ µðÀÚÀÎ ÆÐÅÏµé ¾Ë¾Æº¸±â/[00:29] Abstract Factory/[01:03] ¿¹Á¦-¿¤¸®º£ÀÌÅÍ ºÎǰ ¾÷ü º¯°æ/[01:26] °¢ Á¦Á¶ ¾÷üº°·Î ºÎǰ °³¹ß/[02:29] Ãß»óŬ·¡½º·Î Motor¿Í Door¸¦ Á¤ÀÇ/[03:30] MotorŬ·¡½º´Â DoorŬ·¡½ºÀÇ getDoorStatus¸Þ¼Òµå È£Ãâ/[03:53] MotorŬ·¡½ºÀÇ move¸Þ¼Òµå ±â´É/[04:55] ÀϹÝÀûÀÎ È帧Àº µ¿ÀÏÇÏÁö¸¸ ƯÁ¤ ºÎºÐ¸¸ ´Ù¸¥ µ¿ÀÛÀ» ÇÏ´Â °æ¿ì/[05:11] ÅÛÇø´ ¸Þ¼µå ÆÐÅÏ È°¿ë/[05:30] DoorŬ·¡½ºÀÇ open¸Þ¼Òµå ±â´É/[06:15] lgDoor¿Í hdDoorÀÇ classÄÚµå ÀÛ¼º/[06:30] Door´Â Ãß»óŬ·¡½º·Î Á¤ÀÇ/[07:00] DoorÄÚµå º¸±â/[07:24] close´Â ÅÛÇø´ ¸Þ¼µå/[08:05] ÇÏÀ§ Ŭ·¡½º¿¡¼ ¿À¹ö¶óÀÌµå µÉ ºÎºÐÀº primitive ¶Ç´Â hook¸Þ¼µå/[08:37] open°ú doOpen/[09:18] Ãß»óŬ·¡½º Door¸¦ »ó¼Ó¹Þ´Â lgDoor¿Í hdDoorÄÚµå º¸±â/[09:37] doClose¿Í doOpen±¸Çö/[09:58] Ŭ·¡½º ´ÙÀ̾î±×·¥ È®ÀÎ/[10:11] openÀÇ ´ëÇ¥ÀûÀÎ ¿ªÇÒ/[10:43] ¹®À» Á¦¾îÇϴ Ŭ·¡½º°¡ ÇÊ¿ä/[11:05] LGMotor¿Í HDMotor»ý¼º ºÎºÐ È®ÀÎ/[11:24] MotorFactoryŬ·¡½ºÀÇ createMotor¸Þ¼µå/[12:13] MotorFactoryÄÚµå º¸±â/[12:35] vendorID¿¡ µû¶ó LGMotor, HDMotor»ý¼º/[12:43] DoorFactoryÄÚµå º¸±â/[13:33] ClientŬ·¡½º/[14:05] open¸í·ÉÀ» »ç¿ë/[14:20] move¸Þ¼µå ±â´É/[14:39] Ãß»óÆÑÅ丮°¡ ÇÊ¿äÇÑ ÀÌÀ¯/[15:35] ´Ù¸¥ Á¦Á¶¾÷üÀÇ ºÎǰÀ» »ç¿ëÇØ¾ß ÇÏ´Â °æ¿ì/[16:17] ¼³Á¤ ºÎºÐ º¯°æ/[16:37] ºÎǰº° Ŭ·¡½º º¸±â/[17:33] ÃÑ 10°³ÀÇ Factory°´Ã¼¸¦ »ç¿ëÇØ¼ ¿¤¸®º£ÀÌÅ͸¦ ±¸¼ºÇÏ´Â ÄÚµå/[18:07] »õ·Î¿î Á¦Á¶¾÷üÀÇ ºÎǰÀ» »ç¿ëÇÒ °æ¿ì/[18:47] DoorFactoryŬ·¡½º º¸±â/[19:07] enum¿¡ SS¾÷ü Ãß°¡/[19:41] client¿¡¼ HD¸¦ SS·Î º¯°æ/[21:15] LGElevatorFactory/[21:25] HDElevatorFactory/[22:14] createMotor¸Þ¼µå¿Í createDoor¸Þ¼µå Á¦°ø/[22:37] ElevatorFactoryŬ·¡½º ´ÙÀ̾î±×·¥/[23:07] Ãß»óŬ·¡½º·Î Á¤ÀǵǴ ElevatorFactoryŬ·¡½º º¸±â/[23:33] Ãß»ó¸Þ¼µå createMotor¿Í createDoor¼±¾ð/[24:36] clientÄÚµå º¸±â/[25:22] »õ·Î¿î Á¦Á¶¾÷üÀÇ ºÎǰÀ» Áö¿øÇÏ´Â °æ¿ì/[26:11] SSElevatorFactory»ý¼º/[26:41] SSElevatorFactoryŬ·¡½º, SSDoorŬ·¡½º, SSMotorŬ·¡½º º¸±â/[27:37] client¼öÁ¤/[28:18] ÇØ´ç Á¦Á¶¾÷üÀÇ ºÎǰÀ» »ý¼ºÇÏ´Â factoryŬ·¡½º Ãß°¡/[29:14] Ŭ·¡½º ´ÙÀ̾î±×·¥ È®ÀÎ/[30:14] Abstract Factory/[31:48] Ãß»óÆÑÅ丮 ÆÐÅÏÀÇ Ä÷¹º¸·¹ÀÌ¼Ç ´ÙÀ̾î±×·¥/[32:05] Ãß»óÆÑÅ丮 ÆÐÅÏ¿¡¼ ³ªÅ¸³ª´Â ¿ªÇÒ/[33:07] AbstractFactory/[33:22] ConcreteFactory1/[33:44] AbstractProductA/[34:00] Ãß»óÆÑÅ丮 ¼øÂ÷ ´ÙÀ̾î±×·¥/[34:30] clientºÎÅÍ ¼øÂ÷ÀûÀ¸·Î º¸±â/[36:00] LGElevatorFactory¿Í HDElevatorFactoryŬ·¡½º¿¡ Ãß»óÆÑÅ丮 ÆÐÅÏÀ» Àû¿ëÇÑ Å¬·¡½º ´ÙÀ̾î±×·¥/[36:30] ElevatorFactoryŬ·¡½º´Â AbstractFactory¿ªÇÒ/[37:30] ¿¹Á¦-½´ÆÃ°ÔÀÓ ¸¸µé±â/[38:20] Ŭ·¡½º ´ÙÀ̾î±×·¥ º¸±â/[39:22] StageŬ·¡½º ÄÚµå È®ÀÎ/[39:52] ÄÚµåÀÇ ¹®Á¦Á¡/[41:05] Ãß»óÆÑÅ丮 Àû¿ë °á°ú È®ÀÎ/[41:30] EnemyFactoryÃß°¡/[42:19] EnemyFactory±¸Çö/[42:45] °´Ã¼ »ý¼ºÀ» À§ÇÑ ÆÑÅ丮 ¸Þ¼µå/[43:13] EasyStageEnemyFactory¿Í HardEnemyFactoryÁ¤ÀÇ/[43:43] Factory¸¦ »ç¿ëÇϵµ·Ï º¯°æµÈ StageŬ·¡½º/[44:00] enemyFactory¸¦ »ç¿ëÇØ °´Ã¼ »ý¼º/[45:37] Builder/[46:00] BuilderÆÐÅÏ ¼³¸í/[46:21] ¿¹Á¦ È®ÀÎ/[47:05] À¯¿¬ÇÑ ÀڷᱸÁ¶ ÇÊ¿ä/[47:35] BuilderÆÐÅÏÀÇ Å¬·¡½º ´ÙÀ̾î±×·¥/[48:15] client³»¿ë È®ÀÎ -
08.57ºÐ µðÀÚÀÎ ÆÐÅϵé part2
Iterator, Adapter, Template Method
Ã¥°¥ÇÇ[00:17] Ãß»óÆÑÅ丮 ÆÐÅÏ¿¡ Factory MethodÆÐÅϰú Template MethodÆÐÅÏ/[00:36] ÆÐÅϵéÀÇ ¼ø¼/[01:42] IteratorÆÐÅÏ/[01:59] ¹è¿ arrÀÇ ¸ðµç ¿ä¼Ò¸¦ Ç¥½ÃÇϱâ À§ÇØ for¹® »ç¿ë/[02:07] iº¯¼ö È®ÀÎ/[02:42] i¸¦ Çϳª¾¿ Áõ°¡/[03:00] IteratorÆÐÅÏ ¼³¸í/[03:21] ¿¹Á¦ È®ÀÎ/[03:43] Ŭ·¡½º ´ÙÀ̾î±×·¥ È®ÀÎ/[04:14] ÀÎÅÍÆäÀ̽º Aggregate/[04:30] AggregateÀÇ ¼Ò½º º¸±â/[05:13] ÀÎÅÍÆäÀ̽º Iterator/[05:30] Iterator¿¡ ÇÊ¿äÇÑ ¸Þ¼µå/[05:54] hasNext¸Þ¼µå/[06:24] next¸Þ¼µå/[07:00] BookŬ·¡½º º¸±â/[07:30] BookShelfŬ·¡½º/[07:54] BookShelfŬ·¡½º ¼Ò½º º¸±â/[08:31] booksÇʵ带 privateÀ¸·Î ÇÑ ÀÌÀ¯/[09:15] BookShelfIteratorŬ·¡½º ¼Ò½º º¸±â/[09:56] hasNext¸Þ¼µå/[10:24] next¸Þ¼µå/[11:03] MainŬ·¡½º ¸¸µé±â/[11:39] whileÀÇ Á¶°Ç/[12:07] IteratorÆÐÅÏÀÇ 4°¡Áö ¿ªÇÒ/[12:15] Iterator/[12:41] ConcreteIterator/[13:24] Aggregate/[13:56] ConcreteAggregate/[14:43] IteratorÆÐÅÏÀ» »ç¿ëÇÏ´Â ÀÌÀ¯/[16:22] µ¿ÀÏ ÀÚ·áÇüÀÇ ¿©·¯ °´Ã¼ ¼øÂ÷ Á¢±Ù/[16:48] AdapterÆÐÅÏ/[18:03] wrapperÆÐÅÏ/[18:30] Ŭ·¡½º¿¡ ÀÇÇÑ AdapterÆÐÅÏ(»ó¼Ó)/[18:56] ¿¹Á¦ È®ÀÎ/[19:11] BannerŬ·¡½º/[19:37] ÀÎÅÍÆäÀ̽º Print/[20:07] PrintBanner°¡ AdapterÀÇ ¿ªÇÒÀ» ´ã´ç/[20:52] BannerŬ·¡½º º¸±â/[21:14] PrintÀÎÅÍÆäÀ̽º º¸±â/[21:45] PrintBannerŬ·¡½º º¸±â/[22:03] printWeak¸Þ¼µå¿Í printStrong¸Þ¼µå/[22:22] Mainº¸±â/[23:48] ÀνºÅϽº¿¡ ÀÇÇÑ AdapterÆÐÅÏ(À§ÀÓ)/[24:22] Ŭ·¡½º ´ÙÀ̾î±×·¥ È®ÀÎ/[25:18] Print¿Í Print2ÀÇ ¼Ò½º Â÷ÀÌ/[25:52] printWeak¸Þ¼µå¿Í printStrong¸Þ¼µå/[27:07] ¿ªÇÒ »ìÆìº¸±â/[27:25] TargetÀÇ ¿ªÇÒ/[27:56] ClientÀÇ ¿ªÇÒ/[28:15] AdapteeÀÇ ¿ªÇÒ/[28:52] AdapterÀÇ ¿ªÇÒ/[30:11] À§ÀÓÀ» »ç¿ëÇÑ °æ¿ì/[31:37] ¸¸µé¾îÁø Ŭ·¡½º¸¦ »õ·Î¿î ÀÎÅÍÆäÀ̽º¿¡ ¸Â°Ô °³Á¶ ½Ãų °æ¿ì/[33:00] ¹öÀü ¾÷/[33:34] Template Method/[34:05] ¿¹Á¦ È®ÀÎ/[34:22] HDMotorŬ·¡½º/[35:00] enumerationÀÎÅÍÆäÀ̽º ÇÊ¿ä/[35:37] HDMotorŬ·¡½ºÀÇ move¸Þ¼Òµå¸¦ ¼øÂ÷ ´ÙÀ̾î±×·¥À¸·Î Ç¥Çö/[37:00] ¼Ò½º ÄÚµå ±¸Çö/[37:22] DoorŬ·¡½º º¸±â/[37:37] HDMotorŬ·¡½º º¸±â/[37:57] move¸Þ¼µå º¸±â/[38:30] ClientŬ·¡½º º¸±â/[38:49] LGMotor¸¦ Ãß°¡ÇÒ °æ¿ì/[39:07] LGMotor¸¦ ±¸ÇöÇÑ ¿¹Á¦/[39:30] ÄÚµå Áߺ¹ÀÇ ¹®Á¦/[40:37] MotorŬ·¡½º ±¸Çö/[41:43] HDMotor¿Í LGMotorÀÇ ¼Ò½º ÄÚµå º¸±â/[42:12] »ó¼ÓÀ» Ȱ¿ëÇØ ÄÚµå Áߺ¹ ÇÇÇϱâ/[43:19] Ŭ·¡½º ´ÙÀ̾î±×·¥ È®ÀÎ/[43:36] move¸Þ¼µå¸¦ MotorŬ·¡½º·Î À̵¿½ÃŲ ¸ð½À/[44:00] HDMotorÈ®ÀÎ/[44:42] ¼Ò½º ÄÚµå È®ÀÎ/[45:12] MotorŬ·¡½ºÀÇ move¸Þ¼µå º¸±â/[45:59] ÄÚµå Áߺ¹ ÃÖ¼ÒÈ¿¡ À¯¿ë/[46:45] move¸Þ¼Òµå-ÅÛÇø´ ¸Þ¼Òµå/[47:00] moveMotor¸Þ¼Òµå-Primitive¸Þ¼Òµå ¶Ç´Â hook¸Þ¼Òµå/[47:28] Äݶ󺸷¹ÀÌ¼Ç ´ÙÀ̾î±×·¥ È®ÀÎ/[48:43] Client´Â templateMethod¸Þ¼Òµå È£Ãâ/[49:35] ÅÛÇø´ ¸Þ¼Òµå ÆÐÅÏÀ» Motor¿¹Á¦¿¡ Àû¿ëÇÑ °æ¿ì/[50:07] ÅÛÇø´ ¸Þ¼Òµå ÆÐÅÏÀÇ Æ¯Â¡/[52:37] ¸®½ºÄÚÇÁ ġȯ ¿øÄ¢/[53:52] »óÀ§ Ŭ·¡½º ÀÔÀå/[54:37] Ãß»ó Ŭ·¡½º °³³ä/[55:37] »óÀ§ Ŭ·¡½º¿Í ÇÏÀ§ Ŭ·¡½ºÀÇ ÇùÁ¶ -
09.57ºÐ µðÀÚÀÎ ÆÐÅϵé part3
Factory Method, Singleton
Ã¥°¥ÇÇ[00:05] Factory MethodÆÐÅÏ/[00:38] ÀνºÅϽº¸¦ »ý¼ºÇÏ´Â °øÀåÀ» Template Method·Î ±¸Çö/[00:52] idcard¸¦ ¸¸µå´Â ¿¹Á¦/[01:03] framework»ìÆìº¸±â/[01:34] ProductŬ·¡½º È®ÀÎ/[02:07] Ŭ·¡½º ´ÙÀ̾î±×·¥À¸·Î ¼Ò½º ±¸Çö/[02:15] ProductŬ·¡½º/[02:46] FactoryŬ·¡½º/[03:15] Á¦Ç°À» ¸¸µé°í µî·ÏÇÏ´Â ±¸ÇöÀÛ¾÷Àº ÇÏÀ§Å¬·¡½º¿¡¼ ¼öÇà/[03:36] create¸Þ¼Òµå/[04:00] Ãß»ó¸Þ¼Òµå·Î Á¤ÀÇ/[04:30] IDCardÆÐŰÁö »ìÆìº¸±â/[04:46] IDCardFactoryŬ·¡½º/[05:08] createProduct, registerProduct/[05:28] MainŬ·¡½º/[05:56] Factory MethodÆÐÅÏ »ó¼¼È÷ ¾Ë¾Æº¸±â/[06:10] ¿©·¯´ëÀÇ ¿¤¸®º£ÀÌÅÍ ¿¹Á¦/[06:46] ½ºÄÉÁÙ¸µ/[07:29] º¹¼öÀÇ ¿¤¸®º£ÀÌÅ͸¦ ½ºÄÉÁÙ¸µÇؼ À̵¿½ÃŰ´Â Ŭ·¡½º ´ÙÀ̾î±×·¥/[08:45] ElevatorManagerŬ·¡½º ¼Ò½º/[09:07] ÁÖ¾îÁø ¼ö¸¸ÅÀÇ ElevatorController¸¦ »ý¼ºÇÔ/[09:20] requestElevator¸Þ¼Òµå/[09:41] ElevatorControllerŬ·¡½º/[09:58] ThroughputSchedulerŬ·¡½º/[10:18] ¼Ò½º ±¸ÇöÀÇ ¹®Á¦Á¡/[12:18] µ¿Àû ½ºÄÉÁÙ¸µÀ» Áö¿øÇÒ ¼ö ÀÖµµ·Ï ¼öÁ¤µÈ ElevatorManagerŬ·¡½º ÄÚµå/[12:31] requestElevatorÀÇ ÄÚµå º¯È/[13:31] ÇöÀç ½Ã°£¿¡ µû¶ó ÀûÀýÇÑ ½ºÄÉÁÙ¸µ °´Ã¼ »ý¼º/[14:41] Ŭ·¡½º ´ÙÀ̾î±×·¥¿¡ Àû¿ë/[15:37] »õ·Î¿î ½ºÄÉÁÙ¸µ Àü·«ÀÌ Ãß°¡µÇ´Â °æ¿ì/[17:17] ¹®Á¦Á¡À» ÇØ°áÀ» À§ÇÑ ¹æ¹ý/[17:59] SchedulerFactoryŬ·¡½º Ãß°¡/[18:37] SchedulerFactoryŬ·¡½º ¼Ò½º ±¸Çö/[19:37] getScheduler¸Þ¼Òµå È£Ãâ/[19:52] SchedulerFactoryŬ·¡½º¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖµµ·Ï ¼öÁ¤µÈ ElevatorManagerŬ·¡½º/[20:15] ½ºÄÉÁÙ¸µ Àü·«À» ¼³Á¤/[20:47] ClientŬ·¡½º ÄÚµå º¸±â/[22:52] »óȲ¿¡ µû¶ó ÀûÀýÇÑ °´Ã¼¸¦ »ý¼ºÇÏ´Â ÄÚµå ÀÚÁÖ Áߺ¹/[23:29] Factory MethodÆÐÅÏÀÇ °³³äÀ» Àß º¸¿©ÁÖ´Â ±×¸²/[24:11] Factory MethodÆÐÅÏÀÌ Àû¿ëµÈ ºÎºÐ/[25:11] Factory MethodÆÐÅÏÀ» »ó¼ÓÀ» ÀÌ¿ëÇØ Àû¿ëÇÑ ´ÙÀ̾î±×·¥/[26:37] ElevatorManager´Â getScheduler¸Þ¼Òµå¸¦ Ãß»ó¸Þ¼Òµå·Î Á¤ÀÇ/[26:59] ElevatorManagerŬ·¡½ºÀÇ ÄÚµå/[27:48] requestElevator¸Þ¼Òµå´Â getScheduler¸Þ¼Òµå¸¦ Ãß»ó¸Þ¼Òµå·Î Á¤ÀÇ/[28:41] ÅÛÇø´ ¸Þ¼Òµå¿¡ ÇØ´ç/[29:21] Factory Method PatternÀÇ Äݶ󺸷¹ÀÌ¼Ç ´ÙÀ̾î±×·¥/[30:22] Factory Method PatternÀ» ¿¤¸®º£ÀÌÅÍ ¿¹Á¦¿¡ Àû¿ë/[32:43] SingletonÆÐÅÏ/[34:30] ¿ä¼Ò¸¦ Çϳª¸¸ °¡Áö°í ÀÖ´Â ÁýÇÕ/[34:44] °£´ÜÇÑ Å¬·¡½º ´ÙÀ̾î±×·¥/[35:19] singletonŬ·¡½º »ý¼ºÀÚ/[36:07] SingletonŬ·¡½º ¼Ò½º ÄÚµå/[36:36] MainŬ·¡½º ¼Ò½º ÄÚµå/[37:07] obj1°ú obj2°¡ µ¿ÀÏÇÑ °´Ã¼ÀÎÁö È®ÀÎ/[37:37] PrinterŬ·¡½º/[38:15] ¿ÜºÎ¿¡¼ »ý¼ºÀÚ¸¦ È£ÃâÇÒ ¼ö ¾øµµ·Ï Çϱâ/[38:36] PrinterŬ·¡½ºÀÇ »ý¼ºÀÚ¸¦ private·Î ¼±¾ð/[39:07] getPrinter¸Þ¼Òµå/[39:51] getPrinter¸Þ¼Òµå¿Í printerº¯¼ö staticŸÀÔÀ¸·Î ¼±¾ð/[40:45] Á¤Àû¸Þ¼Òµå·Î ¼±¾ð/[41:30] 5¸íÀÇ »ç¿ëÀÚ°¡ printer¸¦ ÀÌ¿ëÇÏ´Â »óȲÀ¸·Î ÄÚµå ÀÛ¼º/[42:30] ´ÙÁß ¾²·¹µå¿¡¼ PrinterŬ·¡½º¸¦ ÀÌ¿ëÇÒ °æ¿ì/[43:21] ´ÙÁß ¾²·¹µå ¾ÖÇø®ÄÉÀ̼ǿ¡ ¹ß»ýÇÏ´Â ¹®Á¦ ÇØ°á¹æ¹ý/[43:49] Á¤Àû º¯¼ö¿¡ ÀνºÅϽº¸¦ ¸¸µé¾î ÃʱâÈÇÏ´Â ¹æ¹ý/[45:22] ÀνºÅϽº¸¦ ¸¸µå´Â ¸Þ¼Òµå¿¡ µ¿±âÈÇÏ´Â ¹æ¹ý/[45:59] counterº¯¼ö Ãß°¡/[46:37] print¸Þ¼ÒµåÀÇ counterº¯¼ö¸¦ º¯°æÇÏ´Â ºÎºÐ µ¿±âÈ ÇÊ¿ä/[47:20] SingletonÆÐÅÏÀÇ ¼øÂ÷´ÙÀ̾î±×·¥/[47:59] SingletonÆÐÅϰú Á¤Àû Ŭ·¡½ºÀÇ °ü°è/[48:29] print¸Þ¼Òµå µ¿±âÈ/[48:52] UserThread 5°³ »ý¼º ÈÄ ½º·¹µå ½ÇÇà/[49:52] Á¤Àû Ŭ·¡½º¸¦ »ç¿ëÇÒ ¼ö ¾ø´Â °æ¿ì/[50:15] Printer ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â RealPrinter/[50:44] UsePrinter¼Ò½º ÄÚµå È®ÀÎ/[52:45] Printer ÀÎÅÍÆäÀ̽º È®ÀÎ/[53:15] Å×½ºÆ®¿ë °¡Â¥ ÇÁ¸°ÅÍÀÎ FakePrinterÈ®ÀÎ/[53:37] doSomething¸Þ¼Òµå·Î ÀÎÅÍÆäÀ̽ºÀÇ ´ÜÀ§Å×½ºÆ®¸¦ ÇÏ´Â »óȲ °¡Á¤/[54:43] Á¤Àû Ŭ·¡½ºÀÇ ¹®Á¦¸¦ ½Ì±ÛÅÏ ÆÐÅÏÀ¸·Î ÇØ°á/[55:07] Á¤Àû setter¸Þ¼Òµå »ç¿ë/[56:04] DoSomethingTest/[56:36] °¡Â¥ Printer°´Ã¼ ÁÖÀÔ/[57:04] SingletonÆÐÅÏ Á¤¸® -
10.49ºÐ µðÀÚÀÎ ÆÐÅϵé part4
Singleton, Prototype, Builder, Abstract Factory
Ã¥°¥ÇÇ[00:05] SingletonÆÐÅÏ/[00:27] ÆÑÅ丮¸Þ¼Òµå ÆÐÅÏ ¼³°èºÎºÐ º¸±â/[00:50] SchedylerFactoryŬ·¡½º/[01:11] RESPONSE_TIME, THROUGHPUT, DYNAMIC/[01:55] Client classÈ®ÀÎ/[02:27] Áߺ¹µÇ¾î »ý¼º/[03:36] SingletonÆÐÅÏÀ» Àû¿ëÇÑ ¼³°èºÎºÐ/[04:14] SingletonÆÐÅÏÀ» Àû¿ëÇÑ SchedylerFactoryŬ·¡½º/[04:46] SingletonÆÐÅÏÀ¸·Î ±¸ÇöÇÑ ThroughputScheduler, ResponseTimeScheduler/[05:44] Abstract Factory Pattern¿¡¼ SingletonÆÐÅÏÀ» Àû¿ëÇÏ´Â °úÁ¤/[07:15] Á¦Ç°±ºº° °´Ã¼ »ý¼º/[08:45] MotorŬ·¡½º È®ÀÎ/[09:28] ÅÛÇø´ ¸Þ¼Òµå ÆÐÅÏ/[10:03] Client3 ¼Ò½º È®ÀÎ/[10:54] Á¦Á¶ ¾÷üº° Factory°´Ã¼/[11:30] Á¦Á¶ ¾÷üº° FactoryŬ·¡½º¸¦ SingletonÆÐÅÏÀ¸·Î ¼³°è/[12:03] ¼Ò½º ÄÚµå È®ÀÎ/[12:54] Client4 Ŭ·¡½º ÄÚµå/[13:31] PrototypeÆÐÅÏ/[14:03] Ŭ·¡½º À̸§À» ÁöÁ¤ÇÏÁö ¾Ê°í ÀνºÅϽº¸¦ »ý¼ºÇÒ ¶§/[14:31] Á¾·ù°¡ ³Ê¹« ¸¹¾Æ Ŭ·¡½º·Î Á¤¸®µÇÁö ¾Ê´Â °æ¿ì/[14:46] Ŭ·¡½º·ÎºÎÅÍ ÀνºÅϽº »ý¼ºÀÌ ¾î·Á¿î °æ¿ì/[15:37] framework¿Í »ý¼ºÇÒ ÀνºÅϽº¸¦ ºÐ¸®ÇϰíÀÚ ÇÒ °æ¿ì/[17:00] PrototypeÆÐÅÏÀ» »ç¿ëÇÑ ¿¹Á¦/[17:22] product ÀÎÅÍÆäÀ̽º/[17:41] UnderlinePenŬ·¡½º¿Í MessageBoxŬ·¡½º/[19:03] product ÀÎÅÍÆäÀ̽º ¼Ò½º ÄÚµå È®ÀÎ/[19:37] use¸Þ¼Òµå/[19:48] createClone¸Þ¼Òµå/[19:56] ManagerŬ·¡½º/[20:40] proto/[22:06] ÇÏÀ§Å¬·¡½º »ìÆìº¸±â/[22:30] decochar/[22:45] MessageBoxŬ·¡½º ¼Ò½º ÄÚµå È®ÀÎ/[23:21] clone¸Þ¼Òµå·Î º¹»ç °¡´ÉÇÑ °Í/[24:21] ÀڽŠ¶Ç´Â ÇÏÀ§ Ŭ·¡½º¿¡¼¸¸ È£Ãâ/[25:21] UnderlinePenŬ·¡½ºÀÇ ¼Ò½º ÄÚµå È®ÀÎ/[26:26] PrototypeÆÐÅÏÀÇ ¿ªÇÒÀ» ³ªÅ¸³»´Â Ŭ·¡½º ´ÙÀ̾î±×·¥/[27:52] Á¾·ù°¡ ³Ê¹« ¸¹¾Æ Ŭ·¡½º·Î Á¤¸®µÇÁö ¾Ê´Â °æ¿ì/[28:26] Ŭ·¡½º·ÎºÎÅÍ ÀνºÅϽº »ý¼ºÀÌ ¾î·Á¿î °æ¿ì/[29:00] framework¿Í »ý¼ºÇÒ ÀνºÅϽº¸¦ ºÐ¸®ÇϰíÀÚ ÇÒ °æ¿ì/[30:45] Clone¾Ë¾Æº¸±â/[32:12] CloneÀÌ ³»ºÎÀûÀ¸·Î ÇÏ´Â ÀÏ/[33:19] CloneableÀÎÅÍÆäÀ̽º/[34:05] BuilderÆÐÅÏÀÇ °³³ä/[34:30] BiilderÆÐÅÏÀÇ ¿¹Á¦/[34:58] Ŭ·¡½ºÀÇ ±¸¼º È®ÀÎ/[35:30] BuilderŬ·¡½º/[36:06] BuilderŬ·¡½ºÀÇ ÇÏÀ§ Ŭ·¡½º/[36:43] BuilderŬ·¡½ºÀÇ ¼Ò½º ÄÚµå/[37:15] DirectorŬ·¡½ºÀÇ ¼Ò½º ÄÚµå/[38:22] construct¸Þ¼Òµå/[39:22] TextBuilderŬ·¡½º ¼Ò½º ÄÚµå/[40:20] HTMLBuilderŬ·¡½º ¼Ò½º ÄÚµå/[41:13] MainŬ·¡½º ¼Ò½º ÄÚµå/[42:00] µ¿ÀÏÇÑ ¸Þ¼Òµå/[43:12] BuilderÆÐÅÏÀÇ ¿ªÇÒ/[43:45] ConcreteBuilderÀÇ ¿ªÇÒ/[44:22] DirectorÀÇ ¿ªÇÒ/[45:06] ClientÀÇ ¿ªÇÒ/[45:45] ¼øÂ÷´ÙÀ̾î±×·¥/[46:05] Director¼Ò½º ÄÚµå È®ÀÎ/[48:38] BuilderŬ·¡½º¸¦ ¼öÁ¤ÇÏ´Â °Í -
11.56ºÐ µðÀÚÀÎ ÆÐÅϵé part5
Bridge, Strategy, Composite
Ã¥°¥ÇÇ[00:02] BridgeÆÐÅÏÀÇ ¿ªÇÒ/[00:34] ±â´ÉÀÇ Å¬·¡½º °èÃþ/[01:07] ±â´ÉÀ» Ãß°¡Çϱâ À§ÇØ ¸¸µé¾îÁø °èÃþ/[01:57] ±¸ÇöÀÇ Å¬·¡½º °èÃþ/[02:53] Ŭ·¡½º °èÃþ µîÀå/[05:12] BridgeÆÐÅÏÀÇ ¿¹Á¦/[05:30] 4°³ÀÇ Å¬·¡½º/[06:11] Display¿Í CountDisplay´Â ±â´ÉÀÇ Å¬·¡½º °èÃþ/[06:15] DisplayImpl°ú StringDisplayImpl´Â ±¸ÇöÀÇ Å¬·¡½º °èÃþ/[06:44] DisplayŬ·¡½ºÀÇ ¼Ò½º/[07:00] Àμö·Î Àü´ÞµÈ ÀνºÅϽº/[07:27] open, print, close¸Þ¼Òµå/[07:46] ¸Þ¼Òµå¸¦ ½ÇÇàÇϱâ À§ÇØ implÇʵåÀÇ ±¸Çö ¸Þ¼Òµå »ç¿ë/[08:16] CountDisplayŬ·¡½º ¼Ò½º/[08:41] multiDisplayÃß°¡/[09:31] DisplayImplŬ·¡½º ¼Ò½º/[09:48] StringDisplayImplŬ·¡½º ¼Ò½º/[10:35] MainŬ·¡½º ¼Ò½º/[10:58] º¯¼ö d1, d2, d3/[11:48] d3´Â multiDisplayµµ È£Ãâ/[12:18] Abstraction¿ªÇÒ/[12:48] RefinedAbstraction¿ªÇÒ/[13:03] Implementor¿ªÇÒ/[13:22] ConcreteImplementor¿ªÇÒ/[14:00] ±â´ÉÀ» Ãß°¡ ÇÒ °æ¿ì/[15:20] »ó¼Ó°ú À§ÀÓ/[16:15] ¿¹Á¦¿¡¼ À§ÀÓ »ç¿ë/[18:03] StrategyÆÐÅÏ/[19:02] StrategyÆÐÅÏÀ» »ç¿ëÇÑ °ÔÀÓ ¿¹Á¦/[19:56] HandŬ·¡½º ¼Ò½º/[20:30] HandŬ·¡½ºÀÇ ÀνºÅϽº 3°³ ÀÛ¼º/[21:07] °¡À§¹ÙÀ§º¸ÀÇ ½ÂÆÐ ºñ±³/[21:25] fight¸Þ¼Òµå/[22:18] ÆÛ¼¾Æ® ¿¬»êÀÚ »ç¿ë/[23:03] StrategyÀÎÅÍÆäÀ̽º/[23:33] study¸Þ¼Òµå/[24:18] WinningStrategyŬ·¡½º/[24:55] randomÀÌ¿ë/[25:37] ProbStrategyŬ·¡½º/[25:56] historyÇʵå/[27:15] getSum/[28:41] study¸Þ¼Òµå/[29:02] PlayerŬ·¡½º/[29:52] win, lose, even¸Þ¼Òµå/[30:30] MainŬ·¡½º/[30:51] player1°ú player2/[31:07] for¹® »ç¿ë/[31:55] RobotÀÇ ¿¹Á¦/[32:37] RobotŬ·¡½º ¼Ò½º/[32:52] RobotA¿Í RobotB °¢°¢ attack°ú move±¸Çö/[34:07] »õ·Î¿î ³»¿ëÀ¸·Î º¯°æÀ» À§ÇØ ±âÁ¸ ÄÚµå ¼öÁ¤/[34:45] ±â´ÉÀÌ Áߺ¹µÇ´Â »óȲ/[35:15] »õ·Î¿î RobotÀ» Ãß°¡/[36:06] Robot¼³°èÀÇ ¹®Á¦ ÇØ°á/[37:07] ±¸Ã¼ÀûÀÎ À̵¿¹æ½Ä°ú °ø°Ý¹æ½ÄÀ» ´ãÀº Ŭ·¡½º/[39:27] RobotŬ·¡½º¿¡ setMovingStrategy¿Í setAttackStrategy¸Þ¼Òµå Á¤ÀÇ/[39:58] °è¼±µÈ ¼³°è¸¦ ÄÚµå·Î º¯°æ/[40:35] MovingStrategyÀÎÅÍÆäÀ̽º ¼±¾ð/[40:52] AttackStrategyÀÎÅÍÆäÀ̽º ¼±¾ð/[41:06] ClientŬ·¡½º ¼Ò½º/[41:37] Strategy PatternÀÇ °¢ ¿ªÇÒ/[42:28] StrategyÀÎÅÍÆäÀ̽º/[42:45] ConcreteStrategy¿ªÇÒ/[43:00] Context¿ªÇÒ/[43:52] CompositeÆÐÅÏ/[46:27] EntryŬ·¡½º/[46:37] EntryŬ·¡½ºÀÇ ¼Ò½º/[46:52] ÇÏÀ§Å¬·¡½ºÀÎ File°ú Directory/[47:15] getName¸Þ¼Òµå ÇÏÀ§Å¬·¡½º¿¡¼ ±¸Çö/[47:29] getSize¸Þ¼Òµå ÇÏÀ§Å¬·¡½º¿¡¼ ±¸Çö/[48:07] add ±¸Çö/[48:29] printList¸Þ¼Òµå/[49:15] toString¸Þ¼Òµå/[49:52] FileŬ·¡½º ¼Ò½º/[51:04] DirectoryŬ·¡½º ¼Ò½º/[51:52] getSize¸Þ¼Òµå º¸±â/[53:52] add¸Þ¼Òµå º¸±â/[54:29] printList¸Þ¼Òµå º¸±â/[55:08] FileTreatmentExceptionŬ·¡½º -
12.56ºÐ µðÀÚÀÎ ÆÐÅϵé part6
Composite, Decorator
Ã¥°¥ÇÇ[00:04] CompositeÆÐÅÏÀÇ MainŬ·¡½º ¼Ò½º/[00:15] µð·ºÅ丮 °èÃþ È®ÀÎ/[01:07] usrµð·ºÅ丮¿¡ »õ·Î¿î µð·ºÅ丮 »ý¼º/[01:49] add¸Þ¼Òµå ±¸Çö ¹æ¹ý/[02:07] EntryŬ·¡½º¿¡¼ ±¸ÇöÇÏ°í ¿¡·¯¸¦ ³Ñ°ÜÁÖ´Â ¹æ¹ý/[02:50] EntryŬ·¡½º¿¡¼ ±¸ÇöÇÏ°í ¾Æ¹«°Íµµ ½ÇÇàÇÏÁö ¾Ê´Â ¹æ¹ý/[03:07] EntryŬ·¡½º¿¡¼ ¼±¾ðÇÏÁö¸¸ ±¸ÇöÇÏÁö ¾Ê´Â ¹æ¹ý/[03:45] DirectoryŬ·¡½º¿¡¸¸ add¸¦ ³Ö´Â ¹æ¹ý/[04:15] CompositeÆÐÅÏÀÇ ±¸Á¶/[05:12] Computer¸ðµ¨¸µ ÇÏ´Â ¿¹Á¦/[05:30] Keyboard, Body, MonitorŬ·¡½º Á¤ÀÇ/[06:00] ÄÄÇ»ÅÍŬ·¡½º ºÎǰÀ» Ç¥ÇöÇÑ Å¬·¡½º ´ÙÀ̾î±×·¥/[06:15] ÇÕ¼º°ü°è Ç¥½Ã/[07:15] Keyboard, Body, MonitorŬ·¡½ºÀÇ ÄÚµå/[07:30] ComputerŬ·¡½ºÀÇ ÄÚµå/[07:56] addBody, addKeyboard, addMonitor¸Þ¼Òµå/[08:24] ClientŬ·¡½ºÀÇ ÄÚµå/[09:05] ¼³°èÀÇ ¹®Á¦Á¡/[09:28] Speaker°´Ã¼¸¦ Áö¿øÇÒ ¼ö ÀÖµµ·Ï ComputerŬ·¡½º¸¦ È®ÀåÇÏ´Â ¹æ¹ý/[10:26] SpeakerŬ·¡½º ÄÚµå/[10:48] SpeakerŬ·¡½º¸¦ Áö¿øÇÏ´Â ComputerŬ·¡½º ÄÚµå/[11:41] ComputerŬ·¡½ºÀÇ Äڵ带 º¯°æÇؾ߸¸ ÇÏ´Â ¼³°è/[12:39] ocp¸¦ ÁؼöÇÒ ¼ö ÀÖµµ·Ï °³¼±ÇÑ ComputerŬ·¡½ºÀÇ Å¬·¡½º ´ÙÀ̾î±×·¥/[12:54] ComputerDeviceŬ·¡½º Á¤ÀÇ/[14:16] ComputerŬ·¡½ºµµ ComputerDeviceÀÇ ÇÏÀ§Å¬·¡½º·Î Á¤ÀÇ/[14:46] ComputerDeviceÃß»óŬ·¡½º ÄÚµå/[15:28] º¯°æµÈ ComputerŬ·¡½º È®ÀÎ/[15:43] addComponent¸Þ¼Òµå/[16:29] °³¼±µÈ ComputerŬ·¡½º¸¦ ÀÌ¿ëÇÏ´Â ClientŬ·¡½º ÄÚµå/[18:30] SpeakerŬ·¡½º¸¦ ComputerDeviceÀÇ ÇÏÀ§Å¬·¡½º·Î ±¸Çö/[19:11] Client¿¡ SpeakerÃß°¡µÈ °Í È®ÀÎ/[20:06] Composite PatternÀÇ °¢ ¿ªÇÒ/[21:33] DecoratorÆÐÅÏ/[21:52] ¹®ÀÚ¿ ÁÖº¯¿¡ Àå½ÄÀ» Ç¥½ÃÇÏ´Â ¿¹Á¦/[22:30] Display´Â ¹®ÀÚ¿ Ç¥½Ã¿ë Ãß»óŬ·¡½º/[23:00] DisplayŬ·¡½ºÀÇ ÄÚµå/[23:48] show¸Þ¼Òµå/[24:26] StringDisplayŬ·¡½º ÄÚµå/[25:40] BorderŬ·¡½º ÄÚµå/[27:59] SideBorderŬ·¡½º/[28:47] getColumns¸Þ¼Òµå-¹®ÀÚ¼ö °è»ê/[29:48] getRows¸Þ¼Òµå/[30:03] getRowText¸Þ¼Òµå/[30:47] FullBorderŬ·¡½º ÄÚµå/[31:02] makeLine¸Þ¼Òµå/[32:45] MainŬ·¡½º ÄÚµå/[34:07] ÀνºÅϽº b1, b2, b3ÀÇ °ü°è È®ÀÎ/[34:43] ³×ºñ°ÔÀÌ¼Ç ¿¹Á¦/[35:52] RoadDisplayŬ·¡½º ¼Ò½º/[36:44] draw¸Þ¼Òµå ±¸Çö/[37:22] ¼Ò½º ÄÚµåÀÇ ¹®Á¦Á¡/[37:52] µµ·Î Ç¥½Ã ±â´ÉÀ» Ãß°¡·Î ±¸ÇöÇÏ´Â °æ¿ì/[38:20] RoadDisplayWithTrafficŬ·¡½º Á¤ÀÇ/[38:37] RoadDisplay¿¡¼ »ó¼Ó¹ÞÀº draw¸Þ¼Òµå ¿À¹ö¶óÀ̵å/[39:07] RoadDisplayWithTrafficŬ·¡½º ÄÚµå/[39:30] ¿©·¯°¡Áö Ãß°¡±â´ÉÀ» Á¶ÇÕÇØ¾ß ÇÏ´Â °æ¿ì/[41:15] LaneDecorator¿Í TrafficDecorator¸¦ ÀÌ¿ëÇÑ ¼³°è/[42:42] DisplayŬ·¡½º/[43:07] DisplayDecoratorŬ·¡½º/[43:22] LaneDecoratorŬ·¡½º/[43:52] TrafficDecoratorŬ·¡½º/[44:12] ClientŬ·¡½º ¼Ò½º ÄÚµå È®ÀÎ/[45:37] µ¿ÀÏÇÑ DisplayŬ·¡½º¸¦ ÅëÇØ µµ·Î Á¤º¸ Ç¥½Ã/[48:30] ±³Â÷·Î¸¦ Ç¥½ÃÇÏ´Â ±â´ÉÀ» Ãß°¡ÇÏ·Á¸é CrossingDecoratorŬ·¡½º Ãß°¡/[49:06] ³»¿ëÀº ´Ù¸¥ DecoratorŬ·¡½º¿Í À¯»ç/[51:30] Ãß°¡±â´ÉÀ» µ¿ÀûÀ¸·Î »ý¼ºÇÏ´Â ¿¹Á¦/[52:04] Decorator PatternÀÇ °¢ ¿ªÇÒ -
13.53ºÐ µðÀÚÀÎ ÆÐÅϵé part7
Visitor, Chain of Responsibility
Ã¥°¥ÇÇ[00:03] VisitorÆÐÅÏ/[00:49] µ¥ÀÌÅͱ¸Á¶¿Í ó¸® ºÐ¸®/[01:23] VisitorÆÐÅÏÀÇ ¿¹Á¦¸¦ À§ÇÑ Å¬·¡½º´ÙÀ̾î±×·¥/[01:53] VisitorŬ·¡½º/[02:07] Element/[02:22] ListVisitor/[02:44] EntryÀÇ ÇÏÀ§ Ŭ·¡½º File°ú Directory/[02:58] VisitorŬ·¡½º ÀÚ¼¼È÷ º¸±â/[03:21] visit¶ó´Â µ¿ÀÏÇÑ À̸§ÀÇ ¸Þ¼Òµå¸¦ 2°³ ¼±¾ð/[04:24] VisitorŬ·¡½ºÀÇ ¼Ò½º ÄÚµå/[04:46] ElementÀÎÅÍÆäÀ̽º/[05:15] EntryŬ·¡½º/[05:57] accept¸¦ ½ÇÁ¦·Î ±¸ÇöÇÏ´Â EntryÀÇ ÇÏÀ§Å¬·¡½º/[06:15] add¸Þ¼Òµå´Â EntryŬ·¡½º¿¡¼ ¿¹¿Üó¸®/[06:46] iterator¸Þ¼Òµå EntryŬ·¡½º¿¡¼ ¿¹¿Üó¸®/[07:00] FileŬ·¡½º/[07:15] accept¸Þ¼Òµå/[08:16] DirectoryŬ·¡½º/[08:35] iterator¸Þ¼Òµå/[09:24] ListVisitorŬ·¡½º/[09:43] ListVisitorŬ·¡½ºÀÇ ¼Ò½º ÄÚµå/[10:11] visit file ¸Þ¼Òµå/[10:58] visit directory ¸Þ¼Òµå/[12:13] FileŬ·¡½º ¼Ò½º ÄÚµå/[12:45] MainŬ·¡½º ¼Ò½º ÄÚµå/[13:15] ListVisitorÀÇ ÀνºÅϽº¸¦ »ç¿ë/[14:01] FileŬ·¡½º¿Í DirectoryŬ·¡½º, ListVisitorÀÇ °ü°è/[14:39] Entry´Â Element±¸Çö/[15:07] »óÈ£ È£Ãâ¿¡ °üÇÑ ³»¿ë/[15:35] ÇÑ Directory¿¡ 2°³ÀÇ FileÀÌ ÀÖÀ» ¶§ÀÇ Ã³¸®/[18:48] DirectoryÀνºÅϽº³ª FileÀνºÅϽº´Â accept¸Þ¼Òµå È£Ãâ/[19:33] VisitorÆÐÅÏÀÇ °¢ ¿ªÇÒ/[20:00] VisitorÀÇ ¿ªÇÒ/[20:40] ConcreteVisitorÀÇ ¿ªÇÒ/[21:26] ElementÀÇ ¿ªÇÒ/[21:52] ConcreteElementµéÀÇ ¿ªÇÒ/[22:11] ObjectStructureÀÇ ¿ªÇÒ/[22:56] VisitorÆÐÅÏÀÇ ¸Þ¼Òµå È£Ãâ/[24:03] ´õºí µð½ºÆÐÄ¡(double dispatch)/[25:52] OCP/[28:11] ÁÖÀÇÇÒ Á¡/[29:21] »õ·Î¿î ConcreteVisitorÀÇ ¿ªÇÒ Ãß±¸/[29:48] ConcreteElementÀÇ ¿ªÇÒ Ãß°¡´Â º¹Àâ/[30:51] µ¥ÀÌÅÍ ±¸Á¶ÀÇ ¿ä¼Ò¿¡ ´ëÇÑ Ã³¸®¸¦ µû·Î ºÐ¸®/[32:07] VisitorÆÐÅÏ¿¡ ´ëÇÑ Á¤¸®/[34:20] Chain of ResponsibilityÆÐÅÏ/[35:51] Chain of ResponsibilityÆÐÅÏÀ» »ç¿ëÇÑ ¿¹Á¦/[37:15] TroubleŬ·¡½ºÀÇ ¼Ò½º ÄÚµå/[37:37] SupportŬ·¡½º/[38:36] SupportŬ·¡½ºÀÇ ¼Ò½º ÄÚµå/[39:28] resolve¸Þ¼Òµå/[40:29] NoSupportŬ·¡½º/[40:49] LimitSupportŬ·¡½º/[41:30] OddSupportŬ·¡½º/[41:45] SpecialSupportŬ·¡½º/[42:00] MainŬ·¡½º/[42:45] setNext¸Þ¼Òµå »ç¿ë/[45:22] Chain of ResponsibilityÆÐÅÏÀÇ °¢ ¿ªÇÒ/[45:37] HandlerÀÇ ¿ªÇÒ/[46:07] ConcreteHandlerÀÇ ¿ªÇÒ/[46:29] ClientÀÇ ¿ªÇÒ/[48:49] Chain of ResponsibilityÆÐÅÏÀ» »ç¿ëÇÏÁö ¾ÊÀ» °æ¿ì/[50:52] Chain of ResponsibilityÆÐÅÏÀ» »ç¿ëÇÒ ¶§ °í·ÁÇÒ Á¡/[52:28] Chain of Responsibility Á¤¸® -
14.56ºÐ µðÀÚÀÎ ÆÐÅϵé part8
Facade, Mediator
Ã¥°¥ÇÇ[00:05] FacadeÆÐÅÏ/[00:46] »óÈ£ °ü·ÃµÈ Ŭ·¡½º Á¦¾î/[01:41] »ç¿ëÀÚÀÇ À¥ÆäÀÌÁö¸¦ ÀÛ¼ºÇÏ´Â ¿¹Á¦/[02:49] DatabaseŬ·¡½º/[03:07] DatabaseŬ·¡½ºÀÇ ¼Ò½º ÄÚµå/[03:57] HtmlWriterŬ·¡½ºÀÇ ¼Ò½º ÄÚµå/[04:46] title¸Þ¼Òµå Á¦ÀÏ ¸ÕÀú È£Ãâ/[05:11] PageMakerŬ·¡½º ¼Ò½º ÄÚµå/[06:15] MainŬ·¡½º ¼Ò½º ÄÚµå/[06:46] FacadeÆÐÅÏÀ¸·Î »ý°¢ÇÑ ¿ªÇÒ/[07:38] ½Ã½ºÅÛÀ» ±¸¼ºÇÏ´Â ¿ªÇÒ/[08:43] FacadeÀÇ ¿ªÇÒ/[09:26] ÀÎÅÍÆäÀ̽ºÀÇ ¼ö°¡ ÀûÀº °Í/[10:48] È®Àå½ÃÄѼ FacadeÆÐÅÏ Àû¿ë/[11:52] Ãß»óÆÑÅ丮 ÆÐÅϰú °ü·Ã/[12:33] FacadeÆÐÅÏ Á¤¸®/[12:56] MediatorÆÐÅÏ/[14:07] MediatorÆÐÅÏÀÇ ¿¹Á¦ Ŭ·¡½º ´ÙÀ̾î±×·¥/[14:50] »ç¿ëÀÚ LoginÀÎ °æ¿ì/[15:18] °Ô½ºÆ® LoginÀÎ °æ¿ì/[17:03] OK³ª Cancle¹öưÀº °¢°¢ÀÇ ´Ù¸¥ Ŭ·¡½º·Î Á¤ÀÇ/[18:33] ´Ù¼öÀÇ ¿ÀºêÁ§Æ® »çÀ̸¦ Á¶Á¤ÇØ¾ß ÇÒ °æ¿ì MediatorÆÐÅÏ »ç¿ë/[19:06] ¿¹Á¦ÀÇ Å¬·¡½º »ìÆìº¸±â/[20:33] LoginFrameÀÇ ±¸¼º/[21:48] MediatorÀÎÅÍÆäÀ̽º/[21:56] createColleagues¸Þ¼Òµå/[22:15] colleagueChanged¸Þ¼Òµå/[22:48] ColleagueÀÎÅÍÆäÀ̽º/[23:30] setMediator¸Þ¼Òµå/[24:18] setColleagueEnabled¸Þ¼Òµå/[25:52] ColleagueButtonŬ·¡½º/[26:33] mediatorÇʵå/[26:52] setColleagueEnabled¸Þ¼Òµå/[27:22] ColleagueTextFieldŬ·¡½º/[29:03] textValueChanged¸Þ¼Òµå/[29:41] ColleagueCheckboxŬ·¡½º/[30:56] LoginFrameŬ·¡½º/[32:22] createColleagues¸Þ¼Òµå/[32:44] colleagueChanged¸Þ¼Òµå/[33:07] userpassChanged¸Þ¼Òµå/[33:37] LoginFrameÀÇ »ý¼ºÀÚ ºÎºÐ/[34:44] ¸®½º³ÊÀÇ ¼³Á¤ ¼öÇà/[36:00] colleagueChanged¸Þ¼Òµå ³»¿ë º¸±â/[37:07] MainŬ·¡½º/[37:30] MediatorÆÐÅÏÀ» º¸°í °¢ ¿ªÇÒ ¾Ë¾Æº¸±â/[37:57] ConcreteMediatorÀÇ ¿ªÇÒ/[38:27] ColleagueÀÎÅÍÆäÀ̽ºÀÇ ¿ªÇÒ/[38:43] ConcreteColleagueÀÇ ¿ªÇÒ/[39:07] MediatorÆÐÅÏÀÇ ¿¹Á¦/[39:30] ¹Ìµð¾îÇ÷¹À̾îÀÇ ÁÖ¿ä±â´É/[40:59] °¢ ¿µ¿ªÀ» º°µµÀÇ Å¬·¡½º·Î ±¸Çö-ÀÇÁ¸°ü°è Çü¼º/[42:07] Àç»ç¿ëÀÌ ¾î·Á¿î ´ÜÁ¡/[43:29] ÇÔ²² »ç¿ëµÇ´Â Ŭ·¡½º°¡ Áõ°¡ÇÒ¼ö·Ï °³º° Ŭ·¡½ºÀÇ ¼öÁ¤ÀÌ ¾î·Á¿öÁö´Â ´ÜÁ¡/[45:19] ¹®Á¦Á¡ ÇØ°áÀ» À§ÇØ MediatorÆÐÅÏ »ç¿ë/[46:57] VideoListUIÀÇ ¼Ò½º ÀϺκРȮÀÎ/[47:30] VideoMediatorÀÇ ¼Ò½º ÀϺκРȮÀÎ/[49:15] MediaController¿Í VideoMediatorÀÇ ÀÇÁ¸ ºÎºÐ/[51:22] MediatorÆÐÅÏÀÇ ´ÜÁ¡/[51:45] Ãß»ó MediatorŬ·¡½ºÀÇ Àç»ç¿ë/[53:21] select¸Þ¼Òµå¿Í volumeChanged¸Þ¼ÒµåÀÇ ±¸Çö/[55:15] MediatorÆÐÅÏ Á¤¸® -
15.55ºÐ µðÀÚÀÎ ÆÐÅϵé part9
Observer ÆÐÅÏ
Ã¥°¥ÇÇ[00:04] ObserverÆÐÅÏ/[00:40] ¿¹Á¦¸¦ À§ÇÑ Å¬·¡½º ´ÙÀ̾î±×·¥ È®ÀÎ/[01:59] ObserverÀÎÅÍÆäÀ̽º/[02:22] update¸Þ¼Òµå/[03:00] NumberGeneratorŬ·¡½º/[03:38] addObserver¸Þ¼Òµå/[03:51] notifyObservers¸Þ¼Òµå/[04:26] RandomNumberGeneratorŬ·¡½º/[05:29] DigitObserverŬ·¡½º/[06:13] GraphObserverŬ·¡½º/[06:40] MainŬ·¡½º¸¦ º¸¸ç Observer»ç¿ë È®ÀÎ/[07:26] execute¸¦ ÇÒ °æ¿ì/[08:09] ¿©·¯°¡Áö ¹æ½ÄÀ¸·Î ¼ºÀûÀ» Ãâ·ÂÇÏ´Â ¿¹Á¦/[08:31] ScoreRecordŬ·¡½º¿Í DataSheetViewŬ·¡½º ÇÊ¿ä/[10:50] ScoreRecordŬ·¡½ºÀÇ ¼Ò½º ÄÚµå/[11:50] DataSheetViewŬ·¡½º ¼Ò½º ÄÚµå/[12:43] ClientŬ·¡½º ¼Ò½º ÄÚµå/[13:37] addScore¸Þ¼Òµå È£Ãâ/[14:11] ÁÖÀÇÁ¡/[15:16] addScore¸Þ¼Òµå¸¦ È£ÃâÇÒ ¶§ dateSheetViewÀÇ update¸Þ¼Òµå È£Ãâ/[15:46] ¼ºÀûÀ» ´Ù¸¥ ÇüÅ·ΠÃâ·ÂÇÏ°í ½ÍÀ» °æ¿ìÀÇ º¯°æ ÀÛ¾÷/[16:36] ÃÖ¼Ò, ÃÖ´ë°ª¸¸ Ãâ·Â/[17:07] ScoreRecordºÎÅÍ ¼Ò½º º¯°æ/[17:37] MinMaxViewŬ·¡½º Ãß°¡/[18:33] displayMinMax¸Þ¼Òµå´Â CollectionsŬ·¡½º ÀÌ¿ë/[19:21] ocp¿¡ À§¹è°¡ µÇ´Â ÀÛ¾÷/[20:02] µ¿½Ã¿¡ ¶Ç´Â ¼øÂ÷ÀûÀ¸·Î ¼ºÀûÀ» Ãâ·ÂÇÏ´Â °æ¿ì/[21:30] Àû¿ëÇÑ ScoreRecordŬ·¡½º ¼Ò½º/[21:48] dataSheetViewsÇʵå/[22:15] setMinMaxView¸Þ¼Òµå/[22:52] ClientŬ·¡½º/[24:11] Ãâ·Â º¯°æÀ» »õ·Î¿î Ŭ·¡½º¿¡ Å뺸ÇÒ ¶§¸¶´Ù ¹Ýº¹ÀûÀ¸·Î ¹ß»ý/[25:33] °øÅë±â´ÉÀ» »óÀ§Å¬·¡½º ¹× ÀνºÅϽº·Î ÀϹÝÈ ½Ã۰í Ȱ¿ëÇØ ScoreRecord±¸Çö/[25:59] °³¼±ÇÑ ScoreRecordŬ·¡½º ´ÙÀ̾î±×·¥/[26:32] SubjectŬ·¡½º Á¤ÀÇ/[28:00] ScoreRecordŬ·¡½ºÀÇ ¼Ò½º ±¸¼º/[28:29] Ãß»óŬ·¡½º Subject/[28:59] attach¸Þ¼Òµå¿Í detach¸Þ¼Òµå/[29:40] ScoreRecordŬ·¡½º/[30:14] DataSheetViewŬ·¡½º¿Í MinMaxViewŬ·¡½º´Â ±âÁ¸ ÄÚµå¿Í µ¿ÀÏ/[30:30] ClientŬ·¡½º ¼Ò½º ÄÚµå/[31:33] ¼ºÀûº¯°æ¿¡ °ü½ÉÀÌ ÀÖ´Â ´ë»ó°´Ã¼µéÀÇ °ü¸®´Â SubjectŬ·¡½º¿¡¼ ±¸Çö/[32:35] ¸ñ·ÏÃâ·Â°ú ÃÖ¼Ò/ÃÖ´ë°ª Ãâ·Â, ÇÕ°è¿Í Æò±Õ Ãâ·Â/[33:30] StatisticsViewŬ·¡½º/[33:49] update¸Þ¼Òµå/[34:15] displayStatistics¸Þ¼Òµå/[34:27] ClientŬ·¡½ºÀÇ ¼Ò½º ÄÚµå/[36:19] ObserverÆÐÅϸ¸º¼ ¼ö ÀÖµµ·Ï ±¸¼ºÇÑ Å¬·¡½º ´ÙÀ̾î±×·¥/[38:35] ObserverÀÇ ¿ªÇÒ/[38:59] SubjectÀÇ ¿ªÇÒ/[39:21] ConcreteSubjectÀÇ ¿ªÇÒ/[39:52] ConcreteObserverÀÇ ¿ªÇÒ/[41:19] SubjectŬ·¡½ºÀÇ notifyObservers¸Þ¼Òµå È£Ãâ/[42:12] ´ÙÀ½ ¿¹Á¦/[42:42] StatusCheckerŬ·¡½ºÀÇ ¼Ò½º ÄÚµå/[43:37] º¯°æµÈ Ŭ·¡½º ´ÙÀ̾î±×·¥ È®ÀÎ/[44:21] »óŰ¡ º¯°æµÉ ¶§ ÀÓÀÇÀÇ °´Ã¼¿¡°Ô º¯°æ»ç½Ç Å뺸/[44:45] ObserverÆÐÅÏ Àû¿ë/[45:49] notifyStatus¸Þ¼Òµå°¡ µî·ÏµÈ Observer°´Ã¼ÀÇ omAbnormalStatus¸Þ¼Òµå È£Ãâ/[46:14] StatusSubjectŬ·¡½º/[46:36] notifyStatus¸Þ¼Òµå/[47:15] StatusCheckerŬ·¡½º/[48:22] StatusObserverÀÎÅÍÆäÀ̽º/[49:07] Observer¸¦ µî·ÏÇÏ´Â ºÎºÐ/[50:37] ObserverÆÐÅÏÀ» Àû¿ëÇÒ ¶§ÀÇ ÀåÁ¡/[51:22] Observer°´Ã¼¿¡°Ô »óŸ¦ Àü´ÞÇÏ´Â ¹æ¹ý -
16.60ºÐ µðÀÚÀÎ ÆÐÅϵé part10
Observer, Memento, state
Ã¥°¥ÇÇ[00:05] ObserverÆÐÅÏ/[00:19] Subject°´Ã¼ ±¸ºÐ/[01:00] OnClickListenerÀÎÅÍÆäÀ̽º°¡ ObserverÀÎÅÍÆäÀ̽º/[01:15] onClickÇßÀ» ¶§ loginÇÒ ¼ö ÀÖµµ·Ï ±¸Çö/[01:52] onCreate¸Þ¼Òµå/[02:57] onClick¸Þ¼Òµå¿¡¼ id°ª »ç¿ë/[04:15] ObserverÆÐÅÏÀ» ±¸ÇöÇÒ ¶§ °í·ÁÇØ¾ß ÇÒ »çÇ×/[04:25] ÁÖÁ¦ °´Ã¼ÀÇ ÅëÁö ±â´É ½ÇÇà ÁÖü/[05:40] Client¿¡¼ ¿©·¯ StatusChecker¸¦ µÎ°í Á¶°ÇÀ» ¸¸Á·ÇÏ´ÂÁö È®ÀÎ/[06:24] Subject°´Ã¼¿¡¼ Á÷Á¢ ÅëÁö±â´ÉÀ» ½ÇÇàÇÏ´Â °ÍÀÌ ±¸Çö¿¡ À¯¸®/[07:40] ¿ÉÀú¹ö ÀÎÅÍÆäÀ̽ºÀÇ ºÐ¸®/[08:41] EventObserverÀÎÅÍÆäÀ̽º/[09:11] ConcreteObserverŬ·¡½º´Â ¸ðµç ¸Þ¼Òµå ±¸Çö/[10:37] ÅëÁö ½ÃÁ¡¿¡¼ÀÇ ÁÖÁ¦ °´Ã¼ »óÅÂ/[11:01] SomeSubject¸¦ »ó¼Ó¹Þ°í ÀÖ´Â AnySubjectŬ·¡½º/[12:22] ¿ÉÀú¹ö °´Ã¼°¡ ¿Ã¹Ù¸£Áö ¾ÊÀº °ªÀ» »ç¿ëÇÏ´Â ¹®Á¦ ¹ß»ý/[12:45] ÅÛÇø´ ¸Þ¼Òµå ÆÐÅÏÀ» Àû¿ëÇÑ ¿¹/[13:07] »óÀ§Å¬·¡½º°¡ Á¦¾îÀÇ È帧 °áÁ¤/[13:54] ¿ÉÀú¹ö °´Ã¼ÀÇ ½ÇÇà Á¦¾à Á¶°Ç/[14:26] notifyToObserver¸Þ¼Òµå/[15:33] ¿ÉÀú¹ö ÀÎÅÍÆäÀ̽º¸¦ Á¤ÀÇÇÒ ¶§´Â ¿ÉÀú¹ö ¸Þ¼ÒµåÀÇ ½ÇÇà Á¦ÇÑ¿¡ ´ëÇÑ ±âÁØ ÇÊ¿ä/[16:41] ObserverÆÐÅÏÀÇ Á¤¸®/[17:03] MementoÆÐÅÏ/[18:41] ĸ½¶ÈÀÇ ÆÄ±«¿¡ ºüÁöÁö ¾Ê°í ÀúÀå°ú º¹¿ø ½ÇÇà/[19:03] undo, redo, history, snapshot ½ÇÇà/[19:25] MementoÆÐÅÏÀÇ ¿¹Á¦ Ŭ·¡½º ´ÙÀ̾î±×·¥/[19:45] °ÔÀÓ±ÔÄ¢ »ìÆìº¸±â/[20:22] ÇÁ·Î±×·¥¿¡¼ Memento¸¦ ¾î¶»°Ô »ç¿ëÇÏ´ÂÁö È®ÀÎ/[20:56] MementoŬ·¡½º º¸±â/[21:30] moneyÇʵå¿Í fruitsÇÊµå º¸±â/[22:00] MementoŬ·¡½ºÀÇ ¼Ò½º ÄÚµå/[22:41] addFruit¸Þ¼Òµå/[23:22] GamerŬ·¡½º ¼Ò½º ÄÚµå/[23:52] Áß½ÉÀ̵Ǵ bet¸Þ¼Òµå/[24:30] createMemento¸Þ¼Òµå/[25:18] restoreMemento¸Þ¼Òµå/[26:00] MainŬ·¡½º ¼Ò½º ÄÚµå/[26:33] MementoÆÐÅÏ Àû¿ë/[26:52] createMemento¸¦ ÅëÇØ ÇöÀç»óÅ ÀúÀå/[27:18] ½ÃÄö½º ´ÙÀ̾î±×·¥À¸·Î ³ªÅ¸³»¼ ÇÐÀÎ/[28:03] MementoÆÐÅÏÀÇ ¿ªÇÒ/[28:17] OriginatorÀÇ ¿ªÇÒ/[28:52] MementoÀÇ ¿ªÇÒ/[29:26] wide interface: ³ÐÀº ÀÎÅÍÆäÀ̽º/[30:00] narrow interface: Á¼Àº ÀÎÅÍÆäÀ̽º/[30:41] CaretakerÀÇ ¿ªÇÒ/[31:26] Memento¿ªÇÒÀÌ °®´Â Á¼Àº ÀÎÅÍÆäÀ̽º¸¸ »ç¿ë/[32:19] ÀÚ¹ÙÀÇ ¿¢¼¼½º Á¦¾î ±â´É »ç¿ë/[34:45] Caretaker¿ªÇÒÀÇ MainŬ·¡½º/[35:07] MainŬ·¡½º°¡ ÇÒ ¼ö ÀÖ´Â ÀÏ/[36:30] MementoÀÇ °³¼ö¿Í À¯È¿±â°£/[37:37] CaretakerÀÇ ¿ªÇÒ°ú OriginatorÀÇ ¿ªÇÒÀ» ºÐ¸®ÇÏ´Â ÀÌÀ¯/[39:00] MementoÆÐÅÏÀÇ Á¤¸®/[39:14] StateÆÐÅÏ/[39:52] »óŸ¦ Ŭ·¡½º·Î Ç¥Çö/[40:30] StateÆÐÅÏÀ» »ç¿ëÇÑ ¿¹Á¦/[42:43] ¿¹Á¦¸¦ À¯»çÄÚµùÀ¸·Î ÀÛ¼º/[43:36] StateÆÐÅÏÀ» »ç¿ëÇØ À¯»çÄÚµùÀ¸·Î ÀÛ¼º/[44:42] µÎ ÄÚµåÀÇ Â÷ÀÌÁ¡/[45:44] ¿¹Á¦ÀÇ Å¬·¡½º ´ÙÀ̾î±×·¥/[46:52] StateÀÎÅÍÆäÀ̽º/[47:52] »óÅ ÀÇÁ¸ ¸Þ¼ÒµåÀÇ ÁýÇÕ/[48:19] DayStateŬ·¡½º/[49:20] DayStateŬ·¡½ºÀÇ ¼Ò½º/[49:45] doClock¸Þ¼Òµå/[51:42] NightStateŬ·¡½ºÀÇ ¼Ò½º/[52:15] ContextÀÎÅÍÆäÀ̽º/[52:35] Ãß»ó¸Þ¼Òµåµé ¼±¾ð/[53:07] SafeFrameŬ·¡½º ¼Ò½º/[53:30] Çʵå¿Í ¸Þ¼Òµå »ìÆìº¸±â/[54:00] SafeFrame»ý¼ºÀÚ º¸±â/[54:22] Panel»ý¼º ÈÄ ¹öư ÀúÀå/[54:45] actionPerformed¸Þ¼Òµå/[56:13] ¸®½º³Ê ¼³Á¤ ºÎºÐ È®ÀÎ/[57:15] ¹öưÀÌ Å¬¸¯µÇ¾úÀ» ¶§ È£ÃâµÇ´Â ¸Þ¼Òµå/[58:22] stateÆÐÅÏÀ» »ç¿ëÇÏÁö ¾Ê°í ÇÁ·Î±×·¡¹ÖÀ» ÇßÀ» °æ¿ì/[59:13] changeState¸Þ¼Òµå -
17.1½Ã°£ 1ºÐ µðÀÚÀÎ ÆÐÅϵé part11
state ÆÐÅÏ
Ã¥°¥ÇÇ[00:04] StateÆÐÅÏÀÇ ¿¹Á¦/[00:20] doUse¸Þ¼ÒµåÀÇ ´Ù¸¥Á¡/[01:03] setClockÀ» ÅëÇØ State°¡ ¹Ù²î´Â °úÁ¤ È®ÀÎ/[01:26] MainŬ·¡½º ¼Ò½º ÄÚµå/[02:06] StateÆÐÅÏÀÇ Å¬·¡½º ´ÙÀ̾î±×·¥À» º¸¸ç °¢ Ŭ·¡½ºÀÇ ¿ªÇÒ È®ÀÎ/[02:23] StateÀÇ ¿ªÇÒ/[02:53] ConcreteStateÀÇ ¿ªÇÒ/[03:27] ContextÀÇ ¿ªÇÒ/[04:29] Divide and conquer/[05:26] »óŰ¡ ¸¹Àº ½Ã½ºÅÛ¿¡¼ StateÆÐÅÏÀÇ ÀåÁ¡ ¹ßÈÖ/[06:10] StateÆÐÅÏÀº ½Ã½ºÅÛ »óŸ¦ Ŭ·¡½º·Î Ç¥Çö/[06:25] SafeFrameŬ·¡½ºÀÇ setClock¸Þ¼Òµå¿Í StateÀÎÅÍÆäÀ̽ºÀÇ doClock¸Þ¼ÒµåÀÇ °ü°è/[07:53] »óÅÂÀÇ ÀÇÁ¸ÇÑ Ã³¸® ÀÌÇØ/[08:16] »óÅ ÀüȯÀÇ °ü¸®/[08:54] SafeFrameŬ·¡½º°¡ changeState¸Þ¼Òµå ±¸Çö/[09:35] »óÅ ÀüȯÀÇ ÀåÁ¡°ú ´ÜÁ¡/[11:33] »óÅ ÀüȯÀº SafeFrameŬ·¡½º¿¡ ¸Ã±â±â/[11:50] Context¿ªÇÒÀÌ ¸ðµç ConcreteStateÀÇ ¿ªÇÒÀ» ¾Ë¾Æ¾ß ÇÏ´Â ´ÜÁ¡/[12:16] StateÆÐÅÏÀ» »ç¿ëÇϹǷΠ¾ò´Â ÀåÁ¡/[13:05] stateÇʵåÀÇ °ªÀÌ ½Ã½ºÅÛÀÇ »óŸ¦ °áÁ¤/[13:22] »õ·Î¿î »óÅ Ãß°¡/[13:56] ƯÁ¤ ¸Þ¼Òµå Ãß°¡/[14:20] Ŭ·¡½ºÀÇ ¼öÁ¤ÀÌ ¸¹Áö¸¸ ¿¡·¯¸¦ ÁÙ¿©ÁÖ´Â ¿ªÇÒ/[15:13] ÀνºÅϽºÈ°¿ë ºÎºÐ ¼Ò½º ÄÚµå/[15:56] this°¡ addActionListener¿Í doUse¿¡ Àü´ÞµÉ ¶§ÀÇ Â÷ÀÌ/[17:32] StateÆÐÅÏÀÇ ´ÙÀ½ ¿¹Á¦/[18:06] ¼±Ç³±â¸¦ Ç¥ÇöÇÑ »óÅ ´ÙÀ̾î±×·¥/[19:15] »óÅÂÀÇ ÇÑ Á¾·ù Pseudo state/[19:45] »óÅ ¸Ó½Å ´ÙÀ̾î±×·¥ÀÇ ½ÃÀÛ°ú Á¾·á/[20:15] »óÅÂÁøÀÔ/[20:37] ƯÁ¤À̺¥Æ® ¹ß»ý ÈÄ Á¶°ÇÀ» ¸¸Á·ÇÒ °æ¿ì/[21:02] ÁøÀÔ ÀÌÈÄ ¼öÇàÇØ¾ß ÇÏ´Â ¾×¼Ç/[21:15] ¼±Ç³±â°¡ OFF»óÅÂÀÏ °æ¿ì/[21:45] »óÅ ¸Ó½Å ´ÙÀ̾î±×·¥ÀÇ ÇØ¼®/[23:21] ¼±Ç³±â°¡ ONÀ̳ª WORKING»óÅÂÀÏ °æ¿ì/[23:41] Active¶ó´Â º¹ÇÕ»óÅ ÀÌ¿ë/[24:47] º¹ÇÕ»óÅ ¾ÈÀÇ ON»óÅÂ/[25:11] Çü±¤µî ¿¹Á¦/[26:11] »óÅ ¸Ó½Å ´ÙÀ̾î±×·¥À¸·Î Ç¥Çö/[26:41] »óÅ ¸Ó½Å ´ÙÀ̾î±×·¥À¸·Î ½ÇÁ¦ ÄÚµå ¸¸µé±â/[27:00] º¯¼ö ¼³Á¤/[27:29] LightŬ·¡½º ±¸Çö/[28:22] ClientŬ·¡½º/[28:48] »õ·Î¿î ¿ä±¸»çÇ×ÀÌ ÀÖÀ» ¶§ÀÇ ÄÚµå º¯°æ/[29:52] »ó¼ö Ãß°¡/[30:41] µÎ¹øÂ° LightŬ·¡½º/[31:06] °¢ ¸Þ¼Òµå¿¡ SLEEPING»óÅ Ãß°¡/[32:13] º¯ÇÏ´Â ºÎºÐÀ» ã¾Æ¼ ĸ½¶È/[33:15] Çü±¤µîÀÇ »óÅ ¸Ó½Å ´ÙÀ̾î±×·¥/[33:37] ±¸Á¶°¡ StrategyÆÐÅϰú À¯»ç/[34:30] ÄÚµùÇϱâ/[35:15] StateÀÎÅÍÆäÀ̽º/[35:22] ONŬ·¡½º/[36:15] OFFŬ·¡½º/[37:22] »óÅÂÁøÀÔµµ °¢ »óÅ¿¡¼ ó¸®/[37:43] LightŬ·¡½º¸¦ ¼öÁ¤ÇÑ ÄÚµå/[38:35] stateÀÇ ¸Þ¼Òµå ÀÌ¿ë/[39:52] °³¼±ÇÒ Á¡/[41:07] SingletonÆÐÅÏÀ» »ç¿ëÇØ ON°ú OFFŬ·¡½º º¯°æ/[42:22] State PatternÀÇ Äݶ󺸷¹ÀÌ¼Ç ´ÙÀ̾î±×·¥/[43:57] StateÀÎÅÍÆäÀ̽ºÀÇ ¿ªÇÒ/[44:22] °¢°¢ÀÇ StateÈ®ÀÎ/[45:22] request¸Þ¼Òµå/[45:37] StateÆÐÅÏÀ» Àû¿ëÇÑ LightŬ·¡½º/[46:52] stateº¯¼öÀÇ º¯°æ/[47:22] StateÆÐÅÏÀÇ »õ·Î¿î ¿¹Á¦/[47:52] ÀÚÆÇ±â¿¡ µé¾î°¥ ¼ÒÇÁÆ®¿þ¾îÀÇ ³»¿ë/[49:15] VendingMachineŬ·¡½º·Î ±¸Çö/[49:35] insertCoin¸Þ¼Òµå/[50:29] select¸Þ¼Òµå/[51:37] SOLDOUTÃß°¡/[52:36] °¢ ¸Þ¼ÒµåÀÇ ÄÚµå/[53:22] »óÅ ÆÐÅÏÀ» Àû¿ëÇÑ À򮂱â ÇÁ·Î±×·¥ÀÇ Å¬·¡½º ´ÙÀ̾î±×·¥/[54:30] »óÅÂÆÐÅÏÀÌ Àû¿ëµÈ VendingMachineÀÇ ¼Ò½º ÄÚµå/[55:00] insertCoin°ú select¸Þ¼Òµå/[55:22] NoCoinStateŬ·¡½º/[55:59] increaseCoin¸Þ¼Òµå/[56:27] select¸Þ¼Òµå/[56:37] SelectableStateŬ·¡½º/[57:22] »óÅÂÆÐÅÏ Àû¿ë Àü°ú ºñ±³/[58:57] Context¿¡¼ Á÷Á¢ »óÅ º¯°æÇÏ´Â ÄÚµå/[60:36] »óŰ´Ã¼¿¡¼ ContextÀÇ »óŸ¦ º¯°æÇÒ °æ¿ì/[61:00] StateÆÐÅÏÀÇ Á¤¸® -
18.55ºÐ µðÀÚÀÎ ÆÐÅϵé part12
Flyweight, Proxy
Ã¥°¥ÇÇ[00:05] FlyweightÆÐÅÏ/[00:30] ¹«°ÔÀÇ °³³äÀº ¸Þ¸ð¸®ÀÇ »ç¿ë·®/[00:46] new Something¹®Àå/[01:30] ÀÌ¹Ì ¸¸µé¾îÁ® ÀÖ´Â ÀνºÅϽº °øÀ¯/[01:48] FlyweightÆÐÅÏÀ» »ç¿ëÇÑ ¿¹Á¦ Ŭ·¡½º ´ÙÀ̾î±×·¥/[02:13] BigCharŬ·¡½º/[03:07] BigCharFactoryŬ·¡½º/[03:53] BigStringŬ·¡½º/[04:10] BigCharŬ·¡½ºÀÇ ¼Ò½º ÄÚµå/[04:15] fontdata/[05:14] º¹ÀâÇÑ »ý¼ºÀÚ/[06:30] BigCharFactoryŬ·¡½ºÀÇ ¼Ò½º ÄÚµå/[06:46] °øÀ¯ÀÇ ¹æ¹ý ½ÇÇö/[07:00] poolÇʵå´Â ÀνºÅϽº °ü¸®/[07:41] put¸Þ¼Òµå/[07:55] get¸Þ¼Òµå/[08:26] singletonÆÐÅÏÀ» »ç¿ëÇØ¼ ±¸Çö/[08:48] getInstance¸Þ¼Òµå/[09:01] getBigChar¸Þ¼Òµå/[09:39] poolÀÌ¿ë/[10:07] new¸¦ »ç¿ëÇØ¼ BigCharÀÇ ÀνºÅϽº »ý¼º/[10:52] synchronized/[11:43] BigStringŬ·¡½ºÀÇ ¼Ò½º ÄÚµå/[12:16] for¹®À» µ¹¸ç factory.getBigChar¸Þ¼Òµå È£Ãâ/[12:35] new¿¬»êÀÚ¸¦ ÀÌ¿ëÇϸé ÀνºÅϽº °øÀ¯ ºÒ°¡´É/[12:52] bigcharsÀÇ ¹è¿ º¸±â/[13:54] MainŬ·¡½ºÀÇ ¼Ò½º ÄÚµå/[14:15] BigStringÀνºÅϽº¸¦ ¸¸µé°í Ç¥½ÃÇÏ´Â °Í ±¸Çö/[14:28] FlyweightÆÐÅÏÀÇ °¢ ¿ªÇÒ/[14:41] FlyweightÀÇ ¿ªÇÒ/[15:05] FlyweightFactoryÀÇ ¿ªÇÒ/[15:24] ClientÀÇ ¿ªÇÒ/[16:03] FlyweightÆÐÅÏÀº ÀνºÅϽº¸¦ °øÀ¯/[16:11] ÁÖÀÇÁ¡/[18:03] BigString¿¡¼ »ö Á¤º¸¸¦ Á¦°øÇÒ °æ¿ì/[18:37] Intrinsic, extrinsic/[21:07] ÀνºÅϽº¿Í garbage collection/[23:52] ÀνºÅϽº¿¡ ´ëÇÑ ÂüÁ¶ Á¦°Å/[24:26] ¸Þ¸ð¸® ÀÌ¿ÜÀÇ ¸®¼Ò½º/[25:03] ÀνºÅϽº¸¦ newÇÒ °æ¿ì/[25:48] FlyweightÆÐÅÏ Á¤¸®/[26:03] ProxyÆÐÅÏ/[26:37] ProxyÆÐÅÏÀ» »ç¿ëÇÑ ¿¹Á¦/[27:32] setPrinterName, getPrinterName¸Þ¼Òµå/[27:52] print¸Þ¼Òµå¸¦ È£ÃâÇØ PrinterŬ·¡½ºÀÇ ÀνºÅϽº »ý¼º/[28:22] PrintableÀνºÅϽº Á¤ÀÇ/[28:55] PrinterŬ·¡½ºÀÇ ¼Ò½º ÄÚµå/[30:07] heavyJob¸Þ¼Òµå/[30:25] PrintableÀÎÅÍÆäÀ̽º/[30:52] PrinterProxyŬ·¡½º ¼Ò½º ÄÚµå/[31:45] realize¸Þ¼Òµå/[32:57] ´ë¸®ÀÎÀÇ ÀνºÅϽº À̸§ ¼³Á¤/[33:22] À§ÀÓ °úÁ¤/[33:58] »ý¼ºµÇÁö¾Ê´Â PrinterÀÇ ÀνºÅϽº/[35:37] synchronized¸Þ¼Òµå·Î ÇÏÁö ¾ÊÀº °æ¿ì/[36:22] MainŬ·¡½ºÀÇ ¼Ò½º ÄÚµå/[37:44] PrinterŬ·¡½ºÀÇ »ý¼ºÀÚ/[38:52] PrinterProxyŬ·¡½º¸¦ ¼öÁ¤ÇϱâÀ§ÇÑ ¹æ¹ý/[39:35] realÇÊµå º¯°æ/[40:28] Main¿¡ PrinterProxy»ý¼ººÎºÐ º¯°æ/[41:35] ProxyÆÐÅÏÀÇ °¢ ¿ªÇÒ/[41:57] SubjectÀÇ ¿ªÇÒ/[42:27] ProxyÀÇ ¿ªÇÒ/[43:15] RealSubjectÀÇ ¿ªÇÒ/[43:45] ClientÀÇ ¿ªÇÒ/[46:30] ºÐ¸®Çؼ °³º°ÀûÀ¸·Î ¼öÁ¤ °¡´É/[48:07] À§ÀÓ/[48:45] Åõ°úÀû/[49:28] ProxyÆÐÅÏÀÇ Á¾·ù/[49:42] Virtual Proxy(°¡»ó ÇÁ·Ï½Ã)/[49:52] Remote Proxy(¿ø°Ý ÇÁ·Ï½Ã)/[50:19] Access Proxy/[50:44] ProxyÆÐÅÏÀÇ ¿¹Á¦/[52:12] ¿¹Á¦¸¦ ProxyÆÐÅÏÀ¸·Î ±¸ÇöÇÑ ProxyImageŬ·¡½º/[52:30] draw¸Þ¼Òµå/[53:07] ListUIŬ·¡½º/[55:14] ProxyÆÐÅÏÀÇ Á¤¸® -
19.1½Ã°£ 52ºÐ µðÀÚÀÎ ÆÐÅϵé part13
Command, Interpreter
Ã¥°¥ÇÇ[00:05] CommandÆÐÅÏ/[00:37] ¸í·É Ç¥Çö/[02:07] CommandÆÐÅÏÀ» »ç¿ëÇÑ ±×¸²±×¸®±â ¿¹Á¦/[02:42] Ŭ·¡½º ´ÙÀ̾î±×·¥ È®ÀÎ/[03:05] Á¡À» ±×¸®´Â ¸í·É-DrawCommandŬ·¡½ºÀÇ ÀνºÅϽº·Î »ý¼º/[03:19] 3°¡Áö ÆÐŰÁö·Î ±¸¼º/[04:30] CommandÀÎÅÍÆäÀ̽ºÀÇ ¼Ò½º ÄÚµå/[04:46] execute¸Þ¼Òµå È£Ãâ/[05:15] MacroCommandŬ·¡½ºÀÇ ¼Ò½º ÄÚµå/[05:46] commandsÇʵå/[07:00] append¸Þ¼Òµå/[07:57] undo¸Þ¼Òµå/[08:22] clear¸Þ¼Òµå/[08:46] DrawCommandŬ·¡½ºÀÇ ¼Ò½º ÄÚµå/[09:52] execute¸Þ¼Òµå/[10:11] DrawableÀÎÅÍÆäÀ̽º/[10:39] DrawCanvasŬ·¡½ºÀÇ ¼Ò½º ÄÚµå/[12:16] paint¸Þ¼Òµå/[12:48] draw¸Þ¼Òµå/[13:18] MainŬ·¡½ºÀÇ ¼Ò½º ÄÚµå/[14:09] historyÇʵå/[14:22] canvasÇʵå/[14:37] clearButtonÇʵå/[14:58] »ý¼ºÀÚ¿¡¼ ÀüÃ¼È¸é ±¸¼º/[16:07] À̺¥Æ®¸®½º³Ê ¼³Á¤/[16:33] ¹öưÀÇ ·¹À̾ƿô/[17:26] actionPerformed¸Þ¼Òµå/[17:48] mouseMoved¿Í mouseDragged¸Þ¼Òµå/[18:29] À©µµ¿ì ¸®½º³Ê ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇϱâ À§ÇÑ ¸Þ¼Òµå/[18:59] ¹öư ¿¹Á¦/[19:47] ¿¹Á¦ Ŭ·¡½º ´ÙÀ̾î±×·¥À» ±â¹ÝÀ¸·Î ¼Ò½º ÄÚµå ÀÛ¼º/[20:18] ButtonŬ·¡½º/[21:11] ¹öưÀ» ´·¶À» ¶§ ´Ù¸¥ ±â´ÉÀ» ½ÇÇàÇÏ´Â °æ¿ì/[22:21] ¹öưÀ» ´©¸£´Â µ¿ÀÛ¿¡ µû¶ó ´Ù¸¥ ±â´É ½ÇÇà/[23:18] ButtonŬ·¡½º¿¡ setMode¸Þ¼Òµå Ãß°¡/[23:48] ClientŬ·¡½º È®ÀÎ/[25:03] »õ·Î¿î ±â´ÉÀÇ Ãß°¡³ª º¯°æÀ» ÇÏ´õ¶óµµ ButtonŬ·¡½º¸¦ ±×´ë·Î »ç¿ëÇϱâ À§ÇÑ ¹æ¹ý/[25:44] pressed¸Þ¼Òµå ¼öÁ¤/[25:59] ¿©·¯°¡Áö ±â´ÉÀ» ¼öÇàÇÏ´Â ¹öưŬ·¡½ºÀÇ ¼³°è ¿¹Á¦/[27:30] ¿¹Á¦¸¦ ±¸ÇöÇÑ ¼Ò½º ÄÚµå È®ÀÎ/[28:26] ButtonŬ·¡½º/[29:11] LampOnCommandŬ·¡½º/[29:41] AlarmŬ·¡½º/[30:18] ClientŬ·¡½º/[31:03] µ¿ÀÏÇÑ pressed¸Þ¼Òµå È£Ãâ/[31:48] CommandÆÐÅÏ Àû¿ë/[32:07] ButtonŬ·¡½ºÀÇ pressed¸Þ¼Òµå/[33:22] ¹öưÀ» Çѹø ´·¶À» ¶§ ·¥ÇÁ¸¦ ÄÑ°í µÎ¹ø ´·¶À» ¶§ ·¥ÇÁ¸¦ ²ô´Â ±â´ÉÀÇ ±¸Çö/[34:15] LampŬ·¡½º¿¡ turnOFF¸Þ¼Òµå Ãß°¡/[34:27] LampOffCommandŬ·¡½º Ãß°¡/[34:51] ClientŬ·¡½º/[35:07] setCommand¸¦ ÅëÇØ lampOffCommand¼³Á¤/[35:30] LampOffCommandŬ·¡½º »õ·Ó°Ô Á¤ÀÇ/[36:07] ÆÄÀÏopen°ú ÆÄÀÏclose°¡ ÀÖ´Ù°í °¡Á¤/[37:00] Command PatternÀ» »ç¿ëÇØ ¸Þ´º¾ÆÀÌÅÛ Àç»ç¿ë/[37:37] CommandÆÐÅÏ¿¡¼ °¢°¢ÀÇ ¿ªÇÒ/[37:52] ConcreteCommandÀÇ ¿ªÇÒ/[38:15] ReceiverÀÇ ¿ªÇÒ/[38:52] ù¹øÂ° ¿¹Á¦ÀÇ CommandÆÐÅÏ Àû¿ëºÎºÐ È®ÀÎ/[40:30] MainŬ·¡½º ¼Ò½º ÄÚµå/[41:35] MainŬ·¡½º¿Í DrawCanvasŬ·¡½º°¡ execute¸Þ¼Òµå È£Ãâ/[41:58] ½ÃÄö½º ´ÙÀ̾î±×·¥ È®ÀÎ/[43:43] ±×¸²±×¸®±â¿¡ »öÀ» ¼³Á¤ÇÏ´Â ±â´É Ãß°¡Çϱâ/[44:52] ColorCommandŬ·¡½º »ý¼º/[45:15] DrawableÀÎÅÍÆäÀ̽º ¼öÁ¤/[45:37] DrawCanvas¿¡ Àû¿ë/[46:22] setColor¸Þ¼Òµå Ãß°¡/[47:00] MainŬ·¡½º¿¡ 3°³ÀÇ ¹öư Ãß°¡ »ý¼º/[47:22] ¹öư ¹öư¹Ú½º¿¡ Ãß°¡/[48:12] redButtonÀÌ ´·ÈÀ» ¶§ÀÇ Command/[48:52] blueButton°ú greenButtonµ¿ÀÏ ÀÛ¾÷/[49:13] undo±â´É Ãß°¡/[49:49] MainŬ·¡½º¿¡ undo¹öư Ãß°¡/[50:30] CommandÆÐÅÏÀÇ Á¤¸®/[50:52] InterpreterÆÐÅÏ/[51:45] º¯È°¡ »ý°åÀ» ¶§ ¾î´À ·¹º§ÀÇ ÇÁ·Î±×·¥À» ¼öÁ¤ÇÒ °ÍÀÎÁö È®ÀÎ/[53:07] ¹Ì´Ï ¾ð¾î ¼³¸í/[54:22] ¹Ì´Ï ¾ð¾î·Î ±â¼úµÈ ¹Ì´Ï ÇÁ·Î±×·¥ÀÇ ¿¹/[56:00] ¹Ì´Ï ¾ð¾îÀÇ ¹®¹ý/[58:45] ¹Ì´Ï ¾ð¾î¸¦ ±¸ºÐÇØ¼®ÇÏ´Â ¿¹Á¦/[60:00] ¿¹Á¦ ÇÁ·Î±×·¥ÀÇ Å¬·¡½º ´ÙÀ̾î±×·¥/[61:19] NodeŬ·¡½ºÀÇ ¼Ò½º ÄÚµå/[62:50] ProgramNodeŬ·¡½º/[63:49] Token-±¸¹®Çؼ®ÀÇ Ã³¸® ´ÜÀ§/[65:15] CommandListNodeŬ·¡½º/[68:09] CommandNodeŬ·¡½º/[69:30] RepeatCommandNodeŬ·¡½º/[70:14] parse¸Þ¼Òµå/[72:45] PrimitiveCommandNodeŬ·¡½º/[73:56] ContextŬ·¡½º/[76:15] nextToken¸Þ¼Òµå È£Ãâ/[77:15] MainŬ·¡½º/[78:45] parse¸¦ ³¡³»°í nodeÃâ·Â/[79:45] InterpreterÆÐÅÏÀÇ °¢ ¿ªÇÒ/[80:45] TerminalExpressionÀÇ ¿ªÇÒ/[81:00] NonTerminalExpressionÀÇ ¿ªÇÒ/[81:26] ContextÀÇ ¿ªÇÒ/[81:45] ClientÀÇ ¿ªÇÒ/[82:13] ¹Ì´Ï ¾ð¾îÀÇ ´Ù¸¥ Á¾·ù/[83:30] Interpreter¸¦ ¸¸µé ¶§ÀÇ ¿À·ù/[84:15] ÇÁ·Î±×·¥À» ¼öÁ¤Çؼ ½ÇÇà/[87:00] InterpreterFacadeŬ·¡½º/[87:45] parse¸Þ¼Òµå/[88:40] ExecutorFactoryÀÎÅÍÆäÀ̽º/[88:54] ContextŬ·¡½º¿¡¼ ExecutorFactory±¸Çö/[89:45] NodeŬ·¡½º¿¡¼ Executor±¸Çö/[90:30] ProgramNodeŬ·¡½º/[91:00] CommandNodeŬ·¡½º/[91:30] RepeatCommandNodeŬ·¡½º/[91:58] CommandListNodeŬ·¡½º/[92:15] PrimitiveCommandNodeŬ·¡½º/[93:45] TurtleCanvasŬ·¡½º/[96:00] TurtleExecutorŬ·¡½º/[97:41] initializeÈ£Ãâ/[99:15] MainŬ·¡½º/[00:00] actionPerformed¸Þ¼Òµå/[00:17] parseAndExecute¸Þ¼Òµå/[00:53] InterpreterÆÐÅÏ Á¤¸®/[01:38] IteratorÆÐÅÏ/[02:28] Iterator¿Í VisitorÆÐÅÏÀ» °°ÀÌ »ç¿ëÇÒ °æ¿ì/[02:42] CompositeÆÐÅÏ/[03:00] Factory Method/[03:23] AdapterÆÐÅÏ/[04:15] Template Method/[05:00] Factory MethodÀÇ ¿¬°ü ÆÐÅÏ/[06:14] SingletonÆÐÅÏ/[06:38] PrototypeÀÇ ¿¬°ü ÆÐÅÏ/[07:46] BuilderÀÇ ¿¬°ü ÆÐÅÏ/[08:43] Abstract Factory/[09:15] Bridge/[09:35] StrategyÆÐÅÏ/[10:54] Chain of Responsibility/[11:18] Mediator -
20.1½Ã°£ 27ºÐ UML ´ÙÀ̾î±×·¥
´ÙÀ̾î±×·¥ Á¾·ù, À¯½ºÄÉÀ̽º, ÄÄÆ÷³ÍÆ®, º¹ÇÕ±¸Á¶, Ȱµ¿, »óÅÂ, ½ÃÄö½º, Åë½Å, ŸÀ̹Ö, »óÈ£ÀÛ¿ë °³¿ä, ¹èÄ¡
Ã¥°¥ÇÇ[00:05] UML¾Ë¾Æº¸±â/[00:47] UMLÀÇ ´ÙÀ̾î±×·¥ÀÇ Á¾·ù¿Í Ư¼º/[01:19] ¿©·¯°¡Áö ´ÙÀ̾î±×·¥À» Ŭ·¡½º ´ÙÀ̾î±×·¥À¸·Î ±¸¼º/[02:51] UML2.0À» ±¸¼ºÇÏ´Â ´ÙÀ̾î±×·¥/[03:53] ±¸Á¶ ´ÙÀ̾î±×·¥/[04:00] Class´ÙÀ̾î±×·¥/[04:15] Object´ÙÀ̾î±×·¥/[04:28] Deployment´ÙÀ̾î±×·¥/[04:58] Package´ÙÀ̾î±×·¥/[05:15] Component´ÙÀ̾î±×·¥/[05:24] Composite structure´ÙÀ̾î±×·¥/[07:00] ÇàÀ§ ´ÙÀ̾î±×·¥/[07:46] Use case´ÙÀ̾î±×·¥/[08:03] State machine´ÙÀ̾î±×·¥/[08:16] Activity´ÙÀ̾î±×·¥/[08:26] Interaction´ÙÀ̾î±×·¥/[08:41] Sequence¿Í Communication´ÙÀ̾î±×·¥/[09:20] Interaction overview´ÙÀ̾î±×·¥/[09:39] Timing´ÙÀ̾î±×·¥/[10:13] ¿ä±¸»çÇ× Á¤ÀÇ ´Ü°è¿¡¼ »ç¿ëµÇ´Â ´ÙÀ̾î±×·¥/[10:50] ºÐ¼® ´Ü°è¿¡¼ »ç¿ëµÇ´Â ´ÙÀ̾î±×·¥/[12:31] ¼³°è ´Ü°è¿¡¼ »ç¿ëµÇ´Â ´ÙÀ̾î±×·¥/[14:45] ±¸Çö°ú Å×½ºÆ® ´Ü°è¿¡¼ »ç¿ëµÇ´Â ´ÙÀ̾î±×·¥/[16:10] Package´ÙÀ̾î±×·¥Àº ¿ä±¸»çÇ× Á¤ÀÇ, ºÐ¼®, ¼³°è ´Ü°è¿¡¼ »ç¿ë/[16:44] À¯½ºÄÉÀ̽º ´ÙÀ̾î±×·¥ÀÇ ¿¹Á¦/[17:11] ½Ã½ºÅÛ°ú »óÈ£ÀÛ¿ëÇÏ´Â ´ë»óÀ» ¾×ÅÍ·Î Á¤ÀÇ/[20:03] À¯½ºÄÉÀ̽º·Î Æ÷ÇÔµÇÁö ¾ÊÀº °ÍÀº ¿ä±¸»çÇ׿¡¼ Á¦¿Ü/[21:48] Timer¾×ÅÍÀÇ ¿ªÇÒ/[22:22] È®ÀåµÈ À¯½ºÄÉÀ̽º ´ÙÀ̾î±×·¥ È®ÀÎ/[22:48] ¾×ÅÍÀÇ ÀϹÝÈ/[24:07] Use caseÀÇ ÀϹÝÈ/[25:30] Use caseÀÇ Æ÷ÇÔ/[26:37] Use caseÀÇ È®Àå/[27:36] ¾×ÅͰ£ÀÇ ¿¬°ü°ü°è/[28:29] Ŭ·¡½º ´ÙÀ̾î±×·¥/[28:56] µµ¼´ëÃ⠽ýºÅÛÀ» ±¸¼ºÇϰí Àִ Ŭ·¡½º/[29:33] ´Éµ¿(actiive)Ŭ·¡½º/[30:41] boundary/[30:52] control/[31:06] entity/[31:26] ¼Ó¼º°ú ¿¬»êÀÌ ¸í½ÃµÈ Ŭ·¡½º ´ÙÀ̾î±×·¥/[32:52] ¼³°è´Ü°èÀÇ Å¬·¡½º ´ÙÀ̾î±×·¥ Ȱ¿ë¹æ¹ý/[33:37] ÆÄƮŬ·¡½ºÀÇ Ç¥Çö/[35:22] °´Ã¼ ´ÙÀ̾î±×·¥/[35:43] °´Ã¼ÀÇ Ç¥Çö¹æ¹ý È®ÀÎ/[36:37] 4°³ÀÇ °´Ã¼´Â ±³Åë¼ö´Ü Ŭ·¡½º·Î instantiationÀÇÁ¸°ü°è/[37:37] ÆÐŰÁö ´ÙÀ̾î±×·¥/[38:07] packageElement/[38:57] Ŭ·¡½º¸¦ ÆÐŰÁö·Î Á¶Á÷ÈÇÑ ¿¹Á¦/[39:45] ÄÄÆ÷³ÍÆ® ´ÙÀ̾î±×·¥/[40:29] ¼ÒÇÁÆ®¿þ¾î ¾ÆÅ°ÅØÃĸ¦ Ç¥ÇöÇÒ ¶§ »ç¿ë/[41:15] ÀÎÅÍÆäÀ̽º/[41:52] ÀÎÅÍÆäÀ̽º¸¦ ±¸¼ºÇÏ´Â ¿¬»ê¿¡ÀÇÇØ Á¤ÀÇ/[42:45] º¹ÇÕ±¸Á¶ ´ÙÀ̾î±×·¥/[43:15] ÆÄÆ®, Æ÷Æ®, ¿¬°áÀÚÀÇ °³³äÀ» ÀÌ¿ë/[44:52] Æ÷Æ®-ÆÄÆ®°£ÀÇ Åë½ÅÀ» À§ÇÑ ¿¬°áÁöÁ¡/[46:07] ¿¬°áÀÚ/[47:50] Ȱµ¿ ´ÙÀ̾î±×·¥/[48:07] Ȱµ¿³ëµå/[48:22] °´Ã¼³ëµå/[48:45] Á¦¾î³ëµå/[49:27] ÆÇ´Ü³ëµå/[50:05] º´ÇÕ³ëµå/[50:37] Æ÷Å©³ëµå/[51:13] Á¶Àγëµå/[51:52] Á¦¾îÈ帧/[52:27] °´Ã¼È帧/[53:15] ¿¹¿Ü󸮰¡ Ãß°¡µÈ Ȱµ¿ ´ÙÀ̾î±×·¥/[53:37] orderCancelRequest/[54:57] Ȱµ¿ ´ÙÀ̾î±×·¥À» ÆÄƼ¼Ç°ú ±¸È¹¸éÀ» ÀÌ¿ëÇÏ¿© ³ªÅ¸³½ ±×¸²/[55:12] ÆÄƼ¼Ç/[55:52] Invoice/[56:15] »óÅ ´ÙÀ̾î±×·¥/[56:45] ÈÞ´ëÆùÀÇ Á¾·á¹öưÀ» ´·¶À» °æ¿ìÀÇ ¿¹Á¦/[57:29] »óÅÂ/[58:07] ½ÃÀÛ»óÅÂ/[58:37] Á¾·á»óÅÂ/[59:36] ÀüÀÌ-°´Ã¼ÀÇ »óŰ¡ ´Ù¸¥ »óÅ·Πº¯°æ/[60:00] À̺¥Æ®/¾×¼Ç/[60:42] º¹ÀâÇÑ »óÅ ´ÙÀ̾î±×·¥ÀÇ ¿¹Á¦/[61:20] »óÅ ³»ºÎ È®ÀÎ/[62:37] º¹ÇÕ »óÅÂ(Operating)/[63:00] »óÅ ³»ºÎÀÇ do/¾×¼Ç/[64:00] »óŸ¦ ¹þ¾î³¯ ¶§¸¶´Ù ¼öÇàµÇ´Â Exit/¾×¼Ç/[65:45] º¹ÇÕ »óÅ ³»ºÎ/[67:23] Á÷±³º¹ÇÕ »óÅÂ/[67:58] MotorÀÇ »óÅÂ¿Í ArrivalSensorÀÇ »óÅÂ/[68:45] È÷½ºÅ丮 »óÅÂ/[70:00] ½ÃÄö½º ´ÙÀ̾î±×·¥/[70:28] »ý¸í¼±/[71:15] ¸Þ½ÃÁö/[71:45] ¸Þ½ÃÁöÀÇ Àü´Þ ¼ø¼/[72:15] µ¿±âÀû ¸Þ½ÃÁö/[72:45] ºñµ¿±âÀû ¸Þ½ÃÁö/[73:15] º¹ÀâÇÑ ½ÃÄö½º ´ÙÀ̾î±×·¥ ¿¹Á¦/[73:28] »óÈ£ÀÛ¿ë À̸§/[74:12] ¹ß°ßµÈ ¸Þ½ÃÁö/[74:40] º¹ÇÕÀû ºÎºÐ/[76:27] Åë½Å ´ÙÀ̾î±×·¥/[77:44] ¸Þ½ÃÁö Àü´Þ ¼ø¼´Â ¸Þ½ÃÁö ¾Õ¿¡ ¼ø¹øÀ» ¸í½Ã/[78:45] ŸÀÌ¹Ö ´ÙÀ̾î±×·¥/[79:15] »ý¸í¼± °¡·Î¹æÇâÀ¸·Î Ç¥½Ã/[81:00] »óÈ£ÀÛ¿ë °³¿ä ´ÙÀ̾î±×·¥/[82:15] Ȱµ¿ ´ÙÀ̾î±×·¥ÀÇ ÀÏÁ¾/[84:10] ¹èÄ¡ ´ÙÀ̾î±×·¥/[84:44] ³ëµå/[85:15] Åë½Å °æ·Î/[86:04] ¼öÇà ȯ°æ