{"id":44324,"date":"2020-06-27T09:14:52","date_gmt":"2020-06-27T00:14:52","guid":{"rendered":"https:\/\/www.charlezz.com\/?p=44324"},"modified":"2020-07-07T09:59:34","modified_gmt":"2020-07-07T00:59:34","slug":"hilt-5-1-core-apis-%ec%bb%b4%ed%8f%ac%eb%84%8c%ed%8a%b8","status":"publish","type":"post","link":"https:\/\/charlezz.com\/?p=44324","title":{"rendered":"[Hilt] 5.1 Core APIs &#8211; \ucef4\ud3ec\ub10c\ud2b8"},"content":{"rendered":"<p><a href=\"https:\/\/dagger.dev\/hilt\/components\">https:\/\/dagger.dev\/hilt\/components<\/a><\/p>\n<hr \/>\n<p><a href=\"https:\/\/www.charlezz.com\/wordpress\/wp-content\/uploads\/2020\/06\/1078edcee19384aeeaa25f053a09c82c.png\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.charlezz.com\/wordpress\/wp-content\/uploads\/2020\/06\/1078edcee19384aeeaa25f053a09c82c-236x300.png\" alt=\"\" width=\"236\" height=\"300\" class=\"aligncenter size-medium wp-image-44317\" srcset=\"https:\/\/charlezz.com\/wordpress\/wp-content\/uploads\/2020\/06\/1078edcee19384aeeaa25f053a09c82c-236x300.png 236w, https:\/\/charlezz.com\/wordpress\/wp-content\/uploads\/2020\/06\/1078edcee19384aeeaa25f053a09c82c-768x975.png 768w, https:\/\/charlezz.com\/wordpress\/wp-content\/uploads\/2020\/06\/1078edcee19384aeeaa25f053a09c82c-807x1024.png 807w, https:\/\/charlezz.com\/wordpress\/wp-content\/uploads\/2020\/06\/1078edcee19384aeeaa25f053a09c82c.png 1145w\" sizes=\"(max-width: 236px) 100vw, 236px\" \/><\/a><\/p>\n<h1>5.1 Core APIs &#8211; Component<\/h1>\n<table style=\"width: 100%; border-collapse: collapse; background-color: #e6ffff;\">\n<tbody>\n<tr>\n<td style=\"width: 100%;\"><em>Note : \ub2e4\uc74c \ub098\uc62c \ub0b4\uc6a9\uc740 \ucef4\ud3ec\ub10c\ud2b8, \ubaa8\ub4c8, \uc2a4\ucf54\ud504 \uadf8\ub9ac\uace0 \ubc14\uc778\ub529\uc744 \ud3ec\ud568\ud558\ub294 Dagger\uc5d0 \ub300\ud55c \uae30\ucd08\uc801\uc778 \ub0b4\uc6a9\uc744 \uc54c\uace0 \uc788\uc74c\uc744 \uac00\uc815\ud55c\ub2e4.<\/em><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>\ucef4\ud3ec\ub10c\ud2b8 \uacc4\uce35<\/h2>\n<p>\uae30\uc874 \uc0ac\uc6a9\ud558\ub358 Dagger\uc640 \ub2e4\ub974\uac8c Hilt\uc0ac\uc6a9\uc790\ub294 Dagger \ucef4\ud3ec\ub10c\ud2b8\ub97c \uc9c1\uc811\uc801\uc73c\ub85c \uc815\uc758\ud558\uac70\ub098 \uc778\uc2a4\ud134\uc2a4\ud654 \ud560 \ud544\uc694\uac00 \uc5c6\uc5b4\uc84c\ub2e4. \ub300\uc2e0\uc5d0 Hilt\ub294 \uc774\ubbf8 \uc815\uc758\ub41c \ucef4\ud3ec\ub10c\ud2b8\ub97c \ud1b5\ud574 \uc0dd\uc131\ub418\ub294 \ud074\ub798\uc2a4\ub4e4\uc744 \uc81c\uacf5\ud558\uace0 \uc788\ub2e4. Hilt\ub294 \uc548\ub4dc\ub85c\uc774\ub4dc Application\uc758 \ub2e4\uc591\ud55c \uc0dd\uba85\uc8fc\uae30\uc5d0 \uc790\ub3d9\uc73c\ub85c \ud1b5\ud569\ub418\ub294 \ub0b4\uc7a5 \ucef4\ud3ec\ub10c\ud2b8 \uc138\ud2b8\ub97c \ud574\ub2f9 \uc2a4\ucf54\ud504 \uc5b4\ub178\ud14c\uc774\uc158\uacfc \ud568\uaed8 \uc81c\uacf5\ud55c\ub2e4. \uc544\ub798\uc5d0 \uc788\ub294 \ub2e4\uc774\uc5b4\uadf8\ub7a8\uc740 \ud45c\uc900 Hilt \ucef4\ud3ec\ub10c\ud2b8 \uacc4\uce35\uc744 \ubcf4\uc5ec\uc8fc\uace0 \uc788\ub2e4. \uac01 \ucef4\ud3ec\ub10c\ud2b8\uc5d0 \uc704\uc5d0 \ub2ec\ub9b0 \uc5b4\ub178\ud14c\uc774\uc158\uc740 \ucef4\ud3ec\ub10c\ud2b8 \ubc14\uc778\ub529\uc758 \uc0dd\uba85\uc8fc\uae30\ub97c \uc9c0\uc815\ud558\ub294 \ub370 \uc0ac\uc6a9\ub41c\ub2e4. \uac01 \ucef4\ud3ec\ub10c\ud2b8 \uc544\ub798\uc5d0 \uc788\ub294 \ud654\uc0b4\ud45c\ub294 \ud558\uc704 \ucef4\ud3ec\ub10c\ud2b8\ub97c \uac00\ub974\ud0a4\uace0 \uc788\ub2e4. \ubcf4\ud1b5 \ud558\uc704 \ucef4\ud3ec\ub10c\ud2b8\uc758 \ubc14\uc778\ub529\uc740 \uc0c1\uc704 \ucef4\ud3ec\ub10c\ud2b8\uc758 \ubc14\uc778\ub529\uc774 \uac00\uc9c0\uace0 \uc788\ub294 \uc758\uc874\uc131\ub4e4\uc744 \uac00\uc9c8 \uc218 \uc788\ub2e4.<\/p>\n<table style=\"width: 100%; border-collapse: collapse; border-color: #ffffff; background-color: #e6ffff;\">\n<tbody>\n<tr>\n<td style=\"width: 100%;\"><em><strong>Note <\/strong>: @InstallIn\uc774 \ub2ec\ub9b0 \ubaa8\ub4c8\uc758 \ubc14\uc778\ub529\uc5d0 \uc2a4\ucf54\ud504\uac00 \uc9c0\uc815\ub420 \ub54c\ub294 \ubc18\ub4dc\uc2dc \ubaa8\ub4c8\uc774 \uc124\uce58\ub418\ub294 \ucef4\ud3ec\ub10c\ud2b8\uc758 \uc2a4\ucf54\ud504\uc640 \uc77c\uce58\ud574\uc57c \ud55c\ub2e4. \uc608\ub97c \ub4e4\uba74, @InstallIn(ActivityComponent.class) \ubaa8\ub4c8\uc740 @ActivityScoped\ub9cc \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/em><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><img decoding=\"async\" src=\"https:\/\/dagger.dev\/hilt\/component-hierarchy.svg\" alt=\"Hilt Component Hierarchy\" \/><\/p>\n<h2>\ucef4\ud3ec\ub10c\ud2b8 \uba64\ubc84 \uc8fc\uc785<\/h2>\n<p>\uc55e\uc5d0\uc11c \ub2e4\ub8ec @AndroidEntryPoint \uc139\uc158\uc5d0\uc11c\ub294 \uc548\ub4dc\ub85c\uc774\ub4dc \ud074\ub798\uc2a4\uc5d0 \uba64\ubc84 \uc8fc\uc785\uc744 \ud558\ub294 \ubc29\ubc95\uc5d0 \ub300\ud574\uc11c \ub2e4\ub918\ub2e4. Hilt \ucef4\ud3ec\ub10c\ud2b8\ub4e4\uc740 \uac01\uac01 \uc548\ub4dc\ub85c\uc774\ub4dc \ud074\ub798\uc2a4\uc5d0 \ub9de\ub294 \uc758\uc874\uc131 \uc8fc\uc785\uc744 \ud574\uc57c \ud560 \uc758\ubb34\uac00 \uc788\ub2e4. \ub2e4\uc74c\uc5d0 \ub098\uc62c \ud45c\uac00 \uc548\ub4dc\ub85c\uc774\ub4dc \ud074\ub798\uc2a4\uc5d0 \uc801\ud569\ud55c Hilt \ucef4\ud3ec\ub10c\ud2b8\ub97c \ubcf4\uc5ec\uc900\ub2e4.<\/p>\n<table>\n<thead>\n<tr>\n<th><strong>Component<\/strong><\/th>\n<th><strong>Injector for<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong><code class=\"language-plaintext highlighter-rouge\">ApplicationComponent<\/code><\/strong><\/td>\n<td><code class=\"language-plaintext highlighter-rouge\">Application<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong><code class=\"language-plaintext highlighter-rouge\">ActivityRetainedComponent<\/code><\/strong><\/td>\n<td><code class=\"language-plaintext highlighter-rouge\">ViewModel<\/code><span>\u00a0<\/span><\/td>\n<\/tr>\n<tr>\n<td><strong><code class=\"language-plaintext highlighter-rouge\">ActivityComponent<\/code><\/strong><\/td>\n<td><code class=\"language-plaintext highlighter-rouge\">Activity<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong><code class=\"language-plaintext highlighter-rouge\">FragmentComponent<\/code><\/strong><\/td>\n<td><code class=\"language-plaintext highlighter-rouge\">Fragment<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong><code class=\"language-plaintext highlighter-rouge\">ViewComponent<\/code><\/strong><\/td>\n<td><code class=\"language-plaintext highlighter-rouge\">View<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong><code class=\"language-plaintext highlighter-rouge\">ViewWithFragmentComponent<\/code><\/strong><\/td>\n<td><code class=\"language-plaintext highlighter-rouge\">View<\/code><span>\u00a0<\/span>with<span>\u00a0<\/span><code class=\"language-plaintext highlighter-rouge\">@WithFragmentBindings<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong><code class=\"language-plaintext highlighter-rouge\">ServiceComponent<\/code><\/strong><\/td>\n<td><code class=\"language-plaintext highlighter-rouge\">Service<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>\ucef4\ud3ec\ub10c\ud2b8\uc758 \uc0dd\uc560<\/h2>\n<p>\ucef4\ud3ec\ub10c\ud2b8\uc758 \uc218\uba85\uc740 \ub2e4\uc74c \ub450\uac00\uc9c0 \uad00\uc810\uc5d0\uc11c \ubcfc \ub54c \ubc14\uc778\ub529\uc758 \uc218\uba85\uacfc \uad00\ub828\ub418\uae30 \ub54c\ubb38\uc5d0 \uc911\uc694\ud558\ub2e4.<\/p>\n<ol>\n<li>\ucef4\ud3ec\ub10c\ud2b8\uac00 \uc0dd\uc131\ub418\uace0 \uc885\ub8cc\ub420 \ub54c, \ud574\ub2f9 \uc2a4\ucf54\ud504 \uc5b4\ub178\ud14c\uc774\uc158\uc774 \uc9c0\uc815\ub41c \ubc14\uc778\ub529 \ub610\ud55c \uc218\uba85\uc744 \ud568\uaed8\ud55c\ub2e4.<\/li>\n<li>\ucef4\ud3ec\ub10c\ud2b8 \uc218\uba85\uc740 \uba64\ubc84 \uc8fc\uc785\ub41c \uac12\ub4e4\uc774 \uc0ac\uc6a9\ub420 \uc218 \uc788\ub294 \uc2dc\uae30\ub97c \ub098\ud0c0\ub0b8\ub2e4. (@Inject \ud544\ub4dc\ub97c \uc0ac\uc6a9\ud560 \ub54c null\uc774\uba74 \uc548\ub41c\ub2e4.)<\/li>\n<\/ol>\n<p>\ucef4\ud3ec\ub10c\ud2b8\uc758 \uc218\uba85\uc740 \uc77c\ubc18\uc801\uc73c\ub85c \uc548\ub4dc\ub85c\uc774\ub4dc \ud074\ub798\uc2a4\uc5d0 \ub300\uc751\ud558\ub294 \uc778\uc2a4\ud134\uc2a4 \uc0dd\uc131\uacfc \uc18c\uba78\uc744 \ub530\ub77c\uac04\ub2e4. \ub2e4\uc74c \ud45c\ub294 \uc2a4\ucf54\ud504 \uc5b4\ub178\ud14c\uc774\uc158\uacfc \uac01 \ucef4\ud3ec\ub10c\ud2b8\uc5d0 \ub9de\ub294 \uc218\uba85\uc744 \ubaa9\ub85d\uc73c\ub85c \ubcf4\uc5ec\uc8fc\uace0 \uc788\ub2e4.<\/p>\n<table>\n<thead>\n<tr>\n<th><strong>Component<\/strong><\/th>\n<th><strong>Scope<\/strong><\/th>\n<th><strong>Created at<\/strong><\/th>\n<th><strong>Destroyed at<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong><code class=\"language-plaintext highlighter-rouge\">ApplicationComponent<\/code><\/strong><\/td>\n<td><code class=\"language-plaintext highlighter-rouge\">@Singleton<\/code><\/td>\n<td><code class=\"language-plaintext highlighter-rouge\">Application#onCreate()<\/code><\/td>\n<td><code class=\"language-plaintext highlighter-rouge\">Application#onDestroy()<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong><code class=\"language-plaintext highlighter-rouge\">ActivityRetainedComponent<\/code><\/strong><\/td>\n<td><code class=\"language-plaintext highlighter-rouge\">@ActivityRetainedScope<\/code><\/td>\n<td><code class=\"language-plaintext highlighter-rouge\">Activity#onCreate()<\/code><sup id=\"fnref:1\"><\/sup><\/td>\n<td><code class=\"language-plaintext highlighter-rouge\">Activity#onDestroy()<\/code><sup id=\"fnref:1:1\"><\/sup><\/td>\n<\/tr>\n<tr>\n<td><strong><code class=\"language-plaintext highlighter-rouge\">ActivityComponent<\/code><\/strong><\/td>\n<td><code class=\"language-plaintext highlighter-rouge\">@ActivityScoped<\/code><\/td>\n<td><code class=\"language-plaintext highlighter-rouge\">Activity#onCreate()<\/code><\/td>\n<td><code class=\"language-plaintext highlighter-rouge\">Activity#onDestroy()<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong><code class=\"language-plaintext highlighter-rouge\">FragmentComponent<\/code><\/strong><\/td>\n<td><code class=\"language-plaintext highlighter-rouge\">@FragmentScoped<\/code><\/td>\n<td><code class=\"language-plaintext highlighter-rouge\">Fragment#onAttach()<\/code><\/td>\n<td><code class=\"language-plaintext highlighter-rouge\">Fragment#onDestroy()<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong><code class=\"language-plaintext highlighter-rouge\">ViewComponent<\/code><\/strong><\/td>\n<td><code class=\"language-plaintext highlighter-rouge\">@ViewScoped<\/code><\/td>\n<td><code class=\"language-plaintext highlighter-rouge\">View#super()<\/code><\/td>\n<td><code class=\"language-plaintext highlighter-rouge\">View<\/code><span>\u00a0<\/span>destroyed<\/td>\n<\/tr>\n<tr>\n<td><strong><code class=\"language-plaintext highlighter-rouge\">ViewWithFragmentComponent<\/code><\/strong><\/td>\n<td><code class=\"language-plaintext highlighter-rouge\">@ViewScoped<\/code><\/td>\n<td><code class=\"language-plaintext highlighter-rouge\">View#super()<\/code><\/td>\n<td><code class=\"language-plaintext highlighter-rouge\">View<\/code><span>\u00a0<\/span>destroyed<\/td>\n<\/tr>\n<tr>\n<td><strong><code class=\"language-plaintext highlighter-rouge\">ServiceComponent<\/code><\/strong><\/td>\n<td><code class=\"language-plaintext highlighter-rouge\">@ServiceScoped<\/code><\/td>\n<td><code class=\"language-plaintext highlighter-rouge\">Service#onCreate()<\/code><\/td>\n<td><code class=\"language-plaintext highlighter-rouge\">Service#onDestroy()<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>\uc2a4\ucf54\ud504 \ubc14\uc778\ub529 vs \ube44 \uc2a4\ucf54\ud504 \ubc14\uc778\ub529<\/h3>\n<p>\uae30\ubcf8\uc801\uc73c\ub85c \ubaa8\ub4e0 Dagger\uc758 \ubc14\uc778\ub529\uc740 \uc2a4\ucf54\ud504 \uc5b4\ub178\ud14c\uc774\uc158\uc774 \uc5c6\ub294 \ube44 \uc2a4\ucf54\ud504 \ubc14\uc778\ub529\uc774\ub2e4. \uc774\ub294 \uac01 \ubc14\uc778\ub529\uc774 \uc694\uccad\ub420 \ub54c\ub9c8\ub2e4 Dagger\ub294 \uc0c8\ub85c\uc6b4 \uc778\uc2a4\ud134\uc2a4\ub97c \uc0dd\uc131\ud558\ub294 \uac83\uc744 \uc758\ubbf8 \ud55c\ub2e4.<\/p>\n<p>\uadf8\ub7ec\ub098 Dagger\ub294 \ucef4\ud3ec\ub10c\ud2b8\uc5d0 \uc2a4\ucf54\ud504 \uc5b4\ub178\ud14c\uc774\uc158\uc744 \uc9c0\uc815\ud560 \uc218 \uc788\ub2e4.(\ubc14\ub85c \uc55e\uc5d0 \ub098\uc628 \ud45c\uc758 \uc2a4\ucf54\ud504 \uc5b4\ub178\ud14c\uc774\uc158\uc744 \uc0b4\ud3b4\ubcf4\uc790). \uc2a4\ucf54\ud504\uac00 \uc9c0\uc815\ub41c \ucef4\ud3ec\ub10c\ud2b8\uc5d0\uc11c \ud574\ub2f9 \uc2a4\ucf54\ud504 \ubc14\uc778\ub529\uc740 \ucef4\ud3ec\ub10c\ud2b8 \uc778\uc2a4\ud134\uc2a4\ub2f9 \ud55c\ubc88\ub9cc \uc0dd\uc131\ub418\uace0, \ud574\ub2f9 \ubc14\uc778\ub529\uc5d0 \ub300\ud55c \ubaa8\ub4e0 \uc694\uccad\uc5d0 \ub3d9\uc77c\ud55c \uc778\uc2a4\ud134\uc2a4\ub97c \uc81c\uacf5\ud55c\ub2e4.<\/p>\n<p>\uc608\ub97c \ub4e4\uba74 \ub2e4\uc74c \ucf54\ub4dc\uc640 \uac19\ub2e4.<\/p>\n<pre><code class=\"language-kotlin\">\/\/ \uc2a4\ucf54\ud504\uac00 \uc9c0\uc815\ub418\uc9c0 \uc54a\uc740 \uc774 \ubc14\uc778\ub529\uc740\r\n\/\/ \uac01 \ubc14\uc778\ub529\uc758 \uc694\uccad\uc5d0 \ub300\ud574 \uc0c8\ub85c\uc6b4 \uc778\uc2a4\ud134\uc2a4\ub97c \uc81c\uacf5\ud558\uac8c \ub41c\ub2e4.\r\nclass UnscopedBinding @Inject constructor() {...}\r\n\r\n\/\/ \uc2a4\ucf54\ud504\uac00 \uc9c0\uc815\ub41c \uc774 \ubc14\uc778\ub529\uc740\r\n\/\/ \uc774 \ubc14\uc778\ub529\uc5d0 \ub300\ud55c \ub3d9\uc77c\ud55c \ucef4\ud3ec\ub10c\ud2b8 \uc778\uc2a4\ud134\uc2a4\ub294 \uac01\uae30 \ub2e4\ub978 \uc694\uccad\uc5d0 \ub300\ud574 \ub3d9\uc77c\ud55c \uc778\uc2a4\ud134\uc2a4\ub97c \uc81c\uacf5\ud55c\ub2e4.\r\n\/\/ @FragmentScoped\ub85c \uc9c0\uc815\ub418\uc5c8\uae30 \ub54c\ubb38\uc5d0 \ub3d9\uc77c\ud55c \ud504\ub808\uadf8\uba3c\ud2b8\uc758 \uc694\uccad\uc5d0 \ub300\ud574 \ub3d9\uc77c\ud55c \uc778\uc2a4\ud134\uc2a4\ub97c \uc81c\uacf5\ud558\uac8c \ub41c\ub2e4.\r\n@FragmentScoped\r\nclass ScopedBinding @Inject constructor() {...}\r\n<\/code><\/pre>\n<table style=\"width: 100%; border-collapse: collapse; background-color: #ffe6e6;\">\n<tbody>\n<tr>\n<td style=\"width: 100%;\"><em><strong>Warning<\/strong> : \uc77c\ubc18\uc801\uc73c\ub85c \uc624\ud574\ud558\ub294 \ubd80\ubd84\uc774 @FragmentScoped\uac00 \uc9c0\uc815\ub41c \ubc14\uc778\ub529\uc774 \ubaa8\ub4e0 \ud504\ub808\uadf8\uba3c\ud2b8 \uc778\uc2a4\ud134\uc2a4\uc5d0 \ub300\ud574 \ub3d9\uc77c\ud55c \ubc14\uc778\ub529 \uc778\uc2a4\ud134\uc2a4\ub97c \uacf5\uc720\ud560 \uac83\uc774\ub77c\uace0 \uae30\ub300\ud558\ub294 \uc810\uc774\ub2e4. \ud558\uc9c0\ub9cc \uc2e4\uc81c\ub85c\ub294 \uadf8\ub807\uc9c0\ub294 \uc54a\uace0 \uac01 \ud504\ub808\uadf8\uba3c\ud2b8 \uc778\uc2a4\ud134\uc2a4\ub294 \uc0c8\ub85c\uc6b4 \ud504\ub808\uadf8\uba3c\ud2b8 \ucef4\ud3ec\ub10c\ud2b8 \uc778\uc2a4\ud134\uc2a4\ub97c \uc5bb\uae30 \ub54c\ubb38\uc5d0 \uac01\uae30 \ub2e4\ub978 \ud504\ub808\uadf8\uba3c\ud2b8 \uc778\uc2a4\ud134\uc2a4\ub294 \uac01\uc790\ub9cc\uc758 \uc2a4\ucf54\ud504 \ub41c \ubc14\uc778\ub529\uc744 \uc5bb\uac8c \ub41c\ub2e4.<\/em><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>\ubaa8\ub4c8\uc5d0\uc11c \uc2a4\ucf54\ud504 \uc5b4\ub178\ud14c\uc774\uc158 \uc0ac\uc6a9\ud558\uae30<\/h3>\n<p>\uc774\uc804 \uc139\uc158\uc5d0\uc11c \uc0dd\uc131\uc790 @Inject\uc758 \ubc14\uc778\ub529\uc5d0 \ub300\ud574 \uc5b4\ub5bb\uac8c \uc2a4\ucf54\ud504 \uc5b4\ub178\ud14c\uc774\uc158\uc744 \uc0ac\uc6a9\ud558\ub294\uc9c0 \uc0b4\ud3b4\ubcf4\uc558\ub2e4. \ud558\uc9c0\ub9cc \uc774 \ubc29\ubc95 \ub9d0\uace0\ub3c4 \ubaa8\ub4c8\uc5d0\uc11c \ubc14\uc778\ub529\uc5d0 \ub300\ud574 \ube44\uc2b7\ud55c \ubc29\ubc95\uc73c\ub85c \uc2a4\ucf54\ud504 \uc5b4\ub178\ud14c\uc774\uc158\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n<pre><code class=\"language-kotlin\">@Module\r\n@InstallIn(FragmentComponent.class)\r\nobject FooModule {\r\n    \/\/ \uc774 \ubc14\uc778\ub529\uc740 \uc2a4\ucf54\ud504 \uc5b4\ub178\ud14c\uc774\uc158\uc774 \uc0ac\uc6a9\ub418\uc9c0 \uc54a\uc558\ub2e4.\r\n    @Provides\r\n    fun provideUnscopedBinding() = UnscopedBinding()\r\n\r\n    \/\/ \uc774 \ubc14\uc778\ub529\uc740 \uc2a4\ucf54\ud504 \uc5b4\ub178\ud14c\uc774\uc158\uc774 \uc0ac\uc6a9\ub418\uc5c8\ub2e4.\r\n    @Provides\r\n    @FragmentScoped\r\n    fun provideScopedBinding() = ScopedBinding()\r\n}\r\n<\/code><\/pre>\n<table style=\"width: 100%; border-collapse: collapse; background-color: #ffe6e6;\">\n<tbody>\n<tr>\n<td style=\"width: 100%;\"><em><strong>Warning<\/strong> : \uc77c\ubc18\uc801\uc73c\ub85c \uc624\ud574\ud558\ub294 \ubd80\ubd84\uc774 \ubaa8\ub4c8\ub0b4\uc5d0 \uc120\uc5b8\ub41c \ubaa8\ub4e0 \ubc14\uc778\ub529\uc774 \ubaa8\ub4c8\uc774 \uc124\uce58\ub418\ub294 \ucef4\ud3ec\ub10c\ud2b8\uc640 \uc218\uba85\uc744 \ud568\uaed8 \ud55c\ub2e4\uace0 \uc0dd\uac01\ud558\ub294 \uac83\uc774\ub2e4. \ud558\uc9c0\ub9cc \uadf8\ub807\uc9c0 \uc54a\uace0, \ub2e8\uc9c0 \uc2a4\ucf54\ud504 \uc5b4\ub178\ud14c\uc774\uc158\uc774 \uc9c0\uc815\ub41c \ubc14\uc778\ub529 \uc120\uc5b8\ub9cc \ud574\ub2f9 \ucef4\ud3ec\ub10c\ud2b8\uc640 \uc218\uba85\uc744 \ud568\uaed8\ud558\uc5ec \uac01 \ubc14\uc778\ub529 \uc694\uccad\ub4e4\uc5d0 \ub300\ud574 \ub3d9\uc77c\ud55c \uc778\uc2a4\ud134\uc2a4\ub97c \uc81c\uacf5\ud55c\ub2e4.<\/em><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>\uc2a4\ucf54\ud504 \uc5b4\ub178\ud14c\uc774\uc158\uc740 \uc5b8\uc81c \uc0ac\uc6a9\ud560\uae4c?<\/h3>\n<p>\ubc14\uc778\ub529\uc5d0 \ub300\ud574 \uc2a4\ucf54\ud504 \uc5b4\ub178\ud14c\uc774\uc158\uc744 \uc9c0\uc815\ud558\ub294 \uac83\uc740 \ucf54\ub4dc \uc0dd\uc131 \ud06c\uae30 \uadf8\ub9ac\uace0 \ub7f0\ud0c0\uc784 \uc131\ub2a5\uc5d0 \uc601\ud5a5\uc744 \ubbf8\uce58\ubbc0\ub85c \uac00\ub2a5\ud55c \uc2a4\ucf54\ud504 \uc5b4\ub178\ud14c\uc774\uc158\uc744 \uc870\uae08\ub9cc \uc0ac\uc6a9\ud558\ub294 \uac83\uc774 \uc88b\ub2e4. \ubc14\uc778\ub529\uc5d0 \ub300\ud574 \uc2a4\ucf54\ud504\ub97c \uc5b4\ub178\ud14c\uc774\uc158\uc744 \uc0ac\uc6a9\ud574\uc57c \ud558\ub294\uc9c0 \uacb0\uc815\ud558\ub294 \uc77c\ubc18\uc801\uc778 \uaddc\uce59\uc740 \ub3d9\uc77c\ud55c \uc778\uc2a4\ud134\uc2a4\ub97c \ubcf4\uc7a5\ud574\uc57c \ud560 \ub9cc\ud07c \ucf54\ub4dc\uc758 \uc815\ud655\uc131\uc774 \ud544\uc694\ud55c \uacbd\uc6b0\ub2e4. \uc131\ub2a5\uc0c1\uc758 \uc774\uc720\ub85c\ub9cc \uc2a4\ucf54\ud504 \uc5b4\ub178\ud14c\uc774\uc158\uc744 \uc0ac\uc6a9\ud574\uc57c \ud55c\ub2e4\uba74, \uba3c\uc800 \uc131\ub2a5\uc774 \ubb38\uc81c\uc778\uc9c0 \ud655\uc778\ud55c \ub4a4 \ud45c\uc900 Hilt \ucef4\ud3ec\ub10c\ud2b8 \uc2a4\ucf54\ud504 \uc5b4\ub178\ud14c\uc774\uc158 \ub300\uc2e0 @Reusable\uc744 \uc0ac\uc6a9\ud558\ub294 \uac83\uc774 \uc88b\ub2e4.<\/p>\n<h2>\ucef4\ud3ec\ub10c\ud2b8\uac00 \uc81c\uacf5\ud558\ub294 \uae30\ubcf8 \ubc14\uc778\ub529<\/h2>\n<p>\uac01 Hilt \ucef4\ud3ec\ub10c\ud2b8\ub294 \uae30\ubcf8 \ubc14\uc778\ub529 \uc138\ud2b8\uc640 \ud568\uaed8 \uc0ac\uc6a9\uc790\uac00 \uc815\uc758\ud55c \ubc14\uc778\ub529\ub4e4\uc744 \uc758\uc874\uc131 \uc8fc\uc785\ud558\uac8c \ub41c\ub2e4.<\/p>\n<table>\n<thead>\n<tr>\n<th><strong>Component<\/strong><\/th>\n<th><strong>Default Bindings<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong><code class=\"language-plaintext highlighter-rouge\">ApplicationComponent<\/code><\/strong><\/td>\n<td><code class=\"language-plaintext highlighter-rouge\">Application<\/code><sup id=\"fnref:2\"><\/sup><\/td>\n<\/tr>\n<tr>\n<td><strong><code class=\"language-plaintext highlighter-rouge\">ActivityRetainedComponent<\/code><\/strong><\/td>\n<td><code class=\"language-plaintext highlighter-rouge\">Application<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong><code class=\"language-plaintext highlighter-rouge\">ActivityComponent<\/code><\/strong><\/td>\n<td><code class=\"language-plaintext highlighter-rouge\">Application<\/code>,<span>\u00a0<\/span><code class=\"language-plaintext highlighter-rouge\">Activity<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong><code class=\"language-plaintext highlighter-rouge\">FragmentComponent<\/code><\/strong><\/td>\n<td><code class=\"language-plaintext highlighter-rouge\">Application<\/code>,<span>\u00a0<\/span><code class=\"language-plaintext highlighter-rouge\">Activity<\/code>,<span>\u00a0<\/span><code class=\"language-plaintext highlighter-rouge\">Fragment<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong><code class=\"language-plaintext highlighter-rouge\">ViewComponent<\/code><\/strong><\/td>\n<td><code class=\"language-plaintext highlighter-rouge\">Application<\/code>,<span>\u00a0<\/span><code class=\"language-plaintext highlighter-rouge\">Activity<\/code>,<span>\u00a0<\/span><code class=\"language-plaintext highlighter-rouge\">View<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong><code class=\"language-plaintext highlighter-rouge\">ViewWithFragmentComponent<\/code><\/strong><\/td>\n<td><code class=\"language-plaintext highlighter-rouge\">Application<\/code>,<span>\u00a0<\/span><code class=\"language-plaintext highlighter-rouge\">Activity<\/code>,<span>\u00a0<\/span><code class=\"language-plaintext highlighter-rouge\">Fragment<\/code>,<span>\u00a0<\/span><code class=\"language-plaintext highlighter-rouge\">View<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong><code class=\"language-plaintext highlighter-rouge\">ServiceComponent<\/code><\/strong><\/td>\n<td><code class=\"language-plaintext highlighter-rouge\">Application<\/code>,<span>\u00a0<\/span><code class=\"language-plaintext highlighter-rouge\">Service<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><a href=\"https:\/\/www.notion.so\/cc01aa80ece9409ea36d867ee81d6177\"><\/a><\/p>\n<ol>\n<li>\uad6c\uc131 \ubcc0\uacbd\uc5d0 \uc758\ud574 Activity\ub294 \uc7ac\uc0dd\uc131 \ub420 \uc218 \uc788\uc73c\ubbc0\ub85c ActivityRetainedComponent \uc5d0\uc11c\ub294 Activity\uc758 \uc778\uc2a4\ud134\uc2a4\ub294 \uae30\ubcf8 \ubc14\uc778\ub529\uc73c\ub85c \uc81c\uacf5\ud558\uc9c0 \uc54a\uace0 \uc788\ub2e4.<\/li>\n<li>Application \ubc14\uc778\ub529\uc740 @ApplicationContext Context \ub610\ub294 Application \uc73c\ub85c \uc694\uccad\ud558\uba74 \uc81c\uacf5 \ubc1b\uc744 \uc218 \uc788\ub2e4.<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>https:\/\/dagger.dev\/hilt\/components 5.1 Core APIs &#8211; Component Note : \ub2e4\uc74c \ub098\uc62c \ub0b4\uc6a9\uc740 \ucef4\ud3ec\ub10c\ud2b8, \ubaa8\ub4c8, \uc2a4\ucf54\ud504 \uadf8\ub9ac\uace0 \ubc14\uc778\ub529\uc744 \ud3ec\ud568\ud558\ub294 Dagger\uc5d0 \ub300\ud55c \uae30\ucd08\uc801\uc778 \ub0b4\uc6a9\uc744 \uc54c\uace0 \uc788\uc74c\uc744 \uac00\uc815\ud55c\ub2e4. \ucef4\ud3ec\ub10c\ud2b8 \uacc4\uce35 \uae30\uc874 \uc0ac\uc6a9\ud558\ub358 Dagger\uc640 \ub2e4\ub974\uac8c Hilt\uc0ac\uc6a9\uc790\ub294 Dagger \ucef4\ud3ec\ub10c\ud2b8\ub97c \uc9c1\uc811\uc801\uc73c\ub85c \uc815\uc758\ud558\uac70\ub098 \uc778\uc2a4\ud134\uc2a4\ud654 \ud560 \ud544\uc694\uac00 \uc5c6\uc5b4\uc84c\ub2e4. \ub300\uc2e0\uc5d0 Hilt\ub294 \uc774\ubbf8 \uc815\uc758\ub41c \ucef4\ud3ec\ub10c\ud2b8\ub97c \ud1b5\ud574 \uc0dd\uc131\ub418\ub294 \ud074\ub798\uc2a4\ub4e4\uc744 \uc81c\uacf5\ud558\uace0 \uc788\ub2e4. Hilt\ub294 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"inline_featured_image":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0},"categories":[28],"tags":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/posts\/44324"}],"collection":[{"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/charlezz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=44324"}],"version-history":[{"count":4,"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/posts\/44324\/revisions"}],"predecessor-version":[{"id":44381,"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/posts\/44324\/revisions\/44381"}],"wp:attachment":[{"href":"https:\/\/charlezz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=44324"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/charlezz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=44324"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/charlezz.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=44324"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}