{"id":1699,"date":"2026-05-29T16:11:51","date_gmt":"2026-05-29T16:11:51","guid":{"rendered":"https:\/\/wayhope.kro.kr\/?p=1699"},"modified":"2026-08-31T07:32:45","modified_gmt":"2026-08-31T07:32:45","slug":"kotlin-%ec%96%b8%ec%96%b4-%ed%95%b5%ec%8b%ac-%ec%a0%95%eb%a6%ac","status":"publish","type":"post","link":"https:\/\/wayhope.kro.kr\/?p=1699","title":{"rendered":"Kotlin \uc5b8\uc5b4 \ud575\uc2ec \uc815\ub9ac"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Kotlin\uc740 JVM\uc5d0\uc11c \uc2e4\ud589\ub418\ub294 \uc815\uc801 \ud0c0\uc785 \ud504\ub85c\uadf8\ub798\ubc0d \uc5b8\uc5b4\ub2e4. JetBrains\uc5d0\uc11c \uac1c\ubc1c\ud588\uc73c\uba70, Java\uc640 \ub192\uc740 \ud638\ud658\uc131\uc744 \uac00\uc9c0\uba74\uc11c\ub3c4 \ub354 \uac04\uacb0\ud55c \ubb38\ubc95\uacfc \ud604\ub300\uc801\uc778 \uc5b8\uc5b4 \uae30\ub2a5\uc744 \uc81c\uacf5\ud558\ub294 \uac83\uc744 \ubaa9\ud45c\ub85c \ub9cc\ub4e4\uc5b4\uc84c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud604\uc7ac Kotlin\uc740 Android \uac1c\ubc1c\uc5d0\uc11c \ub110\ub9ac \uc0ac\uc6a9\ub418\uace0 \uc788\uc73c\uba70, \uc11c\ubc84 \uac1c\ubc1c\uc5d0\uc11c\ub294 Spring\uacfc \ud568\uaed8 \uc0ac\uc6a9\ud560 \uc218\ub3c4 \uc788\ub2e4. JVM \uae30\ubc18\uc774\uae30 \ub54c\ubb38\uc5d0 \uae30\uc874 Java \ub77c\uc774\ube0c\ub7ec\ub9ac\uc640 \uc0dd\ud0dc\uacc4\ub97c \uadf8\ub300\ub85c \ud65c\uc6a9\ud560 \uc218 \uc788\ub2e4\ub294 \uac83\ub3c4 \ud070 \uc7a5\uc810\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin \ucf54\ub4dc\ub294 \uc77c\ubc18\uc801\uc73c\ub85c \ub2e4\uc74c\uacfc \uac19\uc740 \ud750\ub984\uc73c\ub85c \uc2e4\ud589\ub41c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Kotlin Source -&gt; Kotlin Compiler -&gt; JVM Bytecode -&gt; JVM -&gt; Machine Code\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Java\uc640 \ub9c8\ucc2c\uac00\uc9c0\ub85c Kotlin \uc790\uccb4\uc640 JVM\uc744 \uad6c\ubd84\ud574\uc11c \ubcf4\ub294 \uac83\uc774 \uc88b\ub2e4. Kotlin\uc740 \uc5b8\uc5b4\uc774\uace0 JVM\uc740 Kotlin \ucf54\ub4dc\ub97c \uc2e4\ud589\ud558\ub294 \ub7f0\ud0c0\uc784 \ud658\uacbd\uc774\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ubcc0\uc218 \uc120\uc5b8<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin\uc5d0\uc11c\ub294 <code>val<\/code>\uacfc <code>var<\/code>\ub85c \ubcc0\uc218\ub97c \uc120\uc5b8\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>val name = \"Player\"\nvar health = 100\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>val<\/code>\uc740 \uc7ac\ud560\ub2f9\ud560 \uc218 \uc5c6\ub294 \ubcc0\uc218\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>val score = 100\n\n\/\/ score = 200 \/\/ \uc624\ub958\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>var<\/code>\ub294 \uc7ac\ud560\ub2f9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var score = 100\n\nscore = 200\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin\uc5d0\uc11c\ub294 \ud0c0\uc785 \ucd94\ub860\uc744 \uc801\uadf9\uc801\uc73c\ub85c \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>val health = 100\nval speed = 3.5\nval name = \"Player\"\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud544\uc694\ud558\uba74 \ud0c0\uc785\uc744 \uba85\uc2dc\ud560 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>val health: Int = 100\nval name: String = \"Player\"\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>val<\/code>\uc740 C++\uc758 <code>const<\/code>, C#\uc758 <code>readonly<\/code>\uc640 \ube44\uc2b7\ud55c \ub290\ub08c\uc73c\ub85c \ubcfc \uc218 \uc788\uc9c0\ub9cc \uc644\uc804\ud788 \uac19\uc740 \uac1c\ub150\uc740 \uc544\ub2c8\ub2e4. \ud2b9\ud788 \uac1d\uccb4\ub97c <code>val<\/code>\ub85c \uc120\uc5b8\ud574\ub3c4 \uac1d\uccb4 \ub0b4\ubd80\uc758 \uac00\ubcc0 \uc0c1\ud0dc\uae4c\uc9c0 \ubd88\ubcc0\uc774 \ub418\ub294 \uac83\uc740 \uc544\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>val player = Player()\n\nplayer.health = 50\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ucc38\uc870 \uc790\uccb4\ub294 \ubc14\uafc0 \uc218 \uc5c6\uc9c0\ub9cc \uac1d\uccb4 \ub0b4\ubd80\uc758 <code>health<\/code>\ub294 \ubcc0\uacbd\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\uae30\ubcf8 \ud0c0\uc785<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin\uc5d0\ub294 \ub2e4\uc74c\uacfc \uac19\uc740 \uae30\ubcf8\uc801\uc778 \ud0c0\uc785\uc774 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Byte \/ Short \/ Int \/ Long \/ Float \/ Double \/ Boolean \/ Char \/ String\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\ub97c \ub4e4\uc5b4:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>val age: Int = 24\nval distance: Double = 100.5\nval alive: Boolean = true\nval grade: Char = 'A'\nval name: String = \"Player\"\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Java\uc640 \ub2ec\ub9ac Kotlin\uc758 \ud0c0\uc785 \uccb4\uacc4\uc5d0\uc11c\ub294 \uae30\ubcf8 \ud0c0\uc785\uc744 \uac1d\uccb4 \ud0c0\uc785\uacfc \ubcc4\uac1c\ub85c \uac1c\ubc1c\uc790\uac00 \uc9c1\uc811 \uad6c\ubd84\ud574\uc11c \uc0ac\uc6a9\ud560 \ud544\uc694\uac00 \uc801\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ucef4\ud30c\uc77c \uacfc\uc815\uc5d0\uc11c JVM\uc758 primitive type\uc73c\ub85c \ucd5c\uc801\ud654\ub420 \uc218 \uc788\uc9c0\ub9cc, Kotlin \ucf54\ub4dc\uc5d0\uc11c\ub294 <code>Int<\/code>, <code>Double<\/code> \uac19\uc740 \uc77c\uad00\ub41c \ud0c0\uc785 \ubaa8\ub378\uc744 \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud568\uc218<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin\uc758 \ud568\uc218 \uc120\uc5b8\uc740 \uc0c1\ub2f9\ud788 \uac04\uacb0\ud558\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>fun add(a: Int, b: Int): Int\n{\n    return a + b\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ubc18\ud658 \ud0c0\uc785\uc774 \uba85\ud655\ud55c \ub2e8\uc21c \ud568\uc218\ub294 \ud45c\ud604\uc2dd \ud615\ud0dc\ub85c \uc791\uc131\ud560 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>fun add(a: Int, b: Int) = a + b\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud568\uc218\uc758 \ud0c0\uc785\ub3c4 \ud45c\ud604\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>val add: (Int, Int) -&gt; Int = { a, b -&gt;\n    a + b\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud568\uc218\ub97c \ubcc0\uc218\uc5d0 \uc800\uc7a5\ud558\uac70\ub098 \ub2e4\ub978 \ud568\uc218\uc5d0 \uc804\ub2ec\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774 \ud2b9\uc131\uc740 Kotlin\uc758 \uceec\ub809\uc158 \ucc98\ub9ac, \ube44\ub3d9\uae30 \ucc98\ub9ac, DSL \ub4f1\uc758 \uae30\ubc18\uc774 \ub41c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud074\ub798\uc2a4<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin\uc758 \ud074\ub798\uc2a4\ub294 Java\ubcf4\ub2e4 \uc0c1\ub2f9\ud788 \uac04\uacb0\ud558\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Player\n{\n    var health: Int = 100\n\n    fun attack()\n    {\n        println(\"Attack\")\n    }\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uac1d\uccb4\ub97c \uc0dd\uc131\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>val player = Player()\n\nplayer.health = 50\nplayer.attack()\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Java\ucc98\ub7fc <code>new<\/code>\ub97c \uc0ac\uc6a9\ud560 \ud544\uc694\uac00 \uc5c6\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Java -&gt; new Player()\nKotlin -&gt; Player()\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\uc0dd\uc131\uc790<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin\uc5d0\uc11c\ub294 \uc8fc \uc0dd\uc131\uc790\ub97c \ud074\ub798\uc2a4 \uc120\uc5b8\ubd80\uc5d0 \ubc14\ub85c \uc791\uc131\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Player(\n    val name: String,\n    var health: Int\n)\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub807\uac8c \ud558\uba74 \uc0dd\uc131\uc790 \ub9e4\uac1c\ubcc0\uc218\uac00 \ud504\ub85c\ud37c\ud2f0\ub85c\ub3c4 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>val player = Player(\"Knight\", 100)\n\nprintln(player.name)\nprintln(player.health)\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Java\uc5d0\uc11c\ub294 \ubcf4\ud1b5 \ud544\ub4dc\uc640 \uc0dd\uc131\uc790, getter\/setter \ub4f1\uc744 \ub530\ub85c \uc791\uc131\ud574\uc57c \ud558\uc9c0\ub9cc Kotlin\uc5d0\uc11c\ub294 \uc774\ub97c \uc0c1\ub2f9 \ubd80\ubd84 \uc904\uc77c \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ucd94\uac00\uc801\uc778 \ucd08\uae30\ud654 \uc791\uc5c5\uc774 \ud544\uc694\ud558\uba74 <code>init<\/code> \ube14\ub85d\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Player(\n    val name: String,\n    var health: Int\n)\n{\n    init\n    {\n        println(\"Player created\")\n    }\n}\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud504\ub85c\ud37c\ud2f0<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin\uc5d0\uc11c\ub294 \ud544\ub4dc\uc640 getter\/setter\ub97c \uc9c1\uc811 \uad6c\ubd84\ud558\uae30\ubcf4\ub2e4 \ud504\ub85c\ud37c\ud2f0\ub77c\ub294 \uac1c\ub150\uc744 \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Player\n{\n    var health: Int = 100\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc0ac\uc6a9\ud560 \ub54c\ub294:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>player.health = 50\n\nprintln(player.health)\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud558\uc9c0\ub9cc \ub0b4\ubd80\uc801\uc73c\ub85c\ub294 JVM\uc5d0\uc11c getter\/setter \ud615\ud0dc\uc758 \uba54\uc11c\ub4dc\uac00 \uc0dd\uc131\ub420 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc9c1\uc811 getter\/setter\ub97c \uc81c\uc5b4\ud560 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Player\n{\n    var health: Int = 100\n        private set\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\uc81c \ud074\ub798\uc2a4 \uc678\ubd80\uc5d0\uc11c\ub294 \uac12\uc744 \uc77d\uc744 \uc218 \uc788\uc9c0\ub9cc \ubcc0\uacbd\ud560 \uc218 \uc5c6\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>println(player.health)\n\n\/\/ player.health = 50 \/\/ \uc624\ub958\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc0c1\ud0dc \ubcc0\uacbd\uc744 \ud074\ub798\uc2a4 \ub0b4\ubd80\uc5d0\uc11c\ub9cc \ud5c8\uc6a9\ud560 \ub54c \uc720\uc6a9\ud558\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Null Safety<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin\uc5d0\uc11c \uac00\uc7a5 \ub208\uc5d0 \ub744\ub294 \uae30\ub2a5 \uc911 \ud558\ub098\uac00 Null Safety\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Java\uc5d0\uc11c\ub294 \ub2e4\uc74c\uacfc \uac19\uc740 \ucf54\ub4dc\uac00 \ud754\ud558\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Player player = findPlayer();\n\nplayer.attack();\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>findPlayer()<\/code>\uac00 <code>null<\/code>\uc744 \ubc18\ud658\ud560 \uc218 \uc788\ub2e4\uba74 \ub7f0\ud0c0\uc784\uc5d0 <code>NullPointerException<\/code>\uc774 \ubc1c\uc0dd\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin\uc5d0\uc11c\ub294 nullable \ud0c0\uc785\uc744 \uba85\uc2dc\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var player: Player? = null\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>?<\/code>\uac00 \ubd99\uc740 \ud0c0\uc785\uc740 null\uc774 \ub420 \uc218 \uc788\ub2e4\ub294 \uc758\ubbf8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var player: Player? = null\n\nplayer = Player()\nplayer = null\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">nullable \uac1d\uccb4\uc758 \uba54\uc11c\ub4dc\ub97c \ubc14\ub85c \ud638\ucd9c\ud560 \uc218\ub294 \uc5c6\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ player.attack()\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub300\uc2e0 \uc548\uc804 \ud638\ucd9c \uc5f0\uc0b0\uc790\ub97c \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>player?.attack()\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uac12\uc774 null\uc774\uba74 \ud638\ucd9c\ud558\uc9c0 \uc54a\uace0 null\uc744 \ubc18\ud658\ud55c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Elvis \uc5f0\uc0b0\uc790<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">null\uc778 \uacbd\uc6b0 \uae30\ubcf8\uac12\uc744 \uc0ac\uc6a9\ud558\uace0 \uc2f6\ub2e4\uba74 <code>?:<\/code>\ub97c \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>val health = player?.health ?: 0\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc758\ubbf8\ub294 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>player\uac00 \uc874\uc7ac\ud55c\ub2e4 -&gt; health \uc0ac\uc6a9\nplayer\uac00 null\uc774\ub2e4 -&gt; 0 \uc0ac\uc6a9\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Java\uc5d0\uc11c null \uccb4\ud06c\ub97c \ubc18\ubcf5\ud574\uc11c \uc791\uc131\ud558\ub358 \ucf54\ub4dc\ub97c \uc0c1\ub2f9\ud788 \uac04\uacb0\ud558\uac8c \ub9cc\ub4e4 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Non-null Assertion<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\uc815\ub9d0 null\uc774 \uc544\ub2c8\ub77c\uace0 \ud655\uc2e0\ud558\ub294 \uacbd\uc6b0 <code>!!<\/code>\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>val player: Player? = findPlayer()\n\nplayer!!.attack()\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud558\uc9c0\ub9cc <code>!!<\/code>\ub294 nullable \ud0c0\uc785\uc744 \uac15\uc81c\ub85c non-null \ud0c0\uc785\ucc98\ub7fc \ucde8\uae09\ud558\ub294 \uac83\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc2e4\uc81c\ub85c null\uc774\uba74 \ub7f0\ud0c0\uc784 \uc608\uc678\uac00 \ubc1c\uc0dd\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub530\ub77c\uc11c Null Safety\ub97c \uc6b0\ud68c\ud558\uae30 \uc704\ud574 \uc2b5\uad00\uc801\uc73c\ub85c \uc0ac\uc6a9\ud558\ub294 \uac83\uc740 \uc88b\uc9c0 \uc54a\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\uc870\uac74\ubb38<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin\uc758 <code>if<\/code>\ub294 \uac12\uc744 \ubc18\ud658\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>val result =\n    if (score &gt;= 60)\n    {\n        \"Pass\"\n    }\n    else\n    {\n        \"Fail\"\n    }\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub530\ub77c\uc11c \uc0bc\ud56d \uc5f0\uc0b0\uc790\uac00 \ubcc4\ub3c4\ub85c \ud544\uc694\ud558\uc9c0 \uc54a\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Java -&gt; condition ? a : b\nKotlin -&gt; if (condition) a else b\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">when<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Java\uc758 <code>switch<\/code>\uc640 \ube44\uc2b7\ud55c \uc5ed\ud560\uc740 Kotlin\uc5d0\uc11c <code>when<\/code>\uc774 \ub2f4\ub2f9\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>when (state)\n{\n    0 -&gt; println(\"Idle\")\n    1 -&gt; println(\"Walk\")\n    2 -&gt; println(\"Attack\")\n    else -&gt; println(\"Unknown\")\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uac12\uc744 \ubc18\ud658\ud560 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>val stateName =\n    when (state)\n    {\n        0 -&gt; \"Idle\"\n        1 -&gt; \"Walk\"\n        2 -&gt; \"Attack\"\n        else -&gt; \"Unknown\"\n    }\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc870\uac74\uc744 \uc5ec\ub7ec \uac1c \uc870\ud569\ud558\ub294 \uac83\ub3c4 \uac00\ub2a5\ud558\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>when\n{\n    health &lt;= 0 -&gt; \"Dead\"\n    health &lt; 30 -&gt; \"Danger\"\n    else -&gt; \"Normal\"\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ubcf5\uc7a1\ud55c \uc870\uac74 \ubd84\uae30\uc5d0\uc11c\ub294 <code>when<\/code>\uc774 \uc0c1\ub2f9\ud788 \uc720\uc6a9\ud558\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ubc18\ubcf5\ubb38<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\uae30\ubcf8\uc801\uc778 \ubc18\ubcf5\ubb38\uc740 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>for (i in 0 until 10)\n{\n    println(i)\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uceec\ub809\uc158\ub3c4 \uc9c1\uc811 \uc21c\ud68c\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>for (player in players)\n{\n    player.attack()\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ubc94\uc704 \ud45c\ud604\ub3c4 \uc81c\uacf5\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>0..10\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>0<\/code>\ubd80\ud130 <code>10<\/code>\uae4c\uc9c0 \ud3ec\ud568\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>0 until 10\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>0<\/code>\ubd80\ud130 <code>9<\/code>\uae4c\uc9c0\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>10 downTo 0\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">10\ubd80\ud130 0\uae4c\uc9c0 \uac10\uc18c\ud55c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\uceec\ub809\uc158<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin\uc740 \uceec\ub809\uc158\uc744 \ud06c\uac8c \uc77d\uae30 \uc804\uc6a9 \uceec\ub809\uc158\uacfc \ubcc0\uacbd \uac00\ub2a5\ud55c \uceec\ub809\uc158\uc73c\ub85c \uad6c\ubd84\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>val players: List&lt;Player&gt; = listOf(\n    Player(\"A\", 100),\n    Player(\"B\", 200)\n)\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ubcc0\uacbd \uac00\ub2a5\ud55c \uceec\ub809\uc158\uc740 \ub2e4\uc74c\uacfc \uac19\uc774 \ub9cc\ub4e4 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>val players = mutableListOf&lt;Player&gt;()\n\nplayers.add(Player(\"A\", 100))\nplayers.add(Player(\"B\", 200))\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub300\ud45c\uc801\uc778 \uceec\ub809\uc158\uc740 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>List \/ Set \/ Map \/ MutableList \/ MutableSet \/ MutableMap\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc77d\uae30 \uc804\uc6a9 \ud0c0\uc785\uc744 \uc0ac\uc6a9\ud558\uba74 \uceec\ub809\uc158\uc744 \uc218\uc815\ud558\ub294 \ucf54\ub4dc\uac00 \ud544\uc694\ud55c \uacf3\uacfc \uadf8\ub807\uc9c0 \uc54a\uc740 \uacf3\uc744 \uad6c\ubd84\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\uceec\ub809\uc158 \ucc98\ub9ac<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin\uc740 \uceec\ub809\uc158 \ucc98\ub9ac \ud568\uc218\uac00 \uc0c1\ub2f9\ud788 \uc798 \uad6c\uc131\ub418\uc5b4 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>val scores = listOf(10, 20, 30, 40)\n\nval result = scores\n    .filter { it &gt;= 20 }\n    .map { it * 2 }\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud750\ub984\uc740 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>List -&gt; filter -&gt; map -&gt; Result\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub300\ud45c\uc801\uc73c\ub85c \ub2e4\uc74c\uacfc \uac19\uc740 \ud568\uc218\ub4e4\uc774 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>filter \/ map \/ flatMap \/ find \/ first \/ any \/ all \/ none \/ count \/ sorted \/ groupBy \/ reduce \/ fold\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uac04\ub2e8\ud55c \ub370\uc774\ud130 \ucc98\ub9ac\uc5d0\uc11c\ub294 \ubc18\ubcf5\ubb38\ubcf4\ub2e4 \ucf54\ub4dc\uc758 \uc758\ub3c4\ub97c \ud45c\ud604\ud558\uae30 \uc88b\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub2e4\ub9cc \uc5ec\ub7ec \uc5f0\uc0b0\uc744 \ubb34\uc870\uac74 \uc5f0\uacb0\ud558\ub294 \uac83\uc774 \uc88b\uc740 \uac83\uc740 \uc544\ub2c8\ub2e4. \ubcf5\uc7a1\ud55c \ub85c\uc9c1\uc5d0\uc11c\ub294 \uc77c\ubc18\uc801\uc778 <code>for<\/code>\ubb38\uc774 \ub354 \uba85\ud655\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ub78c\ub2e4<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin\uc5d0\uc11c\ub294 \ub78c\ub2e4\ub97c \uc0c1\ub2f9\ud788 \uc790\uc5f0\uc2a4\ub7fd\uac8c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>val add = { a: Int, b: Int -&gt;\n    a + b\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uceec\ub809\uc158\uc5d0\uc11c\ub3c4 \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>players.forEach { player -&gt;\n    println(player.name)\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub9e4\uac1c\ubcc0\uc218\uac00 \ud558\ub098\ub77c\uba74 <code>it<\/code>\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>players.forEach {\n    println(it.name)\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub78c\ub2e4\uac00 \ub9ce\uc544\uc9c0\uba74 \ucf54\ub4dc\uac00 \uc9e7\uc544\uc9c0\ub294 \ub300\uc2e0 \uc624\ud788\ub824 \uc77d\uae30 \uc5b4\ub824\uc6cc\uc9c8 \uc218 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc801\uc808\ud55c \uc218\uc900\uc5d0\uc11c \uc0ac\uc6a9\ud558\ub294 \uac83\uc774 \uc88b\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud655\uc7a5 \ud568\uc218<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin\uc5d0\uc11c \uc0c1\ub2f9\ud788 \ud3b8\ub9ac\ud55c \uae30\ub2a5 \uc911 \ud558\ub098\uac00 \ud655\uc7a5 \ud568\uc218\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uae30\uc874 \ud074\ub798\uc2a4\ub97c \uc218\uc815\ud558\uc9c0 \uc54a\uace0 \uc0c8\ub85c\uc6b4 \ud568\uc218\ub97c \ucd94\uac00\ud558\ub294 \uac83\ucc98\ub7fc \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>fun String.isPlayerName(): Boolean\n{\n    return this.length &gt;= 3\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc0ac\uc6a9\ud560 \ub54c\ub294:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>val name = \"Player\"\n\nname.isPlayerName()\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud074\ub798\uc2a4 \uc790\uccb4\uc5d0 \uc2e4\uc81c \uba54\uc11c\ub4dc\ub97c \ucd94\uac00\ud558\ub294 \uac83\uc740 \uc544\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ucef4\ud30c\uc77c\ub41c JVM \ucf54\ub4dc\uc5d0\uc11c\ub294 \uc815\uc801 \uba54\uc11c\ub4dc \ud615\ud0dc\ub85c \ucc98\ub9ac\ub418\uba70, \ud638\ucd9c \ubb38\ubc95\ub9cc \ud574\ub2f9 \uac1d\uccb4\uc758 \uba54\uc11c\ub4dc\ucc98\ub7fc \ubcf4\uc774\uac8c \ub9cc\ub4e4\uc5b4\uc900\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ub370\uc774\ud130 \ud074\ub798\uc2a4<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\ub370\uc774\ud130\ub97c \uc800\uc7a5\ud558\uae30 \uc704\ud55c \ud074\ub798\uc2a4\ub294 <code>data class<\/code>\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>data class Player(\n    val id: Int,\n    val name: String,\n    val health: Int\n)\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub807\uac8c \ud558\uba74 <code>equals()<\/code>, <code>hashCode()<\/code>, <code>toString()<\/code>, <code>copy()<\/code> \uac19\uc740 \uae30\ub2a5\uc774 \uc790\ub3d9\uc73c\ub85c \uc0dd\uc131\ub41c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>val player =\n    Player(1, \"Knight\", 100)\n\nval damagedPlayer =\n    player.copy(health = 50)\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">DTO\ub098 \uc124\uc815\uac12, \uc0c1\ud0dc \ub370\uc774\ud130 \ub4f1\uc744 \ud45c\ud604\ud560 \ub54c \uc720\uc6a9\ud558\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\uac1d\uccb4\uc640 Singleton<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin\uc5d0\ub294 <code>object<\/code>\ub77c\ub294 \ubb38\ubc95\uc774 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>object GameManager\n{\n    var playerCount = 0\n\n    fun start()\n    {\n        println(\"Game Start\")\n    }\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uac1d\uccb4\ub97c \ubcc4\ub3c4\ub85c \uc0dd\uc131\ud558\uc9c0 \uc54a\uace0 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>GameManager.start()\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud558\ub098\uc758 \uac1d\uccb4\ub9cc \uc874\uc7ac\ud558\ub3c4\ub85d \ub9cc\ub4dc\ub294 Singleton \ud615\ud0dc\ub85c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub2e4\ub9cc \uc804\uc5ed \uc0c1\ud0dc\ub97c \uc27d\uac8c \ub9cc\ub4e4 \uc218 \uc788\ub2e4\ub294 \uc7a5\uc810\uacfc \ud568\uaed8 \uc758\uc874\uc131\uc774 \uc228\uaca8\uc9c4\ub2e4\ub294 \ubb38\uc81c\uac00 \uc788\uae30 \ub54c\ubb38\uc5d0 \ubb34\uc870\uac74 <code>object<\/code>\ub97c \uc0ac\uc6a9\ud558\ub294 \uac83\uc740 \uc801\uc808\ud558\uc9c0 \uc54a\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Companion Object<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Java\uc758 <code>static<\/code>\uacfc \ube44\uc2b7\ud55c \uc6a9\ub3c4\ub85c <code>companion object<\/code>\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Player\n{\n    companion object\n    {\n        const val MAX_HEALTH = 100\n\n        fun create(): Player\n        {\n            return Player()\n        }\n    }\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc0ac\uc6a9\ud560 \ub54c\ub294:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Player.MAX_HEALTH\nPlayer.create()\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin\uc5d0\ub294 Java\uc758 <code>static<\/code> \ud0a4\uc6cc\ub4dc\uac00 \uc5c6\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub300\uc2e0 \ud074\ub798\uc2a4\uc5d0 \uc18c\uc18d\ub41c \uc815\uc801 \uc131\uaca9\uc758 \uae30\ub2a5\uc774 \ud544\uc694\ud558\uba74 <code>companion object<\/code> \ub4f1\uc744 \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\uc0c1\uc18d<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin\uc758 \ud074\ub798\uc2a4\ub294 \uae30\ubcf8\uc801\uc73c\ub85c \uc0c1\uc18d\ud560 \uc218 \uc5c6\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Player\n{\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc0c1\uc18d\uc744 \ud5c8\uc6a9\ud558\ub824\uba74 <code>open<\/code>\uc744 \ubd99\uc778\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>open class Character\n{\n    open fun attack()\n    {\n        println(\"Attack\")\n    }\n}\n\nclass Player : Character()\n{\n    override fun attack()\n    {\n        println(\"Player Attack\")\n    }\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Java\uc5d0\uc11c\ub294 \uc77c\ubc18 \ud074\ub798\uc2a4\uac00 \uae30\ubcf8\uc801\uc73c\ub85c \uc0c1\uc18d \uac00\ub2a5\ud558\uace0 <code>final<\/code>\ub85c \ub9c9\ub294 \ubc29\uc2dd\uc774\uc9c0\ub9cc Kotlin\uc740 \ubc18\ub300\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uae30\ubcf8\uc801\uc73c\ub85c \uc0c1\uc18d\uc744 \ub9c9\uc544 \ub193\uace0 \uba85\uc2dc\uc801\uc73c\ub85c <code>open<\/code>\uc744 \uc0ac\uc6a9\ud574\uc57c \ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc0c1\uc18d \uad6c\uc870\ub97c \uc81c\ud55c\ud574\uc11c \uc758\ub3c4\ud558\uc9c0 \uc54a\uc740 \ud655\uc7a5\uc744 \uc904\uc774\ub824\ub294 \uc124\uacc4\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\uc778\ud130\ud398\uc774\uc2a4<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin\uc5d0\uc11c\ub3c4 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>interface Damageable\n{\n    fun takeDamage(amount: Int)\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uad6c\ud604\uc740 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Player : Damageable\n{\n    override fun takeDamage(amount: Int)\n    {\n        println(\"Damage: $amount\")\n    }\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc5ec\ub7ec \uc778\ud130\ud398\uc774\uc2a4\ub97c \uad6c\ud604\ud560 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Player :\n    Character(),\n    Damageable,\n    Movable\n{\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Java\uc640 \ub9c8\ucc2c\uac00\uc9c0\ub85c \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc774\uc6a9\ud558\uba74 \ud074\ub798\uc2a4 \uac04\uc758 \uae30\ub2a5\uc801 \uacc4\uc57d\uc744 \ud45c\ud604\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">sealed class<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\uc0c1\ud0dc\ub098 \uacb0\uacfc\ucc98\ub7fc \uc81c\ud55c\ub41c \uc885\ub958\uc758 \ud0c0\uc785\uc744 \ud45c\ud604\ud560 \ub54c <code>sealed class<\/code>\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sealed class Result\n\ndata class Success(val value: Int) : Result()\n\ndata class Failure(val message: String) : Result()\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ud6c4 <code>when<\/code>\uacfc \uc870\ud569\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>fun handle(result: Result)\n{\n    when (result)\n    {\n        is Success -&gt;\n            println(result.value)\n\n        is Failure -&gt;\n            println(result.message)\n    }\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ucef4\ud30c\uc77c\ub7ec\uac00 \uac00\ub2a5\ud55c \ud558\uc704 \ud0c0\uc785\uc744 \ucd94\uc801\ud560 \uc218 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc0c1\ud0dc \uba38\uc2e0\uc774\ub098 \uc131\uacf5\/\uc2e4\ud328 \uacb0\uacfc \uac19\uc740 \uad6c\uc870\ub97c \ud45c\ud604\ud560 \ub54c \uc720\uc6a9\ud558\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Enum<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\uace0\uc815\ub41c \uac12\uc758 \uc9d1\ud569\uc740 <code>enum class<\/code>\ub85c \ud45c\ud604\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>enum class State\n{\n    IDLE,\n    MOVE,\n    ATTACK,\n    DEAD\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc0ac\uc6a9\ud560 \ub54c\ub294:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>val state = State.ATTACK\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uac8c\uc784 \uac1c\ubc1c\uc5d0\uc11c \uce90\ub9ad\ud130 \uc0c1\ud0dc\ub098 \uc544\uc774\ud15c \ud0c0\uc785\ucc98\ub7fc \uc81c\ud55c\ub41c \uac12\uc744 \ud45c\ud604\ud558\ub294 \uacbd\uc6b0 \uc790\uc8fc \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\uc81c\ub124\ub9ad<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin\uc5d0\uc11c\ub3c4 \uc81c\ub124\ub9ad\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Container&lt;T&gt;(\n    val value: T\n)\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc0ac\uc6a9\ud560 \ub54c:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>val intContainer = Container(100)\nval stringContainer = Container(\"Hello\")\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uceec\ub809\uc158\ub3c4 \uc81c\ub124\ub9ad\uc744 \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>val players: List&lt;Player&gt;\nval scores: List&lt;Int&gt;\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Java\uc640 \ub9c8\ucc2c\uac00\uc9c0\ub85c \ud0c0\uc785 \uc548\uc815\uc131\uc744 \uc720\uc9c0\ud558\uba74\uc11c \uc5ec\ub7ec \ud0c0\uc785\uc5d0\uc11c \uc7ac\uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \ucf54\ub4dc\ub97c \uc791\uc131\ud558\ub294 \ub370 \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\uc2a4\ub9c8\ud2b8 \uce90\uc2a4\ud2b8<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin \ucef4\ud30c\uc77c\ub7ec\ub294 \ud2b9\uc815 \uc870\uac74\uc5d0\uc11c \ud0c0\uc785\uc744 \uc790\ub3d9\uc73c\ub85c \uc881\ud600\uc900\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>fun printLength(value: Any)\n{\n    if (value is String)\n    {\n        println(value.length)\n    }\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>if<\/code> \ub0b4\ubd80\uc5d0\uc11c\ub294 <code>value<\/code>\uac00 <code>String<\/code>\uc774\ub77c\ub294 \uac83\uc744 \ucef4\ud30c\uc77c\ub7ec\uac00 \uc54c\uace0 \uc788\uae30 \ub54c\ubb38\uc5d0 \ubcc4\ub3c4\uc758 \uce90\uc2a4\ud305\uc744 \uc791\uc131\ud558\uc9c0 \uc54a\uc544\ub3c4 \ub41c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub7f0 \uae30\ub2a5\uc744 Smart Cast\ub77c\uace0 \ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Java\uc5d0\uc11c \ub2e4\uc74c\uacfc \uac19\uc774 \uc9c1\uc811 \uce90\uc2a4\ud305\ud558\ub294 \ucf54\ub4dc\ubcf4\ub2e4 \uac04\uacb0\ud558\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if (value instanceof String) {\n    String text = (String)value;\n}\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud0c0\uc785 \uce90\uc2a4\ud305<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\uba85\uc2dc\uc801\uc73c\ub85c \ud0c0\uc785\uc744 \ubcc0\ud658\ud560 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>val value: Any = \"Hello\"\n\nval text = value as String\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc798\ubabb\ub41c \ud0c0\uc785\uc744 \ubcc0\ud658\ud558\uba74 \ub7f0\ud0c0\uc784 \uc608\uc678\uac00 \ubc1c\uc0dd\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc548\uc804\ud55c \uce90\uc2a4\ud305\uc740 <code>as?<\/code>\ub97c \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>val text = value as? String\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc2e4\ud328\ud558\uba74 <code>null<\/code>\uc744 \ubc18\ud658\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>as -&gt; \uc2e4\ud328\ud558\uba74 \uc608\uc678\nas? -&gt; \uc2e4\ud328\ud558\uba74 null\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\uace0\ucc28 \ud568\uc218<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\ud568\uc218\ub97c \ub9e4\uac1c\ubcc0\uc218\ub85c \ubc1b\uac70\ub098 \ud568\uc218\ub97c \ubc18\ud658\ud558\ub294 \ud568\uc218\ub97c \ub9cc\ub4e4 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>fun execute(\n    value: Int,\n    operation: (Int) -&gt; Int\n): Int\n{\n    return operation(value)\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc0ac\uc6a9\ud560 \ub54c:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>val result = execute(10) {\n    it * 2\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774 \uae30\ub2a5\uc740 Kotlin API \uc124\uacc4\uc5d0\uc11c\ub3c4 \ub9ce\uc774 \ud65c\uc6a9\ub41c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud2b9\ud788 \uc790\uc6d0 \uad00\ub9ac, \uceec\ub809\uc158 \ucc98\ub9ac, DSL \uac19\uc740 \uad6c\uc870\ub97c \ub9cc\ub4e4 \ub54c \uc720\uc6a9\ud558\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Scope Function<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin\uc5d0\ub294 \uac1d\uccb4\ub97c \ud2b9\uc815 \ubb38\ub9e5\uc5d0\uc11c \ucc98\ub9ac\ud558\uae30 \uc704\ud55c Scope Function\uc774 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub300\ud45c\uc801\uc73c\ub85c:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>let \/ run \/ with \/ apply \/ also\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\ub97c \ub4e4\uc5b4:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>val player = Player().apply {\n    health = 100\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uac1d\uccb4\ub97c \uc0dd\uc131\ud55c \ub4a4 \uc5ec\ub7ec \ud504\ub85c\ud37c\ud2f0\ub97c \ucd08\uae30\ud654\ud558\ub294 \ucf54\ub4dc\uc5d0\uc11c \uc790\uc8fc \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>let<\/code>\uc740 null \ucc98\ub9ac\uc640 \ud568\uaed8 \ub9ce\uc774 \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>player?.let {\n    println(it.name)\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub2e4\ub9cc Scope Function\uc744 \uacfc\ud558\uac8c \uc911\ucca9\ud558\uba74 \uc624\ud788\ub824 \ucf54\ub4dc \ud750\ub984\uc744 \ucd94\uc801\ud558\uae30 \uc5b4\ub824\uc6cc\uc9c4\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\uc608\uc678 \ucc98\ub9ac<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin\uc758 \uc608\uc678 \ucc98\ub9ac\ub294 Java\uc640 \ube44\uc2b7\ud558\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>try\n{\n    val value = input.toInt()\n}\ncatch (e: NumberFormatException)\n{\n    println(\"Invalid number\")\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud558\uc9c0\ub9cc Java\uc640 \ud070 \ucc28\uc774\uac00 \ud558\ub098 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin\uc5d0\ub294 Java\uc758 checked exception\uc774 \uc5c6\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub530\ub77c\uc11c \ub2e4\uc74c\uacfc \uac19\uc740 \uba54\uc11c\ub4dc \uc120\uc5b8\uc5d0\uc11c <code>throws<\/code>\ub97c \uac15\uc81c\ud558\uc9c0 \uc54a\ub294\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>fun readFile()\n{\n    \/\/ \uc608\uc678 \ubc1c\uc0dd \uac00\ub2a5\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774 \ubd80\ubd84\uc740 Java\uc640 Kotlin\uc744 \ube44\uad50\ud560 \ub54c \uc0c1\ub2f9\ud788 \ud070 \ucc28\uc774\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ubb38\uc790\uc5f4<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin\uc740 \ubb38\uc790\uc5f4 \ucc98\ub9ac \ubb38\ubc95\uc774 \ud3b8\ub9ac\ud558\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>val name = \"Player\"\nval level = 10\n\nval text = \"Name: $name, Level: $level\"\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ubcf5\uc7a1\ud55c \ud45c\ud604\uc2dd\ub3c4 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>val text = \"Level: ${level + 1}\"\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc5ec\ub7ec \uc904 \ubb38\uc790\uc5f4\uc740 Triple Quote\ub97c \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>val json = \"\"\"\n{\n    \"name\": \"Player\",\n    \"level\": 10\n}\n\"\"\".trimIndent()\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Coroutine<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin\uc5d0\uc11c \ube44\ub3d9\uae30 \ud504\ub85c\uadf8\ub798\ubc0d\uc744 \uc774\uc57c\uae30\ud560 \ub54c Coroutine\uc744 \ube7c\ub193\uae30 \uc5b4\ub835\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Coroutine\uc740 \uc2a4\ub808\ub4dc\uc640 \uac19\uc740 OS \uc218\uc900 \uc2e4\ud589 \ub2e8\uc704\uac00 \uc544\ub2c8\ub2e4. \uac00\ubcbc\uc6b4 \uc791\uc5c5 \ub2e8\uc704\ub97c \ud45c\ud604\ud558\uace0, suspend \uc9c0\uc810\uc5d0\uc11c \uc2e4\ud589\uc744 \uc911\ub2e8\ud588\ub2e4\uac00 \ub098\uc911\uc5d0 \uc7ac\uac1c\ud560 \uc218 \uc788\ub3c4\ub85d \ud558\ub294 Kotlin\uc758 \ub3d9\uc2dc\uc131 \ucd94\uc0c1\ud654\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uac04\ub2e8\ud55c \ud615\ud0dc\ub294 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>suspend fun loadPlayer(): Player\n{\n    \/\/ \ube44\ub3d9\uae30 \uc791\uc5c5\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Coroutine\uc744 \uc2e4\ud589\ud558\ub294 \ucabd\uc5d0\uc11c\ub294:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>launch\n{\n    val player = loadPlayer()\n\n    println(player.name)\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Coroutine\uc740 \uc2a4\ub808\ub4dc\ubcf4\ub2e4 \ud6e8\uc52c \uac00\ubccd\uac8c \ub9ce\uc740 \uc791\uc5c5\uc744 \uad6c\uc131\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud558\uc9c0\ub9cc Coroutine\uc774 \uc54c\uc544\uc11c \ubcd1\ub82c \uc2e4\ud589\uc744 \ubcf4\uc7a5\ud558\ub294 \uac83\uc740 \uc544\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc2e4\uc81c\ub85c \uc5b4\ub5a4 \uc2a4\ub808\ub4dc\uc5d0\uc11c \uc2e4\ud589\ub418\ub294\uc9c0\ub294 <code>Dispatcher<\/code>\uc640 Coroutine Context \ub4f1\uc5d0 \uc758\ud574 \uacb0\uc815\ub41c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Coroutine -&gt; Dispatcher -&gt; Thread \/ Thread Pool\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774 \ucc28\uc774\ub97c \uc774\ud574\ud558\uc9c0 \uc54a\uace0 Coroutine\uc744 \ub2e8\uc21c\ud788 &#8220;\uac00\ubcbc\uc6b4 \uc2a4\ub808\ub4dc&#8221;\ub77c\uace0 \uc0dd\uac01\ud558\uba74 \ubb38\uc81c\uac00 \uc0dd\uae34\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">suspend<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>suspend<\/code>\ub294 Coroutine\uc5d0\uc11c \uc2e4\ud589\uc744 \uc911\ub2e8\ud558\uace0 \ub098\uc911\uc5d0 \ub2e4\uc2dc \uc7ac\uac1c\ud560 \uc218 \uc788\ub294 \ud568\uc218\ub97c \ud45c\ud604\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>suspend fun loadData()\n{\n    delay(1000)\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>delay()<\/code>\ub294 \ud604\uc7ac \uc2a4\ub808\ub4dc\ub97c 1\ucd08 \ub3d9\uc548 \ubd99\uc7a1\uc544 \ub450\ub294 <code>Thread.sleep()<\/code>\uacfc \ub2e4\ub974\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Coroutine\uc744 \uc77c\uc2dc \uc911\ub2e8\ud558\uace0 \uc2a4\ub808\ub4dc\ub97c \ub2e4\ub978 \uc791\uc5c5\uc5d0 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Coroutine A -&gt; suspend -&gt; Thread \ubc18\ud658 -&gt; \ub2e4\ub978 Coroutine \uc2e4\ud589 -&gt; Coroutine A \uc7ac\uac1c\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub7f0 \uad6c\uc870 \ub54c\ubb38\uc5d0 I\/O \uc911\uc2ec\uc758 \ube44\ub3d9\uae30 \uc791\uc5c5\uc744 \ud6a8\uc728\uc801\uc73c\ub85c \uad6c\uc131\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">JVM\uacfc Kotlin<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin\/JVM\uc5d0\uc11c\ub294 Kotlin \ucf54\ub4dc\uac00 JVM \ubc14\uc774\ud2b8\ucf54\ub4dc\ub85c \ucef4\ud30c\uc77c\ub41c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Kotlin -&gt; Kotlin Compiler -&gt; Bytecode -&gt; JVM\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Java\uc640 \uac19\uc740 JVM\uc744 \uc0ac\uc6a9\ud558\uae30 \ub54c\ubb38\uc5d0 Java \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uadf8\ub300\ub85c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import java.util.ArrayList\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Java\ub85c \uc791\uc131\ub41c \ud074\ub798\uc2a4\ub3c4 Kotlin\uc5d0\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ubc18\ub300\ub85c Kotlin \ucf54\ub4dc\ub3c4 JVM \ud658\uacbd\uc5d0\uc11c Java\uc640 \ud568\uaed8 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub7f0 \uc0c1\ud638\uc6b4\uc6a9\uc131\uc740 Kotlin\uc774 \uae30\uc874 Java \uc0dd\ud0dc\uacc4\uc5d0 \ube60\ub974\uac8c \ub4e4\uc5b4\uac08 \uc218 \uc788\uc5c8\ub358 \uc774\uc720 \uc911 \ud558\ub098\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Java\uc640 Kotlin\uc758 \uad00\uacc4<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin\uc744 \uc774\ud574\ud560 \ub54c Java\uc640 \ube44\uad50\ud558\uba74 \ud2b9\uc9d5\uc774 \uba85\ud655\ud574\uc9c4\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Java -&gt; \uba85\uc2dc\uc801\uc778 \ubb38\ubc95\uc774 \ub9ce\uc74c \/ Getter \/ Setter \ucf54\ub4dc\uac00 \uae38\uc5b4\uc9c8 \uc218 \uc788\uc74c \/ Checked Exception \uc874\uc7ac \/ null \uc548\uc815\uc131\uc744 \uc5b8\uc5b4 \ucc28\uc6d0\uc5d0\uc11c \uc9c1\uc811 \ubcf4\uc7a5\ud558\uc9c0 \uc54a\uc74c \/ class\uac00 \uae30\ubcf8\uc801\uc73c\ub85c \uc0c1\uc18d \uac00\ub2a5\n\nKotlin -&gt; \uac04\uacb0\ud55c \ubb38\ubc95 \/ Property \/ Null Safety \/ Checked Exception \uc5c6\uc74c \/ class\uac00 \uae30\ubcf8\uc801\uc73c\ub85c final \/ \ud655\uc7a5 \ud568\uc218 \/ Data Class \/ Coroutine\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub458\uc740 \uc11c\ub85c \ub300\uccb4 \uad00\uacc4\ub77c\uae30\ubcf4\ub2e4 JVM\uc774\ub77c\ub294 \uac19\uc740 \uc0dd\ud0dc\uacc4 \uc548\uc5d0\uc11c \ud568\uaed8 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \uc5b8\uc5b4\uc5d0 \uac00\uae5d\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud2b9\ud788 \uae30\uc874 Java \ud504\ub85c\uc81d\ud2b8\uc5d0 Kotlin \ucf54\ub4dc\ub97c \uc810\uc9c4\uc801\uc73c\ub85c \ucd94\uac00\ud560 \uc218 \uc788\ub2e4\ub294 \uac83\uc774 \uc2e4\uc6a9\uc801\uc778 \uc7a5\uc810\uc774\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Kotlin\uc758 \uc2e4\ud589 \uad6c\uc870<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin\uc744 \uc804\uccb4\uc801\uc73c\ub85c \ubcf4\uba74 \ub2e4\uc74c\uacfc \uac19\uc774 \uc5f0\uacb0\ub41c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Kotlin Syntax -&gt; Type System -&gt; Class \/ Object -&gt; Property -&gt; Function \/ Lambda -&gt; Collection -&gt; Null Safety -&gt; Generic -&gt; Extension Function -&gt; Coroutine -&gt; JVM\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub9ac\uace0 \uc2e4\ud589 \ud658\uacbd\uc5d0 \ub530\ub77c \ud65c\uc6a9 \uc601\uc5ed\uc774 \ub098\ub25c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Kotlin -&gt; Kotlin\/JVM \/ Kotlin\/JS \/ Kotlin\/Native\nKotlin\/JVM -&gt; Android \/ Server\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin\uc740 JVM \uc5b8\uc5b4\ub85c \uc2dc\uc791\ud588\uc9c0\ub9cc \ud604\uc7ac\ub294 JVM\uc5d0\ub9cc \ud55c\uc815\ub41c \uc5b8\uc5b4\ub294 \uc544\ub2c8\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Kotlin\uc758 \uc7a5\uc810\uacfc \ud55c\uacc4<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin\uc758 \uac00\uc7a5 \ud070 \uc7a5\uc810\uc740 Java \uc0dd\ud0dc\uacc4\ub97c \uadf8\ub300\ub85c \ud65c\uc6a9\ud558\uba74\uc11c Java\ubcf4\ub2e4 \uac04\uacb0\ud55c \ucf54\ub4dc\ub97c \uc791\uc131\ud560 \uc218 \uc788\ub2e4\ub294 \uc810\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud2b9\ud788 \ub2e4\uc74c \uae30\ub2a5\ub4e4\uc774 \uc2e4\uc81c \ucf54\ub4dc\uc758 \uc591\uc744 \ub9ce\uc774 \uc904\uc778\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Type Inference \/ Property \/ Data Class \/ Null Safety \/ Lambda \/ Extension Function \/ Smart Cast \/ Collection API \/ Coroutine\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ubc18\uba74 Kotlin\uc758 \uae30\ub2a5\uc774 \ub9ce\uc740 \ub9cc\ud07c \ucc98\uc74c\uc5d0\ub294 \uc5b8\uc5b4 \uc790\uccb4\uac00 \uc0c1\ub2f9\ud788 \ubcf5\uc7a1\ud558\uac8c \ub290\uaef4\uc9c8 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Scope Function, Lambda, Extension Function, Operator Overloading, Coroutine \ub4f1\uc744 \ubb34\ubd84\ubcc4\ud558\uac8c \uc870\ud569\ud558\uba74 \uc9e7\uc9c0\ub9cc \uc77d\uae30 \uc5b4\ub824\uc6b4 \ucf54\ub4dc\uac00 \ub9cc\ub4e4\uc5b4\uc9c8 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub610\ud55c JVM \uc704\uc5d0\uc11c \uc2e4\ud589\ub418\ub294 Kotlin\/JVM\uc5d0\uc11c\ub294 Java\uc640 \ub9c8\ucc2c\uac00\uc9c0\ub85c GC\uc640 JVM \ub7f0\ud0c0\uc784\uc758 \ud2b9\uc131\uc744 \uace0\ub824\ud574\uc57c \ud55c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\uc815\ub9ac<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin\uc744 \ud070 \ud750\ub984\uc73c\ub85c \uc815\ub9ac\ud558\uba74 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\uae30\ubcf8 \ubb38\ubc95 -&gt; \uc815\uc801 \ud0c0\uc785 -&gt; Class \/ Object -&gt; Property -&gt; Null Safety -&gt; Function \/ Lambda -&gt; Collection -&gt; Generic -&gt; Extension Function -&gt; Data Class \/ Sealed Class -&gt; Coroutine -&gt; JVM\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin\uc740 Java\uc758 \ubb38\ubc95\uc744 \uc870\uae08 \uac04\uacb0\ud558\uac8c \ub9cc\ub4e0 \uc5b8\uc5b4 \uc815\ub3c4\ub85c \ubcf4\uba74 \ubd80\uc871\ud558\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Java\uc640 \uac19\uc740 JVM \uc0dd\ud0dc\uacc4\ub97c \uc0ac\uc6a9\ud558\uba74\uc11c\ub3c4 \uc5b8\uc5b4 \ucc28\uc6d0\uc5d0\uc11c null \uc548\uc815\uc131, \ud0c0\uc785 \ucd94\ub860, \ud655\uc7a5 \ud568\uc218, \ub370\uc774\ud130 \ud074\ub798\uc2a4, \ud568\uc218\ud615 \ubb38\ubc95, Coroutine \uac19\uc740 \uae30\ub2a5\uc744 \uc81c\uacf5\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud2b9\ud788 Kotlin\uc744 \uc774\ud574\ud560 \ub54c\ub294 <strong>Java\uc640\uc758 \ubb38\ubc95 \ucc28\uc774\ubcf4\ub2e4 Kotlin\uc774 \uc5b4\ub5a4 \ubb38\uc81c\ub97c \uc5b8\uc5b4 \ucc28\uc6d0\uc5d0\uc11c \ud574\uacb0\ud558\ub824 \ud588\ub294\uc9c0<\/strong>\ub97c \ubcf4\ub294 \ud3b8\uc774 \uc88b\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Java\uc5d0\uc11c \ubc18\ubcf5\uc801\uc73c\ub85c \uc791\uc131\ud574\uc57c \ud588\ub358 \ubcf4\uc77c\ub7ec\ud50c\ub808\uc774\ud2b8\ub97c \uc904\uc774\uace0, <code>null<\/code>\uacfc \ud0c0\uc785 \ubb38\uc81c\ub97c \ucef4\ud30c\uc77c \ub2e8\uacc4\uc5d0\uc11c \uc7a1\uace0, \ud568\uc218\uc640 \uac1d\uccb4\ub97c \uc870\ud569\ud574 \ucf54\ub4dc\ub97c \uad6c\uc131\ud558\ub294 \ubc29\ud5a5\uc73c\ub85c \uc124\uacc4\ub418\uc5b4 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Android\uc5d0\uc11c\ub294 Kotlin\uc774 \uc0ac\uc2e4\uc0c1 \uc8fc\uc694 \uac1c\ubc1c \uc5b8\uc5b4\ub85c \uc790\ub9ac \uc7a1\uc558\uace0, \uc11c\ubc84\uc5d0\uc11c\ub294 Spring\uacfc \uacb0\ud569\ud574 Java \uc0dd\ud0dc\uacc4\ub97c \uadf8\ub300\ub85c \ud65c\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin\uc758 \ud575\uc2ec\uc744 \ud558\ub098\uc758 \ud750\ub984\uc73c\ub85c \ubcf4\uba74 \uacb0\uad6d <strong>\uc815\uc801 \ud0c0\uc785 + JVM \ud638\ud658\uc131 + \uac04\uacb0\ud55c \uac1d\uccb4\uc9c0\ud5a5 \ubb38\ubc95 + \ud568\uc218\ud615 \uae30\ub2a5 + Null Safety + Coroutine<\/strong>\uc73c\ub85c \uc815\ub9ac\ud560 \uc218 \uc788\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kotlin\uc740 JVM\uc5d0\uc11c \uc2e4\ud589\ub418\ub294 \uc815\uc801 \ud0c0\uc785 \ud504\ub85c\uadf8\ub798\ubc0d \uc5b8\uc5b4\ub2e4. JetBrains\uc5d0\uc11c \uac1c\ubc1c\ud588\uc73c\uba70, Java\uc640 \ub192\uc740 \ud638\ud658\uc131\uc744 \uac00\uc9c0\uba74\uc11c\ub3c4 \ub354 \uac04\uacb0\ud55c \ubb38\ubc95\uacfc \ud604\ub300\uc801\uc778 \uc5b8\uc5b4 \uae30\ub2a5\uc744 \uc81c\uacf5\ud558\ub294 \uac83\uc744 \ubaa9\ud45c\ub85c \ub9cc\ub4e4\uc5b4\uc84c\ub2e4. \ud604\uc7ac Kotlin\uc740 Android \uac1c\ubc1c\uc5d0\uc11c \ub110\ub9ac \uc0ac\uc6a9\ub418\uace0 \uc788\uc73c\uba70, \uc11c\ubc84 \uac1c\ubc1c\uc5d0\uc11c\ub294 Spring\uacfc \ud568\uaed8 \uc0ac\uc6a9\ud560 \uc218\ub3c4 \uc788\ub2e4. JVM \uae30\ubc18\uc774\uae30 \ub54c\ubb38\uc5d0 \uae30\uc874 Java \ub77c\uc774\ube0c\ub7ec\ub9ac\uc640 \uc0dd\ud0dc\uacc4\ub97c \uadf8\ub300\ub85c \ud65c\uc6a9\ud560 \uc218 \uc788\ub2e4\ub294 \uac83\ub3c4 \ud070 \uc7a5\uc810\uc774\ub2e4. Kotlin \ucf54\ub4dc\ub294 \uc77c\ubc18\uc801\uc73c\ub85c \ub2e4\uc74c\uacfc [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[50],"tags":[],"class_list":["post-1699","post","type-post","status-publish","format-standard","hentry","category-language"],"_links":{"self":[{"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/posts\/1699","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1699"}],"version-history":[{"count":2,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/posts\/1699\/revisions"}],"predecessor-version":[{"id":1981,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/posts\/1699\/revisions\/1981"}],"wp:attachment":[{"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1699"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1699"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1699"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}