- ÇöÀç À§Ä¡
- home > ÄÄÇ»ÅÍ¡¤ICT¡¤¾îÇÐ > ÄÄÇ»ÅÍ¡¤IT µµ¼ > À¥ÇÁ·Î±×·¡¹Ö > Node.js µðÀÚÀÎ ÆÐÅÏ ¹ÙÀ̺í[¿µÁø.com(¿µÁø´åÄÄ)]
¿Ïº®ÇÑ Node.js ¾ÖÇø®ÄÉÀÌ¼Ç ¼³°è¸¦ À§ÇÑ µðÀÚÀÎ ÆÐÅÏ ¹ÙÀ̺í. Node.js·Î ÇÁ·Î±×·¡¹ÖÀ» Çϴµ¥ ÇÊ¿äÇÑ ±âÃÊÀûÀÎ °³³äÀ» ½ÃÀÛÀ¸·Î ½ÃÀÛÀ¸·Î À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» ¸¸µå´Âµ¥ »ç¿ëÇÒ ¼ö ÀÖ´Â µðÀÚÀÎ ÆÐÅϱîÁö, Á÷Á¢ µû¶óÇÒ ¼ö ÀÖ´Â ¿¹Á¦¿Í ¸ð¹ü »ç·ÊµéÀ» ÅëÇØ »ìÆ캻´Ù.
°¢ éÅÍ´Â µðÀÚÀÎ ÆÐÅÏÀ» ÁÖÁ¦º°·Î ³ª´©¾î »óȲ¿¡ µû¸¥ µðÀÚÀÎ ÆÐÅÏ°ú ÀÌ¿ë »ç·Ê¸¦ ¼Ò°³ÇÑ´Ù. ¶ÇÇÑ ¼³¸í¿¡¼ »ç¿ëµÇ¾ú´ø »ç·Ê¿¡ µû¶ó ½ÇÁ¦ °³¹ß ȯ°æ¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â ´Ù¾çÇÑ ¶óÀ̺귯¸®¿Í ±â¼úµéÀ» ¼Ò°³Çϸç Node.jsÀÇ ÀüüÀûÀÎ »ýÅ°è¿Í ¼Ö·ç¼Ç°ú Á¶¸íÇÑ´Ù.
°¢ éÅÍ´Â µðÀÚÀÎ ÆÐÅÏÀ» ÁÖÁ¦º°·Î ³ª´©¾î »óȲ¿¡ µû¸¥ µðÀÚÀÎ ÆÐÅÏ°ú ÀÌ¿ë »ç·Ê¸¦ ¼Ò°³ÇÑ´Ù. ¶ÇÇÑ ¼³¸í¿¡¼ »ç¿ëµÇ¾ú´ø »ç·Ê¿¡ µû¶ó ½ÇÁ¦ °³¹ß ȯ°æ¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â ´Ù¾çÇÑ ¶óÀ̺귯¸®¿Í ±â¼úµéÀ» ¼Ò°³Çϸç Node.jsÀÇ ÀüüÀûÀÎ »ýÅ°è¿Í ¼Ö·ç¼Ç°ú Á¶¸íÇÑ´Ù.
ÀúÀÚ: Mario Casciaro
Chapter 01 Node.js Ç÷§Æû
1-1 Node.js öÇÐ
1-2 Node.js´Â ¾î¶»°Ô ÀÛµ¿Çϴ°¡
1-3 Node.js¿¡¼ÀÇ JavaScript
¿ä¾à
Chapter 02 ¸ðµâ ½Ã½ºÅÛ
2-1 ¸ðµâÀÇ Çʿ伺
2-2 JavaScript¿Í Node.js¿¡¼ÀÇ ¸ðµâ ½Ã½ºÅÛ
2-3 ¸ðµâ ½Ã½ºÅÛ°ú ÆÐÅÏ
2-4 CommonJS ¸ðµâ
2-5 ¸ðµâ Á¤ÀÇ ÆÐÅÏ
2-6 ESM: ECMAScript ¸ðµâ
2-7 ESM°ú CommonJSÀÇ Â÷ÀÌÁ¡°ú »óÈ£ ¿î¿ë
¿ä¾à
Chapter 03 Äݹé°ú À̺¥Æ®
3-1 Äݹé ÆÐÅÏ
3-2 °üÂûÀÚ ÆÐÅÏ(The observer pattern)
¿ä¾à
Chapter 04 ÄݹéÀ» »ç¿ëÇÑ ºñµ¿±â Á¦¾î È帧 ÆÐÅÏ
4-1 ºñµ¿±â ÇÁ·Î±×·¡¹ÖÀÇ ¾î·Á¿ò
4-2 ÄÝ¹é ¸ð¹ü »ç·Ê¿Í Á¦¾î È帧 ÆÐÅÏ
4-3 ºñµ¿±â ¶óÀ̺귯¸®
¿ä¾à
Chapter 05 Promise ±×¸®°í Async/Await¿Í ÇÔ²² ÇÏ´Â ºñµ¿±â Á¦¾î È帧 ÆÐÅÏ
5-1 ÇÁ¶ó¹Ì½º(Promise)
5-2 Async/await
5-3 ¹«ÇÑ Àç±Í ÇÁ¶ó¹Ì½º ÇØ°á(resolution) üÀÎÀÇ ¹®Á¦
¿ä¾à
Chapter 06 ½ºÆ®¸² ÄÚµù
6-1 ½ºÆ®¸²ÀÇ Á߿伺 ¹ß°ß
6-2 ½ºÆ®¸² ½ÃÀÛÇϱâ
6-3 ½ºÆ®¸²À» »ç¿ëÇÑ ºñµ¿±â Á¦¾î È帧 ÆÐÅÏ
6-4 ÆÄÀÌÇÎ(Piping) ÆÐÅÏ
¿ä¾à
Chapter 07 »ý¼ºÀÚ µðÀÚÀÎ ÆÐÅÏ
7-1 ÆÑÅ丮
7-2 ºô´õ
7-3 °ø°³ »ý¼ºÀÚ
7-4 ½Ì±ÛÅæ
7-5 ¸ðµâ ¿ÍÀ̾(Wiring)
¿ä¾à
Chapter 08 ±¸Á¶Àû ¼³°è ÆÐÅÏ
8-1 ÇÁ·Ï½Ã
8-2 µ¥ÄÚ·¹ÀÌÅÍ
8-3 ÇÁ·Ï½Ã¿Í µ¥ÄÚ·¹ÀÌÅÍ »çÀÌÀÇ °æ°è
8-4 ¾î´ðÅÍ
¿ä¾à
Chapter 09 ÇàÀ§ µðÀÚÀÎ ÆÐÅÏ
9-1 Àü·« ÆÐÅÏ
9-2 »óÅÂ(State)
9-3 ÅÛÇø´
9-4 ¹Ýº¹ÀÚ(Iterator)
9-5 ¹Ìµé¿þ¾î
9-6 ¸í·É
¿ä¾à
Chapter 10 À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» À§ÇÑ ¹ü¿ë JavaScript
10-1 ºê¶ó¿ìÀú¿Í ÄÚµå °øÀ¯
10-2 Å©·Î½º Ç÷§Æû °³¹ßÀÇ ±âÃÊ
10-3 React °³¿ä
10-4 ¹ü¿ë JavaScript ¾Û ¸¸µé±â
¿ä¾à
Chapter 11 °í±Þ ·¹½ÃÇÇ
11-1 ºñµ¿±âÀûÀ¸·Î ÃʱâȵǴ ÄÄÆ÷³ÍÆ® ´Ù·ç±â
11-2 ºñµ¿±â½Ä ¿äû ÀÏ°ý ó¸® ¹× ij½Ì
11-3 ºñµ¿±â ÀÛ¾÷ Ãë¼Ò
11-4 CPU ¹Ù¿îµå ÀÛ¾÷ ½ÇÇà
¿ä¾à
Chapter 12 È®À强°ú ¾ÆÅ°ÅØó ÆÐÅÏ
12-1 ¾ÖÇø®ÄÉÀÌ¼Ç È®Àå ¼Ò°³
12-2 º¹Á¦ ¹× ·Îµå ¹ë·±½Ì
12-3 º¹ÀâÇÑ ¾ÖÇø®ÄÉÀÌ¼Ç ºÐÇØ
¿ä¾à
Chapter 13 ¸Þ½Ã¡°ú ÅëÇÕ ÆÐÅÏ
13-1 ¸Þ½Ã¡ ½Ã½ºÅÛÀÇ ±âÃÊ
13-2 ¹ßÇà/±¸µ¶ ÆÐÅÏ
13-3 ÀÛ¾÷ ¹èÆ÷(Task distribution) ÆÐÅÏ
13-4 ¿äû(Request)/ÀÀ´ä(Reply) ÆÐÅÏ
¿ä¾à
1-1 Node.js öÇÐ
1-2 Node.js´Â ¾î¶»°Ô ÀÛµ¿Çϴ°¡
1-3 Node.js¿¡¼ÀÇ JavaScript
¿ä¾à
Chapter 02 ¸ðµâ ½Ã½ºÅÛ
2-1 ¸ðµâÀÇ Çʿ伺
2-2 JavaScript¿Í Node.js¿¡¼ÀÇ ¸ðµâ ½Ã½ºÅÛ
2-3 ¸ðµâ ½Ã½ºÅÛ°ú ÆÐÅÏ
2-4 CommonJS ¸ðµâ
2-5 ¸ðµâ Á¤ÀÇ ÆÐÅÏ
2-6 ESM: ECMAScript ¸ðµâ
2-7 ESM°ú CommonJSÀÇ Â÷ÀÌÁ¡°ú »óÈ£ ¿î¿ë
¿ä¾à
Chapter 03 Äݹé°ú À̺¥Æ®
3-1 Äݹé ÆÐÅÏ
3-2 °üÂûÀÚ ÆÐÅÏ(The observer pattern)
¿ä¾à
Chapter 04 ÄݹéÀ» »ç¿ëÇÑ ºñµ¿±â Á¦¾î È帧 ÆÐÅÏ
4-1 ºñµ¿±â ÇÁ·Î±×·¡¹ÖÀÇ ¾î·Á¿ò
4-2 ÄÝ¹é ¸ð¹ü »ç·Ê¿Í Á¦¾î È帧 ÆÐÅÏ
4-3 ºñµ¿±â ¶óÀ̺귯¸®
¿ä¾à
Chapter 05 Promise ±×¸®°í Async/Await¿Í ÇÔ²² ÇÏ´Â ºñµ¿±â Á¦¾î È帧 ÆÐÅÏ
5-1 ÇÁ¶ó¹Ì½º(Promise)
5-2 Async/await
5-3 ¹«ÇÑ Àç±Í ÇÁ¶ó¹Ì½º ÇØ°á(resolution) üÀÎÀÇ ¹®Á¦
¿ä¾à
Chapter 06 ½ºÆ®¸² ÄÚµù
6-1 ½ºÆ®¸²ÀÇ Á߿伺 ¹ß°ß
6-2 ½ºÆ®¸² ½ÃÀÛÇϱâ
6-3 ½ºÆ®¸²À» »ç¿ëÇÑ ºñµ¿±â Á¦¾î È帧 ÆÐÅÏ
6-4 ÆÄÀÌÇÎ(Piping) ÆÐÅÏ
¿ä¾à
Chapter 07 »ý¼ºÀÚ µðÀÚÀÎ ÆÐÅÏ
7-1 ÆÑÅ丮
7-2 ºô´õ
7-3 °ø°³ »ý¼ºÀÚ
7-4 ½Ì±ÛÅæ
7-5 ¸ðµâ ¿ÍÀ̾(Wiring)
¿ä¾à
Chapter 08 ±¸Á¶Àû ¼³°è ÆÐÅÏ
8-1 ÇÁ·Ï½Ã
8-2 µ¥ÄÚ·¹ÀÌÅÍ
8-3 ÇÁ·Ï½Ã¿Í µ¥ÄÚ·¹ÀÌÅÍ »çÀÌÀÇ °æ°è
8-4 ¾î´ðÅÍ
¿ä¾à
Chapter 09 ÇàÀ§ µðÀÚÀÎ ÆÐÅÏ
9-1 Àü·« ÆÐÅÏ
9-2 »óÅÂ(State)
9-3 ÅÛÇø´
9-4 ¹Ýº¹ÀÚ(Iterator)
9-5 ¹Ìµé¿þ¾î
9-6 ¸í·É
¿ä¾à
Chapter 10 À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» À§ÇÑ ¹ü¿ë JavaScript
10-1 ºê¶ó¿ìÀú¿Í ÄÚµå °øÀ¯
10-2 Å©·Î½º Ç÷§Æû °³¹ßÀÇ ±âÃÊ
10-3 React °³¿ä
10-4 ¹ü¿ë JavaScript ¾Û ¸¸µé±â
¿ä¾à
Chapter 11 °í±Þ ·¹½ÃÇÇ
11-1 ºñµ¿±âÀûÀ¸·Î ÃʱâȵǴ ÄÄÆ÷³ÍÆ® ´Ù·ç±â
11-2 ºñµ¿±â½Ä ¿äû ÀÏ°ý ó¸® ¹× ij½Ì
11-3 ºñµ¿±â ÀÛ¾÷ Ãë¼Ò
11-4 CPU ¹Ù¿îµå ÀÛ¾÷ ½ÇÇà
¿ä¾à
Chapter 12 È®À强°ú ¾ÆÅ°ÅØó ÆÐÅÏ
12-1 ¾ÖÇø®ÄÉÀÌ¼Ç È®Àå ¼Ò°³
12-2 º¹Á¦ ¹× ·Îµå ¹ë·±½Ì
12-3 º¹ÀâÇÑ ¾ÖÇø®ÄÉÀÌ¼Ç ºÐÇØ
¿ä¾à
Chapter 13 ¸Þ½Ã¡°ú ÅëÇÕ ÆÐÅÏ
13-1 ¸Þ½Ã¡ ½Ã½ºÅÛÀÇ ±âÃÊ
13-2 ¹ßÇà/±¸µ¶ ÆÐÅÏ
13-3 ÀÛ¾÷ ¹èÆ÷(Task distribution) ÆÐÅÏ
13-4 ¿äû(Request)/ÀÀ´ä(Reply) ÆÐÅÏ
¿ä¾à
¿Ïº®ÇÑ Node.js ¾ÖÇø®ÄÉÀÌ¼Ç ¼³°è¸¦ À§ÇÑ µðÀÚÀÎ ÆÐÅÏ ¹ÙÀ̺í
È¿À²ÀûÀÌ°í °·ÂÇÑ Node.js ¾ÖÇø®ÄÉÀÌ¼Ç ±¸Ãà¿¡ ÇÊ¿äÇÑ µðÀÚÀÎ ÆÐÅϵéÀ» ÇÑ ±ÇÀ¸·Î Á¤¸®ÇÑ´Ù. Node.js·Î ÇÁ·Î±×·¡¹ÖÀ» Çϴµ¥ ÇÊ¿äÇÑ ±âÃÊÀûÀÎ °³³äÀ» ½ÃÀÛÀ¸·Î ½ÃÀÛÀ¸·Î À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» ¸¸µå´Âµ¥ »ç¿ëÇÒ ¼ö ÀÖ´Â µðÀÚÀÎ ÆÐÅϱîÁö, Á÷Á¢ µû¶óÇÒ ¼ö ÀÖ´Â ¿¹Á¦¿Í ¸ð¹ü »ç·ÊµéÀ» ÅëÇØ »ìÆ캻´Ù.
ÀÌ Ã¥¿¡¼´Â °ß°íÇÑ ¼¹ö»çÀÌµå ¾ÖÇø®ÄÉÀ̼ÇÀ» ¸¸µé±â À§ÇØ »ç¿ëÇÒ ¼ö ÀÖ´Â Node.js 14ÀÇ ¸ðµç ±â´ÉµéÀ» È®ÀÎÇÒ »Ó¸¸ ¾Æ´Ï¶ó, °³¹ßÀÚµéÀÌ Node.js¸¦ »ç¿ëÇÑ ÇÁ·ÎÁ§Æ®¸¦ ÁøÇàÇÒ ¶§ ¸¶ÁÖÇÒ ¼ö ÀÖ´Â ºñµ¿±â Á¦¾î³ª ¹é¿£µå¿Í ÇÁ·ÐÆ®¿£µåÀÇ Åë½Å, ºÐ»ê ½Ã½ºÅÛ ±¸Ãà °°Àº ÁÖÁ¦µéÀ» ´Ù·ç¸ç À̸¦ ÇØ°áÇÒ ¼ö ÀÖ´Â ´Ù¾çÇÑ À̷аú ÆÐÅϵéÀ» »ìÆ캻´Ù.
°¢ éÅÍ´Â µðÀÚÀÎ ÆÐÅÏÀ» ÁÖÁ¦º°·Î ³ª´©¾î »óȲ¿¡ µû¸¥ µðÀÚÀÎ ÆÐÅÏ°ú ÀÌ¿ë »ç·Ê¸¦ ¼Ò°³ÇÑ´Ù. ¶ÇÇÑ ¼³¸í¿¡¼ »ç¿ëµÇ¾ú´ø »ç·Ê¿¡ µû¶ó ½ÇÁ¦ °³¹ß ȯ°æ¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â ´Ù¾çÇÑ ¶óÀ̺귯¸®¿Í ±â¼úµéÀ» ¼Ò°³Çϸç Node.jsÀÇ ÀüüÀûÀÎ »ýÅ°è¿Í ¼Ö·ç¼Ç°ú Á¶¸íÇÑ´Ù. Node.js¸¦ Çö¾÷ ÇÁ·ÎÁ§Æ®¿¡ »ç¿ëÇÏ°í ½ÍÀº °³¹ßÀÚ³ª Node.js°¡ ÀÛµ¿ÇÏ´Â ¿ø¸®¿¡ ´ëÇØ ÀÚ¼¼ÇÏ°Ô ¾Ë°í ½Í¾ú´ø µ¶ÀÚ¶ó¸é ¿Ïº®ÇÑ Node.js ¾ÖÇø®ÄÉÀ̼ÇÀ» ¸¸µå´Âµ¥ ÇÊ¿äÇÑ ¸ðµç Áö½ÄÀ» °®Ãâ ¼ö ÀÖ°Ô µÉ °ÍÀÌ´Ù.
* ÃâÆÇ»ç ¸®ºä
ÀÌ Ã¥Àº ÀÌ¹Ì Node.js¸¦ óÀ½ Á¢ÇÑ ÈÄ ÀÌÁ¦ »ý»ê¼º, µðÀÚÀÎ Ç°Áú ¹× È®À强 Ãø¸é¿¡¼ ÃÖ´ëÇÑ È°¿ëÇÏ°íÀÚ ÇÏ´Â °³¹ßÀÚ¸¦ ´ë»óÀ¸·Î ÇÕ´Ï´Ù. ÀÌ Ã¥Àº ¸î °¡Áö ±âº» °³³äµµ ´Ù·ê °ÍÀ̱⠶§¹®¿¡, ±âº»ÀûÀÎ ¿¹Á¦¸¦ ´Ù·ç¾î º¸¾ÒÀ¸¸é¼ JavaScript ¾ð¾î¿¡ ´ëÇØ ¾î´À Á¤µµÀÇ Ä£¼÷ÇÔ¸¸ ÀÖÀ¸¸é µË´Ï´Ù. Node.jsÀÇ Áß±Þ °³¹ßÀڵ鿡°Ôµµ ÀÌ Ã¥¿¡ Á¦½ÃµÈ ±â¼úµéÀº À¯¿ëÇÒ °ÍÀÔ´Ï´Ù. ¼ÒÇÁÆ®¿þ¾î ¼³°è À̷п¡ ´ëÇÑ ¹è°æ Áö½Äµµ Á¦½ÃµÈ °³³ä Áß ÀϺθ¦ ÀÌÇØÇϴµ¥ À¯¸®ÇÕ´Ï´Ù. ÀÌ Ã¥Àº À¥ ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß, À¥¼ºñ½º, µ¥ÀÌÅͺ£À̽º ¹× µ¥ÀÌÅÍ ±¸Á¶¿¡ ´ëÇÑ ½Ç¹« Áö½ÄÀÌ ÀÖ´Ù°í °¡Á¤ÇÏ°í ÀÖ½À´Ï´Ù.
1Àå. Node.js Ç÷§ÆûÀº Ç÷§Æû ÀÚüÀÇ ÇÙ½É ÆÐÅÏÀ» º¸¿©ÁÜÀ¸·Î½á Node.js ¾ÖÇø®ÄÉÀÌ¼Ç µðÀÚÀÎ ¼¼°è¿¡ ´ëÇÑ °³¿ä ¿ªÇÒÀ» ÇÕ´Ï´Ù. Node.js »ýÅ°è¿Í ±× öÇÐÀ» ´Ù·ç°í Node.js ³»ºÎ ¹× ¸®¾×ÅÍ(reactor) ÆÐÅÏ¿¡ ´ëÇÑ ºü¸¥ ¼Ò°³¸¦ Á¦°øÇÕ´Ï´Ù.
2Àå. ¸ðµâ ½Ã½ºÅÛ¿¡¼´Â Node.js¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â ¸ðµâ ½Ã½ºÅÛÀ» »ìÆ캸°í CommonJS¿Í ECMAScript 2015ºÎÅÍ µµÀÔµÈ ÃÖ½ÅÀÇ ES ¸ðµâ °£ÀÇ Â÷ÀÌÁ¡À» °Á¶ÇÕ´Ï´Ù.
3Àå. ÄÝ¹é ¹× À̺¥Æ®¿¡¼´Â ºñµ¿±â ÄÚµù ¹× ÆÐÅÏÀ» ÇнÀÇÏ°í Äݹé°ú À̺¥Æ® À̹ÌÅÍ(°üÂûÀÚ ÆÐÅÏ)¿¡ ´ëÇØ ³íÀÇÇÏ°í ºñ±³¸¦ À§ÇÑ Ã¹ ¹ø° ´Ü°è¸¦ ¼Ò°³ÇÕ´Ï´Ù.
4Àå. ÄݹéÀ» »ç¿ëÇÑ ºñµ¿±â Á¦¾î È帧 ÆÐÅÏ¿¡¼´Â ÄݹéÀ» »ç¿ëÇÏ¿© Node.js·ÎÀÇ ºñµ¿±â Á¦¾î È帧À» È¿À²ÀûÀ¸·Î ó¸®Çϱâ À§ÇÑ ÀÏ·ÃÀÇ ÆÐÅÏ°ú ±â¼úµéÀ» ¼Ò°³ÇÕ´Ï´Ù. ÀÌ Àå¿¡¼´Â ÀÏ¹Ý JavaScript¸¦ »ç¿ëÇÏ¿© "Äݹé Áö¿Á" ¹®Á¦¸¦ ¿ÏÈÇÏ´Â ¸î °¡Áö ÀüÅëÀûÀÎ ¹æ¹ýÀ» ¼³¸íÇÕ´Ï´Ù.
5Àå. ÇÁ¶ó¹Ì½º ¹× Async/Await¸¦ »ç¿ëÇÑ ºñµ¿±â Á¦¾î È帧 ÆÐÅÏÀº ºñµ¿±â È帧 Á¦¾îÀÇ º¸´Ù Á¤±³ÇÏ°í Çö´ëÀûÀÎ ±â¼úÀ» Ž±¸ÇÏ¸é¼ ÁøÇàÇÕ´Ï´Ù.
6Àå. ½ºÆ®¸² ÄÚµùÀº Node.js¸¦ À§ÇÑ °¡Àå Áß¿äÇÑ µµ±¸ Áß ÇϳªÀÎ ½ºÆ®¸²¿¡ ´ëÇØ ÀÚ¼¼È÷ ¼³¸íÇÕ´Ï´Ù. Transform ½ºÆ®¸²À» °¡Áö°í µ¥ÀÌÅ͸¦ º¯È¯ÇÏ°í ó¸®ÇÏ´Â ¹æ¹ý°ú ´Ù¸¥ ÆÐÅϵ鿡¼ ½ºÆ®¸²µéÀ» °áÇÕÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁÝ´Ï´Ù.
7Àå. »ý¼ºÀÚ µðÀÚÀÎ ÆÐÅÏ¿¡¼´Â Node.jsÀÇ ÀüÅëÀûÀÎ µðÀÚÀÎ ÆÐÅÏÀ» Ž±¸Çϱ⠽ÃÀÛÇÕ´Ï´Ù. ÀÌ Àå¿¡¼´Â °¡Àå ³Î¸® »ç¿ëµÇ´Â »ý¼º ÆÐÅÏÀ¸·Î ÆÑÅ丮(Factory) ÆÐÅÏ, °ø°³ »ý¼ºÀÚ(Revealing Constructor), ºô´õ(Builder) ÆÐÅÏ ±×¸®°í ½Ì±ÛÅæ(Singleton) ÆÐÅÏ¿¡ ´ëÇØ »ìÆ캾´Ï´Ù.
8Àå. ±¸Á¶Àû µðÀÚÀÎ ÆÐÅÏ¿¡¼´Â Node.jsÀÇ ÀüÅëÀûÀÎ µðÀÚÀÎ ÆÐÅÏÀ» °è¼Ó Ž»öÇÏ¿© ÇÁ·Ï½Ã(Proxy), µ¥ÄÚ·¹ÀÌÆ®(Decorator) ¹× ¾î´ðÅÍ(Adapter)¿Í °°Àº ±¸Á¶Àû µðÀÚÀÎ ÆÐÅÏÀ» ´Ù·ì´Ï´Ù.
9Àå. ÇàÀ§ µðÀÚÀÎ ÆÐÅÏÀº Àü·«(Strategy), »óÅÂ(State), ÅÛÇø´(Template), ¹Ìµé¿þ¾î(Middleware), ¸í·É(Command) ±×¸®°í ¹Ýº¹ÀÚ(Iterator)¿Í °°Àº ÇàÀ§ µðÀÚÀÎ ÆÐÅÏÀ» ¼Ò°³ÇÏ°í Node.js¿¡¼ÀÇ ÀüÅëÀûÀÎ µðÀÚÀÎ ÆÐÅÏ¿¡ ´ëÇÑ ³íÀǸ¦ ¸¶¹«¸®ÇÕ´Ï´Ù.
10Àå. ¾ÖÇø®ÄÉÀÌ¼Ç¿ë ¹ü¿ë JavaScript´Â ÇÁ·ÐÆ®¿£µå¿Í ¹é¿£µå °£¿¡ Äڵ带 °øÀ¯ÇÒ ¼ö ÀÖ´Â ÃֽŠJavaScript À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÇ °¡Àå Èï¹Ì·Î¿î ±â´É Áß ÇÑ°¡Áö¸¦ »ìÆ캾´Ï´Ù. ÀÌ Àå¿¡¼´Â ÃÖ½ÅÀÇ µµ±¸µé°ú ¶óÀ̺귯¸®µéÀ» »ç¿ëÇØ °£´ÜÇÑ À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» ¸¸µé¾î º¸¸é¼ ¹ü¿ë JavaScriptÀÇ ±âº» ¿ø¸®¸¦ ¹è¿ó´Ï´Ù.
11Àå. °í±Þ ·¹½ÃÇÇ¿¡¼´Â ¹®Á¦ ÇØ°á ¹æ¹ýÀ» »ç¿ëÇÏ¿© ÀϹÝÀûÀÎ ÄÚµù°ú µðÀÚÀÎ º¹À⼺À¸·Î ¾î¶»°Ô ¹Ù·Î »ç¿ëÇÒ ¼ö ÀÖ´Â ÇØ°áÃ¥À» µµÃâÇÒ ¼ö ÀÖ´ÂÁö¸¦ º¸¿©ÁÝ´Ï´Ù.
12Àå. È®À强 ¹× ±¸Á¶Àû ÆÐÅÏ¿¡¼´Â Node.js ¾ÖÇø®ÄÉÀ̼ÇÀ» È®ÀåÇϱâ À§ÇÑ ±âº» ±â¼ú°ú ÆÐÅϵéÀ» ¼³¸íÇÕ´Ï´Ù.
13Àå. ¸Þ½Ã¡ ¹× ÅëÇÕ ÆÐÅÏÀº °¡Àå Áß¿äÇÑ ¸Þ½Ã¡ ÆÐÅÏÀ» ¼Ò°³ÇÏ¸é¼ Node.js¿Í »ýÅ°踦 »ç¿ëÇÏ¿© º¹ÀâÇÑ ºÐ»ê ½Ã½ºÅÛÀ» ±¸ÃàÇÏ°í ÅëÇÕÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁÝ´Ï´Ù.
È¿À²ÀûÀÌ°í °·ÂÇÑ Node.js ¾ÖÇø®ÄÉÀÌ¼Ç ±¸Ãà¿¡ ÇÊ¿äÇÑ µðÀÚÀÎ ÆÐÅϵéÀ» ÇÑ ±ÇÀ¸·Î Á¤¸®ÇÑ´Ù. Node.js·Î ÇÁ·Î±×·¡¹ÖÀ» Çϴµ¥ ÇÊ¿äÇÑ ±âÃÊÀûÀÎ °³³äÀ» ½ÃÀÛÀ¸·Î ½ÃÀÛÀ¸·Î À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» ¸¸µå´Âµ¥ »ç¿ëÇÒ ¼ö ÀÖ´Â µðÀÚÀÎ ÆÐÅϱîÁö, Á÷Á¢ µû¶óÇÒ ¼ö ÀÖ´Â ¿¹Á¦¿Í ¸ð¹ü »ç·ÊµéÀ» ÅëÇØ »ìÆ캻´Ù.
ÀÌ Ã¥¿¡¼´Â °ß°íÇÑ ¼¹ö»çÀÌµå ¾ÖÇø®ÄÉÀ̼ÇÀ» ¸¸µé±â À§ÇØ »ç¿ëÇÒ ¼ö ÀÖ´Â Node.js 14ÀÇ ¸ðµç ±â´ÉµéÀ» È®ÀÎÇÒ »Ó¸¸ ¾Æ´Ï¶ó, °³¹ßÀÚµéÀÌ Node.js¸¦ »ç¿ëÇÑ ÇÁ·ÎÁ§Æ®¸¦ ÁøÇàÇÒ ¶§ ¸¶ÁÖÇÒ ¼ö ÀÖ´Â ºñµ¿±â Á¦¾î³ª ¹é¿£µå¿Í ÇÁ·ÐÆ®¿£µåÀÇ Åë½Å, ºÐ»ê ½Ã½ºÅÛ ±¸Ãà °°Àº ÁÖÁ¦µéÀ» ´Ù·ç¸ç À̸¦ ÇØ°áÇÒ ¼ö ÀÖ´Â ´Ù¾çÇÑ À̷аú ÆÐÅϵéÀ» »ìÆ캻´Ù.
°¢ éÅÍ´Â µðÀÚÀÎ ÆÐÅÏÀ» ÁÖÁ¦º°·Î ³ª´©¾î »óȲ¿¡ µû¸¥ µðÀÚÀÎ ÆÐÅÏ°ú ÀÌ¿ë »ç·Ê¸¦ ¼Ò°³ÇÑ´Ù. ¶ÇÇÑ ¼³¸í¿¡¼ »ç¿ëµÇ¾ú´ø »ç·Ê¿¡ µû¶ó ½ÇÁ¦ °³¹ß ȯ°æ¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â ´Ù¾çÇÑ ¶óÀ̺귯¸®¿Í ±â¼úµéÀ» ¼Ò°³Çϸç Node.jsÀÇ ÀüüÀûÀÎ »ýÅ°è¿Í ¼Ö·ç¼Ç°ú Á¶¸íÇÑ´Ù. Node.js¸¦ Çö¾÷ ÇÁ·ÎÁ§Æ®¿¡ »ç¿ëÇÏ°í ½ÍÀº °³¹ßÀÚ³ª Node.js°¡ ÀÛµ¿ÇÏ´Â ¿ø¸®¿¡ ´ëÇØ ÀÚ¼¼ÇÏ°Ô ¾Ë°í ½Í¾ú´ø µ¶ÀÚ¶ó¸é ¿Ïº®ÇÑ Node.js ¾ÖÇø®ÄÉÀ̼ÇÀ» ¸¸µå´Âµ¥ ÇÊ¿äÇÑ ¸ðµç Áö½ÄÀ» °®Ãâ ¼ö ÀÖ°Ô µÉ °ÍÀÌ´Ù.
* ÃâÆÇ»ç ¸®ºä
ÀÌ Ã¥Àº ÀÌ¹Ì Node.js¸¦ óÀ½ Á¢ÇÑ ÈÄ ÀÌÁ¦ »ý»ê¼º, µðÀÚÀÎ Ç°Áú ¹× È®À强 Ãø¸é¿¡¼ ÃÖ´ëÇÑ È°¿ëÇÏ°íÀÚ ÇÏ´Â °³¹ßÀÚ¸¦ ´ë»óÀ¸·Î ÇÕ´Ï´Ù. ÀÌ Ã¥Àº ¸î °¡Áö ±âº» °³³äµµ ´Ù·ê °ÍÀ̱⠶§¹®¿¡, ±âº»ÀûÀÎ ¿¹Á¦¸¦ ´Ù·ç¾î º¸¾ÒÀ¸¸é¼ JavaScript ¾ð¾î¿¡ ´ëÇØ ¾î´À Á¤µµÀÇ Ä£¼÷ÇÔ¸¸ ÀÖÀ¸¸é µË´Ï´Ù. Node.jsÀÇ Áß±Þ °³¹ßÀڵ鿡°Ôµµ ÀÌ Ã¥¿¡ Á¦½ÃµÈ ±â¼úµéÀº À¯¿ëÇÒ °ÍÀÔ´Ï´Ù. ¼ÒÇÁÆ®¿þ¾î ¼³°è À̷п¡ ´ëÇÑ ¹è°æ Áö½Äµµ Á¦½ÃµÈ °³³ä Áß ÀϺθ¦ ÀÌÇØÇϴµ¥ À¯¸®ÇÕ´Ï´Ù. ÀÌ Ã¥Àº À¥ ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß, À¥¼ºñ½º, µ¥ÀÌÅͺ£À̽º ¹× µ¥ÀÌÅÍ ±¸Á¶¿¡ ´ëÇÑ ½Ç¹« Áö½ÄÀÌ ÀÖ´Ù°í °¡Á¤ÇÏ°í ÀÖ½À´Ï´Ù.
1Àå. Node.js Ç÷§ÆûÀº Ç÷§Æû ÀÚüÀÇ ÇÙ½É ÆÐÅÏÀ» º¸¿©ÁÜÀ¸·Î½á Node.js ¾ÖÇø®ÄÉÀÌ¼Ç µðÀÚÀÎ ¼¼°è¿¡ ´ëÇÑ °³¿ä ¿ªÇÒÀ» ÇÕ´Ï´Ù. Node.js »ýÅ°è¿Í ±× öÇÐÀ» ´Ù·ç°í Node.js ³»ºÎ ¹× ¸®¾×ÅÍ(reactor) ÆÐÅÏ¿¡ ´ëÇÑ ºü¸¥ ¼Ò°³¸¦ Á¦°øÇÕ´Ï´Ù.
2Àå. ¸ðµâ ½Ã½ºÅÛ¿¡¼´Â Node.js¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â ¸ðµâ ½Ã½ºÅÛÀ» »ìÆ캸°í CommonJS¿Í ECMAScript 2015ºÎÅÍ µµÀÔµÈ ÃÖ½ÅÀÇ ES ¸ðµâ °£ÀÇ Â÷ÀÌÁ¡À» °Á¶ÇÕ´Ï´Ù.
3Àå. ÄÝ¹é ¹× À̺¥Æ®¿¡¼´Â ºñµ¿±â ÄÚµù ¹× ÆÐÅÏÀ» ÇнÀÇÏ°í Äݹé°ú À̺¥Æ® À̹ÌÅÍ(°üÂûÀÚ ÆÐÅÏ)¿¡ ´ëÇØ ³íÀÇÇÏ°í ºñ±³¸¦ À§ÇÑ Ã¹ ¹ø° ´Ü°è¸¦ ¼Ò°³ÇÕ´Ï´Ù.
4Àå. ÄݹéÀ» »ç¿ëÇÑ ºñµ¿±â Á¦¾î È帧 ÆÐÅÏ¿¡¼´Â ÄݹéÀ» »ç¿ëÇÏ¿© Node.js·ÎÀÇ ºñµ¿±â Á¦¾î È帧À» È¿À²ÀûÀ¸·Î ó¸®Çϱâ À§ÇÑ ÀÏ·ÃÀÇ ÆÐÅÏ°ú ±â¼úµéÀ» ¼Ò°³ÇÕ´Ï´Ù. ÀÌ Àå¿¡¼´Â ÀÏ¹Ý JavaScript¸¦ »ç¿ëÇÏ¿© "Äݹé Áö¿Á" ¹®Á¦¸¦ ¿ÏÈÇÏ´Â ¸î °¡Áö ÀüÅëÀûÀÎ ¹æ¹ýÀ» ¼³¸íÇÕ´Ï´Ù.
5Àå. ÇÁ¶ó¹Ì½º ¹× Async/Await¸¦ »ç¿ëÇÑ ºñµ¿±â Á¦¾î È帧 ÆÐÅÏÀº ºñµ¿±â È帧 Á¦¾îÀÇ º¸´Ù Á¤±³ÇÏ°í Çö´ëÀûÀÎ ±â¼úÀ» Ž±¸ÇÏ¸é¼ ÁøÇàÇÕ´Ï´Ù.
6Àå. ½ºÆ®¸² ÄÚµùÀº Node.js¸¦ À§ÇÑ °¡Àå Áß¿äÇÑ µµ±¸ Áß ÇϳªÀÎ ½ºÆ®¸²¿¡ ´ëÇØ ÀÚ¼¼È÷ ¼³¸íÇÕ´Ï´Ù. Transform ½ºÆ®¸²À» °¡Áö°í µ¥ÀÌÅ͸¦ º¯È¯ÇÏ°í ó¸®ÇÏ´Â ¹æ¹ý°ú ´Ù¸¥ ÆÐÅϵ鿡¼ ½ºÆ®¸²µéÀ» °áÇÕÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁÝ´Ï´Ù.
7Àå. »ý¼ºÀÚ µðÀÚÀÎ ÆÐÅÏ¿¡¼´Â Node.jsÀÇ ÀüÅëÀûÀÎ µðÀÚÀÎ ÆÐÅÏÀ» Ž±¸Çϱ⠽ÃÀÛÇÕ´Ï´Ù. ÀÌ Àå¿¡¼´Â °¡Àå ³Î¸® »ç¿ëµÇ´Â »ý¼º ÆÐÅÏÀ¸·Î ÆÑÅ丮(Factory) ÆÐÅÏ, °ø°³ »ý¼ºÀÚ(Revealing Constructor), ºô´õ(Builder) ÆÐÅÏ ±×¸®°í ½Ì±ÛÅæ(Singleton) ÆÐÅÏ¿¡ ´ëÇØ »ìÆ캾´Ï´Ù.
8Àå. ±¸Á¶Àû µðÀÚÀÎ ÆÐÅÏ¿¡¼´Â Node.jsÀÇ ÀüÅëÀûÀÎ µðÀÚÀÎ ÆÐÅÏÀ» °è¼Ó Ž»öÇÏ¿© ÇÁ·Ï½Ã(Proxy), µ¥ÄÚ·¹ÀÌÆ®(Decorator) ¹× ¾î´ðÅÍ(Adapter)¿Í °°Àº ±¸Á¶Àû µðÀÚÀÎ ÆÐÅÏÀ» ´Ù·ì´Ï´Ù.
9Àå. ÇàÀ§ µðÀÚÀÎ ÆÐÅÏÀº Àü·«(Strategy), »óÅÂ(State), ÅÛÇø´(Template), ¹Ìµé¿þ¾î(Middleware), ¸í·É(Command) ±×¸®°í ¹Ýº¹ÀÚ(Iterator)¿Í °°Àº ÇàÀ§ µðÀÚÀÎ ÆÐÅÏÀ» ¼Ò°³ÇÏ°í Node.js¿¡¼ÀÇ ÀüÅëÀûÀÎ µðÀÚÀÎ ÆÐÅÏ¿¡ ´ëÇÑ ³íÀǸ¦ ¸¶¹«¸®ÇÕ´Ï´Ù.
10Àå. ¾ÖÇø®ÄÉÀÌ¼Ç¿ë ¹ü¿ë JavaScript´Â ÇÁ·ÐÆ®¿£µå¿Í ¹é¿£µå °£¿¡ Äڵ带 °øÀ¯ÇÒ ¼ö ÀÖ´Â ÃֽŠJavaScript À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÇ °¡Àå Èï¹Ì·Î¿î ±â´É Áß ÇÑ°¡Áö¸¦ »ìÆ캾´Ï´Ù. ÀÌ Àå¿¡¼´Â ÃÖ½ÅÀÇ µµ±¸µé°ú ¶óÀ̺귯¸®µéÀ» »ç¿ëÇØ °£´ÜÇÑ À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» ¸¸µé¾î º¸¸é¼ ¹ü¿ë JavaScriptÀÇ ±âº» ¿ø¸®¸¦ ¹è¿ó´Ï´Ù.
11Àå. °í±Þ ·¹½ÃÇÇ¿¡¼´Â ¹®Á¦ ÇØ°á ¹æ¹ýÀ» »ç¿ëÇÏ¿© ÀϹÝÀûÀÎ ÄÚµù°ú µðÀÚÀÎ º¹À⼺À¸·Î ¾î¶»°Ô ¹Ù·Î »ç¿ëÇÒ ¼ö ÀÖ´Â ÇØ°áÃ¥À» µµÃâÇÒ ¼ö ÀÖ´ÂÁö¸¦ º¸¿©ÁÝ´Ï´Ù.
12Àå. È®À强 ¹× ±¸Á¶Àû ÆÐÅÏ¿¡¼´Â Node.js ¾ÖÇø®ÄÉÀ̼ÇÀ» È®ÀåÇϱâ À§ÇÑ ±âº» ±â¼ú°ú ÆÐÅϵéÀ» ¼³¸íÇÕ´Ï´Ù.
13Àå. ¸Þ½Ã¡ ¹× ÅëÇÕ ÆÐÅÏÀº °¡Àå Áß¿äÇÑ ¸Þ½Ã¡ ÆÐÅÏÀ» ¼Ò°³ÇÏ¸é¼ Node.js¿Í »ýÅ°踦 »ç¿ëÇÏ¿© º¹ÀâÇÑ ºÐ»ê ½Ã½ºÅÛÀ» ±¸ÃàÇÏ°í ÅëÇÕÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁÝ´Ï´Ù.