{"id":217160,"date":"2022-01-10T15:31:55","date_gmt":"2022-01-10T14:31:55","guid":{"rendered":"https:\/\/blog.jetbrains.com\/kotlin\/2021\/12\/compose-multiplatform-1-0-is-going-live\/"},"modified":"2022-01-11T02:05:06","modified_gmt":"2022-01-11T01:05:06","slug":"compose-multiplatform-1-0-is-going-live","status":"publish","type":"kotlin","link":"https:\/\/blog.jetbrains.com\/ko\/kotlin\/2022\/01\/compose-multiplatform-1-0-is-going-live\/","title":{"rendered":"Compose Multiplatform 1.0 \ucd9c\uc2dc!"},"content":{"rendered":"<p>Kotlin\uc758 \uc120\uc5b8\ud615 UI \ud504\ub808\uc784\uc6cc\ud06c\uc778 JetBrains Compose Multiplatform \ubc84\uc804 1.0\uc774 \ucd9c\uc2dc\ub418\uc5b4 \ud504\ub85c\ub355\uc158 \uc0ac\uc6a9\uc774 \uc900\ube44\ub418\uc5c8\uc2b5\ub2c8\ub2e4! \uc774 \ud504\ub808\uc784\uc6cc\ud06c\uc758 \uc2e0\uaddc \ubc84\uc804\uc774 \uc81c\uacf5\ud558\ub294 \uc8fc\uc694 \uae30\ub2a5\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<ul>\n<li><a class=\"ek-link\" href=\"#desktop\">\ub370\uc2a4\ud06c\ud1b1<\/a>\uc5d0\uc11c \ub6f0\uc5b4\ub09c \uc0ac\uc6a9\uc790 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc9c0\uc6d0\ud558\ub294 Kotlin \uc571\uc744 \ube60\ub974\uace0 \ud6a8\uc728\uc801\uc73c\ub85c \uac1c\ubc1c\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<li><a class=\"ek-link\" href=\"#web\">\uc6f9<\/a>\uc5d0\uc11c \ubaa8\ub4e0 \ube0c\ub77c\uc6b0\uc800 API\uc640 \uc644\ubcbd\ud55c \uc0c1\ud638 \uc6b4\uc6a9\uc131\uc744 \uac16\ucd98 Compose for Web\uc758 \uc548\uc815\uc801\uc778 DOM API\ub97c \uc0ac\uc6a9\ud558\uc5ec \ud504\ub85c\ub355\uc158 \uc218\uc900\uc758 \ub3d9\uc801 \uc6f9 \ud658\uacbd\uc744 \uad6c\ucd95\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. Material UI \uc704\uc82f\uc740 \ud5a5\ud6c4 \ub9b4\ub9ac\uc2a4\uc5d0\uc11c \uc9c0\uc6d0\ub420 \uc608\uc815\uc785\ub2c8\ub2e4.<\/li>\n<li>\uc804\ubc18\uc801\uc73c\ub85c \ub2e4\uc591\ud55c \ud50c\ub7ab\ud3fc(Android \ud3ec\ud568, Jetpack Compose by Google \ud638\ud658\uc131 \uc0ac\uc6a9) \uac04 <a class=\"ek-link\" href=\"#sharing\">\uc804\ubb38 \uae30\uc220\uacfc \ucf54\ub4dc\ub97c \ub354 \uc27d\uac8c \uacf5\uc720<\/a>\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ul>\n<p>\ud558\ub098\uc529 \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\">\n<div class=\"wp-block-embed__wrapper\"><iframe loading=\"lazy\" title=\"Compose Multiplatform 1.0 Goes Live!\" src=\"https:\/\/www.youtube.com\/embed\/JKjN5mmnSX0?feature=oembed\" width=\"500\" height=\"281\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/div>\n<\/figure>\n<p align=\"center\"><a class=\"ek-link jb-download-button\" title=\"CTA\" href=\"https:\/\/www.jetbrains.com\/ko-kr\/lp\/compose-mpp\/\" target=\"_blank\" rel=\"noopener\">\uc6f9\uc0ac\uc774\ud2b8 \ubc29\ubb38<\/a><\/p>\n<h2 id=\"desktop\">\ub370\uc2a4\ud06c\ud1b1\uc6a9 Kotlin UI<\/h2>\n<p>\uaf64 \uc624\ub7ab\ub3d9\uc548 Kotlin \ub370\uc2a4\ud06c\ud1b1 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \uc0ac\uc6a9\uc790 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uac1c\ubc1c\ud558\ub824\uba74 \uae30\uc874 Java UI \ud504\ub808\uc784\uc6cc\ud06c\ub97c \uc0ac\uc6a9\ud574\uc57c \ud588\uc2b5\ub2c8\ub2e4. \ub370\uc2a4\ud06c\ud1b1\uc6a9 \ubaa8\ub358 UI \uac1c\ubc1c \uc2a4\ud0c0\uc77c\uc744 \uc811\ubaa9\ud55c Kotlin \ub77c\uc774\ube0c\ub7ec\ub9ac\uac00 \uc5c6\uc5c8\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4. JetBrains\ub294 Compose Multiplatform\uc744 \uc120\ubcf4\uc5ec \ubcc0\ud654\ub97c \uc774\ub04c\uace0\uc790 \ud569\ub2c8\ub2e4. \uc774 \ud504\ub808\uc784\uc6cc\ud06c\uac00 Kotlin \uc571 UI \uac1c\ubc1c \uacbd\ud5d8\uc744 \uac1c\uc120\ud558\ub294 \ubc29\uc2dd\uc744 \uc54c\uc544\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<h3>\uc0ac\uc6a9\uc790 \uc778\ud130\ud398\uc774\uc2a4 \uac1c\ubc1c\uc744 \uc704\ud55c \uc120\uc5b8\ud615 \uc811\uadfc \ubc29\uc2dd<\/h3>\n<p>Compose Multiplatform\uc740 \uc120\uc5b8\ud615\uc774\ubbc0\ub85c \ucf54\ub4dc\uc5d0 \uc571\uc758 UI \uad6c\uc870\uac00 \ubc18\uc601\ub418\uba70, \ubaa8\ub378\uc5d0\uc11c \ubdf0\ub85c \ub370\uc774\ud130 \ubcf5\uc0ac \ub610\ub294 UI \uac31\uc2e0 \ub85c\uc9c1 \uac1c\ubc1c \ub4f1\uc758 \uc791\uc5c5\uc744 \uace0\ubbfc\ud560 \ud544\uc694\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. \ud504\ub808\uc784\uc6cc\ud06c\ub85c \ubaa8\ub450 \ucc98\ub9ac\ub418\ubbc0\ub85c, UI \uac1c\ubc1c\uc740 \uc990\uac70\uc6b4 \uacbd\ud5d8\uc785\ub2c8\ub2e4. \ub2e4\uc74c \uc608\uc2dc\uc758 \uacbd\uc6b0 <code>TextField<\/code>\uc758 \ub0b4\uc6a9\uc774 \uc218\uc815\ub418\uba74 \ucd94\uac00 \ucf54\ub529 \uc5c6\uc774\ub3c4 <code>Text<\/code> \ub77c\ubca8 \ub0b4\uc6a9\uc774 \uc5c5\ub370\uc774\ud2b8\ub429\ub2c8\ub2e4.<\/p>\n<p><\/p>\n\n\n<pre class=\"kotlin-code\" data-highlight-only=\"true\" theme=\"idea\" indent=\"4\" style=\"visibility: hidden; padding: 36px 0;\">\nvar text by remember { mutableStateOf(&quot;Hello, World!&quot;) }\nColumn {\n   Text(text) \/\/text label\n   TextField(text, {text = it}) \/\/text field\n}\n<\/pre>\n\n\n<p><\/p>\n<p>\ud2b9\ud788 <a href=\"https:\/\/reactjs.org\/\" target=\"_blank\" rel=\"noopener\">React<\/a> \ub610\ub294 <a href=\"https:\/\/developer.android.com\/jetpack\/compose\" target=\"_blank\" rel=\"noopener\">Jetpack Compose<\/a> by Google\uacfc \uac19\uc740 \uc120\uc5b8\ud615 UI \ud504\ub808\uc784\uc6cc\ud06c\ub97c \uc0ac\uc6a9\ud574\ubcf8 \uacbd\uc6b0, Compose Multiplatform\uc744 \uc27d\uac8c \uc2dc\uc791\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. Compose Multiplatform\uc740 \uc774\uc640 \ub3d9\uc77c\ud55c \ub9ce\uc740 \uae30\ub2a5\uc744 \uc9c0\uc6d0\ud558\ubbc0\ub85c \ubd80\ub2f4 \uc5c6\uc774 \ud3b8\uc548\ud558\uac8c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h3>\ud558\ub4dc\uc6e8\uc5b4 \uac00\uc18d\uc73c\ub85c \uc6b0\uc218\ud55c \ub7f0\ud0c0\uc784 \uc131\ub2a5<\/h3>\n<p>\ubaa8\ub358 \uc0ac\uc6a9\uc790 \uc778\ud130\ud398\uc774\uc2a4\uc5d0\uc11c \uc131\ub2a5\uc774 \uc911\uc694\ud569\ub2c8\ub2e4. \ub530\ub77c\uc11c Compose Multiplatform \uc18d\ub3c4 \uac1c\uc120\uc744 \uc704\ud574 \ucd5c\uc120\uc744 \ub2e4\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. Compose Multiplatform\uc740 <a href=\"https:\/\/skia.org\/\" target=\"_blank\" rel=\"noopener\">Skia<\/a>\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. Skia\ub294 \ubaa8\ub358 \ube0c\ub77c\uc6b0\uc800\ub97c \ud3ec\ud568\ud558\uc5ec \uc131\ub2a5\uc774 \uc911\uc694\ud55c \ub2e4\uc218\uc758 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uc11c \uc0ac\uc6a9\ub418\ub294 \ucd5c\uc801\ud654\ub41c \uadf8\ub798\ud53d \ub77c\uc774\ube0c\ub7ec\ub9ac\uc785\ub2c8\ub2e4. \uc989, Compose Multiplatform\uc740 DirectX, Metal \ubc0f OpenGL \ub4f1 \ub370\uc2a4\ud06c\ud1b1\uc758 \ubaa8\ub4e0 \uc8fc\uc694 \ud558\ub4dc\uc6e8\uc5b4 \uac00\uc18d \uc5d4\uc9c4\uc744 \uc9c0\uc6d0\ud569\ub2c8\ub2e4. \ud558\ub4dc\uc6e8\uc5b4 \uac00\uc18d\uc774 \uc9c0\uc6d0\ub418\uc9c0 \uc54a\ub294 \ud658\uacbd\uc5d0\uc11c\ub294 Compose\uac00 \ucd5c\uc801\ud654\ub41c \uc18c\ud504\ud2b8\uc6e8\uc5b4 \ub80c\ub354\ub7ec\uc640 \ud568\uaed8 \uc81c\uacf5\ub429\ub2c8\ub2e4.<\/p>\n<h3>\ubbf8\ub9ac\ubcf4\uae30 \ub3c4\uad6c\ub97c \ud1b5\ud574 \ubc18\ubcf5 \uc8fc\uae30 \ub2e8\ucd95<\/h3>\n<p>UI \uac1c\ubc1c\uc5d0\uc11c \uac00\uc7a5 \uae34 \uc2dc\uac04\uc774 \uc18c\uc694\ub418\ub294 \uc791\uc5c5 \uc911 \ud558\ub098\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \uc644\ubcbd\ud558\uac8c \ubcf4\uc774\ub3c4\ub85d \ub2e4\uc2dc \ube4c\ub4dc\ud558\ub294 \uacfc\uc815\uc785\ub2c8\ub2e4. Compose Multiplatform IDEA <a href=\"https:\/\/plugins.jetbrains.com\/plugin\/16541-compose-multiplatform-ide-support\" target=\"_blank\" rel=\"noopener\">\ud50c\ub7ec\uadf8\uc778<\/a>\uc744 \ud65c\uc6a9\ud558\uba74 \uc774 \uacfc\uc815\uc774 \uac04\uc18c\ud654\ub429\ub2c8\ub2e4. \uae30\ubcf8 \uc81c\uacf5 \ub77c\uc774\ube0c \ubbf8\ub9ac\ubcf4\uae30 \uae30\ub2a5\uc744 \ud1b5\ud574 UI \uad6c\uc131 \uc694\uc18c\ub97c \uc138\ubc00\ud558\uac8c \uc870\uc815\ud558\uace0, \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ub2e4\uc2dc \ube4c\ub4dc\ud558\uac70\ub098 \uc2dc\uc791\ud558\uc9c0 \uc54a\uace0\ub3c4 \uc5ec\ub7ec \uac1c\uc758 \ubc18\ubcf5\uc744 \uc0dd\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub85c\uc368 \uac1c\ubc1c \uc8fc\uae30\uac00 \ub300\ud3ed \ub2e8\ucd95\ub429\ub2c8\ub2e4.<\/p>\n<h3>\uc790\ub3d9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ud328\ud0a4\uc9d5\uc73c\ub85c \uc790\uc2e0 \uc788\uac8c \uc120\ubcf4\uc774\ub294 \ub370\uc2a4\ud06c\ud1b1 \uc571<\/h3>\n<p>\uc0ac\uc6a9\uc790\uc5d0\uac8c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc81c\uacf5\ud558\ub824\uba74 \uc801\uc808\ud55c \uac1c\ubc1c\ubfd0 \uc544\ub2c8\ub77c \uc801\uc808\ud55c \ud328\ud0a4\uc9d5\ub3c4 \ud544\uc694\ud569\ub2c8\ub2e4. Compose Multiplatform\uc740 \uc774\uc5d0 \ub300\ud55c \uc9c0\uc6d0\ub3c4 \uc81c\uacf5\ud569\ub2c8\ub2e4. Gradle \ud50c\ub7ec\uadf8\uc778\uc740 <a href=\"https:\/\/github.com\/JetBrains\/compose-jb\/blob\/master\/tutorials\/Signing_and_notarization_on_macOS\/README.md\" target=\"_blank\" rel=\"noopener\">MacOS\uc6a9 \uc11c\uba85 \ubc0f \uacf5\uc99d<\/a>\uc744 \ube44\ub86f\ud558\uc5ec <code>msi<\/code>, <code>dmg<\/code> \ubc0f <code>deb<\/code> \ud615\uc2dd\uc73c\ub85c <a href=\"https:\/\/github.com\/JetBrains\/compose-jb\/tree\/master\/tutorials\/Native_distributions_and_local_execution\" target=\"_blank\" rel=\"noopener\">\uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ud328\ud0a4\uc9d5<\/a>\uc744 \uc9c0\uc6d0\ud569\ub2c8\ub2e4.<\/p>\n<h3>Android \ubc0f Java UI \ud504\ub808\uc784\uc6cc\ud06c\uc758 Jetpack Compose\uc640 \uc0c1\ud638 \uc6b4\uc6a9\uc131<\/h3>\n<p>Google\uc5d0\uc11c \uc81c\uc791\ud55c \ub124\uc774\ud2f0\ube0c UI \ube4c\ub4dc\uc6a9 Android \ubaa8\ub358 \ud234\ud0b7\uc778 Jetpack Compose\ub294 \ubaa8\ubc14\uc77c \uac1c\ubc1c\uc790 \uc0ac\uc774\uc5d0\uc11c \uc9c0\uc18d\uc801\uc73c\ub85c \uc778\uae30\ub97c \ub04c\uace0 \uc788\uc2b5\ub2c8\ub2e4. Jetpack Compose\ub97c \uc0ac\uc6a9\ud574\ubcf8 \uacbd\ud5d8\uc774 \uc788\ub2e4\uba74 Compose Multiplatform\uc740 \uc27d\uac8c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub450 \ud504\ub808\uc784\uc6cc\ud06c\uac00 API\uc758 \uc0c1\ub2f9 \ubd80\ubd84\uc744 \uacf5\uc720\ud558\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4.<\/p>\n<p>\uc0ac\uc6a9\uc790 \uc778\ud130\ud398\uc774\uc2a4\uac00 \uc77c\ubc18\uc801\uc778 Java UI \ud504\ub808\uc784\uc6cc\ud06c\ub85c \ube4c\ub4dc\ud55c \ub370\uc2a4\ud06c\ud1b1 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ub2e4\ub8e8\ub294 \uacbd\uc6b0, Compose Multiplatform\uc5d0\uc11c \uc0ac\uc6a9\ud558\uae30 \uc704\ud574 \ucf54\ub4dc\ub97c \uc644\uc804\ud788 \ucc98\uc74c\ubd80\ud130 \ub2e4\uc2dc \uc791\uc131\ud560 \ud544\uc694\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. Compose Multiplatform\uc740 \uc0c1\ud638 \uc6b4\uc6a9\uc131\uc774 \ub9e4\uc6b0 \ub6f0\uc5b4\ub098\ubbc0\ub85c Compose\ub85c \uc791\uc131\ub41c UI \uad6c\uc131 \uc694\uc18c\ub97c \uae30\uc874 Java UI\uc5d0 \ucd94\uac00\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. Compose Multiplatform\uc73c\ub85c \uc0c8\ub85c\uc6b4 \uc571\uc744 \ube4c\ub4dc\ud558\ub294 \uacbd\uc6b0\uc5d0\ub3c4 \uae30\uc874 Java \ucee8\ud2b8\ub864\uc744 \ucd94\uac00\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h3>Compose Multiplatform \ub9c8\ubc95\uc0ac\ub85c \ube60\ub978 \uc2dc\uc791 \ubc0f \uc2e4\ud589<\/h3>\n<p>\uc774\uc81c Compose Multiplatform\uc744 \ub9e4\uc6b0 \ube60\ub974\uac8c \uc2dc\uc791\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/www.jetbrains.com\/ko-kr\/idea\/\" target=\"_blank\" rel=\"noopener\">IntelliJ IDEA<\/a> 2021.1+\uc5d0\uc11c \ud074\ub9ad \uba87 \ubc88\ub9cc\uc73c\ub85c \uac04\ub2e8\ud55c Compose Multiplatform \ud504\ub85c\uc81d\ud2b8 \uc0dd\uc131\uc774 \uac00\ub2a5\ud569\ub2c8\ub2e4.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-205106\" title=\"image_tooltip\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2021\/11\/image1-2.png\" alt=\"Compose \ub370\uc2a4\ud06c\ud1b1 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ubcf4\uc5ec\uc8fc\ub294 New Project(\uc0c8 \ud504\ub85c\uc81d\ud2b8) \ub9c8\ubc95\uc0ac \uc608\uc2dc\" width=\"1999\" height=\"1111\"><\/figure>\n<p>\ub610\ud55c <a href=\"https:\/\/github.com\/JetBrains\/compose-jb\/tree\/master\/tutorials\" target=\"_blank\" rel=\"noopener\">\ub2e4\uc591\ud55c \ud29c\ud1a0\ub9ac\uc5bc<\/a>\uc744 \ud1b5\ud574 Compose Multiplatform \ub370\uc2a4\ud06c\ud1b1 \ub300\uc0c1\uc744 \uc54c\uc544\ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h2 id=\"web\">Compose for Web<\/h2>\n<p>Compose Multiplatform\uc740 \ub370\uc2a4\ud06c\ud1b1 \uc791\uc5c5 \uc678\uc5d0\ub3c4 <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Document_Object_Model\/Introduction\" target=\"_blank\" rel=\"noopener\">DOM<\/a> \uc791\uc5c5\uc744 \uc704\ud55c \uac15\ub825\ud55c \uc120\uc5b8\ud615 Kotlin\/JS API\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4.<\/p>\n<p>\ub610\ud55c \ub2e4\uc591\ud55c DOM API, CSS-in-JS \uae30\ubcf8 \uc9c0\uc6d0, SVG \uc9c0\uc6d0, \ud0c0\uc785 \uc9c0\uc815\ub41c \uc785\ub825 \ub4f1 \ubaa8\ub358 \uc6f9 \ud504\ub808\uc784\uc6cc\ud06c\uc5d0 \ud544\uc694\ud55c \ubaa8\ub4e0 \uae30\ub2a5\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. Compose Multiplatform\uc758 \uc6f9 \ub300\uc0c1\uc740 Kotlin\ub9cc\uc73c\ub85c \uc791\uc131\ub418\uc5c8\uc73c\uba70 Kotlin\uc758 \ud0c0\uc785 \uc2dc\uc2a4\ud15c\uacfc \uad00\uc6a9\uad6c\ub97c \ucd5c\ub300\ud55c \ud65c\uc6a9\ud569\ub2c8\ub2e4. \ub530\ub77c\uc11c \ub2e4\ub978 Kotlin \ub300\uc0c1\uc5d0\uc11c \uc774\ubbf8 \uc0ac\uc6a9\ub41c \ub3d9\uc77c\ud55c \uac1c\ubc1c \uc6cc\ud06c\ud50c\ub85c\ub97c \ud65c\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h2 id=\"sharing\">\uba40\ud2f0\ud50c\ub7ab\ud3fc \uc9c0\uc6d0<\/h2>\n<p>Compose Multiplatform\uc744 \uc0ac\uc6a9\ud558\uba74 (\uc9c1\uc811 \uc9c0\uc6d0\ub418\ub294) \ub370\uc2a4\ud06c\ud1b1 \ubc0f \uc6f9 \ud50c\ub7ab\ud3fc\uc73c\ub85c \ub300\uc0c1\uc774 \ud55c\uc815\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. Google\uc5d0\uc11c \uac1c\ubc1c\ud55c \uc720\uba85 UI \ud504\ub808\uc784\uc6cc\ud06c\uc778 Jetpack Compose\ub97c \uc0ac\uc6a9\ud574 Android\ub97c \ub300\uc0c1\uc73c\ub85c \uc9c0\uc815\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. \ub450 \ud504\ub808\uc784\uc6cc\ud06c\ub294 \uacf5\ud1b5 API\uc640 Core\ub97c \uacf5\uc720\ud558\ubbc0\ub85c, \uc644\ubcbd\ud55c \uc0c1\ud638 \uc6b4\uc6a9\uc131\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. \uc989, \uacf5\ud1b5 UI \ubc0f \uc0c1\ud0dc \uad00\ub9ac \ucf54\ub4dc\ub97c \ub2e4\uc2dc \uc791\uc131\ud558\uc9c0 \uc54a\uc544\ub3c4 \ub429\ub2c8\ub2e4. \ud55c \ubc88 \uc791\uc131\ud55c \ud6c4 \ud544\uc694\ud560 \ub54c \uc5ec\ub7ec \ud50c\ub7ab\ud3fc\uc5d0\uc11c \ub2e4\uc2dc \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uae30\uc874 Android \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ub370\uc2a4\ud06c\ud1b1\uc774\ub098 \uc6f9\uc73c\ub85c \uac00\uc838\uc624\ub294 \uc791\uc5c5\ub3c4 Compose Multiplatform\uc744 \uc0ac\uc6a9\ud558\uba74 \ub9e4\uc6b0 \uac04\ud3b8\ud569\ub2c8\ub2e4. Kotlin \ud504\ub85c\uc81d\ud2b8 \ud558\ub098\ub85c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \ubaa8\ub4e0 \ub300\uc0c1\uc744 \uad00\ub9ac\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>Compose\ub97c \ud1b5\ud574 \uc5ec\ub7ec \ud50c\ub7ab\ud3fc\uc744 \ub300\uc0c1\uc73c\ub85c \ud558\ub294 \uc571 \ube4c\ub4dc\ub97c \ube60\ub974\uac8c \uc2dc\uc791\ud558\ub824\uba74 IntelliJ IDEA 2021.1+\uc5d0\uc11c Kotlin \ud504\ub85c\uc81d\ud2b8 \ub9c8\ubc95\uc0ac\ub97c \uc0ac\uc6a9\ud574 \ubcf4\uc138\uc694.<\/p>\n<p>\ub2f9\uc7a5 \uba40\ud2f0\ud50c\ub7ab\ud3fc \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uac1c\ubc1c\ud560 \ud544\uc694\uac00 \uc5c6\ub354\ub77c\ub3c4, \ud50c\ub7ab\ud3fc \ud55c \uacf3\uc5d0\uc11c \uc2b5\ub4dd\ud55c \uc9c0\uc2dd\uacfc \uc804\ubb38 \uae30\uc220\uc774 \ub2e4\ub978 \ud50c\ub7ab\ud3fc\uc5d0\uc11c \uc720\uc6a9\ud558\uac8c \uc4f0\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>\ubca0\ud0c0 \uc774\ud6c4 \ubcc0\uacbd \uc0ac\ud56d<\/h2>\n<p>Compose Multiplatform 1.0 \ubc84\uc804\uc740 \uc774 \ud504\ub808\uc784\uc6cc\ud06c\ub97c \ud504\ub85c\ub355\uc158 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uc11c \uc0ac\uc6a9\ud560 \uc900\ube44\uac00 \ub418\uc5c8\ub294\uc9c0 \ud655\uc778\ud558\ub294 \ub370 \ucd08\uc810\uc744 \ub9de\ucd98 \ubc84\uc804\uc785\ub2c8\ub2e4. \uacb0\uacfc\uc801\uc73c\ub85c \uc774\ubc88 \ub9b4\ub9ac\uc2a4\uc5d0\uc11c \uc911\uc694\ud55c \uc774\uc288\uc640 \ubc84\uadf8\uac00 \uc218\uc815\ub418\uc5c8\uc73c\uba70, \ud488\uc9c8\uacfc \uc548\uc815\uc131\ub3c4 \uac1c\uc120\ub418\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>\uc2e4\uc81c \ud504\ub85c\ub355\uc158 \uacbd\ud5d8<\/h2>\n<p>Compose Multiplatform\uc740 \uc624\ub298 \ucd9c\uc2dc\ub418\uc5c8\uc74c\uc5d0\ub3c4 \uc77c\ubd80 \ud504\ub85c\ub355\uc158\uc5d0\uc11c \uc774\ubbf8 \ud65c\uc6a9\ub41c \ubc14 \uc788\uc2b5\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, JetBrains\ub294 2021\ub144 \ucd08\ubd80\ud130 Jetbrains Toolbox App(<a href=\"https:\/\/www.jetbrains.com\/ko-kr\/toolbox-app\/\" target=\"_blank\" rel=\"noopener\">https:\/\/www.jetbrains.com\/toolbox-app\/<\/a>)\uc5d0 Compose Multiplatform\uc744 \uc801\uc6a9\ud588\uc2b5\ub2c8\ub2e4. JetBrains IDE\uc6a9 \uad00\ub9ac \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc778 Toolbox App\uc740 \ub9e4\uc6d4 1,000,000\uba85 \uc774\uc0c1\uc758 \ud65c\uc131 \uc0ac\uc6a9\uc790\ub97c \ubcf4\uc720\ud558\uba70, 4\uac1c\uc6d4 \uc804 C++ \ubc0f Electron\uc5d0\uc11c Compose Multiplatform\uc73c\ub85c \uc644\uc804\ud788 \ub9c8\uc774\uadf8\ub808\uc774\uc158\ub418\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>\ub9c8\ubb34\ub9ac<\/h2>\n<p>Kotlin \uac1c\ubc1c\uc790\ub294 \uc774\uc81c Compose Multiplatform\uc774\ub77c\ub294 \uac15\ub825\ud55c \ud504\ub808\uc784\uc6cc\ud06c\ub97c \ud1b5\ud574 \ub370\uc2a4\ud06c\ud1b1\uacfc \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ubaa8\ub450\uc5d0 \uc801\ud569\ud55c \uc544\ub984\ub2e4\uc6b4 UI\ub97c \uc0dd\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc9c0\uae08 \ubc14\ub85c Compose Multiplatform\uc744 \uc0ac\uc6a9\ud574 \ubcf4\uc138\uc694! \uacf5\uc2dd <a href=\"https:\/\/github.com\/JetBrains\/compose-jb\/tree\/master\/tutorials\" target=\"_blank\" rel=\"noopener\">\ud29c\ud1a0\ub9ac\uc5bc<\/a>\uc5d0\uc11c \uac00\uc7a5 \uac04\ud3b8\ud55c \uc0ac\uc6a9 \ubc29\ubc95\uc744 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. IntelliJ IDEA 2021.1+\uc5d0\uc11c \uae30\ubcf8\uc73c\ub85c \uc81c\uacf5\ub418\ub294 Kotlin \ud504\ub85c\uc81d\ud2b8 \ub9c8\ubc95\uc0ac\ub97c \uc0ac\uc6a9\ud558\uc5ec \uccab Compose Multiplatform \ud504\ub85c\uc81d\ud2b8\ub97c \uc0dd\uc131\ud558\uace0 Kotlin\uc73c\ub85c \uc120\uc5b8\ud615 \uc0ac\uc6a9\uc790 \uc778\ud130\ud398\uc774\uc2a4 \ube4c\ub4dc\ub97c \uc2dc\uc791\ud558\uc138\uc694.<\/p>\n<p>\uc5ec\ub7ec\ubd84\uc758 \ub9c8\uc74c\uc5d0 \ub4dc\uc168\uc73c\uba74 \uc88b\uaca0\uc2b5\ub2c8\ub2e4!<\/p>\n<p><em>\uac8c\uc2dc\ubb3c \uc6d0\ubb38 \uc791\uc131\uc790<\/em><\/p>\n\n    <div class=\"about-author \">\n        <div class=\"about-author__box\">\n            <div class=\"row\">\n                <div class=\"about-author__box-img\">\n                    <img decoding=\"async\" src=\"https:\/\/secure.gravatar.com\/avatar\/?s=200&#038;r=g\" width=\"200\" height=\"200\" alt=\"\" loading=\"lazy\"  class=\"avatar avatar-200 wp-user-avatar wp-user-avatar-200 photo avatar-default\">\n                <\/div>\n                <div class=\"about-author__box-text\">\n                                                        <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n","protected":false},"author":964,"featured_media":205050,"comment_status":"open","ping_status":"closed","template":"","categories":[89],"tags":[6481,6705,6706],"cross-post-tag":[6256],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/kotlin\/217160"}],"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=217160"}],"version-history":[{"count":5,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/kotlin\/217160\/revisions"}],"predecessor-version":[{"id":217213,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/kotlin\/217160\/revisions\/217213"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/media\/205050"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/media?parent=217160"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/categories?post=217160"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/tags?post=217160"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/cross-post-tag?post=217160"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}