{"id":367,"date":"2014-09-15T00:19:28","date_gmt":"2014-09-15T09:19:28","guid":{"rendered":"http:\/\/blog.box.kr\/?p=367"},"modified":"2014-09-15T00:19:28","modified_gmt":"2014-09-15T09:19:28","slug":"%ed%8e%8cscala-%ec%8b%9c%ec%9e%91%ed%95%98%ea%b8%b0","status":"publish","type":"post","link":"https:\/\/blog.box.kr\/?p=367","title":{"rendered":"[\ud38c]Scala \uc2dc\uc791\ud558\uae30"},"content":{"rendered":"<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/ppassa.wordpress.com\/2012\/02\/19\/getting_started_scala\/\">http:\/\/ppassa.wordpress.com\/2012\/02\/19\/getting_started_scala\/<\/a><\/p>\n<header class=\"entry-header\" style=\"font: 300 15px\/24.37px 'Helvetica Neue', Helvetica, Arial, sans-serif; margin: 0px auto; width: 584.26px; color: #373737; text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; display: block; white-space: normal; font-size-adjust: none; font-stretch: normal; background-color: #ffffff; -webkit-text-stroke-width: 0px;\">\n<h1 class=\"entry-title\">Scala \uc2dc\uc791\ud558\uae30<\/h1>\n<\/header>\n<div class=\"entry-content\" style=\"font: 300 15px\/24.37px 'Helvetica Neue', Helvetica, Arial, sans-serif; margin: 0px auto; padding: 1.62em 0px 0px; outline: 0px; border: 0px currentColor; width: 584.26px; color: #373737; text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; vertical-align: baseline; white-space: normal; font-size-adjust: none; font-stretch: normal; background-color: #ffffff; -webkit-text-stroke-width: 0px;\">\n<p>\uc694\uc998 \ub4e4\uc5b4\uc11c\u00a0<a href=\"http:\/\/www.scala-lang.org\/\">Scala<\/a>\ub97c \uacf5\ubd80\ud558\uace0 \uc788\ub2e4. \uc544\uc9c1 \ub9ce\uc774 \ubd80\uc871\ud558\uc9c0\ub9cc, \uc9c0\uae08\uae4c\uc9c0 \ubc30\uc6b4 \uac83\ub4e4 \uae30\ub85d\ud574\ub450\uace0, \ub610 \ud639\uc2dc \uc870\uae08\uc774\ub77c\ub3c4 \ub3c4\uc6c0\uc774 \ub418\ub294 \ubd84\ub4e4\uc774 \uc788\uc744 \uc9c0 \ubab0\ub77c \uacf5\uc720\ud574\ubcf4\uace0\uc790 \ud55c\ub2e4.<\/p>\n<h1>1. \ub4e4\uc5b4\uac00\uba70<\/h1>\n<hr \/>\n<blockquote style=\"margin: 0px 3em; padding: 0px; outline: 0px; border: 0px currentColor; font-family: Georgia, 'Bitstream Charter', serif; font-size: 15px; font-style: italic; font-weight: normal; vertical-align: baseline;\"><p>\ubb58 \ub610 \ubc30\uc6cc\uc57c \ud55c\ub2e8 \ub9d0\uc778\uac00? \uc774\ubbf8 C++, Java, Python, Ruby, JavaScript \ub4f1 \ub9ce\uc740 \ud504\ub85c\uadf8\ub798\ubc0d \uc5b8\uc5b4\ub4e4\uc774 \uc788\ub294\ub370, \uc65c \uc790\uafb8 \uc0c8\ub85c\uc6b4 \uc5b8\uc5b4\uac00 \ub098\uc624\uace0 \uc788\ub0d0? \uae30\uc874 \uac78\ub85c \uc548\ub418\ub0d0?<\/p><\/blockquote>\n<p>\ub77c\ub294 \uc758\ubb38\uc744 \uac00\uc9c8 \uc218 \uc788\ub2e4. \ub098 \uc5ed\uc2dc \ucc98\uc74c\uc5d0 \uadf8\ub7f0 \uc0dd\uac01\uc744 \ud588\uc5c8\ub2e4. \ud558\uc9c0\ub9cc, Scala\uc5d0 \ub300\ud574 \uacf5\ubd80\ub97c \ud558\ub2e4 \ubcf4\ub2c8, \uc774\uc81c\ub294 \uadf8\ub7f0 \uc758\ubb38\ub4e4\uc774 \ub9ce\uc774 \uc5c6\uc5b4\uc84c\ub2e4. \uc5b4\ub5bb\uac8c \uc758\ubb38\uc744 \ud574\uc18c\ud588\uc5c8\ub294\uc9c0, \uadf8\ub7fc \uc870\uae08 \uc790\uc138\ud788 \uc774\uc57c\uae30 \ud574\ubcf4\uaca0\ub2e4.<\/p>\n<h1>2. Scala?<\/h1>\n<hr \/>\n<p>Scala\ub294 \ub2e4\uc74c\uacfc \uac19\uc740 \ud2b9\uc9d5\uc774 \uc788\ub2e4.<\/p>\n<h2>2.1 Fuctional language\uc774\uba70 \ub610\ud55c object-oriented language\uc774\ub2e4.<\/h2>\n<p>Ruby\ub098 C#\uc744 \uc4f0\ub2e4\uac00 Java\ub098 C++ \uac19\uc740 \uc5b8\uc5b4\ub97c \uc4f8 \ub54c \uc870\uae08 \ub2f5\ub2f5\ud55c \uac83\uc774, lambda\uc640 \uac19\uc740 functioncal language\uc801\uc778 syntax\uac00 \uc5c6\ub2e4\ub294 \uac83\uc774\ub2e4. \uc774\uac83\uc744 \uc548 \uc4f8\ub54c\ub294 \ubab0\ub790\ub294\ub370, \uc77c\ub2e8 \uc190\uc5d0 \uc775\uc73c\uba74 \uc0dd\uc0b0\uc131\uc774 \ub9e4\uc6b0 \ub192\uc544\uc9c4\ub2e4. Scala\ub294 lambda\ub97c \ube44\ub86f\ud558\uc5ec \uc5ec\ub7ec functional language\uc758 \ubb38\ubc95\uc744 \uc9c0\uc6d0\ud55c\ub2e4. \ub3d9\uc2dc\uc5d0, object-oriented\uc801\uc778 \uc694\uc18c\ub3c4 \uc9c0\uc6d0\ud558\uae30 \ub54c\ubb38\uc5d0, objected-oriented language\uc5d0 \uc775\uc219\ud55c \ud504\ub85c\uadf8\ub798\uba38\ub4e4\uc774 functional language\ub97c \ubc30\uc6b0\uace0\uc790 \ud560 \ub54c \uc27d\uac8c \ub2e4\uac00\uac08 \uc218 \uc788\ub2e4.<\/p>\n<p>\ub098\ub294 C++\uc774 \ucd08\uae30\uc5d0 \ub2e4\ub978 object-oriented language\ub4e4\uc744 \uc81c\uce58\uace0 \uc131\uacf5\ud560 \uc218 \uc788\uc5c8\ub358 \uac00\uc7a5 \ud070 \uc774\uc720\uac00, C++\uc774 C \ubb38\ubc95\ub3c4 \uc9c0\uc6d0\ud588\uae30 \ub54c\ubb38\uc774\ub77c\uace0 \uc0dd\uac01\ud55c\ub2e4. C++ \ucef4\ud30c\uc77c\ub7ec\ub97c \uc774\uc6a9\ud558\uba74, C\uc5d0 \uc775\uc219\ud55c \ud504\ub85c\uadf8\ub798\uba38\ub4e4\uc740 C\ub85c \ucf54\ub529\uc744 \ud558\uba74\uc11c\ub3c4, \ubd80\ubd84\ubd80\ubd84 \uc27d\uac8c object-oriented\uc801\uc778 \uc694\uc18c\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc5c8\ub2e4. \ub9c8\ucc2c\uac00\uc9c0\ub85c Scala\ub294 \uae30\uc874\uc758 Java\ub098 C++\ub4f1 object-oriented language\uc5d0 \uc775\uc219\ud55c \ud504\ub85c\uadf8\ub798\uba38\ub4e4\uc744 functional language\ub85c \uc27d\uac8c \ub04c\uc5b4 \ub4e4\uc77c \uc218 \uc788\ub294 \uc7a5\uc810\uc774 \uc788\ub2e4.<\/p>\n<h2>2.2 Java Virtual Machine\uc5d0\uc11c \ub3d9\uc791\ud55c\ub2e4.<\/h2>\n<p><a class=\"zem_slink\" title=\"Java Virtual Machine\" href=\"http:\/\/en.wikipedia.org\/wiki\/Java_Virtual_Machine\" rel=\"wikipedia\">Java Virtual Machine<\/a>(\uc774\ud558 JVM)\uc740 Java\ub97c \ucef4\ud30c\uc77c\ud574\uc11c \ub098\uc624\ub294 bytecode\uac00 \ub3d9\uc791\ud558\ub294 virtual machine\uc774\ub2e4. Scala\ub294 \ud2b9\uc774\ud558\uac8c\ub3c4 \uc18c\uc2a4 \ucf54\ub4dc\ub97c \ucef4\ud30c\uc77c\ud558\uba74 \uadf8 \uacb0\uacfc\ub85c JVM\uc5d0\uc11c \ub3d9\uc791\ud558\ub294 bytecode\uac00 \uacb0\uacfc\ubb3c\ub85c \ub098\uc628\ub2e4. \ub2e4\uc2dc \ub9d0\ud574 Scala\ub294 JVM\uc0c1\uc5d0\uc11c \ub3d9\uc791\ud55c\ub2e4.<\/p>\n<p>\uc774\uac83\uc740 \ub450 \uac00\uc9c0 \uc911\uc694\ud55c \uc758\ubbf8\ub97c \uac16\ub294\ub2e4. \ud558\ub098\ub294 \ucef4\ud30c\uc77c \ub41c Scala \ucf54\ub4dc\ub294 \uc774\ubbf8 10\ub144 \uc774\uc0c1 \ucd5c\uc801\ud654\uac00 \ub418\uc5b4 \uc788\ub294 JVM \uc0c1\uc5d0\uc11c \ub3d9\uc791\ud558\uae30 \ub54c\ubb38\uc5d0, \uc131\ub2a5\uacfc \uc548\uc815\uc131\uc744 \uc5b4\ub290 \uc815\ub3c4 \ubcf4\uc7a5\ud55c\ub2e4.<\/p>\n<p>\ub610, \uae30\uc874\uc5d0 Java\ub85c \uc791\uc131\ub41c \uc18c\uc2a4\uc640 \ud638\ud658\uc774 \ub418\uae30 \ub54c\ubb38\uc5d0, \uc5c4\uccad\ub098\uac8c \ub9ce\uc740 Java \ub77c\uc774\ube0c\ub7ec\ub9ac\ub4e4\uc744 Scala\uc5d0\uc11c \uadf8\ub300\ub85c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4. \uc57c\ud638!<\/p>\n<h1>3. Who uses Scala?<\/h1>\n<hr \/>\n<p>Scala\ub97c \ub204\uac00 \uc4f0\uae30\ub294 \uc4f0\ub294\uac00? \uc0dd\uac01\ubcf4\ub2e4 \ub9ce\uc774 \uc4f0\uace0 \uc788\uace0, \uc810\ucc28 \ub354 \ub3c4\uc785\ub418\ub294 \ucd94\uc138\uc778 \uac83 \uac19\ub2e4. \ub300\ud45c\uc801\uc73c\ub85c \ub2e4\uc74c\uacfc \uac19\uc740 \ud68c\uc0ac\ub4e4\uc774 \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n<h2>3.1 Twitter<\/h2>\n<p>Twitter \uc11c\ube44\uc2a4\ub294 \ucd08\uae30\uc5d0 Ruby on Rails\ub97c \uc774\uc6a9\ud558\uc5ec \uac1c\ubc1c\ub418\uc5c8\ub2e4. \uadf8\ub7f0\ub370 Ruby on Rails\ub97c \uc774\uc6a9\ud574 \ube68\ub9ac \uac1c\ubc1c\ud560 \uc218\ub294 \uc788\uc5c8\uc9c0\ub9cc, \uc774\ud6c4\uc5d0 traffic\uc774 \ub9ce\uc544 \uc9c0\uba74\uc11c \uc131\ub2a5\uc774 \ubb38\uc81c\uac00 \ub418\uc5c8\ub2e4. \uc774\ub97c \ud574\uacb0\ud558\uae30 \uc704\ud574 Scala\ub97c \ub3c4\uc785\ud558\uc600\ub2e4\uace0 \ud55c\ub2e4.<span class=\"Apple-converted-space\">\u00a0<\/span><a href=\"http:\/\/www.artima.com\/scalazine\/articles\/twitter_on_scala.html\">\ud2b8\uc704\ud130 \uac1c\ubc1c\uc790\ub4e4\uc758 \uc778\ud130\ubdf0<\/a><span class=\"Apple-converted-space\">\u00a0<\/span>\ucc38\uace0.<\/p>\n<h2>3.2\u00a0FourSquare<\/h2>\n<p>FourSquare \uc11c\ube44\uc2a4\ub294 \ucd08\uae30 \ubc84\uc804\uc740 PHP\ub85c \uc791\uc131\ub418\uc5c8\ub2e4\uace0 \ud55c\ub2e4. \ud558\uc9c0\ub9cc \uc0ac\uc6a9\uc790\uac00 \uae09\uc99d\ud558\uc790 software stack\uc5d0 \ubcc0\ud654\uac00 \ud544\uc694\ud588\uace0, Harry Heymann\uc774\ub77c\ub294 \uc5d4\uc9c0\ub2c8\uc5b4\uac00 \uc774 \uc791\uc5c5\uc744 \uc8fc\ub3c4\ud558\uba74\uc11c Scala\ub85c \uc804\uba74\uc801\uc73c\ub85c \ub2e4\uc2dc \uac1c\ubc1c\ud588\ub2e4\uace0 \ud55c\ub2e4. \uc774 \uacfc\uc815\uc5d0\uc11c \uc0dd\uc0b0\uc131 \ud5a5\uc0c1\uacfc \uc131\ub2a5 \ud5a5\uc0c1\uc774 \uc788\uc5c8\ub2e4\ub294 \uc774\uc57c\uae30\ub3c4 \uc788\ub2e4. Scala \uacf5\uc2dd \ud648\ud398\uc774\uc9c0\uc5d0<span class=\"Apple-converted-space\">\u00a0<\/span><a href=\"http:\/\/www.scala-lang.org\/node\/5130\">\uad00\ub828\ub41c \uae00<\/a>\uc774 \uc788\uc73c\ub2c8 \ucc38\uace0.<\/p>\n<h2>3.3 Tumblr<\/h2>\n<p>Tumblr \ub610\ud55c \ubd80\ubd84\uc801\uc73c\ub85c Scala\ub97c \uc4f0\uace0 \uc788\ub2e4\uace0 \ud55c\ub2e4. Back-end\uc6a9\uc73c\ub85c \uc4f0\uc774\uace0 \uc788\uace0, Twitter\uc5d0\uc11c \ub9cc\ub4e0 Scala\uc6a9 \ub77c\uc774\ube0c\ub7ec\ub9ac\uc778<span class=\"Apple-converted-space\">\u00a0<\/span><a href=\"http:\/\/twitter.github.com\/finagle\/\">Finagle<\/a>\uc744 \uc774\uc6a9\ud574 \uc0ac\uc6a9\ud55c\ub2e4\uace0 \uc54c\ub824\uc838 \uc788\ub2e4.<a href=\"http:\/\/highscalability.com\/blog\/2012\/2\/13\/tumblr-architecture-15-billion-page-views-a-month-and-harder.html\">Tumblr\uc758 \uac1c\ubc1c \ubc29\uc2dd\uc5d0 \ub300\ud574 \uc815\ub9ac\ub41c \ud398\uc774\uc9c0<\/a><span class=\"Apple-converted-space\">\u00a0<\/span>\ucc38\uace0.<\/p>\n<h1>4. Scala \uc2dc\uc791\ud558\uae30<\/h1>\n<hr \/>\n<p>Scala\uc5d0 \ub300\ud55c \ud765\ubbf8\uac00 \uc870\uae08\uc740 \uc0dd\uacbc\uc73c\ub9ac\ub77c \uc608\uc0c1\ud574\ubcf8\ub2e4. \uadf8\ub7fc \ub2e4\uc74c\uacfc \uac19\uc740 \uc790\ub8cc\ub97c \ud65c\uc6a9\ud574\uc11c \uacf5\ubd80\ub97c \uc2dc\uc791\ud574\ubcf4\uc790.<\/p>\n<h2>4.1<span class=\"Apple-converted-space\">\u00a0<\/span><a href=\"http:\/\/blog.typesafe.com\/free-pdf-from-typesafe-scala-for-the-impatien-64715\">Scala for the impatient<\/a><\/h2>\n<p>\ud504\ub85c\uadf8\ub798\ubc0d \uacbd\ud5d8\uc774 \uc5b4\ub290 \uc815\ub3c4 \uc788\ub294 \ubd84\ub4e4\uc5d0\uac8c \ucd94\ucc9c\ud558\ub294 \ucc45\uc774\ub2e4. \uc81c\ubaa9\uc5d0\uc11c\ub3c4 \uc54c \uc218 \uc788\ub4ef\uc774 \ube68\ub9ac \ubb38\ubc95\uc744 \uc775\ud600 \ucf54\ub529\ud574\ubcf4\uace0\uc790 \ud55c\ub2e4\uba74 \uc88b\uc740 \uc120\ud0dd\uc774\ub2e4. \uc911\uc694\ud55c \ubb38\ubc95\uc5d0 \ub300\ud574\uc11c \uac04\uacb0\ud558\uac8c \uc798 \uc124\uba85\ub418\uc5b4 \uc788\ub2e4. \uacf5\uc9dc\ub2e4.<\/p>\n<h2>4.2<span class=\"Apple-converted-space\">\u00a0<\/span><a href=\"http:\/\/twitter.github.com\/scala_school\/\">Twitter Scala School<\/a><\/h2>\n<p>Twitter\uc5d0\uc11c \ub9cc\ub4e0 \uad50\uc721 \uc790\ub8cc\uc774\ub2e4. \uc544\ub9c8\ub3c4, \uc790\uc0ac\uc758 \uc5d4\uc9c0\ub2c8\uc5b4\ub4e4\uc744 \uc704\ud574 \ub9cc\ub4e4\uc9c0 \uc54a\uc558\ub098 \uc0dd\uac01\ub41c\ub2e4. \ub0b4\uc6a9\uc774 \uac04\uacb0\ud558\uace0, \uc608\uc81c \uc704\uc8fc\ub85c \ub418\uc5b4 \uc788\uc5b4\uc11c \ube68\ub9ac \uc775\ud788\uae30\uc5d0 \uc88b\ub2e4.<\/p>\n<h2>4.3<span class=\"Apple-converted-space\">\u00a0<\/span><a href=\"http:\/\/programming-scala.labs.oreilly.com\/index.html\">Programming Scala<\/a><\/h2>\n<p>Scala\uc758 \ub3d9\uc791 \uc6d0\ub9ac\ubd80\ud130 \ucc28\uadfc\ucc28\uadfc \uc798 \uc124\uba85\ud55c \ucc45\uc774\ub2e4. Scala\uc5d0 \ub300\ud574 \uc880\ub354 \uae4a\uc774 \uc774\ud574\ub97c \ud558\uace0\uc790 \ud558\ub294 \uacbd\uc6b0\ub098 \ub610\ub294 \u00a0\ud504\ub85c\uadf8\ub798\ubc0d \uacbd\ud5d8\uc774 \ub9ce\uc9c0 \uc54a\uc740 \ubd84\ub4e4\uc5d0\uac8c \ucd94\ucc9c\ud558\uace0 \uc2f6\ub2e4. \uc5ed\uc2dc \uacf5\uc9dc\ub2e4.<\/p>\n<p>Programming language\ub4e4\uc774 \ub9ce\uc774 \ub098\uc624\uba74\uc11c, \uc694\uc998\uc740 \uac01 language community\ub4e4\uc774 \uc801\uadf9\uc801\uc73c\ub85c \ud655\uc0b0\uc5d0 \ub098\uc11c\uace0 \uc788\uace0, \uadf8\ub798\uc11c \ubb34\ub8cc \uc790\ub8cc\uac00 \ucc38 \ub9ce\ub2e4. Scala\ub97c \uacf5\ubd80\ud558\uae30 \uc704\ud574\uc11c, \uad73\uc774 \ub3c8\uc8fc\uace0 \uc885\uc774\ucc45 \uc0b4 \ud544\uc694\ub294 \uc5c6\uc744 \ub4ef \ud558\ub2e4.<\/p>\n<h1>5. \uac1c\ubc1c \ud658\uacbd<\/h1>\n<hr \/>\n<h2>5.1 build<\/h2>\n<p>Scala\ub294 \ucef4\ud30c\uc77c language\uc774\uae30 \ub54c\ubb38\uc5d0, build\ub97c \ud574\uc8fc\uc5b4\uc57c \ud55c\ub2e4. \ubb3c\ub860 \uc18c\uc2a4 \ud558\ub098\uc529 compile\ud574\uc11c build\ud558\ub294 \ubc29\ubc95\ub3c4 \uc788\uaca0\uc9c0\ub9cc, \uc774\uac83\ubcf4\ub2e4\ub294 \ubcc4\ub3c4\uc758 build \ud234\uc744 \uc4f0\uba74 \ud3b8\ud558\ub2e4. \ub9ce\uc740 scala \uc624\ud508 \uc18c\uc2a4 \ud504\ub85c\uc81d\ud2b8\ub4e4\uc774 \ucd5c\uadfc\uc5d0<span class=\"Apple-converted-space\">\u00a0<\/span><a href=\"https:\/\/github.com\/harrah\/xsbt\/wiki\">simple build tool<\/a>(\uc774\ud558 sbt)\ub97c \uc0ac\uc6a9\ud558\uace0 \uc788\ub2e4. \uc0ac\uc6a9\ubc95\uc774 \uae38\uc9c0 \uc54a\uc73c\ub2c8 \uaf2d \uc0ac\uc6a9\ubc95\uc744 \uc77d\uc5b4\ubcf4\ub294 \uac83\uc774 \ub098\uc911\uc5d0 \uc218\uace0\ub97c \ub35c\uc5b4\uc904 \uac83\uc774\ub2e4.<\/p>\n<h2>5.2\u00a0IDE<\/h2>\n<p>\uac1c\ubc1c\ud234\ub85c \ub9ce\uc774 \uc4f0\uc774\ub294 \uac83\uc774 Eclipse\uc640<span class=\"Apple-converted-space\">\u00a0<\/span><a class=\"zem_slink\" title=\"IntelliJ IDEA\" href=\"http:\/\/www.jetbrains.com\/idea\/\" rel=\"homepage\">IntelliJ<\/a><span class=\"Apple-converted-space\">\u00a0<\/span>IDEA\uc774\ub2e4. 2\uac1c \ubaa8\ub450 \uc0ac\uc6a9\ud574\ubd24\ub294\ub370, \ub458 \ub2e4 \uad1c\ucc2e\ub2e4. Eclipse\ub294 Scala IDE for Eclispe\ub77c\ub294 plugin\uc744 \uc124\uce58\ud574\uc57c \ud558\uace0, IntelliJ IDEA\ub3c4 JetBrains\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 Scala plugin\uc744 \uc124\uce58\ud574\uc57c \ud55c\ub2e4. \ub458\ub2e4 Syntax highlighting, debugging \ub4f1\uc758 \uae30\ub2a5\uc774 \uc788\uc5b4\uc11c Vim\uc774\ub098 Emacs\uac19\uc740 \uc5d0\ub514\ud130 \ubcf4\ub2e4 \ub0ab\uc9c0 \uc54a\ub098 \uc2f6\ub2e4.<\/p>\n<h1>6. Hello World<\/h1>\n<hr \/>\n<p>\uadf8\ub7fc \uac04\ub2e8\ud55c \ud504\ub85c\uadf8\ub7a8\uc744 \ub9cc\ub4e4\uace0, debugging\uae4c\uc9c0 \ud574\ubcf4\uaca0\ub2e4. \uae30\ubcf8\uc801\uc778 \uc21c\uc11c\ub294 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n<ol>\n<li><a class=\"zem_slink\" title=\"Eclipse (software)\" href=\"http:\/\/www.eclipse.org\/\" rel=\"homepage\">Eclipse<\/a><span class=\"Apple-converted-space\">\u00a0<\/span>\uc124\uce58<\/li>\n<li>Scala IDE for Eclipse Plug-in \uc124\uce58<\/li>\n<li>sbt \uc124\uce58<\/li>\n<li>sbt\uc6a9 \ub514\ub809\ud1a0\ub9ac \uad6c\uc131<\/li>\n<li>sbt\ub97c \uc774\uc6a9\ud574 Eclipse \ud504\ub85c\uc81d\ud2b8 \uc0dd\uc131<\/li>\n<li>\uc18c\uc2a4 \ucf54\ub4dc \uc791\uc131<\/li>\n<li>Debugging<\/li>\n<\/ol>\n<h2>6.1 Eclipse \uc124\uce58<\/h2>\n<p><a href=\"http:\/\/www.eclipse.org\/downloads\/packages\/eclipse-classic-362\/heliossr2\">Eclipse\ub294 3.6(Helios) \ubc84\uc804<\/a>\uc744 \uc124\uce58\ud55c\ub2e4.<\/p>\n<h2>6.2 Scala IDE for Eclipse<\/h2>\n<p>Eclipse\uc6a9 scala plugin\uc778<span class=\"Apple-converted-space\">\u00a0<\/span><a href=\"http:\/\/scala-ide.org\/\">Scala IDE for Eclipse<\/a>\ub97c \uc124\uce58\ud55c\ub2e4.<\/p>\n<h2>6.3 sbt \uc124\uce58<\/h2>\n<p><a href=\"https:\/\/github.com\/harrah\/xsbt\/wiki\/Getting-Started-Setup\">\uc774 \ub9c1\ud06c<\/a>\ub97c \uc774\uc6a9\ud558\uc5ec sbt\ub97c \uc124\uce58\ud55c\ub2e4.<\/p>\n<p>\ucc38\uace0\ub85c, sbt\ub97c \uc124\uba85\ud558\ub294 wiki \ud398\uc774\uc9c0\uac00 \uae38\uc9c0 \uc54a\uc73c\ub2c8, \ubc18\ub4dc\uc2dc \uc77d\uc5b4\ubcf4\uace0 sbt\uc758 \uac1c\ub150\uc774\ub098 \uc0ac\uc6a9 \ubc29\ubc95\uc744 \uc54c\uc544\ub450\ub294 \uac83\uc774 \ub098\uc911\uc5d0 \uc2dc\uac04\uc744 \uc904\uc77c \uc218 \uc788\ub294 \ubc29\ubc95\uc774\ub2e4.<\/p>\n<h2>6.4 sbt\uc6a9 \ub514\ub809\ud1a0\ub9ac \uad6c\uc131<\/h2>\n<p>\ud504\ub85c\uc81d\ud2b8\uc758 \uae30\ubcf8 \uc815\ubcf4 \ubc0f \uc0ac\uc6a9\ud558\ub294 \uc774 \ud504\ub85c\uc81d\ud2b8\uc5d0\uc11c \uc0ac\uc6a9\ud558\ub294 \ud50c\ub7ec\uadf8\uc778\uc744 \uc124\uc815\ud558\uc5ec sbt\uc6a9 \ub514\ub809\ud1a0\ub9ac \ubc0f \uc124\uc815\ud30c\uc77c\uc744 \uad6c\uc131\ud55c\ub2e4. \uc774 \ubd80\ubd84\uc740 sbt \uba54\ub274\uc5bc\uc744 \ucc38\uace0\ud558\ub3c4\ub85d \ud55c\ub2e4.<\/p>\n<h2>6.5 sbt\ub97c \uc774\uc6a9\ud574 Eclipse \ud504\ub85c\uc81d\ud2b8 \uc0dd\uc131<\/h2>\n<p>\uc55e\uc5d0\uc11c \ub9cc\ub4e0 sbt\uc6a9 \ub514\ub809\ud1a0\ub9ac\ub85c \ub4e4\uc5b4\uac00\uc11c \ub2e4\uc74c\uacfc \uac19\uc774 \uc785\ub825\ud558\uba74 Eclipse\uc6a9 \ud504\ub85c\uc81d\ud2b8 \ud30c\uc77c\uc778 .project\uc640 .classpath\uac00 \uc0dd\uae34\ub2e4.<\/p>\n<p><code style=\"font: 13px\/normal Monaco, Consolas, 'Andale Mono', 'DejaVu Sans Mono', monospace; margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; font-size-adjust: none; font-stretch: normal;\">&gt; sbt eclipse<\/code><\/p>\n<p>Ecilpse\uc758 \uba54\ub274\uc5d0\uc11c \u2018File\u2019 &gt; \u2018\u2018Import\u2026\u2019\ub97c \ud074\ub9ad\ud558\uace0, \uc55e\uc5d0\uc11c \ub9cc\ub4e0 \ub514\ub809\ud1a0\ub9ac\ub97c \uc120\ud0dd\ud558\uba74 \ud504\ub85c\uc81d\ud2b8\ub97c \uc5f4 \uc218 \uc788\ub2e4.<\/p>\n<h2>6.6 \uc18c\uc2a4 \ucf54\ub4dc \uc791\uc131<\/h2>\n<p>Ecilpse\uc5d0\uc11c \uc55e\uc5d0\uc11c \uc0dd\uc131\ud55c \ud504\ub85c\uc81d\ud2b8\ub97c \uc5f4\uc5b4\ubcf4\uba74 \uc774\ubbf8 \u2018src\/main\/scala\u2019 package\uac00 \uc0dd\uc131\ub41c \uac83\uc744 \ud655\uc778 \ud560 \uc218 \uc788\ub2e4. \uc774 package \ubc11\uc5d0 App.scala \ud30c\uc77c\uc744 \ub9cc\ub4e4\uace0 \ub2e4\uc74c\uacfc \uac19\uc774 \uc785\ub825\ud55c\ub2e4.<\/p>\n<div>\n<div id=\"highlighter_743704\" class=\"syntaxhighlighter  scala\">\n<table style=\"background: none !important; margin: 0px !important; padding: 0px !important; outline: 0px !important; border-radius: 0px !important; border: 0px currentColor !important; left: auto !important; top: auto !important; width: 584px; height: auto !important; text-align: left !important; right: auto !important; bottom: auto !important; line-height: 1.1em !important; overflow: visible !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; vertical-align: baseline !important; float: none !important; border-collapse: separate; position: static !important; direction: ltr !important; box-sizing: content-box !important; border-spacing: 0px; box-shadow: none !important; -webkit-box-shadow: none;\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody style=\"background: none !important; margin: 0px !important; padding: 0px !important; outline: 0px !important; border-radius: 0px !important; border: 0px currentColor !important; left: auto !important; top: auto !important; width: auto !important; height: auto !important; text-align: left !important; right: auto !important; bottom: auto !important; line-height: 1.1em !important; overflow: visible !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; vertical-align: baseline !important; float: none !important; position: static !important; direction: ltr !important; box-sizing: content-box !important; box-shadow: none !important; -webkit-box-shadow: none;\">\n<tr style=\"background: none !important; margin: 0px !important; padding: 0px !important; outline: 0px !important; border-radius: 0px !important; border: 0px currentColor !important; left: auto !important; top: auto !important; width: auto !important; height: auto !important; text-align: left !important; right: auto !important; bottom: auto !important; line-height: 1.1em !important; overflow: visible !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; vertical-align: baseline !important; float: none !important; position: static !important; direction: ltr !important; box-sizing: content-box !important; box-shadow: none !important; -webkit-box-shadow: none;\">\n<td class=\"gutter\" style=\"background: none !important; margin: 0px !important; padding: 0px !important; outline: 0px !important; border-radius: 0px !important; border: 0px currentColor !important; left: auto !important; top: auto !important; width: auto !important; height: auto !important; text-align: left !important; right: auto !important; bottom: auto !important; color: #afafaf !important; line-height: 1.1em !important; overflow: visible !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; vertical-align: baseline !important; float: none !important; position: static !important; direction: ltr !important; box-sizing: content-box !important; box-shadow: none !important; -webkit-box-shadow: none;\">\n<div class=\"line number1 index0 alt2\" style=\"background: white !important; border-width: 0px 3px 0px 0px !important; margin: 0px !important; padding: 0px 0.5em 0px 1em !important; outline: 0px !important; border-radius: 0px !important; left: auto !important; top: auto !important; width: auto !important; height: auto !important; text-align: right !important; right: auto !important; bottom: auto !important; line-height: 1.1em !important; overflow: visible !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; vertical-align: baseline !important; border-right-color: #6ce26c !important; border-right-style: solid !important; float: none !important; white-space: pre !important; position: static !important; direction: ltr !important; box-sizing: content-box !important; box-shadow: none !important; -webkit-box-shadow: none;\">1\n<\/div>\n<div class=\"line number2 index1 alt1\" style=\"background: white !important; border-width: 0px 3px 0px 0px !important; margin: 0px !important; padding: 0px 0.5em 0px 1em !important; outline: 0px !important; border-radius: 0px !important; left: auto !important; top: auto !important; width: auto !important; height: auto !important; text-align: right !important; right: auto !important; bottom: auto !important; line-height: 1.1em !important; overflow: visible !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; vertical-align: baseline !important; border-right-color: #6ce26c !important; border-right-style: solid !important; float: none !important; white-space: pre !important; position: static !important; direction: ltr !important; box-sizing: content-box !important; box-shadow: none !important; -webkit-box-shadow: none;\">2\n<\/div>\n<div class=\"line number3 index2 alt2\" style=\"background: white !important; border-width: 0px 3px 0px 0px !important; margin: 0px !important; padding: 0px 0.5em 0px 1em !important; outline: 0px !important; border-radius: 0px !important; left: auto !important; top: auto !important; width: auto !important; height: auto !important; text-align: right !important; right: auto !important; bottom: auto !important; line-height: 1.1em !important; overflow: visible !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; vertical-align: baseline !important; border-right-color: #6ce26c !important; border-right-style: solid !important; float: none !important; white-space: pre !important; position: static !important; direction: ltr !important; box-sizing: content-box !important; box-shadow: none !important; -webkit-box-shadow: none;\">3\n<\/div>\n<div class=\"line number4 index3 alt1\" style=\"background: white !important; border-width: 0px 3px 0px 0px !important; margin: 0px !important; padding: 0px 0.5em 0px 1em !important; outline: 0px !important; border-radius: 0px !important; left: auto !important; top: auto !important; width: auto !important; height: auto !important; text-align: right !important; right: auto !important; bottom: auto !important; line-height: 1.1em !important; overflow: visible !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; vertical-align: baseline !important; border-right-color: #6ce26c !important; border-right-style: solid !important; float: none !important; white-space: pre !important; position: static !important; direction: ltr !important; box-sizing: content-box !important; box-shadow: none !important; -webkit-box-shadow: none;\">4\n<\/div>\n<div class=\"line number5 index4 alt2\" style=\"background: white !important; border-width: 0px 3px 0px 0px !important; margin: 0px !important; padding: 0px 0.5em 0px 1em !important; outline: 0px !important; border-radius: 0px !important; left: auto !important; top: auto !important; width: auto !important; height: auto !important; text-align: right !important; right: auto !important; bottom: auto !important; line-height: 1.1em !important; overflow: visible !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; vertical-align: baseline !important; border-right-color: #6ce26c !important; border-right-style: solid !important; float: none !important; white-space: pre !important; position: static !important; direction: ltr !important; box-sizing: content-box !important; box-shadow: none !important; -webkit-box-shadow: none;\">5\n<\/div>\n<\/td>\n<td class=\"code\" style=\"background: none !important; margin: 0px !important; padding: 0px !important; outline: 0px !important; border-radius: 0px !important; border: 0px currentColor !important; left: auto !important; top: auto !important; width: 550px; height: auto !important; text-align: left !important; right: auto !important; bottom: auto !important; line-height: 1.1em !important; overflow: visible !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; vertical-align: baseline !important; float: none !important; position: static !important; direction: ltr !important; box-sizing: content-box !important; box-shadow: none !important; -webkit-box-shadow: none;\">\n<div class=\"container\" style=\"background: none !important; margin: 0px !important; padding: 0px !important; outline: 0px !important; border-radius: 0px !important; border: 0px currentColor !important; left: auto !important; top: auto !important; width: auto !important; height: auto !important; text-align: left !important; right: auto !important; bottom: auto !important; line-height: 1.1em !important; overflow: visible !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; vertical-align: baseline !important; float: none !important; position: relative !important; direction: ltr !important; box-sizing: content-box !important; box-shadow: none !important; -webkit-box-shadow: none;\">\n<div class=\"line number1 index0 alt2\" style=\"background: white !important; margin: 0px !important; padding: 0px 1em !important; outline: 0px !important; border-radius: 0px !important; border: 0px currentColor !important; left: auto !important; top: auto !important; width: auto !important; height: auto !important; text-align: left !important; right: auto !important; bottom: auto !important; line-height: 1.1em !important; overflow: visible !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; vertical-align: baseline !important; float: none !important; white-space: pre !important; position: static !important; direction: ltr !important; box-sizing: content-box !important; box-shadow: none !important; -webkit-box-shadow: none;\"><code class=\"scala keyword\" style=\"background: none !important; margin: 0px !important; padding: 0px !important; outline: 0px !important; border-radius: 0px !important; border: 0px currentColor !important; left: auto !important; top: auto !important; width: auto !important; height: auto !important; text-align: left !important; right: auto !important; bottom: auto !important; color: #006699 !important; line-height: 1.1em !important; overflow: visible !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; vertical-align: baseline !important; float: none !important; display: inline !important; position: static !important; direction: ltr !important; box-sizing: content-box !important; box-shadow: none !important; -webkit-box-shadow: none;\">object<\/code> <code class=\"scala plain\" style=\"background: none !important; margin: 0px !important; padding: 0px !important; outline: 0px !important; border-radius: 0px !important; border: 0px currentColor !important; left: auto !important; top: auto !important; width: auto !important; height: auto !important; text-align: left !important; right: auto !important; bottom: auto !important; color: black !important; line-height: 1.1em !important; overflow: visible !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; vertical-align: baseline !important; float: none !important; display: inline !important; position: static !important; direction: ltr !important; box-sizing: content-box !important; box-shadow: none !important; -webkit-box-shadow: none;\">App {<\/code>\n<\/div>\n<div class=\"line number2 index1 alt1\" style=\"background: white !important; margin: 0px !important; padding: 0px 1em !important; outline: 0px !important; border-radius: 0px !important; border: 0px currentColor !important; left: auto !important; top: auto !important; width: auto !important; height: auto !important; text-align: left !important; right: auto !important; bottom: auto !important; line-height: 1.1em !important; overflow: visible !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; vertical-align: baseline !important; float: none !important; white-space: pre !important; position: static !important; direction: ltr !important; box-sizing: content-box !important; box-shadow: none !important; -webkit-box-shadow: none;\"><code class=\"scala spaces\" style=\"background: none !important; margin: 0px !important; padding: 0px !important; outline: 0px !important; border-radius: 0px !important; border: 0px currentColor !important; left: auto !important; top: auto !important; width: auto !important; height: auto !important; text-align: left !important; right: auto !important; bottom: auto !important; line-height: 1.1em !important; overflow: visible !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; vertical-align: baseline !important; float: none !important; display: inline !important; position: static !important; direction: ltr !important; box-sizing: content-box !important; box-shadow: none !important; -webkit-box-shadow: none;\">\u00a0\u00a0<\/code><code class=\"scala keyword\" style=\"background: none !important; margin: 0px !important; padding: 0px !important; outline: 0px !important; border-radius: 0px !important; border: 0px currentColor !important; left: auto !important; top: auto !important; width: auto !important; height: auto !important; text-align: left !important; right: auto !important; bottom: auto !important; color: #006699 !important; line-height: 1.1em !important; overflow: visible !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; vertical-align: baseline !important; float: none !important; display: inline !important; position: static !important; direction: ltr !important; box-sizing: content-box !important; box-shadow: none !important; -webkit-box-shadow: none;\">def<\/code> <code class=\"scala plain\" style=\"background: none !important; margin: 0px !important; padding: 0px !important; outline: 0px !important; border-radius: 0px !important; border: 0px currentColor !important; left: auto !important; top: auto !important; width: auto !important; height: auto !important; text-align: left !important; right: auto !important; bottom: auto !important; color: black !important; line-height: 1.1em !important; overflow: visible !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; vertical-align: baseline !important; float: none !important; display: inline !important; position: static !important; direction: ltr !important; box-sizing: content-box !important; box-shadow: none !important; -webkit-box-shadow: none;\">main(args<\/code><code class=\"scala keyword\" style=\"background: none !important; margin: 0px !important; padding: 0px !important; outline: 0px !important; border-radius: 0px !important; border: 0px currentColor !important; left: auto !important; top: auto !important; width: auto !important; height: auto !important; text-align: left !important; right: auto !important; bottom: auto !important; color: #006699 !important; line-height: 1.1em !important; overflow: visible !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; vertical-align: baseline !important; float: none !important; display: inline !important; position: static !important; direction: ltr !important; box-sizing: content-box !important; box-shadow: none !important; -webkit-box-shadow: none;\">:<\/code> <code class=\"scala plain\" style=\"background: none !important; margin: 0px !important; padding: 0px !important; outline: 0px !important; border-radius: 0px !important; border: 0px currentColor !important; left: auto !important; top: auto !important; width: auto !important; height: auto !important; text-align: left !important; right: auto !important; bottom: auto !important; color: black !important; line-height: 1.1em !important; overflow: visible !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; vertical-align: baseline !important; float: none !important; display: inline !important; position: static !important; direction: ltr !important; box-sizing: content-box !important; box-shadow: none !important; -webkit-box-shadow: none;\">Array[String]) {<\/code>\n<\/div>\n<div class=\"line number3 index2 alt2\" style=\"background: white !important; margin: 0px !important; padding: 0px 1em !important; outline: 0px !important; border-radius: 0px !important; border: 0px currentColor !important; left: auto !important; top: auto !important; width: auto !important; height: auto !important; text-align: left !important; right: auto !important; bottom: auto !important; line-height: 1.1em !important; overflow: visible !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; vertical-align: baseline !important; float: none !important; white-space: pre !important; position: static !important; direction: ltr !important; box-sizing: content-box !important; box-shadow: none !important; -webkit-box-shadow: none;\"><code class=\"scala spaces\" style=\"background: none !important; margin: 0px !important; padding: 0px !important; outline: 0px !important; border-radius: 0px !important; border: 0px currentColor !important; left: auto !important; top: auto !important; width: auto !important; height: auto !important; text-align: left !important; right: auto !important; bottom: auto !important; line-height: 1.1em !important; overflow: visible !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; vertical-align: baseline !important; float: none !important; display: inline !important; position: static !important; direction: ltr !important; box-sizing: content-box !important; box-shadow: none !important; -webkit-box-shadow: none;\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"scala plain\" style=\"background: none !important; margin: 0px !important; padding: 0px !important; outline: 0px !important; border-radius: 0px !important; border: 0px currentColor !important; left: auto !important; top: auto !important; width: auto !important; height: auto !important; text-align: left !important; right: auto !important; bottom: auto !important; color: black !important; line-height: 1.1em !important; overflow: visible !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; vertical-align: baseline !important; float: none !important; display: inline !important; position: static !important; direction: ltr !important; box-sizing: content-box !important; box-shadow: none !important; -webkit-box-shadow: none;\">println(<\/code><code class=\"scala string\" style=\"background: none !important; margin: 0px !important; padding: 0px !important; outline: 0px !important; border-radius: 0px !important; border: 0px currentColor !important; left: auto !important; top: auto !important; width: auto !important; height: auto !important; text-align: left !important; right: auto !important; bottom: auto !important; color: blue !important; line-height: 1.1em !important; overflow: visible !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; vertical-align: baseline !important; float: none !important; display: inline !important; position: static !important; direction: ltr !important; box-sizing: content-box !important; box-shadow: none !important; -webkit-box-shadow: none;\">\"Hello, world!\"<\/code><code class=\"scala plain\" style=\"background: none !important; margin: 0px !important; padding: 0px !important; outline: 0px !important; border-radius: 0px !important; border: 0px currentColor !important; left: auto !important; top: auto !important; width: auto !important; height: auto !important; text-align: left !important; right: auto !important; bottom: auto !important; color: black !important; line-height: 1.1em !important; overflow: visible !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; vertical-align: baseline !important; float: none !important; display: inline !important; position: static !important; direction: ltr !important; box-sizing: content-box !important; box-shadow: none !important; -webkit-box-shadow: none;\">)<\/code>\n<\/div>\n<div class=\"line number4 index3 alt1\" style=\"background: white !important; margin: 0px !important; padding: 0px 1em !important; outline: 0px !important; border-radius: 0px !important; border: 0px currentColor !important; left: auto !important; top: auto !important; width: auto !important; height: auto !important; text-align: left !important; right: auto !important; bottom: auto !important; line-height: 1.1em !important; overflow: visible !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; vertical-align: baseline !important; float: none !important; white-space: pre !important; position: static !important; direction: ltr !important; box-sizing: content-box !important; box-shadow: none !important; -webkit-box-shadow: none;\"><code class=\"scala spaces\" style=\"background: none !important; margin: 0px !important; padding: 0px !important; outline: 0px !important; border-radius: 0px !important; border: 0px currentColor !important; left: auto !important; top: auto !important; width: auto !important; height: auto !important; text-align: left !important; right: auto !important; bottom: auto !important; line-height: 1.1em !important; overflow: visible !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; vertical-align: baseline !important; float: none !important; display: inline !important; position: static !important; direction: ltr !important; box-sizing: content-box !important; box-shadow: none !important; -webkit-box-shadow: none;\">\u00a0\u00a0<\/code><code class=\"scala plain\" style=\"background: none !important; margin: 0px !important; padding: 0px !important; outline: 0px !important; border-radius: 0px !important; border: 0px currentColor !important; left: auto !important; top: auto !important; width: auto !important; height: auto !important; text-align: left !important; right: auto !important; bottom: auto !important; color: black !important; line-height: 1.1em !important; overflow: visible !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; vertical-align: baseline !important; float: none !important; display: inline !important; position: static !important; direction: ltr !important; box-sizing: content-box !important; box-shadow: none !important; -webkit-box-shadow: none;\">}<\/code>\n<\/div>\n<div class=\"line number5 index4 alt2\" style=\"background: white !important; margin: 0px !important; padding: 0px 1em !important; outline: 0px !important; border-radius: 0px !important; border: 0px currentColor !important; left: auto !important; top: auto !important; width: auto !important; height: auto !important; text-align: left !important; right: auto !important; bottom: auto !important; line-height: 1.1em !important; overflow: visible !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; vertical-align: baseline !important; float: none !important; white-space: pre !important; position: static !important; direction: ltr !important; box-sizing: content-box !important; box-shadow: none !important; -webkit-box-shadow: none;\"><code class=\"scala plain\" style=\"background: none !important; margin: 0px !important; padding: 0px !important; outline: 0px !important; border-radius: 0px !important; border: 0px currentColor !important; left: auto !important; top: auto !important; width: auto !important; height: auto !important; text-align: left !important; right: auto !important; bottom: auto !important; color: black !important; line-height: 1.1em !important; overflow: visible !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; vertical-align: baseline !important; float: none !important; display: inline !important; position: static !important; direction: ltr !important; box-sizing: content-box !important; box-shadow: none !important; -webkit-box-shadow: none;\">}<\/code>\n<\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h2>6.7 Debugging \ud558\uae30<\/h2>\n<p>\uc774\uc81c \uac70\uc758 \ub2e4 \ub418\uc5c8\ub2e4. println\uc5d0 breakpoint\ub97c \uc124\uc815\ud558\uace0, \uba54\ub274\uc758 \u2018Run\u2019 &gt; \u2018Debug\u2019\ub97c \uc120\ud0dd\ud55c \ud6c4\uc5d0 \u2018Scala Application\u2019\uc744 \uc120\ud0dd\ud558\uba74 \ud504\ub85c\uadf8\ub7a8\uc774 \uc2dc\uc791\ub418\uace0, debugger\uac00 \ub3d9\uc791\ud574\uc11c breakpoint\uc5d0\uc11c \uba48\ucd94\ub294 \uac83\uc744 \ud655\uc778\ud560 \uc218 \uc788\ub2e4. \uc704 \uc18c\uc2a4 \ud30c\uc77c\uc740<span class=\"Apple-converted-space\">\u00a0<\/span><a href=\"https:\/\/github.com\/Seyun\/sbt_empty_project\">\uc774 \uacf3<\/a>\uc5d0\uc11c \ub2e4\uc6b4\ub85c\ub4dc \ubc1b\uc744 \uc218 \uc788\ub2e4.<\/p>\n<h1>7. Scala\uc6a9 Framework<\/h1>\n<hr \/>\n<p>\uc774\uc81c Scala\uc6a9 \ud504\ub85c\uadf8\ub7a8\uc744 \ub9cc\ub4e4 \uc900\ube44\ub294 \ub05d\ub0ac\ub2e4. \uc9c0\uae08\ubd80\ud130\ub294 \uc6f9\uc11c\ube44\uc2a4 \uac1c\ubc1c\uc744 \uc704\ud574 \uc774\uc6a9\ud560 \uc218 \uc788\ub294 Framework \uc911\uc5d0 \uac1c\uc778\uc801\uc73c\ub85c \uc81c\uc77c \uad1c\ucc2e\ub2e4\uace0 \ubcf4\uc774\ub294 2\uac00\uc9c0\ub97c \uc18c\uac1c\ud558\ub824\uace0 \ud55c\ub2e4.<\/p>\n<h2>7.1\u00a0Play Framework<\/h2>\n<p><a href=\"http:\/\/www.playframework.org\/\">Play Framework<\/a>\ub294 Ruby on Rails\uc758 Java \ubc84\uc804\uc774\ub77c\uace0 \ubcf4\uba74 \ub418\uaca0\ub2e4. MVC \ud328\ud134\uc5d0 \ub9de\ucdb0 \uac1c\ubc1c\ud560 \uc218 \uc788\ub3c4\ub85d \ud574\uc8fc\uace0, \uc5ec\ub7ec\uac00\uc9c0 \ud3b8\ub9ac\ud55c library\ub97c \uc81c\uacf5\ud55c\ub2e4. \uc2e4\uc81c \ub300\uc6a9\ub7c9 \uc11c\ube44\uc2a4\uc5d0\uc11c \ub9ce\uc774 \uc4f0\uc774\uace0 \uc788\ub294 framework\uc774\ub77c \uc548\uc815\uc131\uc5d0\ub3c4 \ubb38\uc81c\uac00 \uc5c6\ub2e4\uace0 \ud560 \uc218 \uc788\uaca0\ub2e4.<\/p>\n<p>\ud604\uc7ac stable\ud55c 1.x \ubc84\uc804\uc5d0\uc11c\ub294 scala\ub97c \ubd80\ubd84\uc801\uc73c\ub85c \uc9c0\uc6d0\ud574\uc11c \uc870\uae08 \uc544\uc27d\ub2e4. \ud558\uc9c0\ub9cc,<span class=\"Apple-converted-space\">\u00a0<\/span><a href=\"https:\/\/github.com\/playframework\/Play20\">Play 2.0<\/a>\uc5d0\uc11c\ub294 \ubcf8\uaca9\uc801\uc73c\ub85c Scala\ub97c \uc9c0\uc6d0\ud55c\ub2e4. 2.0\uc740 \ud604\uc7ac RC\ubc84\uc804\uc774\uba70, \uace7 \uc815\uc2dd \ubc84\uc804\uc744 release\ud560 \uac83\uc73c\ub85c \ubcf4\uc778\ub2e4.<\/p>\n<h2>7.2 Finagle<\/h2>\n<p><a href=\"http:\/\/twitter.github.com\/finagle\/\">Finagle<\/a>\uc740 Twitter\uc5d0\uc11c back-end \uc11c\ube44\uc2a4\uc6a9\uc73c\ub85c \ub9cc\ub4e0 framework\uc774\ub2e4. \uc11c\ubc84 \uac04\uc758 \ud1b5\uc2e0\uc744 \uc9c0\uc6d0\ud558\ub294\ub370 \ud2b9\ud654 \ub418\uc5b4 \uc788\ub2e4. \ubb34\uc5c7\ubcf4\ub2e4 Twitter\uc5d0\uc11c \uc2e4\uc81c\ub85c \uc0ac\uc6a9\ub418\uae30 \ub54c\ubb38\uc5d0 \uc8fc\ubaa9 \ubc1b\uace0 \uc788\uace0, Tumblr\ub4f1 \ub2e4\ub978 \uc11c\ube44\uc2a4\uc5d0\uc11c\ub3c4 \uc774\uc6a9\ub418\ub294 \ub4ef \ud558\ub2e4. \uae30\ubcf8\uc801\uc778 \uc11c\ubc84 \uac04 \ud1b5\uc2e0 \uae30\ub2a5 \uc678\uc5d0 \ube44\ub3d9\uae30 \ucc98\ub9ac, \ubd84\uc0b0 \ucc98\ub9ac, \uadf8\ub9ac\uace0 Memchached,<span class=\"Apple-converted-space\">\u00a0<\/span><a class=\"zem_slink\" title=\"Redis (data store)\" href=\"http:\/\/redis.io\/\" rel=\"homepage\">Redis<\/a><span class=\"Apple-converted-space\">\u00a0<\/span>\ub4f1\uc744 \uc9c0\uc6d0\ud55c\ub2e4. Twitter\uc5d0\uc11c \uc5b4\ub5a4 \uc2dd\uc73c\ub85c Finagle\uc744 \uc0ac\uc6a9\ud558\ub294 \uc9c0\uc5d0 \ub300\ud574\uc11c\ub294 Twitter Engineering \ube14\ub85c\uadf8\uc758<span class=\"Apple-converted-space\">\u00a0<\/span><a href=\"http:\/\/engineering.twitter.com\/2011\/08\/finagle-protocol-agnostic-rpc-system.html\">\uc774 \ud3ec\uc2a4\ud305<\/a>\uc5d0 \uc798 \uc124\uba85\uc774 \ub418\uc5b4 \uc788\ub2e4.<\/p>\n<h1>8. \ub9c8\uce58\uba70<\/h1>\n<hr \/>\n<p>\ub2f9\uc5f0\ud558\uaca0\uc9c0\ub9cc, \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uac1c\ubc1c\uc5d0 \uc788\uc5b4 \uc5b4\ub5a4 \uc5b8\uc5b4\uac00 \ucd5c\uace0\uc778\uc9c0 \uc815\ub2f5\uc740 \uc5c6\ub294 \uac83 \uac19\ub2e4. \uc0c1\ud669\uc5d0 \ub9de\uac8c \uc5b8\uc5b4\uc640 \ub77c\uc774\ube0c\ub7ec\ub9ac \ub4f1\uc744 \uc120\ud0dd\ud574\uc57c \ud560 \uac83\uc774\ub2e4. \uc131\ub2a5\uacfc \ud655\uc7a5\uc131(scaling)\uc774 \ub9e4\uc6b0 \uc911\uc694\ud558\uace0, \ube44\uad50\uc801 \ube60\ub974\uac8c \uac1c\ubc1c\ud574\uc57c \ud558\ub294 \uacbd\uc6b0 \ub77c\uba74, \ub0b4\uac00 \uc0dd\uac01\ud558\uae30\uc5d0 Scala\uac00 \uc81c\uc77c \uc801\ud569\ud55c \uc120\ud0dd\uc778 \uac83 \uac19\ub2e4. \ub2e8, Scala \uac1c\ubc1c\uc790\uac00 \ub9ce\uc9c0 \uc54a\uace0 \uc5b8\uc5b4\ub97c \ubc30\uc6b0\ub294\ub370\uc5d0 learning curve\uac00 \uc870\uae08 \uc788\uae30 \ub54c\ubb38\uc5d0, \uac1c\ubc1c\uc790\uac00 \ubc14\ub00c\ub294 \uc0c1\ud669\uc774 \ub418\uc5c8\uc744 \ub54c \ud5a5\ud6c4 \uc720\uc9c0\ubcf4\uc218\ub294 \uc870\uae08 \uc5b4\ub824\uc6b8 \uc218\ub3c4 \uc788\ub2e4\ub294 \uc810\uc740 \uc8fc\uc758\ud574\uc57c \ud55c\ub2e4.<\/p>\n<p>\ubb34\uc5c7\ubcf4\ub2e4\ub3c4 Scala\uc758 \uc7a5\uc810\uc740 succint\ud55c syntax \ub355\uc5d0, \uac1c\ubc1c\uc790\uac00 \ud504\ub85c\uadf8\ub798\ubc0d \uadf8 \uc790\uccb4\uc5d0 \uc9d1\uc911\ud560 \uc218 \uc788\uace0 \uc774\ub85c \uc778\ud574 \ud504\ub85c\uadf8\ub798\ubc0d\uc774 \uc7ac\ubbf8\uc788\ub2e4\ub294 \uc810\uc774\ub2e4. \uc880\ub354 \ub9ce\uc740 \uac1c\ubc1c\uc790\ub4e4\uc774 Scala\ub97c \uc811\ud574\ubcf4\uc558\uc73c\uba74 \ud558\ub294 \ubc14\ub7a8\uc73c\ub85c \ub450\uc11c\uc5c6\ub294 \uae00\uc744 \ub9c8\uce58\uaca0\ub2e4.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; http:\/\/ppassa.wordpress.com\/2012\/02\/19\/getting_started_scala\/ Scala \uc2dc\uc791\ud558\uae30 \uc694\uc998 \ub4e4\uc5b4\uc11c\u00a0Scala\ub97c \uacf5\ubd80\ud558\uace0 \uc788\ub2e4. \uc544\uc9c1 \ub9ce\uc774 \ubd80\uc871\ud558\uc9c0\ub9cc, \uc9c0\uae08\uae4c\uc9c0 \ubc30\uc6b4 \uac83\ub4e4 \uae30\ub85d\ud574\ub450\uace0, \ub610 \ud639\uc2dc \uc870\uae08\uc774\ub77c\ub3c4 \ub3c4\uc6c0\uc774 \ub418\ub294 \ubd84\ub4e4\uc774 \uc788\uc744 \uc9c0 \ubab0\ub77c \uacf5\uc720\ud574\ubcf4\uace0\uc790 \ud55c\ub2e4. 1. \ub4e4\uc5b4\uac00\uba70 \ubb58 \ub610 \ubc30\uc6cc\uc57c \ud55c\ub2e8 \ub9d0\uc778\uac00? \uc774\ubbf8 C++, Java, Python, Ruby, JavaScript \ub4f1 \ub9ce\uc740 \ud504\ub85c\uadf8\ub798\ubc0d \uc5b8\uc5b4\ub4e4\uc774 \uc788\ub294\ub370, \uc65c \uc790\uafb8 \uc0c8\ub85c\uc6b4 \uc5b8\uc5b4\uac00 \ub098\uc624\uace0 \uc788\ub0d0? \uae30\uc874 \uac78\ub85c \uc548\ub418\ub0d0? \ub77c\ub294 \uc758\ubb38\uc744 \uac00\uc9c8 \uc218 \uc788\ub2e4. \ub098 \uc5ed\uc2dc \ucc98\uc74c\uc5d0 \uadf8\ub7f0 \uc0dd\uac01\uc744 \ud588\uc5c8\ub2e4. \ud558\uc9c0\ub9cc, Scala\uc5d0 \ub300\ud574 \uacf5\ubd80\ub97c \ud558\ub2e4 \ubcf4\ub2c8, \uc774\uc81c\ub294 \uadf8\ub7f0 \uc758\ubb38\ub4e4\uc774 \ub9ce\uc774 \uc5c6\uc5b4\uc84c\ub2e4. \uc5b4\ub5bb\uac8c \uc758\ubb38\uc744 \ud574\uc18c\ud588\uc5c8\ub294\uc9c0, \uadf8\ub7fc \uc870\uae08 \uc790\uc138\ud788 \uc774\uc57c\uae30 \ud574\ubcf4\uaca0\ub2e4. 2. Scala? Scala\ub294 \ub2e4\uc74c\uacfc \uac19\uc740 \ud2b9\uc9d5\uc774 \uc788\ub2e4. 2.1 Fuctional language\uc774\uba70 \ub610\ud55c object-oriented language\uc774\ub2e4. Ruby\ub098 C#\uc744 \uc4f0\ub2e4\uac00 Java\ub098 C++ \uac19\uc740 \uc5b8\uc5b4\ub97c \uc4f8 \ub54c \uc870\uae08 \ub2f5\ub2f5\ud55c \uac83\uc774, lambda\uc640 \uac19\uc740 functioncal language\uc801\uc778 syntax\uac00 \uc5c6\ub2e4\ub294 \uac83\uc774\ub2e4. \uc774\uac83\uc744 \uc548 \uc4f8\ub54c\ub294 \ubab0\ub790\ub294\ub370, \uc77c\ub2e8 \uc190\uc5d0 \uc775\uc73c\uba74 \uc0dd\uc0b0\uc131\uc774 \ub9e4\uc6b0 \ub192\uc544\uc9c4\ub2e4. Scala\ub294 lambda\ub97c \ube44\ub86f\ud558\uc5ec \uc5ec\ub7ec functional language\uc758 \ubb38\ubc95\uc744 \uc9c0\uc6d0\ud55c\ub2e4. \ub3d9\uc2dc\uc5d0, object-oriented\uc801\uc778 \uc694\uc18c\ub3c4 \uc9c0\uc6d0\ud558\uae30 \ub54c\ubb38\uc5d0, objected-oriented language\uc5d0 \uc775\uc219\ud55c \ud504\ub85c\uadf8\ub798\uba38\ub4e4\uc774 functional language\ub97c \ubc30\uc6b0\uace0\uc790 \ud560 \ub54c \uc27d\uac8c \ub2e4\uac00\uac08 \uc218 \uc788\ub2e4. \ub098\ub294 C++\uc774 \ucd08\uae30\uc5d0 \ub2e4\ub978 object-oriented language\ub4e4\uc744 \uc81c\uce58\uace0 \uc131\uacf5\ud560 \uc218 \uc788\uc5c8\ub358 \uac00\uc7a5 \ud070 \uc774\uc720\uac00, C++\uc774 C \ubb38\ubc95\ub3c4 \uc9c0\uc6d0\ud588\uae30 \ub54c\ubb38\uc774\ub77c\uace0 \uc0dd\uac01\ud55c\ub2e4. C++ \ucef4\ud30c\uc77c\ub7ec\ub97c \uc774\uc6a9\ud558\uba74, C\uc5d0 \uc775\uc219\ud55c \ud504\ub85c\uadf8\ub798\uba38\ub4e4\uc740 C\ub85c \ucf54\ub529\uc744 \ud558\uba74\uc11c\ub3c4, \ubd80\ubd84\ubd80\ubd84 \uc27d\uac8c object-oriented\uc801\uc778 \uc694\uc18c\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc5c8\ub2e4. \ub9c8\ucc2c\uac00\uc9c0\ub85c Scala\ub294 \uae30\uc874\uc758 Java\ub098 C++\ub4f1 object-oriented language\uc5d0 \uc775\uc219\ud55c \ud504\ub85c\uadf8\ub798\uba38\ub4e4\uc744 functional language\ub85c \uc27d\uac8c \ub04c\uc5b4 \ub4e4\uc77c [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"ngg_post_thumbnail":0,"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true},"categories":[7],"tags":[],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5q9Zn-5V","jetpack-related-posts":[{"id":1239,"url":"https:\/\/blog.box.kr\/?p=1239","url_meta":{"origin":367,"position":0},"title":"Flutter \uc0ac\uc6a9 \uc815\ub9ac","date":"2021-05-14","format":false,"excerpt":"OSX, Windows, Linux, Web\uc5d0\uc11c \uc0ac\uc6a9\ud558\uae30 \uc704\ud574\uc11c\ub294 \uac01 \uae30\ub2a5\uc744 \ucf1c\uc918\uc57c\ud568. Flutter\ub85c \ub370\uc2a4\ud06c\ud1b1 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uac1c\ubc1c \uc2dc\uc791\ud558\uae30 \uc77c\ud68c\uc131 \uad6c\uc131 \ubcc0\uacbd\uc73c\ub85c \ub370\uc2a4\ud06c\ud1b1 \uc9c0\uc6d0\uc744 \uad6c\uc131\ud574\uc57c\ud569\ub2c8\ub2e4.$ flutter config --enable-windows-desktop # for the Windows runner$ flutter config --enable-macos-desktop \u00a0 # for the macOS runner$ flutter config --enable-linux-desktop \u00a0 # for the Linux runner \ub370\uc2a4\ud06c\ud1b1 \uc6a9 Flutter\uac00 \ud65c\uc131\ud654\ub418\uc5c8\ub294\uc9c0\u2026","rel":"","context":"In &quot;flutter&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":242,"url":"https:\/\/blog.box.kr\/?p=242","url_meta":{"origin":367,"position":1},"title":"Intellij\uc5d0\uc11c Scala + akka \uc124\uc815","date":"2014-07-23","format":false,"excerpt":"Intellij 13 \ubc84\uc804 \uae30\uc900 \u00a0 1. Scala \uc124\uce58 2. SBT \uc124\uce58 3. Intellij\uc5d0\uc11c Scala\ub97c \uc0ac\uc6a9\ud558\uae30 \uc704\ud574\uc11c\ub294 \ud50c\ub7ec\uadf8\uc778\uc73c\ub85c Scala\uc640 sbt \ub458 \ub2e4 \ubaa8\ub450 \uc124\uce58\ud55c\ub2e4. - \uc124\uce58 \ud6c4 'Setting'\uc5d0\uc11c \uc704\uc5d0 \uc124\uce58\ud55c Scala\uc640 SBT\ub97c \uc124\uc815\ud55c\ub2e4. 4. sbt\ub97c \ud1b5\ud574 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \ub9cc\ub4e4\uae30 \uc704\ud574\uc11c\ub294 \ud504\ub85c\uc81d\ud2b8\uc5d0\uc11c sbt-module\ub97c \uc120\ud0dd\ud55c \ud6c4 build.sbt\uc5d0 \ud544\uc694\ud55c \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc124\uc815\ud55c\ub2e4. \uc704\uc758 build.sbt\uc758 akka \uc124\uc815\uc740\u2026","rel":"","context":"In &quot;JAVA&quot;","img":{"alt_text":"","src":"http:\/\/cfile27.uf.tistory.com\/image\/2418E83652F07318013FE6","width":350,"height":200},"classes":[]},{"id":244,"url":"https:\/\/blog.box.kr\/?p=244","url_meta":{"origin":367,"position":2},"title":"\ud29c\ud1a0\ub9ac\uc5bc: \uc2a4\uce7c\ub77c(Scala), akka \ub85c scalable \ud558\uace0, fault-tolerant \ud55c \ub124\ud2b8\uc6cc\ud06c \ucc44\ud305 \uc11c\ubc84\uc640 \ud074\ub77c\uc774\uc5b8\ud2b8 \ub9cc\ub4e4\uae30","date":"2014-07-23","format":false,"excerpt":"\ud29c\ud1a0\ub9ac\uc5bc: \uc2a4\uce7c\ub77c(Scala), akka \ub85c scalable \ud558\uace0, fault-tolerant \ud55c \ub124\ud2b8\uc6cc\ud06c \ucc44\ud305 \uc11c\ubc84\uc640 \ud074\ub77c\uc774\uc5b8\ud2b8 \ub9cc\ub4e4\uae30 SW\uac1c\ubc1c \u00a0http:\/\/doc.akka.io\/docs\/akka\/1.3.1\/scala\/tutorial-chat-ser..","rel":"","context":"In &quot;JAVA&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":371,"url":"https:\/\/blog.box.kr\/?p=371","url_meta":{"origin":367,"position":3},"title":"Clojure vs Scala","date":"2014-09-15","format":false,"excerpt":"http:\/\/programming-puzzler.blogspot.kr\/2013\/12\/clojure-vs-scala.html Clojure vs Scala Last week, someone posted a question on the Clojure group asking for a comparison between Clojure and Scala. Since my most popular blog post, by far, is my\u00a0Racket vs Clojure\u00a0post from three years ago, I thought it would be good to post my response here.Ten years\u2026","rel":"","context":"In &quot;\ucc38\uace0\ub97c \uc704\ud55c \uc800\uc7a5\ubb3c&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":364,"url":"https:\/\/blog.box.kr\/?p=364","url_meta":{"origin":367,"position":4},"title":"[\ud38c]\uac1d\uccb4\uc9c0\ud5a5+\ud568\uc218\ud615 \ud504\ub85c\uadf8\ub798\ubc0d \uc5b8\uc5b4 Scala","date":"2014-09-15","format":false,"excerpt":"\uac1d\uccb4\uc9c0\ud5a5+\ud568\uc218\ud615 \ud504\ub85c\uadf8\ub798\ubc0d \uc5b8\uc5b4 Scala \uc2a4\uce7c\ub77c(Scala)\ub294 \uac1d\uccb4\uc9c0\ud5a5 \uc5b8\uc5b4\uc774\uba74\uc11c \ub3d9\uc2dc\uc5d0 \ud568\uc218 \uc5b8\uc5b4\uc774\ub2e4. \uc2a4\uce7c\ub77c\ub294 \uc790\ubc14\uc640 \ub9c8\ucc2c\uac00\uc9c0\ub85c \uc790\ubc14\uac00\uc0c1\uba38\uc2e0(JVM) \uc704\uc5d0\uc11c \uc2e4\ud589\ub418\uba70 \uae30\uc874 \uc790\ubc14 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uadf8\ub300\ub85c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4. \ubc18\ub300\ub85c \uc790\ubc14\ub85c \uc791\uc131\ub41c \ud504\ub85c\uadf8\ub7a8\uc5d0\uc11c \uc2a4\uce7c\ub77c\ub85c \uc791\uc131\ub41c \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud560 \uc218\ub3c4 \uc788\ub2e4. \ub2e4\ub978 JVML(JVM \uc5b8\uc5b4)\uc778 JRuby, Jython\uacfc \ub9c8\ucc2c\uac00\uc9c0\ub85c \uc2a4\uce7c\ub77c\ub294 \uc790\ubc14\uc758 \ud55c\uacc4\ub97c \uadf9\ubcf5\ud558\uae30 \uc704\ud574 \ucd9c\ud604\ud588\ub2e4. \ud2b9\ud788, \uc774\ubbf8 \uc124\uacc4\ub41c \ucef4\ud3ec\ub10c\ud2b8 \ub2e8\uc704\uc758\u2026","rel":"","context":"In &quot;\ucc38\uace0\ub97c \uc704\ud55c \uc800\uc7a5\ubb3c&quot;","img":{"alt_text":"","src":"http:\/\/cfs14.tistory.com\/image\/18\/tistory\/2008\/12\/01\/00\/11\/4932ad2c8146f","width":350,"height":200},"classes":[]},{"id":369,"url":"https:\/\/blog.box.kr\/?p=369","url_meta":{"origin":367,"position":5},"title":"Scala, Clojure, Groovy \uadf8\ub9ac\uace0 \uac1c\ubc1c\uc790\uc758 \uc5b8\uc5b4","date":"2014-09-15","format":false,"excerpt":"http:\/\/www.okjsp.net\/seq\/216749 \u00a0 \u00a0 Scala, Clojure, Groovy \uadf8\ub9ac\uace0 \uac1c\ubc1c\uc790\uc758 \uc5b8\uc5b4 \uac1c\ubc1c\uc790\ub3c4 \uc138\ucee8\ub4dc \uc5b8\uc5b4 \ud639\uc740 \ud568\uc218\ud615 \uc5b8\uc5b4 \ud558\ub098\ucbe4\uc740 \ud574\uc57c \ud560 \uc2dc\uae30\uac00 \uc628\uac70 \uac19\uc2b5\ub2c8\ub2e4.\u00a0 \ubaa8\ubc14\uc77c\ub85c \uac08\uc544\ud0c0\uc9c0 \uc54a\ub294\ub2e4\uba74, \ud074\ub77c\uc6b0\ub4dc \ud658\uacbd, \uc5d4\ud130\ud504\ub77c\uc774\uc988 \ud658\uacbd\uc5d0\uc11c\ub294 \uc790\ubc14 \uc790\uccb4\ub9cc\uc73c\ub85c\ub294 \ud574\uacb0 \ud560 \uc218 \uc5c6\ub294 \uce21\uba74\ub4e4\uc774 \ub098\uc640\uc11c \uc138\ucee8\ub4dc \uc5b8\uc5b4\uc5d0 \ub300\ud55c \uc218\uc694\uac00 \uc810\uc9c4\uc801\uc73c\ub85c \uc0dd\uaca8\ub098\uc9c0 \uc54a\uc744\uae4c \ud558\ub294 \uc0dd\uac01\uc774 \ub9ce\uc774 \ub4dc\ub124\uc694.\u00a0 \ub300\ud45c\uc801\uc73c\ub85c\ub294, \uc678\uad6d \uc0ac\ub840\ub97c\u2026","rel":"","context":"In &quot;\ucc38\uace0\ub97c \uc704\ud55c \uc800\uc7a5\ubb3c&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/posts\/367"}],"collection":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=367"}],"version-history":[{"count":0,"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/posts\/367\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=367"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=367"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=367"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}