{"id":263652,"date":"2022-07-11T14:05:28","date_gmt":"2022-07-11T13:05:28","guid":{"rendered":"https:\/\/blog.jetbrains.com\/kotlin\/2022\/06\/introducing-kotlin-build-reports\/"},"modified":"2022-07-11T14:05:31","modified_gmt":"2022-07-11T13:05:31","slug":"introducing-kotlin-build-reports","status":"publish","type":"kotlin","link":"https:\/\/blog.jetbrains.com\/ko\/kotlin\/2022\/07\/introducing-kotlin-build-reports\/","title":{"rendered":"Kotlin \ube4c\ub4dc \ubcf4\uace0\uc11c\ub97c \uc18c\uac1c\ud569\ub2c8\ub2e4"},"content":{"rendered":"<p>Kotlin 1.7.0\ubd80\ud130 Kotlin \ucef4\ud30c\uc77c\ub7ec \uc791\uc5c5\uc5d0 \ub300\ud55c <strong>\ube4c\ub4dc \ubcf4\uace0\uc11c<\/strong>\ub97c \ub9cc\ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ubcf4\uace0\uc11c\uc5d0\ub294 \ub2e4\uc591\ud55c \ucef4\ud30c\uc77c \ub2e8\uacc4\uc758 \uc2dc\uac04\uacfc \uc99d\ubd84 \ucef4\ud30c\uc77c\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc5c6\ub294 \uc774\uc720\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uae30\ub2a5\uc740 \uc544\uc9c1 <a href=\"https:\/\/kotlinlang.org\/docs\/components-stability.html#stability-levels-explained\" target=\"_blank\" rel=\"noopener\">\uc2e4\ud5d8\uc801<\/a>\uc774\ubbc0\ub85c \uba54\ud2b8\ub9ad \ud56d\ubaa9\uc740 \ubcc0\uacbd\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p align=\"center\"><a class=\"ek-link jb-download-button\" title=\"\ube4c\ub4dc \ubcf4\uace0\uc11c \uccb4\ud5d8\ud558\uae30\" href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/06\/introducing-kotlin-build-reports\/#enable_build_reports\">\ube4c\ub4dc \ubcf4\uace0\uc11c \uc0ac\uc6a9\ud574\ubcf4\uae30<\/a><\/p>\n<p>\ube4c\ub4dc \ubcf4\uace0\uc11c\ub294 \ucef4\ud30c\uc77c\ub7ec \uc791\uc5c5\uacfc \uad00\ub828\ub41c \ubb38\uc81c\ub97c \uc870\uc0ac\ud558\ub824\ub294 \uacbd\uc6b0\uc5d0 \uc720\uc6a9\ud569\ub2c8\ub2e4. Gradle \ube4c\ub4dc\uc5d0 \ub108\ubb34 \ub9ce\uc740 \uc2dc\uac04\uc774 \uac78\ub9ac\uace0 \uc131\ub2a5 \uc800\ud558\uc758 \uadfc\ubcf8 \uc6d0\uc778\uc744 \uc774\ud574\ud558\uae30\uac00 \ub9e4\uc6b0 \uc5b4\ub824\uc6b4 \uacbd\uc6b0\ub97c \uc608\ub85c \ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub610 \ub2e4\ub978 \uc608\ub85c \ub3d9\uc77c\ud55c \ud504\ub85c\uc81d\ud2b8\uc758 \ucef4\ud30c\uc77c \uc2dc\uac04\uc774 \ub2e4\ub978 \uacbd\uc6b0\ub97c \ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc5b4\ub5a4 \ub54c\ub294 \uba87 \ucd08, \uc5b4\ub5a4 \ub54c\ub294 \uba87 \ubd84\uc774 \uac78\ub9ac\ub294 \uacbd\uc6b0\uc774\uc8e0.<\/p>\n<p>Kotlin \ube4c\ub4dc \ubcf4\uace0\uc11c\ub294 <a href=\"https:\/\/scans.gradle.com\/\" target=\"_blank\" rel=\"noopener\">Gradle \ube4c\ub4dc \uc2a4\uce94<\/a>\ubcf4\ub2e4 \ub354 \ud6a8\uc728\uc801\uc73c\ub85c \ubb38\uc81c\ub97c \uac80\uc0ac\ud558\ub3c4\ub85d \ub3c4\uc640\uc90d\ub2c8\ub2e4. \ub9ce\uc740 \uc5d4\uc9c0\ub2c8\uc5b4\ub4e4\uc774 Gradle \uc2a4\uce94\uc744 \uc0ac\uc6a9\ud558\uc5ec \ube4c\ub4dc \uc131\ub2a5\uc744 \uc870\uc0ac\ud558\uc9c0\ub9cc \uac00\uc7a5 \uc138\ubd84\ud654\ub41c \uac80\uc0ac \ub2e8\uc704\ub294 \ub2e8\uc77c Gradle \uc791\uc5c5\uc785\ub2c8\ub2e4.<\/p>\n<h2 id=\"enable_build_reports\">\ube4c\ub4dc \ubcf4\uace0\uc11c\ub97c \uc774\uc6a9\ud558\ub294 \ubc29\ubc95<\/h2>\n<p>\ube4c\ub4dc \ubcf4\uace0\uc11c\ub97c \uc0ac\uc6a9\ud558\ub824\uba74 \ube4c\ub4dc \ubcf4\uace0\uc11c\ub97c \uc800\uc7a5\ud560 <code>gradle.properties&nbsp;<\/code>\uc758 \ucd9c\ub825 \uc704\uce58\ub97c \uc120\uc5b8\ud558\uc138\uc694.<\/p>\n<p><code>kotlin.build.report.output=file<\/code><\/p>\n<p>\ub2e4\uc74c \uac12(\ubc0f \uadf8 \uc870\ud569)\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<ul>\n<li><code>file<\/code>\uc740 \ube4c\ub4dc \ubcf4\uace0\uc11c\ub97c \ub85c\uceec \ud30c\uc77c\uc5d0 \uc800\uc7a5\ud569\ub2c8\ub2e4. \uc774 \uc704\uce58\ub294 \uae30\ubcf8\uc801\uc73c\ub85c <code>${project_folder}\/build\/reports\/kotlin-build\/${project_name}-timestamp.txt<\/code>\uc785\ub2c8\ub2e4.<\/li>\n<li><code>build_scan<\/code>\uc740 \ube4c\ub4dc \uc2a4\uce94\uc758 \uc0ac\uc6a9\uc790 \uc9c0\uc815 \uac12 \uc139\uc158\uc5d0 \ube4c\ub4dc \ubcf4\uace0\uc11c\ub97c \uc800\uc7a5\ud569\ub2c8\ub2e4. Gradle Enterprise \ud50c\ub7ec\uadf8\uc778\uc740 \uc0ac\uc6a9\uc790 \uc9c0\uc815 \uac12\uc758 \uc218\uc640 \uae38\uc774\ub97c \uc81c\ud55c\ud569\ub2c8\ub2e4. \uc774\ub85c \uc778\ud574 \ub300\uaddc\ubaa8 \ud504\ub85c\uc81d\ud2b8\ub97c \ucc98\ub9ac\ud560 \ub54c \uc77c\ubd80 \uac12\uc774 \uc190\uc2e4\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ul>\n<ul>\n<li><code>http<\/code>\ub294 HTTP \uc694\uccad\uc744 \uc0ac\uc6a9\ud558\uc5ec \ube4c\ub4dc \ubcf4\uace0\uc11c\ub97c \uac8c\uc2dc\ud569\ub2c8\ub2e4. POST \uba54\uc11c\ub4dc\ub294 \uba54\ud2b8\ub9ad\uc744 JSON \ud615\uc2dd\uc73c\ub85c \ubcf4\ub0c5\ub2c8\ub2e4. \ub370\uc774\ud130\ub294 \ubc84\uc804\ub9c8\ub2e4 \ub2e4\ub97c \uc218 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/github.com\/JetBrains\/kotlin\/blob\/master\/libraries\/tools\/kotlin-gradle-plugin\/src\/common\/kotlin\/org\/jetbrains\/kotlin\/gradle\/plugin\/statistics\/CompileStatisticsData.kt\" target=\"_blank\" rel=\"noopener\">Kotlin \uc800\uc7a5\uc18c<\/a>\uc5d0\uc11c \uc804\uc1a1\ub41c \ub370\uc774\ud130\uc758 \ud604\uc7ac \ubc84\uc804\uc744 \ud655\uc778\ud558\uc138\uc694.<\/li>\n<\/ul>\n<p>HTTP \uc5d4\ub4dc\ud3ec\uc778\ud2b8\uac00 \uc5c6\ub294 \uacbd\uc6b0 \uc544\ub798 \uc0d8\ud50c \uc911 \ud558\ub098\ub97c \uc0ac\uc6a9\ud558\uc138\uc694.<\/p>\n<ol>\n<li><strong>ELK \uc2a4\ud0dd\uc744 \uae30\ubc18\uc73c\ub85c \ud558\ub294 HTTP \uc5d4\ub4dc\ud3ec\uc778\ud2b8. <\/strong><a href=\"https:\/\/www.elastic.co\/elastic-stack\/\" target=\"_blank\" rel=\"noopener\">Elasticsearch<\/a> \uc778\uc2a4\ud134\uc2a4\ub97c \uc124\uce58\ud558\uace0 Logstash\uc5d0 \ub300\ud574 \ub2e4\uc74c \uad6c\uc131\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<\/li>\n<\/ol>\n\n\n<pre class=\"kotlin-code\" data-highlight-only=\"true\" theme=\"idea\" indent=\"4\" style=\"visibility: hidden; padding: 36px 0;\">\ninput { \n    http {}\n}\nfilter {\n   date {\n        match =&gt; [ &quot;timestamp&quot;, &quot;yyyy-MM-dd&#039;T&#039;HH:mm:ss&quot; ]\n        timezone =&gt; &quot;UTC&quot;\n        target =&gt; &quot;@timestamp&quot;\n    }\n    mutate { remove_field =&gt; [ &quot;http&quot;, &quot;url&quot; ] }\n}\noutput {\n    elasticsearch {\n        index =&gt; &quot;kotlin_reports&quot;\n    }\n}\n<\/pre>\n\n\n<ol start=\"2\">\n<li><strong>Kotlin \uae30\ubc18<\/strong><a href=\"https:\/\/github.com\/ausatiy\/kotlin-build-report-sample\" target=\"_blank\" rel=\"noopener\"> <strong>HTTP \uc5d4\ub4dc\ud3ec\uc778\ud2b8<\/strong><\/a>. CSV \ud30c\uc77c\ub85c \ub2e4\uc2dc \ucef4\ud30c\uc77c\ud55c \uacbd\uc6b0, \ucef4\ud30c\uc77c \uc2dc\uac04 \ubc0f \ube44\uc99d\ubd84 \ucef4\ud30c\uc77c \uc774\uc720\uc5d0 \ub300\ud55c \uc815\ubcf4\ub97c \uc800\uc7a5\ud569\ub2c8\ub2e4.<\/li>\n<\/ol>\n<p>&nbsp;\ube4c\ub4dc \ubcf4\uace0\uc11c\ub97c \ucd94\uac00\ub85c \uc124\uc815\ud558\ub824\uba74 <code>gradle.properties<\/code>\uc5d0 \ub300\ud574 \ub2e4\uc74c \uc635\uc158\uc744 \uc0ac\uc6a9\ud558\uc138\uc694.<\/p>\n\n\n<pre class=\"kotlin-code\" data-highlight-only=\"true\" theme=\"idea\" indent=\"4\" style=\"visibility: hidden; padding: 36px 0;\">\n# \ud544\uc694\ud55c \ucd9c\ub825. \ubaa8\ub4e0 \uc870\ud569\uc774 \ud5c8\uc6a9\ub429\ub2c8\ub2e4.\nkotlin.build.report.output=file,http,build_scan\n\n# \uc120\ud0dd \uc0ac\ud56d. \ud30c\uc77c \uae30\ubc18 \ubcf4\uace0\uc11c\uc758 \ucd9c\ub825 \ub514\ub809\ud130\ub9ac\uc785\ub2c8\ub2e4. \uae30\ubcf8 \uc124\uc815: build\/reports\/kotlin-build\/\nkotlin.build.report.file.output_dir=kotlin-reports\n\n# http \ucd9c\ub825\uc774 \uc0ac\uc6a9\ub418\ub294 \uacbd\uc6b0 \ud544\uc218\uc785\ub2c8\ub2e4. HTTP(S) \uae30\ubc18 \ubcf4\uace0\uc11c\ub97c \uac8c\uc2dc\ud560 \uc704\uce58\nkotlin.build.report.http.url=http:\/\/127.0.0.1:8080\n\n# \uc120\ud0dd \uc0ac\ud56d. HTTP \uc5d4\ub4dc\ud3ec\uc778\ud2b8\uc5d0 \uc778\uc99d\uc774 \ud544\uc694\ud55c \uacbd\uc6b0 \uc0ac\uc6a9\uc790 \ubc0f \uc554\ud638\nkotlin.build.report.http.user=someUser\nkotlin.build.report.http.password=somePassword\n\n# \uc120\ud0dd \uc0ac\ud56d. \ube4c\ub4dc \ubcf4\uace0\uc11c\ub97c \ud45c\uc2dc\ud558\uae30 \uc704\ud55c \ub808\uc774\ube14(\uc608: \ub514\ubc84\uadf8 \ub9e4\uac1c\ubcc0\uc218)\nkotlin.build.report.label=some_label\n<\/pre>\n\n\n<h2>\ube4c\ub4dc \ubcf4\uace0\uc11c\ub97c \uc77d\ub294 \ubc29\ubc95<\/h2>\n<p>\ucd5c\uc801\ud654 \ud504\ub85c\uc138\uc2a4\ub294 \ub9e4\uc6b0 \ucc3d\uc758\uc801\uc785\ub2c8\ub2e4. \uc644\uacb0\ub41c \ud574\uacb0\ubc95\uc744 \uc81c\uacf5\ud558\uae30 \uc5b4\ub824\uc6b4 \uacbd\uc6b0\uac00 \ub9ce\uc73c\uba70 \uac01 \uc0ac\ub840\ub97c \uac1c\ubcc4\uc801\uc73c\ub85c \uac80\ud1a0\ud574\uc57c \ud569\ub2c8\ub2e4. \uadf8\ub7ec\ub098 \ub2e4\uc74c \ud30c\uc774\ud504\ub77c\uc778\uc744 \uc0ac\uc6a9\ud558\uba74 \uc88b\uc740 \uacb0\uacfc\ub97c \uc5bb\uc744 \uc218 \uc788\ub294 \uacbd\uc6b0\uac00 \ub9ce\uc2b5\ub2c8\ub2e4.<\/p>\n<p>1. \ube4c\ub4dc\uac00 \uc810\uc9c4\uc801\uc774\uc9c0 \uc54a\uc740 \uc774\uc720\ub97c \uc774\ud574\ud558\uace0 \uadfc\ubcf8\uc801\uc778 \ubb38\uc81c\ub97c \uc218\uc815\ud569\ub2c8\ub2e4.<\/p>\n<p>2. \uc99d\ubd84 \ucef4\ud30c\uc77c\uc5d0 \uc2dc\uac04\uc774 \ub108\ubb34 \ub9ce\uc774 \uac78\ub9ac\ub294 \uacbd\uc6b0 \uc18c\uc2a4 \ud30c\uc77c\uc744 \uc7ac\uad6c\uc131\ud558\ub294 \uac83\uc774 \uc88b\uc2b5\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \ubaa8\ub4e0 \ud074\ub798\uc2a4\ub97c \ud558\ub098\uc758 \ud30c\uc77c\uc5d0 \uc555\ucd95\ud558\uc9c0 \ub9d0\uace0, \ubaa8\ub4e0 \ucd5c\uc0c1\uc704 \ud568\uc218\ub97c \ud558\ub098\uc758 \ud30c\uc77c\uc5d0 \uc120\uc5b8\ud558\uc9c0 \ub9c8\uc138\uc694.<\/p>\n<p>\uc0dd\uc131\ub41c \ube4c\ub4dc \ubcf4\uace0\uc11c\ub97c \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4. \uc774 \uc791\uc5c5\uc744 \uc2e4\ud589\ud558\ub294 \ub370 \uac70\uc758 40\ucd08\uac00 \uac78\ub838\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n<pre class=\"kotlin-code\" data-highlight-only=\"true\" theme=\"idea\" indent=\"4\" style=\"visibility: hidden; padding: 36px 0;\">\nTask &#039;:kotlin-gradle-plugin:compileCommonKotlin&#039; finished in 39,73 s\nCompilation log for task &#039;:kotlin-gradle-plugin:compileCommonKotlin&#039;:\n  Non-incremental compilation will be performed: UNKNOWN_CHANGES_IN_GRADLE_INPUTS\nTime metrics:\n  Total Gradle task time: 39,73 s\n  Task action: 0,09 s\n    Calculate output size: 0,01 s\n    Run compilation: 39,32 s\n      Incremental compilation in daemon: 39,27 s\n        Update caches: 0,40 s\n        Sources compilation round: 38,57 s\n  Compiler initialization time: 1,02 s\n  Compiler code analysis: 26,36 s\n  Compiler code generation: 10,87 s\nSize metrics:\n  Total size of the cache directory: 6,2 MB\n    ABI snapshot size: 49 B\n  Total compiler iteration: 1\nBuild attributes:\n  REBUILD_REASON: Unknown Gradle changes\n<\/pre>\n\n\n<p>\ucd1d Gradle \uc791\uc5c5 \uc2dc\uac04\uc740 \uc791\uc5c5 \uc2e4\ud589\uc5d0\uc11c \ub9ac\uc2a4\ub108 \uc54c\ub9bc\uae4c\uc9c0\uc758 \uc2dc\uac04\uc744 \ubcf4\uc5ec\uc90d\ub2c8\ub2e4. \uc791\uc5c5 \uc561\uc158\uc740 Gradle \uc791\uc5c5\uc790\uc5d0\uc11c \ucef4\ud30c\uc77c \uc7a1\uc744 \uc608\uc57d\ud558\ub294 \uc791\uc5c5\ub9cc \ub098\ud0c0\ub0c5\ub2c8\ub2e4. \ucef4\ud30c\uc77c \uc790\uccb4\ub294 Gradle \uc791\uc5c5\uc790\uc5d0\uc11c \uc218\ud589\ub429\ub2c8\ub2e4. \ucef4\ud30c\uc77c \uc2e4\ud589 \uc139\uc158\uc5d0\uc11c \ucef4\ud30c\uc77c \uc2dc\uac04\uc744 \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>Gradle\uc774 \uc785\ub825 \uac04\uc758 \ucc28\uc774\ub97c \uacc4\uc0b0\ud560 \uc218 \uc5c6\uae30 \ub54c\ubb38\uc5d0 \uc774 \ubaa8\ub4c8\uc774 \ube44\uc99d\ubd84\uc801\uc73c\ub85c \ube4c\ub4dc\ub418\uc5c8\uc74c\uc744 \uc54c \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub294 \uc77c\ubc18\uc801\uc73c\ub85c \ud074\ub9b0 \ube4c\ub4dc\uc5d0\uc11c \ub610\ub294 \ube4c\ub4dc \uc2a4\ud06c\ub9bd\ud2b8\uac00 \uc77c\ubd80 \ubcc0\uacbd\ub41c \uacbd\uc6b0\uc5d0 \ubc1c\uc0dd\ud569\ub2c8\ub2e4. \uc99d\ubd84 \ucef4\ud30c\uc77c\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uae30 \ub54c\ubb38\uc5d0 \uac70\uc758 \ubaa8\ub4e0 \uc2dc\uac04\uc774 \ucf54\ub4dc \ubd84\uc11d\uc5d0 \uc18c\uc694\ub418\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ucef4\ud30c\uc77c\uc744 \uc99d\ubd84 \ucc98\ub9ac\ud560 \uc218 \uc5c6\ub294 \uac00\uc7a5 \uc77c\ubc18\uc801\uc778 \uc774\uc720\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<ul>\n<li><code>DEP_CHANGE_HISTORY_NO_KNOWN_BUILDS<\/code> \u2013 \uc885\uc18d \ubaa8\ub4c8 \uc911 \ud558\ub098\uac00 \uc774\uc804\uc5d0 \ucef4\ud30c\uc77c\ub418\uc9c0 \uc54a\uc558\uac70\ub098 \ud574\ub2f9 \uae30\ub85d \ud30c\uc77c\uc774 \ubcf4\uad00\ub418\uc5c8\uc74c\uc744 \uc758\ubbf8\ud569\ub2c8\ub2e4.<\/li>\n<li><code>DEP_CHANGE_HISTORY_IS_NOT_FOUND<\/code> \u2013&nbsp;\ubcc0\uacbd\ub41c \uc885\uc18d\uc131 \uc911 \ud558\ub098\uac00 \uc18c\uc2a4 \ubaa8\ub4c8 \ub610\ub294 \ube44 Kotlin \ubaa8\ub4c8\uc774 \uc544\ub2d8\uc744 \uc758\ubbf8\ud569\ub2c8\ub2e4.<\/li>\n<li><code>OUT_OF_PROCESS_EXECUTION, IN_PROCESS_EXECUTION<\/code> \u2013 Kotlin \ub370\ubaac\uc5d0\uc11c \uc99d\ubd84 \ucef4\ud30c\uc77c\uc744 \uc218\ud589\ud560 \uc218 \uc788\uc74c\uc744 \uc758\ubbf8\ud569\ub2c8\ub2e4. \ub2e4\ub978 \ubaa8\ub4dc\uc5d0\uc11c\ub294 \uac15\uc81c\ub85c \ube44\uc99d\ubd84 \ube4c\ub4dc\uac00 \uc2e4\ud589\ub429\ub2c8\ub2e4.<\/li>\n<\/ul>\n<p>Kotlin\uc758 \uc99d\ubd84 \ucef4\ud30c\uc77c\uc5d0 \ub300\ud55c \uc790\uc138\ud55c \ub0b4\uc6a9\uc740 \uc774\ud6c4 \uac8c\uc2dc\ubb3c\uc5d0\uc11c \ub2e4\ub8f0 \uc608\uc815\uc785\ub2c8\ub2e4. \ub2e4\uc74c \ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c\ub3c4 \uae30\ub300\ud574 \uc8fc\uc138\uc694!<\/p>\n<h2>JetBrains\uc5d0\uc11c \ube4c\ub4dc \ubcf4\uace0\uc11c\ub97c \uc0ac\uc6a9\ud558\ub294 \ubc29\ubc95<\/h2>\n<h3>\ucef4\ud30c\uc77c \uc2dc\uac04 \uac10\uc18c<\/h3>\n<p><a href=\"https:\/\/www.jetbrains.com\/space\/\" target=\"_blank\" rel=\"noopener\">Space<\/a> \ud504\ub85c\uc81d\ud2b8\uc5d0 \ub300\ud55c \uc774 \ube4c\ub4dc \ubcf4\uace0\uc11c\ub97c \uc0b4\ud3b4\ubcf4\uc138\uc694. \uc0dd\uc131\ub41c \ud070 \uc18c\uc2a4 \ud30c\uc77c\uc774 \uc788\ub294 \ubaa8\ub4c8\uc774 \uc788\uc5c8\uc2b5\ub2c8\ub2e4. \ucef4\ud30c\uc77c\uc740 \uc99d\ubd84\uc774\uc5c8\uc9c0\ub9cc \ubcc0\uacbd\uc774 \uc788\uc744 \ub54c\ub9c8\ub2e4 \uc5ec\uc804\ud788 Kotlin \ucef4\ud30c\uc77c\ub7ec\uac00 \ud070 \uc18c\uc2a4 \ud30c\uc77c\uc744 \ub2e4\uc2dc \ubd84\uc11d\ud574\uc57c \ud588\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n<pre class=\"kotlin-code\" data-highlight-only=\"true\" theme=\"idea\" indent=\"4\" style=\"visibility: hidden; padding: 36px 0;\">\nCompile iteration:\n    &lt;a large generated source file&gt;\nTime metrics:\n  Total Gradle task time: 108,98 s\n  Task action: 0,20 s\n    Backup output: 0,18 s\n    Connect to Kotlin daemon: 0,01 s\n    Calculate output size: 0,01 s\n    Run compilation: 108,23 s\n      Incremental compilation in daemon: 108,19 s\n        Calculate initial dirty sources set: 0,23 s\n          Analyze dependency changes: 0,03 s\n          Detect removed classes: 0,19 s\n        Update caches: 0,28 s\n        Sources compilation round: 107,49 s\n  Compiler initialization time: 0,12 s\n  Compiler code analysis: 80,26 s\n  Compiler code generation: 25,04 s\nSize metrics:\n  Total size of the cache directory: 3,2 MB\n    ABI snapshot size: 643 B\n  Total compiler iteration: 1\n<\/pre>\n\n\n<p>\uc774 \uacbd\uc6b0 \uc18c\uc2a4\ub97c \uc7ac\uad6c\uc131\ud558\ub294 \uac83\uc774 \uc88b\uc2b5\ub2c8\ub2e4. \uc989, \ud070 \ud30c\uc77c\uc744 \ubd84\ud560\ud558\uace0, \uc11c\ub85c \ub2e4\ub978 \ud30c\uc77c\uc5d0 \uac1c\ubcc4 \ud074\ub798\uc2a4\ub97c \ubc30\uce58\ud558\uace0, \ud070 \ud074\ub798\uc2a4\ub294 \ub9ac\ud329\ud130\ub9c1\ud558\uc138\uc694.<\/p>\n<h3>\uc131\ub2a5 \ud68c\uadc0 \ucd94\uc801<\/h3>\n<p>Kotlin \ud300\uc740 \ube4c\ub4dc \ubcf4\uace0\uc11c\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc5ec\ub7ec \ud504\ub85c\uc81d\ud2b8\uc758 \ucef4\ud30c\uc77c\uc744 \ucd94\uc801\ud569\ub2c8\ub2e4. \uc6b0\ub9ac\ub294 \uac1c\ubc1c\uc790\ub4e4\uc5d0\uac8c \ube4c\ub4dc \ubcf4\uace0\uc11c\uc5d0 \ub300\ud55c HTTP \uc5d4\ub4dc\ud3ec\uc778\ud2b8\uc744 \ud65c\uc131\ud654\ud558\uc5ec \uc804\uccb4 \ube4c\ub4dc \uc131\ub2a5\uc744 \ud55c \uacf3\uc5d0\uc11c \ubcfc \uc218 \uc788\uac8c \ud574\ub2ec\ub77c\uace0 \uc694\uccad\ud588\uc2b5\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4 Kotlin \ub610\ub294 Gradle \ubc84\uc804 \uc5c5\ub370\uc774\ud2b8 \ud6c4 \uc131\ub2a5 \ud68c\uadc0\ub97c \ube60\ub974\uac8c \ud655\uc778\ud558\uace0 \uc624\ub798 \uc2e4\ud589\ub418\ub294 \ucef4\ud30c\uc77c\uc744 \ucc3e\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-256585\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/07\/Kotlin-Build-Reports-KO_3.png\" alt=\"\" width=\"1920\" height=\"1080\"><\/figure>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-256640\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/07\/Kotlin-Build-Reports-KO_4.png\" alt=\"\" width=\"1920\" height=\"1080\"><\/figure>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-256629\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/07\/Kotlin-Build-Reports-KO_5.png\" alt=\"\" width=\"1920\" height=\"1080\"><\/figure>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-256618\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/07\/Kotlin-Build-Reports-KO_6.png\" alt=\"\" width=\"1920\" height=\"1080\"><\/figure>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-256607\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/07\/Kotlin-Build-Reports-KO_7.png\" alt=\"\" width=\"1920\" height=\"1080\"><\/figure>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-256596\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/07\/Kotlin-Build-Reports-KO_8.png\" alt=\"\" width=\"1920\" height=\"1080\"><\/figure>\n<h2>\uc758\uacac\uc744 \ub0a8\uaca8\uc8fc\uc138\uc694<\/h2>\n<p>\uc5ec\ub7ec\ubd84\uc758 \uc778\ud504\ub77c\uc5d0\uc11c \ube4c\ub4dc \ubcf4\uace0\uc11c\ub97c \uc0ac\uc6a9\ud574 \ubcf4\uc138\uc694. \uc758\uacac\uc774 \uc788\uac70\ub098 \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud558\uac70\ub098 \uac1c\uc120\uc744 \uc81c\uc548\ud558\uace0 \uc2f6\ub2e4\uba74 \uc8fc\uc800\ud558\uc9c0 \ub9d0\uace0 \uc774\uc288 <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT\" target=\"_blank\" rel=\"noopener\">\ud2b8\ub798\ucee4<\/a>\uc5d0 \ud574\ub2f9 \ub0b4\uc6a9\uc744 \uc54c\ub824\uc8fc\uc138\uc694. \uac10\uc0ac\ud569\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\n\n\n<p><\/p>\n","protected":false},"author":964,"featured_media":263674,"comment_status":"closed","ping_status":"closed","template":"","categories":[89],"tags":[],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/kotlin\/263652"}],"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=263652"}],"version-history":[{"count":9,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/kotlin\/263652\/revisions"}],"predecessor-version":[{"id":264073,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/kotlin\/263652\/revisions\/264073"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/media\/263674"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/media?parent=263652"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/categories?post=263652"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/tags?post=263652"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/cross-post-tag?post=263652"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}