{"id":577321,"date":"2025-06-23T16:36:37","date_gmt":"2025-06-23T15:36:37","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=blog&#038;p=577321"},"modified":"2025-12-17T14:35:01","modified_gmt":"2025-12-17T13:35:01","slug":"how-java-open-source-projects-use-intellij-idea-real-world-examples-part-1","status":"publish","type":"blog","link":"https:\/\/blog.jetbrains.com\/ko\/blog\/2025\/06\/23\/how-java-open-source-projects-use-intellij-idea-real-world-examples-part-1\/","title":{"rendered":"Java \uc624\ud508\uc18c\uc2a4 \ud504\ub85c\uc81d\ud2b8\uc5d0\uc11c IntelliJ IDEA\ub97c \uc0ac\uc6a9\ud558\ub294 \ubc29\ubc95: \uc2e4\uc81c \uc0ac\ub840 &#8211; 1\ubd80"},"content":{"rendered":"<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-669190 size-full\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/06\/IJ-social-BlogFeatured-1280x720-1.png\" alt=\"\" width=\"1280\" height=\"720\" \/><\/figure>\n<p>JetBrains\ub294 \uac1c\ubc1c\uc790\uac00 \uc9d1\uc911\ub825\uacfc \uc0dd\uc0b0\uc131\uc744 \uc720\uc9c0\ud558\ub294 \ub370 \ub3c4\uc6c0\uc774 \ub418\ub294 \ub3c4\uad6c\ub97c \uac1c\ubc1c\ud558\uace0 \uc788\uc73c\uba70, \uc804 \uc138\uacc4 \uac1c\ubc1c\uc790\uac00 \ub9e4\uc77c \uc0ac\uc6a9\ud558\ub294 \uc624\ud508\uc18c\uc2a4 \ud504\ub85c\uc81d\ud2b8\ub97c \uc9c0\uc6d0\ud558\ub294 \ub370 \uc774\ub7ec\ud55c \ub3c4\uad6c\uac00 \ub3c4\uc6c0\uc774 \ub41c\ub2e4\ub294 \uc810\uc5d0\uc11c \ud2b9\ud788 \uc790\ubd80\uc2ec\uc744 \ub290\ub08d\ub2c8\ub2e4. \uc774\ub7ec\ud55c \ud504\ub85c\uc81d\ud2b8\ub294 Java \uac1c\ubc1c\uc758 \ubc29\ud5a5\uc744 \uc120\ub3c4\ud558\uace0 \ud65c\uae30 \ub118\uce58\ub294 Java \uc5d0\ucf54\uc2dc\uc2a4\ud15c\uc5d0 \ud06c\uac8c \uae30\uc5ec\ud569\ub2c8\ub2e4.<\/p>\n<p>\uc774 2\ubd80\uc791 \uc2dc\ub9ac\uc988\uc5d0\uc11c\ub294 JetBrains\uc5d0\uc11c \uc9c0\uc6d0\ud558\ub294 \uac00\uc7a5 \ud765\ubbf8\ub85c\uc6b4 \uc624\ud508\uc18c\uc2a4 Java \ud504\ub85c\uc81d\ud2b8 \uba87 \uac00\uc9c0\ub97c \uc18c\uac1c\ud569\ub2c8\ub2e4. \ud14c\uc2a4\ud2b8 \ud504\ub808\uc784\uc6cc\ud06c\uc640 HTML \ud30c\uc11c\ubd80\ud130 \ud601\uc2e0\uc801\uc778 \uc6f9 \ub77c\uc774\ube0c\ub7ec\ub9ac\uc640 \uc5b8\uc5b4\uc5d0 \uc774\ub974\uae30\uae4c\uc9c0 \uac01 \ud504\ub85c\uc81d\ud2b8\ub294 Java \ucee4\ubba4\ub2c8\ud2f0\uc758 \ucc3d\uc758\uc131\uacfc \ub3c5\ucc3d\uc131\uc744 \ubc18\uc601\ud569\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uac01 \uc0ac\ub840\uc5d0\uc11c IntelliJ IDEA\uc640 \uac19\uc740 JetBrains IDE\ub294 \uac1c\ubc1c\uc790\uac00 \ub354 \ube60\ub974\uac8c \uacb0\uacfc\ubb3c\uc744 \uc81c\uacf5\ud558\uace0, \ub354 \uc790\uc2e0 \uc788\uac8c \uc791\uc5c5\ud558\uba70, \ub354 \ub098\uc740 \ucf54\ub4dc\ub97c \uc791\uc131\ud558\ub294 \ub370 \ub3c4\uc6c0\uc744 \uc90d\ub2c8\ub2e4.<\/p>\n<h2 id=\"\u2615-spring-framework\" class=\"wp-block-heading\"><span class=\"copy-title\">\u2615\u00a0<\/span>Spring Framework<\/h2>\n<p><em>\uc138\uacc4\uc5d0\uc11c \uac00\uc7a5 \uc778\uae30 \uc788\ub294 Java \ud504\ub808\uc784\uc6cc\ud06c\uc785\ub2c8\ub2e4.<\/em><\/p>\n<p><a href=\"https:\/\/github.com\/spring-projects\" target=\"_blank\" rel=\"noopener\">Spring<\/a>\uc740 \uc18c\uac1c\uac00 \ud544\uc694 \uc5c6\uc8e0. \ud604\ub300\uc801 Java \uc11c\ubc84 \uce21 \uac1c\ubc1c\uc744 \uc704\ud55c \uc911\ucd94\ub85c\uc11c \ub2e8\uc21c\uc131, \uc0dd\uc0b0\uc131 \ubc0f \uac1c\ubc1c\uc790 \uacbd\ud5d8\uc5d0 \uc911\uc810\uc744 \ub450\ub294 \ub3c4\uad6c\uc785\ub2c8\ub2e4. JetBrains\ub294 \ub3d9\uc77c\ud55c \uac00\uce58\ub97c \uacf5\uc720\ud558\uba70, Spring\uacfc JetBrains \ud300 \uac04\uc758 \uae34\ubc00\ud55c \ud611\ub825\uc744 \ud1b5\ud574 \uc804 \uc138\uacc4 \uc11c\ubc84 \uce21 \uac1c\ubc1c\uc790\ub97c \uc704\ud55c \uc2dc\ub108\uc9c0\ub97c \ub0b4\uace0 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<blockquote class=\"wp-block-quote\">\n<p>IntelliJ IDEA\uc5d0 \uc0c8\ub85c\uc6b4 \uae30\ub2a5\uc774 \ub3c4\uc785\ub418\ub294 \uacbd\uc6b0\uc5d0\ub3c4 Spring \ud300\uc774 \ud53c\ub4dc\ubc31\uc744 \uc804\ub2ec\ud558\uc5ec Spring \uac1c\ubc1c\uc790\uc5d0\uac8c \uc6d0\ud65c\ud558\uace0 \uc9c1\uad00\uc801\uc778 \uacbd\ud5d8\uc774 \uc81c\uacf5\ub418\ub3c4\ub85d \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. Kotlin\uc740 Spring\uc758 \ubc29\ud5a5\uc5d0\ub3c4 \uc9c0\uc18d\uc801\uc73c\ub85c \uc601\ud5a5\uc744 \ubbf8\uce58\uace0 \uc788\uc2b5\ub2c8\ub2e4. Spring Framework 5\uc5d0 \ub3c4\uc785\ub41c null \uc548\uc804\uc131 \uc9c0\uc6d0\uc740 JSpecify \uc5b4\ub178\ud14c\uc774\uc158\uc744 \ud1b5\ud574 7 \ubc84\uc804\uc5d0\uc11c \ub354 \uc6b0\uc218\ud574\uc84c\uc73c\uba70, \uc774\ub294 Java\uc640 Kotlin \uc0ac\uc6a9\uc790 \ubaa8\ub450\uc5d0\uac8c \ub3c4\uc6c0\uc744 \uc90d\ub2c8\ub2e4.<\/p>\n<p><cite><em>\u2014 S\u00e9bastien Deleuze, Spring Framework \ud575\uc2ec \ucee4\ubbf8\ud130<\/em><\/cite><\/p>\n<\/blockquote>\n<p>Spring \ucee4\ubba4\ub2c8\ud2f0\ub294 \ud604\uc7ac Spring AI\uc5d0 \uc9d1\uc911\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. Spring AI\ub294 \uce5c\uc219\ud55c POJO(Plain Old Java Object) \ud328\ud134\uc744 \uc0ac\uc6a9\ud558\uc5ec Java\uc640 Kotlin\uc744 \ubaa8\ub450 \uc9c0\uc6d0\ud558\uace0 Spring\uc758 \ubaa8\ub4c8\uc131 \ubc0f \uc774\uc2dd\uc131 \uc6d0\uce59\uc744 AI \ubd84\uc57c\uc5d0 \uc801\uc6a9\ud558\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ud504\ub808\uc784\uc6cc\ud06c\uc785\ub2c8\ub2e4. \ub610\ud55c \ud300\uc740 GraalVM \ub124\uc774\ud2f0\ube0c \uc774\ubbf8\uc9c0 \uc9c0\uc6d0, Project Leyden JVM \ucd5c\uc801\ud654, Spring Boot\uc758 \ub354 \uc2a4\ub9c8\ud2b8\ud55c \uae30\ubcf8\uac12\uc744 \ud1b5\ud574 \ub7f0\ud0c0\uc784 \ud6a8\uc728\uc744 \uc9c0\uc18d\uc801\uc73c\ub85c \ud5a5\uc0c1\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \ud504\ub808\uc784\uc6cc\ud06c\uc758 \uc131\uc219\ud55c \ubd80\ubd84\ub3c4 \uc9c4\ud654\ud558\uc5ec, \ud074\ub77c\uc774\uc5b8\ud2b8 \uce21 API \ubc84\uc804 \uad00\ub9ac\uc640 \uac19\uc740 \uae30\ub2a5\uc774 \uace7 \ucd9c\uc2dc\ub420 \uc608\uc815\uc785\ub2c8\ub2e4.<\/p>\n<h2 id=\"\ud83d\udd79\ufe0f-play-framework\" class=\"wp-block-heading\"><span class=\"copy-title\">\ud83d\udd79\ufe0f <\/span>Play Framework<\/h2>\n<p><em>Scala\uc640 Java\ub97c \uc704\ud55c \uac1c\ubc1c\uc790 \uce5c\ud654\uc801\uc778 \uace0\uc131\ub2a5 \uc6f9 \ud504\ub808\uc784\uc6cc\ud06c\uc785\ub2c8\ub2e4.<\/em><\/p>\n<p><a href=\"https:\/\/github.com\/playframework\/playframework\/\" target=\"_blank\" rel=\"noopener\">Play Framework<\/a>\ub294 \ud2b8\ub798\ud53d\uc774 \ub9ce\uc740 \ub274\uc2a4 \ud50c\ub7ab\ud3fc\uacfc \uad6d\uac00 \uc138\uae08 \uc2dc\uc2a4\ud15c\uc744 \ud3ec\ud568\ud55c \ub2e4\uc591\ud55c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uc11c \uc2e0\ub8b0\ub97c \uc5bb\uace0 \uc788\uc2b5\ub2c8\ub2e4. \ud655\uc7a5\uc131\uacfc \ub2e8\uc21c\uc131\uc5d0 \uc911\uc810\uc744 \ub450\uace0 \uac1c\ubc1c\uc790 \uacbd\ud5d8\uc744 \uc6b0\uc120\uc2dc\ud558\uba70, \ub0b4\uc7a5 \ub3c4\uad6c, \ubc18\uc751\ud615 \ubaa8\ub378, \uc0c1\ud0dc \ube44\uc800\uc7a5 \uc544\ud0a4\ud14d\ucc98\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4.<\/p>\n<blockquote class=\"wp-block-quote\">\n<p>\uc800\ud76c\ub294 Play \uac1c\ubc1c\uc5d0 \uc8fc\ub85c IntelliJ IDEA\ub97c \uc0ac\uc6a9\ud558\ub294\ub370 \uc815\ub9d0 \ud6cc\ub96d\ud569\ub2c8\ub2e4. Scala \ud50c\ub7ec\uadf8\uc778\uc740 SBT\uc640 Scala\uc5d0 \ub300\ud55c \ucd5c\uace0 \uc218\uc900\uc758 \uc9c0\uc6d0\uc744 \uc81c\uacf5\ud560 \ubfd0\ub9cc \uc544\ub2c8\ub77c \uad6c\ubb38 \uac15\uc870 \ud45c\uc2dc, \ub77c\uc6b0\ud2b8 \ud30c\uc77c \ubc0f Twirl \ud15c\ud50c\ub9bf \ud0d0\uc0c9\uacfc \uac19\uc740 Play \ud504\ub85c\uc81d\ud2b8 \uc804\uc6a9 \uae30\ub2a5\ub3c4 \uc81c\uacf5\ud569\ub2c8\ub2e4. Scala 3 \uc9c0\uc6d0\uc740 \uc774\uc81c \ub9e4\uc6b0 \uc131\uc219\ud574\uc84c\uc73c\uba70 JetBrains \ud300\uc774 Scala \ubc0f Play Framework \ucee4\ubba4\ub2c8\ud2f0\ub97c \uc9c4\uc2ec\uc73c\ub85c \uc544\ub07c\uace0 \uc788\ub2e4\ub294 \uac83\uc740 \ubd84\uba85\ud569\ub2c8\ub2e4.<\/p>\n<p><cite><em>\u2014 Matthias Kurz, Play Framework \uc720\uc9c0 \uad00\ub9ac \ub2f4\ub2f9\uc790<\/em><\/cite><\/p>\n<\/blockquote>\n<p>\ub2e4\uc74c \uc8fc\uc694 Play \ubc84\uc804\uc740 2025\ub144 \uc911\ubc18\uc5d0 \ucd9c\uc2dc\ub420 \uc608\uc815\uc774\uba70, \uafb8\uc900\ud558\uace0 \uc0ac\ub824 \uae4a\uc740 \uac1c\uc120\uc5d0 \uc911\uc810\uc744 \ub458 \uc608\uc815\uc785\ub2c8\ub2e4. \uc8fc\uc694 \ub0b4\uc6a9\uc73c\ub85c\ub294 Gradle \uc9c0\uc6d0, \ud5a5\uc0c1\ub41c Kotlin \ud638\ud658\uc131, \uac1c\uc120\ub41c WebSockets, \uadf8\ub9ac\uace0 \ucd5c\uc2e0 \uc6f9 \ud45c\uc900\uacfc \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ub9c8\uc774\uadf8\ub808\uc774\uc158\uc5d0 \ub300\ud55c \uc9c0\uc6d0 \uac1c\uc120\uc774 \ud3ec\ud568\ub429\ub2c8\ub2e4. \uc774 \ub9b4\ub9ac\uc2a4\uc5d0\uc11c\ub294 Jakarta \ub124\uc784\uc2a4\ud398\uc774\uc2a4\ub85c\uc758 \uc804\ud658\uc774 \uc644\ub8cc\ub418\uace0, Java 25 LTS\uc640\uc758 \u200b\u200b\ud638\ud658\uc131\uc774 \ubcf4\uc7a5\ub418\uba70, Pekko \ubc0f \uae30\ud0c0 \ud575\uc2ec \uc885\uc18d\uc131\uc5d0 \ub300\ud55c \uc5c5\uadf8\ub808\uc774\ub4dc\uac00 \ud3ec\ud568\ub429\ub2c8\ub2e4.<\/p>\n<h2 id=\"\ud83e\udde9-koin\" class=\"wp-block-heading\"><span class=\"copy-title\">\ud83e\udde9 <\/span>Koin<\/h2>\n<p><em>Kotlin\uc744 \uc704\ud55c \ub2e8\uc21c\ud558\uba74\uc11c\ub3c4 \uac15\ub825\ud55c \uc885\uc18d\uc131 \uc0bd\uc785 \ud504\ub808\uc784\uc6cc\ud06c\uc785\ub2c8\ub2e4.<\/em><\/p>\n<p><a href=\"https:\/\/github.com\/InsertKoinIO\/koin\" target=\"_blank\" rel=\"noopener\">Koin<\/a>\uc740 \ud2b9\ud788 Android\uc5d0\uc11c Kotlin\uc758 \uc885\uc18d\uc131 \uc0bd\uc785\uc744 \uac04\ub2e8\ud558\uace0 \uac00\ubccd\uace0 \uc9c1\uad00\uc801\uc73c\ub85c \ub9cc\ub4e4\uae30 \uc704\ud574 \uac1c\ubc1c\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uae30\uc874\uc758 \uc885\uc18d\uc131 \uc0bd\uc785 \ub3c4\uad6c\ub294 \uc9c0\ub098\uce58\uac8c \ubcf5\uc7a1\ud558\uac70\ub098, \ucef4\ud30c\uc77c\ub9c1 \uc18d\ub3c4\uac00 \ub290\ub9ac\uac70\ub098, Kotlin\uc758 \uc7a5\uc810\uc744 \ucda9\ubd84\ud788 \ud65c\uc6a9\ud558\uc9c0 \ubabb\ud569\ub2c8\ub2e4. Spring Boot\uc640 Kotlin\uc758 \ud48d\ubd80\ud55c \uae30\ub2a5\uc5d0\uc11c \uc601\uac10\uc744 \ubc1b\uc740 Koin\uc740 \uac04\uacb0\ud55c DSL, \uc2a4\ub9c8\ud2b8\ud55c \uae30\ubcf8\uac12, \uc6d0\ud65c\ud55c \ud1b5\ud569\uc744 \ub3c4\uc785\ud558\uc5ec \uc9c1\uad00\uc801\uc778 \uc885\uc18d\uc131 \uc0bd\uc785 \uc9c0\uc6d0\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4.<\/p>\n<blockquote class=\"wp-block-quote\">\n<p>IntelliJ IDEA\ub294 \uc81c\uac00 \ub9e4\uc77c \uc0ac\uc6a9\ud558\ub294 \ub3c4\uad6c\uc785\ub2c8\ub2e4. \ucc98\uc74c\uc5d0\ub294 Java \uc791\uc5c5\uc5d0 \uc0ac\uc6a9\ud588\uace0 Kotlin \uc791\uc5c5\uc5d0\ub294 \ub354 \ub9ce\uc774 \uc0ac\uc6a9\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \ubaa8\ub450 \ud0c1\uc6d4\ud55c \uc5d4\ub4dc\ud22c\uc5d4\ub4dc \uc9c0\uc6d0 \ub355\ubd84\uc774\uc8e0. \uc774\ub7ec\ud55c \uacbd\ud5d8\uc744 \ubc14\ud0d5\uc73c\ub85c Koin \ud50c\ub7ec\uadf8\uc778\uc744 \ub9cc\ub4e4\uc5c8\uc2b5\ub2c8\ub2e4. \uc774 \ud50c\ub7ec\uadf8\uc778\uc740 \uc2dc\uac01\uc801 \ud53c\ub4dc\ubc31, \uc2e4\uc2dc\uac04 \ubcf4\uc548 \uac80\uc0ac, Koin \uc815\uc758\uc5d0 \ub300\ud55c \uc6d0\ud65c\ud55c \ud0d0\uc0c9 \uae30\ub2a5\uc744 IDE\uc5d0 \uc9c1\uc811 \ud1b5\ud569\ud558\ub294 \ub3c4\uad6c\uc785\ub2c8\ub2e4.<\/p>\n<p><cite><em>\u2014 Arnaud Giuliani, Koin \uc81c\uc791\uc790<\/em><\/cite><\/p>\n<\/blockquote>\n<p>Koin \ud300\uc740 Compose Multiplatform\uacfc KMP\uc5d0 \ub300\ud55c \ud5a5\uc0c1\ub41c \uc9c0\uc6d0, Ktor 3.1\uacfc\uc758 \ud1b5\ud569\ub41c \ud638\ud658\uc131, \uadf8\ub9ac\uace0 \uc77c\ub828\uc758 \uc0c8\ub85c\uc6b4 Scope \uae30\ub2a5\uc744 \uc81c\uacf5\ud558\ub294 4.1 \ubc84\uc804\uc744 \uc801\uadf9\uc801\uc73c\ub85c \uac1c\ubc1c\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. 4.2 \ubc84\uc804\ub3c4 \uc774\ubbf8 \uac1c\ubc1c \uc911\uc774\uba70, \ub354\uc6b1 \uc2ec\uce35\uc801\uc778 \ucf54\ub8e8\ud2f4 \ud1b5\ud569, \uc0c8\ub85c\uc6b4 Job Scheduler API, Kotlin RPC \uc9c0\uc6d0 \ubc0f Koin DSL\uc5d0 \ub300\ud55c \ucd94\uac00 \uac1c\uc120\uc5d0 \uc911\uc810\uc744 \ub450\uace0 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h2 id=\"\ud83d\udd27-micronaut\" class=\"wp-block-heading\"><span class=\"copy-title\">\ud83d\udd27 <\/span>Micronaut<\/h2>\n<p><em>\ube60\ub978 \uc2dc\uc791\uacfc \ub0ae\uc740 \uba54\ubaa8\ub9ac \uc0ac\uc6a9\ub7c9\uc744 \uc704\ud574 \uad6c\ucd95\ub41c \ud604\ub300\uc801\uc774\uace0 \uac00\ubcbc\uc6b4 \ud504\ub808\uc784\uc6cc\ud06c\uc785\ub2c8\ub2e4.<\/em><\/p>\n<p><a href=\"https:\/\/github.com\/micronaut-projects\/micronaut-core\" target=\"_blank\" rel=\"noopener\">Micronaut<\/a>\ub294 Groovy \uae30\ubc18 Grails \ud504\ub808\uc784\uc6cc\ud06c\uc758 \ud575\uc2ec \ud300\uc774 2018\ub144\uc5d0 \uc81c\uc791\ud588\uc73c\uba70, \uac1c\ubc1c\uc790 \uc0dd\uc0b0\uc131\uc774 \uac15\ub825\ud55c \uac83\uc73c\ub85c \uc720\uba85\ud569\ub2c8\ub2e4. \uc774 \ud300\uc740 Java \ud504\ub808\uc784\uc6cc\ud06c\uac00 \uc804\ud1b5\uc801\uc73c\ub85c \ub7f0\ud0c0\uc784\uc5d0 \uc218\ud589\ub418\ub358 \uc791\uc5c5\uc744 \ucc98\ub9ac\ud558\ub294 \ubc29\uc2dd\uc5d0 \ubcc0\ud654\ub97c \uaf80\ud588\uc2b5\ub2c8\ub2e4. Micronaut\uc740 \ucef4\ud30c\uc77c\ub9c1 \ub2e8\uacc4\uc5d0\uc11c \ub354 \ub9ce\uc740 \uc791\uc5c5\uc744 \ucc98\ub9ac\ud558\uc5ec \uc6d0\ud65c\ud558\uace0 \ud6a8\uc728\uc801\uc778 \uac1c\ubc1c\uc790 \uacbd\ud5d8\uc744 \uc720\uc9c0\ud558\ub294 \ub3d9\uc2dc\uc5d0 \uba54\ubaa8\ub9ac \uc0ac\uc6a9\ub7c9\uacfc \uc2dc\uc791 \uc2dc\uac04\uc744 \ud06c\uac8c \uc904\uc785\ub2c8\ub2e4.<\/p>\n<blockquote class=\"wp-block-quote\">\n<p>Micronaut\ub294 Java, Kotlin, Groovy\ub97c \uc9c0\uc6d0\ud558\uace0 IntelliJ IDEA\ub294 \uc138 \uc5b8\uc5b4 \ubaa8\ub450\uc5d0 \ub300\ud574 \ucd5c\uace0 \uc218\uc900\uc758 \uc9c0\uc6d0\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. Gradle \ub610\ub294 Maven\uc5d0 \ub300\ud55c \ube4c\ub4dc \uc704\uc784, \ub0b4\uc7a5\ub41c <a href=\"https:\/\/www.jetbrains.com\/help\/idea\/http-client-in-product-code-editor.html\" target=\"_blank\" rel=\"noopener\">HTTP \ud074\ub77c\uc774\uc5b8\ud2b8<\/a>, <a href=\"https:\/\/www.jetbrains.com\/help\/idea\/code-coverage.html\" target=\"_blank\" rel=\"noopener\">\ucf54\ub4dc \ucee4\ubc84\ub9ac\uc9c0<\/a> \ub3c4\uad6c, \uac15\ub825\ud55c \ub514\ubc84\uadf8(<a href=\"https:\/\/www.jetbrains.com\/help\/idea\/debug-graalvm-native.html\" target=\"_blank\" rel=\"noopener\">GraalVM \ub124\uc774\ud2f0\ube0c \uc774\ubbf8\uc9c0<\/a> \ud3ec\ud568)\uc640 \uac19\uc740 \uae30\ub2a5\uc744 \uac16\ucd98 IntelliJ IDEA\ub294 \ucd5c\uc2e0 Micronaut \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uac1c\ubc1c\ud558\uace0 \uc720\uc9c0 \uad00\ub9ac\ud558\uae30\uc5d0 \uc774\uc0c1\uc801\uc778 \ud658\uacbd\uc785\ub2c8\ub2e4.<\/p>\n<p><cite><em>\u2014 Sergio del Amo, Micronaut \uac1c\ubc1c \ucc45\uc784\uc790<\/em><\/cite><\/p>\n<\/blockquote>\n<p>Micronaut\ub294 \uc548\uc815\uc131\uacfc \ud604\ub300\uc801 \uac1c\ubc1c\uc5d0 \uc911\uc810\uc744 \ub450\uace0 \uc788\ub294 \ub9cc\ud07c <a href=\"https:\/\/micronaut.io\/micronaut-roadmap\/\" target=\"_blank\" rel=\"noopener\">\uc5c4\uaca9\ud55c \uc720\uc758\uc801 \ubc84\uc804 \uad00\ub9ac<\/a>\ub97c \ub530\ub985\ub2c8\ub2e4. \uc774 \ud504\ub808\uc784\uc6cc\ud06c\uc758 \ud575\uc2ec \ubaa9\ud45c\ub294 \ubcc0\ud558\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4. \ubc14\ub85c \uba54\ubaa8\ub9ac \uc0ac\uc6a9\ub7c9\uc744 \ucd5c\uc18c\ud654\ud558\uace0 \uc2dc\uc791 \uc2dc\uac04\uc744 \ucd5c\uc801\ud654\ud558\uba74\uc11c \ub6f0\uc5b4\ub09c \uac1c\ubc1c\uc790 \uacbd\ud5d8\uc744 \uc81c\uacf5\ud55c\ub2e4\ub294 \uac83\uc774\uba70, \uc774 \ub450 \uac00\uc9c0 \ubaa8\ub450 \uc0dd\uc0b0\uc131\uc5d0 \uc9c1\uc811\uc801\uc778 \uc601\ud5a5\uc744 \ubbf8\uce69\ub2c8\ub2e4.<\/p>\n<h2 id=\"\ud83d\udd0d-opengrok\" class=\"wp-block-heading\"><span class=\"copy-title\">\ud83d\udd0d <\/span>OpenGrok<\/h2>\n<p><em>\ub300\uaddc\ubaa8 \ucf54\ub4dc \ubca0\uc774\uc2a4\ub97c \uc704\ud55c \ube60\ub978 \uc18c\uc2a4 \ucf54\ub4dc \uac80\uc0c9 \ubc0f \uc0c1\ud638 \ucc38\uc870 \uc5d4\uc9c4\uc73c\ub85c, \uc644\uc804\ud55c \uae30\ub2a5\uc744 \uac16\ucd94\uace0 \uc788\uc2b5\ub2c8\ub2e4.<\/em><\/p>\n<p><a href=\"https:\/\/github.com\/oracle\/opengrok\" target=\"_blank\" rel=\"noopener\">OpenGrok<\/a>\uc740 \uac1c\ubc1c\uc790\uac00 \uc5ec\ub7ec \uc5b8\uc5b4 \ubc0f \ubc84\uc804 \uad00\ub9ac \uc2dc\uc2a4\ud15c\uc5d0\uc11c \ubc29\ub300\ud558\uace0 \ubcf5\uc7a1\ud55c \ucf54\ub4dc \ubca0\uc774\uc2a4\ub97c \uc774\ud574\ud558\uace0 \ud0d0\uc0c9\ud558\ub294 \ub370 \ub3c4\uc6c0\uc744 \uc90d\ub2c8\ub2e4. \uc774 \ub3c4\uad6c\ub294 \uc804 \uc138\uacc4 \uc5d4\uc9c0\ub2c8\uc5b4\ub9c1 \ud300\uc5d0\uc11c \uc0ac\uc6a9\ud558\ub294 \uac15\ub825\ud558\uace0 \ud655\uc7a5 \uac00\ub2a5\ud55c \uac80\uc0c9 \ud50c\ub7ab\ud3fc\uc73c\ub85c \uc131\uc7a5\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<blockquote class=\"wp-block-quote\">\n<p>\ucd5c\uadfc\uc5d0 \ud55c \ub3d9\ub8cc\uc5d0\uac8c IntelliJ IDEA\ub97c \uc0ac\uc6a9\ud558\ub294 \uc774\uc720\ub97c \uc124\uba85\ud558\uae30\ub3c4 \ud588\ub294\ub370 \uc774 \ub3c4\uad6c\ub294 \uc2e4\uc81c\ub85c \uc0dd\uc0b0\uc131\uc744 \ub192\uc774\ub294 \ub370 \ub3c4\uc6c0\uc774 \ub429\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, IDE\uc5d0\uc11c \uc2e4\ud589\ub418\ub294 Tomcat \uc778\uc2a4\ud134\uc2a4\uc5d0\uc11c JSP\ub97c \uc9c1\uc811 \ub514\ubc84\uadf8\ud558\uace0, \ub7f0\ud0c0\uc784 \uadf8\ub798\ud504\ub97c \ubcf4\uace0, \uac15\ub825\ud55c \ub9ac\ud329\ud130\ub9c1 \ub3c4\uad6c\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p><cite><em>\u2014 \u013dubo\u0161 Ko\u0161\u010do and Vladim\u00edr Kotal, OpenGrok \uc720\uc9c0 \uad00\ub9ac \ub2f4\ub2f9\uc790<\/em><\/cite><\/p>\n<\/blockquote>\n<p>OpenGrok \uac1c\ubc1c \ud300\uc740 \ud604\uc7ac \ud2b9\ud788 \ub300\uaddc\ubaa8 \ub370\uc774\ud130 \uc138\ud2b8\uc5d0\uc11c \uc131\ub2a5\uacfc \uc548\uc815\uc131\uc744 \uac1c\uc120\ud558\ub294 \ub370 \uc8fc\ub825\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc5ec\uae30\uc5d0\ub294 \uac00\ubcbc\uc6b4 Docker \ucee8\ud14c\uc774\ub108\uc5d0\uc11c OpenGrok\uc744 \ud6a8\uc728\uc801\uc73c\ub85c \uc2e4\ud589\ud558\uae30 \uc704\ud574 \uc0c9\uc778\uc744 \uc0dd\uc131\ud558\ub294 \ub370\uc774\ud130\uc758 \uc591\uc744 \uc904\uc774\uace0 JavaBeans \uc9c1\ub82c\ud654 \ud615\uc2dd\uc744 \ub2e8\uacc4\uc801\uc73c\ub85c \ud3d0\uc9c0\ud558\ub294 \uac83\uc774 \ud3ec\ud568\ub429\ub2c8\ub2e4. \ub2e4\uc74c \ub2e8\uacc4\ub85c, \ud300\uc740 \ubc14\uc774\ub108\ub9ac \ud30c\uc77c \ud615\uc2dd\uc5d0 \ub300\ud55c \uc9c0\uc6d0\uc744 \uac1c\uc120\ud558\uace0 OpenGrok\uc758 \uae30\ub2a5 \ud655\uc7a5\uc744 \uc704\ud574 \uc0c8\ub85c\uc6b4 \ubd84\uc11d\uae30\uc758 \ucd94\uac00 \uac00\ub2a5\uc131\uc744 \ubaa8\uc0c9\ud558\ub294 \uac83\uc744 \ubaa9\ud45c\ub85c \uc0bc\uace0 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n<p>2\ubd80\uc5d0 \uc18c\uac1c\ub420 \ub354 \ub9ce\uc740 \ud504\ub85c\uc81d\ud2b8\ub97c \uae30\ub300\ud574 \uc8fc\uc138\uc694!<\/p>\n<figure class=\"wp-block-image size-full\"><\/figure>\n\n\n<p><em>\uac8c\uc2dc\ubb3c \uc6d0\ubb38 \uc791\uc131\uc790<\/em><\/p>\n\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:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/05\/av_IMG_5504.jpeg\" width=\"200\" height=\"200\" alt=\"Lena Morozova\" 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                                            <h4>Lena Morozova<\/h4>\n                                                        <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n\n\n<p><\/p>\n","protected":false},"author":1191,"featured_media":669190,"comment_status":"closed","ping_status":"closed","template":"","categories":[942,4759],"tags":[104,560,40,8772,8777],"cross-post-tag":[6284],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/blog\/577321"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/users\/1191"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/comments?post=577321"}],"version-history":[{"count":10,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/blog\/577321\/revisions"}],"predecessor-version":[{"id":669408,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/blog\/577321\/revisions\/669408"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/media\/669190"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/media?parent=577321"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/categories?post=577321"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/tags?post=577321"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/cross-post-tag?post=577321"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}