| »óǰ ¾È³» ¹× ȯºÒ, ±³È¯, ¹è¼Û¹®ÀÇ | |
| - °¡°Ô ÀüȹøÈ£ : | 1544-1900 |
| - Àüȹ®ÀÇ ½Ã°£ : |
¿ÀÀü 9½ÃºÎÅÍ ¿ÀÈÄ 6½Ã±îÁö (¸ÅÁÖ ¿ù¿äÀÏ, È¿äÀÏ, ¼ö¿äÀÏ, ¸ñ¿äÀÏ, ±Ý¿äÀÏ, °øÈÞÀÏ Á¦¿Ü) |
| - °¡°Ô À̸ÞÀÏ : | ink@kyobobook.co.kr |
| - ÀÌ¿ë Åùèȸ»ç : | CJ´ëÇÑÅë¿î |
|
ÆÇ¸Å°¡°ÔÁ¤º¸ |
|
| - »ç¾÷ÀÚ¸í : | (ÁÖ)±³º¸¹®°í |
| - »ç¾÷ÀÚµî·Ï¹øÈ£ : | 102-81-11670 |
| - Åë½ÅÆÇ¸Å¾÷½Å°í : | 01-0653 |
|
- Çö±Ý¿µ¼öÁõ : ¹ß±Þ°¡´É |
|
|
ÀüÈÁÖ¹® ¹× °áÁ¦¹®ÀÇ |
|
| - ²ÉÇÇ´Â ¾ÆÄ§¸¶À» : | 1644-8422 |
|
°¡°Ô¿Í Á÷°Å·¡¸¦ ÇÏ½Ã¸é ²É¼ÛÀÌ Àû¸³ ¹× °¢Á¾ ÇýÅÿ¡¼ Á¦¿ÜµÇ°í, ¸¸ÀÏÀÇ ¹®Á¦°¡ ¹ß»ýÇÏ´Â °æ¿ì¿¡µµ ²É¸¶ÀÇ µµ¿òÀ» ¹ÞÀ¸½Ç ¼ö ¾ø½À´Ï´Ù. °¡°ÔÀÇ ºÎ´çÇÑ ¿ä±¸, ºÒ°øÁ¤ ÇàÀ§ µî¿¡ ´ëÇØ¼µµ ²É¸¶·Î Á÷Á¢ ÀüÈÁÖ¼¼¿ä. |
|
| »ó¼¼Á¤º¸ | ±¸¸ÅÈıâ (0) | »óǰQ&A (0) | ¹è¼Û/±³È¯/ȯºÒ ¾È³» |
Ã¥¼Ò°³ÇÑ Â÷¿ø ³ôÀº À¥ ¼³°è¸¦ À§ÇÑ Node.js µðÀÚÀÎ ÆÐÅÏ °¡À̵å
Node.js´Â JavaScript¸¦ »ç¿ëÇÏ¿© ½±°Ô È®Àå °¡´ÉÇÑ ¼¹ö Ãø ¾îÇø®ÄÉÀ̼ÇÀ» ¸¸µé ¼ö ÀÖ´Â ¸Å¿ì À¯¿ëÇÑ ¼ÒÇÁÆ®¿þ¾î Ç÷§ÆûÀ¸·Î, È¿À²ÀûÀÎ ÄÚµå ÀÛ¼ºÀ» ÅëÇØ ¼³°è ¹× ÄÚµå ºÐÇÒÀ» °¡´ÉÇÏ°Ô ÇÕ´Ï´Ù.
ÀÌ Ã¥Àº Node.jsÀÇ ºñµ¿±â ´ÜÀÏ ½º·¹µå ¾ÆÅ°ÅØÃ³¿Í ÁÖ¿ä µðÀÚÀÎ ÆÐÅÏÀ» ¼³¸íÇϰí, ºñµ¿±â½Ä Á¦¾î È帧 ÆÐÅϰú ½ºÆ®¸² ±¸¼º ¿ä¼Ò¸¦ ¸¶½ºÅÍÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁÖ¸ç, °¡Àå ÀϹÝÀûÀÎ µðÀÚÀÎ ÆÐÅÏÀÇ Node.js ±¸Çö ¸ñ·Ï°ú Node.js Àü¿ë ƯÁ¤ µðÀÚÀÎ ÆÐÅÏÀ¸·Î ¸¶¹«¸®µË´Ï´Ù. ¶ÇÇÑ ¹ü¿ë JavaScript, È®À强°ú °°Àº º¸´Ù Áøº¸µÈ °³³äµéÀ» ÅëÇØ Node.js¸¦ »ç¿ëÇÏ¿© ¿£ÅÍÇÁ¶óÀÌÁî±Þ ¾îÇø®ÄÉÀ̼ÇÀ» ±¸ÃàÇϱâ À§ÇÑ ¸ðµç ÇÊ¿äÇÑ °³³äµéÀ» Á¦°øÇϰí ÀÖ½À´Ï´Ù. ÀÌ Ã¥ Àü¹Ý¿¡ °ÉÃÄ LevelDb, Redis, RabbitMQ, ZMQ, Express¿Í °°Àº ½ÇÁ¦ ¶óÀ̺귯¸®µé°ú ±â¼úµéÀ» ÅëÇØ ´Ù¾çÇÑ ÆÐÅϰú ±â¹ýÀ» º¸¿©ÁÖ¸ç, À̸¦ ÅëÇØ Node.js »ýŰè¿Í ±× ¼Ö·ç¼Çµé¿¡ ´ëÇÑ ÈǸ¢ÇÑ ¿¹½Ã¸¦ Á¦°øÇÒ °ÍÀÔ´Ï´Ù.
»ó¼¼À̹ÌÁö![]() ÀúÀÚ¼Ò°³ÀúÀÚ : Mario Casciaro
Mario Casciaro
Mario Casciaro´Â ±â¼ú, °úÇÐ ±×¸®°í ¿ÀǼҽº¿¡ Á¤ÅëÇÑ ¼ÒÇÁÆ®¿þ¾î ¿£Áö´Ï¾îÀÌÀÚ ±â¾÷°¡ÀÔ´Ï´Ù. Mario´Â ¼ÒÇÁÆ®¿þ¾î ¿£Áö´Ï¾î¸µ ¼®»ç ÇÐÀ§¸¦ ¹Þ°í IBM¿¡¼ Àü¹® °æ·ÂÀ» ½×±â ½ÃÀÛÇÏ¿© Tivoli Endpoint Manager, Cognos Insight ¹× SalesConnect¿Í °°Àº ´Ù¾çÇÑ ±â¾÷¿ë Á¦Ç°¿¡ °ü·ÃÇÏ¿© ¼ö³â°£ ±Ù¹«Çß½À´Ï´Ù. ±×¸®°í ¼ºÀåÁßÀÎ SaaS ȸ»çÀÎ D4H Technologies·Î À̵¿ÇÏ¿© ºñ»ó ¿î¿µÀ» ½Ç½Ã°£À¸·Î °ü¸®Çϱâ À§ÇÑ »õ·Î¿î ÃÖ÷´Ü Á¦Ç° °³¹ßÀ» À̲ø¾ú½À´Ï´Ù. ÇöÀç´Â ±â¾÷ÀÇ ÈÄ¿øÀ» ÅëÇØ ¿Â¶óÀÎ ÇÁ·ÎÁ§Æ®°¡ ÀÚ±ÝÀ» Á¶´ÞÇÒ ¼ö ÀÖµµ·Ï µ½´Â Ç÷§ÆûÀÎ Sponsorama.comÀÇ °øµ¿ ⸳ÀÚÀÌÀÚ CEOÀÔ´Ï´Ù.
ÀúÀÚ : Luciano Mammino
Luciano Mammino
Luciano Mammino´Â 1987³â¿¡ ÅÂ¾î³ ¼ÒÇÁÆ®¿þ¾î ¿£Áö´Ï¾î·Î, 12¼¼ ¶§ ¾Æ¹öÁöÀÇ ±¸Çü ÀÎÅÚ386À» »ç¿ëÇÏ¿© ÄÚµù ÀÛ¾÷À» ½ÃÀÛÇß½À´Ï´Ù. ÄÄÇ»ÅÍ °øÇÐ ¼®»ç ÇÐÀ§¸¦ ¹ÞÀº ÈÄ ±×´Â À¥ °³¹ßÀÚ·Î ÁÖ·Î ÀÌÅ»¸®¾Æ Àü¿ªÀÇ ±â¾÷ ¹× ½Å»ý ±â¾÷ÀÇ ÇÁ¸®·£¼·Î ÀÏÇß½À´Ï´Ù. ÀÌÅ»¸®¾Æ¿Í ¾ÆÀÏ·£µå Sbaam.comÀÇ °øµ¿ ¼³¸³ÀÚÀÌÀÚ CTO·Î 3³â°£ Ȱµ¿ÇÑ µÚ, Smartbox¿¡¼ ¼±ÀÓ PHP ¿£Áö´Ï¾î·Î Ȱµ¿Çϱâ À§ÇØ ´õºí¸°À¸·Î ÀÌÀüÇß½À´Ï´Ù. ±×´Â ¿ÀǼҽº ¶óÀ̺귯¸®¸¦ °³¹ßÇϰí Symfony ¹× Express¿Í °°Àº ÇÁ·¹ÀÓ¿öÅ©¸¦ »ç¿ëÇÏ´Â °ÍÀ» ÁÁ¾ÆÇÕ´Ï´Ù. JavaScript ¸í¼ºÀÌ ¾ÆÁ÷ °ÉÀ½¸¶ ´Ü°è¿¡ ÀÖÀ¸¸ç ÀÌ ±â¼úÀÌ ´ëºÎºÐÀÇ À¥°ú ¸ð¹ÙÀÏ °ü·Ã ±â¼úÀÇ ¹Ì·¡¿¡ Å« ¿µÇâÀ» ¹ÌÄ¥ °ÍÀ̶ó°í È®½ÅÇϰí, ´ëºÎºÐÀÇ ½Ã°£À» JavaScript¿Í Node.js¿¡ ´ëÇÑ Áö½ÄÀ» Çâ»ó½Ã۴µ¥ ÇÒ¾ÖÇϰí ÀÖ½À´Ï´Ù.
¿ªÀÚ : ±è¼º¿ø
±è¼º¿ø
1998³âºÎÅÍ °³¹ßÀÚ·Î ½ÃÀÛÇÏ¿©, ¾Èö¼ö¿¬±¸¼Ò µîÀ» °Åó ÇöÀç ·çŰ½º¿¡¼ ±Ù¹«Çϰí ÀÖÀ¸¸ç, ´Ù¾çÇÑ Ç÷§Æû¿¡¼ ±â¾÷¿ë À¥, Ŭ¶óÀ̾ðÆ®, ¼¹ö ¾îÇø®ÄÉÀ̼ÇÀÇ ¼³°èÀÚ ¹× °³¹ßÀÚ·Î ÀÏÇØ ¿Ô½À´Ï´Ù. ÃÖ±Ù ÀÚ¿¬¾î ó¸® µî¿¡ °ü½ÉÀ» °¡Áö°í À̸¦ À§ÇÑ ¾Ë°í¸®Áò, µ¥ÀÌÅÍ ¼öÁý, ó¸® ºÐ¾ß¸¦ ޱ¸Çϰí ÀÖ½À´Ï´Ù. ¿ª¼·Î´Â [ÄÚµù ÀÎÅͺä Äù½ºÃµ], [¾ÆÀÌÆù °ÔÀÓ °³¹ßÀÚ ·¹ÆÛ·±½º] µîÀÌ ÀÖ½À´Ï´Ù.
¸ñÂ÷1Àå. Node.js Ç÷§Æû¿¡ ¿À½Å °ÍÀ» ȯ¿µÇÕ´Ï´Ù
1.1 Node.js öÇÐ
°æ·® ÄÚ¾î
°æ·® ¸ðµâ
ÀÛÀº ¿ÜºÎ ÀÎÅÍÆäÀ̽º
°£°áÇÔ°ú ½Ç¿ëÁÖÀÇ
1.2 Node.js 6¿Í ES2015¿¡ ´ëÇÑ ¼Ò°³
let°ú const Ű¿öµå
È»ìÇ¥ ÇÔ¼ö
Ŭ·¡½º ±¸¹®
Çâ»óµÈ °´Ã¼ ¸®ÅÍ·²
Map°ú Set Collection
WeakMap ¹× WeakSet Collection
Template Ç¥±â¹ý
ES2015ÀÇ ±âŸ ±â´Éµé
1.3 Reactor ÆÐÅÏ
I/O´Â ¼Óµµ°¡ ´À¸®´Ù.
ºí·ÎÅ· I/O
³í ºí·ÎÅ· I/O
À̺¥Æ® µð¸ÖƼÇ÷º½Ì
Reactor ÆÐÅÏ ¼Ò°³
Node.jsÀÇ ³í ºí·ÎÅ· ¿£Áø libuv
Node.js¸¦ À§ÇÑ ±¸Á¶
2Àå. Node.js Çʼö ÆÐÅÏ
2.1 ÄÝ¹é ÆÐÅÏ
¿¬¼Ó Àü´Þ ¹æ½Ä
µ¿±â³Ä? ºñµ¿±â³Ä?
Node.js ÄÝ¹é ±ÔÄ¢
2.2 ¸ðµâ ½Ã½ºÅÛ°ú ±× ÆÐÅÏ
³ëÃâ½Ä ¸ðµâ ÆÐÅÏ
Node.js ¸ðµâ ¼³¸í
¸ðµâ Á¤ÀÇ ÆÐÅÏ
2.3 °üÂûÀÚ ÆÐÅÏ
EventEmitter Ŭ·¡½º
EventEmitter »ý¼º ¹× »ç¿ë
¿À·ù ÀüÆÄ
°üÂû °¡´ÉÇÑ °´Ã¼ ¸¸µé±â
µ¿±â ¹× ºñµ¿±â À̺¥Æ®
EventEmitter vs Äݹé
Äݹé°ú EventEmitterÀÇ °áÇÕ
3Àå. ÄݹéÀ» »ç¿ëÇÑ ºñµ¿±â Á¦¾î È帧 ÆÐÅÏ
3.1 ºñµ¿±â ÇÁ·Î±×·¡¹ÖÀÇ ¾î·Á¿ò
°£´ÜÇÑ À¥ ½ºÆÄÀÌ´õ ¸¸µé±â
Äݹé Çï
3.2 ÀÏ¹Ý JavaScriptÀÇ »ç¿ë
ÄÝ¹é ±ÔÄ¢
ÄÝ¹é ±ÔÄ¢ Àû¿ë
¼øÂ÷ ½ÇÇà
º´·Ä ½ÇÇà
Á¦ÇÑµÈ º´·Ä ½ÇÇà
3.3 ºñµ¿±â ¶óÀ̺귯¸®
¼øÂ÷ ½ÇÇà
º´·Ä ½ÇÇà
Á¦ÇÑµÈ º´·Ä ½ÇÇà
4Àå. ES2015 ÀÌÈÄ ºñµ¿±â½Ä ÇÁ·Î±×·¥ÀÇ Á¦¾î È帧 ÆÐÅÏ
4.1 ÇÁ¶ó¹Ì½º(Promise)
ÇÁ¶ó¹Ì½º¶õ ¹«¾ùÀΰ¡?
Promises/A+ ±¸Çö
Node.js ½ºÅ¸ÀÏ ÇÔ¼ö ÇÁ¶ó¹Ì½ºÈÇϱâ
¼øÂ÷ ½ÇÇà
º´·Ä ½ÇÇà
Á¦ÇÑµÈ º´·Ä ½ÇÇà
°ø°³ API·Î Äݹé°ú ÇÁ¶ó¹Ì½º ³ëÃâÇϱâ
4.2 Á¦³Ê·¹ÀÌÅÍ(Generator)
Á¦³Ê·¹ÀÌÅÍÀÇ ±âº»
Á¦³Ê·¹ÀÌÅ͸¦ »ç¿ëÇÑ ºñµ¿±â Á¦¾î È帧
¼øÂ÷ ½ÇÇà
º´·Ä ½ÇÇà
Á¦ÇÑµÈ º´·Ä ½ÇÇà
4.3 BabelÀ» »ç¿ëÇÑ ºñµ¿±â await
BabelÀÇ ¼³Ä¡ ¹× ½ÇÇà
4.4 ºñ±³
5Àå. ½ºÆ®¸² ÄÚµù
5.1 ½ºÆ®¸²ÀÇ Á߿伺
¹öÆÛ¸µ ´ë ½ºÆ®¸®¹Ö
°ø°£ È¿À²¼º
½Ã°£ È¿À²¼º
°áÇÕ¼º
5.2 ½ºÆ®¸² ½ÃÀÛÇϱâ
½ºÆ®¸²ÀÇ ±¸Á¶
Readable ½ºÆ®¸²
Writable ½ºÆ®¸²
¾ç¹æÇâ(Duplex) ½ºÆ®¸²
Transform ½ºÆ®¸²
Transform ½ºÆ®¸² ±¸Çö
5.3 ½ºÆ®¸²À» »ç¿ëÇÑ ºñµ¿±â Á¦¾î È帧
¼øÂ÷ ½ÇÇà
ºñ¼øÂ÷ º´·Ä ½ÇÇà
Á¦ÇÑµÈ ºñ¼øÂ÷ º´·Ä ½ÇÇà
5.4 ÆÄÀÌÇÁ ÆÐÅÏ
½ºÆ®¸² °áÇÕÇϱâ
½ºÆ®¸² Æ÷Å©(Fork)Çϱâ
½ºÆ®¸² º´ÇÕ(merge)Çϱâ
¸ÖƼÇ÷º½Ì°ú µð¸ÖƼÇ÷º½Ì
6Àå. µðÀÚÀÎ ÆÐÅÏ
6.1 ÆÑÅ丮(Factory)
°´Ã¼¸¦ »ý¼ºÇϱâ À§ÇÑ Á¦³Ê¸¯ ÀÎÅÍÆäÀ̽º
ĸ½¶È¸¦ °Á¦Çϱâ À§ÇÑ ¸ÞÄ¿´ÏÁò
°£´ÜÇÑ ÄÚµå ÇÁ·ÎÆÄÀÏ·¯ ÀÛ¼ºÇϱâ
ÇÕ¼º °¡´ÉÇÑ ÆÑÅ丮 ÇÔ¼ö
½ÇÀü¿¡¼´Â ¾î¶»°Ô »ç¿ëµÇ´Â°¡
6.2 °ø°³ »ý¼ºÀÚ(Revealing constructor)
Àбâ Àü¿ë À̺¥Æ® À̹ÌÅÍ
½ÇÀü¿¡¼´Â ¾î¶»°Ô »ç¿ëµÇ´Â°¡
6.3 ÇÁ·Ï½Ã(Proxy)
ÇÁ·Ï½Ã ±¸Çö ±â¼ú
´Ù¸¥ ±â¼úÀÇ ºñ±³
Writable ½ºÆ®¸² ·Î±× ÀÛ¼º
»ýŰ迡¼ÀÇ ÇÁ·Ï½Ã - ÇÔ¼ö ÈÄÅ© ¹× AOP
ES2015 Proxy
½ÇÀü¿¡¼´Â ¾î¶»°Ô »ç¿ëµÇ´Â°¡
6.4 µ¥ÄÚ·¹ÀÌÅÍ(Decorator)
µ¥ÄÚ·¹ÀÌÅÍ ±¸Çö ±â¹ý
LevelUP µ¥ÀÌÅͺ£À̽º Àå½ÄÇϱâ
6.5 ¾î´ðÅÍ(Adapter)
ÆÄÀÏ ½Ã½ºÅÛ API¸¦ ÅëÇÑ LevelUP »ç¿ë
½ÇÀü¿¡¼´Â ¾î¶»°Ô »ç¿ëµÇ´Â°¡
6.6 Àü·«(Strategy)
´ÙÁß Çü½ÄÀÇ È¯°æ¼³Á¤ °´Ã¼
½ÇÀü¿¡¼´Â ¾î¶»°Ô »ç¿ëµÇ´Â°¡
6.7 »óÅÂ(State)
±âº»ÀûÀÎ fail-safe-socket ±¸ÇöÇϱâ
6.8 ÅÛÇø´(Template)
ȯ°æ¼³Á¤ °ü¸®ÀÚ ÅÛÇø´
½ÇÀü¿¡¼´Â ¾î¶»°Ô »ç¿ëµÇ´Â°¡
6.9 ¹Ìµé¿þ¾î(Middleware)
¹Ìµé¿þ¾î·Î¼ÀÇ Express
ÆÐÅÏÀ¸·Î¼ÀÇ ¹Ìµé¿þ¾î
¨ªMQ¿ë ¹Ìµé¿þ¾î ÇÁ·¹ÀÓ¿öÅ© ¸¸µé±â
Koa¿¡¼ Á¦³Ê·¹ÀÌÅ͸¦ »ç¿ëÇÑ ¹Ìµé¿þ¾î
6.10 Ä¿¸Çµå(Command)
À¯¿¬ÇÑ ÆÐÅÏ
º¸´Ù º¹ÀâÇÑ ¸í·É
7Àå. ¸ðµâ ¿¬°á
7.1 ¸ðµâ°ú ÀÇÁ¸¼º
Node.jsÀÇ °¡Àå ÀϹÝÀûÀÎ Á¾¼Ó¼º
ÀÀÁý·Â°ú °áÇÕ·Â
»óÅ ÀúÀå ¸ðµâ
7.2 ¸ðµâ ¿¬°á ÆÐÅÏ
ÇϵåÄÚµåµÈ Á¾¼Ó¼º
ÀÇÁ¸¼º ÁÖÀÔ
¼ºñ½º ·ÎÄÉÀÌÅÍ
ÀÇÁ¸¼º ÁÖÀÔ ÄÁÅ×À̳Ê
7.3 ¿¬°á(Wiring)À» À§ÇÑ Ç÷¯±×ÀÎ
ÆÐŰÁö·Î¼ÀÇ Ç÷¯±×ÀÎ
È®Àå Æ÷ÀÎÆ®
Ç÷¯±×ÀÎ Á¦¾î¿Í ¾îÇø®ÄÉÀÌ¼Ç Á¦¾î È®Àå
·Î±×¾Æ¿ô Ç÷¯±×ÀÎ ±¸ÇöÇϱâ
8Àå. À¥ ¾îÇø®ÄÉÀ̼ÇÀ» À§ÇÑ ¹ü¿ë JavaScript
8.1 ºê¶ó¿ìÀú¿Í ÄÚµå °øÀ¯Çϱâ
¸ðµâ °øÀ¯
ES2015 ¸ðµâ
8.2 Webpack ¼Ò°³
WebpackÀÇ ¸¶·Â ޱ¸
Webpack »ç¿ëÀÇ ÀÌÁ¡
Webpack°ú ÇÔ²² ES2015 »ç¿ëÇϱâ
8.3 Å©·Î½º Ç÷§Æû °³¹ßÀÇ ±âº»
·±Å¸ÀÓ ÄÚµå ºÐ±â
ºôµå ŸÀÓ ÄÚµå ºÐ±â
¸ðµâ ±³È¯
Å©·Î½º Ç÷§Æû °³¹ßÀ» À§ÇÑ µðÀÚÀÎ ÆÐÅÏ
8.4 ¸®¾×Æ®(React) ¼Ò°³
ù ¹øÂ° React ÄÄÆ÷³ÍÆ®
JSX°¡ ¹¹Áö?!
JSX º¯È¯À» À§ÇÑ Webpack ¼³Á¤
ºê¶ó¿ìÀú¿¡¼ ·»´õ¸µÇϱâ
React Router ¶óÀ̺귯¸®
8.5 ¹ü¿ë JavaScript ¾Û ¸¸µé±â
Àç»ç¿ë °¡´ÉÇÑ ÄÄÆ÷³ÍÆ® ¸¸µé±â
¼¹ö Ãø ·»´õ¸µ
¹ü¿ë ·»´õ¸µ ¹× ¶ó¿ìÆÃ
¹ü¿ë µ¥ÀÌÅÍ Á¶È¸
9Àå. °í±Þ ºñµ¿±â ·¹½ÃÇÇ
9.1 ºñµ¿±âÀûÀ¸·Î ÃʱâȵǴ require ¼öÇà ¸ðµâ
ÀüÅëÀûÀÎ ¼Ö·ç¼Ç
¹Ì¸® ÃʱâÈµÈ Å¥
½ÇÀü¿¡¼´Â ¾î¶»°Ô »ç¿ëµÇ´Â°¡
9.2 ºñµ¿±â ¹èÄ¡(Àϰý ó¸®) ¹× ij½Ì
ij½Ì ¶Ç´Â Àϰý 󸮰¡ ¾ø´Â ¼¹ö ±¸Çö
ºñµ¿±â ¿äû Àϰý ó¸®
ºñµ¿±â ¿äû ij½Ì
ÇÁ¶ó¹Ì½º¸¦ »ç¿ëÇÑ Àϰýó¸®¿Í ij½Ì
9.3 CPU ¹Ù¿îµù ÀÛ¾÷ ½ÇÇà
ºÎºÐ ÁýÇÕÀÇ ÇÕ ¹®Á¦ ÇØ°á
setImmediate¸¦ »ç¿ëÇÑ ÀÎÅ͸®ºù
¸ÖƼ ÇÁ·Î¼¼½º »ç¿ë
10Àå. È®À强°ú ±¸Á¶Àû ÆÐÅÏ
10.1 ¾îÇø®ÄÉÀÌ¼Ç È®Àå¿¡ ´ëÇÑ ¼Ò°³
Node.js ÀÀ¿ë ÇÁ·Î±×·¥ È®Àå
È®À强ÀÇ ¼¼ °¡Áö Â÷¿ø
10.2 º¹Á¦ ¹× ·Îµå ¹ë·±½Ì
Ŭ·¯½ºÅÍ ¸ðµâ
»óÅ ÀúÀå Åë½Å ´Ù·ç±â
¿ª¹æÇâ ÇÁ·Ï½Ã¸¦ »ç¿ëÇÏ¿© È®Àå
¼ºñ½º ·¹Áö½ºÆ®¸® »ç¿ë
ÇǾî-Åõ-ÇÇ¾î ·Îµå ¹ë·±½Ì
10.3 º¹ÀâÇÑ ¾îÇø®ÄÉÀÌ¼Ç ºÐÇØ
´ÜÀÏ(Monolitic) ¾ÆÅ°ÅØÃ³
¸¶ÀÌÅ©·Î ¼ºñ½º ¾ÆÅ°ÅØÃ³
¸¶ÀÌÅ©·Î ¼ºñ½º ¾ÆÅ°ÅØÃ³ÀÇ ÅëÇÕ ÆÐÅÏ
11Àå. ¸Þ½Ã¡°ú ÅëÇÕ ÆÐÅÏ
11.1 ¸Þ½Ã¡ ½Ã½ºÅÛÀÇ ±âº» »çÇ×
´Ü¹æÇâ ¹× ¿äû/ÀÀ´ä ÅÏ
¸Þ½ÃÁö À¯Çü
ºñµ¿±â ¸Þ½Ã¡ ¹× Å¥
ÇǾî Åõ ÇÇ¾î ¶Ç´Â ºê·ÎÄ¿ ±â¹Ý ¸Þ½Ã¡
11.2 °Ô½Ã/±¸µ¶ ÆÐÅÏ
°£´ÜÇÑ ½Ç½Ã°£ äÆÃ ¾îÇø®ÄÉÀÌ¼Ç ¸¸µé±â
¸Þ½ÃÁö ºê·ÎÄ¿·Î Redis »ç¿ëÇϱâ
¨ªMQ¸¦ »ç¿ëÇÑ ÇǾî Åõ ÇÇ¾î °Ô½Ã/±¸µ¶
¿µ±¸ ±¸µ¶ÀÚ
11.3 ÆÄÀÌÇÁ ¶óÀÎ ¹× ÀÛ¾÷ ¹èÆ÷ ÆÐÅÏ
¨ªMQ ÆÒ¾Æ¿ô/ÆÒÀÎ ÆÐÅÏ
AMQPÀÇ ÆÄÀÌÇÁ¶óÀΰú °æÀï ¼ÒºñÀÚ
11.4 ¿äû(request)/ÀÀ´ä(reply) ÆÐÅÏ
»ó°ü °ü°è ½Äº°ÀÚ
¹Ý¼Û ÁÖ¼Ò
Ã¥¼ÓÀ¸·Î1Àå. Node.js Ç÷§Æû¿¡ ¿À½Å °ÍÀ» ȯ¿µÇÕ´Ï´Ù. Node.js Ç÷§ÆûÀÇ ÇÙ½É ÆÐÅÏÀ» º¸¿©ÁÜÀ¸·Î½á Node.js ¾îÇø®ÄÉÀÌ¼Ç µðÀÚÀÎÀÇ ¼¼»óÀ¸·Î ¾È³»ÇÕ´Ï´Ù. Node.js »ýŰè¿Í öÇÐ, »õ·Î¿î ±â´É°ú ¸®¾×ÅÍ ÆÐÅÏ¿¡ ´ëÇÑ °£´ÜÇÑ ¼Ò°³¸¦ ´Ù·ç°í ÀÖ½À´Ï´Ù. 2Àå. Node.jsÀÇ Çʼö ÆÐÅÏ Node.js¸¦ »ç¿ëÇÑ ºñµ¿±â ÄÚµù°ú ¼³°è ÆÐÅÏÀÇ Ã¹ ´Ü°è·Î Äݹé°ú À̺¥Æ® À̹ÌÅÍ(¿ÉÀú¹ö ÆÐÅÏ)¿¡ ´ëÇØ ³íÀÇÇÏ°í ºñ±³ÇÕ´Ï´Ù. ¶ÇÇÑ Node.js ¸ðµâ ½Ã½ºÅÛ°ú °ü·Ã ÆÐÅϵéÀ» ¼Ò°³ÇÕ´Ï´Ù. 3Àå. ÄݹéÀ» »ç¿ëÇÑ ºñµ¿±â Á¦¾î È帧 ÆÐÅÏ Node.js¿¡¼ È¿°úÀûÀÎ ºñµ¿±â Á¦¾î È帧 󸮸¦ À§ÇÑ ÀÏ·ÃÀÇ ÆÐÅϰú ±â¼úÀ» ¼Ò°³ÇÕ´Ï´Ù. Æò¹üÇÑ JavaScript¿Í Async ¶óÀ̺귯¸®¸¦ »ç¿ëÇÏ¿© ¡°Äݹé Áö¿Á¡± ¹®Á¦¸¦ ÇØ°áÇÏ´Â ¹æ¹ýÀ» ¹è¿ï ¼ö ÀÖ½À´Ï´Ù. 4Àå. ES2015 ÀÌÈÄ ºñµ¿±â½Ä ÇÁ·Î±×·¥ÀÇ Á¦¾î È帧 ÆÐÅÏ ES2015¿Í Promises, Generators ¹× Async-Await¸¦ ¼Ò°³ÇÏ¸é¼ ºñµ¿±â Á¦¾î È帧¿¡ ´ëÇØ ¾Ë¾Æº¾´Ï´Ù. 5Àå. ½ºÆ®¸² ÄÚµù Node.jsÀÇ °¡Àå Áß¿äÇÑ ÆÐÅÏ Áß ÇϳªÀÎ ½ºÆ®¸²(Stream)¿¡ ´ëÇØ ÀÚ¼¼È÷ »ìÆìº¾´Ï´Ù. ½ºÆ®¸² º¯È¯À» ÅëÇÑ µ¥ÀÌÅÍ Ã³¸®¿Í À̵éÀ» ´Ù¸¥ ÇüÅ·ΠÁ¶ÇÕÇÏ´Â ¹æ¹ýÀ» ¼Ò°³ÇÕ´Ï´Ù. 6Àå. µðÀÚÀÎ ÆÐÅÏ Node.js¿¡¼ ÀüÅëÀûÀÎ µðÀÚÀÎ ÆÐÅÏÀ̶ó´Â ³í¶õÀÇ ÁÖÁ¦¸¦ ´Ù·ç°Ô µË´Ï´Ù. °¡Àå ¸¹ÀÌ ¾²´Â ±âÁ¸ÀÇ µðÀÚÀÎ ÆÐÅÏÀ» ¼³¸íÇϰí Node.js¿¡¼ º¼ ¼ö ÀÖ´Â ºñÀüÇüÀûÀÎ ¹æ½ÄÀ» ¼Ò°³ÇÕ´Ï´Ù. ¶ÇÇÑ JavaScript°ú Node.js¿¡¸¸ ÇØ´çÇÏ´Â »õ·Î¿î µðÀÚÀÎ ÆÐÅÏÀ» ¼Ò°³ÇÕ´Ï´Ù. 7Àå. ¸ðµâ ¿¬°á ¾îÇø®ÄÉÀÌ¼Ç ¸ðµâµéÀ» ¿¬°áÇÏ´Â ´Ù¾çÇÑ ¼Ö·ç¼ÇÀ» ºÐ¼®ÇÕ´Ï´Ù. Á¾¼Ó¼º »ðÀÔ(Dependency Injection) ¹× ¼ºñ½º ·ÎÄÉÀÌÅÍ(Service locator) °°Àº µðÀÚÀÎ ÆÐÅÏ¿¡ ´ëÇØ ¹è¿ó´Ï´Ù. 8Àå. À¥ ¾îÇø®ÄÉÀ̼ÇÀ» À§ÇÑ ¹ü¿ë JavaScript ÃֽŠJavaScript À¥ ¾îÇø®ÄÉÀ̼ÇÀÇ °¡Àå Èï¹Ì·Î¿î ±â´É Áß ÇϳªÀÎ ÇÁ·ÐÆ®¿£µå¿Í ¹é¿£µå °£ ¾îÇø®ÄÉÀÌ¼Ç Äڵ带 °øÀ¯ÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» »ìÆìº¾´Ï´Ù. React, Webpack ¹× BabelÀ» »ç¿ëÇÑ °£´ÜÇÑ À¥ ¾îÇø®ÄÉÀÌ¼Ç Á¦ÀÛÀ» ÅëÇØ ¹ü¿ë JavaScriptÀÇ ±âº» ¿øÄ¢À» ¹è¿ó´Ï´Ù. 9Àå. °í±Þ ºñµ¿±â ·¹½ÃÇÇ Áï½Ã »ç¿ë °¡´ÉÇÑ ¼Ö·ç¼ÇÀ¸·Î ÀϹÝÀûÀÎ ÄÚµù ¹× µðÀÚÀÎ ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» º¸¿©ÁÝ´Ï´Ù. 10Àå. È®À强°ú ±¸Á¶Àû ÆÐÅÏ Node.js ¾îÇø®ÄÉÀ̼ÇÀ» È®ÀåÇϱâ À§ÇÑ ±âº» ±â¼ú°ú ÆÐÅÏ¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù. 11Àå. ¸Þ½Ã¡°ú ÅëÇÕ ÆÐÅÏ ¨ªMQ¿Í AMQP¸¦ »ç¿ëÇÏ¿© ¾î¶»°Ô º¹ÀâÇÑ ºÐ»ê½Ã½ºÅÛÀ» ¸¸µé°í ÅëÇÕÇϴ°¡¸¦ ¼³¸íÇÔÀ¸·Î½á Áß¿äÇÑ ¸Þ½ÃÁö ÆÐÅÏÀ» º¸¿©ÁÝ´Ï´Ù. |
| ±³È¯ ¹× ȯºÒ °¡´É |
»óǰ¿¡ ¹®Á¦°¡ ÀÖÀ» °æ¿ì |
1) »óǰÀÌ Ç¥½Ã/±¤°íµÈ ³»¿ë°ú ´Ù¸£°Å³ª ºÒ·®(ºÎÆÐ, º¯Áú, ÆÄ¼Õ, Ç¥±â¿À·ù, À̹°È¥ÀÔ, Áß·®¹Ì´Þ)ÀÌ ¹ß»ýÇÑ °æ¿ì - ½Å¼±½Äǰ, ³ÃÀå½Äǰ, ³Ãµ¿½Äǰ : ¼ö·ÉÀÏ ´ÙÀ½³¯±îÁö ½Åû - ±âŸ »óǰ : ¼ö·ÉÀϷκÎÅÍ 30ÀÏ À̳», ±× »ç½ÇÀ» ¾È ³¯ ¶Ç´Â ¾Ë ¼ö ÀÖ¾ú´ø ³¯·ÎºÎÅÍ 30ÀÏ À̳» ½Åû 2) ±³È¯ ¹× ȯºÒ½Åû ½Ã ÆÇ¸ÅÀÚ´Â »óǰÀÇ »óŸ¦ È®ÀÎÇÒ ¼ö ÀÖ´Â »çÁøÀ» ¿äûÇÒ ¼ö ÀÖÀ¸¸ç »óǰÀÇ ¹®Á¦ Á¤µµ¿¡ µû¶ó Àç¹è¼Û, ÀϺÎȯºÒ, ÀüüȯºÒÀÌ ÁøÇàµË´Ï´Ù. ¹Ýǰ¿¡ µû¸¥ ºñ¿ëÀº ÆÇ¸ÅÀÚ ºÎ´ãÀ̸ç ȯºÒÀº ¹ÝǰµµÂøÀϷκÎÅÍ ¿µ¾÷ÀÏ ±âÁØ 3ÀÏ À̳»¿¡ ¿Ï·áµË´Ï´Ù. |
|
´Ü¼øº¯½É ¹× ÁÖ¹®Âø¿ÀÀÇ °æ¿ì |
1) ½Å¼±½Äǰ, ³ÃÀå½Äǰ, ³Ãµ¿½Äǰ ÀçÆÇ¸Å°¡ ¾î·Á¿î »óǰÀÇ Æ¯¼º»ó, ±³È¯ ¹× ȯºÒÀÌ ¾î·Æ½À´Ï´Ù. 2) ÈÀåǰ ÇǺΠƮ·¯ºí ¹ß»ý ½Ã Àü¹®ÀÇ Áø´Ü¼ ¹× ¼Ò°ß¼¸¦ Á¦ÃâÇϽøé ȯºÒ °¡´ÉÇÕ´Ï´Ù. ÀÌ °æ¿ì Á¦¹Ýºñ¿ëÀº ¼ÒºñÀÚ ºÎ´ãÀ̸ç, ¹è¼Ûºñ´Â ÆÇ¸ÅÀÚ°¡ ºÎ´ãÇÕ´Ï´Ù. ÇØ´ç ÈÀåǰ°ú ÇǺΠƮ·¯ºí°úÀÇ »ó´çÇÑ Àΰú°ü°è°¡ ÀÎÁ¤µÇ´Â °æ¿ì ¶Ç´Â Áúȯġ·á ¸ñÀûÀÇ °æ¿ì¿¡´Â Áø´Ü¼ ¹ß±Þºñ¿ëÀ» ÆÇ¸ÅÀÚ°¡ ºÎ´ãÇÕ´Ï´Ù. 3) ±âŸ »óǰ ¼ö·ÉÀϷκÎÅÍ 7ÀÏ À̳» ½Åû, ¿Õº¹¹è¼Ûºñ´Â ¼ÒºñÀÚ ºÎ´ã 4) ¸ð´ÏÅÍ ÇØ»óµµÀÇ Â÷ÀÌ·Î »ö»óÀ̳ª À̹ÌÁö°¡ ´Ù¸¥ °æ¿ì ´Ü¼øº¯½É¿¡ ÀÇÇÑ ±³È¯ ¹× ȯºÒÀÌ Á¦ÇÑµÉ ¼ö ÀÖ½À´Ï´Ù. |
|
| ±³È¯ ¹× ȯºÒ ºÒ°¡ |
1) ½Åû±âÇÑÀÌ Áö³ °æ¿ì 2) ¼ÒºñÀÚÀÇ °ú½Ç·Î ÀÎÇØ »óǰ ¹× ±¸¼ºÇ°ÀÇ Àüü ¶Ç´Â ÀϺΰ¡ ¾ø¾îÁö°Å³ª ÈѼÕ, ¿À¿°µÇ¾úÀ» °æ¿ì 3) °³ºÀÇÏ¿© ÀÌ¹Ì ¼·ÃëÇÏ¿´°Å³ª »ç¿ë(Âø¿ë ¹× ¼³Ä¡ Æ÷ÇÔ)ÇØ »óǰ ¹× ±¸¼ºÇ°ÀÇ °¡Ä¡°¡ ¼Õ»óµÈ °æ¿ì 4) ½Ã°£ÀÌ °æ°úÇÏ¿© »óǰÀÇ °¡Ä¡°¡ ÇöÀúÈ÷ °¨¼ÒÇÑ °æ¿ì 5) »ó¼¼Á¤º¸ ¶Ç´Â »ç¿ë¼³¸í¼¿¡ ¾È³»µÈ ÁÖÀÇ»çÇ× ¹× º¸°ü¹æ¹ýÀ» ÁöŰÁö ¾ÊÀº °æ¿ì 6) »çÀü¿¹¾à ¶Ç´Â ÁÖ¹®Á¦ÀÛÀ¸·Î ÅëÇØ ¼ÒºñÀÚÀÇ ÁÖ¹®¿¡ µû¶ó °³º°ÀûÀ¸·Î »ý»êµÇ´Â »óǰÀÌ ÀÌ¹Ì Á¦ÀÛÁøÇàµÈ °æ¿ì 7) º¹Á¦°¡ °¡´ÉÇÑ »óǰ µîÀÇ Æ÷ÀåÀ» ÈѼÕÇÑ °æ¿ì 8) ¸À, Çâ, »ö µî ´Ü¼ø ±âÈ£Â÷ÀÌ¿¡ ÀÇÇÑ °æ¿ì |
|