¡Ú ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ ¡Ú
ÁÖ ´ë»ó µ¶ÀÚÃþÀº ½ºÄ®¶ó·Î ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´Â ¹ýÀ» ¹è¿ì°í ½ÍÀº ÇÁ·Î±×·¡¸Ó´Ù. ´ÙÀ½ ÇÁ·ÎÁ§Æ®¸¦ ½ºÄ®¶ó·Î ÁøÇàÇÏ°í ½Í´Ù¸é ÀÌ Ã¥ÀÌ ¹Ù·Î ´ç½ÅÀ» À§ÇÑ °ÍÀÌ´Ù. ¶ÇÇÑ »õ·Î¿î °³³äÀ» ¹è¿ö¼ »ý°¢ÀÇ ÁöÆòÀ» ³ÐÈ÷°í ½ÍÀº ÇÁ·Î±×·¡¸Óµµ Àç¹ÌÀÖ°Ô ÀÐÀ» ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¿¹¸¦ µé¾î, ÀÚ¹Ù ÇÁ·Î±×·¡¸Ó´Â ÀÌ Ã¥À» ÀÐÀ½À¸·Î½á ´Ù¾çÇÑ ÇÔ¼öÇü ÇÁ·Î±×·¡¹Ö °³³äÀ» ÀÍÈ÷°í ´õ ¹ßÀüµÈ °´Ã¼ÁöÇâ ¾ÆÀ̵ð¾îµµ ¹è¿ï ¼ö ÀÖ´Ù. ½ºÄ®¶ó¿Í ±× ¾ÆÀ̵ð¾î¸¦ ¹è¿ì°í ³ª¸é ºÐ¸í ´õ ³ªÀº ÇÁ·Î±×·¡¸Ó°¡ µÅ ÀÖÀ¸¸®¶ó ¹Ï´Â´Ù.
µ¶ÀÚ ¿©·¯ºÐÀÌ ÀϹÝÀûÀÎ ÇÁ·Î±×·¡¹Ö Áö½ÄÀ» °®Ãè´Ù°í °¡Á¤ÇÑ´Ù. ½ºÄ®¶ó ÀÚü´Â ÇÁ·Î±×·¡¹ÖÀ» óÀ½ ¹è¿ï ¶§µµ ÀûÇÕÇÑ ¾ð¾îÀ̱ä ÇÏÁö¸¸, ÀÌ Ã¥ÀÌ ÇÁ·Î±×·¡¹ÖÀ» °¡¸£ÃÄÁÖÁö´Â ¾Ê´Â´Ù.
ÇÏÁö¸¸ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡ ´ëÇÑ ¼±Çà Áö½ÄÀÌ ÇÊ¿äÇÏÁö´Â ¾Ê´Ù. ´ëºÎºÐÀÇ ÇÁ·Î±×·¡¸Ó°¡ ½ºÄ®¶ó¸¦ ÀÚ¹Ù Ç÷§Æû¿¡¼ »ç¿ëÇϱâ´Â ÇÏÁö¸¸, µ¶ÀÚµéÀÌ ÀÚ¹Ù¿¡ ´ëÇØ ¾Ë°í ÀÖÀ¸¸®¶ó °¡Á¤ÇÏÁö´Â ¾Ê´Â´Ù. ±×·¯³ª ¸¹Àº µ¶ÀÚ°¡ ÀÚ¹Ù¿¡ Àͼ÷Çϸ®¶ó ¿¹»óÇϱ⠶§¹®¿¡ ¶§¶§·Î ÀÚ¹Ù¿Í ½ºÄ®¶ó¸¦ ºñ±³Çؼ ÀÚ¹Ù °³¹ß¿¡ Àͼ÷ÇÑ µ¶ÀÚµéÀÇ ÀÌÇØ¸¦ µµ¿ï °ÍÀÌ´Ù
¡Ú ÀÌ Ã¥ÀÇ ±¸¼º ¡Ú
1Àå, ¡®È®Àå °¡´ÉÇÑ ¾ð¾î¡¯ ½ºÄ®¶ó ¼³°è¿Í ±× ÀÌÀ¯¸¦ ¼³¸íÇϰí, ¹è°æ ¿ª»ç¸¦ ¼³¸íÇÑ´Ù.
2Àå, ¡®½ºÄ®¶ó ù°ÉÀ½¡¯ ±âÃÊ ÇÁ·Î±×·¡¹Ö °ú¾÷À» ½ºÄ®¶ó·Î ó¸®ÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁØ´Ù. °¢°¢ÀÌ ¿Ö ÀÛµ¿ÇÏ´ÂÁö¸¦ ÀÚ¼¼È÷ ¼³¸íÇÏÁö´Â ¾Ê´Â´Ù. 2ÀåÀÇ ¸ñÇ¥´Â µ¶ÀÚ ¿©·¯ºÐÀÌ ½ºÄ®¶ó Äڵ带 Á÷Á¢ ŸÀÌÇÎÇÏ°í ½ÇÇàÇØº¸°Ô ÇÏ´Â °ÍÀÌ´Ù.
3Àå, ¡®½ºÄ®¶ó µÎ ¹øÂ° °ÉÀ½¡¯ ½ºÄ®¶ó¿¡ ´õ »¡¸® ÀûÀÀÇÒ ¼ö ÀÖµµ·Ï ±âº» ÇÁ·Î±×·¡¹Ö °úÁ¦¸¦ Á» ´õ º¸¿©ÁØ´Ù. 3ÀåÀ» ¸¶Ä¡°í ³ª¸é °£´ÜÇÑ ½ºÅ©¸³Æ® ÀÛ¾÷¿¡ ½ºÄ®¶ó¸¦ Ȱ¿ëÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
4Àå, ¡®Å¬·¡½º¿Í °´Ã¼¡¯ ½ºÄ®¶óÀÇ ±âº» °´Ã¼ÁöÇâ ºôµù ºí·ÏÀ» ÀÚ¼¼È÷ ¼³¸íÇϰí, ½ºÄ®¶ó ¾ÖÇø®ÄÉÀ̼ÇÀ» ÄÄÆÄÀÏÇÏ°í ½ÇÇàÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁØ´Ù.
5Àå, ¡®±âº» ŸÀÔ°ú ¿¬»ê¡¯ ½ºÄ®¶óÀÇ ±âº» ŸÀÔ°ú ±× ¸®ÅÍ·²À» ¼³¸íÇÑ´Ù. ±×¸®°í °¢ ŸÀÔ¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â ¿¬»ê°ú ¿ì¼±¼øÀ§ ¹× °áÇÕ ¹ýÄ¢À» ¼³¸íÇÑ´Ù. ¸¶Áö¸·À¸·Î, dzºÎÇÑ ·¡ÆÛ(wrapper)¿¡ ´ëÇØ ¼³¸íÇÑ´Ù.
6Àå, ¡®ÇÔ¼öÇü °´Ã¼¡¯ ½ºÄ®¶óÀÇ °´Ã¼ÁöÇâÀû Ãø¸éÀ» ´õ ±íÀÌ ÆÄ°íµç´Ù. º¯°æ ºÒ°¡´ÉÇÑ ÇÔ¼öÇü À¯¸®¼ö(functional rational number)¸¦ ¿¹Á¦·Î »ç¿ëÇÑ´Ù.
7Àå, ¡®³»Àå Á¦¾î ±¸¹®¡¯ ½ºÄ®¶ó°¡ Á¦°øÇÏ´Â Á¦¾î ±¸Á¶ÀÎ if, while, for, try, match¸¦ ¾î¶»°Ô Ȱ¿ëÇÒ ¼ö ÀÖ´ÂÁö º¸¿©ÁØ´Ù.
8Àå, ¡®ÇÔ¼ö¿Í Ŭ·ÎÀú¡¯ ÇÔ¼ö ¾ð¾îÀÇ ±âº» ºôµù ºí·ÏÀÎ ÇÔ¼ö¿¡ ´ëÇØ ÀÚ¼¼È÷ ¼³¸íÇÑ´Ù.
9Àå, ¡®È帧 Á¦¾î Ãß»óÈ¡¯ ¾î¶»°Ô µ¶ÀÚ°¡ ½º½º·Î Á¦¾î Ãß»óȸ¦ ¸¸µé¾î¼ ½ºÄ®¶óÀÇ ±âº» Á¦¾î ±¸Á¶¸¦ º¸¿ÏÇÒ ¼ö ÀÖ´ÂÁö ¼³¸íÇÑ´Ù.
10Àå, ¡®»ó¼Ó°ú ±¸¼º¡¯ ½ºÄ®¶ó°¡ °´Ã¼ÁöÇâ ÇÁ·Î±×·¡¹ÖÀ» ¾î¶»°Ô Áö¿øÇÏ´ÂÁö ³íÀÇÇÑ´Ù. ´Ù·ç´Â ÁÖÁ¦´Â 4À常бâÃÊÀûÀÎ ºÎºÐÀº ¾Æ´ÏÁö¸¸, ½Ç¹«¿¡¼´Â ´õ ÀÚÁÖ ºÎµúÄ¡´Â ºÎºÐÀÌ´Ù.
11Àå, ¡®½ºÄ®¶óÀÇ °èÃþ±¸Á¶¡¯ ½ºÄ®¶óÀÇ »ó¼Ó °èÃþÀ» ¼³¸íÇϰí, ¸ðµç °èÃþ¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â ÀϹÝÀûÀÎ ¸Þ¼µå¿Í ¹Ù´Ú(ÃÖÇÏÃþ) ŸÀÔ¿¡ ´ëÇØ ¼³¸íÇÑ´Ù.
12Àå, ¡®Æ®·¹ÀÌÆ®¡¯ ½ºÄ®¶óÀÇ ¹Í½ºÀÎ(mixin) Á¶ÇÕÀÇ ¸ÞÄ¿´ÏÁòÀ» ´Ù·é´Ù. 12Àå¿¡¼´Â Æ®·¹ÀÌÆ®(trait)°¡ ¾î¶»°Ô ÀÛµ¿ÇÏ´ÂÁö¸¦ º¸¿©ÁÖ°í, ÀϹÝÀûÀÎ ¿ë·Ê¸¦ ¼³¸íÇÏ¸ç Æ®·¹ÀÌÆ®°¡ ÀüÅëÀûÀÎ ´ÙÁß »ó¼ÓÀ» ¾î¶»°Ô Çâ»ó½ÃŰ´ÂÁö º¸¿©ÁØ´Ù.
13Àå, ¡®ÆÐŰÁö¿Í ÀÓÆ÷Æ®¡¯ ´ë±Ô¸ð ÇÁ·Î±×·¡¹Ö¿¡¼ »ý±â´Â ¹®Á¦Á¡À» ³íÀÇÇÑ´Ù. ÃÖ»óÀ§ ÆÐŰÁö, ÀÓÆ÷Æ® ¸í·É, protected³ª private °°Àº Á¢±Ù Á¦¾î ¼ö½ÄÀÚ µî¿¡ ´ëÇØ ¼³¸íÇÑ´Ù.
14Àå, ¡®´Ü¾ð¹®°ú Å×½ºÆ®¡¯ ½ºÄ®¶óÀÇ ´Ü¾ð¹®(assert) ¸ÞÄ¿´ÏÁòÀ» ´Ù·ç°í, ½ºÄ®¶ó¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â ¿©·¯ Å×½ºÆ® µµ±¸¸¦ °£·«È÷ »ìÆìº»´Ù. ƯÈ÷, ½ºÄ®¶óÅ×½ºÆ®(ScalaTest)¿¡ ÃÊÁ¡À» ¸ÂÃç ¼³¸íÇÑ´Ù.
15Àå, ¡®ÄÉÀ̽º Ŭ·¡½º¿Í ÆÐÅÏ ¸ÅÄ¡¡¯ ĸ½¶ÈÇÏÁö ¾ÊÀº ÀϹÝÀûÀÎ µ¥ÀÌÅÍ ±¸Á¶¸¦ ÀÛ¼ºÇϵµ·Ï Áö¿øÇÏ´Â ±¸¼º¿ä¼Ò ½ÖÀ» ¼Ò°³ÇÑ´Ù. ƯÈ÷ ÄÉÀ̽º Ŭ·¡½º(case class)¿Í ÆÐÅÏ ¸ÅÄ¡(pattern match)´Â Æ®¸® ±¸Á¶ °°Àº Àç±ÍÀû µ¥ÀÌÅ͸¦ ¸¸µé ¶§ À¯¿ëÇÏ´Ù.
16Àå, ¡®¸®½ºÆ®¡¯ ½ºÄ®¶ó ÇÁ·Î±×·¥¿¡¼ °¡Àå ÀϹÝÀûÀ¸·Î »ç¿ëÇÏ´Â µ¥ÀÌÅÍ ±¸Á¶ÀÎ ¸®½ºÆ®¿¡ ´ëÇØ ÀÚ¼¼È÷ ¼³¸íÇÑ´Ù.
17Àå, ¡®Ä÷º¼Ç¡¯ ¸®½ºÆ®, ¹è¿, Æ©ÇÃ(tuple), ÁýÇÕ(set), ¸Ê(map) °°Àº ±âº» ½ºÄ®¶ó Ä÷º¼Ç »ç¿ë¹ýÀ» º¸¿©ÁØ´Ù.
18Àå, ¡®º¯°æ °¡´ÉÇÑ °´Ã¼¡¯ º¯°æ °¡´ÉÇÑ °´Ã¼¸¦ ¼³¸íÇϰí, ½ºÄ®¶ó¿¡¼ À̸¦ Ç¥ÇöÇÏ´Â ¹æ¹ýÀ» ¹è¿î´Ù. 18Àå µÞºÎºÐ¿¡¼´Â º¯°æ °¡´ÉÇÑ °´Ã¼¸¦ ½ÇÁ¦ Ȱ¿ëÇÏ´Â ÀÌ»ê À̺¥Æ® ½Ã¹Ä·¹À̼Ç(discrete event simulation)À» ´Ù·é´Ù.
19Àå, ¡®Å¸ÀÔ ÆÄ¶ó¹ÌÅÍÈ¡¯ 13Àå¿¡¼ ¼Ò°³ÇÑ Á¤º¸ Àº´Ð ±â¹ýÀÇ ÀϺθ¦ ±¸Ã¼ÀûÀÎ ¿¹¸¦ µé¾î ¼³¸íÇÑ´Ù. ¿¹Á¦´Â ¿ÏÀüÈ÷ ÇÔ¼öÇüÀΠť Ŭ·¡½º¸¦ ¸¸µå´Â °ÍÀÌ´Ù. 19Àå¿¡¼´Â ŸÀÔ ÆÄ¶ó¹ÌÅÍÀÇ º¯¼º(variance)¿¡ ´ëÇØ ¼³¸íÇϰí, º¯¼º°ú Á¤º¸ Àº´ÐÀÇ °ü°è¸¦ À̾߱âÇÑ´Ù.
20Àå, ¡®Ãß»ó ¸â¹ö¡¯ ½ºÄ®¶ó°¡ Áö¿øÇÏ´Â ¸ðµç Ãß»ó ¸â¹ö¸¦ ¼³¸íÇÑ´Ù. ¸Þ¼µå»Ó ¾Æ´Ï¶ó Çʵ峪 ŸÀÔµµ Ãß»ó ¸â¹ö·Î Á¤ÀÇÇÒ ¼ö ÀÖ´Ù.
21Àå, ¡®¾Ï½ÃÀû º¯È¯°ú ¾Ï½ÃÀû ÆÄ¶ó¹ÌÅÍ¡¯ ¼Ò½º Äڵ忡¼ ÇÁ·Î±×·¡¸Ó°¡ Áö°Ü¿öÇÒ ¼ö ÀÖ´Â ºÎºÐÀ» »ý·«Çصµ ÄÄÆÄÀÏ·¯°¡ ´ë½Å ÇÊ¿äÇÑ ³»¿ëÀ» ä¿ö ³Öµµ·Ï µ½´Â µÎ °¡Áö ¿ä¼Ò¸¦ ¾Ë·ÁÁØ´Ù.
22Àå, ¡®¸®½ºÆ® ±¸Çö¡¯ List Ŭ·¡½º ±¸ÇöÀ» ¼³¸íÇÑ´Ù. ½ºÄ®¶ó ¸®½ºÆ®°¡ ¾î¶»°Ô µ¿ÀÛÇÏ´ÂÁö ÀÌÇØÇÏ´Â ÀÏÀº Áß¿äÇÏ´Ù. ´õ ³ª¾Æ°¡, ÀÌ ±¸ÇöÀ» ÅëÇØ ½ºÄ®¶óÀÇ Æ¯Â¡ Áß ¸î °¡Áö¸¦ Ȱ¿ëÇÏ´Â ¹æ¹ýÀ» º¸¿©Áֱ⵵ ÇÑ´Ù.
23Àå, ¡®for Ç¥Çö½Ä ´Ù½Ã º¸±â¡¯ for Ç¥Çö½ÄÀ» ¾î¶»°Ô map, flatMap, filter, foreach µîÀ» È£ÃâÇÏ´Â ¸í·ÉÀ¸·Î ¹Ù²Ü ¼ö ÀÖ´ÂÁö º¸¿©ÁØ´Ù.
24Àå, ¡®Ä÷º¼Ç ÀÚ¼¼È÷ µé¿©´Ùº¸±â¡¯ ½ºÄ®¶ó Ä÷º¼Ç ¶óÀ̺귯¸®¸¦ ÀÚ¼¼È÷ ¼³¸íÇÑ´Ù.
25Àå, ¡®½ºÄ®¶ó Ä÷º¼ÇÀÇ ¾ÆÅ°ÅØÃ³¡¯ Ä÷º¼Ç ¶óÀ̺귯¸®¸¦ ¾î¶»°Ô ¸¸µé¾ú´ÂÁö º¸¿©ÁÖ°í, µ¶ÀÚ ¿©·¯ºÐÀÌ Ä÷º¼ÇÀ» Á÷Á¢ ±¸ÇöÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.
26Àå, ¡®ÀͽºÆ®·¢ÅÍ¡¯ ÄÉÀ̽º Ŭ·¡½º»Ó ¾Æ´Ï¶ó, ÀÓÀÇÀÇ Å¬·¡½º¿¡ ´ëÇØ ÆÐÅÏ ¸ÅÄ¡¸¦ ¾î¶»°Ô ÇÒ ¼ö ÀÖ´ÂÁö º¸¿©ÁØ´Ù.
27Àå, ¡®¾Ö³ëÅ×À̼ǡ¯ ¾Ö³ëÅ×À̼Ç(annotation)À» ÅëÇÑ ¾ð¾î È®ÀåÀ» »ç¿ëÇÏ´Â ¹æ¹ýÀ» ¾Ë·ÁÁØ´Ù. Ç¥ÁØ ¾Ö³ëÅ×À̼ǿ¡ ´ëÇØ ¼³¸íÇϰí, Á÷Á¢ ¾Ö³ëÅ×À̼ÇÀ» ¸¸µå´Â ¹æ¹ýµµ ¾Ë¾Æº»´Ù.
28Àå, ¡®XML ´Ù·ç±â¡¯ ½ºÄ®¶ó·Î XMLÀ» ó¸®ÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù. XMLÀ» »ý¼ºÇϰí, ÆÄ½ÌÇϰí, ÆÄ½ÌÇÑ XMLÀ» ó¸®ÇÒ ¼ö ÀÖ´Â ¿©·¯ ¼÷¾î¸¦ º¸¿©ÁØ´Ù.
29Àå, ¡®°´Ã¼¸¦ »ç¿ëÇÑ ¸ðµâÈ ÇÁ·Î±×·¡¹Ö¡¯ ½ºÄ®¶óÀÇ °´Ã¼¸¦ ¸ðµâ ½Ã½ºÅÛÀ¸·Î Ȱ¿ëÇÏ´Â ¹æ¹ýÀ» ¾Ë·ÁÁØ´Ù.
30Àå, ¡®°´Ã¼ÀÇ µ¿Àϼº¡¯ equals ¸Þ¼µå¸¦ ÀÛ¼ºÇÒ ¶§ °í·ÁÇØ¾ß ÇÒ »çÇ×À» ¼³¸íÇÑ´Ù. ÇÇÇØ¾ß ÇÒ ÇÔÁ¤ÀÌ ¸î °¡Áö ÀÖ´Ù.
31Àå, ¡®½ºÄ®¶ó¿Í ÀÚ¹ÙÀÇ °áÇÕ¡¯ ½ºÄ®¶ó¿Í ÀÚ¹Ù¸¦ ÇÑ ÇÁ·ÎÁ§Æ®¿¡¼ ÇÔ²² »ç¿ëÇÒ °æ¿ì »ý±â´Â ¹®Á¦¸¦ ³íÀÇÇϰí, ±× ÇØ°áÃ¥À» Á¦¾ÈÇÑ´Ù.
32Àå, ¡®Ç»Ã³¿Í µ¿½Ã¼º¡¯ ½ºÄ®¶óÀÇ Future »ç¿ë¹ýÀ» º¸¿©ÁØ´Ù. ÀÚ¹ÙÀÇ µ¿½Ã¼º ±âº» ¿ä¼Ò³ª ¶óÀ̺귯¸®¸¦ ½ºÄ®¶ó ÇÁ·Î±×·¥¿¡ Ȱ¿ëÇÒ ¼öµµ ÀÖÁö¸¸, ǻó¸¦ »ç¿ëÇϸé ÀüÅëÀûÀÎ ¡®½º·¹µå¿Í ¶ô¡¯À» »ç¿ëÇÑ Á¢±Ù ¹æ½ÄÀ» °¨¿°½Ã۰ï ÇÏ´Â ±³Âø »óÅÂ¿Í °æÇÕ Á¶°ÇÀ» ÇÇÇÏ´Â µ¥ µµ¿òÀÌ µÈ´Ù.
33Àå, ¡®ÄÞºñ³×ÀÌÅÍ ÆÄ½Ì¡¯ ½ºÄ®¶óÀÇ ÆÄ¼ ÄÞºñ³×ÀÌÅÍ(parser combinator) ¶óÀ̺귯¸®¸¦ »ç¿ëÇØ ÆÄ¼¸¦ ¸¸µå´Â ¹æ¹ýÀ» º¸¿©ÁØ´Ù.
34Àå, ¡®GUI ÇÁ·Î±×·¡¹Ö¡¯ ½ºÄ®¶ó ¶óÀ̺귯¸®·Î °£´ÜÇÑ ½ºÀ® GUI ÇÁ·Î±×·¡¹ÖÀ» ÇÏ´Â °úÁ¤À» º¸¿©ÁØ´Ù.
35Àå, ¡®SCells ½ºÇÁ·¹µå½ÃÆ®¡¯ Áö±Ý±îÁö ¹è¿î °ÍÀ» Çѵ¥ ¸ð¾Æ¼ ½ºÄ®¶ó·Î ¿ÏÀüÇÑ ½ºÇÁ·¹µå½ÃÆ® ¾ÖÇø®ÄÉÀ̼ÇÀ» ÀÛ¼ºÇÑ´Ù.
¡Ú ÃßõÀÇ ±Û ¡Ú
2004³â ÇÁ·Î±×·¡¹ÖÀ» ½ÃÀÛÇÏ¸é¼ ´ç½Ã Àß ¾Ë·ÁÁöÁö ¾Ê¾Ò´ø ¾ð¾îÀÎ ½ºÄ®¶ó¸¦ ¼±ÅÃÇßÀ» ¶§¸¸ ÇØµµ, ³»°¡ ¾î¶² ŽÇè°ú ¹ß°ßÀÇ Ç×ÇØ¸¦ ¶°³ª°í ÀÖ´ÂÁö¸¦ ¹Ìó ±ú´ÝÁö ¸øÇß´Ù.
óÀ½ ½ºÄ®¶ó¸¦ ½ÇÇèÇßÀ» ¶§´Â ±× Àü¿¡ »ç¿ëÇØº» ´Ù¸¥ ¾ð¾î¿Í °ÅÀÇ ºñ½ÁÇßÁö¸¸ ÀÌÈÄ ½ÃÇàÂø¿À, ½ÇÇèÀ» ÅëÇÑ ¹ß°ß, ¿ÀÇØ ÈÄÀÇ ±ú´ÞÀ½ µîÀÌ ÀÖ¾ú´Ù. ´ç½Ã¿¡´Â ½ºÄ®¶ó¸¦ ¹è¿ï ¸¸ÇÑ ¹®¼°¡ °ÅÀÇ ¾ø°í ÀÚ½À¼³ª ºí·Î±×, ³ª¸¦ °¡¸£ÃÄÁÙ ¸¸Å ½ºÄ®¶ó °æÇèÀÌ ¸¹Àº »ç¿ëÀÚµµ ¾ø¾ú´Ù. ´ç¿¬È÷ ¡ºProgramming in Scala¡» °°Àº Ã¥µµ ¾ø¾ú´Ù. ³î¶ö ¸¸Å »õ·Î¿î ±â´ÉÀ» Á¦°øÇÏ´Â ¾ð¾î¸¸ ÀÖ°í ´©±¸µµ ÀÌ·± ±â´ÉÀ» Á¦´ë·Î ¾²´Â ¹ýÀ» È®½ÇÈ÷ ¾ËÁö ¸øÇß´Ù. ±×·± »óȲÀº ÀÇ¿åÀÌ ³ÑÄ¡°Ô ÇÏ´Â µ¿½Ã¿¡ ´çȲ½º·´±âµµ Çß´Ù!
ÀÚ¹Ù °³¹ßÀÚ·Î Áö³»¸ç °æÇèÇÑ ³»¿ëÀ¸·Î ÇÁ·Î±×·¡¹Ö ¹æ½ÄÀº ¿¹»óÇÒ ¼ö ÀÖ¾úÁö¸¸, ¸ÅÀϸÅÀÏ ½ºÄ®¶ó·Î ÀÏ»óÀûÀÎ ÄÚµùÀ» ÁøÇàÇØº» °æÇèÀº ´Ù¸£°Ô ´À²¸Á³´Ù. Ãʹݿ¡ ½ºÄ®¶ó »ç¿ë¹ýÀ» ¹è¿ì´Â ¸ðÇèÀ» Çß´ø °Í°ú Áß°£ ±Ô¸ðÀÇ ÇÁ·ÎÁ§Æ®¸¦ ´Ù¸¥ »ç¶÷µé°ú ÁøÇàÇß´ø ÀÏÀÌ »ý°¢³´Ù. ¸®ÆÑÅ丵À» Çϱâ·Î °áÁ¤ÇÑ Àûµµ ÀÖ°í(°è¼ÓÇØ¼ »õ·Î¿î Ư¡°ú ÆÐÅÏÀ» ¹ß°ßÇÏ°í ¹è¿ò¿¡ µû¶ó ¸®ÆÑÅ丵À» ²Ï ÀÚÁÖ ÇØ¾ß Çß´Ù), ÄÄÆÄÀÏÀ» ¿©·¯ ¹ø ÇØ¾ß Çß´ø Àûµµ ÀÖ´Ù.
ÄÄÆÄÀÏ·¯´Â ¸Å¹ø ´Ù¾çÇÑ ¿À·ù¸¦ ¼Ò½º ÄÚµå ÁÙ ¹øÈ£¿Í ÇÔ²² ¹ñ¾î³Â´Ù. ±×·² ¶§¸¶´Ù ÇØ´ç Äڵ带 »ìÆìº¸°í, ¾î¶² ºÎºÐÀÌ À߸øµÆ´ÂÁö ¾Ë¾Æ³½ ´ÙÀ½, ¿À·ù¸¦ °íÄ¡±â À§ÇØ Äڵ带 ¼öÁ¤Çß´Ù(¹°·Ð Äڵ带 ¼öÁ¤ÇÏ¸é¼ ¿À·ù°¡ ´Ù¸¥ À§Ä¡·Î ¿Å°Ü°£ °æ¿ìµµ ÀÚÁÖ ÀÖ´Ù). ÇÏÁö¸¸ ÀÌ·± ´Ü°è¸¶´Ù ÄÄÆÄÀÏ·¯°¡ Á¤È®È÷ ¹®Á¦ÀÇ ±Ù¿øÀ¸·Î ³ª¸¦ À̲ø¾îÁá´Ù. ¶§·Î´Â ÇÑ ¹øµµ ÄÄÆÄÀÏ¿¡ ¼º°øÇÏÁö ¸øÇÏ°í ¸çÄ¥ µ¿¾È ÄÚµå ¼öÁ¤À» ¹Ýº¹ÇÑ Àûµµ ÀÖ´Ù. ÇÏÁö¸¸ ÄÄÆÄÀÏ ¿À·ù ¼ýÀÚ¸¦ ¸î¹é °³¿¡¼ ½Ê¿© °³·Î ÁÙÀ̰í, ´Ù½Ã ÀÌ·± ¿À·ù¸¦ Çϳª·Î ÁÙÀ̰í, °á±¹¿¡´Â ¿À·ù¸¦ ¾ø¾Ö¸é¼(Áï, ÄÄÆÄÀÏ¿¡ ¼º°øÇß´Ù´Â ¸»ÀÌ´Ù) ¾ÆÁÖ ¸¹ÀÌ ¸®ÆÑÅ丵À» °ÅÄ£ ¼ÒÇÁÆ®¿þ¾î¸¦ óÀ½ ½ÇÇàÇÒ ¼ö ÀÖ¾ú´Ù.
±×¸®°í ³» ¿¹»ó°ú ´Ù¸£°Ô ÄÄÆÄÀÏÀÌ µÈ ÄÚµå´Â óÀ½ºÎÅÍ Àß ½ÇÇàµÆ´Ù. ÀÚ¹Ù, ÆÞ, ÆÄ½ºÄ®, º£ÀÌÁ÷, PHP, ÀÚ¹Ù½ºÅ©¸³Æ®¸¸ °æÇèÇØºÃ´ø ÀþÀº ÇÁ·Î±×·¡¸Ó¿´´ø ³ª¿¡°Ô, ÀÌ·± °æÇèÀÌ ¾ó¸¶³ª ÀλóÀûÀ̾ú´ÂÁö ¸»·Î´Â Á¦´ë·Î Ç¥ÇöÇÒ ¼ö°¡ ¾ø´Ù.
2015³â ³»°¡ Á¶Á÷Çß´ø ½ºÄ®¶ó ¿ùµå(Scala World) ÄÜÆÛ·±½º Ű³ëÆ®¿¡¼ ·ç³ª ºñ¾ß³ª½¼(R?nar Bjarnason)Àº ¡°Á¦¾àÀº ÀÚÀ¯¸¦ ÁÖ°í ÀÚÀ¯´Â Á¦¾àÀ» °¡ÇÑ´Ù.¡±¶ó°í ÁÖÀåÇß´Ù. ÀÌ ¸»ÀÌ »ç½ÇÀÓÀº ½ºÄ®¶ó·Î ÄÄÆÄÀÏÇÒ ¶§ °¡Àå ±Ø¸íÇÏ°Ô µå·¯³´Ù. scalac°¡ ¿©·¯ °¡Áö Á¦¾à»çÇ×À» °Á¦·Î ºÎ¿©ÇÏ´Â ÁÖ¸ñÀûÀº ½ÇÇà ½ÃÁ¡¿¡ ¹ß»ýÇÒ °ÍÀ¸·Î ¿¹»óµÇ´Â ¿À·ù(¿©·¯ ¿À·ù Áß ÀÌ·± ¿À·ù°¡ ÃÖ¾ÇÀÌ´Ù)¸¦ ÇÁ·Î±×·¡¸Ó°¡ ÀúÁö¸£Áö ¸øÇÏ°Ô ÇÏ´Â °ÍÀ̰í, ÀÌ´Â ¸ðµç ÇÁ·Î±×·¡¸Ó¸¦ ÀÚÀ¯·Ó°Ô ÇØÁØ´Ù. ÀÌ·Î ÀÎÇØ Á¾ÇÕÀûÀÎ Å×½ºÆ® ½ºÀ§Æ®°¡ ¾ø¾îµµ ÇÁ·Î±×·¡¸Ó°¡ ÀڽۨÀ» °¡Áö°í ½ÇÇèÇϰí, ŽÇèÇϰí, ¼ÒÇÁÆ®¿þ¾î¸¦ ¸¶À½´ë·Î ¹Ù²Ü ¼ö ÀÖ´Ù.
±×·ÎºÎÅÍ ¸î ³âÀÌ Áö³µ°í, ³ª´Â ¿À´Ã³¯±îÁö °è¼Ó ½ºÄ®¶ó¸¦ ¹è¿ì¸é¼ »õ·Î¿î °¡´É¼º, ¹Ì¹¦ÇÑ ÀÇ¹Ì Â÷ÀÌ, ¿©·¯ ±â´É °£ÀÇ Èï¹Ì·Î¿î »óÈ£ÀÛ¿ë µîÀ» ¹ß°ßÇϰí ÀÖ´Ù. ÀÌ·¸°Ô ¿©·¯ ÇØ µ¿¾È »ç¿ëÀÚ°¡ ¿ÁßÇÒ ¼ö ÀÖÀ» Á¤µµÀÇ ±íÀ̸¦ Á¦°øÇÏ´Â ´Ù¸¥ ÇÁ·Î±×·¡¹Ö ¾ð¾î°¡ ÀÖ´ÂÁö ¸ð¸£°Ú´Ù.
½ºÄ®¶ó´Â ¾öû³ º¯ÈÀÇ ½Ã±â¸¦ °ÞÀ¸·Á ÇÑ´Ù. ´ÙÀ½¿¡ ³ª¿Ã ÁÖ ¹öÀüÀÎ ½ºÄ®¶ó 3Àº 15³â Àü ³»°¡ ÀÚ¹Ù¿¡¼ ½ºÄ®¶ó 2·Î ¿Å°Ü¿ÔÀ» ¶§¸¸Å Å« º¯È¸¦ Æ÷ÇÔÇÒ °ÍÀÌ´Ù. ½ºÄ®¶ó¸¦ »ç¿ëÇÏ´Â ¸ÅÀϸÅÀÏÀÇ ÇÁ·Î±×·¡¹Ö °æÇèÀº °ÅÀÇ ±×´ë·Î À¯ÁöµÇ°ÚÁö¸¸, ½ºÄ®¶ó ¾ð¾îÀÇ °ÅÀÇ Àü ¿µ¿ªÀ» °üÅëÇÏ´Â »õ·Î¿î Ư¼º ·¹ÆÛÅ丮°¡ ½ºÄ®¶ó 3¿¡ µé¾î¿Â´Ù. ÀÌ ±ÛÀ» ¾²°í ÀÖ´Â Áö±Ý, ½ºÄ®¶ó 3ÀÌ Æø³Ð°Ô µµÀԵǷÁ¸é ¸î ³âÀÌ ´õ °É¸®°í, ¿©ÀüÈ÷ ´çºÐ°£Àº ½ºÄ®¶ó 2°¡ »ç½Ç»ó Ç¥ÁØ ¿ªÇÒÀ» ÇÒ °ÍÀÌ´Ù.
ÀÌ Ã¥Àº ½ºÄ®¶ó 2 ÃֽЏ±¸®½ºÀÎ ½ºÄ®¶ó 2.13À» Æø³Ð°Ô ´Ù·é´Ù. ¶ÇÇÑ ½ºÄ®¶ó 2.8¿¡¼ µµÀÔÇß´ø ´ë±Ô¸ð Àç¼³°è ÀÌÈÄ ¾Ë°Ô µÈ ³»¿ëÀ» Æ÷ÇÔ½ÃŰ¸é¼ ±¸Á¶¸¦ ´õ ´Ü¼øÈÇϱâ À§ÇØ Àç¼³°èÇØ¼ Ç¥ÁØ ¶óÀ̺귯¸®¿¡ µµÀÔµÈ Ä÷º¼Ç ¶óÀ̺귯¸®¸¦ ¼Ò°³ÇÑ´Ù. »õ Ä÷º¼Ç ¶óÀ̺귯¸®´Â ½ºÄ®¶ó 2³ª 3¿¡¼ ¸ðµÎ ÄÄÆÄÀ쵃 ¼ö ÀÖ´Ù. µû¶ó¼ ´ÙÀ½ 10³â°£ »ç¿ëÇÒ ÄÚµåÀÇ ±â¹ÝÀ» ÀÌ Ä÷º¼Ç ¶óÀ̺귯¸®°¡ Á¦°øÇÏ°Ô µÈ´Ù. µû¶ó¼ »õ·Î¿î ½ºÄ®¶óÀÇ µîÀå¿¡ ÈïºÐÇϱ⿡ ¾Õ¼, ÀÌ Ã¥À» Áý¾î µé°í °øºÎ¸¦ ½ÃÀÛÇϱ⿡ ¾ÆÁÖ ÁÁÀº ¶§´Ù!
Á¸ ÇÁ·¹Æ¼(Jon Pretty)
Æú¶õµå Å©¶óÄíÇÁ, 2019³â 9¿ù 12ÀÏ
´Ý±â