- ÇöÀç À§Ä¡
- home > ÄÄÇ»ÅÍ¡¤ICT¡¤¾îÇÐ > ÄÄÇ»ÅÍ¡¤IT µµ¼ > À¥ÇÁ·Î±×·¡¹Ö > ¸ÖƼ½º·¹µå ±â¹Ý ÀÚ¹Ù½ºÅ©¸³Æ®[·çºñÆäÀÌÆÛ]
¸ÖƼ½º·¹µå ±â¹Ý ÀÚ¹Ù½ºÅ©¸³Æ® - Åä¸Ó½º ÇåÅÍ 2¼¼.ºê¶óÀ̾ð À×±Û¸®½Ã ÁöÀ½, ³ª¹ÎÁÖ ¿Å±è
ÀÚ¹Ù½ºÅ©¸³Æ®·Î ¸ÖƼ½º·¹µå ¾ÖÇø®ÄÉÀ̼ÇÀ» ±¸ÇöÇØ¾ß ÇÏ´Â °³¹ßÀÚ¿¡°Ô ºê¶ó¿ìÀúÀÇ À¥ ¿öÄ¿ API, Node.jsÀÇ ¿öÄ¿ ½º·¹µå ¸ðµâ¿¡ ´ëÇÑ Àå´ÜÁ¡À» ¼Ò°³ÇÑ Ã¥ÀÌ´Ù. ÀÌ Ã¥¿¡¼´Â ¸ÖƼ½º·¹µå ¾ÖÇø®ÄÉÀÌ¼Ç ±¸Çö¿¡ È°¿ëÇÒ ¼ö ÀÖ´Â µÎ °¡Áö Á¢±Ù¹ýÀ» Á¦½ÃÇÑ´Ù.
ÀÚ¹Ù½ºÅ©¸³Æ®·Î ¸ÖƼ½º·¹µå ¾ÖÇø®ÄÉÀ̼ÇÀ» ±¸ÇöÇØ¾ß ÇÏ´Â °³¹ßÀÚ¿¡°Ô ºê¶ó¿ìÀúÀÇ À¥ ¿öÄ¿ API, Node.jsÀÇ ¿öÄ¿ ½º·¹µå ¸ðµâ¿¡ ´ëÇÑ Àå´ÜÁ¡À» ¼Ò°³ÇÑ Ã¥ÀÌ´Ù. ÀÌ Ã¥¿¡¼´Â ¸ÖƼ½º·¹µå ¾ÖÇø®ÄÉÀÌ¼Ç ±¸Çö¿¡ È°¿ëÇÒ ¼ö ÀÖ´Â µÎ °¡Áö Á¢±Ù¹ýÀ» Á¦½ÃÇÑ´Ù.
ÀúÀÚ: Åä¸Ó½º ÇåÅÍ 2¼¼.ºê¶óÀ̾ð À×±Û¸®½Ã ÁöÀ½, ³ª¹ÎÁÖ ¿Å±è
CHAPTER 1 ½ÃÀÛÇϸç
1 ½º·¹µå¶õ?
2 µ¿½Ã¼º vs º´·Ä¼º
3 ½Ì±Û½º·¹µå ±â¹Ý ÀÚ¹Ù½ºÅ©¸³Æ®
4 ¼û°ÜÁø ½º·¹µå
5 C¾ð¾îÀÇ ½º·¹µå : HappycoinÀ¸·Î ºÎÀÚ µÇ¼¼¿ä
__5.1 ¸ÞÀÎ ½º·¹µå 1°³·Î ±¸ÇöÇϱâ
__5.2 ¿öÄ¿ ½º·¹µå 4°³·Î ±¸ÇöÇϱâ
CHAPTER 2 ºê¶ó¿ìÀú
1 Àü¿ë ¿öÄ¿
__1.1 Àü¿ë ¿öÄ¿¸¦ »ç¿ëÇÑ Hello World ÄÚµå
__1.2 Àü¿ë ¿öÄ¿ Áß±Þ ¹öÀü
2 °øÀ¯ ¿öÄ¿
__2.1 °øÀ¯ ¿öÄ¿¸¦ »ç¿ëÇÑ Hello World ÄÚµå
__2.2 °øÀ¯ ¿öÄ¿ Áß±Þ ¹öÀü
3 ¼ºñ½º ¿öÄ¿
__3.1 ¼ºñ½º ¿öÄ¿¸¦ »ç¿ëÇÑ Hello World ÄÚµå
__3.2 ¼ºñ½º ¿öÄ¿ Áß±Þ ¹öÀü
4 ¸Þ½ÃÁö ÆÐ½Ì °³¿ä
__4.1 RPC ÆÐÅÏ
__4.2 ¸í·É¾î ºÐ¹è ÆÐÅÏ
__4.3 Á¾ÇÕ ¹öÀü
CHAPTER 3 Node.js
1 ½º·¹µå°¡ ¾ø¾úÀ» ½ÃÀý
2 worker_threads ¸ðµâ
__2.1 workerData
__2.2 MessagePort
3 Happycoin ´Ù½Ã º¸±â
__3.1 ¸ÞÀÎ ½º·¹µå 1°³·Î ±¸ÇöÇϱâ
__3.2 ¿öÄ¿ ½º·¹µå 4°³·Î ±¸ÇöÇϱâ
4 Piscina¸¦ ÅëÇÑ ¿öÄ¿ Ç®
5 HappycoinÀ¸·Î °¡µæ Âù Ç®
CHAPTER 4 °øÀ¯ ¸Þ¸ð¸®
1 °øÀ¯ ¸Þ¸ð¸® ÀÔ¹®
__1.1 ºê¶ó¿ìÀú¿¡¼ °øÀ¯ ¸Þ¸ð¸® »ç¿ëÇϱâ
__1.2 Node.jsÀÇ °øÀ¯ ¸Þ¸ð¸®
2 SharedArrayBuffer¿Í TypedArrays
3 µ¥ÀÌÅÍ °¡°øÀ» À§ÇÑ Atomic ¸Þ¼µå
4 ¿øÀÚ¼º¿¡ ´ëÇÑ ³íÀÇ
5 µ¥ÀÌÅÍ Á÷·ÄÈ
__5.1 Boolean ŸÀÔ
__5.2 ¹®ÀÚ¿ ŸÀÔ
__5.3 °´Ã¼ ŸÀÔ
CHAPTER 5 °øÀ¯ ¸Þ¸ð¸® Áß±Þ
1 ÄÚµð³×À̼ÇÀ» À§ÇÑ Atomic ¸Þ¼µå
__1.1 Atomics.wait()
__1.2 Atomics.notify()
__1.3 Atomics.waitAsync()
2 ½º·¹µå°¡ ±ú¾î³ª´Â ŸÀְ̹ú ¿¹Ãø °¡´É¼º
__2.1 ºñ°áÁ¤Àû ¹æ½ÄÀÇ ¿¹½Ã
__2.2 ½º·¹µå Áغñ ¿©ºÎ °¨ÁöÇϱâ
3 ¿¹½Ã ¾ÖÇø®ÄÉÀ̼Ç: ÄÜ¿þÀÌÀÇ »ý¸í °ÔÀÓ
__3.1 ÄÜ¿þÀÌÀÇ »ý¸í °ÔÀÓ: ½Ì±Û ½º·¹µå ¹öÀü
__3.2 ÄÜ¿þÀÌÀÇ »ý¸í °ÔÀÓ: ¸ÖƼ½º·¹µå ¹öÀü
4 Atomics¿Í Events °´Ã¼
CHAPTER 6 ¸ÖƼ½º·¹µå ÆÐÅÏ
1 ½º·¹µå Ç®
__1.1 Ç® Å©±â
__1.2 ÀÛ¾÷ ¹èÁ¤ Àü·«
__1.3 ¿¹½Ã Àû¿ëÇϱâ
2 ¹ÂÅؽº: ·Ï ±âÃÊ
3 ¸µ ¹öÆÛ¸¦ ÅëÇÑ µ¥ÀÌÅÍ ½ºÆ®¸®¹Ö
4 ¾×ÅÍ ¸ðµ¨
__4.1 ÆÐÅÏ ´µ¾Ó½º
__4.2 ÀÚ¹Ù½ºÅ©¸³Æ®¿ÍÀÇ °ü°è
__4.3 ¿¹½Ã ±¸ÇöÇϱâ
CHAPTER 7 À¥¾î¼Àºí¸®
1 ¿©·¯ºÐÀÇ Ã¹ ¹ø° À¥¾î¼Àºí¸®
2 À¥¾î¼Àºí¸®ÀÇ µ¥ÀÌÅÍ ¿øÀÚ¼º ÇÔ¼ö
3 EmscriptenÀ» ÅëÇØ C ÄÚµå À¥¾î¼Àºí¸®·Î ÄÄÆÄÀÏÇϱâ
4 À¥¾î¼Àºí¸® ÄÄÆÄÀÏ·¯: ±âŸ
5 AssemblyScript
6 Happycoin: AssemblyScript·Î ±¸ÇöÇϱâ
CHAPTER 8 ºÐ¼®
1 ¸ÖƼ½º·¹µùÀ» Àû¿ëÇÏÁö ¾Ê¾Æ¾ß ÇÏ´Â °æ¿ì
__1.1 ¸Þ¸ð¸® Å©±â°¡ ÀÛÀ» ¶§
__1.2 ÄÚ¾î °³¼ö°¡ ÀûÀ» ¶§
__1.3 ÄÁÅ×ÀÌ³Ê vs ½º·¹µå
2 ¸ÖƼ½º·¹µùÀ» Àû¿ëÇØ¾ß ÇÏ´Â °æ¿ì
3 ÁÖÀÇ»çÇ× ¿ä¾à
ºÎ·Ï: ±¸Á¶ÈµÈ º¹Á¦ ¾Ë°í¸®Áò
1 ½º·¹µå¶õ?
2 µ¿½Ã¼º vs º´·Ä¼º
3 ½Ì±Û½º·¹µå ±â¹Ý ÀÚ¹Ù½ºÅ©¸³Æ®
4 ¼û°ÜÁø ½º·¹µå
5 C¾ð¾îÀÇ ½º·¹µå : HappycoinÀ¸·Î ºÎÀÚ µÇ¼¼¿ä
__5.1 ¸ÞÀÎ ½º·¹µå 1°³·Î ±¸ÇöÇϱâ
__5.2 ¿öÄ¿ ½º·¹µå 4°³·Î ±¸ÇöÇϱâ
CHAPTER 2 ºê¶ó¿ìÀú
1 Àü¿ë ¿öÄ¿
__1.1 Àü¿ë ¿öÄ¿¸¦ »ç¿ëÇÑ Hello World ÄÚµå
__1.2 Àü¿ë ¿öÄ¿ Áß±Þ ¹öÀü
2 °øÀ¯ ¿öÄ¿
__2.1 °øÀ¯ ¿öÄ¿¸¦ »ç¿ëÇÑ Hello World ÄÚµå
__2.2 °øÀ¯ ¿öÄ¿ Áß±Þ ¹öÀü
3 ¼ºñ½º ¿öÄ¿
__3.1 ¼ºñ½º ¿öÄ¿¸¦ »ç¿ëÇÑ Hello World ÄÚµå
__3.2 ¼ºñ½º ¿öÄ¿ Áß±Þ ¹öÀü
4 ¸Þ½ÃÁö ÆÐ½Ì °³¿ä
__4.1 RPC ÆÐÅÏ
__4.2 ¸í·É¾î ºÐ¹è ÆÐÅÏ
__4.3 Á¾ÇÕ ¹öÀü
CHAPTER 3 Node.js
1 ½º·¹µå°¡ ¾ø¾úÀ» ½ÃÀý
2 worker_threads ¸ðµâ
__2.1 workerData
__2.2 MessagePort
3 Happycoin ´Ù½Ã º¸±â
__3.1 ¸ÞÀÎ ½º·¹µå 1°³·Î ±¸ÇöÇϱâ
__3.2 ¿öÄ¿ ½º·¹µå 4°³·Î ±¸ÇöÇϱâ
4 Piscina¸¦ ÅëÇÑ ¿öÄ¿ Ç®
5 HappycoinÀ¸·Î °¡µæ Âù Ç®
CHAPTER 4 °øÀ¯ ¸Þ¸ð¸®
1 °øÀ¯ ¸Þ¸ð¸® ÀÔ¹®
__1.1 ºê¶ó¿ìÀú¿¡¼ °øÀ¯ ¸Þ¸ð¸® »ç¿ëÇϱâ
__1.2 Node.jsÀÇ °øÀ¯ ¸Þ¸ð¸®
2 SharedArrayBuffer¿Í TypedArrays
3 µ¥ÀÌÅÍ °¡°øÀ» À§ÇÑ Atomic ¸Þ¼µå
4 ¿øÀÚ¼º¿¡ ´ëÇÑ ³íÀÇ
5 µ¥ÀÌÅÍ Á÷·ÄÈ
__5.1 Boolean ŸÀÔ
__5.2 ¹®ÀÚ¿ ŸÀÔ
__5.3 °´Ã¼ ŸÀÔ
CHAPTER 5 °øÀ¯ ¸Þ¸ð¸® Áß±Þ
1 ÄÚµð³×À̼ÇÀ» À§ÇÑ Atomic ¸Þ¼µå
__1.1 Atomics.wait()
__1.2 Atomics.notify()
__1.3 Atomics.waitAsync()
2 ½º·¹µå°¡ ±ú¾î³ª´Â ŸÀְ̹ú ¿¹Ãø °¡´É¼º
__2.1 ºñ°áÁ¤Àû ¹æ½ÄÀÇ ¿¹½Ã
__2.2 ½º·¹µå Áغñ ¿©ºÎ °¨ÁöÇϱâ
3 ¿¹½Ã ¾ÖÇø®ÄÉÀ̼Ç: ÄÜ¿þÀÌÀÇ »ý¸í °ÔÀÓ
__3.1 ÄÜ¿þÀÌÀÇ »ý¸í °ÔÀÓ: ½Ì±Û ½º·¹µå ¹öÀü
__3.2 ÄÜ¿þÀÌÀÇ »ý¸í °ÔÀÓ: ¸ÖƼ½º·¹µå ¹öÀü
4 Atomics¿Í Events °´Ã¼
CHAPTER 6 ¸ÖƼ½º·¹µå ÆÐÅÏ
1 ½º·¹µå Ç®
__1.1 Ç® Å©±â
__1.2 ÀÛ¾÷ ¹èÁ¤ Àü·«
__1.3 ¿¹½Ã Àû¿ëÇϱâ
2 ¹ÂÅؽº: ·Ï ±âÃÊ
3 ¸µ ¹öÆÛ¸¦ ÅëÇÑ µ¥ÀÌÅÍ ½ºÆ®¸®¹Ö
4 ¾×ÅÍ ¸ðµ¨
__4.1 ÆÐÅÏ ´µ¾Ó½º
__4.2 ÀÚ¹Ù½ºÅ©¸³Æ®¿ÍÀÇ °ü°è
__4.3 ¿¹½Ã ±¸ÇöÇϱâ
CHAPTER 7 À¥¾î¼Àºí¸®
1 ¿©·¯ºÐÀÇ Ã¹ ¹ø° À¥¾î¼Àºí¸®
2 À¥¾î¼Àºí¸®ÀÇ µ¥ÀÌÅÍ ¿øÀÚ¼º ÇÔ¼ö
3 EmscriptenÀ» ÅëÇØ C ÄÚµå À¥¾î¼Àºí¸®·Î ÄÄÆÄÀÏÇϱâ
4 À¥¾î¼Àºí¸® ÄÄÆÄÀÏ·¯: ±âŸ
5 AssemblyScript
6 Happycoin: AssemblyScript·Î ±¸ÇöÇϱâ
CHAPTER 8 ºÐ¼®
1 ¸ÖƼ½º·¹µùÀ» Àû¿ëÇÏÁö ¾Ê¾Æ¾ß ÇÏ´Â °æ¿ì
__1.1 ¸Þ¸ð¸® Å©±â°¡ ÀÛÀ» ¶§
__1.2 ÄÚ¾î °³¼ö°¡ ÀûÀ» ¶§
__1.3 ÄÁÅ×ÀÌ³Ê vs ½º·¹µå
2 ¸ÖƼ½º·¹µùÀ» Àû¿ëÇØ¾ß ÇÏ´Â °æ¿ì
3 ÁÖÀÇ»çÇ× ¿ä¾à
ºÎ·Ï: ±¸Á¶ÈµÈ º¹Á¦ ¾Ë°í¸®Áò
ÀÌ Ã¥ÀÇ ¸ñÇ¥´Â ÀÚ¹Ù½ºÅ©¸³Æ® ¸ÖƼ½º·¹µùÀ» ±¸ÇöÇϱâ À§ÇÑ ½Ç¹« Áö½ÄÀ» Á¦°øÇÏ´Â °ÍÀÔ´Ï´Ù. ±×°£ ÀÚ¹Ù½ºÅ©¸³Æ® ÇÁ·Î±×·¥Àº ½Ì±Û Äھ ±¹ÇÑÇÏ¿© °³¹ßµÇ¾ú°í, ½ÇÁ¦·Î Æ®À§Åͳª °³¹ßÀÚ Æ÷·³¿¡¼µµ ÀÚ¹Ù½ºÅ©¸³Æ®´Â ½Ì±Û ½º·¹µå ÇÁ·Î±×·¥À¸·Î¸¸ °³¹ßÇÒ ¼ö ÀÖ´Ù°í ¸»ÇÏ´Â ±ÛÀÌ ¸¹½À´Ï´Ù. ÀÌ Ã¥ÀÇ Á¦¸ñÀÌ ¸ÖƼ½º·¹µå ±â¹Ý ÀÚ¹Ù½ºÅ©¸³Æ®(Multithreaded JavaScript)ÀÎ °Íó·³, ÀÚ¹Ù½ºÅ©¸³Æ® ÇÁ·Î±×·¥Àº ¹«Á¶°Ç ½Ì±Û ½º·¹µå·Î °³¹ßÇØ¾ß ÇÑ´Ù´Â ¿ÀÇظ¦ ŸÆÄÇÏ°íÀÚ ÇÕ´Ï´Ù.
±×¸®°í ¼¼ºÎ ¸ñÇ¥´Â ¿©·¯ºÐ²² ÀÚ¹Ù½ºÅ©¸³Æ® ¸ÖƼ½º·¹µùÀ» ±¸ÇöÇÒ ¶§ °í·ÁÇØ¾ß ÇÒ ¿ä¼Ò¸¦ ¼³¸íÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÌ Ã¥À» ´Ù ÀÐÀ» ¶§Âë¿¡´Â ºê¶ó¿ìÀú À¥ ¿öÄ¿ APIÀÇ »ç¿ë¹ý, °/¾àÁ¡, ¾ðÁ¦ ¾î¶² API¸¦ »ç¿ëÇØ¾ß ÇÒÁö¸¦ ÀÌÇØÇÏ°Ô µÉ °Ì´Ï´Ù. ¶ÇÇÑ Node.jsÀÇ ¿öÄ¿ ½º·¹µå ¸ðµâ API´Â ºê¶ó¿ìÀú À¥ ¿öÄ¿¿Í ¾î¶°ÇÑ Â÷ÀÌ°¡ ÀÖ´ÂÁö ¾Ë°Ô µÉ °Ì´Ï´Ù.
- ¸ÖƼ½º·¹µùÀ» ÅëÇØ ¼º´ÉÀ» Çâ»óÇÏ´Â ¹ý
- Àü¿ë ¿öÄ¿, °øÀ¯ ¿öÄ¿, ¼ºñ½º ¿öÄ¿ÀÇ Â÷ÀÌÁ¡
- ¾ÖÇø®ÄÉÀ̼ǿ¡¼ ½º·¹µå¸¦ »ç¿ëÇØ¾ß ÇÒ ¶§, »ç¿ëÇÏÁö ¾Ê¾Æ¾ß ÇÒ ¶§
- Atomics °´Ã¼¸¦ È°¿ëÇÑ ½º·¹µå Åë½Å Àû¿ë
- ¾ÖÇø®ÄÉÀÌ¼Ç ¼º´É Çâ»óÀ» À§ÇÑ ¿¹½Ã ÄÚµå ±¸Çö
- ¸ÖƼ½º·¹µù ¼º´É¿¡ ´ëÇÑ º¥Ä¡¸¶Å©
±×¸®°í ¼¼ºÎ ¸ñÇ¥´Â ¿©·¯ºÐ²² ÀÚ¹Ù½ºÅ©¸³Æ® ¸ÖƼ½º·¹µùÀ» ±¸ÇöÇÒ ¶§ °í·ÁÇØ¾ß ÇÒ ¿ä¼Ò¸¦ ¼³¸íÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÌ Ã¥À» ´Ù ÀÐÀ» ¶§Âë¿¡´Â ºê¶ó¿ìÀú À¥ ¿öÄ¿ APIÀÇ »ç¿ë¹ý, °/¾àÁ¡, ¾ðÁ¦ ¾î¶² API¸¦ »ç¿ëÇØ¾ß ÇÒÁö¸¦ ÀÌÇØÇÏ°Ô µÉ °Ì´Ï´Ù. ¶ÇÇÑ Node.jsÀÇ ¿öÄ¿ ½º·¹µå ¸ðµâ API´Â ºê¶ó¿ìÀú À¥ ¿öÄ¿¿Í ¾î¶°ÇÑ Â÷ÀÌ°¡ ÀÖ´ÂÁö ¾Ë°Ô µÉ °Ì´Ï´Ù.
- ¸ÖƼ½º·¹µùÀ» ÅëÇØ ¼º´ÉÀ» Çâ»óÇÏ´Â ¹ý
- Àü¿ë ¿öÄ¿, °øÀ¯ ¿öÄ¿, ¼ºñ½º ¿öÄ¿ÀÇ Â÷ÀÌÁ¡
- ¾ÖÇø®ÄÉÀ̼ǿ¡¼ ½º·¹µå¸¦ »ç¿ëÇØ¾ß ÇÒ ¶§, »ç¿ëÇÏÁö ¾Ê¾Æ¾ß ÇÒ ¶§
- Atomics °´Ã¼¸¦ È°¿ëÇÑ ½º·¹µå Åë½Å Àû¿ë
- ¾ÖÇø®ÄÉÀÌ¼Ç ¼º´É Çâ»óÀ» À§ÇÑ ¿¹½Ã ÄÚµå ±¸Çö
- ¸ÖƼ½º·¹µù ¼º´É¿¡ ´ëÇÑ º¥Ä¡¸¶Å©