3,300¿ø ´ë¿©Çϱâ
1Àå. ¾ÆÄ«·Î ¶Ù¾îµé±â
¼Ò°³
¾ÆÄ« ½ºÄ®¶ó SBT ÇÁ·ÎÁ§Æ® ¸¸µé±â
¾×ÅͽýºÅÛ »ý¼º ¹× ÀÌÇØ
¾×ÅÍÀÇ ÇàÀ§¿Í »óÅ Á¤ÀÇÇϱâ
¾×ÅÍ¿¡ ¸Þ½ÃÁö ¼Û½ÅÇϱâ
¾×ÅͷκÎÅÍ °á°ú ¿äûÇϱâ
¾×ÅÍ »çÀÌ¿¡¼ÀÇ Åë½Å
¾×Å͸¦ À§ÇÑ »ç¿ëÀÚ Á¤ÀÇ ¸ÞÀϹڽº ¸¸µé±â
¾×ÅÍ°¡ ¼ö½ÅÇÏ´Â ¸Þ½ÃÁöÀÇ ¿ì¼±¼øÀ§ Á¤Çϱâ
¾×Å͸¦ À§ÇÑ Á¦¾îÀÎ½Ä ¸ÞÀϹڽº ¸¸µé±â
¾×ÅÍÀÇ ÇàÀ§¸¦ ºÎ¿©Çϱâ/Á¦°ÅÇϱâ
¾×ÅÍ ÁߴܽÃÅ°±â
2Àå. °¨½Ã¿Í ¸ð´ÏÅ͸µ
¼Ò°³
ºÎ¸ð ¾×ÅÍÀÇ ÀÚ½Ä ¾×ÅÍ ¸¸µé±â
¾×ÅÍÀÇ ¶óÀÌÇÁ»çÀÌŬ ÈÅ ¿À¹ö¶óÀ̵åÇϱâ
¾×ÅÍ¿¡°Ô ¸Þ½ÃÁö¸¦ ¼Û½ÅÇÏ°í ÀÀ´äÀ» ¸ðÀ¸±â
¾×Å͸¦ À§ÇÑ OneForOneStrategy ÀÌÇØÇϱâ
¾×Å͸¦ À§ÇÑ AllForOneStrategy ÀÌÇØÇϱâ
DeathWatch¸¦ »ç¿ëÇØ ¾×ÅÍ ¶óÀÌÇÁ»çÀÌŬ ¸ð´ÏÅ͸µÇϱâ
3Àå. ¸Þ½ÃÁö ¶ó¿ìÆÃ
¼Ò°³
¾×ÅÍÀÇ SmallestMailboxPool ¸¸µé±â
¾×ÅÍÀÇ BalancingPool ¸¸µé±â
¾×ÅÍÀÇ RoundRobinPool ¸¸µé±â
¾×ÅÍÀÇ BroadcastPool ¸¸µé±â
¾×ÅÍÀÇ ScatterGatherFirstCompletedPool ¸¸µé±â
¾×ÅÍÀÇ TailChoppingPool ¸¸µé±â
¾×ÅÍÀÇ ConsistentHashingPool ¸¸µé±â
¾×ÅÍÀÇ RandomPool ¸¸µé±â
¶ó¿ìÅÍ¿¡ Ưº°ÇÏ°Ô Ã³¸®µÇ´Â ¸Þ½ÃÁö¸¦ ¼Û½ÅÇϱâ
µ¿ÀûÀ¸·Î Å©±â°¡ ÀçÁ¶Á¤µÇ´Â ¾×ÅÍÀÇ Ç® ¸¸µé±â
4Àå. ǻó¿Í ¿¡ÀÌÀüÆ® »ç¿ëÇϱâ
¼Ò°³
°£´ÜÇÑ ÀÛ¾÷À» À§ÇØ Ç»Ã³¸¦ Á÷Á¢ »ç¿ëÇϱâ
¾×ÅͷΠǻó »ç¿ëÇϱâ
¾×ÅÍ ³»¿¡¼ ǻó »ç¿ëÇϱâ
ǻó¿¡ for ³»Æ÷ »ç¿ëÇϱâ
ǻó¿¡¼ ÄÝ¹é ´Ù·ç±â
ǻó·Î °£´ÜÇÑ º´·Ä ¾Û ¸¸µé±â
ǻóÀÇ ½ÃÄö½º ÁÙÀ̱â
¿¡ÀÌÀüÆ® ÀÐ°í ¾÷µ¥ÀÌÆ®Çϱâ
¿¡ÀÌÀüÆ®¸¦ ¸ð³ªµåó·³ ±¸¼ºÇϱâ
5Àå. ¾×ÅÍ ½ºÄÉÁÙ¸µ°ú ±× ¹ÛÀÇ À¯Æ¿¸®Æ¼
¼Ò°³
ƯÁ¤ °£°ÝÀ¸·Î ÀÛ¾÷ ½ºÄÉÁÙ¸µÇϱâ
ƯÁ¤ °£°ÝÀ¸·Î ¾×ÅÍÀÇ ÀÛ¾÷ ½ºÄÉÁÙ¸µÇϱâ
¾×ÅÍ¿¡¼ ½ºÄÉÁÙ¸µµÈ ÀÛ¾÷ Ãë¼ÒÇϱâ
Àå¾Ö È®»êÀ» ¸·´Â ¼Å¶ ºê·¹ÀÌÄ¿ ¸¸µé±â
¾×ÅÍ¿¡ ·Î±ë µµÀÔÇϱâ
¾×ÅÍ À¯´ÖÅ×½ºÆ® ÀÛ¼ºÇϱâ
¾ÆÄ« µ¶¸³ ¾Û ÆÐŰ¡ ¹× ¹èÆ÷
µµÄ¿ ÄÁÅ×ÀÌ³Ê ³» ¾ÆÄ« ¾Û ÆÐŰ¡ ¹× ¹èÆ÷
¾ÆÄ« ¾Û ¼³Á¤Çϱâ
6Àå. ¾ÆÄ« Áö¼Ó¼º
¼Ò°³
Áö¼Ó¼ºÀ» À§ÇÑ ¾×ÅÍ Áغñ
¾×ÅÍÀÇ »óÅ º¹±¸Çϱâ
½º³À¼¦À» »ç¿ëÇÑ º¹±¸½Ã°£ ´ÜÃà
Áö¼Ó¼º FSM ¸ðµ¨ ¸¸µé±â
LevelDB·Î »óÅ Áö¼Ó½ÃÅ°±â
Ä«»êµå¶ó·Î »óÅ Áö¼Ó½ÃÅ°±â
·¹µð½º·Î »óÅ Áö¼Ó½ÃÅ°±â
À̺¥Æ®¼Ò½Ì ÀÌÇØÇϱâ
À̺¥Æ®¼Ò½Ì¿¡¼ Àå¾Ö ´Ù·ç±â
Áö¼Ó¼º Äõ¸® »ç¿ëÇϱâ
LevelDB¸¦ À§ÇÑ Áö¼Ó¼º Äõ¸®
7Àå. ¿ø°ÝÈ ¹× ¾ÆÄ« Ŭ·¯½ºÅ͸µ
¼Ò°³
¾ÆÄ« ¾Û ¿ø°ÝÈÇϱâ
´Ù¸¥ ¸Ó½Å¿¡¼ ¿ø°Ý ¾×ÅÍ ¸¸µé±â
¼·Î ´Ù¸¥ ¸Ó½Å¿¡¼ ¿ø°Ý ¾×ÅÍ Ã£±â
¿ø°Ý ¾×Å͸¦ ´Ù¸¥ ³ëµå¿¡ ÇÁ·Î±×·¥ÀûÀ¸·Î ¹èÆ÷Çϱâ
¿ø°Ý ¾×Å͸¦ »ç¿ëÇØ ¾Û È®ÀåÇϱâ
¿ø°ÝÈ ¾×Å͸¦ »ç¿ëÇØ Ã¤Æà ±â¹Ý ¾Û ¸¸µé±â
ÇÁ·ÎÁ§Æ®¿¡ ¾ÆÄ« Ŭ·¯½ºÅ͸µ °¡´ÉÇÏ°Ô Çϱâ
Ŭ·¯½ºÅÍ¿¡¼ ºÐ»êµÈ °Ô½Ã-±¸µ¶ »ç¿ëÇϱâ
Ŭ·¯½ºÅÍ »þµù
¾ÆÄ« Ŭ·¯½ºÅÍ ³» ³ëµå »çÀÌ¿¡¼ µ¥ÀÌÅÍ °øÀ¯Çϱâ
Ŭ·¯½ºÅÍ¿¡ °ÉÃÄ ½Ì±ÛÅÏ ¾×ÅÍ ¸¸µé±â
8Àå. ¾ÆÄ« ½ºÆ®¸²
¼Ò°³
°£´ÜÇÑ ¾ÆÄ« ½ºÆ®¸² ¸¸µé±â
½ºÆ®¸² º¯È¯ ¹× ¼Òºñ
½ºÆ®¸² ¼Ò½º, Ç÷οì, ½ÌÅ© ¸¸µé±â
»ç¿ëÀÚ Á¤ÀÇ ½ºÆ®¸² ó¸®
¾ÆÄ« ½ºÆ®¸²¿¡¼ÀÇ ¿À·ù ó¸®
½ºÆ®¸² ÆÄÀÌÇÁ¶óÀÌ´× ¹× º´·ÄÈ
½ºÆ®¸®¹Ö I/O·Î ÀÛ¾÷Çϱâ
¾ÆÄ« ¾×ÅÍ¿¡ ½ºÆ®¸² ÅëÇÕÇϱâ
±×·¡ÇÁ·Î ÀÛ¾÷Çϱâ
¾ÆÄ« ½ºÆ®¸²À¸·Î RabbitMQ ¸Þ½ÃÁö ó¸®Çϱâ
¸®¾×Ƽºê Ä«ÇÁÄ«¸¦ »ç¿ëÇØ ¾ÆÄ« ½ºÆ®¸²°ú Ä«ÇÁÄ« ÅëÇÕÇϱâ
9Àå. ¾ÆÄ« HTTP
¼Ò°³
¾ÆÄ« HTTP·Î ÃÖ¼ÒÇÑÀÇ HTTP ¼¹ö ¸¸µé±â
Ŭ¶óÀ̾ðÆ® Ãø API·Î ¾ÆÄ« HTTP ¼ºñ½º ¼ÒºñÇϱâ
HTTP ¼¹ö¸¦ À§ÇÑ ¶ó¿ìÆà DSL ÀÛ¼ºÇϱâ
¾ÆÄ« HTTP ¼³Á¤ ÀÌÇØ
µ¥ÀÌÅÍ ¸¶¼£¸µ, ¾ð¸¶¼£¸µ
µ¥ÀÌÅÍ ÀÎÄÚµù, µðÄÚµù
µð·ºÆ¼ºê ÀÌÇØÇϱâ
¿¹¿Ü ó¸®
¾ÆÄ« HTTP·Î ÆÄÀÏ ¾÷·Îµå
¾ÆÄ« HTTP·Î JSON Áö¿ø ±¸Ãà
¾ÆÄ« HTTP·Î XML Áö¿ø
10Àå. ´Ù¾çÇÑ ¾ÆÄ« ÆÐÅÏ ÀÌÇØ
¼Ò°³
¼ø¼ ÀÖ´Â ¾×ÅÍ Á¾·á
¾ÆÄ« ¼Ë´Ù¿î ÆÐÅÏ
¾×ÅÍ¿¡ ÁÖ±âÀûÀÎ ¸Þ½ÃÁö ½ºÄÉÁÙ¸µÇϱâ
¾×ÅÍ¿¡ ¸Þ½ÃÁö¸¦ º¸³»´Â µ¿¾È ¾²·ÎƲ¸µÇϱâ
¾×ÅÍ »çÀÌÀÇ ÀÛ¾÷ ºÎÇÏ ±ÕÇü ÀÌ·ç±â
Áý°èÀÚ ÆÐÅÏ
Ä«¿îÆ®´Ù¿î·§Ä¡ ÆÐÅÏ
À¯ÇÑ »óÅ ¸Ó½Å
Á¤Áö °¡´ÉÇÑ ¾×ÅÍ ÆÐÅÏ
ºÀÅõ·Î ¾×ÅÍ °¨½Î±â
11Àå. ¶ó°õÀ¸·Î ¸¶ÀÌÅ©·Î¼ºñ½ºÇϱâ
¼Ò°³
¶ó°õ ¼³Ä¡ ¹× ÇÁ·ÎÁ§Æ® ¸¸µé±â
¼ºñ½º ·ÎÄÉÀÌÅÍ ÀÌÇØÇϱâ
¼ºñ½º µð½ºÅ©¸³ÅÍ ÀÌÇØÇϱâ
¶ó°õ ¼ºñ½º ±¸ÇöÇϱâ
Áö¼Ó¼ºÀÖ°í Ŭ·¯½ºÅ͸µµÈ ¼ºñ½º ÀÛ¼ºÇϱâ
¿î¿µ ȯ°æ¿¡¼ ¶ó°õ ½ÇÇàÇϱâ
¾ÆÄ«¿Í ÅëÇÕÇϱâ
¡Ú ÀÌ Ã¥¿¡¼ ´Ù·ç´Â ³»¿ë ¡Ú
- ÅëÁ¦ ÀÎ½Ä ¸ÞÀϹڽº¸¦ »ç¿ëÇÑ ¾×ÅÍ ÅëÁ¦
- ¾ÆÄ« Å×½ºÆ®Å¶À¸·Î Àå¾ÖÇã¿ë ¾ÖÇø®ÄÉÀÌ¼Ç Å×½ºÆ®
- ǻó¿Í ¿¡ÀÌÀüÆ®·Î º´·Ä ¾ÖÇø®ÄÉÀÌ¼Ç Á¦ÀÛ
- µµÄ¿¿¡ ¾ÆÄ« ¾ÖÇø®ÄÉÀ̼ÇÀ» ÆÐŰ¡ ¹× ¹èÆ÷
- ´Ù¸¥ ³ëµå¿¡ ÇÁ·Î±×·¡¹Ö ¹æ½ÄÀ¸·Î ¿ø°Ý ¾×ÅÍ ¹èÆ÷
- ¾ÆÄ« ¾×ÅÍ¿¡ ½ºÆ®¸² Æ÷ÇÔ½ÃÅ°±â
- ¶ó°õ ¼³Ä¡ ¹× ¶ó°õ ÇÁ·ÎÁ§Æ® Á¦ÀÛ
¡Ú ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ ¡Ú
ÀÌ Ã¥¿¡¼´Â ´Ù¾çÇÑ ¹æ¹ýÀ¸·Î ¾ÆÄ« ÅøŶÀ» »ìÆ캻´Ù. ¾×ÅÍ¿¡ ¸Þ½ÃÁö¸¦ º¸³»´Â ½¬¿î ³»¿ëºÎÅÍ ¸¶½ºÅÍ ½½·¹À̺ê ÀÛ¾÷ Ç®¸µ ÆÐÅÏ °°Àº °í±Þ ÁÖÁ¦¸¦ ¾Æ¿ì¸£´Â À¯¿ëÇÑ ¿¹Á¦¸¦ ÅëÇØ ¾ÆÄ«¸¦ ÀÌ¿ëÇØ °¢ ÆÐÅÏÀ» ¿Ï¼ºÇØ ³ª°¡´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù. ¾ÆÄ« ÀÔ¹®ÀÚ»Ó ¾Æ´Ï¶ó ¾ÆÄ«¿¡ Àͼ÷ÇÑ µ¶ÀÚµµ ¾ÆÄ«¸¦ Á» ´õ ±íÀÌ ÀÌÇØÇÏ°Ô µÉ °ÍÀÌ´Ù.
¡Ú ÀÌ Ã¥ÀÇ ±¸¼º ¡Ú
1Àå, '¾ÆÄ«·Î ¶Ù¾îµé±â'¿¡¼´Â ¾ÆÄ« ¾×ÅÍ(actor), ¾×ÅͽýºÅÛ, ¸ÞÀϹڽº, ¾×ÅÍ ÇàÀ§ ¹Ù²Ù±âÀÇ ±âº» °³³äÀ» ´Ù·é´Ù.
2Àå, '°¨½Ã¿Í ¸ð´ÏÅ͸µ'¿¡¼´Â ¾×ÅÍ ¶óÀÌÇÁ»çÀÌŬ, ¾×ÅÍ °èÃþ, °¨µ¶, ¸ð´ÏÅ͸µÀ» ´Ù·é´Ù.
3Àå, '¸Þ½ÃÁö ¶ó¿ìÆÃ'¿¡¼´Â ¼·Î ´Ù¸¥ ÇüÅÂÀÇ ±×·ì°ú Ç® ¶ó¿ìÅÍ, ±×¸®°í ¾ÆÄ« µð½ºÆÐóÀÇ µ¿ÀÛ ¹æ½ÄÀ» ´Ù·é´Ù.
4Àå, 'ǻó¿Í ¿¡ÀÌÀüÆ®'¿¡¼´Â ǻó°¡ µ¿ÀÛÇÏ´Â ¹æ½Ä°ú À̵éÀ» ¾ÆÄ« ÅøŶ°ú Àß ÅëÇÕ½ÃÅ°´Â ¹æ¹ýÀ» ´Ù·é´Ù. ¶ÇÇÑ ¾ÆÄ« ¿¡ÀÌÀüÆ®µµ ´Ù·é´Ù.
5Àå, '¾×ÅÍ ½ºÄÉÁÙ¸µ ¹× ´Ù¸¥ À¯Æ¿¸®Æ¼'¿¡¼´Â ¾ÆÄ« ½ºÄÉÁÙ·¯ÀÇ µ¿ÀÛ ¹æ¹ýÀ» ¼³¸íÇÑ´Ù. ±×¸®°í ¾ÆÄ« ¾ÖÇø®ÄÉÀ̼ÇÀ» ÆÐŰ¡, ¼³Á¤, ½ÇÇàÇÏ´Â ¿©·¯ °¡Áö À¯¿ëÇÑ ¹æ¹ýÀ» ´Ù·é´Ù.
6Àå, '¾ÆÄ« Áö¼Ó¼º'¿¡¼´Â »óŸ¦ °¡Áö´Â ¾×ÅÍÀÇ »óŸ¦ ¾ÆÆÄÄ¡ Ä«»êµå¶ó³ª ·¹µð½º °°Àº ´Ù¾çÇÑ ±â¼ú·Î À¯ÁöÇÏ´ÂÁö ¹æ¹ýÀ» ¼³¸íÇÑ´Ù. ´Ù¾çÇÑ º¹±¸ Àü·«À» ´Ù·é´Ù.
7Àå, '¿ø°ÝÈ ¹× ¾ÆÄ« Ŭ·¯½ºÅ͸µ'¿¡¼´Â Àß ¾Ë·ÁÁø ¿ø°Ý ÁÖ¼Ò¸¦ »ç¿ëÇϰųª ºÐ»êÈµÈ ÇǾîÅõÇǾî(peer-to-peer) ±â¹Ý Ŭ·¯½ºÅÍ ¸â¹ö½Ê ¼ºñ½º¸¦ ¿¬°áÇØ ´ÜÀÏÀÇ JVMÀ» ¹þ¾î³ª ¾ÆÄ«¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀ» ´Ù·é´Ù.
8Àå, '¾ÆÄ« ½ºÆ®¸²'¿¡¼´Â ¾ÆÄ« ½ºÆ®¸² ÇÁ·¹ÀÓ¿öÅ©¸¦ »ìÆ캸°í, À̸¦ ¾ÆÄ« ¹× ¼µåÆÄƼ ±â¼ú°ú ÅëÇÕ½ÃÅ°´Â ¹æ¹ýÀ» ´Ù·é´Ù.
9Àå, '¾ÆÄ« HTTP'¿¡¼´Â ¾ÆÄ« HTTP¸¦ Ŭ¶óÀÌÀ̾ðÆ®¿Í ¼¹ö »çÀÌµå ¸ðµÎ¿¡¼ »ç¿ëÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù. ¶ÇÇÑ, »ç¿ëÀÚ »ç·Ê¿¡ µû¸¥ API ¼öÁØ ¼³Á¤ ¹æ¹ýÀ» º¸¿©ÁØ´Ù.
10Àå, '´Ù¾çÇÑ ¾ÆÄ« ÆÐÅÏ ÀÌÇØ'¿¡¼´Â ¾ÆÄ«¸¦ »ç¿ëÇØ ¼·Î ´Ù¸¥ ÀϹÝÀûÀÎ ÇÁ·Î±×·¡¹Ö ÆÐÅÏÀ» »ç¿ëÇÏ´Â ¹æ¹ýÀ» ´Ù·é´Ù.
11Àå, '¶ó°õÀ¸·Î ¸¶ÀÌÅ©·Î¼ºñ½ºÇϱâ'¿¡¼´Â ¶óÀÌÆ®¹êµåÀÇ ¸¶ÀÌÅ©·Î¼ºñ½º ÇÁ·¹ÀÓ¿öÅ©ÀÎ ¶ó°õÀ» ¼Ò°³ÇÑ´Ù. ¶ó°õÀÇ °ü·Ê ¹× ¶ó°õÀ¸·Î ¸¶ÀÌÅ©·Î¼ºñ½º¸¦ »ý¼º, ¼³Á¤, ¿¬°á, ½ÇÇàÇÏ´Â µ¥ ÇÊ¿äÇÑ Á¤º¸¸¦ »ìÆ캻´Ù.
±¹¹Î : 407937-04-000322 : (ÁÖ)¸®Æ²ÄÚ¸®¾Æ
³óÇù : 309-01-214071 : (ÁÖ)¸®Æ²ÄÚ¸®¾Æ