{"id":73429,"date":"2020-09-08T06:23:21","date_gmt":"2020-09-08T06:23:21","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=kotlin&#038;p=73429"},"modified":"2020-09-08T06:31:51","modified_gmt":"2020-09-08T06:31:51","slug":"kotlin-multiplatform-mobile-goes-alpha-ko","status":"publish","type":"kotlin","link":"https:\/\/blog.jetbrains.com\/ko\/kotlin\/2020\/09\/kotlin-multiplatform-mobile-goes-alpha-ko\/","title":{"rendered":"\uc54c\ud30c \ubc84\uc804\uc73c\ub85c \uc804\ud658\ub418\ub294 Kotlin Multiplatform Mobile"},"content":{"rendered":"<p>Kotlin Multiplatform Mobile(KMM)\uc740 iOS \ubc0f Android \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ubaa8\ub450\uc5d0\uc11c \ub3d9\uc77c\ud55c \ube44\uc988\ub2c8\uc2a4 \ub85c\uc9c1 \ucf54\ub4dc\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d \ub3c4\uc640\uc8fc\ub294 SDK\uc785\ub2c8\ub2e4. \uc774\uc81c KMM\uc774 \uc54c\ud30c \ubc84\uc804\uc73c\ub85c \uc804\ud658\ub418\uc5b4 \ube44\uc988\ub2c8\uc2a4 \ub85c\uc9c1\uc744 \ubaa8\ubc14\uc77c \uc571\uc5d0\uc11c \ubc14\ub85c \uacf5\uc720\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ubc84\uc804\uc5d0\ub294 \uc0c8\ub85c\uc6b4 Android Studio\uc6a9 KMM \ud50c\ub7ec\uadf8\uc778\uc774 \ud3ec\ud568\ub418\uc5b4 \ub3d9\uc77c\ud55c IDE\uc5d0\uc11c \uacf5\uc720 \ucf54\ub4dc\ub97c \uc791\uc131, \uc2e4\ud589, \ud14c\uc2a4\ud2b8 \ubc0f \ub514\ubc84\uadf8 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ubaa8\ubc14\uc77c \uc571\uc5d0\uc11c Kotlin\uc744 \uc0ac\uc6a9\ud558\uc5ec \ucf54\ub4dc\ub97c \uacf5\uc720\ud558\ub294 VMWare, Autodesk, Yandex\uc640 \uac19\uc740 \ud6cc\ub96d\ud55c \ud300\uacfc \ud568\uaed8\ud558\uc138\uc694. \ubaa8\ubc14\uc77c \ud50c\ub7ab\ud3fc \uac04\uc5d0 \ucf54\ub4dc\ub97c \uc7ac\uc0ac\uc6a9\ud558\ub294 \uc77c\uc774 \uc774\ubcf4\ub2e4 \ub354 \uc26c\uc6b8 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4!<\/p>\n<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/08\/KMM_release_banners_blogpost.png\" alt=\"\ud30c\uc77c\"><\/p>\n<h2>Kotlin Multiplatform Mobile\uc774\ub780?<\/h2>\n<p><strong>Kotlin Multiplatform Mobile<\/strong>(<strong>KMM<\/strong>)\uc740 JetBrains\uac00 \uc81c\uacf5\ud558\ub294 \ud06c\ub85c\uc2a4 \ud50c\ub7ab\ud3fc \ubaa8\ubc14\uc77c \uac1c\ubc1c\uc6a9 SDK\uc785\ub2c8\ub2e4. <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/multiplatform.html\" target=\"_blank\" rel=\"noopener\">Kotlin\uc758 \uba40\ud2f0\ud50c\ub7ab\ud3fc \uae30\ub2a5<\/a>\uc744 \uc0ac\uc6a9\ud558\uba70, \ubaa8\ubc14\uc77c \ud06c\ub85c\uc2a4 \ud50c\ub7ab\ud3fc \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ucd5c\ub300\ud55c \uc990\uac81\uace0 \ud6a8\uc728\uc801\uc73c\ub85c \ube4c\ub4dc\ud560 \uc218 \uc788\ub3c4\ub85d \uc885\ud569 \ud658\uacbd\uc744 \uc81c\uacf5\ud558\uae30 \uc704\ud574 \uc124\uacc4\ub41c \ub2e4\uc591\ud55c \ub3c4\uad6c\uc640 \uae30\ub2a5\uc744 \ud3ec\ud568\ud569\ub2c8\ub2e4. <\/p>\n<p>\uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 Android \ubc0f iOS \ubc84\uc804\uc740 \uacf5\ud1b5\uc810\uc774 \ub9ce\uc9c0\ub9cc, \ud2b9\ud788 UI \uce21\uba74, \uc989 \ub2e4\uc18c \ub2e4\ub978 \uc2a4\ud06c\ub864 \ub3d9\uc791\ubd80\ud130 \uc644\uc804\ud788 \ub2e4\ub978 \ud0d0\uc0c9 \ub85c\uc9c1\uc5d0 \uc774\ub974\uae30\uae4c\uc9c0 \ub9ce\uc740 \ucc28\uc774\uc810\uc774 \uc788\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub2e4\ub978 \ud55c\ud3b8, \ub370\uc774\ud130 \uad00\ub9ac, \ubd84\uc11d, \uc778\uc99d \uae30\ub2a5 \ub4f1\uc758 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ube44\uc988\ub2c8\uc2a4 \ub85c\uc9c1\uc740 \ub3d9\uc77c\ud55c \uacbd\uc6b0\uac00 \ub9ce\uc2b5\ub2c8\ub2e4. \uc774 \ub54c\ubb38\uc5d0 \ud50c\ub7ab\ud3fc \uac04 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \uc77c\ubd80\ub9cc \uacf5\uc720\ud558\uace0 \ub2e4\ub978 \ubd80\ubd84\uc740 \uc644\uc804\ud788 \ubd84\ub9ac\ud55c \uc0c1\ud0dc\ub85c \uc720\uc9c0\ud558\ub294 \uac83\uc774 \ud1b5\uc0c1\uc801\uc785\ub2c8\ub2e4.<\/p>\n<p>\uadf8\ub7ec\ub098 KMM\uc744 \uc0ac\uc6a9\ud558\uba74 \uc774 \ubd80\ubd84\uc5d0\uc11c \uc720\uc5f0\uc131\uc744 \ud655\ubcf4\ud558\uace0 \ub124\uc774\ud2f0\ube0c \ud504\ub85c\uadf8\ub798\ubc0d\uc758 \uc774\uc810\uc744 \uc720\uc9c0\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. iOS \ubc0f Android \uc571\uc758 \ube44\uc988\ub2c8\uc2a4 \ub85c\uc9c1\uc5d0 \ub2e8\uc77c \ucf54\ub4dc \ubca0\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud558\uace0 \ud544\uc694\ud55c \uacbd\uc6b0\uc5d0\ub9cc \ud50c\ub7ab\ud3fc\ubcc4 \ucf54\ub4dc\ub97c \uc791\uc131\ud558\uc5ec \uae30\ubcf8 UI\ub97c \uad6c\ud604\ud558\uac70\ub098 \ud50c\ub7ab\ud3fc\ubcc4 API\ub85c \uc791\uc5c5\ud558\uc138\uc694.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2021\/08\/KMM-release-scheme_Blogpost.jpg\" alt=\"\ud30c\uc77c\"><\/p>\n<p>KMM\uc740 \ubaa8\ubc14\uc77c \ud504\ub85c\uc81d\ud2b8\uc640 \uc6d0\ud65c\ud558\uac8c \ud1b5\ud569\ub429\ub2c8\ub2e4. Kotlin\uc73c\ub85c \uc791\uc131\ub41c \uacf5\uc720 \ucf54\ub4dc\ub294 Kotlin\/JVM\uc744 \uc0ac\uc6a9\ud558\uc5ec JVM \ubc14\uc774\ud2b8\ucf54\ub4dc\ub85c \ucef4\ud30c\uc77c\ub418\uace0 Kotlin\/Native\ub97c \uc0ac\uc6a9\ud558\uc5ec \ub124\uc774\ud2f0\ube0c \ubc14\uc774\ub108\ub9ac\ub85c \ucef4\ud30c\uc77c\ub418\ubbc0\ub85c \ub2e4\ub978 \uc77c\ubc18 \ubaa8\ubc14\uc77c \ub77c\uc774\ube0c\ub7ec\ub9ac\uc640 \ub9c8\ucc2c\uac00\uc9c0\ub85c KMM \ube44\uc988\ub2c8\uc2a4 \ub85c\uc9c1 \ubaa8\ub4c8\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc774\ubbf8 \ub9ce\uc740 \ud68c\uc0ac\uc5d0\uc11c \ubaa8\ubc14\uc77c \ud50c\ub7ab\ud3fc \uac04\uc5d0 Kotlin \ucf54\ub4dc\ub97c \uacf5\uc720\ud558\uc5ec \ub9ce\uc740 \uc2dc\uac04\uacfc \ub178\ub825\uc744 \uc808\uc57d\ud588\uc2b5\ub2c8\ub2e4. \uace0\ubb34\uc801\uc778 \uc0ac\ub840\ub97c \uc18c\uac1c\ud574 \ub4dc\ub9ac\uba74 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<ul>\n<li><a href=\"https:\/\/kotlinlang.org\/lp\/mobile\/case-studies\/quizlet\" target=\"_blank\" rel=\"noopener\">Quizlet<\/a>\uc740 \uacf5\uc720\ub41c JavaScript \uc811\uadfc \ubc29\uc2dd\uc5d0\uc11c KMM\uc73c\ub85c \ube44\uc988\ub2c8\uc2a4 \ub85c\uc9c1\uc744 \ub9c8\uc774\uadf8\ub808\uc774\uc158\ud55c \ud6c4, Android \ubc0f iOS \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \uc131\ub2a5\uc744 \ub300\ud3ed \uac1c\uc120\ud588\uc2b5\ub2c8\ub2e4.<\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/lp\/mobile\/case-studies\/fastwork\" target=\"_blank\" rel=\"noopener\">Fastwork<\/a>\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \ub3c4\uba54\uc778 \ubc0f \ub370\uc774\ud130 \ub808\uc774\uc5b4\uc5d0 KMM\uc744 \ub3c4\uc785\ud574 \ubaa8\ubc14\uc77c \ud50c\ub7ab\ud3fc \uac04\uc5d0 \ube44\uc988\ub2c8\uc2a4 \ub85c\uc9c1\uacfc API \uc11c\ube44\uc2a4\ub97c \uacf5\uc720\ud558\uc5ec \ud300\uc758 \uc0dd\uc0b0\uc131\uc744 \ud06c\uac8c \ud5a5\uc0c1\ud588\uc2b5\ub2c8\ub2e4.<\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/lp\/mobile\/case-studies\/yandex\" target=\"_blank\" rel=\"noopener\">Yandex.Disk<\/a>\ub294 \uc2e4\ud5d8\uc801\uc73c\ub85c \uc791\uc740 \uae30\ub2a5\uc744 \ud1b5\ud569\ud558\ub294 \uac83\uc73c\ub85c \uc2dc\uc791\ud558\uc5ec, \uc774 \uc2e4\ud5d8\uc774 \uc131\uacf5\uc801\uc778 \uac83\uc73c\ub85c \uc785\uc99d\ub418\uc790 KMM\uc73c\ub85c \uc804\uccb4 \ub370\uc774\ud130 \ub3d9\uae30\ud654 \ub85c\uc9c1\uc744 \uad6c\ud604\ud588\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ul>\n<p>\uc774 \ud300 \ubc0f <a href=\"https:\/\/kotlinlang.org\/lp\/mobile\/case-studies\/\" target=\"_blank\" rel=\"noopener\">\ub2e4\ub978 \uc218\ub9ce\uc740 \ud300<\/a>\uc774 \uc5bb\uc740 \ub180\ub77c\uc6b4 \uacb0\uacfc\ub294 \uc800\ud76c\uc5d0\uac8c \ud070 \uc601\uac10\uc744 \uc8fc\uc5c8\uc2b5\ub2c8\ub2e4. \uc774\ub4e4\uc758 \ud6c4\uae30\uac00 \uc5ec\ub7ec\ubd84\uc5d0\uac8c\ub3c4 KMM\uc73c\ub85c \ubaa8\ubc14\uc77c \ud50c\ub7ab\ud3fc \uac04 \ucf54\ub4dc \uacf5\uc720\ub97c \uc2dc\uc791\ud558\ub294 \uacc4\uae30\uac00 \ub418\uc5c8\uc73c\uba74 \ud569\ub2c8\ub2e4.<\/p>\n<h2>KMM\uc73c\ub85c \uac04\ud3b8\ud558\uac8c \ubaa8\ubc14\uc77c \uc571 \uc81c\uc791<\/h2>\n<p>KMM\uc740 \ubaa8\ubc14\uc77c \uac1c\ubc1c \uc138\uacc4\uc5d0\uc11c \uc5ec\uc804\ud788 \u200b\u200b\uc2e0\uc0dd \uae30\uc220\uc774\uc9c0\ub9cc \uac1c\ubc1c\uc758 \ud310\ub3c4\ub97c \ubc14\uafc0 \uc9c4\uc815\ud55c \uac8c\uc784 \uccb4\uc778\uc800\ub77c\uace0 \uc0dd\uac01\ud569\ub2c8\ub2e4. \uc774\uc5d0 \uc800\ud76c\ub294 Kotlin \ub0b4\ubd80\uc5d0 \ubcc4\ub3c4\uc758 \ud300\uc744 \ubc30\uce58\ud558\uc5ec KMM\uc744 \ubc1c\uc804\uc2dc\ud0a4\uace0 Kotlin\uc73c\ub85c \ud06c\ub85c\uc2a4 \ud50c\ub7ab\ud3fc \ubaa8\ubc14\uc77c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc81c\uc791\ud558\uae30 \uc704\ud55c \ucd5c\uc0c1\uc758 \uac1c\ubc1c\uc790 \uacbd\ud5d8\uc744 \uc81c\uacf5\ud558\ub3c4\ub85d \ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uadf8 \uccab \ubc88\uc9f8 \ub2e8\uacc4\ub85c \uc624\ub298 \uc0c8\ub85c\uc6b4 <strong><a href=\"https:\/\/kotlinlang.org\/lp\/mobile\/\" target=\"_blank\" rel=\"noopener\">KMM \uac1c\ubc1c\uc790 \ud3ec\ud138<\/a><\/strong>\uacfc \ud568\uaed8 <strong><a href=\"https:\/\/plugins.jetbrains.com\/plugin\/14936-kotlin-multiplatform-mobile\" target=\"_blank\" rel=\"noopener\">Android Studio\uc6a9 KMM \ud50c\ub7ec\uadf8\uc778<\/a><\/strong>\uc758 \uccab \ud14c\uc2a4\ud2b8 \ubc84\uc804\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. <\/p>\n<p>\uc9c0\uae08\ubd80\ud130 KMM\uc744 \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4!<\/p>\n<h3>\uc775\uc219\ud55c \ud658\uacbd\uc5d0\uc11c \uc791\uc5c5<\/h3>\n<p>\uc0c8\ub85c\uc6b4 KMM \ud50c\ub7ec\uadf8\uc778\uc744 \uc0ac\uc6a9\ud558\uba74 \ub2e4\ub978 IDE\ub85c \uc804\ud658\ud558\uc9c0 \uc54a\uace0\ub3c4 Android Studio\uc5d0\uc11c \uacf5\uc720 \ucf54\ub4dc\ub97c \uc791\uc131, \uc2e4\ud589, \ud14c\uc2a4\ud2b8, \ub514\ubc84\uadf8\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc124\uce58\ud558\ub824\uba74 <strong>Preferences(\ud658\uacbd \uc124\uc815)<\/strong> | <strong>Plugins(\ud50c\ub7ec\uadf8\uc778)<\/strong>\uc744 \uc120\ud0dd\ud55c \ud6c4, <em>Kotlin Multiplatform Mobile<\/em> \ud50c\ub7ec\uadf8\uc778\uc744 <strong>Marketplace(\ub9c8\ucf13\ud50c\ub808\uc774\uc2a4)<\/strong>\uc5d0\uc11c \uac80\uc0c9\ud55c \ub2e4\uc74c <strong>Install(\uc124\uce58)<\/strong> \ubc84\ud2bc\uc744 \ud074\ub9ad\ud558\uc138\uc694.<\/p>\n<h4>\ub2e8 \uba87\ubc88\uc758 \ud074\ub9ad\uc73c\ub85c \uc0c8 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uad6c\uc131<\/h4>\n<p><strong>New Kotlin Multiplatform Mobile Project<\/strong> \ub9c8\ubc95\uc0ac\ub97c \uc0ac\uc6a9\ud558\uba74 \ub2e8 \uba87\ubc88\uc758 \ud074\ub9ad\ub9cc\uc73c\ub85c \uacf5\uc720 \ucf54\ub4dc \ubca0\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud558\uc5ec \ubc14\ub85c \uc2e4\ud589 \uac00\ub2a5\ud55c \ubaa8\ubc14\uc77c \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ud504\ub85c\uc81d\ud2b8\ub97c \uc0dd\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub450 \ud50c\ub7ab\ud3fc\uc5d0\uc11c \uc5b4\ub5bb\uac8c \uc791\ub3d9\ud558\ub294\uc9c0 \ud655\uc778\ud558\ub824\uba74, \ud544\uc694\ud55c \uc2e4\ud589 \uad6c\uc131\uc744 \uc120\ud0dd\ud558\uace0 <strong>Run(\uc2e4\ud589)<\/strong> \ubc84\ud2bc\uc744 \ud074\ub9ad\ud558\uae30\ub9cc \ud558\uba74 \ub429\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/08\/kmm-wizard.png\" alt=\"\ud30c\uc77c\"><\/p>\n<p>\uc0dd\uc131\ub41c \ud504\ub85c\uc81d\ud2b8\uc5d0\ub294 \ud50c\ub7ab\ud3fc\ubcc4 API \ubc0f \uae30\ubcf8 \ud14c\uc2a4\ud2b8 \ucee4\ubc84\ub9ac\uc9c0\uc5d0 \uc5f0\uacb0\ud558\ub294 \ubc29\ubc95\uc758 \uc608\uc2dc\uac00 \ud3ec\ud568\ub429\ub2c8\ub2e4. \uc774 \ub9c8\ubc95\uc0ac\ub294 KMM\uc758 \uae30\ubcf8 \uae30\ub2a5\uc744 \ud0d0\uc0c9\ud558\ub294 \ub370 \uc0ac\uc6a9\ud558\uac70\ub098 \uc0c8 KMM \ud504\ub85c\ub355\uc158 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc6a9 \uc2a4\uce90\ud3f4\ub529 \ub3c4\uad6c\ub85c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <\/p>\n<p><a href=\"https:\/\/kotlinlang.org\/docs\/mobile\/create-first-app.html\" target=\"_blank\" rel=\"noopener\">\uc774 \ud29c\ud1a0\ub9ac\uc5bc<\/a>\uc744 \ub530\ub77c \ud50c\ub7ec\uadf8\uc778\uc744 \uc124\uce58\ud558\uace0 \ub9c8\ubc95\uc0ac\ub97c \uc0ac\uc6a9\ud558\uc5ec \uccab \uba40\ud2f0\ud50c\ub7ab\ud3fc \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ub9cc\ub4e4\uc5b4 \ubcf4\uc138\uc694.<\/p>\n<h4>KMM\uc744 \uae30\uc874 \ud504\ub85c\uc81d\ud2b8\uc5d0 \ud55c \ubc88\uc5d0 \ub3c4\uc785<\/h4>\n<p>\ub610\ud55c \uacf5\uc720\ub41c Kotlin \ucf54\ub4dc\ub294 \ub2e4\ub978 \uc77c\ubc18 \uc885\uc18d \uc694\uc18c\uc640 \ub9c8\ucc2c\uac00\uc9c0\ub85c \uae30\uc874 \ucf54\ub4dc\uc5d0 \uc27d\uac8c \ud1b5\ud569\ub418\ubbc0\ub85c \ud604\uc7ac \ud504\ub85c\uc81d\ud2b8\uc5d0\uc11c KMM\uc744 \ubc14\ub85c \uc2dc\uc791\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <strong>New Kotlin Multiplatform Mobile Module<em> <\/em><\/strong>\ub9c8\ubc95\uc0ac\ub97c \uc0ac\uc6a9\ud558\uba74 \ud504\ub85c\uc81d\ud2b8\uc5d0 \uc0c8 KMM \ubaa8\ub4c8\uc744 \ucd94\uac00\ud558\uc5ec Kotlin\uc73c\ub85c \uc791\uc131\ud574\ub454 \ucf54\ub4dc\ub97c \uc0ac\uc6a9\ud558\uace0 \ub9ac\ud329\ud1a0\ub9c1\ud558\uc5ec iOS\uc640 \ud638\ud658\ub418\ub3c4\ub85d \ub9cc\ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <\/p>\n<p>\uba40\ud2f0\ud50c\ub7ab\ud3fc \ud504\ub85c\uc81d\ud2b8\uc758 \uc544\ud0a4\ud14d\ucc98\ub97c \uc124\uacc4\ud558\uace0 \ud574\ub2f9 \ud504\ub85c\uc81d\ud2b8\ub85c \ub9c8\uc774\uadf8\ub808\uc774\uc158\uc744 \uc900\ube44\ud558\ub294 \ubc29\ubc95\uc744 \uc54c\uc544\ubcf4\ub824\uba74 <a href=\"https:\/\/kotlinlang.org\/docs\/mobile\/integrate-in-existing-app.html\" target=\"_blank\" rel=\"noopener\">KMM\uc744 \uae30\uc874 \ud504\ub85c\uc81d\ud2b8\uc5d0 \ud1b5\ud569\ud558\ub294 \ubc29\ubc95\uc5d0 \uad00\ud55c \uac00\uc774\ub4dc<\/a>\ub97c \ud655\uc778\ud558\uc138\uc694.<\/p>\n<h4>\ud558\ub098\uc758 IDE\uc5d0\uc11c \ub450 \ud50c\ub7ab\ud3fc \uc791\uc5c5\uc744 \uc218\ud589<\/h4>\n<p>\uc774\uc81c \ucf54\ub4dc\uac00 \ub450 \ubaa8\ubc14\uc77c \ud50c\ub7ab\ud3fc\uc5d0\uc11c \uc62c\ubc14\ub974\uac8c \uc791\ub3d9\ud558\ub294\uc9c0 \ud655\uc778\ud558\uae30 \uc704\ud574 IDE\ub97c \uc804\ud658\ud558\uace0 Xcode\ub97c \uc2e4\ud589\ud560 \ud544\uc694\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. \uc0c8\ub85c\uc6b4 \ud50c\ub7ec\uadf8\uc778\uc744 \uc0ac\uc6a9\ud558\uba74 Android Studio\uc5d0\uc11c \ubc14\ub85c iOS \uae30\uae30 \ubc0f \uc2dc\ubbac\ub808\uc774\ud130\ub97c \ud1b5\ud569\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ud1b5\ud569\ud558\uba74 \ub2e4\uc74c\uacfc \uac19\uc740 \uc791\uc5c5\uc744 \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<ul>\n<li>\uc0ac\uc804 \uc815\uc758\ub41c \uc2e4\ud589 \uad6c\uc131\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc2dc\ubbac\ub808\uc774\ud130 \ub610\ub294 \uae30\uae30\uc5d0\uc11c <strong>iOS \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc2e4\ud589\ud558\uace0 \ub514\ubc84\uadf8<\/strong>\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<li>\ud14c\uc2a4\ud2b8 \ud074\ub798\uc2a4 \ub610\ub294 \uba54\uc18c\ub4dc\uc5d0\uc11c \uc5ec\ubc31 \uc544\uc774\ucf58\uc744 \uac04\ub2e8\ud788 \ud074\ub9ad\ud558\uba74 iOS \uc2dc\ubbac\ub808\uc774\ud130\uc5d0\uc11c <strong>\uacf5\ud1b5 \ubc0f iOS\uc6a9 \ud14c\uc2a4\ud2b8\ub97c \uc2e4\ud589\ud558\uace0 \ub514\ubc84\uadf8<\/strong>\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ul>\n<p>\ub610\ud55c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uacfc \ud14c\uc2a4\ud2b8 \ubaa8\ub450\uc5d0 \ub300\ud574 \uc911\ub2e8\uc810\uc744 \uc124\uc815\ud558\uace0 iOS \uc0c1\uc5d0\uc11c\uc758 \ucf54\ub4dc\ub97c \ub514\ubc84\uadf8\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2021\/08\/kmm-ios-static-min.png\" data-gif-src=\"https:\/\/resources.jetbrains.com\/storage\/products\/blog\/wp-content\/uploads\/Kotlin\/kmm-ios-demo.gif\"><\/p>\n<h3>\uc624\ubc84\ud5e4\ub4dc \uc5c6\uc774 iOS \uc5d0\ucf54\uc2dc\uc2a4\ud15c\uacfc \ud1b5\ud569<\/h3>\n<p>\uc704\uc5d0\uc11c \ub9d0\ud588\ub4ef\uc774 KMM\uc740 \ubaa8\ubc14\uc77c \ud504\ub85c\uc81d\ud2b8\uc640 \uc6d0\ud65c\ud558\uac8c \ud1b5\ud569\ub429\ub2c8\ub2e4. Android\uc758 \uacbd\uc6b0, \ud504\ub85c\uc81d\ud2b8\uc758 \ubaa8\ub4e0 \ubd80\ubd84\uc5d0 Kotlin\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub3d9\uc2dc\uc5d0 Kotlin\/Native\uc640 <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/native\/objc_interop.html\" target=\"_blank\" rel=\"noopener\">Objective-C\/Swift \uac04\uc758 \uc0c1\ud638\uc6b4\uc6a9\uc131<\/a>, <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/native\/cocoapods.html\" target=\"_blank\" rel=\"noopener\">CocoaPods \uc885\uc18d \uc694\uc18c \uad00\ub9ac\uc790 \ud1b5\ud569<\/a>, expect\/actual \ud328\ud134\uacfc \ud568\uaed8 <a href=\"https:\/\/kotlinlang.org\/docs\/mobile\/connect-to-platform-specific-apis.html\" target=\"_blank\" rel=\"noopener\">\ud50c\ub7ab\ud3fc\ubcc4 API\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \uae30\ub2a5<\/a>\uc774 \uc81c\uacf5\ub418\uc5b4 iOS \uac1c\ubc1c \ud504\ub85c\uc138\uc2a4\uc640 \uae34\ubc00\ud558\uac8c \ud1b5\ud569\ub429\ub2c8\ub2e4.<\/p>\n<h4>Kotlin\/Native\ub97c \uc0ac\uc6a9\ud558\uc5ec Swift \ucf54\ub4dc\uc5d0\uc11c \uac04\ud3b8\ud558\uac8c Kotlin \uc791\uc5c5<\/h4>\n<p>Kotlin\/Native\ub294 Objective-C\/Swift\uc640 \uc591\ubc29\ud5a5 \uc0c1\ud638\uc6b4\uc6a9\uc131\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. Kotlin \ubaa8\ub4c8\uc740 Swift\/Objective-C\uc5d0\uc11c \uc644\ubcbd\ud558\uac8c \uc0ac\uc6a9 \uac00\ub2a5\ud569\ub2c8\ub2e4. Objective-C \ud504\ub808\uc784\uc6cc\ud06c \ubc0f \ub77c\uc774\ube0c\ub7ec\ub9ac\ub294 Kotlin \ucf54\ub4dc\uc5d0\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc73c\uba70, Swift \ub77c\uc774\ube0c\ub7ec\ub9ac\ub3c4 <code>@objc<\/code>\ub97c \uc0ac\uc6a9\ud558\uc5ec \ud574\ub2f9 API\ub97c Objective-C\ub85c \ub0b4\ubcf4\ub0b4\uba74 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p><a href=\"https:\/\/kotlinlang.org\/docs\/reference\/native\/objc_interop.html\" target=\"_blank\" rel=\"noopener\">Kotlin\/Native\uc640 Swift\/Objective-C \uac04\uc758 \uc0c1\ud638\uc6b4\uc6a9\uc131<\/a>\uc5d0 \uad00\ud574 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\uc138\uc694.<\/p>\n<h4>iOS \uc885\uc18d \uc694\uc18c\ub97c \uc27d\uac8c \uad00\ub9ac<\/h4>\n<p>Kotlin\/Native\uc5d0\ub294 CocoaPods \uc885\uc18d \uc694\uc18c \uad00\ub9ac\uc790\uac00 \ud1b5\ud569\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. CocoaPods \uc800\uc7a5\uc18c \ub610\ub294 \ub85c\uceec\uc5d0 \uc800\uc7a5\ub41c Pod \ub77c\uc774\ube0c\ub7ec\ub9ac\uc758 \uc885\uc18d \uc694\uc18c\ub97c \ucd94\uac00\ud560 \uc218 \uc788\uc73c\uba70, \ub124\uc774\ud2f0\ube0c \ub300\uc0c1\uc774 \uc788\ub294 \uba40\ud2f0\ud50c\ub7ab\ud3fc \ud504\ub85c\uc81d\ud2b8\ub97c CocoaPods \uc885\uc18d \uc694\uc18c(Kotlin Pod)\ub85c\uc11c \uc0ac\uc6a9\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. Android Studio\uc5d0\uc11c \ubc14\ub85c Pod \uc885\uc18d \uc694\uc18c\ub97c \uad00\ub9ac\ud558\uace0 \uac15\uc870 \ud45c\uc2dc \ubc0f \ucf54\ub4dc \uc644\uc131 \ub4f1\uc758 \uc644\ubcbd\ud55c \ucf54\ub529 \uc9c0\uc6d0 \uae30\ub2a5\uc744 \ud65c\uc6a9\ud558\uc138\uc694.<\/p>\n<p>\uc77c\ubc18\uc801\uc778 KMM \ub77c\uc774\ube0c\ub7ec\ub9ac \uad6c\uc131\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"kotlin-code\" data-highlight-only=\"true\" theme=\"idea\" indent=\"4\" style=\"visibility: hidden; padding: 36px 0;\">\r\nkotlin {\r\n    android()\r\n    ios()\r\n    \r\n    cocoapods {\r\n        summary = &quot;CocoaPods test library&quot;\r\n        homepage = &quot;https:\/\/github.com\/JetBrains\/kotlin&quot;\r\n        pod(&quot;AFNetworking&quot;, &quot;~&gt; 4.0.0&quot;)\r\n        podfile = project.file(&quot;..\/ios-app\/Podfile&quot;)\r\n     }\r\n }\r\n<\/pre>\n<p><code>Podfile<\/code>\uc5d0 \ub77c\uc774\ube0c\ub7ec\ub9ac\uc758 \uc774\ub984\uacfc \uacbd\ub85c\ub97c \ucd94\uac00\ud558\uc5ec \ud574\ub2f9 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c iOS \ud504\ub85c\uc81d\ud2b8\uc5d0 Kotlin Pod\uc73c\ub85c\uc11c \uc5f0\uacb0\ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"kotlin-code\" data-highlight-only=\"true\" theme=\"idea\" indent=\"4\" style=\"visibility: hidden; padding: 36px 0;\">\r\nuse_frameworks!\r\n\r\ntarget &#039;ios-app&#039; do\r\n    pod &#039;kotlin_library&#039;, :path =&gt; &#039;..\/kotlin-library&#039;\r\nend\r\n<\/pre>\n<p><a href=\"https:\/\/kotlinlang.org\/docs\/reference\/native\/cocoapods.html\" target=\"_blank\" rel=\"noopener\">CocoaPods \ud1b5\ud569<\/a>\uc5d0 \uad00\ud574 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\uc138\uc694.<\/p>\n<h3>\uc0c8 \uac1c\ubc1c\uc790 \ud3ec\ud138\uc5d0\uc11c \uba40\ud2f0\ud50c\ub7ab\ud3fc \ubaa8\ubc14\uc77c \uc571\uc744 \ub354 \ud6a8\uacfc\uc801\uc73c\ub85c \uc81c\uc791\ud558\ub294 \ubc29\ubc95 \uc54c\uc544\ubcf4\uae30<\/h3>\n<p>\uc0c8\ub85c\uc6b4 KMM \uac1c\ubc1c\uc790 \ud3ec\ud138\uc740 KMM\uc744 \ucc98\uc74c \uc0ac\uc6a9\ud560 \ub54c\uc758 \uacbd\ud5d8\ubd80\ud130 \ud504\ub85c\ub355\uc158 \ud658\uacbd\uc5d0\uc11c \uc0ac\uc6a9\ud558\ub294 \uc804\uccb4 \uacfc\uc815\uc5d0 \uc774\ub974\uae30\uae4c\uc9c0 \uc0ac\uc6a9\uc790\uc758 \uc5ec\uc815\uc744 \ub354 \ud3b8\uc548\ud558\uace0 \uc0dd\uc0b0\uc801\uc73c\ub85c \ub9cc\ub4e4 \uc218 \uc788\ub3c4\ub85d \uc124\uacc4\ub418\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n<p><a href=\"https:\/\/kotlinlang.org\/docs\/mobile\/\" target=\"_blank\" rel=\"noopener\">\ubb38\uc11c \uc139\uc158<\/a>\uc740 KMM\uc73c\ub85c \uc791\uc5c5\ud560 \ub54c \ubbff\uace0 \ucc38\uace0\ud560 \uc218 \uc788\ub294 \ub9ac\uc18c\uc2a4\uc785\ub2c8\ub2e4. <a href=\"https:\/\/kotlinlang.org\/docs\/mobile\/getting-started.html\" target=\"_blank\" rel=\"noopener\">\uc2dc\uc791 \uc548\ub0b4 \ud29c\ud1a0\ub9ac\uc5bc<\/a>\ubd80\ud130 \uace0\uae09 \uac1c\ubc1c \uc8fc\uc81c\uc5d0 \uc774\ub974\uae30\uae4c\uc9c0 \ubaa8\ub4e0 \uc218\uc900\uc758 \uc804\ubb38 \uc9c0\uc2dd\uc5d0 \ub300\ud55c \ub0b4\uc6a9\uc744 \ucc3e\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc5ec\uae30\uc5d0\ub294 <a href=\"https:\/\/kotlinlang.org\/docs\/mobile\/use-ktor-for-networking.html\" target=\"_blank\" rel=\"noopener\">\ub124\ud2b8\uc6cc\ud0b9<\/a> \ubc0f <a href=\"https:\/\/kotlinlang.org\/docs\/mobile\/configure-sqldelight-for-data-storage.html\" target=\"_blank\" rel=\"noopener\">\ub370\uc774\ud130 \uc2a4\ud1a0\ub9ac\uc9c0<\/a> \uacc4\uce35 \uad6c\uc131, <a href=\"https:\/\/kotlinlang.org\/docs\/mobile\/organize-process-around-kmm.html\" target=\"_blank\" rel=\"noopener\">KMM\uc744 \uc911\uc2ec\uc73c\ub85c \uac1c\ubc1c \ud504\ub85c\uc138\uc2a4 \uad6c\uc131<\/a>\uacfc \uac19\uc740 \uc77c\ubc18 \uc791\uc5c5\uc5d0 \uad00\ud55c \uc720\uc6a9\ud55c \uc815\ubcf4\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uc11c KMM\uc744 \uc0ac\uc6a9\ud560 \ub54c\uc758 \uc774\uc810\uc5d0 \uad00\ud55c \uc0c8\ub85c\uc6b4 \uc0ac\uc2e4\uc744 \uc54c\uace0 \uc2f6\uc73c\uc2e0\uac00\uc694? \uc790\uc2e0\ub4e4\uc758 \uc81c\ud488\uc5d0 \uc774\ubbf8 KMM\uc744 \uc0ac\uc6a9\ud558\uace0 \uc788\ub294 \ub2e4\uc591\ud55c \ud300\uc758 \uc9c1\uc811\uc801\uc778 \uacbd\ud5d8\uc744 <a href=\"https:\/\/kotlinlang.org\/lp\/mobile\/case-studies\" target=\"_blank\" rel=\"noopener\">\uc0ac\ub840 \uc5f0\uad6c<\/a> \uc139\uc158\uc5d0\uc11c \ud655\uc778\ud574\ubcf4\uc138\uc694.<\/p>\n<h2>\ucee4\ubba4\ub2c8\ud2f0\uc758 \ud798<\/h2>\n<p>\uc790\uc2e0\uc758 \uc2dc\uac04\uacfc \uc815\ubcf4, \uc804\ubb38 \uc9c0\uc2dd\uc73c\ub85c \uc774 \ub9b4\ub9ac\uc2a4\uc5d0 \uc911\uc694\ud55c \uae30\uc5ec\ub97c \ud574\uc8fc\uc2e0 \ub2e4\uc74c \ud68c\uc0ac \ubc0f \uac1c\uc778 \uac1c\ubc1c\uc790\ubd84\ub4e4\uaed8 \uac10\uc0ac\ub4dc\ub9bd\ub2c8\ub2e4. <a href=\"https:\/\/github.com\/kpgalligan\" target=\"_blank\" rel=\"noopener\">Kevin Galligan<\/a>, <a href=\"https:\/\/github.com\/AlecStrong\" target=\"_blank\" rel=\"noopener\">Alec Strong<\/a>, <a href=\"https:\/\/github.com\/arkivanov\" target=\"_blank\" rel=\"noopener\">Arkadii Ivanov<\/a>, <a href=\"https:\/\/github.com\/benasher44\" target=\"_blank\" rel=\"noopener\">Ben Asher<\/a>, <a href=\"https:\/\/github.com\/joreilly\" target=\"_blank\" rel=\"noopener\">John O\u2019Reilly<\/a>, <a href=\"https:\/\/github.com\/LouisCAD\" target=\"_blank\" rel=\"noopener\">Louis CAD<\/a>, <a href=\"https:\/\/github.com\/wongk\" target=\"_blank\" rel=\"noopener\">Kris Wong<\/a>, <a href=\"https:\/\/github.com\/Alex009\" target=\"_blank\" rel=\"noopener\">Aleksey Mikhailov<\/a>\ub97c \ube44\ub86f\ud574 \uae30\ud0c0 \uc218\ub9ce\uc740 \uc2e4\ub825 \uc788\ub294 \uc5d4\uc9c0\ub2c8\uc5b4\ubd84\ub4e4 \uac10\uc0ac\ud569\ub2c8\ub2e4. \ub610\ud55c YouTrack\uc5d0\uc11c \ubb38\uc81c\ub97c \ubcf4\uace0\ud558\uace0, \uc81c\ud488 \uc870\uc0ac \ubc0f \uc778\ud130\ubdf0\uc5d0 \ucc38\uc5ec\ud558\uace0, KMM \uc0ac\uc6a9 \ud6c4\uae30\ub97c \uacf5\uc720\ud558\uace0, \ub180\ub77c\uc6b4 \uba40\ud2f0\ud50c\ub7ab\ud3fc \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \ub9cc\ub4e4\uc5b4 \uc8fc\uc2e0 \uc5ec\ub7ec\ubd84, \uac10\uc0ac\ud569\ub2c8\ub2e4!<\/p>\n<p>\uc0c8\ub85c\uc6b4 \uac1c\ubc1c\uc790 \ud3ec\ud138\uc758 \ucf58\ud150\uce20\ub97c \uc81c\uc791\ud558\ub294 \ub370 \ub3c4\uc6c0\uc744 \uc8fc\uc2e0 <a href=\"https:\/\/touchlab.co\/\" target=\"_blank\" rel=\"noopener\">Touchlab<\/a>, <a href=\"http:\/\/icerockdev.com\/\" target=\"_blank\" rel=\"noopener\">IceRock<\/a>, <a href=\"https:\/\/kodein.net\/\" target=\"_blank\" rel=\"noopener\">Kodein Koders<\/a> \ud300\uc5d0\ub3c4 \uac10\uc0ac\ub4dc\ub9bd\ub2c8\ub2e4. \uc5ec\ub7ec\ubd84\uc758 \uc791\uc5c5\uc740 \uc218\ucc9c \uba85\uc758 \uac1c\ubc1c\uc790\uac00 Kotlin Multiplatform Mobile\uc744 \uc2ec\ub3c4 \uc788\uac8c \ud0d0\uad6c\ud558\uace0 \uc644\ubcbd\ud558\uac8c \ud65c\uc6a9\ud558\ub294 \ub370 \ub3c4\uc6c0\uc774 \ub420 \uac83\uc785\ub2c8\ub2e4.<\/p>\n<p>\uc5ec\ub7ec\ubd84\uc740 \uc815\ub9d0 \ucd5c\uace0\uc785\ub2c8\ub2e4!<\/p>\n<h2>\uc9c0\uae08 \uccb4\ud5d8\ud574\ubcf4\uae30<\/h2>\n<p>\uc774\uc0c1\uc758 \ubaa8\ub4e0 \uba4b\uc9c4 \uae30\ub2a5\uacfc \ub354\ubd88\uc5b4 <strong><a href=\"https:\/\/kotlinlang.org\/docs\/mobile\/kmm-evolution.html\" target=\"_blank\" rel=\"noopener\">\uc774\uc81c KMM\uc774 \uc54c\ud30c \ubc84\uc804\uc73c\ub85c \uc804\ud658<\/a><\/strong>\ub41c\ub2e4\ub294 \uae30\uc05c \uc18c\uc2dd\uc744 \uc54c\ub824 \ub4dc\ub9bd\ub2c8\ub2e4. \uc774 \uc804\ud658\uc740 Kotlin \ud300\uc774 \uc774 \uae30\uc220\uc744 \uac1c\uc120\ud558\uace0 \ubc1c\uc804\uc2dc\ud0a4\ub294 \ub370 \ucd1d\ub825\uc744 \uae30\uc6b8\uc774\uace0 \uc788\ub2e4\ub294 \uc758\ubbf8\uc778 \ub3d9\uc2dc\uc5d0 \uc774 \uc81c\ud488\uc774 \ube60\ub974\uac8c \ubc1c\uc804\ud560 \uac83\uc774\ub77c\ub294 \uc2e0\ud638\uc774\uae30\ub3c4 \ud569\ub2c8\ub2e4. \uc800\ud76c\ub294 \uc5ec\ub7ec\ubd84\uc758 \uc758\uacac\uc744 \uacbd\uccad\ud558\uc5ec \uc218\uc815 \ubc0f \uac1c\uc120 \uc0ac\ud56d\uc744 \ucd5c\ub300\ud55c \ube68\ub9ac \uc81c\uacf5\ud558\ub824 \ud569\ub2c8\ub2e4. \ubb38\uc81c\ub97c \ubc1c\uacac\ud558\uc2e0 \uacbd\uc6b0 <a href=\"http:\/\/kotl.in\/issue\" target=\"_blank\" rel=\"noopener\">\ud2b8\ub798\ucee4<\/a>\ub97c \ud1b5\ud574 \ubcf4\uace0\ud558\uc5ec KMM\uc758 \uc548\uc815\uc131\uc744 \ub192\uc774\ub3c4\ub85d \ub3c4\uc640\uc8fc\uc138\uc694.<\/p>\n<p>\uc54c\ud30c \ubc84\uc804\uc73c\ub85c \uc804\ud658\ub41c\ub2e4\ub294 \uac83\uc740 KMM\uc744 \uc0ac\uc6a9\ud558\uc5ec \ubaa8\ubc14\uc77c \ud50c\ub7ab\ud3fc \uac04\uc5d0 \ube44\uc988\ub2c8\uc2a4 \ub85c\uc9c1 \ucf54\ub4dc\ub97c \uacf5\uc720\ud560 \uc218 \uc788\ub294 \ubaa8\ub4e0 \uc900\ube44\uac00 \uc644\ub8cc\ub418\uc5c8\ub2e4\ub294 \ub73b\uc785\ub2c8\ub2e4. \uc774\uc81c \uc0c8 \ud504\ub85c\uc81d\ud2b8\ub97c \uc0dd\uc131\ud560 \uc218\ub3c4 \uc788\uace0 KMM \ubaa8\ub4c8\uc744 \uae30\uc874 \ud504\ub85c\uc81d\ud2b8\uc5d0 \uc27d\uac8c \ud1b5\ud569\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ub450 \uc2dc\ub098\ub9ac\uc624 \ubaa8\ub450\uc5d0\uc11c \ucd5c\uc18c\ud55c\uc758 \ube44\uc6a9\uc73c\ub85c \uc791\uc5c5\uc744 \uc218\ud589\ud560 \uc218 \uc788\uc73c\uba70 \uc5b8\uc81c\ub4e0\uc9c0 \uc644\uc804\ud55c \ub124\uc774\ud2f0\ube0c \uac1c\ubc1c\ub85c \ub3cc\uc544\uac08 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ucee4\ubba4\ub2c8\ud2f0\ub294 \ube60\ub974\uac8c \uc131\uc7a5\ud558\uace0 \uc788\uc73c\uba70 \uc5ec\ub7ec\ubd84\ub3c4 \uc5ec\uae30\uc5d0 \ucc38\uc5ec\ud558\uc5ec \uc804\uccb4 \uc5d0\ucf54\uc2dc\uc2a4\ud15c\uc758 \ubc1c\uc804\uc5d0 \uae30\uc5ec\ud558\uc2e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc989, \uc9c0\uae08\uc774 <a href=\"https:\/\/kotlinlang.org\/docs\/mobile\/getting-started.html\" target=\"_blank\" rel=\"noopener\">KMM\uc744 \uc0ac\uc6a9\ud574\ubcf4\uae30<\/a>\uc5d0 \uc88b\uc740 \ub54c\uc785\ub2c8\ub2e4!<\/p>\n<p>KMM\uc744 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\uace0 \ud0d0\uc0c9\ud558\ub824\ub294 \ubaa8\ub4e0 \uae30\ub2a5\uc5d0 \uad00\ud574 \ub17c\uc758\ud558\uace0 \uc2f6\ub2e4\uba74 <a href=\"https:\/\/kotlinlang.slack.com\/archives\/C3PQML5NU\" target=\"_blank\" rel=\"noopener\">Slack<\/a>\uc758 \uba40\ud2f0\ud50c\ub7ab\ud3fc \ud32c \ucee4\ubba4\ub2c8\ud2f0(<a href=\"https:\/\/surveys.jetbrains.com\/s3\/kotlin-slack-sign-up\" target=\"_blank\" rel=\"noopener\">\uc5ec\uae30<\/a>\uc5d0\uc11c \ucd08\ub300 \ubc1b\uae30)\uc5d0 \uac00\uc785\ud558\uace0 <a href=\"https:\/\/stackoverflow.com\/questions\/tagged\/kotlin-multiplatform\" target=\"_blank\" rel=\"noopener\">Stack Overflow<\/a>\uc5d0\uc11c \u201ckotlin-multiplatform\u201d \ud0dc\uadf8\ub97c \uad6c\ub3c5\ud574 \ubcf4\uc138\uc694.<\/p>\n<p>\ub9c8\uc774\uadf8\ub808\uc774\uc158\uc758 \uacbd\uc6b0 \uc800\ud76c\uac00 \ucd5c\uc120\uc744 \ub2e4\ud558\uace0\ub294 \uc788\uc73c\ub098 \uc544\uc9c1 \uc6d0\ud65c\ud55c \uc9c4\ud589\uc744 \ubcf4\uc7a5\ud574 \ub4dc\ub9ac\uc9c0 \ubabb\ud569\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uae30\ub2a5 \ud50c\ub798\uadf8\ub97c \uc0ac\uc6a9\ud558\uace0 \uc0c8 \ubc84\uc804\uc5d0 \ub300\ud55c <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/migrating-multiplatform-project-to-14.html\" target=\"_blank\" rel=\"noopener\">\ub9c8\uc774\uadf8\ub808\uc774\uc158 \uac00\uc774\ub4dc<\/a>\ub97c \uc81c\uacf5\ud558\uc5ec \ud638\ud658\uc131 \ubb38\uc81c\ub97c \ucd5c\ub300\ud55c \ubc29\uc9c0\ud558\uae30 \uc704\ud574 \ub178\ub825\ud558\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<h3>\uc758\uacac\uc744 \uacf5\uc720\ud574 \uc8fc\uc138\uc694<\/h3>\n<p>\uc774 \ub9b4\ub9ac\uc2a4\ub294 \uc5ec\uc815\uc758 \uc2dc\uc791\uc77c \ubfd0\uc774\uba70 \uc774 \uacfc\uc815\uc5d0\uc11c \uc5ec\ub7ec\ubd84\uc758 \ub3c4\uc6c0\uc774 \ud544\uc694\ud569\ub2c8\ub2e4. \uae0d\uc815\uc801\uc774\ub4e0 \ubd80\uc815\uc801\uc774\ub4e0 \uad00\uacc4\uc5c6\uc774 <a href=\"mailto:kmm.feedback@kotlinlang.org\">\uc5ec\ub7ec\ubd84\uc758 \ubaa8\ub4e0 \ud53c\ub4dc\ubc31<\/a>\uc744 \uae30\ub2e4\ub9bd\ub2c8\ub2e4. Kotlin Multiplatform Mobile \uc0ac\uc6a9 \ud6c4\uae30\ub97c \uacf5\uc720\ud558\uc5ec \ub2e4\ub978 \uc0ac\uc6a9\uc790\ub4e4\uc5d0\uac8c \uc601\uac10\uc744 \uc8fc\uace0 KMM \uac1c\uc120 \ubc29\uc548\uc5d0 \uad00\ud55c \uc544\uc774\ub514\uc5b4\ub97c \uacf5\uc720\ud574\uc8fc\uc138\uc694.<\/p>\n<p>Let\u2019s Kotlin!<\/p>\n<p>\n<em>\uc774 \uac8c\uc2dc\ubb3c\uc740 <a href=\"https:\/\/blog.jetbrains.com\/author\/ekaterina-petrova\/\">Ekaterina Petrova<\/a>\uac00 \uc791\uc131\ud55c <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2020\/08\/kotlin-multiplatform-mobile-goes-alpha\/\">Kotlin Multiplatform Mobile Goes Alpha<\/a>\ub97c \ubc88\uc5ed\ud55c \uae00\uc785\ub2c8\ub2e4.<\/em><\/p>\n","protected":false},"author":964,"featured_media":71622,"comment_status":"closed","ping_status":"closed","template":"","categories":[956,907],"tags":[],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/kotlin\/73429"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/kotlin"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/types\/kotlin"}],"author":[{"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=73429"}],"version-history":[{"count":3,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/kotlin\/73429\/revisions"}],"predecessor-version":[{"id":73433,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/kotlin\/73429\/revisions\/73433"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/media\/71622"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/media?parent=73429"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/categories?post=73429"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/tags?post=73429"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/cross-post-tag?post=73429"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}