{"id":233715,"date":"2022-02-18T11:54:32","date_gmt":"2022-02-18T10:54:32","guid":{"rendered":"https:\/\/blog.jetbrains.com\/fleet\/2022\/02\/fleet-below-deck-part-ii-breaking-down-the-editor\/"},"modified":"2025-09-18T15:28:55","modified_gmt":"2025-09-18T14:28:55","slug":"fleet-below-deck-part-ii-breaking-down-the-editor","status":"publish","type":"fleet","link":"https:\/\/blog.jetbrains.com\/ko\/fleet\/2022\/02\/fleet-below-deck-part-ii-breaking-down-the-editor\/","title":{"rendered":"Fleet\uc758 \ub0b4\ubd80 \uad6c\uc870, \ud30c\ud2b8 II \u2013 \uc5d0\ub514\ud130 \ud574\ubd80\ud558\uae30"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_17 counter-hierarchy ez-toc-transparent\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\">\ubaa9\ucc28<\/p>\n<\/p>\n<\/div>\n<nav>\n<ul class=\"ez-toc-list ez-toc-list-level-1\">\n<li class=\"ez-toc-page-1 ez-toc-heading-level-1\"><a class=\"ez-toc-link ez-toc-heading-1\" title=\"An aggregate of data structures\" href=\"https:\/\/blog.jetbrains.com\/fleet\/2022\/02\/fleet-below-deck-part-ii-breaking-down-the-editor\/#An_aggregate_of_data_structures\">\ub370\uc774\ud130 \uad6c\uc870\uc758 \uc9d1\ud569\uccb4<\/a>\n<ul class=\"ez-toc-list-level-2\">\n<li class=\"ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-2\" title=\"Ropes everywhere\" href=\"https:\/\/blog.jetbrains.com\/fleet\/2022\/02\/fleet-below-deck-part-ii-breaking-down-the-editor\/#Ropes_everywhere\">\ubaa8\ub4e0 \uacf3\uc5d0 \uc788\ub294 \ub85c\ud504<\/a>\n<ul class=\"ez-toc-list-level-4\">\n<li class=\"ez-toc-heading-level-4\">\n<ul class=\"ez-toc-list-level-4\">\n<li class=\"ez-toc-heading-level-4\"><a class=\"ez-toc-link ez-toc-heading-3\" title=\"&nbsp;\" href=\"https:\/\/blog.jetbrains.com\/fleet\/2022\/02\/fleet-below-deck-part-ii-breaking-down-the-editor\/#i\">&nbsp;<\/a><\/li>\n<\/ul>\n<\/li>\n<li class=\"ez-toc-page-1 ez-toc-heading-level-3\"><a class=\"ez-toc-link ez-toc-heading-4\" title=\"Interval trees for widgets et al.&nbsp;\" href=\"https:\/\/blog.jetbrains.com\/fleet\/2022\/02\/fleet-below-deck-part-ii-breaking-down-the-editor\/#Interval_trees_for_widgets_et_al\">\uc704\uc82f \ub4f1\uc758 \uac04\uaca9 \ud2b8\ub9ac&nbsp;<\/a><\/li>\n<li class=\"ez-toc-page-1 ez-toc-heading-level-3\"><a class=\"ez-toc-link ez-toc-heading-5\" title=\"Ropes for Tokens and the Abstract Syntax Tree\" href=\"https:\/\/blog.jetbrains.com\/fleet\/2022\/02\/fleet-below-deck-part-ii-breaking-down-the-editor\/#Ropes_for_Tokens_and_the_Abstract_Syntax_Tree\">\ud1a0\ud070\uc5d0 \ub300\ud55c \ub85c\ud504 \ubc0f \ucd94\uc0c1 \uad6c\ubb38 \ud2b8\ub9ac<\/a><\/li>\n<li class=\"ez-toc-page-1 ez-toc-heading-level-3\"><a class=\"ez-toc-link ez-toc-heading-6\" title=\"Ropes for Rendering&nbsp;\" href=\"https:\/\/blog.jetbrains.com\/fleet\/2022\/02\/fleet-below-deck-part-ii-breaking-down-the-editor\/#Ropes_for_Rendering\">\ub80c\ub354\ub9c1\uc744 \uc704\ud55c \ub85c\ud504&nbsp;<\/a><\/li>\n<\/ul>\n<\/li>\n<li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-7\" title=\"A note on immutability\" href=\"https:\/\/blog.jetbrains.com\/fleet\/2022\/02\/fleet-below-deck-part-ii-breaking-down-the-editor\/#A_note_on_immutability\">\ubd88\ubcc0\uc131\uc5d0 \ub300\ud55c \ucc38\uace0 \uc0ac\ud56d<\/a><\/li>\n<\/ul>\n<\/li>\n<li class=\"ez-toc-page-1 ez-toc-heading-level-1\"><a class=\"ez-toc-link ez-toc-heading-8\" title=\"Summary\" href=\"https:\/\/blog.jetbrains.com\/fleet\/2022\/02\/fleet-below-deck-part-ii-breaking-down-the-editor\/#Summary\">\uc694\uc57d<\/a><\/li>\n<\/ul>\n<\/nav>\n<\/div>\n<p>JetBrains\uc758 \ucc28\uc138\ub300 IDE\uc778 Fleet \uad6c\ucd95\uc5d0 \ub300\ud574 \uc54c\uc544\ubcf4\ub294 \uc5f0\uc7ac \uac8c\uc2dc\ubb3c\uc785\ub2c8\ub2e4.<\/p>\n<ul>\n<li><a class=\"ek-link\" href=\"https:\/\/blog.jetbrains.com\/fleet\/2022\/01\/fleet-below-deck-part-i-architecture-overview\/\">\ud30c\ud2b8 I \u2013 \uc544\ud0a4\ud14d\ucc98 \uac1c\uc694<\/a><\/li>\n<li>\ud30c\ud2b8 II \u2013 \uc5d0\ub514\ud130 \ud574\ubd80\ud558\uae30<\/li>\n<\/ul>\n<p>\uc774 \uc2dc\ub9ac\uc988\uc758 \uccab \ud30c\ud2b8\uc5d0\uc11c\ub294 Fleet \uc544\ud0a4\ud14d\ucc98\uc758 \uac1c\uc694\ub97c \uc0b4\ud3b4\ubcf4\uc558\uc2b5\ub2c8\ub2e4. \uc774 \ub450 \ubc88\uc9f8 \ud30c\ud2b8\uc5d0\uc11c\ub294 \uc5d0\ub514\ud130 \ub0b4\ubd80\uc5d0\uc11c \uc0ac\uc6a9\ub418\ub294 \uc54c\uace0\ub9ac\uc998\uacfc \ub370\uc774\ud130 \uad6c\uc870\ub97c \ub2e4\ub8f9\ub2c8\ub2e4.<\/p>\n<h1 id=\"an-aggregate-of-data-structures\"><span id=\"An_aggregate_of_data_structures\" class=\"ez-toc-section\"><\/span>\ub370\uc774\ud130 \uad6c\uc870\uc758 \uc9d1\ud569\uccb4<\/h1>\n<p>\ub2e4\uc74c\uc5d0 \ub098\uc628 Fleet\uc758 \uc5d0\ub514\ud130 \ucc3d \uc2a4\ud06c\ub9b0\uc0f7\uc744 \uc0b4\ud3b4\ubcf4\uc138\uc694.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-231004\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/02\/image-7.png\" alt=\"\" width=\"1126\" height=\"154\"><\/figure>\n<p>\uad6c\ubb38 \uac15\uc870 \ud45c\uc2dc\uac00 \ub418\uc5b4 \uc788\ub294 \ud14d\uc2a4\ud2b8 \uc904\uacfc \ud2b9\uc815 \ubcc0\uc218\uc758 \uc0ac\uc6a9 \uc704\uce58\uc5d0 \ub300\ud55c \uc815\ubcf4\ub97c \uc81c\uacf5\ud558\ub294 \uc704\uc82f\uc774 \uc788\uc2b5\ub2c8\ub2e4. \uc774\uc81c \uc774 \uc815\ubcf4\ub97c \ud45c\uc2dc\ud558\ub294 \ubc29\ubc95\uc5d0\ub294 \uc5ec\ub7ec \uac00\uc9c0\uac00 \uc788\uc9c0\ub9cc \uc5d0\ub514\ud130\uc5d0\uc11c \ubb38\uc81c\ub294 \uc774\uac83\uc774 \uc77d\uae30 \uc804\uc6a9\uc774 \uc544\ub2c8\ub77c\ub294 \uac83\uc785\ub2c8\ub2e4. \ub370\uc774\ud130\ub294 \uc2dc\uac01\uc801\uc73c\ub85c \ud45c\uc2dc\ub420 \ubfd0\ub9cc \uc544\ub2c8\ub77c \uc5c5\ub370\uc774\ud2b8\ub420 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. \ud568\uc218 \uc774\ub984\uc744 \ubcc0\uacbd\ud558\ub294 \uac83\uacfc \uac19\uc740 \uac04\ub2e8\ud55c \uc791\uc5c5\ub3c4 \uad6c\ubb38 \uac15\uc870 \ud45c\uc2dc, \uc0ac\uc6a9 \uc704\uce58\ub294 \ubb3c\ub860 \uc815\uc801 \ubd84\uc11d\uc774\ub098 \uc989\uc11d \ucef4\ud30c\uc77c\uacfc \uac19\uc740 \uae30\ud0c0 \ub9ce\uc740 \uc81c\uacf5 \uae30\ub2a5\uc5d0 \uc601\ud5a5\uc744 \ubbf8\uce60 \uc218 \uc788\uc2b5\ub2c8\ub2e4.&nbsp;<\/p>\n<p>\ud6cc\ub96d\ud55c \uc0ac\uc6a9\uc790 \uacbd\ud5d8\uc744 \uc81c\uacf5\ud558\uae30 \uc704\ud574\uc11c\ub294 \ud14d\uc2a4\ud2b8 \ud3b8\uc9d1\uacfc \uadf8\uc5d0 \ub530\ub978 \uc2dc\uac01\ud654 \uc791\uc5c5\uc744 \ucd5c\ub300\ud55c \ub9e4\ub044\ub7fd\uac8c \uc218\ud589\ud560 \uc218 \uc788\ub3c4\ub85d \ud574\uc57c \ud569\ub2c8\ub2e4. \uc774\ub97c \uc704\ud574\uc11c\ub294 \ud6a8\uc728\uc801\uc778 \ubc29\uc2dd\uc73c\ub85c \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud558\uace0 \uc870\uc791\ud574\uc57c \ud569\ub2c8\ub2e4. \uadf8\ub7ec\ub098 \uc774\uac83\uc774 \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud558\ub294 \uc720\uc77c\ud55c \ubc29\ubc95\uc740 \uc544\ub2d9\ub2c8\ub2e4. \uc0ac\uc2e4 \uc704\uc758 \uc774\ubbf8\uc9c0\ub294 \uc11c\ub85c \ub2e4\ub978 \ub370\uc774\ud130 \uad6c\uc870\ub97c \uc0ac\uc6a9\ud558\uc5ec \ub2e4\uc591\ud55c \ubc29\uc2dd\uc73c\ub85c \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud569\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uad6c\uc870\uac00 \ubaa8\uc5ec\uc11c \uc5d0\ub514\ud130\ub77c\uace0 \ud558\ub294 \ub3c4\uad6c\ub97c \ud615\uc131\ud558\ub294 \uac83\uc774\uc8e0. \uc989, \uc5d0\ub514\ud130\ub97c \ub370\uc774\ud130 \uad6c\uc870\uc758 \uc9d1\ud569\uccb4\ub85c \uc0dd\uac01\ud558\uba74 \uc774\ud574\ud558\uae30 \uc27d\uc2b5\ub2c8\ub2e4!<\/p>\n<p>\uadf8\ub7ec\uba74 \uc790\uc138\ud788 \uc54c\uc544\ubd05\uc2dc\ub2e4!<\/p>\n<h2 id=\"ropes-everywhere\"><span id=\"Ropes_everywhere\" class=\"ez-toc-section\"><\/span>\ubaa8\ub4e0 \uacf3\uc5d0 \uc788\ub294 \ub85c\ud504<\/h2>\n<p>\ub9ce\uc740 \uc591\uc758 \ud14d\uc2a4\ud2b8\ub85c \uc791\uc5c5\ud558\ub294 \ub370 \uc775\uc219\ud55c \ubd84\ub4e4\uc740 \ubb38\uc790\uc5f4(\uc989, \ubb38\uc790 \ubc30\uc5f4)\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc774\ub97c \uc800\uc7a5\ud558\ub294 \uac83\uc774 \uadf8\ub2e4\uc9c0 \ud6a8\uc728\uc801\uc774\uc9c0 \uc54a\ub2e4\ub294 \uc0ac\uc2e4\uc744 \uc774\ubbf8 \uc54c\uace0 \uacc4\uc2e4 \uac81\ub2c8\ub2e4. \uc77c\ubc18\uc801\uc73c\ub85c \ubc30\uc5f4\uc5d0\uc11c \uc774\ub8e8\uc5b4\uc9c0\ub294 \uc791\uc5c5\uc740 \ub354 \ud06c\uac70\ub098 \uc791\uc740 \uc0c8 \ubc30\uc5f4\uc744 \ub9cc\ub4e4\uace0 \ub0b4\uc6a9\uc744 \uc774\uc804 \ubc30\uc5f4\uc5d0\uc11c \uc0c8 \ubc30\uc5f4\ub85c \ubcf5\uc0ac\ud574\uc57c \ud568\uc744 \uc758\ubbf8\ud569\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uc791\uc5c5\uc740 \ud6a8\uc728\uc801\uc774\uae30\uac00 \ub9e4\uc6b0 \uc5b4\ub835\uc2b5\ub2c8\ub2e4.&nbsp;<\/p>\n<p>\uc774\ubcf4\ub2e4 \uc6b0\uc218\ud558\uace0 \ud45c\uc900\ud654\ub41c \uc811\uadfc \ubc29\uc2dd\uc740 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Rope_(data_structure)\" target=\"_blank\" rel=\"noopener\">\ub85c\ud504 \uad6c\uc870<\/a>\ub97c \uc0ac\uc6a9\ud558\ub294 \uac83\uc785\ub2c8\ub2e4. \uc774 \ucd94\uc0c1 \ub370\uc774\ud130 \ud615\uc2dd\uc758 \uae30\ubcf8 \uac1c\ub150\uc740 \ud2b8\ub9ac\uc758 \ub9ac\ud504 \ub178\ub4dc\uc5d0 \ubb38\uc790\uc5f4\uc744 \uc800\uc7a5\ud558\ub294 \uac83\uc785\ub2c8\ub2e4.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-231855\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/02\/1_diagram-2x-1.png\" alt=\"\" width=\"1600\" height=\"832\"><\/figure>\n<p>\uac01 \ub9ac\ud504 \ub178\ub4dc\uc5d0\ub294 \ubb38\uc790\uc5f4(\uc544\ub798 \ucc38\uace0 \ucc38\uc870)\uacfc \uac00\uc911\uce58\ub77c\uace0 \ud558\ub294 \uae38\uc774\uac00 \ud3ec\ud568\ub429\ub2c8\ub2e4. \uac01 \uc911\uac04 \ub178\ub4dc\uc5d0\ub294 \uc67c\ucabd \ud558\uc704 \ud2b8\ub9ac\uc5d0 \uc788\ub294 \ubaa8\ub4e0 \ub9ac\ud504\uc758 \ud569\uc5d0 \ud574\ub2f9\ud558\ub294 \uac00\uc911\uce58\ub3c4 \ud3ec\ud568\ub429\ub2c8\ub2e4.<\/p>\n<p class=\"has-background\" style=\"background-color: #e8e8e8;\"><em><strong>\ucc38\uace0:<\/strong> \ub9ac\ud504\uc5d0 \uc0ac\uc6a9\ub41c \ud14d\uc2a4\ud2b8\ub294 \ub2e8\uc21c\ud55c \uc608\uc774\uba70 Fleet\uc5d0\uc11c \uc2e4\uc81c \ud14d\uc2a4\ud2b8\uac00 \uc5b4\ub5bb\uac8c \uc138\ubd84\ud654\ub418\ub294\uc9c0\ub97c \ub098\ud0c0\ub0b4\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<\/em><\/p>\n<p>\uc704\uc758 \uc608\uc5d0\uc11c \ubb38\uc790 <em>fun<\/em>\uc744 \uac00\uc9c0\uace0 \uc788\ub294 \ub178\ub4dc\ub97c \uc608\ub85c \ub4e4\uba74 \ubb38\uc790\uc5f4\uc758 \uae38\uc774\uac00 3\uc774\uae30 \ub54c\ubb38\uc5d0 \ub178\ub4dc\uc758 \uc218\ub294 3\uac1c\uc785\ub2c8\ub2e4. \uc0c1\uc704 \ub178\ub4dc\ub85c \uc774\ub3d9\ud558\uba74 \uc67c\ucabd\uc5d0 \uc788\ub294 \ubaa8\ub4e0 \ub178\ub4dc\uc758 \uac00\uc911\uce58 \ud569\uc774 3\uc774\ubbc0\ub85c \uac1c\uc218\ub3c4 3\uac1c\uc785\ub2c8\ub2e4. \uadf8\ub7ec\uba74 \uc0c1\uc704\uc758 \uac1c\uc218\ub294 \uc67c\ucabd\uc5d0 \uc788\ub294 \ub9ac\ud504\uc758 \ud569\uc774 3\uacfc 16\uc774\uae30 \ub54c\ubb38\uc5d0 19\uac00 \ub429\ub2c8\ub2e4.&nbsp;<\/p>\n<p>\ubb38\uc790\uc5f4 \uac80\uc0c9, \ucd94\uac00, \uc81c\uac70, \ubd84\ud560\uacfc \uac19\uc740 \uc77c\ubc18\uc801\uc778 \uc791\uc5c5\uc740 O(log N) \uc2dc\uac04 \ubcf5\uc7a1\ub3c4\ub85c \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4(\uc5ec\uae30\uc11c N\uc740 \ubb38\uc790\uc5f4 \uae38\uc774). \uc791\uc5c5\uc740 \ud2b8\ub9ac\ub97c \ud6a1\ub2e8\ud558\ub294 \uac83\uc73c\ub85c \uc2dc\uc791\ud558\uace0 \ub178\ub4dc\uc758 \uc815\ubcf4\uac00 \uc8fc\uc5b4\uc9c0\uba74 \uc791\uc5c5\uc774 \ub354 \ube68\ub77c\uc9d1\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4 \uc704\uce58 <em>i =<\/em> 30\uc5d0\uc11c \ubb38\uc790\ub97c \ucc3e\uace0 \uc2f6\ub2e4\uba74 \ub178\ub4dc\uc5d0\uc11c \uc2dc\uc791\ud558\uace0 30\uc774 \ub178\ub4dc\uc758 \uac00\uc911\uce58(\ubb38\uc790 \uc218)\ubcf4\ub2e4 \uc791\uc73c\uba74 \uc67c\ucabd\uc73c\ub85c \uc774\ub3d9\ud558\uc5ec i\uc5d0\uc11c \uac00\uc911\uce58 \uac12\uc744 \ube8d\ub2c8\ub2e4(\uc544\ub798 \ucc38\uace0 \ucc38\uc870). \ubc18\ub300\ub85c <em>i<\/em>\uac00 \ub354 \ud06c\uba74 \uc624\ub978\ucabd\uc73c\ub85c \uc774\ub3d9\ud569\ub2c8\ub2e4. \uc544\ub798\ub85c \uc774\ub3d9\ud558\uace0 <em>i<\/em> \uac12\uc774 \uac10\uc18c\ud568\uc5d0 \ub530\ub77c \ub9ac\ud504 \ub178\ub4dc\uc5d0 \ub3c4\ub2ec\ud558\uba74 \ub9ac\ud504 \ub178\ub4dc\uac00 \ubcf4\uc720\ud55c \ubb38\uc790\uc5f4\uc758 <em>i<\/em> \uc704\uce58\uc5d0 \uc788\ub294 \ubb38\uc790\uac00 \ubc14\ub85c \uc6b0\ub9ac\uac00 \ucc3e\uace0 \uc788\ub358 \ubb38\uc790\uc785\ub2c8\ub2e4.&nbsp;<\/p>\n<h4><span id=\"i\" class=\"ez-toc-section\"><\/span>&nbsp;<\/h4>\n<p class=\"has-background\" style=\"background-color: #e8e8e8;\"><em><strong>\ucc38\uace0: <\/strong>\uc0ac\uc6a9\ub41c \uba54\ud2b8\ub9ad\uc5d0 \ub530\ub77c \uac10\uc0b0\uc774 \ud544\uc694\ud558\uc9c0 \uc54a\uc744 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. \uc911\uc694\ud55c \uac83\uc740 \ud2b8\ub9ac \uc544\ub798\ub85c \uc774\ub3d9\ud560 \ub54c \ud574\ub2f9 \uc9c0\uc810\uae4c\uc9c0 \uba54\ud2b8\ub9ad\uc744 \ub204\uc801\ud558\uace0 \uc774\ub97c \uc2a4\uce94 \uc911\uc778 \ud0a4\uc640 \ube44\uad50\ud55c\ub2e4\ub294 \uac83\uc785\ub2c8\ub2e4.&nbsp;<\/em><\/p>\n<p>Fleet\uc758 \ub85c\ud504 \uad6c\uc870\uc5d0\uc11c \ub178\ub4dc\ub97c \uc0bd\uc785\ud558\uac70\ub098 \uc0ad\uc81c\ud560 \ub54c \uc790\uccb4 \uade0\ud615\uc744 \uc720\uc9c0\ud558\ub294 <a href=\"https:\/\/en.wikipedia.org\/wiki\/B-tree\" target=\"_blank\" rel=\"noopener\">B-Tree<\/a>\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. 64\uc790\uc758 \uccad\ud06c\ub97c \uc77d\ub294 \uac83\uc73c\ub85c \uc2dc\uc791\ud558\uace0 32\uac1c\uc758 \uccad\ud06c\uc5d0 \ub3c4\ub2ec\ud558\uba74 \ub178\ub4dc\ub97c \ub9cc\ub4e4\uace0 \ub450 \ubc88\uc9f8 \ub178\ub4dc\uc5d0 \ub300\ud55c \uccad\ud06c \uc218\uc9d1\uc744 \uc2dc\uc791\ud569\ub2c8\ub2e4. \uac01 \ub178\ub4dc\uc5d0\ub294 \ub450 \uac1c\uc758 \uc22b\uc790\uac00 \uc788\uc73c\uba70, \uac00\uc911\uce58 \uc678\uc5d0 \ud589 \uc218\ub3c4 \uc800\uc7a5\ud569\ub2c8\ub2e4(\uc774 \ub458\uc758 \uc870\ud569\uc744 <em>\uba54\ud2b8\ub9ad<\/em>\uc774\ub77c\uace0 \ud568).&nbsp;<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-231346\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/02\/2_diagram-2x.png\" alt=\"\" width=\"1600\" height=\"528\"><\/figure>\n<p>\ud589 \uc218\ub97c \uc800\uc7a5\ud558\uba74 \ud2b9\uc815 \uc624\ud504\uc14b\uc73c\ub85c \ub354 \ube60\ub974\uac8c \uc774\ub3d9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. Fleet \ud2b8\ub9ac\uc758 \ub610 \ub2e4\ub978 \ud2b9\uc131\uc740 \uae4a\uac8c\uac00 \uc544\ub2cc \ub113\uac8c \uc720\uc9c0\ud558\ub294 \ub370 \ubaa9\ud45c\ub97c \ub454\ub2e4\ub294 \uac83\uc785\ub2c8\ub2e4.&nbsp;<\/p>\n<h3 id=\"interval-trees-for-widgets-et-al\"><span id=\"Interval_trees_for_widgets_et_al\" class=\"ez-toc-section\"><\/span>\uc704\uc82f \ub4f1\uc758 \uac04\uaca9 \ud2b8\ub9ac&nbsp;<\/h3>\n<p>\uc55e\uc5d0\uc11c \ubcf8 \uac83\ucc98\ub7fc \ucf54\ub4dc \uc870\uac01\uc5d0\ub294 \uc2e4\uc81c \ud14d\uc2a4\ud2b8\ubfd0\ub9cc \uc544\ub2c8\ub77c <em>\uc0ac\uc6a9 \uc704\uce58<\/em>\uc640 \uac19\uc740 \ucd94\uac00 \uc694\uc18c\ub3c4 \ud3ec\ud568\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.&nbsp;<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-231015\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/02\/image-8.png\" alt=\"\" width=\"1126\" height=\"154\"><\/figure>\n<p>\uc6b0\ub9ac\ub294 \uc774\ub7ec\ud55c \uc704\uc82f\uc744 \ud638\ucd9c\ud558\uba70 \uc774\ub294 <em>Find Usages(\uc0ac\uc6a9 \uc704\uce58 \ucc3e\uae30)<\/em> \ub610\ub294 <em>Run(\uc2e4\ud589)<\/em> \uc704\uc82f\uacfc \uac19\uc740 \ud589 \uac04 \uc704\uc82f\uc774\uac70\ub098 \ud3ec\uc2a4\ud2b8\ub77c\uc778(\uc608: \ucf54\ub4dc \uc904 \ub4a4\uc5d0 \ub098\ud0c0\ub098\ub294 \ub514\ubc84\uadf8 \uc815\ubcf4) \ub610\ub294 \uc778\ub808\uc774(\uc608: \ubcc0\uc218 \ubc0f \ub78c\ub2e4\uc5d0 \ub300\ud55c \ud0c0\uc785 \ud78c\ud2b8)\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4.&nbsp;<\/p>\n<p>\uc704\uc82f \uc790\uccb4\ub294 \ub2e8\uc21c\ud788 \ub9c8\ud06c\uc5c5 \uc694\uc18c\uc774\uba70 \uc774\ub97c \ubcf4\uc720\ud558\ub294 \ub370\uc774\ud130 \uad6c\uc870\ub294 \uc5b4\ub5a4 \uba74\uc5d0\uc11c \uc77c\uc885\uc758 \ub85c\ud504 \uad6c\uc870\uc778 <a href=\"https:\/\/www.geeksforgeeks.org\/interval-tree\/\" target=\"_blank\" rel=\"noopener\">\uac04\uaca9 \ud2b8\ub9ac<\/a>\uac00 \ubcc0\ud654\ub41c \ud615\ud0dc\uc785\ub2c8\ub2e4. \uac04\uaca9 \ud2b8\ub9ac\uc5d0\uc11c \ub178\ub4dc\ub294 \ubc94\uc704\ub97c \uac00\uc9c0\uba70 \uac00\uc911\uce58\ub294 \ud558\uc704 \ud2b8\ub9ac \ubc94\uc704\uc758 \ucd5c\ub313\uac12\uc5d0 \ud574\ub2f9\ud569\ub2c8\ub2e4.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-231358\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/02\/3_diagram-2x.png\" alt=\"\" width=\"1600\" height=\"704\"><\/figure>\n<p>Fleet\uc5d0\uc11c \uac01 \ub178\ub4dc\ub294 \ud558\uc704 \ub178\ub4dc\uc758 \uc0c1\ub300\uc801 \uc2dc\uc791\uacfc \ub05d\uc744 \ud3ec\ud568\ud569\ub2c8\ub2e4. \ub9ac\ud504\ub294 \ub2e4\uc2dc \uc2e4\uc81c \uc704\uc82f\uc744 \ud3ec\ud568\ud569\ub2c8\ub2e4. \ud2b9\uc815 \uc88c\ud45c\ub97c \uae30\ubc18\uc73c\ub85c \ud2b9\uc815 \uc704\uc82f\uc744 \ud45c\uc2dc\ud574\uc57c \ud558\ub294\uc9c0 \ud655\uc778\ud558\uae30 \uc704\ud574 \ucffc\ub9ac\ub97c \uc2e4\ud589\ud560 \ub54c \ucffc\ub9ac \uc911\uc778 \ud56d\ubaa9\uacfc \ubc94\uc704\uc758 \uad50\ucc28\uc810\uc744 \ucc3e\uc744 \ub54c\uae4c\uc9c0 \ud2b8\ub9ac\ub97c \ud6a1\ub2e8\ud569\ub2c8\ub2e4.&nbsp;<\/p>\n<p>\uc911\uc694\ud55c \uce21\uba74\uc740 \ub9ac\ud504\uc5d0\ub3c4 \uc704\uc82f ID\uac00 \ud3ec\ud568\ub41c\ub2e4\ub294 \uac83\uc785\ub2c8\ub2e4. \uc989, \ud2b9\uc815 \ubc94\uc704\uc640 \uad50\ucc28\ud558\ub294 \ud56d\ubaa9\uc744 \ucffc\ub9ac\ud558\ub294 \uc678\uc5d0\ub3c4 \ubaa8\ub4e0 \uc704\uc82f\uc5d0 \ub300\ud574 \uc2e4\uc81c\ub85c \uc874\uc7ac\ud558\ub294 \uc704\uce58\ub97c \ud655\uc778\ud558\uae30 \uc704\ud574 \ucffc\ub9ac\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.&nbsp;<\/p>\n<p>\ud45c\uc900 \uac04\uaca9 \ud2b8\ub9ac\uc5d0\uc11c \ubcc0\ud615\ub41c \uac83 \uc911 \ud558\ub098\ub294 Fleet\uc5d0\uc11c \ub178\ub4dc\uac00 \uacb9\uce60 \uc218 \uc788\ub2e4\ub294 \uac83\uc785\ub2c8\ub2e4. \uc774\ub85c \uc778\ud574 \uac80\uc0c9 \ud6a8\uc728\uc774 \ub2e4\uc18c \ub5a8\uc5b4\uc9c8 \uc218 \uc788\uc9c0\ub9cc \uc774\ub97c \ud5c8\uc6a9\ud558\uba74 \uade0\ud615 \uc7a1\ud78c \ud2b8\ub9ac\ub97c \ub9cc\ub4e4\uace0 \uc785\ub825 \uc2dc \ud2b8\ub9ac\uac00 \uc5c5\ub370\uc774\ud2b8\ub418\ub3c4\ub85d \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.&nbsp;<\/p>\n<p>\uc704\uc82f \uc678\uc5d0\ub3c4 Fleet\uc758 \uac04\uaca9 \ud2b8\ub9ac\ub294 \uce90\ub7ff, \ud14d\uc2a4\ud2b8 \uac15\uc870 \ud45c\uc2dc, \uc575\ucee4\ub77c\uace0 \ubd80\ub974\ub294 \ud14d\uc2a4\ud2b8\uc758 <em>\uace0\uc815<\/em> \uc704\uce58\ub97c \ucd94\uc801\ud558\ub294 \ub370\uc5d0\ub3c4 \uc0ac\uc6a9\ub429\ub2c8\ub2e4.<\/p>\n<h3 id=\"ropes-for-tokens-and-the-abstract-syntax-tree\"><span id=\"Ropes_for_Tokens_and_the_Abstract_Syntax_Tree\" class=\"ez-toc-section\"><\/span>\ud1a0\ud070\uc5d0 \ub300\ud55c \ub85c\ud504 \ubc0f \ucd94\uc0c1 \uad6c\ubb38 \ud2b8\ub9ac<\/h3>\n<p>\uc18c\uc2a4 \ucf54\ub4dc\ub85c \uc791\uc5c5\ud560 \ub54c \ucef4\ud30c\uc77c\ub7ec\ub4e0 \uc5d0\ub514\ud130\ub4e0 \uc77c\ubc18\uc801\uc73c\ub85c \ucd94\uc0c1 \uad6c\ubb38 \ud2b8\ub9ac(AST)\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \ucd94\uc0c1 \uad6c\ubb38 \ud2b8\ub9ac\uc758 \uc791\ub3d9 \ubc29\uc2dd\uc740 \ud30c\uc11c\uac00 \uc18c\uc2a4 \ucf54\ub4dc\ub97c \ubd84\uc11d\ud558\uace0 \uc77c\ub828\uc758 \ud1a0\ud070\uc744 \uc0dd\uc131\ud558\ub294 \uac83\uc785\ub2c8\ub2e4. \uc774\ub807\uac8c \uc0dd\uc131\ub41c \ud1a0\ud070\uc740 AST\ub97c \ube4c\ub4dc\ud558\ub294 \ub370 \uc0ac\uc6a9\ub429\ub2c8\ub2e4.&nbsp;<\/p>\n<p>\ub2e4\uc74c\uacfc \uac19\uc740 \ucf54\ub4dc\uac00 \uc788\ub2e4\uace0 \uac00\uc815\ud574\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<p><code>fun compileBundles(ship: JpsModule, model: JpsModel, src: SrcBundles): DstBundles<\/code><\/p>\n<p>\uc774\ub294 \ub2e4\uc74c\uacfc \uac19\uc740 \ud1a0\ud070\uc73c\ub85c \uc138\ubd84\ud654\ub429\ub2c8\ub2e4.<\/p>\n<p><code>[fun][ ][compileBundles][(][ship][:][ ][JpsModule][,][ ][model][:][ ][JpsModel][,][ ][src][:][ ][SrcBundles][)][:][ ][DstBundles]<\/code><\/p>\n<p>\uc5ec\uae30\uc11c \uac01 \ud1a0\ud070\uc740 \ub300\uad04\ud638\ub85c \ud45c\uc2dc\ub429\ub2c8\ub2e4(\ube48 \uacf5\uac04\ub3c4 \ud1a0\ud070\uc774\ub77c\ub294 \uc810\uc5d0 \uc8fc\ubaa9). \uc774\ub7ec\ud55c \ud1a0\ud070\uc740 \ud574\ub2f9 AST\ub97c \ube4c\ub4dc\ud558\ub294 \ub370 \uc0ac\uc6a9\ub429\ub2c8\ub2e4.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-231369\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/02\/4_diagram-2x.png\" alt=\"\" width=\"1600\" height=\"608\"><\/figure>\n<p>\uc774 AST\ub294 \uad6c\ubb38 \uac15\uc870 \ud45c\uc2dc, \uc815\uc801 \ubd84\uc11d \ub4f1\uacfc \uac19\uc740 \ub2e4\uc591\ud55c \uc791\uc5c5\uc5d0 \uc0ac\uc6a9\ub429\ub2c8\ub2e4. \uc774\ub294 \ubaa8\ub4e0 IDE\uc5d0\uc11c \uc911\uc694\ud55c \ubd80\ubd84\uc785\ub2c8\ub2e4.&nbsp;<\/p>\n<p><em>\uc77c\ubd80 \ucf54\ub4dc\uac00 AST\ub85c \ubcc0\ud658\ub418\ub294 \ubc29\uc2dd\uc5d0 \uad00\uc2ec\uc774 \uc788\ub294 \ubd84\ub4e4\uc740 \uc774 <\/em><a href=\"https:\/\/astexplorer.net\/\" target=\"_blank\" rel=\"noopener\"><em>\uba4b\uc9c4 \uc628\ub77c\uc778 AST \ud0d0\uc0c9\uae30<\/em><\/a><em>\ub97c \ud655\uc778\ud558\uc138\uc694(\ub2e4\uc591\ud55c \uc5b8\uc5b4 \uc9c0\uc6d0)&nbsp;<\/em><\/p>\n<p>\uc5d0\ub514\ud130\uc5d0 \uc785\ub825\ud560 \ub54c \ud14d\uc2a4\ud2b8\uac00 \ubcc0\uacbd\ub429\ub2c8\ub2e4. \uc989, \ud1a0\ud070\uc774 \ubcc0\uacbd\ub418\ubbc0\ub85c \uc704\uc758 \uae30\ub2a5\uc744 \uc81c\uacf5\ud560 \uc218 \uc788\ub3c4\ub85d \uc0c8 AST\ub97c \ube4c\ub4dc\ud574\uc57c \ud569\ub2c8\ub2e4.&nbsp;<\/p>\n<p>Fleet\uc5d0\uc11c\ub294 AST\ub97c \uc9c1\uc811 \uc5c5\ub370\uc774\ud2b8\ud558\ub294 \uac83\uc744 \ud53c\ud558\uae30 \uc704\ud574 \ub85c\ud504 \uad6c\uc870\ub97c \uc0ac\uc6a9\ud558\uc5ec \ud1a0\ud070\uc744 \ub9ac\ud504\uc5d0 \uc800\uc7a5\ud569\ub2c8\ub2e4(\uc2e4\uc81c\ub85c\ub294 \uae38\uc774\ub9cc \uc800\uc7a5\ub428). \uc608\ub97c \ub4e4\uc5b4 \uc704\uc758 \ud1a0\ud070 \ubaa9\ub85d\uc740 \ub2e4\uc74c \ud2b8\ub9ac\ub85c \ub098\ud0c0\ub0bc \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-231380\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/02\/5_diagram-2x.png\" alt=\"\" width=\"1600\" height=\"432\"><\/figure>\n<p>\uc608\ub97c \ub4e4\uc5b4 \uc0ac\uc6a9\uc790\uac00 \uacf5\ubc31 \ubb38\uc790\uc640 \uac19\uc774 \ubb34\uc5b8\uac00\ub97c \uc785\ub825\ud558\uba74 \ud2b8\ub9ac\uac00 \uc5c5\ub370\uc774\ud2b8\ub429\ub2c8\ub2e4(\uac00\uc7a5 \uc67c\ucabd \ub9ac\ud504\uc5d0 \uae38\uc774 1\uc774 \ucd94\uac00\ub418\uc5b4 \ud574\ub2f9 \uacbd\ub85c\ub97c \ub530\ub77c \uac1c\uc218\uac00 \uc99d\uac00\ud568)<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-231391\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/02\/6_diagram-2x.png\" alt=\"\" width=\"1600\" height=\"432\"><\/figure>\n<p>\ud2b9\uc815 \ub9ac\ud504\uc5d0 \uc0c8\ub85c\uc6b4 \ud1a0\ud070 \uae38\uc774\uac00 \ucd94\uac00\ub418\uace0, \uc774\ub85c \uc778\ud574 \uac00\uc911\uce58 \uc870\uc815\uc744 \uc704\ud574 \ud2b8\ub9ac\uc758 \ud2b9\uc815 \ub178\ub4dc\uac00 \uc5c5\ub370\uc774\ud2b8\ub429\ub2c8\ub2e4. \uadf8\ub7ec\uba74 \ud30c\uc11c\uac00 AST\ub97c \uc5c5\ub370\uc774\ud2b8\ud558\uace0 \uc7ac\ubd84\uc11d\ud558\ub3c4\ub85d \ud558\ub294 \uc54c\ub9bc\uc744 \uc218\uc2e0\ud569\ub2c8\ub2e4. \ub530\ub77c\uc11c \uba87 \ucd08 \ub3d9\uc548 AST\uac00 \uc644\uc804\ud788 \uc815\ud655\ud558\uc9c0 \uc54a\uc744 \uc218 \uc788\uc9c0\ub9cc \uc5c5\ub370\uc774\ud2b8\ud574\uc57c \ud560 \ub0b4\uc6a9\uc774 \uac70\uc758 \uc5c6\uae30 \ub54c\ubb38\uc5d0 \ud3b8\uc9d1\ud560 \ub54c \uc0ac\uc6a9\uc790 \uacbd\ud5d8\uc774 \ud6e8\uc52c \ub354 \uac1c\uc120\ub429\ub2c8\ub2e4.&nbsp;<\/p>\n<h3 id=\"ropes-for-rendering\"><span id=\"Ropes_for_Rendering\" class=\"ez-toc-section\"><\/span>\ub80c\ub354\ub9c1\uc744 \uc704\ud55c \ub85c\ud504&nbsp;<\/h3>\n<p>\uc544\ub798 \uc774\ubbf8\uc9c0\ub294 \uc5d0\ub514\ud130\uc758 \ub610 \ub2e4\ub978 \uc608\uc774\uc9c0\ub9cc \uc774\ubc88\uc5d0\ub294 \uba87 \uac00\uc9c0 \ucd94\uac00 \uc694\uc18c, \uc989 \uc0ac\uc6a9 \uc704\uce58\ub97c \ud45c\uc2dc\ud558\ub3c4\ub85d \ud655\uc7a5\ub41c \uc2e4\uc81c \uc0ac\uc6a9 \uc704\uce58 \uc704\uc82f, \ud589\uc758 \uc18c\ud504\ud2b8 \ub7a9 \ubc0f \uc2a4\ud06c\ub864 \ub9c9\ub300\uc758 \uc0c9\uc0c1 \uc9c0\uc815\ub41c \uc138\ub85c\uc120\uacfc \uac19\uc740 \uae30\ud0c0 \uc694\uc18c\uac00 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/09\/wXqgUrNtxzOqdwxikmtI_bYmCybYTHy3_yDB6rYyckmXk70lC5rvTul8_67JxxxqsWaS90CYaofSXdWtRgkJ3AFXgJL3NSEf7IToek3oVUtVHOUpMMuO5WMz5Dnk8OCng7pbGXxj-2.png\" alt=\"\"><\/figure>\n<p>\uc704\uc758 \ub0b4\uc6a9\uc744 \ub80c\ub354\ub9c1\ud558\ub824\uba74 \ud2b9\uc815 <em>Y<\/em> \uc88c\ud45c\uc5d0 \ub300\ud574 \uc5b4\ub5a4 \uc904\uc774 \ud45c\uc2dc\ub418\ub294\uc9c0 \uc54c\uc544\uc57c \ud560 \ubfd0\ub9cc \uc544\ub2c8\ub77c \ubaa8\ub4e0 \uc704\uc82f\uacfc \uc18c\ud504\ud2b8 \ub7a9\uc774 \uc801\uc6a9\ub41c \ud589\ub3c4 \uace0\ub824\ud574\uc57c \ud569\ub2c8\ub2e4.&nbsp;<\/p>\n<p class=\"has-background\" style=\"background-color: #e8e8e8;\"><em><strong>\uc7ac\ubbf8\uc788\ub294 \uc0ac\uc2e4:<\/strong> \uc0ac\uc6a9 \uc704\uce58 \uc704\uc82f\uc5d0\uc11c \ub80c\ub354\ub9c1\ub41c \uc5d0\ub514\ud130\ub294 \uc774 \uac8c\uc2dc\ubb3c\uc5d0\uc11c \uc54c\uc544\ubcf4\uace0 \uc788\ub294 \uac83\uacfc \ub3d9\uc77c\ud55c \uae30\ubcf8 \ub370\uc774\ud130 \uad6c\uc870\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \ub3d9\uc77c\ud55c \ud30c\uc77c\uc5d0\uc11c \uc0ac\uc6a9\ud558\ub294 \uacbd\uc6b0, \uc774 \uc624\ubc84\ub808\uc774 \uc5d0\ub514\ud130\ub97c \ube4c\ub4dc\ud558\uace0 \ub80c\ub354\ub9c1\ud558\ub294 \ub370 \ub3d9\uc77c\ud55c \ub85c\ud504\uac00 \uc0ac\uc6a9\ub429\ub2c8\ub2e4.<\/em><\/p>\n<p>\uc704\uc82f\uacfc \uc18c\ud504\ud2b8 \ub7a9 \uc815\ubcf4\ub3c4 \ub85c\ud504 \uad6c\uc870\ub85c \uc800\uc7a5\ub429\ub2c8\ub2e4. \uc774\uc804\uc5d0\ub294 \ud2b8\ub9ac\uc758 \ub9ac\ud504\uac00 \ubb38\uc790\uc5f4\uacfc \uadf8 \uae38\uc774\ub97c \ub2f4\uc558\uc9c0\ub9cc \uc774 \uacbd\uc6b0\uc5d0\ub294 \ub9ac\ud504\uc5d0 <em>SoftLine<\/em> \uac1d\uccb4\ub77c\ub294 \uac83\uc744 \ud3ec\ud568\ud569\ub2c8\ub2e4. \uc774 \uac1d\uccb4\ub294 \ub192\uc774\uc5d0 \uc218\ubc18\ub418\ub294 \ud14d\uc2a4\ud2b8 \uccad\ud06c\uc774\uba70, \uc2dc\uac01\uc801 \uc120\uc73c\ub85c \uac04\uc8fc\ub429\ub2c8\ub2e4. \uc774 \uacbd\uc6b0\uc5d0 \ub178\ub4dc\uc758 \uac00\uc911\uce58(\uba54\ud2b8\ub9ad\uc774\ub77c\uace0 \ud568)\ub294 <em>SoftLine<\/em>\uc758 \ub192\uc774\uc640 \uae38\uc774\uc785\ub2c8\ub2e4. \ubdf0\ud3ec\ud2b8 \ucffc\ub9ac\ub97c \uc9c0\uc6d0\ud560 \uc218 \uc788\ub3c4\ub85d \ub192\uc774\uac00 \uc800\uc7a5\ub429\ub2c8\ub2e4. \uc774 \ub192\uc774\ub294 \ub0b4\ubd80\uc5d0 \uc788\ub294 \uc778\ud130\ub77c\uc778\uc758 \uc601\ud5a5\uc744 \ubc1b\uc2b5\ub2c8\ub2e4. \ub610\ud55c \uc18c\ud504\ud2b8 \ub7a9\uc774 \uc0ac\uc6a9\ub418\uba74 <em>SoftLine<\/em>\uc774 \uc2e4\uc81c \ub77c\uc778\uacfc \uc77c\ub300\uc77c\ub85c \ub300\uc751\ud558\uc9c0 \uc54a\uc73c\uba70 \uc5ec\ub7ec \ub77c\uc778\uc5d0 \uac78\uccd0\uc9c8 \uc218 \uc788\uc2b5\ub2c8\ub2e4.&nbsp;<\/p>\n<h2 id=\"a-note-on-immutability\"><span id=\"A_note_on_immutability\" class=\"ez-toc-section\"><\/span>\ubd88\ubcc0\uc131\uc5d0 \ub300\ud55c \ucc38\uace0 \uc0ac\ud56d<\/h2>\n<p>Fleet\uc5d0\uc11c\ub294 \ubd88\ubcc0\uc131\uc774 \uc218\uc6a9\ub41c\ub2e4\ub294 \uc810\uc774 \uc911\uc694\ud569\ub2c8\ub2e4. \uc21c\uc218\ud55c \ud568\uc218\uc640 \ubd88\ubcc0 \uac1d\uccb4\ub85c \uc791\uc5c5\ud558\uba74 \ub9ce\uc740 \uc774\uc810\uc744 \uc5bb\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc21c\uc218 \ud568\uc218\ub97c \uc0ac\uc6a9\ud558\uba74 \ucf54\ub4dc\uc5d0 \ub300\ud574 \ub354 \uc798 \ucd94\ub860\ud560 \uc218 \uc788\uc744 \ubfd0\ub9cc \uc544\ub2c8\ub77c \ud568\uc218\ub97c \ud638\ucd9c\ud574\ub3c4 \uc2dc\uc2a4\ud15c\uc758 \ub2e4\ub978 \ubd80\ubd84\uc774 \uc790\uae30\ub3c4 \ubaa8\ub974\uac8c \ubcc0\uacbd(\ubd80\uc791\uc6a9\uc774 \ub530\ub984)\ub418\uc9c0 \uc54a\uc744 \uac83\uc774\ub77c\ub294 \uc0ac\uc2e4\uc744 \uc54c \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub370\uc774\ud130 \uce21\uba74\uc5d0\uc11c \uac1d\uccb4\uac00 \ubcc0\uacbd\ub418\uc9c0 \uc54a\ub294\ub2e4\ub294 \uac83\uc740 \uc2a4\ub808\ub4dc\ub85c\ubd80\ud130 \uc548\uc804\ud558\ub2e4\ub294 \uac83\uc744 \uc758\ubbf8\ud558\ubbc0\ub85c \uc5c5\ub370\uc774\ud2b8\ub97c \uc2dc\ub3c4\ud560 \ub54c \uacbd\uc7c1 \uc870\uac74\uc774 \ubc1c\uc0dd\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \ub2e4\uc911 \uc2a4\ub808\ub4dc \ud658\uacbd\uc758 \uacbd\uc6b0\uc5d0 \uc774\ub294 \uc5c4\uccad\ub09c \uc774\uc810\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4.&nbsp;<\/p>\n<p>\uc774\ub7ec\ud55c \ubd88\ubcc0\uc131 \uac1c\ub150\uc740 \ub85c\ud504 \uad6c\uc870\ub97c \uc0ac\uc6a9\ud558\ub294 \uc791\uc5c5\uc5d0\uc11c\ub3c4 \ud575\uc2ec\uc801\uc785\ub2c8\ub2e4. \uc55e\uc11c \uc6b0\ub9ac\ub294 \ud2b8\ub9ac\uc758 \ub178\ub4dc\uc640 \ub9ac\ud504\ub97c \uc5c5\ub370\uc774\ud2b8\ud558\ub294 \ubc29\ubc95\uc5d0 \ub300\ud574 \uc774\uc57c\uae30\ud588\uc2b5\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uc791\uc5c5\uc740 \ubaa8\ub450 \ubd88\ubcc0 \uc870\uac74\uc5d0\uc11c \uc774\ub8e8\uc5b4\uc9d1\ub2c8\ub2e4. \uc989, \ud2b8\ub9ac\uc5d0\uc11c \uc5b4\ub5a4 \uc791\uc5c5\uc744 \uc218\ud589\ud558\uba74 \uc774\uc804 \ud2b8\ub9ac\uc640 \uad6c\uc870\uac00 \ub3d9\uc77c\ud55c \ud2b8\ub9ac\uc758 \uc0c8 \ubcf5\uc0ac\ubcf8\uc774 \ub9cc\ub4e4\uc5b4\uc9d1\ub2c8\ub2e4(\ub2e8, \ub2e8\uc77c \ub178\ub4dc\uc5d0 \ub300\ud55c \ub8e8\ud2b8\ub294 \ubcc0\uacbd\uc774 \ud544\uc694\ud568). \uc77c\ubc18\uc801\uc73c\ub85c \ud2b8\ub9ac\ub294 \ub113\uae30\ub9cc \ud558\uace0 \uae4a\uc9c0\ub294 \uc54a\uae30 \ub54c\ubb38\uc5d0 \uacbd\ub85c\uac00 \ub9e4\uc6b0 \uc9e7\uc2b5\ub2c8\ub2e4. \uc791\uc5c5\uc73c\ub85c \uc778\ud574 \ucc38\uc870\ub418\uc9c0 \uc54a\uc740 \ub178\ub4dc\uac00 \ubc1c\uc0dd\ud558\uba74 \uc774\ub7ec\ud55c \ub178\ub4dc\ub294 \uac00\ube44\uc9c0 \uc218\uc9d1\ub429\ub2c8\ub2e4.<\/p>\n<p>\uc774\ub294 \uc77d\uae30-\uc4f0\uae30 \uc7a0\uae08 \uba54\ucee4\ub2c8\uc998\uc744 \uc0ac\uc6a9\ud558\uc5ec \ubcc0\uacbd\uc744 \uc218\ud589\ud558\ub294 IntelliJ \ud50c\ub7ab\ud3fc\uacfc\ub294 \uc0c1\ub2f9\ud788 \ub2e4\ub978 \uc811\uadfc \ubc29\uc2dd\uc785\ub2c8\ub2e4.&nbsp;<\/p>\n<h1 id=\"summary\"><span id=\"Summary\" class=\"ez-toc-section\"><\/span>\uc694\uc57d<\/h1>\n<p>Fleet\uc774 \ube4c\ub4dc\ub41c \ubc29\uc2dd\uc5d0 \ub300\ud55c \uc774 \ub450 \ubc88\uc9f8 \ud30c\ud2b8\uc5d0\uc11c \uc0b4\ud3b4\ubcf4\uc558\ub4ef\uc774, \ucf54\ub4dc\ub97c \uc785\ub825\ud558\uace0 \uc77d\uc744 \uc218 \uc788\ub294 \uac04\ub2e8\ud55c \uc5d0\ub514\ud130\uc758 \uacbd\uc6b0\uc5d0\ub3c4 \uadf8 \uc774\uba74\uc5d0\ub294 \ub2e4\uc591\ud55c \ub370\uc774\ud130 \uad6c\uc870\uc758 \ubcf5\uc7a1\ud55c \uccb4\uacc4\uac00 \uc788\uace0 \uadf8 \uc911 \ub9ce\uc740 \ubd80\ubd84\uc740 \ub85c\ud504\uc785\ub2c8\ub2e4. \ub85c\ud504\uc5d0 \ub300\ud574 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\ub824\uba74 Fleet \uac1c\ubc1c \uc791\uc5c5\uc5d0 \ud070 \uc601\ud5a5\uc744 \uc8fc\uace0 \uc788\ub294 <a href=\"https:\/\/xi-editor.io\/docs\/rope_science_00.html\" target=\"_blank\" rel=\"noopener\">\ub85c\ud504 \uacfc\ud559<\/a> \uc2dc\ub9ac\uc988\ub97c \ud655\uc778\ud558\uc138\uc694.&nbsp;<\/p>\n<p>\ub2e4\uc74c \uc2dc\uac04\uae4c\uc9c0 \uc990\uac81\uac8c \ud0d0\uad6c\ud558\uc138\uc694!&nbsp;<\/p>\n<p><em>\uac8c\uc2dc\ubb3c \uc6d0\ubb38 \uc791\uc131\uc790<\/em><\/p>\n\n    <div class=\"about-author \">\n        <div class=\"about-author__box\">\n            <div class=\"row\">\n                <div class=\"about-author__box-img\">\n                    <img decoding=\"async\" src=\"https:\/\/secure.gravatar.com\/avatar\/?s=200&#038;r=g\" width=\"200\" height=\"200\" alt=\"\" loading=\"lazy\"  class=\"avatar avatar-200 wp-user-avatar wp-user-avatar-200 photo avatar-default\">\n                <\/div>\n                <div class=\"about-author__box-text\">\n                                                        <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n","protected":false},"author":964,"featured_media":231145,"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\/fleet\/233715"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/fleet"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/types\/fleet"}],"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=233715"}],"version-history":[{"count":7,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/fleet\/233715\/revisions"}],"predecessor-version":[{"id":634035,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/fleet\/233715\/revisions\/634035"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/media\/231145"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/media?parent=233715"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/categories?post=233715"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/tags?post=233715"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/cross-post-tag?post=233715"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}