|
|
|
ÄÚƲ¸° ÇÔ¼öÇü ÇÁ·Î±×·¡¹Ö : ÄÚƲ¸°À¸·Î Á¦´ë·Î ÇÔ¼öÇü ÇÁ·Î±×·¡¹Ö ÀÍÈ÷±â
|
|
|
¿¡ÀÌÄÜ ÇÁ·Î±×·¡¹Ö ¾ð¾î ½Ã¸®Áî1
¤Ó Paul Chiusano, ¼Çü±¹
¤Ó
¿¡ÀÌÄÜÃâÆÇ
¤Ó
Functional Programming in Kotlin
|
|
|
|
- Á¦ÈÞ¸ô ÁÖ¹® ½Ã °í°´º¸»ó, ÀϺΠÀ̺¥Æ® Âü¿© ¹× ÁõÁ¤Ç° ÁõÁ¤, ÇÏ·ç/´çÀÏ ¹è¼Û¿¡¼ Á¦¿ÜµÇ¹Ç·Î Âü°í ¹Ù¶ø´Ï´Ù.
-
-
-
ÇÔ¼öÇü ÇÁ·Î±×·¡¹ÖÀ» µé¾îº» °³¹ßÀÚ´Â ¸¹Áö¸¸ Á¦´ë·Î µÈ ÇÔ¼öÇü ÇÁ·Î±×·¡¹ÖÀ» ¹è¿ì±â À§ÇØ ÇϽºÄÌÀ̳ª ½ºÄ®¶ó±îÁö ¹è¿ï ¿©À¯°¡ ¾ø´Â µ¶ÀÚµµ ¸¹À» °ÍÀÌ´Ù. ÀÌ Ã¥Àº Á¤¼®ÀûÀÎ ÇÔ¼öÇü ÇÁ·Î±×·¡¹Ö Ã¥ÀÌÁö¸¸ ÄÚƲ¸°À» »ç¿ëÇϱ⠶§¹®¿¡ ´õ ½±°Ô ÇÔ¼öÇü ÇÁ·Î±×·¡¹Ö¿¡ Á¢±ÙÇÏ°í ½ÍÀº µ¶Àڵ鿡°Ô µµ¿òÀÌ µÈ´Ù. ÇÔ¼öÇü ÇÁ·Î±×·¡¹ÖÀ» ÀÚ½ÅÀÇ °³¹ß¿¡ Àû¿ëÇÏ°í ½ÍÀº °³¹ßÀÚ³ª, ÇÔ¼öÇü Æз¯´ÙÀÓÀ» ÀÍÇô¼ »õ·Î¿î »ç°í ¹æ½ÄÀ» ÀÍÈ÷°í Á÷°£Á¢ÀûÀ¸·Î ±× Áö½ÄÀ» È°¿ëÇÏ°í ½ÍÀº °³¹ßÀÚµéÀÌ ¿¬½À¹®Á¦¸¦ Ç®¾î°¡¸é¼ Á¡Â÷ ÇÔ¼öÇü ÇÁ·Î±×·¡¹Ö Áö½ÄÀ» ½×¾Æ ³ª°¥ ¼ö ÀÖ°Ô ÇØÁØ´Ù.
-
-
¢Â ÀÌ Ã¥¿¡¼ ´Ù·ç´Â ³»¿ë ¢Â
¡ß ½ÇÁ¦ »óȲ¿¡¼ È°¿ëÇÒ ¼ö ÀÖ´Â ÇÔ¼öÇü ÇÁ·Î±×·¡¹Ö ±â¹ý
¡ß ÇÔ¼öÇü ¼³°è¸¦ ÇÒ ¶§ À¯¿ëÇÑ °øÅë ±¸Á¶¿Í ¼÷¾îµé
¡ß ´Ü¼ø¼º, ¸ðµâ¼º, ¹ö±× °¨¼Ò!
¢Â ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ ¢Â
ÄÚƲ¸° ¾ð¾î ÀÚü¿Í ÄÚƲ¸° ¾ð¾îÀÇ ±â´ÉÀ» ÀÌ¹Ì ÃæºÐÈ÷ ÀÌÇØÇÑ »ç¶÷À» ´ë»óÀ¸·Î ÇÑ´Ù. ¶ÇÇÑ °´Ã¼ÁöÇâ ¼³°è¿¡ Àͼ÷ÇÏ°í Ŭ·¡½º, ÀÎÅÍÆäÀ̽º, ¸Þ¼µå, º¯¼ö¸¦ Àß ¾Ë¾Æ¾ß ÇÏÁö¸¸, ÇÔ¼öÇü ÇÁ·Î±×·¡¹Ö¿¡ ´ëÇÑ ¼±¼ö Áö½ÄÀ̳ª °æÇèÀº ÇÊ¿äÇÏÁö ¾Ê´Ù.
ÀÏÂ÷ÀûÀ¸·Î´Â Çй®ÀûÀΠåÀÌÁö¸¸ ÇÑÆíÀ¸·Î´Â ¸Å¿ì ½Ç¹«ÀûÀΠåÀ̱⵵ ÇÏ´Ù. Àü¹Ý¿¡ °ÉÃÄ ¿©·¯ ÄÚµå ¿¹Á¦¸¦ »ìÆ캸°í, ¹è¿ì´Â °úÁ¤À» °ÈÇØÁÖ´Â ¿¬½À¹®Á¦¸¦ ´Ù¼ö Á¦°øÇÑ´Ù. ±×·¯¹Ç·Î ÀÎÅÚ¸®Á¦ÀÌ(IntelliJ) IDEA³ª ÄÚƲ¸°À» ¿ÏÀüÈ÷ Áö¿øÇÏ´Â ºñ½ÁÇÑ ´Ù¸¥ IDE¸¦ Àß ÀÌÇØÇÏ°í ÀÖ¾î¾ß ÇÑ´Ù. IDE ´ë½Å ÅؽºÆ® ÆíÁý±â³ª Å͹̳ÎÀ» »ç¿ëÇÏ´Â °Ô ´õ Àͼ÷ÇÏ´Ù¸é ±× ¶ÇÇÑ »ó°ü¾ø´Ù.
¢Â ÀÌ Ã¥ÀÇ ±¸¼º ¢Â
4°³ ºÎ, ÃÑ 15°³ ÀåÀ¸·Î ÀÌ·ïÁ® ÀÖ´Ù. 1ºÎ¿¡¼´Â ÇÔ¼öÇü ÇÁ·Î±×·¡¹ÖÀ» ¼Ò°³ÇÏ°í ÀÌ Ã¥ Àü¹Ý¿¡ °ÉÃÄ »ç¿ëÇÒ ±âº»ÀûÀÎ ºôµù ºí·ÏÀ» Á¦°øÇÑ´Ù.
1ÀåÀº ÇÔ¼öÇü ÇÁ·Î±×·¡¹ÖÀÇ Àǹ̸¦ ¼³¸íÇÏ°í ÇÔ¼öÇü ÇÁ·Î±×·¡¹ÖÀÇ ÀÌÁ¡¿¡ ´ëÇØ °¨À» Àâµµ·Ï ÇØÁØ´Ù.
2ÀåÀº Àç±Í·Î ÇÔ¼öÇü ·çÇÁ¸¦ ÀÛ¼ºÇÏ´Â ¹æ¹ýÀ̳ª ²¿¸® È£Ãâ Á¦°Å(tail-call elimination), °íÂ÷ ÇÔ¼ö(high-order function), ÇÔ¼öÇü ´ÙÇü¼º(polymorphism) °°Àº ±âº»±â¸¦ ¾Ë·ÁÁØ´Ù.
3ÀåÀº ¸®½ºÆ®(list)¿Í Æ®¸®(tree)¶ó´Â µÎ °¡Áö Ä÷º¼ÇÀ» ¼ø¼ö ÇÔ¼öÇüÀ¸·Î Á¤ÀÇÇÏ°í ´Ù·ç´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.
4ÀåÀº ¿¹¿Ü¸¦ ´øÁöÁö ¾Ê°í È¿°úÀûÀ¸·Î ¿À·ù¸¦ ó¸®ÇÏ´Â ¹æ¹ýÀ» ±íÀÌ »ìÆ캻´Ù.
5ÀåÀº È¿À²ÀûÀÎ Æò°¡¸¦ À§ÇÑ ºñ¾ö°Ý¼º(non-strictness(Áö¿¬¼ºlazinessÀ̶ó°íµµ ÇÑ´Ù))¿¡ ´ëÇØ ³íÀÇÇÏ°í, ½ºÆ®¸² µ¥ÀÌÅÍ Å¸ÀÔµµ ¼Ò°³ÇÑ´Ù.
6ÀåÀº ÀüÀÌ(transition)¶ó°íµµ ÇÏ´Â »óÅ º¯ÀÌ µ¿ÀÛ(state mutation action)À» ÇÔ¼öÇü ÇÁ·Î±×·¥¿¡¼ ´Ù·ç´Â ¹æ¹ýÀ» ¾Ë·ÁÁÖ¸é¼ 1ºÎ¸¦ ¸¶¹«¸®ÇÑ´Ù.
2ºÎ´Â ¸î °¡Áö ÄÞºñ³×ÀÌÅÍ(combinator) ¶óÀ̺귯¸®¸¦ ¼³°èÇÏ´Â °úÁ¤À» ¾ÆÁÖ ´À½¼ÇÏ°Ô ¼³¸íÇÏ´Â ½ºÅ¸ÀÏ·Î µÅ ÀÖ´Ù´Â Á¡¿¡¼ 1ºÎ¿Í ²Ï ´Ù¸£´Ù.
7ÀåÀº ºñµ¿±â º´·Ä ó¸®(asynchronous parallel processing)¸¦ À§ÇÑ ÇÔ¼öÇü ¶óÀ̺귯¸®¸¦ ¼³°èÇÏ°í ±¸ÃàÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁØ´Ù.
8ÀåÀº ³¼öÈÇÑ Å×½ºÆ®¸¦ À§ÇÑ ¼Ó¼º ±â¹Ý Å×½ºÆ®(property-based test) ¶óÀ̺귯¸®¸¦ ¼³°èÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁØ´Ù.
9ÀåÀº ÆĽÌ(parsing) ¿µ¿ªÀ¸·Î µé¾î°¡¼ JSON Æļ ÄÞºñ³×ÀÌÅÍ ¶óÀ̺귯¸®ÀÇ ¿ì¾ÆÇÑ ¼³°è¸¦ µµÃâÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁØ´Ù.
3ºÎ¿¡¼´Â ŸÀÔ ÁöÁ¤ ÇÔ¼öÇü ÇÁ·Î±×·¡¹Ö¿¡ ¼ÓÇÑ ´õ °í±Þ ÁÖÁ¦ÀΠŸÀÔ Å¬·¡½º(type class)¸¦ »ìÆ캻´Ù. ½ÇÁ¦ »óȲ¿¡¼ »ç¿ëÇÏ´Â ¸î °¡Áö ¼³°è ÆÐÅÏ Ãß»óȸ¦ ´Ù·ç°í ¿©·¯ºÐÀÌ ÀÌ·± Ãß»óȸ¦ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï Áغñ½ÃŲ´Ù.
10ÀåÀº ¿©·¯ °ªÀ» Á¶ÇÕÇÒ ¶§ ¾µ ¼ö ÀÖ´Â Ãß»óÈÀÎ ¸ð³ëÀ̵å(monoid)¸¦ ´Ù·é´Ù.
11ÀåÀº ¾Ç¸í ³ôÀº ¸ð³ªµå(monad)¸¦ »ô»ôÀÌ ´Ù·ç°í ¿¹Á¦¸¦ »ç¿ëÇØ ¸íÈ®È÷ ¼³¸íÇÑ´Ù.
12ÀåÀº Àû¿ë °¡´É ÆãÅÍ(applicative functor)¿Í ¼øȸ °¡´É ÆãÅÍ(traversable functor)¸¦ ¼³¸íÇÏ¸é¼ Àû¿ë °¡´É(applicative)ÀÇ ¿ä°ÇÀÌ ¹«¾ùÀÎÁö ¼Ò°³ÇÏ°í ¸ð³ªµå¿Í Àû¿ë °¡´ÉÀÇ Â÷À̸¦ º¸¿©ÁØ´Ù.
¸¶Áö¸· 4ºÎ¿¡¼´Â ¾Õ¼ ¹è¿î ³»¿ëÀ» ¹ÙÅÁÀ¸·Î ¼ø¼ö ÇÔ¼öÇü Äڵ忡¼ ºÎ¼ö È¿°ú¸¦ ´Ù·é´Ù.
13ÀåÀº ÀÓº£µðµåµÈ ¸í·ÉÇü DSLÀ» »ç¿ëÇØ È¿°ú°¡ ÀÖ´Â ÄÚµåÀÇ Ç¥ÇöÀ» ´Ü¼øÈÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁÖ±â À§ÇØ I/O ¸ð³ªµå(ÇÁ¸® ¸ð³ªµå)¸¦ ¼Ò°³ÇÑ´Ù.
14ÀåÀº ƯÁ¤ ºÎ¼ö È¿°ú¿Í º¯À̸¦ ¼ø¼ö ÇÔ¼ö ÇÁ·Î±×·¥ ¾È¿¡ Áö¿ªÈÇÏ´Â(¹ÛÀ¸·Î ³ëÃâ½Ãų ¼ö ¾ø°Ô ¸·À¸¸é¼ ³»Æ÷½ÃÅ°´Â) ¹æ¹ýÀ» ¾Ë·ÁÁØ´Ù.
15ÀåÀº Áö±Ý²¯ ¹è¿î ¸ðµç ³»¿ëÀ» Áý´ë¼ºÇØ, I/O ...½ºÆ®¸²À» Á¡ÁøÀûÀ¸·Î ó¸®ÇÒ ¼ö ÀÖ´Â ¸ðµâÈ °¡´ÉÇϸç ÇÕ¼º °¡´ÉÇÑ ÇÁ·Î±×·¥À» À§ÇÑ ½ºÆ®¸² API¸¦ °³¹ßÇÑ´Ù.
¢Â ÁöÀºÀÌÀÇ ¸» ¢Â
ÁÁÀº ¼ÒÇÁÆ®¿þ¾î¸¦ ÀÛ¼ºÇÏ´Â °ÍÀº °áÄÚ ½±Áö ¾ÊÀº ÀÏÀÌ´Ù. ¿ì¸®´Â ±â°è°¡ ½ÇÇàÇÒ ¼ö ÀÖ´Â ½±°í È¿À²ÀûÀ¸·Î µ¹¾Æ°¡¾ß¸¸ ÇÏ´Â ¸í·ÉÀ» Á¦°øÇÏ°íÀÚ Äڵ带 ÀÛ¼ºÇÑ´Ù. ¿©±â¼ ´õ Áß¿äÇÑ »ç½ÇÀº Äڵ忡´Â ´Ù¸¥ ±Ùº»ÀûÀÎ ¸ñÀûÀÌ ÀÖ´Ù´Â Á¡ÀÌ´Ù. Áï, ÄÚµå´Â ÇöÀç¿Í ¹Ì·¡¿¡ ¿ì¸® ÄÚµå¿Í »óÈ£ÀÛ¿ëÇÒ »ç¶÷µé°ú ¸íÈ®È÷ ÀÇ»ç¼ÒÅëÇϱâ À§ÇÑ ¼ö´ÜÀ̶ó°í ÇÒ ¼ö ÀÖ´Ù. µû¶ó¼ ÄÚµå´Â ±â°è¿¡ ¸í·ÉÀ» ³»¸®´Â µµ±¸¶ó´Â ¿ªÇÒÀ» ÃÊ¿ùÇØ, ¿©·¯ »ç¶÷ÀÌ Çù·ÂÇØ ±â°è¿¡ ¸í·ÉÀ» ³»¸®±â À§ÇÑ µµ±¸°¡ µÇ°í ÀÖ´Ù.
³ª´Â »ó´ëÀûÀ¸·Î ¾î¸± ¶§ºÎÅÍ ÄÚµùÀ» ÇØ¿Ô´Ù. ZX ½ºÆåÆ®·³(ZX Spectrum)¿¡¼ º£ÀÌÁ÷(BASIC) Äڵ带 ÀÛ¼ºÀ» ½ÃÀÛÀ¸·Î, ÀÌÈÄ Äڸ𵵾î 64(Commodore 64)¿¡¼ ±â°è¾î Äڵ带 ÀÛ¼ºÇß´Ù. ¿À·§µ¿¾È ÀÌ·±Àú·± ÄÄÇ»ÅÍ¿Í ¾ð¾î¸¦ ÀüÀüÇÑ ³¡¿¡ °á±¹ ¿Á¤ÀûÀÎ ÀÚ¹Ù °³¹ßÀÚ°¡ µÆ´Ù. ±× ½ÃÁ¡±îÁö ³»°¡ ¹è¿ö¿Ô´ø ÇÁ·Î±×·¡¹Ö Áö½ÄÀº ¸ðµÎ ÇÁ·Î½ÃÀú ±â¹ÝÀ̾úÀ¸¸ç, ÄÄÇ»ÅÍ¿¡°Ô ÇÒ ÀÏÀ» Áö½ÃÇÏ´Â ¸í·É¾î ´Ü°è¸¦ ³ª¿ÇÑ °ÍÀ̾ú´Ù. 2000³â´ë ÃÊ ÀÚ¹Ù°¡ Á¦½ÃÇÑ °´Ã¼ÁöÇâ °³³äÀº ³ª¸¦ ¾ÆÁÖ ³î¶ó°Ô Çß´Ù. ÀÌÁ¦ ÄÄÇ»ÅÍ ¸Þ¸ð¸®»ó¿¡¼ °´Ã¼¸¦ ÅëÇØ ½ÇÁ¦ ¼¼°èÀÇ °³³äÀ» ¸ðµ¨¸µÇÒ ¼ö ÀÖ°Ô µÆ±â ¶§¹®ÀÌ´Ù! ¶ÇÇÑ ÀÚ¹Ù¸¦ ÅëÇØ ÄÄÆÄÀÏ ½ÃÁ¡¿¡ ƯÁ¤ ±ÔÄ¢À» °Á¦ÇÔÀ¸·Î½á ½ÇÇà ½ÃÁ¡ÀÇ ¹®Á¦¸¦ ÁÙ¿©ÁÖ´Â Á¤Àû ŸÀÔ ½Ã½ºÅÛÀÇ °¡Ä¡µµ ¹è¿ü´Ù.
½Ã°£ÀÌ Áö³ª¸é¼ ¼ÒÇÁÆ®¿þ¾î¿¡ ´ëÇØ »ý°¢ÇÏ´Â ´Ù¸¥ ¹æ½ÄÀ» ¹ß°ßÇß´Ù. ÀÌ·± ±ú´ÞÀ½Àº ´Ù¸¥ Á¤Àû ŸÀÔ ¾ð¾îÀÎ ½ºÄ®¶ó·Î ÇÁ·Î±×·¡¹ÖÀ» ½ÃÀÛÇÏ¸é¼ ³» ¾È¿¡ ÀÚ¸® Àâ±â ½ÃÀÛÇß´Ù. ÇÔ¼öÇü ÇÁ·Î±×·¡¹ÖÀº ¿ÏÀüÈ÷ »õ·Î¿î Æз¯´ÙÀÓÀ¸·Î, ³» ¸¶À½Àº Ŭ·¡½º¿Í °´Ã¼¿¡ ´ëÇØ »ý°¢ÇÏ´Â °Í¿¡¼ ¹þ¾î³ª Ŭ·¡½º³ª °´Ã¼ ¾È¿¡ ÀÖ´Â ÇÔ¼ö¿Í ¸Þ¼µå¸¦ °Á¶ÇÏ´Â °ÍÀ¸·Î À̵¿Çß´Ù. ¿î ÁÁ°Ôµµ ½ºÄ®¶ó¸¦ ¹è¿ï ¶§´Â ³»°Ô ¸î °¡Áö ȯ»óÀûÀÎ ÀÚ·á°¡ ÀÖ¾ú´Ù. ù ¹ø°´Â ÄÚ¼¼¶ó(Coursera)¿¡ ÀÖ´Â ¸¶Æ¾ ¿À´õ½ºÅ°(Martin Odersky)ÀÇ ÈǸ¢ÇÑ ¡®Functional Programming Principles in Scala(½ºÄ®¶ó·Î ¹è¿ì´Â ÇÔ¼öÇü ÇÁ·Î±×·¡¹Ö ¿ø¸®)¡¯¶ó´Â ºñµð¿À ÄÚ½º¿´´Ù. µÎ ¹ø°´Â 2014³â¿¡ Ãâ°£µÈ ¡º½ºÄ®¶ó·Î ¹è¿ì´Â ÇÔ¼öÇü ÇÁ·Î±×·¡¹Ö¡»(Á¦ÀÌÆà, 2015))¿´´Ù. ¡®»¡°£ Ã¥¡¯À¸·Î Àß ¾Ë·ÁÁø ÀÌ Ã¥Àº ·ç³ª¸£ ºñ¾Æ¸£µå³ª¼Õ(Runar Bjarnason)°ú Æú Ä¡¿ì»ç³ë(Paul Chiusano)°¡ ¼ö³â°£ ÀڽŵéÀÇ °æÇè°ú ³ë·ÂÀ» ½ñ¾ÆºÎÀº °á°ú¹°À̾ú´Ù. ÀÌ µÎ °¡Áö´Â ³» »ý°¢À» Çü¼ºÇÏ´Â µ¥ Å©°Ô ±â¿©ÇßÀ¸¸ç, ¿À´Ã³¯ ³»°¡ ÇÁ·Î±×·¡¹ÖÀ» ÀνÄÇÏ´Â ¹æ½ÄÀ» ¹Ù²ã³ù´Ù.
ÄÚƲ¸°À» ¹è¿ì±â ½ÃÀÛÇßÀ» ¶§´Â ÄÚƲ¸°ÀÌ ½ºÄ®¶ó¿Í ºñ½ÁÇÑ ¼º´ÉÀ» °¡Á³À½¿¡µµ, ½Ç¿ë¼ºÀ» Ưº°È÷ °Á¶ÇÏ´Â µ¥ ºñÇØ Å¸ÀÔ ½Ã½ºÅÛÀ» »ç¿ëÇÏ´Â ÇÔ¼öÇü ÇÁ·Î±×·¡¹ÖÀ̶ó´Â Çй®Àû Ãø¸éÀº ±×´ÙÁö °Á¶ÇÏÁö ¾Ê´Â´Ù´Â »ç½ÇÀ» ±ú´Þ¾Ò´Ù. ¸î¸î Ä£±¸¿Í ÄÚ¼¼¶ó¿¡¼ ¡®Kotlin for Java Developers(ÀÚ¹Ù °³¹ßÀÚ¸¦ À§ÇÑ ÄÚƲ¸°)¡¯ ÄÚ½º¸¦ ¸¶Ä£ ´ÙÀ½, ¿ì¸®´Â ±× ½ºÅ͵ð ±×·ìÀ» À¯ÁöÇÏ¸é¼ ÄÚƲ¸°¿¡¼ ŸÀÔÀ» »ç¿ëÇÏ´Â FP¿¡ ´ëÇØ Å½±¸ÇÏ´Â Åä´ë·Î½á »¡°£ Ã¥ÀÇ ³»¿ëÀ» »ç¿ëÇÏÀÚ°í À̾߱âÇß´Ù. ½½ÇÁ°Ôµµ ÀÌ ¸ðÀÓÀ» ½ÇÁ¦·Î ÁøÇàÇÏÁö´Â ¸øÇßÁö¸¸, ³» ³ª¸§´ë·Î ¿¬±¸¸¦ ´õ ÁøÇàÇؼ »õ·Î¿î ÄÚƲ¸° FP Ã¥ÀÇ °³³äÀ» ¸Å´×ÃâÆǻ翡 Á¦¾ÈÇß´Ù. Ãʱ⠾ÆÀ̵ð¾î´Â Æú°ú ·ç³ª¸£ÀÇ Ã¥°ú ¶È°°Àº ³»¿ëÀ» ´Ù·çµÇ ¸ðµç Äڵ带 ½ºÄ®¶ó°¡ ¾Æ´Ñ ÄÚƲ¸°À¸·Î º¯È¯ÇÏ´Â °ÍÀ̾ú´Ù. ÀÌ Á¦¾ÈÀ» ¹Þ¾Æµé¿©Á³À» ¶§ ³ª´Â ¸Å¿ì ±â»¼´Ù. ÇÏÁö¸¸ ÀÏ´Ü ÁýÇÊÀ» ½ÃÀÛÇÏÀÚ Ã¥Àº ±× ÀÚü·Î »ý¸í·ÂÀÌ ÀÖ´Â Á¸Àç°¡ µÆ°í, ±âÁ¸ÀÇ Á¦¾È¿¡¼ ¸¹Àº °ÍÀÌ(ÄÚµå»Ó ¾Æ´Ï¶ó º»¹®±îÁöµµ) ´Þ¶óÁ³´Ù. ±×·³¿¡µµ ÀÌ Ã¥Àº ¿øº»ÀÎ »¡°£ Ã¥ÀÇ ±¸Á¶¸¦ ¸Å¿ì Ãæ½ÇÈ÷ µû¸£°í ÀÖ´Ù.
ÄÚƲ¸° °³¹ßÀÚ¸¦ À§ÇØ ÀÌ Ã¥À» ¾²¸é¼ ³ª Àڽŵµ ¾öû³ª°Ô ¼ºÀåÇÒ ¼ö ÀÖ¾ú´Ù. ±× °úÁ¤Àº ÈǸ¢ÇÑ ¹è¿òÀÇ °æÇèÀ̱⵵ ÇßÀ¸¸ç, ÀÌÀüº¸´Ù ÀÌ Ã¥ÀÇ °³³äÀ» ´õ ½É¿ÀÇÏ°í dzºÎÇÏ°Ô ÀÌÇØÇÒ ¼ö ÀÖ°Ô µÆ´Ù. ÀÌ Ã¥À» ÅëÇÑ ¿©ÇàÀ» ½ÃÀÛÇÏ´Â ¿©·¯ºÐµµ ³»°¡ °¢°¢ÀÇ ÆäÀÌÁö¸¦ ÀûÀ» ¶§¸¶´Ù ´À³¢°í ¹è¿ü´ø ³»¿ëÀ» ÃÖ´ëÇÑ ¸¹ÀÌ ¾ò¾î°¡±æ ¹Ù¶õ´Ù. ¼Ò°³ÇÏ´Â °³³äÀ» ÀÌÇØÇϸé, ¿©·¯ºÐÀÌ Äڵ带 ÀÛ¼ºÇÏ´Â ¹æ½Ä°ú ±× ¾ÆÀ̵ð¾î¸¦ ¿©·¯ºÐÀÇ ¹ßÀÚ±¹À» µû¶ó¿À´Â ´Ù¸¥ »ç¶÷µé¿¡°Ô Á¦½ÃÇÏ´Â ¹æ¹ýÀ» ¿µ¿øÈ÷ ¹Ù²ãÁÙ °ÍÀÌ´Ù. ÀÌ Ã¥ÀÌ ³»°Ô È¿°ú°¡ ÀÖ¾úµíÀÌ ¿©·¯ºÐ¿¡°Ôµµ È¿°ú°¡ ÀÖ±æ ¹Ù¶õ´Ù. ¹«¾ùº¸´Ù ³»°¡ ±×·¨´ø °Íó·³ ¿©·¯ºÐµµ ÀÌ Ã¥ÀÇ ¸ðµç ÆäÀÌÁö¿¡¼ Àç¹Ì¸¦ ´À³¢°í Áñ±â°Ô µÇ±æ ±â´ëÇÑ´Ù.
¢Â ¿Å±äÀÌÀÇ ¸» ¢Â
ºòµ¥ÀÌÅÍ ºÕÀÌ ÀÏ ¶§ ½ºÄ®¶ó(Scala)¿Í ½ºÆÄÅ©(Spark)°¡ Àû±ØÀûÀ¸·Î Ä¿¹Â´ÏƼ¿¡ ¹Þ¾Æµé¿©Áö¸é¼ºÎÅÍ ÇÔ¼öÇü ÇÁ·Î±×·¡¹Ö¿¡ ´ëÇÑ ¼¼°£ÀÇ °ü½ÉÀÌ ±× Àü¿¡ ºñÇØ ±ØÀûÀ¸·Î ´Ã¾î³µ´Ù. ÀÌÁ¦´Â ÀÏ¹Ý °³¹ßÀÚ »çÀÌ¿¡µµ ÇÔ¼öÇü ÇÁ·Î±×·¡¹ÖÀÌ ¾î´À Á¤µµ ÇʼöÀûÀÎ ÇÁ·Î±×·¡¹Ö Æз¯´ÙÀÓÀ¸·Î ¹Þ¾Æµé¿©Áö´Â ºÐÀ§±â´Ù. 2010³â´ë ÀÌÀü°ú ºñ±³Çϸé, ÇÔ¼öÇü ÇÁ·Î±×·¡¹Ö¿¡ ´ëÇÑ Ã¥µµ ¸¹ÀÌ ´Ã¾î³µ°í µ¿¿µ»ó °Àdzª °ü·Ã ÀÚ·áµµ ÀÎÅͳݿ¡¼ ¸¹ÀÌ Ã£¾Æº¼ ¼ö ÀÖ°Ô µÆ´Ù.
±×·³¿¡µµ ÇÔ¼öÇü ÇÁ·Î±×·¡¹ÖÀ» Á¤ÅëÀûÀ¸·Î ¾Ë·ÁÁִ åÀº ±×¸® ¸¹Áö ¾Ê´Ù. ¹«¾ùº¸´Ù ÀÏ¹Ý ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡¼ ŸÀÔÀ» È°¿ëÇÏ´Â ÇÔ¼öÇü ÇÁ·Î±×·¡¹ÖÀÇ °í°è ŸÀÔÀ» Ç¥ÇöÇÏ·Á¸é ¾î·Á¿î Á¡ÀÌ ¸¹À¸¹Ç·Î, ÇÔ¼öÇü Æз¯´ÙÀÓ°ú º¹ÀâÇÑ Å¸ÀÔ ½Ã½ºÅÛÀ» Àû±ØÀûÀ¸·Î Áö¿øÇÏ´Â ÇϽºÄÌ(Haskell)À̳ª ½ºÄ®¶ó °°Àº ¾ð¾î¸¦ »ç¿ëÇØ ÇÔ¼öÇü ÇÁ·Î±×·¡¹ÖÀÇ °³³äÀ» ¾Ë·ÁÁÖ´Â °æ¿ì°¡ ¸¹´Ù. ´ëÇ¥ÀûÀΠåÀ¸·Î ÇϽºÄÌÀÇ ¡º°¡Àå ½¬¿î ÇϽºÄÌ Ã¥¡»(ºñÁ¦ÀÌÆÛºí¸¯, 2014)À̳ª À̸¥¹Ù ¡®»¡°£ Ã¥¡¯ÀÎ ½ºÄ®¶óÀÇ ¡º½ºÄ®¶ó·Î ¹è¿ì´Â ÇÔ¼öÇü ÇÁ·Î±×·¡¹Ö¡»ÀÌ ÀÖ´Ù.
¹Ý´ë·Î Á¤Àû ŸÀÔÀ» Áö¿øÇÏÁö ¾Ê´Â ¾ð¾î(ÀÚ¹Ù½ºÅ©¸³Æ® µî)¿¡¼ ÇÔ¼öÇü ÇÁ·Î±×·¡¹ÖÀ» ´Ù·ç´Â Ã¥µµ ¸¹ÀÌ ÀÖÁö¸¸, ŸÀÔ ½Ã½ºÅÛÀ» È°¿ëÇÏÁö ¾Ê±â ¶§¹®¿¡ °í°è ŸÀÔÀÌ ÁÖ´Â ÀåÁ¡À» »ì¸®Áö ¸øÇÑ´Ù´Â ÇÑ°è°¡ ÀÖ´Ù.
ÀÌ Ã¥Àº À¯¸íÇÑ ¡®»¡°£ Ã¥¡¯ÀÇ ÄÚƲ¸° ¹öÀüÀ¸·Î, ÄÚƲ¸°À» ¾Ë°í ÀÖ´Â °³¹ßÀÚµéÀÌ ÇÔ¼öÇü ÇÁ·Î±×·¡¹ÖÀÇ °³³äÀ» ±íÀÌ ¹è¿ì°í ¿¬½ÀÇÒ ¼ö ÀÖµµ·Ï ¾²¿´´Ù. »õ·Î¿î Æз¯´ÙÀÓÀ» ¹è¿ì±â À§ÇØ »õ·Î¿î ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ ¹è¿ì¸é, ¹éÁö »óÅ¿¡¼ °³³ä°ú ¾ð¾î¸¦ ÇÔ²² ¹è¿ï ¼ö ÀÖ¾î ¿ÏÀüÈ÷ »õ·Î¿î °üÁ¡¿¡¼ ¹è¿òÀ» ÁøÇàÇÒ ¼ö ÀÖ´Ù´Â ÀåÁ¡ÀÌ ÀÖ´Ù. ÇÏÁö¸¸ ¾ð¾î¸¦ ¹è¿ì´Â µ¥ µå´Â ³ë·ÂÀ¸·Î ÀÎÇØ °³³äÀ» ÀÌÇØÇϱâ´Â ´õ ¾î·Á¿öÁú ¼öµµ ÀÖ´Ù. ±×·± Á¡¿¡¼ º¼ ¶§, ÀÌ Ã¥Àº ÄÚƲ¸° ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ »ç¿ëÇßÀ¸¹Ç·Î Á» ´õ ½±°Ô ÇÔ¼öÇü ÇÁ·Î±×·¡¹Ö¿¡ Á¢±ÙÇÒ ¼ö ÀÖ´Â ±æÀ» ¿¾îÁشٰí ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
ÀÌ Ã¥À» Àаí, ¿¬½À¹®Á¦¸¦ ¸ðµÎ Ç®¾î³ª°¡´Ù º¸¸é ÇÔ¼öÇü ÇÁ·Î±×·¡¹ÖÀÇ °³³äÀ» ÀÌÇØÇÏ°í ´Ù¾çÇÑ ÇÔ¼öÇü ŸÀÔÀ» ¼³°èÇÒ ´É·ÂÀ» Å°¿ö ³ª°¥ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¶ÇÇÑ, ¸í·ÉÇü Äڵ带 ÀÛ¼ºÇÒ ¶§µµ ÇнÀÇÑ °³³äÀ» È°¿ëÇØ Á» ´õ ¿ì¼öÇÏ°í ¾ÈÀüÇÑ ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¼ö ÀÖ°Ô µÈ´Ù. ºÎµð ÇÔ¼öÇü ÇÁ·Î±×·¡¹Ö¿¡ °ü½ÉÀ» °®°í ÀÌ Ã¥À» Áý¾îµç ¿©·¯ºÐÀÌ Àüü ¿©Á¤À» ¸¶Ä£ ÈÄ Àß ÈÆ·ÃµÈ ÇÔ¼öÇü ÇÁ·Î±×·¡¸Ó·Î °Åµì³ª±æ ±â¿øÇÑ´Ù.
-
-
1ºÎ. ÇÔ¼öÇü ÇÁ·Î±×·¡¹Ö ¼Ò°³
1Àå. ÇÔ¼öÇü ÇÁ·Î±×·¡¹ÖÀ̶õ?
1.1 FPÀÇ ÀåÁ¡: °£´ÜÇÑ ¿¹Á¦
1.1.1 ºÎ¼ö È¿°ú°¡ ÀÖ´Â ÇÁ·Î±×·¥
1.1.2 ÇÔ¼öÇü Çعý: ºÎ¼ö È¿°ú Á¦°ÅÇϱâ
1.2 Á¤È®È÷ (¼ø¼ö) ÇÔ¼ö¶õ ¹«¾ùÀΰ¡?
1.3 ÂüÁ¶ Åõ¸í¼º, ¼ø¼ö¼º, ġȯ ¸ðµ¨
1.4 ¾ÕÀ¸·Î »ìÆ캼 ³»¿ë
¿ä¾à
2Àå. ÄÚƲ¸°À¸·Î ÇÔ¼öÇü ÇÁ·Î±×·¡¹Ö ½ÃÀÛÇϱâ
2.1 °íÂ÷ ÇÔ¼ö: ÇÔ¼ö¸¦ ÇÔ¼ö¿¡ ³Ñ±â±â
2.1.1 Àá½Ã µ¹¾Æ°¡±â: ·çÇÁ¸¦ ÇÔ¼öÀûÀ¸·Î ÀÛ¼ºÇÏ´Â ¹æ¹ý
2.1.2 ù ¹ø° °íÂ÷ ÇÔ¼ö ÀÛ¼ºÇϱâ
2.2 ´ÙÇüÀû ÇÔ¼ö: ŸÀÔ¿¡ ´ëÇØ Ãß»óÈÇϱâ
2.2.1 ´ÙÇüÀû ÇÔ¼ö ¿¹Á¦
2.2.2 À͸í ÇÔ¼ö¸¦ »ç¿ëÇØ °íÂ÷ ÇÔ¼ö È£ÃâÇϱâ
2.3 ŸÀÔ¿¡ ¸ÂÃç ±¸ÇöÇϱâ
¿ä¾à
3Àå. ÇÔ¼öÇü µ¥ÀÌÅÍ ±¸Á¶
3.1 ÇÔ¼öÇü µ¥ÀÌÅÍ ±¸Á¶ Á¤ÀÇÇϱâ
3.2 ÇÔ¼öÀû µ¥ÀÌÅÍ ±¸Á¶ ´Ù·ç±â
3.2.1 ŸÀÔÀ¸·Î ¸ÅĪÇϱâ À§ÇÑ ¡®when¡¯
3.2.2 if-else¸¦ ´ë½ÅÇÏ´Â when
3.2.3 ÆÐÅÏ ¸ÅĪÀº ¹«¾ùÀ̸ç ÄÚƲ¸° ¸ÅĪ°ú ¾î¶² Â÷ÀÌ°¡ ÀÖ³ª?
3.3 ÇÔ¼öÇü µ¥ÀÌÅÍ ±¸Á¶ ¾ÈÀÇ µ¥ÀÌÅÍ °øÀ¯
3.3.1 µ¥ÀÌÅÍ °øÀ¯ÀÇ È¿À²
3.4 ¸®½ºÆ®¿¡ ´ëÇÑ Àç±Í¿Í À̸¦ °íÂ÷ ÇÔ¼ö·Î ÀϹÝÈÇÏ´Â ¹æ¹ý
3.4.1 ¸®½ºÆ®¿¡ ÀÛ¿ëÇÏ´Â ´Ù¸¥ ÇÔ¼öµé
3.4.2 ÄÚƲ¸° Ç¥ÁØ ¶óÀ̺귯¸®ÀÇ ¸®½ºÆ®
3.4.3 ´Ü¼øÇÑ ¿ä¼Òµé·ÎºÎÅÍ ¸®½ºÆ® ÇÔ...¼ö¸¦ ÇÕ¼ºÇÏ´Â µ¥ µû¸¥ ºñÈ¿À²
3.5 Æ®¸®
¿ä¾à
4Àå. ¿¹¿Ü¸¦ »ç¿ëÇÏÁö ¾Ê°í ¿À·ù ´Ù·ç±â
4.1 ¿¹¿Ü¸¦ ´øÁö´Â °ÍÀÇ ¹®Á¦Á¡
4.2 ¿¹¿Ü¿¡ ´ëÇÑ ¹®Á¦°¡ ÀÖ´Â ´ë¾È
4.2.1 ¼¾Æ¼³Ú °ª
4.2.2 µðÆúÆ® °ª Á¦°ø
4.3 OptionÀ¸·Î ¼º°ø »óȲ ÀÎÄÚµùÇϱâ
4.3.1 Option »ç¿ë ÆÐÅÏ
4.3.2 Option ÇÕ¼º, ²ø¾î¿Ã¸®±â ¹× ¿¹¿Ü ±â¹Ý API °¨½Î±â
4.3.3 Option°ú for ÄÄÇÁ¸®Çî¼Ç »ç¿ëÇϱâ
4.4 ¼º°ø°ú ½ÇÆÐ Á¶°ÇÀ» Either·Î ÀÎÄÚµùÇϱâ
4.4.1 Either¸¦ for ÄÄÇÁ¸®Çî¼Ç¿¡¼ »ç¿ëÇϱâ
¿ä¾à
5Àå. ¾ö°Ý¼º°ú Áö¿¬¼º
5.1 ¾ö°ÝÇÑ ÇÔ¼ö¿Í ¾ö°ÝÇÏÁö ¾ÊÀº ÇÔ¼ö
5.2 È®Àå ¿¹Á¦: Áö¿¬ ¸®½ºÆ®
5.2.1 ½ºÆ®¸²À» ¸Þ¸ðÈÇÏ°í Àç°è»ê ÇÇÇϱâ
5.2.2 ½ºÆ®¸² °üÂûÀ» À§ÇÑ µµ¿ì¹Ì ÇÔ¼ö
5.3 ÇÁ·Î±×·¥ ±â¼ú°ú Æò°¡ ºÐ¸®Çϱâ
5.4 °øÀç±Í ÇÔ¼ö¸¦ ÅëÇØ ¹«ÇÑÇÑ µ¥ÀÌÅÍ ½ºÆ®¸² »ý¼ºÇϱâ
5.5 °á·Ð
¿ä¾à
6Àå. ¼ø¼ö ÇÔ¼öÇü »óÅÂ
6.1 ºÎ¼ö È¿°ú¸¦ »ç¿ëÇØ ³¼ö »ý¼ºÇϱâ
6.2 ¼ø¼ö ÇÔ¼öÇü ³¼ö »ý¼º±â
6.3 »óÅ°¡ ÀÖ´Â API¸¦ ¼ø¼ö ÇÔ¼öÇü API·Î ¸¸µé±â
6.4 »óÅ µ¿ÀÛÀ» Àü´ÞÇÏ´Â ¾Ï½ÃÀû Á¢±Ù ¹æ¹ý
6.4.1 »óÅ µ¿ÀÛ Á¶ÇÕÀ» ÅëÇØ ´õ Å« ´É·Â ¹ßÈÖÇϱâ
6.4.2 »óÅ µ¿ÀÛÀ» ³»Æ÷½ÃÄѼ Àç±ÍÀûÀ¸·Î Àç½ÃµµÇϱâ
6.4.3 ÄÞºñ³×ÀÌÅÍ API¸¦ Ãʱ⠿¹Á¦¿¡ Àû¿ëÇϱâ
6.5 ÀϹÝÀûÀÎ »óÅ µ¿ÀÛ Å¸ÀÔ
6.6 ¼ø¼ö ÇÔ¼öÇü ¸í·ÉÇü ÇÁ·Î±×·¡¹Ö
6.7 °á·Ð
¿ä¾à
2ºÎ. ÇÔ¼öÇü ¼³°è¿Í ÄÞºñ³×ÀÌÅÍ ¶óÀ̺귯¸®
7Àå. ¼ø¼ö ÇÔ¼öÇü º´·Ä¼º
7.1 µ¥ÀÌÅÍ Å¸ÀÔ°ú ÇÔ¼ö ¼±ÅÃÇϱâ
7.1.1 º´·Ä °è»êÀ» À§ÇÑ µ¥ÀÌÅÍ Å¸ÀÔ
7.1.2 µ¿½Ã¼ºÀ» º¸ÀåÇϱâ À§ÇØ º´·Ä °è»ê Á¶ÇÕÇϱâ
7.1.3 ½ÇÇàÇÒ °è»êÀ» ¸í½ÃÀûÀ¸·Î Ç¥½ÃÇϱâ
7.2 Ç¥Çö ¼±ÅÃÇϱâ
7.3 ÃÖÁ¾ »ç¿ëÀÚ¸¦ ¿°µÎ¿¡ µÎ°í API ´Ùµë±â
7.4 ´ë¼öÀû µî½ÄÀ» »ç¿ëÇØ API¿¡ ´ëÇØ Ãß·ÐÇϱâ
7.4.1 ¸ÅÇÎ ±ÔÄ¢
7.4.2 ³í¸® ½º·¹µå ºÐ±âÀÇ ¹ýÄ¢
7.4.3 ³íºí·ÎÅ· ±¸ÇöÀ» À§ÇØ ¾×ÅÍ »ç¿ëÇϱâ
7.5 °¡Àå ÀϹÝÀûÀÎ ÇüÅ·ΠÄÞºñ³×ÀÌÅÍ ´Ùµë±â
¿ä¾à
8Àå. ¼Ó¼º ±â¹Ý Å×½ºÆ®
8.1 ¼Ó¼º ±â¹Ý Å×½ºÆ® ¸Àº¸±â
8.2 µ¥ÀÌÅÍ Å¸ÀÔ°ú ÇÔ¼ö ¼±ÅÃÇϱâ
8.2.1 °¡´ÉÇÑ API¿¡ ´ëÇÑ ÂªÀº Ãʱ⠿¹Á¦ ÄÚµå ¸ðÀ¸±â
8.2.2 ¼Ó¼ºÀÇ ÀÇ¹Ì¿Í API Ž±¸Çϱâ
8.2.3 »ý¼º±âÀÇ API¿Í ÀÇ¹Ì ¹ß°ßÇϱâ
8.2.4 »ý¼ºµÈ °ª¿¡ ÀÇÁ¸ÇÏ´Â »ý¼º±â
8.2.5 ¼Ó¼º µ¥ÀÌÅÍ Å¸ÀÔ ´Ùµë±â
8.3 Å×½ºÆ® ÄÉÀ̽º ÃÖ¼ÒÈ
8.4 ¶óÀ̺귯¸®¸¦ »ç¿ëÇÏ°í »ç¿ëÀÚ °æÇè °³¼±Çϱâ
8.4.1 ¸î °¡Áö °£´ÜÇÑ ¿¹Á¦
8.4.2 º´·Ä °è»ê¿¡ ¾î¿ï¸®´Â Å×½ºÆ® ½ºÀ§Æ® ÀÛ¼ºÇϱâ
8.5 °íÂ÷ ÇÔ¼ö³ª ´Ù¸¥ °¡´É¼º »ý¼ºÇϱâ
8.6 »ý¼º±âÀÇ ¹ýÄ¢
8.7 °á·Ð
¿ä¾à
9Àå. Æļ ÄÞºñ³×ÀÌÅÍ
9.1 ´ë¼ö ¼³°èÇϱâ
9.1.1 ¹®ÀÚ Çϳª¸¦ ÀνÄÇϱâ À§ÇÑ Æļ
9.1.2 Àüü ¹®ÀÚ¿À» ÀνÄÇϱâ À§ÇÑ Æļ
9.1.3 ¹Ýº¹À» ÀνÄÇϱâ À§ÇÑ Æļ
9.2 ´ë¼ö¸¦ ¼³°èÇÏ´Â ÇÑ °¡Áö Á¢±Ù ¹æ¹ý
9.2.1 ¹®ÀÚ ¹Ýº¹ Ƚ¼ö ¼¼±â
9.2.2 ½½¶óÀ̰̽ú ºñ¾î ÀÖÁö ¾ÊÀº ¹Ýº¹
9.3 ¹®¸Æ¿¡ ´ëÇÑ ¹Î°¨¼º ó¸®Çϱâ
9.4 JSON Æļ ÀÛ¼ºÇϱâ
9.4.1 JSON ÆļÀÇ ¿¹»ó µ¿ÀÛ Á¤ÀÇÇϱâ
9.4.2 JSON Çü½Ä Á¤¸®
9.4.3 JSON Æļ
9.5 º¸°í¸¦ ÅëÇØ ¿À·ù¸¦ Ç¥¸é¿¡ µå·¯³»±â
9.5.1 ¿À·ù º¸°í ù ¹ø° ½Ãµµ
9.5.2 ¿À·ù ³»Æ÷¸¦ ÅëÇØ ¿À·ù ´©Àû½ÃÅ°±â
9.5.3 ºÐ±â¿Í ¹éÆ®·¡Å· Á¦¾î
9.6 ´ë¼ö ±¸ÇöÇϱâ
9.6.1 Á¡ÁøÀûÀ¸·Î ´ë¼öÀÇ ±¸Çö ±¸ÃàÇϱâ
9.6.2 ÆļÀÇ ½ÃÄö½º ó¸®Çϱâ
9.6.3 Æļ¿¡ ·¹À̺íÀ» ºÙ¿©¼ ¿À·ù ¸Þ½ÃÁö Àâ¾Æ³»±â
9.6.4 ¿À·ù ȸº¹°ú ¹éÆ®·¡Å·
9.6.5 ¹®¸Æ ¹Î°¨ Æļ¸¦ ÅëÇØ »óÅ ÀüÆÄÇϱâ
9.7 °á·Ð
¿ä¾à
3ºÎ. ÇÔ¼öÇü ¼³°èÀÇ ÀÏ¹Ý ÆÐÅÏ
10Àå. ¸ð³ëÀ̵å
10.1 ¸ð³ëÀ̵å¶õ ¹«¾ùÀΰ¡?
10.2 ¸ð³ëÀ̵å·Î ¸®½ºÆ® Á¢±â
10.3 °áÇÕ¼º°ú º´·Ä¼º
10.4 ¿¹Á¦: º´·Ä ÆĽÌ
10.5 Á¢À» ¼ö ÀÖ´Â µ¥ÀÌÅÍ ±¸Á¶
10.6 ¸ð³ëÀ̵å ÇÕ¼ºÇϱâ
10.6.1 ´õ º¹ÀâÇÑ ¸ð³ëÀ̵å Á¶¸³Çϱâ
10.6.2 ¼øȸ À¶ÇÕÀ» À§ÇØ ÇÕ¼ºÇÑ ¸ð³ëÀÌµå »ç¿ëÇϱâ
¿ä¾à
11Àå. ¸ð³ªµå¿Í ÆãÅÍ
11.1 ÆãÅÍ
11.1.1 map ÇÔ¼ö¸¦ ÀϹÝÈÇØ ÆãÅÍ Á¤ÀÇÇϱâ
11.1.2 ¹ýÄ¢ÀÇ Á߿伺°ú ÆãÅÍ¿¡ ´ëÇÑ °ü°è
11.2 ¸ð³ªµå: flatMap°ú unit ÇÔ¼ö ÀϹÝÈÇϱâ
11.2.1 ¸ð³ªµå ÀÎÅÍÆäÀ̽º ¼Ò°³
11.3 ¸ð³ªµåÀûÀÎ ÄÞºñ³×ÀÌÅÍ
11.4 ¸ð³ªµå ¹ýÄ¢
11.4.1 °áÇÕ ¹ýÄ¢
11.4.2 ±¸Ã¼ÀûÀÎ ¸ð³ªµå¿¡ ´ëÇØ °áÇÕ ¹ýÄ¢ Áõ¸íÇϱâ
11.4.3 ¿ÞÂÊ°ú ¿À¸¥ÂÊ Ç×µî ¹ýÄ¢
11.5 µµ´ëü ¸ð³ªµå¶õ ¹«¾ùÀΰ¡?
11.5.1 Ç×µî ¸ð³ªµå
11.5.2 State ¸ð³ªµå¿Í ºÎºÐÀûÀΠŸÀÔ Àû¿ë
¿ä¾à
12Àå. Àû¿ë °¡´É ÆãÅÍ¿Í ¼øȸ °¡´É ÆãÅÍ
12.1 Àç»ç¿ë¼ºÀ» À§ÇØ ¸ð³ªµå ÀϹÝÈÇϱâ
12.2 ¸ð³ªµåÀÇ ´ë¾ÈÀÎ Àû¿ë °¡´É ÆãÅÍ
12.3 ¸ð³ªµå¿Í Àû¿ë °¡´É ÆãÅÍÀÇ Â÷ÀÌ
12.3.1 Option Àû¿ë °¡´É ÆãÅÍ¿Í Option ¸ð³ªµåÀÇ ºñ±³
12.3.2 Parser Àû¿ë °¡´É ÆãÅÍ¿Í Parser ¸ð³ªµå
12.4 Àû¿ë °¡´É ÆãÅÍÀÇ ÀåÁ¡
12.4.1 ¸ðµç Àû¿ë °¡´É ÆãÅÍ°¡ ¸ð³ªµå´Â ¾Æ´Ï´Ù
12.5 Àû¿ë °¡´É ¹ýÄ¢À» »ç¿ëÇØ ÇÁ·Î±×·¥¿¡ ´ëÇØ Ãß·ÐÇϱâ
12.5.1 ¿ÞÂÊ°ú ¿À¸¥ÂÊ Ç×µî¿ø ¹ýÄ¢
12.5.2 °áÇÕ ¹ýÄ¢
12.5.3 ÀÚ¿¬¼ºÀÇ ¹ýÄ¢
12.6 ¼øȸ °¡´ÉÀ» »ç¿ëÇØ traverse¿Í sequence Ãß»óÈÇϱâ
12.7 TraversableÀ» »ç¿ëÇØ °í·ù ŸÀÔÀ» ¹Ýº¹ÀûÀ¸·Î º¯È¯Çϱâ
12.7.1 ¸ð³ëÀ̵忡¼ Àû¿ë °¡´É ÆãÅÍ·Î
12.7.2 »óÅ µ¿ÀÛÀ» ÀüÆĽÃÅ°´Â µ¿½Ã¿¡ Ä÷º¼Ç ¼øȸÇϱâ
12.7.3 ¼øȸ °¡´É ±¸Á¶ Á¶ÇÕÇϱâ
12.7.4 ´ÜÀÏ Æнº È¿À²¼ºÀ» À§ÇÑ Æ®¸® À¶ÇÕ
12.7.5 ³»Æ÷µÈ ¼øȸ °¡´É ±¸Á¶¸¦ µ¿½Ã ¼øȸÇϱâ
12.7.6 ¸ð³ªµå ÇÕ¼ºÀÇ ÇÔÁ¤°ú ÇÔÁ¤À» ÇÇÇÏ´Â ¹æ¹ý
¿ä¾à
4ºÎ. È¿°ú¿Í ÀÔÃâ·Â
13Àå. ¿ÜºÎ È¿°ú¿Í I/O
13.1 È¿°ú°¡ ÀÖ´Â ÇÁ·Î±×·¥¿¡¼ È¿°ú »Ì¾Æ³»±â
13.2 È¿°ú°¡ ÀÖ´Â Äڵ带 ºÐ¸®Çϱâ À§ÇØ IO ŸÀÔ µµÀÔÇϱâ
13.2.1 ÀÔ·Â È¿°ú ó¸®Çϱâ
13.2.2 °£´ÜÇÑ IO ŸÀÔÀÇ Àå´ÜÁ¡
13.3 ½ÇÃ¼È¿Í Æ®·¥Æú¸°È¸¦ ÅëÇØ ½ºÅà ¿À¹öÇ÷Π¿À·ù ¹æÁöÇϱâ
13.3.1 µ¥ÀÌÅÍ »ý¼ºÀÚ·Î È帧 Á¦¾î ½ÇüÈÇϱâ
13.3.2 Æ®·¥Æú¸°È: ½ºÅà ¿À¹öÇ÷ο¡ ´ëÇÑ ÀϹÝÀûÀÎ Çعý
13.4 ´õ ÀûÀýÇÑ ´µ¾Ó½ºÀÇ IO ŸÀÔ
13.4.1 Ÿ´çÇÑ °¡°ÝÀÌ ºÙÀº ¸ð³ªµå
13.4.2 ÄÜ¼Ö I/O¸¸ Áö¿øÇÏ´Â ¸ð³ªµå
13.4.3 ¼ø¼ö Çؼ®±â¸¦ »ç¿ëÇØ ÄÜ¼Ö I/O Å×½ºÆ®Çϱâ
13.5 ³íºí·ÎÅ·°ú ºñµ¿±â I/O
13.6 ¹ü¿ë IO ŸÀÔ
13.6.1 ¼¼°èÀÇ ¹Ý´ëÂÊ¿¡ ÀÖ´Â ÁÖ ÇÁ·Î±×·¥
13.7 ¿Ö IO ŸÀÔÀÌ ½ºÆ®¸®¹Ö I/O¿¡ ´ëÇØ ºÎÁ·ÇÑ°¡?
¿ä¾à
14Àå. Áö¿ª È¿°ú¿Í °¡º¯ »óÅÂ
14.1 ¼ø¼ö ÇÔ¼öÇü ÄÚµå ¾È¿¡¼ »óÅ º¯ÀÌ°¡ ÇÕ¹ýÀûÀÌ´Ù
14.2 ºÎ¼ö È¿°úÀÇ ¿µ¿ªÀ» °Á¦ÇÏ´Â µ¥ÀÌÅÍ Å¸ÀÔ
14.2.1 ¿µ¿ªÀÌ Á¦ÇÑµÈ º¯À̸¦ À§ÇÑ DSL
14.2.2 °¡º¯ ÂüÁ¶ÀÇ ´ë¼ö
14.2.3 °¡º¯ »óÅ µ¿ÀÛ ½ÇÇàÇϱâ
14.2.4 ST ¸ð³ªµåÀÇ µ¥ÀÌÅÍ Å¸ÀÔÀ¸·Î Ç¥ÇöµÈ °¡º¯ ¹è¿
14.2.5 ¼ø¼ö ÇÔ¼öÀûÀÎ ÀÎÇ÷¹À̽º Äü¼ÒÆ®
14.3 ¼ø¼ö¼ºÀº ¸Æ¶ô¿¡ µû¶ó ´Þ¶óÁø´Ù
14.3.1 ¿¹Á¦¸¦ ÅëÇÑ Á¤ÀÇ
14.3.2 ºÎ¼ö È¿°ú·Î Ãë±ÞÇÒ ¼ö ÀÖ´Â °ÍÀº ¹«¾ùÀϱî?
¿ä¾à
15Àå. ½ºÆ®¸² ó¸®¿Í Á¡ÁøÀû I/O
15.1 ¸í·ÉÇü I/OÀÇ ¹®Á¦Á¡: ¿¹Á¦
15.2 °£´ÜÇÑ Æ®·£½ºµà¼¸¦ »ç¿ëÇØ ½ºÆ®¸² º¯È¯Çϱâ
15.2.1 ½ºÆ®¸² Æ®·£½ºµà¼¸¦ ¸¸µé±â À§ÇÑ ÄÞºñ³×ÀÌÅÍ
15.2.2 ÀÌ¾î ºÙÀ̱â¿Í ÇÕ¼ºÀ» »ç¿ëÇØ ¿©·¯ Æ®·£½ºµà¼ ÇÕÄ¡±â
15.2.3 ÆÄÀÏ Ã³¸®¸¦ À§ÇÑ ½ºÆ®¸² Æ®·£½ºµà¼
15.3 ÇÁ·ÎÅäÄÝ ÆĶó¹ÌÅÍȸ¦ À§ÇÑ È®Àå °¡´ÉÇÑ ÇÁ·Î¼¼½º
15.3.1 ½ºÆ®¸² ¹ß»ýÀ» À§ÇÑ ¼Ò½º
15.3.2 ½ºÆ®¸² Æ®·£½ºµà¼ÀÇ ÀÚ¿ø ¾ÈÀü¼º º¸ÀåÇϱâ
15.3.3 Æ®·£½ºµà¼¸¦ ´ÜÀÏ ÀÔ·Â ½ºÆ®¸²¿¡ Àû¿ëÇϱâ
15.3.4 ´ÙÁß ÀÔ·Â ½ºÆ®¸²
15.3.5 Ãâ·Â 󸮸¦ À§ÇÑ ½ÌÅ©
15.3.6 È¿°ú°¡ Àִ ä³Î¿¡¼ È¿°ú ¼û±â±â
15.3.7 µ¿ÀûÀÎ ÀÚ¿ø ÇÒ´ç
15.4 ½ÇÁ¦ ¼¼°è¿¡¼ÀÇ ½ºÆ®¸² Æ®·£½ºµà¼ È°¿ë
¿ä¾à
¸¶¹«¸®Çϸç
ºÎ·Ï A ¿¬½À¹®Á¦ ÈùÆ®¿Í ÆÁ
ºÎ·Ï B ¿¬½À¹®Á¦ ÇØ´ä
ºÎ·Ï C °í·ù ŸÀÔ
ºÎ·Ï D ŸÀÔ Å¬·¡½º
-
-
|
Paul Chiusano [Àú]
|
|
-
·ç³ª¸£ ºñ¾Æ¸£µå³ª¼Õ(Runar Bjarnason)°ú ÇÔ²² ¡º½ºÄ®¶ó·Î ¹è¿ì´Â ÇÔ¼öÇü ÇÁ·Î±×·¡¹Ö¡»(Á¦ÀÌÆà, 2015)À» Àú¼úÇß´Ù.
-
|
¼Çü±¹ [Àú]
|
|
-
KAIST Àü»êÇаú Çкθ¦ Á¹¾÷ÇÏ°í ¼°´ë Á¤º¸Åë½Å´ëÇпø Á¤º¸½Ã½ºÅÛ Àü°øÀ¸·Î ¼®»çÇÐÀ§¸¦ ÃëµæÇß´Ù. ¼ÖÆ®·è½º, ¿ÍÀÌÁî³Ó µîÀÇ °Ë»ö°ú ÅؽºÆ®¸¶ÀÌ´× Àü¹® ±â¾÷¿¡¼ Å°¿öµå ÃßÃâ±â, ¹®¼ Ŭ·¯½ºÅ͸µ ¿£Áø, ƯÇã ¼±Çà ±â¼ú °Ë»ö ½Ã½ºÅÛ µîÀ» °³¹ßÇßÀ¸¸ç, ÅؽºÆ® À̸éÀÇ Á¤º¸¸¦ ij³»°í(¸» ±×´ë·Î ¸¶ÀÌ´×ÇÏ´Â) È°¿ëÇÏ´Â µ¥ °ü½ÉÀÌ ¸¹´Ù.
-
-
Àüü 0°³ÀÇ ±¸¸ÅÈıⰡ ÀÖ½À´Ï´Ù.
|
ÀÎÅÍÆÄÅ©µµ¼´Â °í°´´ÔÀÇ ´Ü¼ø º¯½É¿¡ ÀÇÇÑ ±³È¯°ú ¹ÝÇ°¿¡ µå´Â ºñ¿ëÀº °í°´´ÔÀÌ ÁöºÒÄÉ µË´Ï´Ù.
´Ü, »óÇ°À̳ª ¼ºñ½º ÀÚüÀÇ ÇÏÀÚ·Î ÀÎÇÑ ±³È¯ ¹× ¹ÝÇ°Àº ¹«·á·Î ¹ÝÇ° µË´Ï´Ù. |
|
±³È¯ ¹× ¹ÝÇ°ÀÌ °¡´ÉÇÑ °æ¿ì |
»óÇ°À» °ø±Þ ¹ÞÀº ³¯·ÎºÎÅÍ 7ÀÏÀ̳» °¡´É
°ø±Þ¹ÞÀ¸½Å »óÇ°ÀÇ ³»¿ëÀÌ Ç¥½Ã, ±¤°í ³»¿ë°ú ´Ù¸£°Å³ª ´Ù¸£°Ô ÀÌÇàµÈ °æ¿ì¿¡´Â °ø±Þ¹ÞÀº ³¯·ÎºÎÅÍ 3°³¿ù À̳», ȤÀº ±×»ç½ÇÀ» ¾Ë°Ô µÈ ³¯ ¶Ç´Â ¾Ë ¼ö ÀÖ¾ú´ø ³¯·ÎºÎÅÍ 30ÀÏ À̳»
»óÇ°¿¡ ¾Æ¹«·± ÇÏÀÚ°¡ ¾ø´Â °æ¿ì ¼ÒºñÀÚÀÇ °í°´º¯½É¿¡ ÀÇÇÑ ±³È¯Àº »óÇ°ÀÇ Æ÷Àå»óÅ µîÀÌ ÀüÇô ¼Õ»óµÇÁö ¾ÊÀº °æ¿ì¿¡ ÇÑÇÏ¿© °¡´É |
|
±³È¯ ¹× ¹ÝÇ°ÀÌ ºÒ°¡´ÉÇÑ °æ¿ì |
±¸¸ÅÈ®Á¤ ÀÌÈÄ(¿ÀǸ¶ÄÏ»óÇ°¿¡ ÇÑÇÔ)
°í°´´ÔÀÇ Ã¥ÀÓ ÀÖ´Â »çÀ¯·Î »óÇ° µîÀÌ ¸ê½Ç ¶Ç´Â ÈÑ¼ÕµÈ °æ¿ì
(´Ü, »óÇ°ÀÇ ³»¿ëÀ» È®ÀÎÇϱâ À§ÇÏ¿© Æ÷Àå µîÀ» ÈѼÕÇÑ °æ¿ì´Â Á¦¿Ü)
½Ã°£ÀÌ Áö³²¿¡ µû¶ó ÀçÆǸŰ¡ °ï¶õÇÒ Á¤µµ·Î ¹°Ç°ÀÇ °¡Ä¡°¡ ¶³¾îÁø °æ¿ì
Æ÷Àå °³ºÀµÇ¾î »óÇ° °¡Ä¡°¡ ÈÑ¼ÕµÈ °æ¿ì |
|
´Ù¹è¼ÛÁöÀÇ °æ¿ì ¹ÝÇ° ȯºÒ |
´Ù¹è¼ÛÁöÀÇ °æ¿ì ´Ù¸¥ Áö¿ªÀÇ ¹ÝÇ°À» µ¿½Ã¿¡ ÁøÇàÇÒ ¼ö ¾ø½À´Ï´Ù.
1°³ Áö¿ªÀÇ ¹ÝÇ°ÀÌ ¿Ï·áµÈ ÈÄ ´Ù¸¥ Áö¿ª ¹ÝÇ°À» ÁøÇàÇÒ ¼ö ÀÖÀ¸¹Ç·Î, ÀÌÁ¡ ¾çÇØÇØ Áֽñ⠹ٶø´Ï´Ù. |
|
Áß°í»óÇ°ÀÇ ±³È¯ |
Áß°í»óÇ°Àº Á¦ÇÑµÈ Àç°í ³»¿¡¼ ÆǸŰ¡ ÀÌ·ç¾îÁö¹Ç·Î, ±³È¯Àº ºÒ°¡´ÉÇÕ´Ï´Ù. |
|
¿ÀǸ¶ÄÏ »óÇ°ÀÇ È¯ºÒ |
¿ÀǸ¶ÄÏ»óÇ°¿¡ ´ëÇÑ Ã¥ÀÓÀº ¿øÄ¢ÀûÀ¸·Î ¾÷ü¿¡°Ô ÀÖÀ¸¹Ç·Î, ±³È¯/¹ÝÇ° Á¢¼ö½Ã ¹Ýµå½Ã ÆǸÅÀÚ¿Í ÇùÀÇ ÈÄ ¹ÝÇ° Á¢¼ö¸¦ ÇϼžßÇϸç, ¹ÝÇ°Á¢¼ö ¾øÀÌ ¹Ý¼ÛÇϰųª, ¿ìÆíÀ¸·Î º¸³¾ °æ¿ì »óÇ° È®ÀÎÀÌ ¾î·Á¿ö ȯºÒÀÌ ºÒ°¡´ÉÇÒ ¼ö ÀÖÀ¸´Ï À¯ÀÇÇϽñ⠹ٶø´Ï´Ù. |
|
|
|
¹è¼Û¿¹Á¤ÀÏ ¾È³» |
ÀÎÅÍÆÄÅ© µµ¼´Â ¸ðµç »óÇ°¿¡ ´ëÇØ ¹è¼Û¿Ï·á¿¹Á¤ÀÏÀ» À¥»çÀÌÆ®¿¡ Ç¥½ÃÇÏ°í ÀÖ½À´Ï´Ù.
|
<ÀÎÅÍÆÄÅ© Á÷¹è¼Û »óÇ°> |
»óÇ°Àº ¿ù~Åä¿äÀÏ ¿ÀÀü 10½Ã ÀÌÀü ÁÖ¹®ºÐ¿¡ ´ëÇÏ¿© ´çÀÏ Ãâ°í/´çÀÏ ¹è¼Û¿Ï·á¸¦ º¸ÀåÇÏ´Â »óÇ°ÀÔ´Ï´Ù. |
»óÇ°Àº ¼¿ïÁö¿ª/ÆòÀÏ ÁÖ¹®ºÐÀº ´çÀÏ Ãâ°í/ÀÍÀÏ ¹è¼Û¿Ï·á¸¦ º¸ÀåÇϸç,
¼¿ï¿ÜÁö¿ª/ÆòÀÏ ÁÖ¹®ºÐÀÇ °æ¿ì´Â ¿ÀÈÄ 6½Ã±îÁö ÁÖ¹®ºÐ¿¡ ´ëÇÏ¿© ÀÍÀÏ ¹è¼Û¿Ï·á¸¦ º¸ÀåÇÏ´Â »óÇ°ÀÔ´Ï´Ù.
(´Ü, ¿ù¿äÀÏÀº 12½Ã±îÁö ÁÖ¹®¿¡ ÇÑÇÔ)
|
»óÇ°Àº, ÀÔ°í¿¹Á¤ÀÏ(Á¦Ç°Ãâ½ÃÀÏ)+Åùè»ç¹è¼ÛÀÏ(1ÀÏ)¿¡ ¹è¼Û¿Ï·á¸¦ º¸ÀåÇÕ´Ï´Ù. |
~
»óÇ°Àº À¯ÅëƯ¼º»ó ÀÎÅÍÆÄÅ©¿¡¼ Àç°í¸¦ º¸À¯ÇÏÁö ¾ÊÀº »óÇ°À¸·Î ÁÖ¹®ÀÏ+±âÁØÃâ°íÀÏ+Åùè»ç¹è¼ÛÀÏ(1ÀÏ)¿¡ ¹è¼Û¿Ï·á¸¦ º¸ÀåÇÕ´Ï´Ù.(Åä/°øÈÞÀÏÀº ¹è¼Û±â°£¿¡ Æ÷ÇÔµÇÁö ¾Ê½À´Ï´Ù.)
¡Ø±âÁØÃâ°íÀÏ:ÀÎÅÍÆÄÅ©°¡ »óÇ°À» ¼ö±ÞÇÏ¿© ¹°·ùâ°í¿¡¼ Æ÷Àå/Ãâ°íÇϱâ±îÁö ¼Ò¿äµÇ´Â ½Ã°£
|
|
<¾÷ü Á÷Á¢¹è¼Û/¿ÀǸ¶ÄÏ »óÇ°> |
~
»óÇ°Àº ¾÷ü°¡ ÁÖ¹®À» È®ÀÎÇÏ°í, Ãâ°íÇϱâ±îÁö °É¸®´Â ½Ã°£ÀÔ´Ï´Ù. ÁÖ¹®ÀÏ+±âÁØÃâ°íÀÏ+Åùè»ç¹è¼ÛÀÏ(2ÀÏ)¿¡ ¹è¼Û¿Ï·á¸¦ º¸ÀåÇÕ´Ï´Ù.(Åä/°øÈÞÀÏÀº ¹è¼Û±â°£¿¡ Æ÷ÇÔµÇÁö ¾Ê½À´Ï´Ù.)
¡Ø5ÀÏÀ̳» Ãâ°í°¡ ½ÃÀÛµÇÁö ¾ÊÀ»½Ã, ¿ÀǸ¶ÄÏ »óÇ°Àº ÀÚµ¿À¸·Î ÁÖ¹®ÀÌ Ãë¼ÒµÇ¸ç, °í°´´Ô²² Ç°Àýº¸»ó±ÝÀ» Áö±ÞÇØ µå¸³´Ï´Ù.
|
|
|
¹è¼Ûºñ ¾È³» |
µµ¼(Áß°íµµ¼ Æ÷ÇÔ)¸¸ ±¸¸ÅÇϽøé : ¹è¼Ûºñ 2,000¿ø (1¸¸¿øÀÌ»ó ±¸¸Å ½Ã ¹«·á¹è¼Û) À½¹Ý/DVD¸¸ ±¸¸ÅÇϽøé : ¹è¼Ûºñ 1,500¿ø (2¸¸¿øÀÌ»ó ±¸¸Å ½Ã ¹«·á¹è¼Û)
ÀâÁö/¸¸È/±âÇÁÆ®¸¸ ±¸¸ÅÇϽøé : ¹è¼Ûºñ 2,000¿ø (2¸¸¿øÀÌ»ó ±¸¸Å ½Ã ¹«·á¹è¼Û)
µµ¼¿Í À½¹Ý/DVD¸¦ ÇÔ²² ±¸¸ÅÇϽøé : ¹è¼Ûºñ 1,500¿ø 1¸¸¿øÀÌ»ó ±¸¸Å ½Ã ¹«·á¹è¼Û)
µµ¼¿Í ÀâÁö/¸¸È/±âÇÁÆ®/Áß°íÁ÷¹è¼Û»óÇ°À» ÇÔ²² ±¸¸ÅÇϽøé : 2,000¿ø (1¸¸¿øÀÌ»ó ±¸¸Å ½Ã ¹«·á¹è¼Û)
¾÷üÁ÷Á¢¹è¼Û»óÇ°À» ±¸¸Å½Ã : ¾÷üº°·Î »óÀÌÇÑ ¹è¼Ûºñ Àû¿ë
* ¼¼Æ®»óÇ°ÀÇ °æ¿ì ºÎºÐÃë¼Ò ½Ã Ãß°¡ ¹è¼Ûºñ°¡ ºÎ°úµÉ ¼ö ÀÖ½À´Ï´Ù.
* ºÏÄ«Æ®¿¡¼ ¹è¼Ûºñ¾ø¾Ö±â ¹öÆ°À» Ŭ¸¯Çϼż, µ¿ÀϾ÷ü»óÇ°À» Á¶±Ý ´õ ±¸¸ÅÇϽøé, ¹è¼Ûºñ¸¦ Àý¾àÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.
|
|
Çؿܹè¼Û ¾È³» |
ÀÎÅÍÆÄÅ©µµ¼¿¡¼´Â ±¹³»¿¡¼ ÁÖ¹®ÇϽðųª ÇØ¿Ü¿¡¼ ÁÖ¹®ÇÏ¿© ÇØ¿Ü·Î ¹è¼ÛÀ» ¿øÇÏ½Ç °æ¿ì DHL°ú Ư¾àÀ¸·Î Ã¥Á¤µÈ ¿ä±ÝÇ¥¿¡
ÀÇÇØ °³ÀÎÀÌ ÀÌ¿ëÇÏ´Â °æ¿ìº¸´Ù ¹è¼Û¿ä±ÝÀ» Å©°Ô ³·Ã߸ç DHL(www.dhl.co.kr)·Î Çؿܹè¼Û ¼ºñ½º¸¦ Á¦°øÇÕ´Ï´Ù.
Çؿܹè¼ÛÀº µµ¼/CD/DVD »óÇ°¿¡ ÇÑÇØ ¼ºñ½ºÇÏ°í ÀÖÀ¸¸ç, ´Ù¸¥ »óÇ°À» ºÏÄ«Æ®¿¡ ÇÔ²² ´ãÀ¸½Ç °æ¿ì Çؿܹè¼ÛÀÌ ºÒ°¡ÇÕ´Ï´Ù.
ÇØ¿ÜÁÖ¹®¹è¼Û ¼ºñ½º´Â ÀÎÅÍÆÄÅ© µµ¼ ȸ¿ø °¡ÀÔÀ» Çϼž߸¸ ½Åû °¡´ÉÇÕ´Ï´Ù. |
|
¾Ë¾ÆµÎ¼¼¿ä!!! |
µµ¸Å»ó ¹× Á¦ÀÛ»ç »çÁ¤¿¡ µû¶ó Ç°Àý/ÀýÆÇ µîÀÇ »çÀ¯·Î Ãë¼ÒµÉ ¼ö ÀÖ½À´Ï´Ù.
¿ÀǸ¶ÄϾ÷üÀÇ ¹è¼ÛÁö¿¬½Ã ÁÖ¹®ÀÌ ÀÚµ¿À¸·Î Ãë¼ÒµÉ ¼ö ÀÖ½À´Ï´Ù.
Ãâ°í°¡´É ½Ã°£ÀÌ ¼·Î ´Ù¸¥ »óÇ°À» ÇÔ²² ÁÖ¹®ÇÒ °æ¿ì Ãâ°í°¡´É ½Ã°£ÀÌ °¡Àå ±ä ±âÁØÀ¸·Î ¹è¼ÛµË´Ï´Ù.
À¯ÅëÀÇ Æ¯¼º»ó Ãâ°í±â°£Àº ¿¹Á¤º¸´Ù ¾Õ´ç°ÜÁö°Å³ª ´ÊÃçÁú ¼ö ÀÖ½À´Ï´Ù.
Åùè»ç ¹è¼ÛÀÏÀÎ ¼¿ï ¹× ¼öµµ±ÇÀº 1~2ÀÏ, Áö¹æÀº 2~3ÀÏ, µµ¼, »ê°£, ±ººÎ´ë´Â 3ÀÏ ÀÌ»óÀÇ ½Ã°£ÀÌ ¼Ò¿äµË´Ï´Ù. |
|
|
|
|