{"id":34002,"date":"2020-01-31T12:25:57","date_gmt":"2020-01-31T03:25:57","guid":{"rendered":"https:\/\/blog.jetbrains.com\/kr\/?p=551"},"modified":"2020-01-31T12:25:57","modified_gmt":"2020-01-31T03:25:57","slug":"making-kotlin-ready-for-data-science","status":"publish","type":"post","link":"https:\/\/blog.jetbrains.com\/ko\/2020\/01\/31\/making-kotlin-ready-for-data-science\/","title":{"rendered":"\ub370\uc774\ud130 \uacfc\ud559\uc744 \uc704\ud55c Kotlin"},"content":{"rendered":"KotlinConf 2019\uc5d0\uc11c Roman Belov\ub294 \ub370\uc774\ud130 \uacfc\ud559\uc5d0 \ub300\ud55c Kotlin \uc811\uadfc \ubc29\uc2dd\uc758 \uac1c\uc694\ub97c \ubc1c\ud45c\ud588\uc2b5\ub2c8\ub2e4. \uc774 \ubc1c\ud45c \ub0b4\uc6a9\uc740 \ubaa8\ub4e0 \uc0ac\ub78c\uc774 \ubcfc \uc218 \uc788\ub3c4\ub85d \uacf5\uac1c\ub418\uc5b4 \uc788\uc73c\uba70, \uc5ec\uae30\uc5d0\uc11c\ub294 \uc774\ub97c \uc694\uc57d\ud558\uace0 \ub370\uc774\ud130 \uacfc\ud559\uc5d0\uc11c \uc774\uc6a9\ud560 \uc218 \uc788\ub294 \ud604\uc7ac Kotlin \ub3c4\uad6c \ubc0f \ub77c\uc774\ube0c\ub7ec\ub9ac \uc0c1\ud0dc\uc5d0 \ub300\ud574 \uc870\uae08 \ub354 \uc774\uc57c\uae30\ud574\ubcf4\ub824\uace0 \ud569\ub2c8\ub2e4.\r\n\r\nKotlin\uc740 \ub370\uc774\ud130 \uacfc\ud559\uc5d0 \uc5b4\ub5a4 \ubc29\uc2dd\uc73c\ub85c \ubd80\ud569\ud560\uae4c\uc694? \ub300\ub7c9\uc758 \ub370\uc774\ud130 \ubd84\uc11d\uc5d0 \ub300\ud55c \uc218\uc694\uac00 \ub298\uc5b4\ub0a8\uc5d0 \ub530\ub77c \uc9c0\ub09c \uba87\ub144\uac04 \ub370\uc774\ud130 \uacfc\ud559 \ubd84\uc57c\ub294 \uc9c4\uc815\ud55c \ub974\ub124\uc0c1\uc2a4\ub97c \ub9de\uc774\ud588\uc2b5\ub2c8\ub2e4. \uc774\ub7ec\ud55c \ub370\uc774\ud130 \uacfc\ud559\uc758 \ub974\ub124\uc0c1\uc2a4\ub294 \uc801\uc808\ud55c \ub3c4\uad6c \uc5c6\uc774 \ubd88\uac00\ub2a5\ud588\uc2b5\ub2c8\ub2e4. \uc774\uc804\uc5d0\ub294 \ub370\uc774\ud130 \uacfc\ud559\uc744 \uc704\ud574 \ud2b9\ubcc4\ud788 \uc124\uacc4\ub41c \ud504\ub85c\uadf8\ub798\ubc0d \uc5b8\uc5b4\uac00 \ud544\uc694\ud588\uc9c0\ub9cc \uc694\uc998\uc740 \ubc94\uc6a9 \uc5b8\uc5b4\ub85c \uc774\ub97c \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ubb3c\ub860 \uc5ec\uae30\uc5d0\ub294 \ucee4\ubba4\ub2c8\ud2f0\uc758 \ub3c4\uc6c0\uc740 \ubb3c\ub860\uc774\uace0 \uc62c\ubc14\ub978 \uc124\uacc4 \uacb0\uc815\uc744 \ub0b4\ub9ac\uae30 \uc704\ud55c \ubc94\uc6a9 \uc5b8\uc5b4\uac00 \ud544\uc694\ud569\ub2c8\ub2e4. \uc774\ub7ec\ud55c \ubc30\uacbd\uc5d0 \ub530\ub77c \ub370\uc774\ud130 \uacfc\ud559\uc5d0\uc11c\ub294 \ub2e4\ub978 \uc5b4\ub5a0\ud55c \uc5b8\uc5b4\ubcf4\ub2e4 Python\uacfc \uac19\uc740 \ud2b9\uc815 \uc5b8\uc5b4\uac00 \ub110\ub9ac \uc0ac\uc6a9\ub418\uae30\ub3c4 \ud588\uc2b5\ub2c8\ub2e4.\r\nKotlin\uc740 Kotlin Multiplatform\uc774\ub77c\ub294 \uac1c\ub150\uc744 \ud1b5\ud574 \uc790\uccb4 \uac1c\ubc1c\uc790 \ud658\uacbd\uc744 \ubcf5\uc81c\ud558\uc5ec \uc0c1\ud638 \uc6b4\uc6a9\uc131\uc744 \ub2e4\ub978 \ud50c\ub7ab\ud3fc\uc73c\ub85c \ud655\uc7a5\ud558\ub294 \uac83\uc744 \ubaa9\ud45c\ub85c \uc0bc\uc2b5\ub2c8\ub2e4. Kotlin\uc740 \uc124\uacc4\uc0c1 \uac04\uacb0\ud568, \uc548\uc804\uc131, \uc0c1\ud638 \uc6b4\uc6a9\uc131\uc774\ub77c\ub294 \uc8fc\uc694 \ud2b9\uc9d5\uc744 \uac16\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uae30\ubcf8\uc801 \uc5b8\uc5b4 \ud2b9\uc9d5 \ub355\uc5d0 Kotlin\uc740 \ub2e4\uc591\ud55c \uc791\uc5c5 \ubc0f \ud50c\ub7ab\ud3fc\uc744 \uc9c0\uc6d0\ud560 \uc218 \uc788\uc73c\uba70 \uadf8\ub7ec\ud55c \ub300\uc0c1 \uc791\uc5c5 \uc911 \ud558\ub098\uac00 \ub370\uc774\ud130 \uacfc\ud559\uc785\ub2c8\ub2e4.\r\n\ud55c \uac00\uc9c0 \uc88b\uc740 \uc18c\uc2dd\uc740 \ucee4\ubba4\ub2c8\ud2f0\uac00 \uc774\ubbf8 \ub370\uc774\ud130 \uacfc\ud559\uc5d0\uc11c Kotlin\uc744 \ucc44\ud0dd\ud558\uae30 \uc2dc\uc791\ud588\uc73c\uba70 \uc774\ub7ec\ud55c \ucc44\ud0dd\uc774 \ube60\ub978 \uc18d\ub3c4\ub85c \uc9c4\ud589\ub418\uace0 \uc788\ub2e4\ub294 \uc0ac\uc2e4\uc785\ub2c8\ub2e4. \ub2e4\uc74c \uac04\ub7b5\ud55c \ubcf4\uace0\uc11c\uc5d0\uc11c\ub294 \ub370\uc774\ud130 \uacfc\ud559\uc6a9 Kotlin \ub77c\uc774\ube0c\ub7ec\ub9ac \ubc0f \ub3c4\uad6c\ub97c \ud3ec\ud568\ud558\uc5ec Kotlin\uc774 \ub370\uc774\ud130 \uacfc\ud559\uc5d0 \uc5bc\ub9c8\ub098 \uc900\ube44\ub418\uc5b4 \uc788\ub294\uc9c0 \uac04\ub7b5\ud558\uac8c \uc124\uba85\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4.\r\nJupyter\r\nJupyter Notebook\uc740 \ubb34\uc5c7\ubcf4\ub2e4 \uc0c1\ud638 \uc6b4\uc6a9\uc131\uc774 \ub6f0\uc5b4\ub098 \ub370\uc774\ud130 \ubcc0\ud658, \uc2dc\uac01\ud654, \ud504\ub9ac\uc820\ud14c\uc774\uc158\uc5d0\uc11c \ub9e4\uc6b0 \ud3b8\ub9ac\ud569\ub2c8\ub2e4. Jupyter\ub294 \uadf8 \ud655\uc7a5\uc131\uacfc \uc624\ud508 \uc18c\uc2a4 \ud2b9\uc131 \ub355\ubd84\uc5d0 \ub370\uc774\ud130 \uacfc\ud559\uc744 \uc911\uc2ec\uc73c\ub85c \uac70\ub300\ud55c \uc5d0\ucf54\uc2dc\uc2a4\ud15c\uc744 \ud615\uc131\ud558\uc600\uc73c\uba70 \ub370\uc774\ud130\uc640 \uad00\ub828\ub41c \uc218\ub9ce\uc740 \ub2e4\ub978 \uc194\ub8e8\uc158\uc5d0 \ud1b5\ud569\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uadf8\ub7ec\ud55c \uc194\ub8e8\uc158 \uc911\uc5d0\ub294 Jupyter Notebook\uc6a9 Kotlin kernel\uc774 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ucee4\ub110\uc744 \uc0ac\uc6a9\ud558\uba74 Jupyter Notebook\uc5d0\uc11c Kotlin \ucf54\ub4dc\ub97c \uc791\uc131\ud558\uace0 \uc2e4\ud589\ud560 \uc218 \uc788\uc73c\uba70 Java \ubc0f Kotlin\uc73c\ub85c \uc791\uc131\ub41c \uc11c\ub4dc\ud30c\ud2f0 \ub370\uc774\ud130 \uacfc\ud559 \ud504\ub808\uc784\uc6cc\ud06c\ub97c \uc774\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\r\n\uc7ac\ud604 \uac00\ub2a5\ud55c Kotlin Jupyter Notebook\uc758 \uc608\uc2dc\ub294 \uc774 \uc800\uc7a5\uc18c\uc5d0\uc11c \ucc3e\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. Kotlin Notebook\uc744 \uac04\ub2e8\ud788 \uccb4\ud5d8\ud574 \ubcf4\ub824\uba74 Binder\uc5d0\uc11c \uc2e4\ud589\ud558\uc138\uc694(\ud658\uacbd \uc124\uc815\uc5d0 \ubcf4\ud1b5 1\ubd84 \uc815\ub3c4 \uc18c\uc694).\r\nApache Zeppelin\r\nApache Zeppelin\uc740 Spark\uc640 Scala\ub97c \uac15\ub825\ud558\uac8c \uc9c0\uc6d0\ud558\uc5ec \ub370\uc774\ud130 \uc5d4\uc9c0\ub2c8\uc5b4\ub4e4 \uc0ac\uc774\uc5d0\uc11c \ub9e4\uc6b0 \uc778\uae30\uac00 \uc788\uc2b5\ub2c8\ub2e4. Jupyter\uc640 \ub9c8\ucc2c\uac00\uc9c0\ub85c Zeppelin\uc5d0\ub3c4 \ub2e4\ub978 \ub3c4\uad6c\uc640 \uc5b8\uc5b4\ub97c \uc9c0\uc6d0\ud558\uba70 \uc790\uccb4 \uc8fc\uc694 \uae30\ub2a5\uc744 \ud655\uc7a5\ud558\ub294 \ud50c\ub7ec\uadf8\uc778 API (\uc778\ud130\ud504\ub9ac\ud130)\uac00 \uc788\uc2b5\ub2c8\ub2e4. \ud604\uc7ac Zeppelin\uc758 \ucd5c\uc2e0 \ub9b4\ub9ac\uc2a4(0.8.2)\uc5d0\ub294 Kotlin \uc778\ud130\ud504\ub9ac\ud130\uac00 \ubc88\ub4e4\ub85c \uc81c\uacf5\ub418\uc9c0 \uc54a\uc9c0\ub9cc Zeppelin\uc758 \ub9c8\uc2a4\ud130 \ube0c\ub79c\uce58\uc5d0\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. Kotlin \uc9c0\uc6d0\uc774 \ud3ec\ud568\ub41c Zeppelin\uc744 Spark \ud074\ub7ec\uc2a4\ud130\uc5d0\uc11c \ubc30\ud3ec\ud558\ub294 \ubc29\ubc95\uc744 \uc54c\uc544\ubcf4\ub824\uba74 \uc774 \uc9c0\uce68\uc744 \ucc38\uc870\ud558\uc138\uc694.\r\nApache Spark\r\nSpark\uc5d0\ub294 \uac15\ub825\ud55c Java API\uac00 \uc788\uc73c\ubbc0\ub85c Jupyter\uc640 Zeppelin\uc758 Spark Java API\ub97c \uc774\uc6a9\ud55c \uc791\uc5c5\uc5d0\uc11c Kotlin\uc744 \uc544\ubb34 \ubb38\uc81c \uc5c6\uc774 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\uc5d0 \ub354\ud574 Spark\uc758 Dataset API\uc5d0\ub3c4 Kotlin \ud074\ub798\uc2a4\uc5d0 \ub300\ud55c \uc644\ubcbd\ud55c \uc9c0\uc6d0\uc744 \ucd94\uac00\ud558\uc5ec \ud1b5\ud569 \uae30\ub2a5\uc744 \uac1c\uc120\ud558\ub294 \uc791\uc5c5\uc744 \uc9c4\ud589\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. Spark\uc758 \uc178\uc5d0\ub3c4 Kotlin\uc744 \uc9c0\uc6d0\ud558\ub294 \uc791\uc5c5\uc774 \uc9c4\ud589 \uc911\uc785\ub2c8\ub2e4.\r\n\ub77c\uc774\ube0c\ub7ec\ub9ac\r\n\ub77c\uc774\ube0c\ub7ec\ub9ac \uc5c6\uc774 Kotlin\ub9cc \ub370\uc774\ud130 \uacfc\ud559\uc5d0 \uc0ac\uc6a9\ud558\ub294 \uac83\uc740 \uc758\ubbf8\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. \ub2e4\ud589\ud788 \ucd5c\uadfc \ucee4\ubba4\ub2c8\ud2f0\uc758 \ub178\ub825 \ub355\ubd84\uc5d0 \ub2f9\uc7a5 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \uba4b\uc9c4 Kotlin \ub77c\uc774\ube0c\ub7ec\ub9ac\uac00 \ub9ce\uc774 \uc788\uc2b5\ub2c8\ub2e4.\r\n\uac00\uc7a5 \uc720\uc6a9\ud55c \ub77c\uc774\ube0c\ub7ec\ub9ac \uc911 \uc77c\ubd80\ub97c \uc18c\uac1c\ud558\uba74 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.\r\n\r\nkotlin-statistics\ub294 \uc608\ube44 \ubc0f \ud504\ub85c\ub355\uc158 \ud1b5\uacc4\ub97c \uc2e4\ud589\ud558\uae30 \uc704\ud55c \ud655\uc7a5 \ud568\uc218 \ubaa8\uc74c\uc744 \uc81c\uacf5\ud558\ub294 \ub77c\uc774\ube0c\ub7ec\ub9ac\uc785\ub2c8\ub2e4. \uae30\ubcf8 \uc22b\uc790 \ubaa9\ub85d\/\uc2dc\ud000\uc2a4\/\ubc30\uc5f4 \ud568\uc218(\ud569\uacc4\uc5d0\uc11c \ube44\ub300\uce6d\uae4c\uc9c0), \uc2ac\ub77c\uc774\uc2f1 \uc5f0\uc0b0\uc790(\uc608: countBy, simpleRegressionBy \ub4f1), \ube44\ub2dd \uc5f0\uc0b0, \uc774\uc0b0 PDF \uc0d8\ud50c\ub9c1, \ub098\uc774\ube0c \ubca0\uc774\uc988 \ubd84\ub958\uae30, \ud074\ub7ec\uc2a4\ud130\ub9c1, \uc120\ud615 \ud68c\uadc0 \ub4f1\uc744 \uc9c0\uc6d0\ud569\ub2c8\ub2e4.\r\nkmath\ub294 numpy\uc5d0\uc11c \uc601\uac10\uc744 \uc5bb\uc740 \ub77c\uc774\ube0c\ub7ec\ub9ac\uc785\ub2c8\ub2e4. \ub300\uc218 \uad6c\uc870\uc640 \uc5f0\uc0b0, \ubc30\uc5f4\uacfc \uac19\uc740 \uad6c\uc870, \uc218\uc2dd, \ud788\uc2a4\ud1a0\uadf8\ub7a8, \uc2a4\ud2b8\ub9ac\ubc0d \uc5f0\uc0b0\uc744 \ube44\ub86f\ud574 commons-math\uc640 koma\ub97c \uac10\uc2f8\ub294 \ub798\ud37c \ub4f1\uc744 \uc9c0\uc6d0\ud569\ub2c8\ub2e4.\r\nkrangl\uc740 R\uc758 dplyr\uacfc Python\uc758 Pandas\uc5d0\uc11c \uc601\uac10\uc744 \uc5bb\uc740 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub85c, \ud568\uc218\ud615 API\ub97c \uc0ac\uc6a9\ud558\uc5ec \ub370\uc774\ud130 \uc870\uc791\uc744 \uc704\ud55c \uae30\ub2a5\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. \uc774 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc774\uc6a9\ud558\uba74 \ud14c\uc774\ube14 \ud615\uc2dd\uc758 \ub370\uc774\ud130\ub97c \ud544\ud130\ub9c1, \ubcc0\ud658, \uc9d1\uacc4 \ubc0f \uc7ac\uad6c\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\r\nlets-plot\uc740 \ud14c\uc774\ube14 \ud615\uc2dd \ub370\uc774\ud130\ub97c \uae30\ubc18\uc73c\ub85c \ud50c\ub86f\uc744 \uc120\uc5b8\uc801\uc73c\ub85c \uc0dd\uc131\ud558\uae30 \uc704\ud55c \ub77c\uc774\ube0c\ub7ec\ub9ac\uc785\ub2c8\ub2e4. R\uc758 ggplot\uacfc The Grammar of Graphics\uc5d0\uc11c \uc601\uac10\uc744 \uc5bb\uc5c8\uc73c\uba70 Kotlin \ucee4\ub110\uacfc \uae34\ubc00\ud558\uac8c \ud1b5\ud569\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub294 \uba40\ud2f0 \ud50c\ub7ab\ud3fc\uc73c\ub85c JVM\ubfd0\ub9cc \uc544\ub2c8\ub77c JS \ubc0f Python\uc5d0\uc11c\ub3c4 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\r\nkravis\ub294 R\uc758 ggplot\uc5d0\uc11c \uc601\uac10\uc744 \uc5bb\uc740 \ub610 \ub2e4\ub978 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub85c, \ud14c\uc774\ube14 \ud615\uc2dd \ub370\uc774\ud130\ub97c \uc2dc\uac01\ud654\ud569\ub2c8\ub2e4.\r\n\r\n\uc720\uc6a9\ud55c \ub9c1\ud06c\uc758 \uc804\uccb4 \ubaa9\ub85d\uc740 Thomas Nield\uc758 Kotlin \ub370\uc774\ud130 \uacfc\ud559 \ub9ac\uc18c\uc2a4\ub97c \ucc38\uc870\ud558\uc138\uc694.\r\nKotlin\uc6a9 Lets-Plot\r\nLets-Plot\uc740 \uc644\uc804\ud788 Kotlin\uc73c\ub85c \uc791\uc131\ub41c, \ud1b5\uacc4 \ub370\uc774\ud130\uc6a9 \uc624\ud508 \uc18c\uc2a4 \uadf8\ub798\ud504 \uc791\uc131 \ub77c\uc774\ube0c\ub7ec\ub9ac\uc785\ub2c8\ub2e4. \uba40\ud2f0 \ud50c\ub7ab\ud3fc \ub77c\uc774\ube0c\ub7ec\ub9ac\uc774\uae30 \ub54c\ubb38\uc5d0 Kotlin\uc744 \uc704\ud574 \ud2b9\ubcc4\ud788 \uc124\uacc4\ub41c API\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uc774 API\ub97c \uc0ac\uc6a9\ud558\ub294 \ubc29\ubc95\uc740 \uc0ac\uc6a9\uc790 \uac00\uc774\ub4dc\ub97c \uc77d\uc73c\uba70 \uc775\ud790 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\r\n\uc0c1\ud638 \uc6b4\uc6a9\uc131\uc744 \uc704\ud574 Lets-Plot\uc740 Jupyter Notebook\uc6a9 Kotlin \ucee4\ub110\uacfc \uae34\ubc00\ud558\uac8c \ud1b5\ud569\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. Kotlin \ucee4\ub110\uc744 \uc124\uce58\ud558\uace0 \ud65c\uc131\ud654\ud55c \ud6c4 Jupyter Notebook\uc5d0 \ub2e4\uc74c \uc904\uc744 \ucd94\uac00\ud558\uc138\uc694.\r\n%use lets-plot\r\n\uadf8\ub7f0 \ub2e4\uc74c \uc140\uc5d0\uc11c Lets-Plot API \ud568\uc218\ub97c \ud638\ucd9c\ud558\uba74 \uc77c\ubc18\uc801\uc73c\ub85c R \ub610\ub294 Python\uc758 ggplot\uc744 \uc0ac\uc6a9\ud560 \ub54c \ud45c\uc2dc\ub418\ub294 \uac83\uacfc \ub9c8\ucc2c\uac00\uc9c0\ub85c \uacb0\uacfc\ub97c \uc140 \ubc14\ub85c \uc544\ub798\uc5d0\uc11c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\r\n\r\nKotlin bindings for NumPy\r\nNumPy\ub294 Python\uc744 \uc0ac\uc6a9\ud55c \uacfc\ud559 \ucef4\ud4e8\ud305\uc5d0 \ub110\ub9ac \uc774\uc6a9\ub418\ub294 \ud328\ud0a4\uc9c0\uc785\ub2c8\ub2e4. \ub2e4\ucc28\uc6d0 \ubc30\uc5f4 \ucc98\ub9ac, \uc120\ud615 \ub300\uc218, \ud478\ub9ac\uc5d0(Fourier) \ubcc0\ud658, \ub09c\uc218 \ubc0f \uae30\ud0c0 \uc218\ud559 \uc791\uc5c5\uc744 \uc704\ud55c \uac15\ub825\ud55c \uae30\ub2a5\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. Kotlin Bindings for NumPy\ub294 NumPy \ud568\uc218\uc5d0 \uc815\uc801\uc73c\ub85c \uc720\ud615\ud654\ub41c \ub798\ud37c\ub97c \uc81c\uacf5\ud558\uc5ec Kotlin \ucf54\ub4dc\uc5d0\uc11c NumPy \ud568\uc218\ub97c \ud638\ucd9c\ud560 \uc218 \uc788\ub3c4\ub85d \uc9c0\uc6d0\ud558\ub294 Kotlin \ub77c\uc774\ube0c\ub7ec\ub9ac\uc785\ub2c8\ub2e4.\r\n\uae30\uc5ec\ud558\uae30\r\nKotlin\uc758 \uc804\uccb4 \uc5d0\ucf54\uc2dc\uc2a4\ud15c\uc740 \uc624\ud508 \uc18c\uc2a4\ub77c\ub294 \uc544\uc774\ub514\uc5b4\ub97c \uae30\ubc18\uc73c\ub85c \ud558\ubbc0\ub85c \uc218\ub9ce\uc740 \uae30\uc5ec\uc790\ub4e4\uc758 \ub3c4\uc6c0 \uc5c6\uc774\ub294 \uc874\uc7ac\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \ub370\uc774\ud130 \uacfc\ud559\uc744 \uc704\ud55c Kotlin\uc740 \ucd5c\uadfc\uc5d0 \uc2dc\uc791\ub418\uc5c8\uc73c\uba70 \uc9c0\uae08 \uadf8 \uc5b4\ub290 \ub54c\ubcf4\ub2e4 \uc5ec\ub7ec\ubd84\uc758 \ub3c4\uc6c0\uc774 \uc808\uc2e4\ud569\ub2c8\ub2e4. \uae30\uc5ec \ubc29\ubc95\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.\r\n\r\n\uc9c4\ud589 \uc911\uc778 \ub370\uc774\ud130 \uacfc\ud559 \uc791\uc5c5\uc5d0\uc11c \uacaa\ub294 \uace0\ucda9\uc5d0 \uad00\ud574 \uc598\uae30\ud558\uace0 Kotlin\uc744 \ub370\uc774\ud130 \uacfc\ud559 \uc791\uc5c5\uc5d0 \ub354 \uc801\ud569\ud558\uac8c \ub9cc\ub4e4 \uc218 \uc788\ub294 \uc544\uc774\ub514\uc5b4\ub97c \uacf5\uc720\ud574\uc8fc\uc138\uc694.  \r\n\ub370\uc774\ud130 \uacfc\ud559 \uad00\ub828 \uc624\ud508 \uc18c\uc2a4 \ub77c\uc774\ube0c\ub7ec\ub9ac\uc5d0 \uae30\uc5ec\ud558\uace0 Kotlin\uc774 \ub370\uc774\ud130 \uacfc\ud559\uc6a9 \uc5b8\uc5b4\uac00 \ub418\ub294 \ub370 \ub3c4\uc6c0\uc774 \ub420 \uac83 \uac19\uc740 \ub77c\uc774\ube0c\ub7ec\ub9ac\uc640 \ub3c4\uad6c\ub97c \uc790\uc720\ub86d\uac8c \ub9cc\ub4e4\uc5b4 \ubcf4\uc138\uc694.\r\n\r\nKotlin \ucee4\ubba4\ub2c8\ud2f0\uc758 Slack\uc5d0\ub294 #datascience\ub77c\ub294 \uc804\uc6a9 \ucc44\ub110\uc774 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ucc44\ub110\uc5d0 \ucc38\uc5ec\ud558\uc5ec \uc9c8\ubb38\ud558\uace0, \ub3c4\uc6c0\uc774 \ud544\uc694\ud55c \uc601\uc5ed\uc744 \ud30c\uc545\ud558\uc5ec \uc790\uc2e0\uc774 \uae30\uc5ec\ud560 \uc218 \uc788\ub294 \ubc29\ubc95\uc744 \uc54c\uc544\ubcf4\uace0, \uc758\uacac\uacfc \uc791\uc5c5\ubb3c\uc744 \ucee4\ubba4\ub2c8\ud2f0\uc640 \uacf5\uc720\ud574 \uc8fc\uc138\uc694.\r\nKotlin\uc740 \uc5ec\uc804\ud788 \u200b\u200b\ub370\uc774\ud130 \uacfc\ud559\uc790\uac00 \uc120\ud0dd\ud558\ub294 \ub3c4\uad6c\uac00 \ub418\uae30 \uc704\ud55c \ucd08\uae30 \ub2e8\uacc4\uc5d0 \uc788\uc73c\uba70 \ubc1c\uc804 \uacfc\uc815\uc740 \ud765\ubbf8\uc9c4\uc9c4\ud558\uace0 \ub3c4\uc804\uc801\uc778 \uc5ec\uc815\uc774 \ub420 \uac83\uc785\ub2c8\ub2e4. \ub370\uc774\ud130 \uad00\ub828 \uc791\uc5c5\uc758 \uc694\uad6c \uc0ac\ud56d\uc744 \ucda9\uc871\ud558\uae30 \uc704\ud574 \uc5b8\uc5b4 \uc124\uacc4\ub97c \uc870\uc815\ud574\uc57c \ud560 \ubfd0\ub9cc \uc544\ub2c8\ub77c \ub3c4\uad6c \ubc0f \ub77c\uc774\ube0c\ub7ec\ub9ac\uc758 \ud48d\ubd80\ud55c \uc5d0\ucf54\uc2dc\uc2a4\ud15c\ub3c4 \uad6c\ucd95\ud574\uc57c \ud569\ub2c8\ub2e4. \uc608\uc0c1\ub300\ub85c \uc791\ub3d9\ud558\uc9c0 \uc54a\ub294 \ubd80\ubd84\uc774 \uc788\uc73c\uba74 \uacbd\ud5d8\uc744 \uacf5\uc720\ud558\uac70\ub098 \ucc38\uc5ec\ud558\uc5ec \ubb38\uc81c\ud574\uacb0\uc5d0 \ub3c4\uc6c0\uc744 \ubd80\ud0c1\ub4dc\ub9bd\ub2c8\ub2e4.  \ud2b9\ud788 Jupyter \ucee4\ub110\uacfc \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud574 \ubcf4\uace0 JetBrains\uc5d0 \uc758\uacac\uc744 \uacf5\uc720\ud574 \uc8fc\uc138\uc694.\r\n\ub9ac\uc18c\uc2a4\r\n\uc774 \uac8c\uc2dc\ubb3c\uc5d0 \ub098\uc628 \ub300\ubd80\ubd84\uc758 \uc815\ubcf4\ub294 \uacf5\uc2dd Kotlin \uc6f9\uc0ac\uc774\ud2b8\uc5d0\uc11c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\r\nKotlinConf 2019\uc5d0\uc11c\ub294 Alexander Nozik\uc758 Kotlin for Science \ubc0f Erik Meijer\uc758 Gradient Descent with Kotlin\uc744 \ube44\ub86f\ud558\uc5ec \ub370\uc774\ud130 \uacfc\ud559\uc5d0 \uad00\ud55c \uc601\uac10\uc744 \uc5bb\uc744 \uc218 \uc788\ub294 \ub2e4\uc591\ud55c \ubc1c\ud45c\uac00 \uc788\uc5c8\uc2b5\ub2c8\ub2e4. \r\n\ub610\ud55c \uc9c0\ub09c KotlinConf \ucee8\ud37c\ub7f0\uc2a4\uc5d0\uc11c \uc788\uc5c8\ub358 Holger Brandl(Python Pandas\uc640 \uc720\uc0ac\ud55c Kotlin \ub77c\uc774\ube0c\ub7ec\ub9ac, krangl \ud06c\ub9ac\uc5d0\uc774\ud130)\uc758 \ubc1c\ud45c\uc640 Thomas Nield(kotlin-statistics \ud06c\ub9ac\uc5d0\uc774\ud130)\uc758 \ubc1c\ud45c \ub0b4\uc6a9\ub3c4 \uc2dc\uccad\ud574 \ubcf4\uc138\uc694.\r\n  \uac04\ub2e8\ud788 \uc694\uc57d\ud558\uba74,  \ucee4\ubba4\ub2c8\ud2f0\ub294 \ub370\uc774\ud130 \uacfc\ud559\uc5d0\uc11c Kotlin\uc744 \uae0d\uc815\uc801\uc778 \uc18d\ub3c4\ub85c \ucc44\ud0dd\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \r\nLet\u2019s Kotlin!\r\n\r\n\ubcf8\ubb38\uc740 Andrey Cheptsov\uc758 Making Kotlin Ready for Data Science\ub97c \ubc88\uc5ed\ud55c \uae00\uc785\ub2c8\ub2e4.","protected":false},"excerpt":{"rendered":"KotlinConf 2019\uc5d0\uc11c Roman Belov\ub294 \ub370\uc774\ud130 \uacfc\ud559\uc5d0 \ub300\ud55c Kotlin \uc811\uadfc \ubc29\uc2dd\uc758 \uac1c\uc694\ub97c \ubc1c\ud45c\ud588\uc2b5\ub2c8\ub2e4. \uc774 \ubc1c\ud45c \ub0b4\uc6a9\uc740 \ubaa8\ub4e0 \uc0ac\ub78c\uc774 \ubcfc \uc218 \uc788\ub3c4\ub85d \uacf5\uac1c\ub418\uc5b4 \uc788\uc73c\uba70, \uc5ec\uae30\uc5d0\uc11c\ub294 \uc774\ub97c \uc694\uc57d\ud558\uace0 \ub370\uc774\ud130 \uacfc\ud559\uc5d0\uc11c \uc774\uc6a9\ud560 \uc218 \uc788\ub294 \ud604\uc7ac Kotlin \ub3c4\uad6c \ubc0f \ub77c\uc774\ube0c\ub7ec\ub9ac \uc0c1\ud0dc\uc5d0 \ub300\ud574 \uc870\uae08 \ub354 \uc774\uc57c\uae30\ud574\ubcf4\ub824\uace0 \ud569\ub2c8\ub2e4.Kotlin\uc740 \ub370\uc774\ud130 \uacfc\ud559\uc5d0 \uc5b4","protected":false},"author":{"name":"Jessie Cho","link":"https:\/\/blog.jetbrains.com\/ko\/author\/jessie-chojetbrains-com"},"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[4113],"tags":[5318,5582,5672],"cross-post-tag":[],"acf":[],"featured_image":null,"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/posts\/34002"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/users\/964"},{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/users\/964"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/comments?post=34002"}],"version-history":[{"count":0,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/posts\/34002\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/media?parent=34002"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/categories?post=34002"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/tags?post=34002"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/cross-post-tag?post=34002"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}