Erlang Programming ¾ð¾î
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®
ÇöÀçÀ§Ä¡ : ¹Ì´Ï»çÀÌÆ®>Erlang



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

Contents

1 Erlang ¼Ò°³
2 ÇÔ¼öÇü ¾ð¾î
3 ÇÔ¼öÇü ¾ð¾îÀÇ Á¦ÇÑ
4 ÇÔ¼öÇü ¾ð¾î·Î½áÀÇ Erlang
5 °øºÎ¹æ¹ý
6 °ü·Ã¹®¼­

ÀÌ ÆäÀÌÁö´Â Erlang¸¦ °øºÎÇϱâ À§ÇÑ ¸ñÀûÀ¸·Î ¸¸µé¾î Á³´Ù. ¾ÕÀ¸·Î ²ÙÁØÈ÷ Á¤¸®ÇØ ³ª°¥ »ý°¢ÀÌ´Ù.

1 Erlang ¼Ò°³

ErlangÀº ¹ü¿ëÀûÀ¸·Î »ç¿ë°¡´ÉÇÑ concurrent ÇÁ·Î±×·¡¹Ö ¾ð¾î´Ù. Áï µ¿½Ã¼ºÁ¦¾î¸¦ ÇÊ¿ä·Î ÇÏ´Â º´·Ä½Ã½ºÅÛ, ºÐ»êó¸® ½Ã½ºÅÛÀÇ °³¹ßÀ» À§ÇÑ ¾ð¾î¶ó°í ÇÒ ¼ö ÀÖÀ» °Í °°´Ù. ¶ÇÇÑ strict evaluation, single assignment, dynamic typing À» Áö¿øÇÏ´Â ÇÔ¼öÇü ¾ð¾îÀ̱⵵ ÇÏ´Ù. µ¿½Ã¼ºÀ» ¸¸Á·Çϱâ À§Çؼ­ Actor model À» Àû¿ëÇß´Ù°í Çϴµ¥, Actor modelÀº ±âȸ°¡ µÇ¸é Çѹø °øºÎÇØºÁ¾ß µÉ °Í °°´Ù.

2 ÇÔ¼öÇü ¾ð¾î

Àΰ£ÀÇ Ç¥¸éÀûÀÎ ÀǽÄÀÇ È帧Àº ÀýÂ÷ÁöÇâÀûÀÌ´Ù. Ç¥¸éÀûÀ̶ó°í Á¦ÇÑÀ» µÐ ÀÌÀ¯´Â Àΰ£ÀÇ ³»¸éÀûÀÎ ÀǽÄÀÇ È帧ÀÇ °æ¿ì ´Ü¼øÈ÷ ÀýÂ÷ÁöÇâÀûÀ̶ó°í ¸»Çϱâ´Â Èûµé±â ¶§¹®ÀÌ´Ù. ¿ì¸®°¡ ¾î¶² ÀÏÀ» ó¸®ÇÏ´Â ¹æ½ÄÀ̶óµçÁö ÀÇ»ç¼ÒÅëÀ» À§ÇÑ ¾ð¾îÀÇ °æ¿ì¸¦ ºÁµµ ´ëü·Î ÀýÂ÷ÁöÇâÀûÀÓÀ» ¾Ë ¼ö ÀÖ´Ù. AÀÏÀ» Çϰí B ÀÏÀ» ÇÏ°í ´ÙÀ½¿¡ CÀÏÀ» ÇØ¾ßÁö¶ó´Â ½ÄÀ¸·Î ¼øÂ÷ÀûÀ¸·Î ÀÏÀ» ó¸®ÇÏ´Â ½ÄÀÌ´Ù. ¿©±â¿¡¼­ ÀÏÀÌ Á» º¹ÀâÇØÁö¸é ¼±ÅÃÀ» ÅëÇÑ ºÐ±â¸¦ ÇÏ°Ô µÈ´Ù. ¼±ÅÃÀ» ÅëÇÑ ºÐ±â ¿ª½Ã ¼øÂ÷ÀûÀ¸·Î ÀÏÀ» ó¸®ÇÑ´Ù°í º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

ÀÌ·¯ÇÑ ÀýÂ÷ÁöÇâÀûÀÎ ¾ð¾î ȤÀº »ç°í¹æ½ÄÀº ±¸¼úÀûÀ̶ó´Â Ư¡À» °¡Áø´Ù. ±¸¼úÀûÀÎ Á¤º¸±³È¯À̳ª ÀÏÀÇ Ã³¸®°¡ °¡Áö´Â °¡Àå Å« ÀåÁ¡Àº ¿ª½Ã Àΰ£ÀûÀ̸ç, ºü¸£°Ô ÀÌÇØÇÒ ¼ö ÀÖ´Ù - Áï Á÷°üÀûÀÌ´Ù -. ¶ó´Â°Ô µÉ °ÍÀÌ´Ù. ±¸¼úÀº ÇϳªÀÇ ¹®Àå¿¡ ´Ù¾çÇÑ Àǹ̸¦ ´ãÀ» ¼ö Àִٴ Ư¡µµ °¡Áö°í Àִµ¥, ÀÌ´Â ¹®ÇÐÀÛǰÀ» âÀÛÇϴµ¥ À¯¸®ÇÑ Æ¯Â¡ÀÌ´Ù. ±¸¼úÀûÀΠƯ¡À» °¡Áö´Â ´ëÇ¥ÀûÀÎ µµ±¸°¡ Àΰ£ÀÇ ¾ð¾î°¡ µÉ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

¹Ý¸é ¸î°¡Áö ´ÜÁ¡µµ °¡Áö°í Àִµ¥, ¿©·¯°¡Áö ÀÇ¹Ì·Î ÇØ¼®µÉ ¼ö Àֱ⠶§¹®¿¡ Àǹ̰¡ ¸íÈ®ÇÏ°Ô Àü´ÞµÇÁö ¾ÊÀ» °æ¿ì°¡ ÀÖÀ¸¸ç, °á°ú¿¡ ÀÇÇØ¼­ Á¶°Ç ÀÚü°¡ º¯°æµÉ ¼ö Àִٰųª ÇÏ´Â ¹®Á¦ - ¾Æ ´Ù¸£°í ¾î ´Ù¸£´Ù-°¡ »ý±æ ¼ö ÀÖ´Ù´Â Á¡ÀÌ´Ù. ¶È°°Àº Àǹ̸¦ ´Ù¾çÇÑ ¹æ¹ýÀ¸·Î Àü´ÞÇÒ ¼ö ÀÖ´Ù´Â °Íµµ ¹®Á¦°¡ µÉ ¼ö ÀÖ´Ù. »ç¶÷»çÀÌÀÇ ¿ÀÇØ¶ó´Â°Ô ÀÌ·¯ÇÑ ¹®Á¦µé¶§¹®¿¡ »ý±â´Â°Ô ´ëºÎºÐÀ̵µ ÇÏ°í ¸»ÀÌ´Ù. »ç¶÷µé »çÀÌÀÇ ¿ÀÇØ¶ó¸é, ´ë°ÔÀÇ °æ¿ì ¾ð¾î¸¦ ÀÌ¿ëÇØ¼­ ½É°¢ÇÏÁö ¾ÊÀº ¼öÁØ¿¡¼­ ¸¶¹«¸® ÁöÀ» ¼ö ÀÖÁö¸¸, ÀÚ¿¬°úÇе¼­ÀÇ ÀÚ¿¬Çö»óÀ» ±â¼úÇϰíÀÚ ÇÒ¶§´Â Àΰ£¾ð¾îÀÇ ÀÌ·¯ÇÑ ¸ðÈ£ÇÔÀÌ Å« ¹®Á¦°¡ µÉ °ÍÀÌ´Ù.

ÀÌ·¯ÇÑ ¹®Á¦¸¦ ÇØ°áÇϱâ À§Çؼ­ ¸¸µé¾îÁø µµ±¸°¡ °úÇÐÀÇ ¾ð¾î¶ó°í ÇÏ´Â ¼öÇÐÀÌ´Ù. ¼öÇÐÀº Àΰ£ÀÇ ¾ð¾î°¡ °¡Áö´Â ¹®Á¦Á¡µéÀ» ÇØ°áÇß´Ù. ¸í·áÇÏ°í °£°áÇϰí, ¼öÇÐÀ̶ó´Â ¾ð¾î¿¡ »ç¿ëµÇ´Â ±âÈ£¸¦ ¿ÏÀüÈ÷ ¾Ë°í¸¸ ÀÖ´Ù¸é, Àǹ̰¡ À߸ø Àü´ÞµÉ °¡´É ¼ºµµ ¾ø´Ù. ¹Ý¸é ¼öÇÐÀº Àΰ£ÀûÀÌÁö ¾Ê´Ù´Â Ä¿´Ù¶õ ¹®Á¦Á¡À» °¡Áø´Ù. ¼öÇÐÀº Àΰ£ÀûÀÎ »ç°í¹æ½Ä°ú´Â °Å¸®°¡ »ó´çÈ÷ ÀÖ´Ù. ÀÏ»ó»ýȰ¿¡¼­ ¼öÇÐÀÌ »ç¿ëµÇ´Â ºóµµ¸¦ »ý°¢Çغ¸¸é ÀÌÇØµÉ °ÍÀÌ´Ù. ½ÉÁö¾î´Â °úÇÐ³í¹® Á¶Â÷µµ ¼öÇаø½ÄÀº °íÀÛÇØ¾ß 10% ³»¿Ü¿¡¼­ »ç¿ëµÉ »ÓÀÌ´Ù.

ÀýÂ÷ÁöÇâÀû¾ð¾î´Â Áï Àΰ£ÀÇ Ç¥¸éÀûÀÎ ÀǽÄÀÇ È帧À» µû¶ó¼­ ÇÁ·Î±×·¥À» Á¦ÀÛÇÒ ¼ö ÀÖµµ·Ï Á¦À۵ǾîÁø ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ ÀǹÌÇÑ´Ù. C, C++, Java, Perl, Python, RubyµîÀÇ ¾ð¾îµîÀÌ ÀýÂ÷ÁöÇâÀû¾ð¾îÀ̰ųª ÀýÂ÷ÁöÇâÀûÀΠƯ¡À» °¡Áö°í ÀÖ´Ù. ÀýÂ÷ÁöÇâÀû ¾ð¾îÀÇ ÀåÁ¡Àº Àΰ£ÀÇ ¾ð¾î¿Í ±× È帧ÀÌ ºñ½ÁÇϴٴµ¥ ÀÖÀ» °ÍÀÌ´Ù. Àΰ£ÀǽÄÀÇ È帧°ú ºñ½ÁÇϱ⠶§¹®¿¡ ¾î»öÇÏÁö ¾Ê°í, ½±°Ô ¹è¿ï ¼ö ÀÖ´Ù´Â Á¡ ´ë°ÔÀÇ °æ¿ì ¹ü¿ëÀûÀ¸·Î »ç¿ëÇϱ⿡ ¹®Á¦°¡ ¾ø´Ù´Â Á¡ÀÌ´Ù. ´ÜÁ¡µµ ¿ª½Ã Àΰ£¾ð¾îÀÇ ±×°Í°ú ºñ½ÁÇÏ´Ù. ¸íÈ®ÇÏÁö ¾ÊÀ¸¸ç, À߸ø ÇØ¼®µÇ°í, À߸ø ÀÛ¼ºµÉ ¿©Áö°¡ ÀÖÀ¸¸ç, °á°ú¿¡ µû¶ó¼­ ȤÀº »õ·Î¿î È帧ÀÌ Ãß°¡µÊÀ¸·Î½á Á¶°Ç ÀÚü°¡ ¹Ù²î¾î ¹ö¸°´Ù°Å³ª ÇÏ´Â ºÎ¼öÈ¿°ú(side effect) °¡ ¹ß»ýÇÒ ¼ö ÀÖ´Ù´Â Á¡ÀÌ´Ù.

ÇÔ¼öÇü¾ð¾î´Â ÀýÂ÷ÁöÇâÀû¾ð¾î°¡ °¡Áö´Â ÀÌ·¯ÇÑ ¹®Á¦Á¡µéÀ» ÇØ°áÇϱâ À§Çؼ­ ¸¸µé¾îÁø ¾ð¾î´Ù. ÇÔ¼öÇü ÇÁ·Î±×·¡¹Ö ¾ð¾î´Â °è»êÀ» ¼öÇÐÀû ÇÔ¼öÀÇ Á¶ÇÕÀ¸·Î »ý°¢ÇÏ´Â ¹æ½ÄÀ» ¸»ÇÑ´Ù. ¼öÇаø½Ä¿¡¼­ ÇϳªÀÇ ±âÈ£°¡ ÇϳªÀÇ functionÀÌ µÇ´Â °ÍÀ¸·Î »ý°¢ÇÏ¸é µÉ °ÍÀÌ´Ù. ÇÔ¼öÇü¾ð¾î´Â ¼öÇÐÀÇ ÀåÁ¡À» °¡Áø´Ù. °£°áÇϸç, ¸í·áÇÏ°í ¼öÇà°á°ú¿¡ µû¶ó¼­ Á¶°ÇÀÌ ¹Ù²î´Â ½ÄÀÇ side effectµµ ¹ß»ýÇÏÁö ¾Ê´Â´Ù.

ÇÔ¼öÇü ¾ð¾î´Â ¶÷´Ù´ë¼ö¸¦ ÅëÇØ¼­ ÀÌ·ÐÀû ±â¹ÝÀÌ ¸¸µé¾îÁ³´Ù. À̸¦ ±â¹ÝÀ¸·Î ÇØ¼­ ÃÖÃÊ·Î ¸¸µé¾îÁø ÇÔ¼öÇü ÇÁ·Î±×·¡¹Ö ¾ð¾î°¡ IPLÀ̰í, ¿©±â¿¡¼­ ¹ßÀüµÇ¾î¼­ LispÀÌ ¸¸µé¾îÁ³´Ù.

3 ÇÔ¼öÇü ¾ð¾îÀÇ Á¦ÇÑ

»õ·Î¿î ÆÐ·¯´ÙÀÓÀÌ µîÀåÇÏ°í °Å±â¿¡ ÆÐ·¯´ÙÀÓÀÌ ²Ï ¾µ¸¸ÇÏ´Ù°í »ý°¢µÇ¸é, ±âÁ¸ÀÇ ÆÐ·¯´ÙÀÓÀº ¿ëµµÆó±âµÇ¾î¾ß ÇÑ´Ù°í ÁÖÀåÇÏ´Â °æ¿ì°¡ ÀÖ´Ù. ÀÌ´Â ¶§¶§·Î »õ·Î¿î ÆÐ·¯´ÙÀÓ¿¡ ´ëÇÑ °úµµÇÑ È¯È£¿Í ±âÁ¸ ÆÐ·¯´ÙÀÓ¿¡ ´ëÇÑ Çø¿À·Î±îÁö ¹ßÀüÇÏ´Â°É º¼ ¼ö ÀÖ´Ù. »õ·Î¿î ¾ð¾î, °³¹ßÅø, ¿î¿µÃ¼Á¦°¡ ¸¸µé¾îÁö¸é ¾î·ÆÁö ¾Ê°Ô º¼ ¼ö ÀÖ´Â Çö»óµéÀÌ´Ù.

ÇÏÁö¸¸ ±×·±ÀÏÀº ¹ß»ýÇÏÁö ¾Ê´Â´Ù.

±¸¼ú¹®È­°üÁ¡¿¡¼­ ¹®ÀÚ¹®È­´Â ÆÐ·¯´ÙÀÓÀÇ º¯È­¿´´Ù. ±×·¯³ª ±¸¼ú¹®È­°¡ »ç¶óÁ³´Â°¡ ? Áö±Ý¿¡ µé¾î¿Í¼­´Â Ä¿¹Â´ÏÄÉÀ̼ÇÀ¸·Î½áÀÇ ±¸¼ú¹®È­ÀÇ °¡Ä¡°¡ ´õ¿í ³ô¾ÆÁö°í ÀÖ´Ù. ±âÁ¸ÀÇ ÆÐ·¯´ÙÀÓÀÌ Æó±âµÇ´Â °æ¿ì´Â °ÅÀÇ ¾ø´Ù. ÀÖ´Ù°í ÇÏ´õ¶óµµ ¿À·£½Ã°£¿¡ °ÉÃļ­ ¼­¼­È÷ ÀÌ·ç¾îÁø´Ù. Çõ¸íÀº ±×¸®ÈçÇÑ »ç°ÇÀÌ ¾Æ´Ï´Ù.

±âÁ¸ÀÇ ÀýÂ÷ÁöÇâÀû¾ð¾î´Â Æó±âµÉ ÀÏÀº ¾øÀ» °ÍÀÌ´Ù. ²À °ü¼º ¶§¹®ÀÎ°Í ¸¸Àº ¾Æ´Ï´Ù. ¾î´À°Ô ´õ ³´´Ù°Å³ª ½ÇÆÐÇÑ ÆÐ·¯´ÙÀÓÀÌ ¾Æ´Ñ ´Ù¸¥ÆÐ·¯´ÙÀÓÀ̱⠶§¹®ÀÌ´Ù. ¼­·ÎÀÇ ¿ªÇÒÀÌ ÀÖ´Ù´Â Á¡ÀÌ´Ù. ³í¹®¿¡¼­ ¼öÇаú Àΰ£ÀÇ ¾ð¾î°¡ ÇÔ²² ¾²ÀÌ´Â °Íó·³ ¸»ÀÌ´Ù.

4 ÇÔ¼öÇü ¾ð¾î·Î½áÀÇ Erlang

ÇÔ¼öÇü ¾ð¾î´Â side effect - ºÎ¼öÈ¿°ú - ¸¦ °¡ÁöÁö ¾Ê´Â´Ù. À̰ÍÀº ÇÔ¼öÀÇ ½ÇÇàÀÌ ¿ÜºÎ¿¡ ¿µÇâÀ» ³¢Ä¡Áö ¾Ê´Â´Ù´Â ¾ê±â°¡ µÇµÈ´Ù. ¶§¹®¿¡ ÇÔ¼öÇü ¾ð¾î´Â thread safeÇϸç, º´·ÄÀûÀÎ °è»ê¿¡ ÀûÇÕÇÒ ¼ö ÀÖ´Ù.

5 °øºÎ¹æ¹ý

ÀÏ´Ü erlang tutorial ¹®¼­·Î ÀÔ¹®À» ÇѵÚ, °ü½ÉÀÖ´Â ºÎºÐµéÀ» ÀÚ¼¼È÷ º¸´Â ¹æ½ÄÀ¸·Î °øºÎ¸¦ ÇØº¼ »ý°¢ÀÌ´Ù. ÀÔ¹® ¹®¼­´Â getting_started-5.4.pdf ·Î ÇÒ °ÍÀÌ´Ù. ±×´ÙÀ½ tuple, concurrent ÇÁ·Î±×·¡¹Ö, Distributed ÇÁ·Î±×·¡¹Ö, Error handling,µîµîÀ» »ìÆìº¸¸é µÇÁö ½Í´Ù. °³³äÀÌ ÀâÈ÷¸é, À¥¼­¹ö³ª äÆÃ¼­¹ö, RSS¼öÁý±â µîÀ» Á¦ÀÛÇØº¸´Â °É·Î ¾î´ÀÁ¤µµ ¸¶¹«¸® µÇ¸®¶ó »ý°¢µÈ´Ù.

6 °ü·Ã¹®¼­

 
À̸§
Á¦¸ñ
º¯°æÀÏ
Å©±â
Getting Started With Erlang
2008/10/20 20:58
126
Erlang ¼³Ä¡Çϱâ
2008/09/24 01:22
1530


À̱ÛÀº joinc ºí·Î±×·Î ¹ßÇàµÇ¾ú½À´Ï´Ù. ´ñ±ÛÀº ºí·Î±×¿¡¼­ ÀÔ·ÂÇÒ ¼ö ÀÖ½À´Ï´Ù.

EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.