{"id":240612,"date":"2022-04-04T12:09:26","date_gmt":"2022-04-04T11:09:26","guid":{"rendered":"https:\/\/blog.jetbrains.com\/kotlin\/2022\/04\/kotlin-1-6-20-released\/"},"modified":"2025-09-18T14:47:44","modified_gmt":"2025-09-18T13:47:44","slug":"kotlin-1-6-20-released","status":"publish","type":"kotlin","link":"https:\/\/blog.jetbrains.com\/ko\/kotlin\/2022\/04\/kotlin-1-6-20-released\/","title":{"rendered":"Kotlin 1.6.20 \ucd9c\uc2dc"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_17 counter-hierarchy ez-toc-transparent\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\">\ubaa9\ucc28<\/p>\n<\/p>\n<\/div>\n<nav>\n<ul class=\"ez-toc-list ez-toc-list-level-1\">\n<li class=\"ez-toc-page-1 ez-toc-heading-level-1\"><a class=\"ez-toc-link ez-toc-heading-1\" title=\"\uc5c5\ub370\uc774\ud2b8 \ubc29\ubc95\" href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/04\/kotlin-1-6-20-released\/#How_to_update\">\uc5c5\ub370\uc774\ud2b8 \ubc29\ubc95<\/a><\/li>\n<li class=\"ez-toc-page-1 ez-toc-heading-level-1\"><a class=\"ez-toc-link ez-toc-heading-2\" title=\"Major updates\" href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/04\/kotlin-1-6-20-released\/#Major_updates\">\uc8fc\uc694 \uc5c5\ub370\uc774\ud2b8<\/a>\n<ul class=\"ez-toc-list-level-2\">\n<li class=\"ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-3\" title=\"Prototype of context receivers for Kotlin\/JVM\" href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/04\/kotlin-1-6-20-released\/#Prototype_of_context_receivers_for_KotlinJVM\">Kotlin\/JVM\uc6a9 \ucee8\ud14d\uc2a4\ud2b8 \ub9ac\uc2dc\ubc84 \ud504\ub85c\ud1a0\ud0c0\uc785<\/a><\/li>\n<li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-4\" title=\"Definitely non-nullable types\" href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/04\/kotlin-1-6-20-released\/#Definitely_non-nullable_types\">\ud655\uc815\uc801\uc73c\ub85c null \uac00\ub2a5\ud558\uc9c0 \uc54a\uc740 \ud0c0\uc785<\/a><\/li>\n<li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-5\" title=\"Support for parallel compilation of a single module in the JVM backend\" href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/04\/kotlin-1-6-20-released\/#Support_for_parallel_compilation_of_a_single_module_in_the_JVM_backend\">JVM IR \ubc31\uc5d4\ub4dc\uc5d0\uc11c \ud558\ub098\uc758 \ubaa8\ub4c8\uc5d0 \ub300\ud55c \ubcd1\ub82c \ucef4\ud30c\uc77c \uc9c0\uc6d0<\/a><\/li>\n<li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-6\" title=\"Incremental compilation for development binaries with Kotlin\/JS IR compiler\" href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/04\/kotlin-1-6-20-released\/#Incremental_compilation_for_development_binaries_with_KotlinJS_IR_compiler\">Kotlin\/JS IR \ucef4\ud30c\uc77c\ub7ec\ub97c \uc0ac\uc6a9\ud558\ub294 \uac1c\ubc1c \ubc14\uc774\ub108\ub9ac\uc5d0\uc11c \uc99d\ubd84 \ucef4\ud30c\uc77c \uc9c0\uc6d0<\/a><\/li>\n<li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-7\" title=\"Kotlin\/Native \uc131\ub2a5 \uac1c\uc120\" href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/04\/kotlin-1-6-20-released\/#KotlinNative_performance_improvements\">Kotlin\/Native \uc131\ub2a5 \uac1c\uc120<\/a><\/li>\n<li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-8\" title=\"Hierarchical structure support for multiplatform projects\" href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/04\/kotlin-1-6-20-released\/#Hierarchical_structure_support_for_multiplatform_projects\">\uba40\ud2f0\ud50c\ub7ab\ud3fc \ud504\ub85c\uc81d\ud2b8\uc5d0\uc11c \uacc4\uce35\uc801 \uad6c\uc870 \uc9c0\uc6d0<\/a>\n<ul class=\"ez-toc-list-level-3\">\n<li class=\"ez-toc-heading-level-3\"><a class=\"ez-toc-link ez-toc-heading-9\" title=\"Better code-sharing in your project\" href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/04\/kotlin-1-6-20-released\/#Better_code-sharing_in_your_project\">\uac1c\uc120\ub41c \ud504\ub85c\uc81d\ud2b8 \ub0b4 \ucf54\ub4dc \uacf5\uc720<\/a><\/li>\n<li class=\"ez-toc-page-1 ez-toc-heading-level-3\"><a class=\"ez-toc-link ez-toc-heading-10\" title=\"More opportunities for library authors\" href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/04\/kotlin-1-6-20-released\/#More_opportunities_for_library_authors\">\ub77c\uc774\ube0c\ub7ec\ub9ac \uc791\uc131\uc790\uc5d0\uac8c \ub354 \ub9ce\uc740 \uae30\ud68c<\/a><\/li>\n<li class=\"ez-toc-page-1 ez-toc-heading-level-3\"><a class=\"ez-toc-link ez-toc-heading-11\" title=\"Configuration and setup\" href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/04\/kotlin-1-6-20-released\/#Configuration_and_setup\">\uad6c\uc131 \ubc0f \uc124\uc815<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li class=\"ez-toc-page-1 ez-toc-heading-level-1\"><a class=\"ez-toc-link ez-toc-heading-12\" title=\"Complete list of improvements\" href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/04\/kotlin-1-6-20-released\/#Complete_list_of_improvements\">\uac1c\uc120 \uc0ac\ud56d \uc804\uccb4 \ubaa9\ub85d<\/a>\n<ul class=\"ez-toc-list-level-2\">\n<li class=\"ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-13\" title=\"\uc5b8\uc5b4\" href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/04\/kotlin-1-6-20-released\/#Language\">\uc5b8\uc5b4<\/a><\/li>\n<li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-14\" title=\"Kotlin\/JVM\" href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/04\/kotlin-1-6-20-released\/#KotlinJVM\">Kotlin\/JVM<\/a><\/li>\n<li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-15\" title=\"Kotlin\/Native\" href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/04\/kotlin-1-6-20-released\/#KotlinNative\">Kotlin\/Native<\/a><\/li>\n<li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-16\" title=\"Kotlin \uba40\ud2f0\ud50c\ub7ab\ud3fc\" href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/04\/kotlin-1-6-20-released\/#Kotlin_Multiplatform\">Kotlin \uba40\ud2f0\ud50c\ub7ab\ud3fc<\/a><\/li>\n<li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-17\" title=\"Kotlin\/JS\" href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/04\/kotlin-1-6-20-released\/#KotlinJS\">Kotlin\/JS<\/a><\/li>\n<li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-18\" title=\"\ubcf4\uc548\" href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/04\/kotlin-1-6-20-released\/#Security\">\ubcf4\uc548<\/a><\/li>\n<li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-19\" title=\"Gradle\" href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/04\/kotlin-1-6-20-released\/#Gradle%EF%BB%BF\">Gradle<\/a><\/li>\n<\/ul>\n<\/li>\n<li class=\"ez-toc-page-1 ez-toc-heading-level-1\"><a class=\"ez-toc-link ez-toc-heading-20\" title=\"Kotlin 1.6.20 \uc124\uce58 \ubc29\ubc95\" href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/04\/kotlin-1-6-20-released\/#How_to_install_Kotlin_1620\">Kotlin 1.6.20 \uc124\uce58 \ubc29\ubc95<\/a>\n<ul class=\"ez-toc-list-level-3\">\n<li class=\"ez-toc-heading-level-3\">\n<ul class=\"ez-toc-list-level-3\">\n<li class=\"ez-toc-heading-level-3\"><a class=\"ez-toc-link ez-toc-heading-21\" title=\"\ubb38\uc81c\uac00 \ubc1c\uc0dd\ud558\uba74\" href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/04\/kotlin-1-6-20-released\/#If_you_run_into_any_problems\">\ubb38\uc81c\uac00 \ubc1c\uc0dd\ud558\uba74<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li class=\"ez-toc-page-1 ez-toc-heading-level-1\"><a class=\"ez-toc-link ez-toc-heading-22\" title=\"\uae30\ud0c0 \uc720\uc6a9\ud55c \uae00\uacfc \uc601\uc0c1\" href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/04\/kotlin-1-6-20-released\/#What_else_to_read_and_watch\">\uae30\ud0c0 \uc720\uc6a9\ud55c \uae00\uacfc \uc601\uc0c1<\/a><\/li>\n<\/ul>\n<\/nav>\n<\/div>\n<p>Kotlin 1.6.20\uc774 \uacf5\uc2dd \ucd9c\uc2dc\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \ud5a5\ud6c4 \uc5b8\uc5b4 \uae30\ub2a5\uc758 \ud14c\uc2a4\ud2b8 \ubc84\uc804\uc744 \uc81c\uacf5\ud558\uace0, \uacc4\uce35 \uad6c\uc870\ub97c \uba40\ud2f0\ud50c\ub7ab\ud3fc \ud504\ub85c\uc81d\ud2b8\uc758 \ub514\ud3f4\ud2b8 \uac12\uc73c\ub85c \uc124\uc815\ud558\uba70, JVM, JS \ubc0f Native \ud50c\ub7ab\ud3fc\uc758 \uc131\ub2a5\uc744 \uac1c\uc120\ud569\ub2c8\ub2e4.<\/p>\n<p>\uc774 \ube14\ub85c\uadf8 \uae00\uc5d0\uc11c\ub294 \ub2e4\uc74c \uac1c\uc120 \uc0ac\ud56d\uc5d0 \ub300\ud55c \uac1c\uc694\uc640 \ub354\ubd88\uc5b4 <a title=\"#complete-list-of-improvements\" href=\"#complete-list-of-improvements\">\ub2e4\ub978 \uc810\uc9c4\uc801 \ubcc0\uacbd \uc0ac\ud56d\uc5d0 \ub300\ud55c \uc804\uccb4 \ubaa9\ub85d<\/a>\uc744 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<ul>\n<li><a title=\"#prototype-of-context-receivers-for-kotlin-jvm\" href=\"#prototype-of-context-receivers-for-kotlin-jvm\">\ucee8\ud14d\uc2a4\ud2b8 \ub9ac\uc2dc\ubc84\uc758 \ud504\ub85c\ud1a0\ud0c0\uc785<\/a>\uc774 \uad6c\ud604\ub418\uc5b4, Kotlin\/JVM\uc5d0\uc11c \ucee8\ud14d\uc2a4\ud2b8\uc5d0 \uc758\uc874\uc801\uc778 \uc120\uc5b8 \uc815\uc758\ub97c \uc0c8\ub86d\uac8c \uc9c0\uc6d0.<\/li>\n<li><a title=\"#definitely-non-nullable-types\" href=\"#definitely-non-nullable-types\">\ud655\uc815\uc801\uc73c\ub85c null \uac00\ub2a5\ud558\uc9c0 \uc54a\uc740 \ud0c0\uc785<\/a>\uc73c\ub85c \uc81c\ub124\ub9ad Java \ud074\ub798\uc2a4 \ubc0f \uc778\ud130\ud398\uc774\uc2a4\uc758 \uc0c1\ud638 \uc6b4\uc6a9\uc131 \uac1c\uc120.<\/li>\n<li><a title=\"#support-for-parallel-compilation-of-a-single-module-in-the-JVM-backend\" href=\"#support-for-parallel-compilation-of-a-single-module-in-the-JVM-backend\">JVM IR \ubc31\uc5d4\ub4dc\uc5d0\uc11c \ub2e8\uc77c \ubaa8\ub4c8\uc744 \ubcd1\ub82c\ub85c \ucef4\ud30c\uc77c<\/a>\ud560 \uc218 \uc788\uac8c \ub418\uc5b4 \ube4c\ub4dc \ud0c0\uc784\uc774 \ub354\uc6b1 \ube68\ub77c\uc9d0.<\/li>\n<li><a href=\"#incremental-compilation-for-development-binaries-with-kotlin-js-ir-compiler\">Kotlin\/JS IR\uc5d0\uc11c \uc99d\ubd84 \ucef4\ud30c\uc77c<\/a>\uc744 \ud1b5\ud574 \uc6d0\ud65c\ud55c \uac1c\ubc1c \uacbd\ud5d8 \uc9c0\uc6d0.<\/li>\n<li><a href=\"#kotlin-native-performance-improvements\">Kotlin\/Native \uc131\ub2a5 \uac1c\uc120<\/a>.<\/li>\n<li><a href=\"#hierarchical-structure-support-for-multiplatform-projects\">\uba40\ud2f0\ud50c\ub7ab\ud3fc \ud504\ub85c\uc81d\ud2b8\uc758 \uacc4\uce35 \uad6c\uc870\ud654<\/a>\ub85c \uc774\uc804\ubcf4\ub2e4 \uc190\uc27d\uac8c \ucf54\ub4dc \uacf5\uc720.<\/li>\n<\/ul>\n<p><!--more--><\/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=\"What's New In Kotlin 1.6.20\" src=\"https:\/\/www.youtube.com\/embed\/8F19ds109-o?feature=oembed\" width=\"500\" height=\"281\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/div>\n<\/figure>\n<hr class=\"wp-block-separator\">\n<h1 id=\"how-to-update\"><span id=\"How_to_update\" class=\"ez-toc-section\"><\/span>\uc5c5\ub370\uc774\ud2b8 \ubc29\ubc95<\/h1>\n<p><a href=\"https:\/\/www.jetbrains.com\/idea\/download\/\" target=\"_blank\" rel=\"noopener\">IntelliJ IDEA<\/a> \ub610\ub294 <a href=\"https:\/\/developer.android.com\/studio\" target=\"_blank\" rel=\"noopener\">Android Studio<\/a>\ub97c \uc0ac\uc6a9\ud558\ub294 \uacbd\uc6b0, \uc0c8\ub85c\uc6b4 Kotlin \ub9b4\ub9ac\uc2a4\uac00 \ucd9c\uc2dc\ub418\ub294 \uc989\uc2dc \uc790\ub3d9\uc73c\ub85c \uc5c5\ub370\uc774\ud2b8\ud560 \uc218 \uc788\ub294 \uc635\uc158\uc774 \uc81c\uacf5\ub429\ub2c8\ub2e4.<\/p>\n<p align=\"center\"><a class=\"ek-link jb-download-button\" title=\"Kotlin 1.6.20\uc73c\ub85c \uc5c5\ub370\uc774\ud2b8\" href=\"#how-to-install\">Kotlin 1.6.20\uc73c\ub85c \uc5c5\ub370\uc774\ud2b8<\/a><\/p>\n<h1 id=\"major-updates\"><span id=\"Major_updates\" class=\"ez-toc-section\"><\/span>\uc8fc\uc694 \uc5c5\ub370\uc774\ud2b8<\/h1>\n<h2 id=\"prototype-of-context-receivers-for-kotlin-jvm\"><span id=\"Prototype_of_context_receivers_for_KotlinJVM\" class=\"ez-toc-section\"><\/span>Kotlin\/JVM\uc6a9 \ucee8\ud14d\uc2a4\ud2b8 \ub9ac\uc2dc\ubc84 \ud504\ub85c\ud1a0\ud0c0\uc785<\/h2>\n<p>Kotlin 1.6.20\uc5d0\uc11c\ub294 \ub9ac\uc2dc\ubc84 \uac1c\uc218\uac00 \ud558\ub098\ub85c \uc81c\ud55c\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \ub354 \ub9ce\uc774 \ud544\uc694\ud55c \uacbd\uc6b0 \uc120\uc5b8\uc5d0 \ucee8\ud14d\uc2a4\ud2b8 \ub9ac\uc2dc\ubc84\ub97c \ucd94\uac00\ud558\uc5ec \ud568\uc218, \ud504\ub85c\ud37c\ud2f0 \ubc0f \ud074\ub798\uc2a4\ub97c \ucee8\ud14d\uc2a4\ud2b8 \uc758\uc874\uc801\uc73c\ub85c(\ud639\uc740 <em>\ucee8\ud14d\uc2a4\ud2b8 \uae30\ubc18<\/em>) \ub9cc\ub4e4\uba74 \ub429\ub2c8\ub2e4. \ucee8\ud14d\uc2a4\ud2b8 \uae30\ubc18 \uc120\uc5b8\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<ul>\n<li>\ubaa8\ub4e0 \uc120\uc5b8\ub41c \ucee8\ud14d\uc2a4\ud2b8 \ub9ac\uc2dc\ubc84\uac00 \ud638\ucd9c\uc790\uc758 \ubc94\uc704\uc5d0\uc11c \ubb35\uc2dc\uc801 \ub9ac\uc2dc\ubc84\ub85c \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4.<\/li>\n<li>\uc120\uc5b8\ub41c \ucee8\ud14d\uc2a4\ud2b8 \ub9ac\uc2dc\ubc84\ub97c \ubcf8\ubb38 \ubc94\uc704\uc5d0 \ubb35\uc2dc\uc801\uc778 \ub9ac\uc2dc\ubc84\ub85c \uac00\uc838\uc635\ub2c8\ub2e4.<\/li>\n<\/ul>\n<pre class=\"kotlin-code\" style=\"visibility: hidden; padding: 36px 0;\" data-highlight-only=\"true\">interface LoggingContext {\n    val log: Logger \/\/ This context provides a reference to a logger \n}\n\ncontext(LoggingContext)\nfun startBusinessOperation() {\n    \/\/ You can access the log property since LoggingContext is an implicit receiver\n    log.info(\"Operation has started\")\n}\n\nfun test(loggingContext: LoggingContext) {\n    with(loggingContext) {\n        \/\/ You need to have LoggingContext in a scope as an implicit receiver\n        \/\/ to call startBusinessOperation()\n        startBusinessOperation()\n    }\n}\n<\/pre>\n<p>\ud504\ub85c\uc81d\ud2b8\uc5d0\uc11c \ucee8\ud14d\uc2a4\ud2b8 \ub9ac\uc2dc\ubc84\ub97c \ud65c\uc131\ud654\ud558\ub824\uba74, <code>-Xcontext-receivers<\/code> \ucef4\ud30c\uc77c\ub7ec \uc635\uc158\uc744 \uc0ac\uc6a9\ud558\uc138\uc694. \uc774 \uae30\ub2a5 \ubc0f \uad6c\ubb38\uc758 \uc790\uc138\ud55c \uc124\uba85\uc740 <a href=\"https:\/\/github.com\/Kotlin\/KEEP\/blob\/master\/proposals\/context-receivers.md#detailed-design\" target=\"_blank\" rel=\"noopener\">KEEP<\/a>\uc5d0\uc11c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc774\ubc88 \uad6c\ud604\uc740 <strong>\ud504\ub85c\ud1a0\ud0c0\uc785<\/strong>\uc778 \uc810\uc5d0 \uc720\uc758\ud558\uc138\uc694.&nbsp;<\/p>\n<ul>\n<li><code>-Xcontext-receivers<\/code>\uac00 \ud65c\uc131\ud654\ub41c \uc0c1\ud0dc\uc5d0\uc11c \ucef4\ud30c\uc77c\ub7ec\ub294 \ud504\ub85c\ub355\uc158 \ucf54\ub4dc\uc5d0\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\ub294 \uc0ac\uc804 \ub9b4\ub9ac\uc2a4 \ubc14\uc774\ub108\ub9ac\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4.&nbsp;<\/li>\n<li>\ud604\uc7ac IDE\ub294 \ucee8\ud14d\uc2a4\ud2b8 \ub9ac\uc2dc\ubc84\ub97c \ucd5c\uc18c\ud55c\uc758 \uc218\uc900\uc73c\ub85c \uc9c0\uc6d0\ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n<h2 id=\"definitely-non-nullable-types\"><span id=\"Definitely_non-nullable_types\" class=\"ez-toc-section\"><\/span>\ud655\uc815\uc801\uc73c\ub85c null \uac00\ub2a5\ud558\uc9c0 \uc54a\uc740 \ud0c0\uc785<\/h2>\n<p>\uc81c\ub124\ub9ad Java \ud074\ub798\uc2a4 \ubc0f \uc778\ud130\ud398\uc774\uc2a4\ub97c \ud655\uc7a5\ud560 \ub54c \uc0c1\ud638 \uc6b4\uc6a9\uc131\uc744 \uac1c\uc120\ud558\uae30 \uc704\ud574 Kotlin 1.6.20\uc5d0\uc11c\ub294 \uc81c\ub124\ub9ad \ud0c0\uc785 \ub9e4\uac1c\ubcc0\uc218\ub97c <code>T &amp; Any<\/code>\uac00 \uc0ac\uc6a9\ub418\ub294 \uacf3\uc5d0\uc11c \ud655\uc815\uc801\uc73c\ub85c null \uac00\ub2a5\ud558\uc9c0 \uc54a\uc740 \ud0c0\uc785\uc73c\ub85c \ud45c\uc2dc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uad6c\ubb38 \ud615\ud0dc\ub294 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Intersection_type\" target=\"_blank\" rel=\"noopener\">\uad50\ucc28 \ud0c0\uc785<\/a> \ud45c\uae30\uc5d0\uc11c \uc628 \uac83\uc774\uba70 \uc774\uc81c <code>&amp;<\/code>\uc758 \uc67c\ucabd\uc5d0 \uc788\ub294 null \uac00\ub2a5 \uc0c1\ud55c\uc120\uacfc \uc624\ub978\ucabd\uc758 null \uac00\ub2a5\ud558\uc9c0 \uc54a\uc740 <code>Any<\/code>\ub97c \uac00\uc9c4 \ud0c0\uc785 \ub9e4\uac1c\ubcc0\uc218\ub85c \uc81c\ud55c\ub429\ub2c8\ub2e4.<\/p>\n<pre class=\"kotlin-code\" style=\"visibility: hidden; padding: 36px 0;\" data-highlight-only=\"true\">fun &lt;T&gt; elvisLike(x: T, y: T &amp; Any): T &amp; Any = x ?: y\n\nfun main() {\n   \/\/ OK\n   elvisLike&lt;String&gt;(\"\", \"\").length\n   \/\/ Error: 'null' cannot be a value of a non-null type\n   elvisLike&lt;String&gt;(\"\", null).length\n\n   \/\/ OK\n   elvisLike&lt;String?&gt;(null, \"\").length\n   \/\/ Error: 'null' cannot be a value of a non-null type\n   elvisLike&lt;String?&gt;(null, null).length\n}\n<\/pre>\n<p>\uae30\ub2a5\uc744 \ud65c\uc131\ud654\ud558\ub824\uba74 \uc5b8\uc5b4 \ubc84\uc804\uc744 1.7\ub85c \uc124\uc815\ud558\uc138\uc694.<\/p>\n<pre class=\"kotlin-code\" style=\"visibility: hidden; padding: 36px 0;\" data-highlight-only=\"true\">kotlin {\n   sourceSets.all {\n       languageSettings.apply {\n           languageVersion = \"1.7\"\n       }\n   }\n}\n<\/pre>\n<p><a href=\"https:\/\/github.com\/Kotlin\/KEEP\/blob\/c72601cf35c1e95a541bb4b230edb474a6d1d1a8\/proposals\/definitely-non-nullable-types.md\" target=\"_blank\" rel=\"noopener\">KEEP<\/a>\uc5d0\uc11c \ud655\uc815\uc801\uc73c\ub85c null \uac00\ub2a5\ud558\uc9c0 \uc54a\uc740 \ud0c0\uc785\uc5d0 \ub300\ud574\uc11c \ub354 \uc54c\uc544\ubcf4\uc138\uc694.<\/p>\n<p>\ud604\uc7ac \ud655\uc815\uc801\uc73c\ub85c null \uac00\ub2a5\ud558\uc9c0 \uc54a\uc740 \ud0c0\uc785\uc740 <strong>\ubca0\ud0c0<\/strong>\uc785\ub2c8\ub2e4. \uac70\uc758 \uc548\uc815\ud654\uac00 \ub418\uc5c8\uc9c0\ub9cc \ucd94\ud6c4\uc5d0 \ub9c8\uc774\uadf8\ub808\uc774\uc158 \uacfc\uc815\uc774 \ud544\uc694\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. \ubcc0\uacbd \uc0ac\ud56d\uc744 \ucd5c\uc18c\ud654\ud558\uae30 \uc704\ud574 \ub178\ub825\ud558\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<h2 id=\"support-for-parallel-compilation-of-a-single-module-in-the-JVM-backend\"><span id=\"Support_for_parallel_compilation_of_a_single_module_in_the_JVM_backend\" class=\"ez-toc-section\"><\/span>JVM IR \ubc31\uc5d4\ub4dc\uc5d0\uc11c \ud558\ub098\uc758 \ubaa8\ub4c8\uc5d0 \ub300\ud55c \ubcd1\ub82c \ucef4\ud30c\uc77c \uc9c0\uc6d0<\/h2>\n<p>Kotlin 1.6.20\uc5d0\uc11c \ud558\ub098\uc758 \ubaa8\ub4c8\uc5d0 \uc788\ub294 \ubaa8\ub4e0 \ud30c\uc77c\uc744 \ubcd1\ub82c\ub85c \ucef4\ud30c\uc77c\ud558\ub294 \uc2e4\ud5d8\uc801\uc778 \uae30\ub2a5\uc778 JVM IR \ubc31\uc5d4\ub4dc \ubaa8\ub4dc\ub97c \ucd94\uac00\ud558\uc600\uc2b5\ub2c8\ub2e4. \ubcd1\ub82c \ucef4\ud30c\uc77c\uc740 \ucd1d \ucef4\ud30c\uc77c \uc2dc\uac04\uc744 \ucd5c\ub300 15%\uae4c\uc9c0 \uc904\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p><a href=\"https:\/\/kotlinlang.org\/docs\/compiler-reference.html#compiler-options\" target=\"_blank\" rel=\"noopener\">compiler option<\/a> <code>-Xbackend-threads<\/code>\ub85c \uc2e4\ud5d8\uc801 \ubcd1\ub82c \ubc31\uc5d4\ub4dc \ubaa8\ub4dc\ub97c \ud65c\uc131\ud654\ud558\uc138\uc694. \uc774 \uc635\uc158\uc5d0 \ub2e4\uc74c\uc758 \uc778\uc218\ub97c \uc0ac\uc6a9\ud558\uc138\uc694.<\/p>\n<ul>\n<li><code>N<\/code>\uc740 \uc0ac\uc6a9\ud558\uace0 \uc2f6\uc740 \uc2a4\ub808\ub4dc\uc758 \uc218\uc785\ub2c8\ub2e4. CPU \ucf54\uc5b4 \uc218\ub97c \ucd08\uacfc\ud574\uc11c\ub294 \uc548\ub429\ub2c8\ub2e4. \ucd08\uacfc\ud558\ub294 \uacbd\uc6b0 \ucee8\ud14d\uc2a4\ud2b8\uac00 \uc2a4\ub808\ub4dc \uac04\uc5d0 \uc804\ud658\ub418\uc5b4 \ud6a8\uc728\uc801\uc73c\ub85c \ubcd1\ub82c\ud654\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<\/li>\n<li><code>0<\/code>\uc73c\ub85c CPU \ucf54\uc5b4\ub2f9 1\uac1c \uc2a4\ub808\ub4dc\ub97c \uc0ac\uc6a9<\/li>\n<\/ul>\n<p><a href=\"https:\/\/kotlinlang.org\/docs\/gradle.html\" target=\"_blank\" rel=\"noopener\">Gradle<\/a>\uc740 \uc791\uc5c5\uc744 \ubcd1\ub82c\ub85c \uc2e4\ud589\ud560 \uc218 \uc788\uc9c0\ub9cc, Gradle\uc758 \uad00\uc810\uc5d0\uc11c \ud504\ub85c\uc81d\ud2b8(\ud639\uc740 \ud504\ub85c\uc81d\ud2b8\uc758 \uc8fc\uc694\ud55c \ubd80\ubd84)\uac00 \ud558\ub098\uc758 \ud070 \uc791\uc5c5\uc77c \ubfd0\uc77c \ub54c\ub294 \uc774\ub7ec\ud55c \ubcd1\ub82c\ud654\uac00 \ubcc4\ub85c \ub3c4\uc6c0\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \ub9e4\uc6b0 \ud070 \ubaa8\ub180\ub9ac\uc2dd \ubaa8\ub4c8\uc774 \uc788\ub294 \uacbd\uc6b0 \ubcd1\ub82c \ucef4\ud30c\uc77c\uc744 \uc0ac\uc6a9\ud558\uc5ec \ub354 \ube60\ub974\uac8c \ucef4\ud30c\uc77c\ud558\uc138\uc694. \ud504\ub85c\uc81d\ud2b8\uac00 \ub2e4\uc218\uc758 \uc791\uc740 \ubaa8\ub4c8\ub85c \uad6c\uc131\ub418\uc5b4 \uc788\uc73c\uba70 \ube4c\ub4dc\uac00 Gradle\ub85c \ubcd1\ub82c\ud654\ub418\uc5b4 \uc788\ub294 \uacbd\uc6b0 \ubcd1\ub82c\ud654 \ub808\uc774\uc5b4\ub97c \ucd94\uac00\ud558\uba74 \ucee8\ud14d\uc2a4\ud2b8 \uc804\ud658\uc73c\ub85c \uc778\ud574 \uc131\ub2a5\uc5d0 \ub098\uc05c \uc601\ud5a5\uc744 \uc904 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ubcd1\ub82c \ucef4\ud30c\uc77c\uc5d0\ub294 \uc77c\ubd80 \uc81c\uc57d\uc774 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<ul>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/kapt.html\" target=\"_blank\" rel=\"noopener\">kapt<\/a>\ub294 IR \ubc31\uc5d4\ub4dc\ub97c \ube44\ud65c\uc131\ud654\ud558\uae30 \ub54c\ubb38\uc5d0 kapt\uc640\ub294 \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.<\/li>\n<li>\uc124\uacc4\uc0c1 JVM \ud799\uc774 \ub354 \ud544\uc694\ud569\ub2c8\ub2e4. \ud544\uc694\ud55c heap\uc758 \uc591\uc740 \uc2a4\ub808\ub4dc \uc218\uc5d0 \ube44\ub840\ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n<h2 id=\"incremental-compilation-for-development-binaries-with-kotlin-js-ir-compiler\"><span id=\"Incremental_compilation_for_development_binaries_with_KotlinJS_IR_compiler\" class=\"ez-toc-section\"><\/span>Kotlin\/JS IR \ucef4\ud30c\uc77c\ub7ec\ub97c \uc0ac\uc6a9\ud558\ub294 \uac1c\ubc1c \ubc14\uc774\ub108\ub9ac\uc5d0\uc11c \uc99d\ubd84 \ucef4\ud30c\uc77c \uc9c0\uc6d0<\/h2>\n<p>IR \ucef4\ud30c\uc77c\ub7ec\ub97c \ud65c\uc6a9\ud55c Kotlin\/JS \uac1c\ubc1c\uc744 \ub354\uc6b1 \ud6a8\uc728\ud654\ud558\uae30 \uc704\ud574 <em>\uc99d\ubd84 \ucef4\ud30c\uc77c<\/em> \ubaa8\ub4dc\ub97c \ub3c4\uc785\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc774 \ubaa8\ub4dc\uc5d0\uc11c <code>compileDevelopmentExecutableKotlinJs<\/code> Gradle \uc791\uc5c5\uc774 \uc788\ub294 <strong>\uac1c\ubc1c \ubc14\uc774\ub108\ub9ac<\/strong>\ub97c \ube4c\ub4dc\ud560 \ub54c\ub294 \ucef4\ud30c\uc77c\ub7ec\uac00 \ubaa8\ub4c8 \uc218\uc900\uc5d0\uc11c \uc774\uc804 \ucef4\ud30c\uc77c\uc758 \uacb0\uacfc\ub97c \uce90\uc2dc\uc5d0 \uc800\uc7a5\ud569\ub2c8\ub2e4. \uc774\uc5b4\uc9c0\ub294 \ucef4\ud30c\uc77c\uc5d0\uc11c \ubcc0\uacbd \uc0ac\ud56d\uc774 \uc5c6\ub294 \uc18c\uc2a4 \ud30c\uc77c\uc5d0 \uce90\uc2dc\ub41c \ucef4\ud30c\uc77c \uacb0\uacfc\ub97c \uc0ac\uc6a9\ud558\ubbc0\ub85c, \ud2b9\ud788 \ubcc0\uacbd \uc0ac\ud56d\uc774 \uc801\uc744 \ub54c \ucef4\ud30c\uc77c \uc644\ub8cc \uc18d\ub3c4\uac00 \ube68\ub77c\uc9d1\ub2c8\ub2e4. \uc774 \uac1c\uc120 \uc0ac\ud56d\uc740 \uac1c\ubc1c \ud504\ub85c\uc138\uc2a4\uc5d0\ub9cc \uc801\uc6a9\ub418\uba70(\ud3b8\uc9d1-\ube4c\ub4dc-\ub514\ubc84\uadf8 \uc0ac\uc774\ud074 \ub2e8\ucd95) \ud504\ub85c\ub355\uc158 \uc544\ud2f0\ud329\ud2b8 \ube4c\ub4dc\uc5d0\ub294 \uc601\ud5a5\uc744 \uc8fc\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uac1c\ubc1c \ubc14\uc774\ub108\ub9ac\uc758 \uc99d\ubd84 \ucef4\ud30c\uc77c\uc744 \ud65c\uc131\ud654\ud558\ub824\uba74, \ub2e4\uc74c \uc904\uc744 \ud504\ub85c\uc81d\ud2b8\uc758 <code>gradle.properties<\/code>\uc5d0 \ucd94\uac00\ud558\uc138\uc694.<\/p>\n<pre class=\"kotlin-code\" style=\"visibility: hidden; padding: 36px 0;\" data-highlight-only=\"true\">kotlin.incremental.js.ir=true \/\/ false by default\n<\/pre>\n<p>\ud14c\uc2a4\ud2b8 \ud504\ub85c\uc81d\ud2b8\uc5d0\uc11c \uc0c8\ub85c\uc6b4 \ubaa8\ub4dc\ub97c \uc0ac\uc6a9\ud560 \uacbd\uc6b0 \uc99d\ubd84 \ucef4\ud30c\uc77c\uc774 \ucd5c\ub300 30% \ube68\ub790\uc2b5\ub2c8\ub2e4. \uadf8\ub7ec\ub098 \uc774 \ubaa8\ub4dc\uc5d0\uc11c \ud074\ub9b0 \ube4c\ub4dc\ub294 \uce90\uc2dc\ub97c \uc0dd\uc131\ud558\uace0 \uc900\ube44\ud574\uc57c \ud558\uae30 \ub54c\ubb38\uc5d0 \ub354 \ub290\ub838\uc2b5\ub2c8\ub2e4.<\/p>\n<h2 id=\"kotlin-native-performance-improvements\"><span id=\"KotlinNative_performance_improvements\" class=\"ez-toc-section\"><\/span>Kotlin\/Native \uc131\ub2a5 \uac1c\uc120<\/h2>\n<p>Kotlin 1.6.20\uc5d0\ub294 Koltin\uc774 \uc0dd\uc131\ud558\ub294 LLVM IR\uc5d0 \uc601\ud5a5\uc744 \uc8fc\ub294 \uc131\ub2a5 \uc5c5\ub370\uc774\ud2b8\uc640 \ubc84\uadf8 \uc218\uc815\uc774 \uc77c\ubd80 \ud3ec\ud568\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uc800\ud76c\uac00 \ub0b4\ubd80 \ud504\ub85c\uc81d\ud2b8\uc5d0\uc11c \ubca4\uce58\ub9c8\ud06c\ub97c \uc2e4\ud589\ud55c \uacb0\uacfc\uc5d0 \ub530\ub974\uba74 \ud3c9\uade0 \uc131\ub2a5 \ud5a5\uc0c1\uc740 \ub2e4\uc74c\uacfc \uac19\uc558\uc2b5\ub2c8\ub2e4.<\/p>\n<ul>\n<li>\uc2e4\ud589 \uc2dc\uac04 15% \uac10\uc18c<\/li>\n<li>\ub9b4\ub9ac\uc2a4 \ubc0f \ub514\ubc84\uadf8 \ubc14\uc774\ub108\ub9ac\uc758 \ucf54\ub4dc \ud06c\uae30 20% \uac10\uc18c<\/li>\n<li>\ub9b4\ub9ac\uc2a4 \ubc14\uc774\ub108\ub9ac\uc758 \ucef4\ud30c\uc77c \uc2dc\uac04 26% \uac10\uc18c<\/li>\n<\/ul>\n<p>\uc774\ubc88 \ubcc0\uacbd\uc73c\ub85c \ub300\uaddc\ubaa8 \ub0b4\ubd80 \ud504\ub85c\uc81d\ud2b8\uc5d0\uc11c \ub514\ubc84\uadf8 \ubc14\uc774\ub108\ub9ac\uc758 \ucef4\ud30c\uc77c \uc2dc\uac04\ub3c4 10% \uac10\uc18c\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc774\ub7ec\ud55c \uacb0\uacfc\ub97c \uc5bb\uae30 \uc704\ud574 \ucef4\ud30c\uc77c\ub7ec\uac00 \uc0dd\uc131\ud55c \uc77c\ubd80 \ud1b5\ud569 \uac1d\uccb4\uc758 \uc815\uc801 \ucd08\uae30\ud654\ub97c \uad6c\ud604\ud558\uace0, \ubaa8\ub4e0 \ud568\uc218\uc5d0 \ub300\ud574 LLVM IR\uc744 \uad6c\uc870\ud654\ud558\ub294 \ubc29\ubc95\uc744 \uac1c\uc120\ud558\uc600\uc73c\uba70, \ucef4\ud30c\uc77c\ub7ec \uce90\uc2dc\ub97c \ucd5c\uc801\ud654\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<h2 id=\"hierarchical-structure-support-for-multiplatform-projects\"><span id=\"Hierarchical_structure_support_for_multiplatform_projects\" class=\"ez-toc-section\"><\/span>\uba40\ud2f0 \ud50c\ub7ab\ud3fc \ud504\ub85c\uc81d\ud2b8\uc5d0\uc11c \uacc4\uce35\uc801 \uad6c\uc870 \uc9c0\uc6d0<\/h2>\n<p>Kotlin 1.6.20\uc5d0\ub294 \uacc4\uce35\uc801 \uad6c\uc870 \uc9c0\uc6d0\uc774 \uae30\ubcf8\uc801\uc73c\ub85c \ud65c\uc131\ud654\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew14.html#sharing-code-in-several-targets-with-the-hierarchical-project-structure\" target=\"_blank\" rel=\"noopener\">Kotlin 1.4.0<\/a>\uc5d0\uc11c \uc774 \uae30\ub2a5\uc744 \ub3c4\uc785\ud55c \uc774\ud6c4 \ud504\ub7f0\ud2b8\uc5d4\ub4dc\ub97c \ud06c\uac8c \uac1c\uc120\ud558\uc600\uc73c\uba70 IDE \uac00\uc838\uc624\uae30\ub97c \uc548\uc815\ud654\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc774\uc804\uc5d0 \uba40\ud2f0\ud50c\ub7ab\ud3fc \ud504\ub85c\uc81d\ud2b8\uc5d0\uc11c \ucf54\ub4dc\ub97c \ucd94\uac00\ud558\ub294 \ubc29\ubc95\uc740 \ub450 \uac00\uc9c0\uc600\uc2b5\ub2c8\ub2e4. \uccab \ubc88\uc9f8\ub294 \ud2b9\uc815 \ud50c\ub7ab\ud3fc\uc6a9, \uc989 \ud558\ub098\uc758 \ub300\uc0c1 \ud50c\ub7ab\ud3fc \uc678\uc5d0 \ub2e4\ub978 \ud50c\ub7ab\ud3fc\uc5d0\uc11c\ub294 \uc0ac\uc6a9\ud560 \uc218 \uc5c6\ub294 \uc18c\uc2a4 \uc138\ud2b8\uc5d0 \ucf54\ub4dc\ub97c \ucd94\uac00\ud558\ub294 \ubc29\ubc95\uc774\uc5c8\uc2b5\ub2c8\ub2e4. \ub450 \ubc88\uc9f8\ub294 Kotlin\uc5d0\uc11c \ud604\uc7ac \uc9c0\uc6d0\ud558\ub294 \ubaa8\ub4e0 \ud50c\ub7ab\ud3fc\uc5d0\uc11c \uacf5\uc720\ub418\ub294 \uacf5\ud1b5 \uc18c\uc2a4 \uc138\ud2b8\ub97c \uc0ac\uc6a9\ud558\ub294 \ubc29\ubc95\uc785\ub2c8\ub2e4.<\/p>\n<p>\uc774\uc81c\ub294 \uacf5\ud1b5 \ub85c\uc9c1\uacfc \ud0c0\uc0ac API\ub97c \ub9ce\uc774 \uc7ac\uc0ac\uc6a9\ud558\ub294 \uc5ec\ub7ec \uac1c\uc758 \uc720\uc0ac\ud55c \ub124\uc774\ud2f0\ube0c \ub300\uc0c1\uc5d0\uc11c <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/02\/kotlin-1-6-20-m1-released\/#better-code-sharing-in-your-project\">\uc18c\uc2a4 \ucf54\ub4dc\ub97c \uacf5\uc720<\/a>\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uae30\uc220\uc740 \uc815\ud655\ud55c \ub514\ud3f4\ud2b8 \uc885\uc18d\uc131\uc744 \uc81c\uacf5\ud558\uba70 \uacf5\uc720\ub41c \ucf54\ub4dc\uc5d0\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \uc815\ud655\ud55c API\ub97c \ucc3e\uc544\uc90d\ub2c8\ub2e4. \uc774\uc5d0 \ub530\ub77c \ubcf5\uc7a1\ud55c \ube4c\ub4dc \uc124\uc815\uc774 \ud544\uc694 \uc5c6\uace0, \uc5ec\ub7ec \ub124\uc774\ud2f0\ube0c \ub300\uc0c1\uc5d0\uc11c \ucf54\ub4dc \uc138\ud2b8\ub97c \uacf5\uc720\ud560 \uc218 \uc788\ub294 IDE \uc9c0\uc6d0\uc744 \uc5bb\uae30 \uc704\ud574 \ud574\uacb0\ucc45\uc744 \uc0ac\uc6a9\ud560 \ud544\uc694\ub3c4 \uc5c6\uc5b4\uc84c\uc2b5\ub2c8\ub2e4. \ub610\ud55c, \ub2e4\ub978 \ub300\uc0c1\uc5d0 \uc0ac\uc6a9\ud574\uc57c \ud560 API\ub97c \uc548\uc804\ud558\uc9c0 \uc54a\uac8c \uc0ac\uc6a9\ud558\ub294 \uacbd\uc6b0\ub3c4 \ubc29\uc9c0\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc774 \uae30\uc220\uc740 \ub77c\uc774\ube0c\ub7ec\ub9ac \uc791\uc131\uc790\uc5d0\uac8c\ub3c4 \ud3b8\ub9ac\ud569\ub2c8\ub2e4. \uacc4\uce35\uc801 \ud504\ub85c\uc81d\ud2b8 \uad6c\uc870\uac00 \uc9c0\uc6d0\ub418\uba74 \ub300\uc0c1\uc758 \ud558\uc704 \uc138\ud2b8\uc5d0\uc11c \uc4f8 \uc218 \uc788\ub294 \uacf5\ud1b5 API\ub85c \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uac8c\uc2dc\ud558\uace0 \uc0ac\uc6a9\ud560 \uc218 \uc788\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4.<br \/>\uae30\ubcf8\uc801\uc73c\ub85c \uacc4\uce35\uc801 \ud504\ub85c\uc81d\ud2b8 \uad6c\uc870\ub85c \uac8c\uc2dc\ub41c \ub77c\uc774\ube0c\ub7ec\ub9ac\ub294 \uacc4\uce35\uc801 \uad6c\uc870\uc758 \ud504\ub85c\uc81d\ud2b8\uc640\ub9cc \ud638\ud658\ub429\ub2c8\ub2e4. <a href=\"https:\/\/kotlinlang.org\/docs\/multiplatform-hierarchy.html#compatibility\" target=\"_blank\" rel=\"noopener\">\ud504\ub85c\uc81d\ud2b8 \ubc0f \ub77c\uc774\ube0c\ub7ec\ub9ac \ud638\ud658\uc131<\/a>\uc5d0 \ub300\ud574 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\uc138\uc694.<\/p>\n<h3 id=\"better-code-sharing-in-your-project\"><span id=\"Better_code-sharing_in_your_project\" class=\"ez-toc-section\"><\/span>\uac1c\uc120\ub41c \ud504\ub85c\uc81d\ud2b8 \ub0b4 \ucf54\ub4dc \uacf5\uc720<\/h3>\n<p>\uacc4\uce35\uc801 \uad6c\uc870\uac00 \uc9c0\uc6d0\ub418\uc9c0 \uc54a\uc73c\uba74 <em>\uc77c\ubd80<\/em> <a href=\"https:\/\/kotlinlang.org\/docs\/multiplatform-dsl-reference.html#targets\" target=\"_blank\" rel=\"noopener\">Kotlin \ub300\uc0c1<\/a> \uac04\uc5d0 \ucf54\ub4dc\ub97c \uacf5\uc720\ud560 \uc218\ub294 \uc788\uc5b4\ub3c4 <em>\ubaa8\ub4e0<\/em> \ub300\uc0c1 \uac04\uc5d0 \uc27d\uac8c \uacf5\uc720\ud560 \ubc29\ubc95\uc740 \uc5c6\uc2b5\ub2c8\ub2e4. \ub300\ud45c\uc801\uc778 \uc608\uc2dc\ub294 \ubaa8\ub4e0 iOS \ub300\uc0c1\uc5d0\uc11c \ucf54\ub4dc\ub97c \uacf5\uc720\ud558\uba74\uc11c <code>Foundation<\/code>\uacfc \uac19\uc740 iOS\uc6a9 <a href=\"https:\/\/kotlinlang.org\/docs\/multiplatform-share-on-platforms.html#use-native-libraries-in-the-hierarchical-structure\" target=\"_blank\" rel=\"noopener\">\uc885\uc18d\uc131<\/a>\uc5d0 \uc561\uc138\uc2a4\ud558\ub294 \uac83\uc785\ub2c8\ub2e4.<\/p>\n<p>\uc774\uc81c \uacc4\uce35\uc801 \ud504\ub85c\uc81d\ud2b8 \uad6c\uc870\uac00 \uc9c0\uc6d0\ub418\ubbc0\ub85c \ubcc4\ub3c4 \uc124\uc815 \uc5c6\uc774 \uc774\ub97c \ubc14\ub85c \uc2e4\ud604\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc0c8\ub85c\uc6b4 \uad6c\uc870\uc5d0\uc11c \uc18c\uc2a4 \uc138\ud2b8\ub294 \uacc4\uce35 \uad6c\uc870\ub97c \ud615\uc131\ud569\ub2c8\ub2e4. \uc18c\uc2a4 \uc138\ud2b8\uac00 \ucef4\ud30c\uc77c\ub418\ub294 \uac01 \ub300\uc0c1\uc5d0\uc11c \uc9c0\uc6d0\ub418\ub294 \ud50c\ub7ab\ud3fc\uc6a9 \uc5b8\uc5b4 \uae30\ub2a5\uacfc \uc885\uc18d\uc131\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>iOS \uae30\uae30 \ubc0f \uc2dc\ubbac\ub808\uc774\ud130\uc6a9\uc73c\ub85c <code>iosArm64<\/code> \ubc0f <code>iosX64<\/code>\ub77c\ub294 2\uac1c\uc758 \ub300\uc0c1\uc744 \uac00\uc9c4 \uc77c\ubc18\uc801 \uba40\ud2f0\ud50c\ub7ab\ud3fc \ud504\ub85c\uc81d\ud2b8\ub97c \uc608\uc2dc\ub85c \ub4e4\uc5b4 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4. Kotlin \ub3c4\uad6c\ub294 \ub450 \ub300\uc0c1 \ubaa8\ub450 \uac19\uc740 \ud568\uc218\ub97c \uac16\uace0 \uc788\ub2e4\ub294 \uac83\uc744 \uc778\uc9c0\ud558\uba70 \uc0ac\uc6a9\uc790\uac00 \uc911\uac04 \uc18c\uc2a4 \uc138\ud2b8\uc778 <code>iosMain<\/code>\uc758 \ud568\uc218\uc5d0 \uc561\uc138\uc2a4\ud560 \uc218 \uc788\uac8c \ud569\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/09\/LHS-2rPAgtESE4DYL_hqh6AGQdKUC0BAmS-cGiuoaiHM5Qq4cU1Lwzur0-pjDG8WI_rgu03A-SWj9H4O2T2Y7Cze5guSSod7fEeqVGfS7EL74iTRQjuvyOGP2Uv3pPkNejYPrjJa-2.jpg\" width=\"624\" height=\"279\"><\/p>\n<p>Kotlin \ud234\uccb4\uc778\uc740 Kotlin\/Native stdlib \ud639\uc740 \ub124\uc774\ud2f0\ube0c \ub77c\uc774\ube0c\ub7ec\ub9ac \uac19\uc740 \uc62c\ubc14\ub978 \ub514\ud3f4\ud2b8 \uc885\uc18d\uc131\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. \ub610\ud55c Kotlin \ub3c4\uad6c\ub294 \uacf5\uc720\ub41c \ucf54\ub4dc\uc5d0\uc11c \uc774\uc6a9\ud560 \uc218 \uc788\ub294 API \uc11c\ud53c\uc2a4 \uc601\uc5ed\uc744 \uc815\ud655\ud788 \ucc3e\uae30 \uc704\ud574 \ub178\ub825\ud569\ub2c8\ub2e4. \uc774\ub294 Windows\uc5d0 \uacf5\uc720\ub418\ub294 \ucf54\ub4dc\uc5d0 macOS\uc6a9 \ud568\uc218\uac00 \uc0ac\uc6a9\ub418\ub294 \uac83\uacfc \uac19\uc740 \uc0ac\ub840\ub97c \ubc29\uc9c0\ud569\ub2c8\ub2e4.<\/p>\n<h3 id=\"more-opportunities-for-library-authors\"><span id=\"More_opportunities_for_library_authors\" class=\"ez-toc-section\"><\/span>\ub77c\uc774\ube0c\ub7ec\ub9ac \uc791\uc131\uc790\uc5d0\uac8c \ub354 \ub9ce\uc740 \uae30\ud68c<\/h3>\n<p>\uc774\uc81c \uba40\ud2f0\ud50c\ub7ab\ud3fc \ub77c\uc774\ube0c\ub7ec\ub9ac\uac00 \uac8c\uc2dc\ub418\uba74, \uc911\uac04 \uc18c\uc2a4 \uc138\ud2b8\uc758 API\uac00 \ud568\uaed8 \uc801\uc808\ud788 \uac8c\uc2dc\ub418\uc5b4 \uc18c\ube44\uc790\ub4e4\uc774 \uc0ac\uc6a9\ud560 \uc218 \uc788\uac8c \ub429\ub2c8\ub2e4. Kotlin \ud234\uccb4\uc778\uc774 \uc18c\ube44\uc790 \uc18c\uc2a4 \uc138\ud2b8\uc5d0\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 API\ub97c \uc790\ub3d9\uc73c\ub85c \ud30c\uc545\ud558\uba70, JS \ucf54\ub4dc\uc5d0\uc11c JVM\uc6a9 API\ub97c \uc0ac\uc6a9\ud558\ub294 \uac83\uacfc \uac19\uc740 \uc548\uc804\ud558\uc9c0 \uc54a\uc740 \uc0ac\uc6a9\uc744 \uac10\uc2dc\ud569\ub2c8\ub2e4. <a href=\"https:\/\/kotlinlang.org\/docs\/multiplatform-share-on-platforms.html#share-code-in-libraries\" target=\"_blank\" rel=\"noopener\">\ub77c\uc774\ube0c\ub7ec\ub9ac\uc5d0\uc11c \ucf54\ub4dc\ub97c \uacf5\uc720\ud558\ub294 \ubc29\ubc95<\/a>\uc5d0 \ub300\ud574 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\uc138\uc694.<\/p>\n<h3 id=\"configuration-an-setup\"><span id=\"Configuration_and_setup\" class=\"ez-toc-section\"><\/span>\uad6c\uc131 \ubc0f \uc124\uc815<\/h3>\n<p>Kotlin 1.6.20\ubd80\ud130 \ubaa8\ub4e0 \uc2e0\uaddc \uba40\ud2f0\ud50c\ub7ab\ud3fc \ud504\ub85c\uc81d\ud2b8\ub294 \uacc4\uce35\uc801 \ud504\ub85c\uc81d\ud2b8 \uad6c\uc870\ub97c \uac16\uac8c \ub429\ub2c8\ub2e4. \ucd94\uac00\uc801\uc778 \uc124\uc815\uc774 \ud544\uc694\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<\/p>\n<ul>\n<li>\uc774\ubbf8 <a href=\"https:\/\/kotlinlang.org\/docs\/mpp-share-on-platforms.html#share-code-on-similar-platforms\" target=\"_blank\" rel=\"noopener\">\uc218\ub3d9\uc73c\ub85c \ucf20<\/a> \uacbd\uc6b0 <code>gradle.properties<\/code>\uc5d0\uc11c \uc9c0\uc6d0 \uc911\ub2e8\ub41c \uc635\uc158\uc744 \uc81c\uac70\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ul>\n<pre class=\"kotlin-code\" style=\"visibility: hidden; padding: 36px 0;\" data-highlight-only=\"true\">kotlin.mpp.enableGranularSourceSetsMetadata=true\nkotlin.native.enableDependencyPropagation=true\n<\/pre>\n<ul>\n<li>\uc0ac\uc6a9\uc790 \uacbd\ud5d8\uc744 \ucd5c\uc801\ud654\ud558\uae30 \uc704\ud574 Kotlin 1.6.20\uc5d0\ub294 <a href=\"https:\/\/developer.android.com\/studio\" target=\"_blank\" rel=\"noopener\">Android Studio 2021.1.1<\/a>(Bumblebee) \ud639\uc740 \uc774\ud6c4 \ubc84\uc804\uc744 \uc0ac\uc6a9\ud558\ub294 \uac83\uc774 \uc88b\uc2b5\ub2c8\ub2e4.<\/li>\n<li>\uc774 \uae30\ub2a5\uc744 \uc120\ud0dd \ud574\uc81c\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. \uacc4\uce35\uc801 \uad6c\uc870 \uc9c0\uc6d0\uc744 \ube44\ud65c\uc131\ud654\ud558\ub824\uba74, <code>gradle.properties<\/code>\uc5d0\uc11c \ub2e4\uc74c\uc758 \uc635\uc158\uc744 \uc124\uc815\ud558\uc138\uc694.<\/li>\n<\/ul>\n<pre class=\"kotlin-code\" style=\"visibility: hidden; padding: 36px 0;\" data-highlight-only=\"true\">kotlin.mpp.hierarchicalStructureSupport=false\n<\/pre>\n<h1 id=\"complete-list-of-improvements\"><span id=\"Complete_list_of_improvements\" class=\"ez-toc-section\"><\/span>\uac1c\uc120\uc810 \uc804\uccb4 \ubaa9\ub85d<\/h1>\n<h2 id=\"language\"><span id=\"Language\" class=\"ez-toc-section\"><\/span>\uc5b8\uc5b4<\/h2>\n<ul>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1620.html#prototype-of-context-receivers-for-kotlin-jvm\" target=\"_blank\" rel=\"noopener\">Kotlin\/JVM\uc6a9 \ucee8\ud14d\uc2a4\ud2b8 \ub9ac\uc2dc\ubc84 \ud504\ub85c\ud1a0\ud0c0\uc785<\/a><\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1620.html#definitely-non-nullable-types\" target=\"_blank\" rel=\"noopener\">\ud655\uc815\uc801\uc73c\ub85c null \uac00\ub2a5\ud558\uc9c0 \uc54a\uc740 \ud0c0\uc785<\/a><\/li>\n<\/ul>\n<h2 id=\"kotlin-jvm\"><span id=\"KotlinJVM\" class=\"ez-toc-section\"><\/span>Kotlin\/JVM<\/h2>\n<ul>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1620.html#new-jvmdefaultwithcompatibility-annotation-for-interfaces\" target=\"_blank\" rel=\"noopener\">\uc778\ud130\ud398\uc774\uc2a4\uc6a9 \uc2e0\uaddc <code>@JvmDefaultWithCompatibility<\/code> \uc5b4\ub178\ud14c\uc774\uc158<\/a><\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1620.html#compatibility-changes-in-the-xjvm-default-modes\" target=\"_blank\" rel=\"noopener\"><code>-Xjvm-default`<\/code> \ubaa8\ub4dc\uc758 \ud638\ud658\uc131 \ubcc0\uacbd<\/a><\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1620.html#support-for-parallel-compilation-of-a-single-module-in-the-jvm-backend\" target=\"_blank\" rel=\"noopener\">JVM IR \ubc31\uc5d4\ub4dc\uc5d0\uc11c \ud558\ub098\uc758 \ubaa8\ub4c8\uc5d0 \ub300\ud55c \ubcd1\ub82c \ucef4\ud30c\uc77c \uc9c0\uc6d0<\/a><\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1620.html#support-for-callable-references-to-function-interface-constructors\" target=\"_blank\" rel=\"noopener\">\ud568\uc218 \uc778\ud130\ud398\uc774\uc2a4 \uc0dd\uc131\uc790\uc5d0 \ub300\ud55c \ud638\ucd9c \uac00\ub2a5\ud55c \ucc38\uc870 \uc9c0\uc6d0<\/a><\/li>\n<\/ul>\n<h2 id=\"kotlin-native\"><span id=\"KotlinNative\" class=\"ez-toc-section\"><\/span>Kotlin\/Native<\/h2>\n<ul>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1620.html#an-update-on-the-new-memory-manager\" target=\"_blank\" rel=\"noopener\">\uc2e0\uaddc \uba54\ubaa8\ub9ac \uad00\ub9ac\uc790 \uc5c5\ub370\uc774\ud2b8<\/a><\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1620.html#concurrent-implementation-for-the-sweep-phase-in-new-memory-manager\" target=\"_blank\" rel=\"noopener\">\uc0c8\ub85c\uc6b4 \uba54\ubaa8\ub9ac \uad00\ub9ac\uc790\ub85c Sweep Phase\uc5d0\uc11c \ub3d9\uc2dc \uad6c\ud604<\/a><\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1620.html#instantiation-of-annotation-classes\" target=\"_blank\" rel=\"noopener\">\uc5b4\ub178\ud14c\uc774\uc158 \ud074\ub798\uc2a4\uc758 \uc778\uc2a4\ud134\uc2a4\ud654<\/a><\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1620.html#interop-with-swift-async-await-returning-void-instead-of-kotlinunit\" target=\"_blank\" rel=\"noopener\">Swift async\/await\uacfc \uc0c1\ud638 \uc6b4\uc6a9: <code>KotlinUnit<\/code> \ub300\uc2e0 <code>Void&lt;0&gt; \ubc18\ud658<\/code><\/a><\/li>\n<li><code><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1620.html#better-stack-traces-with-libbacktrace\" target=\"_blank\" rel=\"noopener\"><code>libbacktrace<\/code>\uc73c\ub85c \uac1c\uc120\ub41c \uc2a4\ud0dd \ucd94\uc801<\/a><\/code><\/li>\n<li><code><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1620.html#support-for-standalone-android-executables\" target=\"_blank\" rel=\"noopener\">\ub2e8\ub3c5\ud615 Android \uc2e4\ud589 \ud30c\uc77c \uc9c0\uc6d0<\/a><\/code><\/li>\n<li><code><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1620.html#performance-improvements\" target=\"_blank\" rel=\"noopener\">\uc131\ub2a5 \uac1c\uc120 \uc0ac\ud56d<\/a><\/code><\/li>\n<li><code><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1620.html#improved-error-handling-during-cinterop-modules-import\" target=\"_blank\" rel=\"noopener\">Cinterop \ubaa8\ub4c8\uc744 \uac00\uc838\uc62c \ub54c \uac1c\uc120\ub41c \uc624\ub958 \ucc98\ub9ac<\/a><\/code><\/li>\n<li><code><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1620.html#support-for-xcode-13-libraries\" target=\"_blank\" rel=\"noopener\">Xcode 13 \ub77c\uc774\ube0c\ub7ec\ub9ac \uc9c0\uc6d0<\/a><\/code><\/li>\n<\/ul>\n<h2 id=\"kotlin-multiplatform\"><span id=\"Kotlin_Multiplatform\" class=\"ez-toc-section\"><\/span>Kotlin \uba40\ud2f0\ud50c\ub7ab\ud3fc<\/h2>\n<ul>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1620.html#hierarchical-structure-support-for-multiplatform-projects\" target=\"_blank\" rel=\"noopener\">\uba40\ud2f0\ud50c\ub7ab\ud3fc \ud504\ub85c\uc81d\ud2b8\uc5d0\uc11c \uacc4\uce35\uc801 \uad6c\uc870 \uc9c0\uc6d0<\/a><\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1620.html#kotlin-cocoapods-gradle-plugin\" target=\"_blank\" rel=\"noopener\">Kotlin CocoaPods Gradle \ud50c\ub7ec\uadf8\uc778 \uc5c5\ub370\uc774\ud2b8<\/a><\/li>\n<\/ul>\n<h2 id=\"kotlin-js\"><span id=\"KotlinJS\" class=\"ez-toc-section\"><\/span>Kotlin\/JS<\/h2>\n<ul>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1620.html#incremental-compilation-for-development-binaries-with-ir-compiler\" target=\"_blank\" rel=\"noopener\">IR \ucef4\ud30c\uc77c\ub7ec\ub97c \uc0ac\uc6a9\ud558\ub294 \uac1c\ubc1c \ubc14\uc774\ub108\ub9ac\uc5d0\uc11c \uc99d\ubd84 \ucef4\ud30c\uc77c \uc9c0\uc6d0<\/a><\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1620.html#lazy-initialization-of-top-level-properties-by-default-with-ir-compiler\" target=\"_blank\" rel=\"noopener\">IR \ucef4\ud30c\uc77c\ub7ec\uc5d0\uc11c \ucd5c\uc0c1\uc704 \ud504\ub85c\ud37c\ud2f0\ub97c \uae30\ubcf8\uc801\uc73c\ub85c \uc9c0\uc5f0 \ucd08\uae30\ud654<\/a><\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1620.html#separate-js-files-for-project-modules-by-default-with-ir-compiler\" target=\"_blank\" rel=\"noopener\">IR \ucef4\ud30c\uc77c\ub7ec\ub85c \ud504\ub85c\uc81d\ud2b8 \ubaa8\ub4c8\uc6a9 JS \ud30c\uc77c\uc744 \uae30\ubcf8\uc801\uc73c\ub85c \ubd84\ub9ac<\/a><\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1620.html#char-class-optimization\" target=\"_blank\" rel=\"noopener\"><code>Char<\/code> \ud074\ub798\uc2a4 \ucd5c\uc801\ud654<\/a><\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1620.html#improvements-to-export-and-typescript-declaration-generation\" target=\"_blank\" rel=\"noopener\">\ub0b4\ubcf4\ub0b4\uae30 \ubc0f TypeScript \uc120\uc5b8 \uc0dd\uc131 \uac1c\uc120<\/a><\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1620.html#aftertest-guarantees-for-asynchronous-tests\" target=\"_blank\" rel=\"noopener\">\ube44\ub3d9\uae30 \ud14c\uc2a4\ud2b8\uc758 <code>@AfterTest<\/code> \ubcf4\uc99d<\/a><\/li>\n<\/ul>\n<h2 id=\"security\"><span id=\"Security\" class=\"ez-toc-section\"><\/span>\ubcf4\uc548<\/h2>\n<ul>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1620.html#using-relative-paths-in-klibs\" target=\"_blank\" rel=\"noopener\">klibs\uc5d0\uc11c \uc0c1\ub300 \uacbd\ub85c \uc0ac\uc6a9<\/a><\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1620.html#persisting-yarn-lock-for-kotlin-js-gradle-projects\" target=\"_blank\" rel=\"noopener\">Kotlin\/JS Gradle \ud504\ub85c\uc81d\ud2b8\uc5d0\uc11c \uc9c0\uc18d\ud558\ub294 <code>yarn.lock<\/code><\/a><\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1620.html#installation-of-npm-dependencies-with-ignore-scripts-by-default\" target=\"_blank\" rel=\"noopener\">\uae30\ubcf8\uc801\uc73c\ub85c <code>--ignore-scripts<\/code>\uc744 \uc0ac\uc6a9\ud558\uc5ec npm \uc885\uc18d\uc131 \uc124\uce58<\/a><\/li>\n<\/ul>\n<h2 id=\"gradle\"><span id=\"Gradle%EF%BB%BF\" class=\"ez-toc-section\"><\/span>Gradle<\/h2>\n<ul>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1620.html#properties-for-defining-kotlin-compiler-execution-strategy\" target=\"_blank\" rel=\"noopener\">Kotlin \ucef4\ud30c\uc77c\ub7ec \uc2e4\ud589 \uc804\ub7b5 \uc815\uc758\ub97c \uc704\ud55c \ud504\ub85c\ud37c\ud2f0<\/a><\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1620.html#deprecation-of-build-options-for-kapt-and-coroutines\" target=\"_blank\" rel=\"noopener\">kapt \ubc0f \ucf54\ub8e8\ud2f4\uc758 \ube4c\ub4dc \uc635\uc158 \uc911\ub2e8<\/a><\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1620.html#removal-of-the-kotlin-parallel-tasks-in-project-build-option\" target=\"_blank\" rel=\"noopener\"><code>kotlin.parallel.tasks.in.project<\/code> \ube4c\ub4dc \uc635\uc158 \uc81c\uac70<\/a><\/li>\n<\/ul>\n<h1 id=\"how-to-install\"><span id=\"How_to_install_Kotlin_1620\" class=\"ez-toc-section\"><\/span>Kotlin 1.6.20 \uc124\uce58 \ubc29\ubc95<\/h1>\n<p>\uc774\ubbf8 <a href=\"https:\/\/www.jetbrains.com\/idea\/download\/\" target=\"_blank\" rel=\"noopener\">IntelliJ IDEA<\/a> \ub610\ub294 <a href=\"https:\/\/developer.android.com\/studio\" target=\"_blank\" rel=\"noopener\">Android Studio<\/a>\ub97c \uc0ac\uc6a9\ud558\uace0 \uc788\ub294 \uacbd\uc6b0 IDE\uc5d0\uc11c \uc790\ub3d9\uc73c\ub85c Kotlin\uc744 1.6.20\uc73c\ub85c \uc5c5\ub370\uc774\ud2b8\ud560 \uac83\uc744 \uc81c\uc548\ud569\ub2c8\ub2e4. \ub610\ud55c <a href=\"https:\/\/kotlinlang.org\/docs\/releases.html#update-to-a-new-release\" target=\"_blank\" rel=\"noopener\">\uc774 \uc9c0\uce68<\/a>\uc744 \ub530\ub77c \uc9c1\uc811 \uc5c5\ub370\uc774\ud2b8\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.&nbsp;<\/p>\n<p>\ub2e4\uc74c IDE\uc758 \ucd5c\uc2e0 \ubc84\uc804\uc744 \ub2e4\uc6b4\ub85c\ub4dc\ud558\uc5ec \uad11\ubc94\uc704\ud55c Kotlin \uc9c0\uc6d0\uc744 \ubc1b\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<ul>\n<li><a href=\"https:\/\/www.jetbrains.com\/idea\/download\/\" target=\"_blank\" rel=\"noopener\">IntelliJ IDEA<\/a> \u2013 \ub2e4\uc591\ud55c \ud50c\ub7ab\ud3fc \uc6a9 Kotlin \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uac1c\ubc1c\uc744 \uc9c0\uc6d0<\/li>\n<li><a href=\"https:\/\/developer.android.com\/studio\" target=\"_blank\" rel=\"noopener\">Android Studio<\/a> \u2013&nbsp; Android \ubc0f \ud06c\ub85c\uc2a4 \ud50c\ub7ab\ud3fc \ubaa8\ubc14\uc77c \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uac1c\ubc1c \uc9c0\uc6d0<\/li>\n<\/ul>\n<p>\ub610\ud55c kotlinx \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c <a href=\"https:\/\/kotlinlang.org\/releases.html#release-details\" target=\"_blank\" rel=\"noopener\">\ud638\ud658\ub418\ub294 \ubc84\uc804<\/a>\uc73c\ub85c \uc5c5\ub370\uc774\ud2b8\ud558\uace0 \uae30\uc874 \ud504\ub85c\uc81d\ud2b8\uc758 \ube4c\ub4dc \uc2a4\ud06c\ub9bd\ud2b8\uc5d0 Kotlin \ubc84\uc804 1.6.20\uc744 \uc9c0\uc815\ud588\ub294\uc9c0 \ud655\uc778\ud558\uc138\uc694.<\/p>\n<p>\uba85\ub839\uc904 \ucef4\ud30c\uc77c\ub7ec\uac00 \ud544\uc694\ud55c \uacbd\uc6b0, <a href=\"https:\/\/github.com\/JetBrains\/kotlin\/releases\/tag\/v1.6.20\" target=\"_blank\" rel=\"noopener\">Github \ub9b4\ub9ac\uc2a4 \ud398\uc774\uc9c0<\/a>\uc5d0\uc11c \ub2e4\uc6b4\ub85c\ub4dc\ud558\uc138\uc694.<\/p>\n<h3 id=\"if-you-run-into-any-problems\"><span id=\"If_you_run_into_any_problems\" class=\"ez-toc-section\"><\/span>\ubb38\uc81c\uac00 \ubc1c\uc0dd\ud55c \uacbd\uc6b0<\/h3>\n<ul>\n<li><a href=\"http:\/\/kotlinlang.slack.com\/\" target=\"_blank\" rel=\"noopener\">Slack<\/a>(<a href=\"https:\/\/surveys.jetbrains.com\/s3\/kotlin-slack-sign-up\" target=\"_blank\" rel=\"noopener\">\ucd08\ub300 \ubc1b\uae30<\/a>)\uc5d0\uc11c \ub3c4\uc6c0\ub9d0\uc744 \ucc3e\uc544\ubcf4\uc138\uc694.<\/li>\n<li>JetBrains \uc774\uc288 \ud2b8\ub798\ucee4\uc778 <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT\" target=\"_blank\" rel=\"noopener\">YouTrack<\/a>\uc5d0 \ubcf4\uace0\ud574 \uc8fc\uc138\uc694.<\/li>\n<\/ul>\n<div style=\"background-color: #f1f6fe; margin-bottom: 2px; padding: 5px; margin-right: 0%; text-align: left; min-height: px;\">\n<p>\ucd5c\uc2e0 Kotlin \uae30\ub2a5\uc5d0 \ub300\ud55c \ucd5c\uc2e0 \uc815\ubcf4\ub97c \ubc1b\uc544\ubcf4\uc138\uc694! \uc774 \uac8c\uc2dc\ubb3c\uc758 \uc624\ub978\ucabd\uc5d0 \uc788\ub294 \uc591\uc2dd\uc744 \uc791\uc131\ud558\uc2dc\uba74 Kotlin \uc5c5\ub370\uc774\ud2b8\ub97c \ubc1b\uc544\ubcf4\uc2e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<h1 id=\"what-else-to-read-and-watch\"><span id=\"What_else_to_read_and_watch\" class=\"ez-toc-section\"><\/span>\uae30\ud0c0 \uc720\uc6a9\ud55c \uae00\uacfc \uc601\uc0c1<\/h1>\n<ul>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/roadmap.html\" target=\"_blank\" rel=\"noopener\">Kotlin \ub85c\ub4dc\ub9f5<\/a><\/li>\n<li><a class=\"ek-link\" href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1620.html\" target=\"_blank\" rel=\"noopener\">Kotlin 1.6.20\uc758 \uc0c8\ub85c\uc6b4 \uae30\ub2a5 \ubb38\uc11c<\/a><\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/compatibility-guide-16.html\" target=\"_blank\" rel=\"noopener\">Kotlin 1.6\uc758 \ud638\ud658\uc131 \uac00\uc774\ub4dc<\/a><\/li>\n<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/08\/kotlin-1-6-0-is-released\/\">Kotlin 1.6.0 \ucd9c\uc2dc!<\/a><\/li>\n<\/ul>\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\n\n\n<p><\/p>\n","protected":false},"author":964,"featured_media":237311,"comment_status":"closed","ping_status":"closed","template":"","categories":[907],"tags":[],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/kotlin\/240612"}],"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=240612"}],"version-history":[{"count":8,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/kotlin\/240612\/revisions"}],"predecessor-version":[{"id":633017,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/kotlin\/240612\/revisions\/633017"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/media\/237311"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/media?parent=240612"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/categories?post=240612"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/tags?post=240612"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/cross-post-tag?post=240612"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}