{"id":44352,"date":"2020-06-28T22:09:11","date_gmt":"2020-06-28T13:09:11","guid":{"rendered":"https:\/\/www.charlezz.com\/?p=44352"},"modified":"2020-06-28T22:09:11","modified_gmt":"2020-06-28T13:09:11","slug":"hilt-7-2-migration-%ec%84%a0%ed%83%9d%ec%a0%81-%ec%a3%bc%ec%9e%85","status":"publish","type":"post","link":"https:\/\/charlezz.com\/?p=44352","title":{"rendered":"[Hilt] 7.2 Migration &#8211; \uc120\ud0dd\uc801 \uc8fc\uc785"},"content":{"rendered":"<p><a href=\"https:\/\/dagger.dev\/hilt\/optional-inject\">https:\/\/dagger.dev\/hilt\/optional-inject<\/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>7.2 Migration &#8211; Optional Injection<\/h1>\n<h2>\uc65c \uc120\ud0dd\uc801 \uc8fc\uc785\uc774 \ud544\uc694\ud55c\uac00?<\/h2>\n<p>Hilt\ub97c \uc0ac\uc6a9\ud558\ub294 Fragment\ub294 Hilt\ub97c \uc0ac\uc6a9\ud558\ub294 Activity\uc5d0 \uc18d\ud574\uc57c \ud558\uace0, Hilt\ub97c \uc0ac\uc6a9\ud558\ub294 Activity\ub294 Hilt\ub97c \uc0ac\uc6a9\ud558\ub294 Application\uc5d0 \uc18d\ud574 \uc788\uc5b4\uc57c \ud55c\ub2e4. \uc774\ub294 \uc21c\uc218\ud55c Hilt \ucf54\ub4dc\ubca0\uc774\uc2a4\ub97c \uc704\ud574\uc11c\ub294 \uc790\uc5f0\uc2a4\ub7ec\uc6b4 \uc81c\uc57d\uc870\uac74\uc774\uba70, Hilt\ub97c \uc0ac\uc6a9\ud558\uc9c0 \uc54a\ub294 Fragment \ub610\ub294 Activity\ub97c \uac00\uc9c0\uace0 \uc788\ub2e4\uba74 \ub9c8\uc774\uadf8\ub808\uc774\uc158 \ud560\ub54c \ubb38\uc81c\uac00 \ub420 \uc218 \uc788\ub2e4. \uc608\ub97c \ub4e4\uba74, Hilt\ub85c \ud504\ub808\uadf8\uba3c\ud2b8\ub97c \ub9c8\uc774\uadf8\ub808\uc774\uc158 \ud558\uae38 \uc6d0\ud558\uc9c0\ub9cc \ud55c\ubc88\uc5d0 \ub9c8\uc774\uadf8\ub808\uc774\uc158 \ud558\uae30\uc5d0\ub294 \ub108\ubb34 \ub9ce\uc740 \uacf3\uc5d0\uc11c \uc0ac\uc6a9\ub418\uace0 \uc788\uc744 \uc218 \uc788\ub2e4. \uc120\ud0dd\uc801 \uc8fc\uc785(Optional Injection)\uc5c6\uc774\ub294 Hilt\ub97c \uc0ac\uc6a9\ud558\ub294 \ud504\ub808\uadf8\uba3c\ud2b8 \uc0ac\uc6a9\ud558\uae30 \uc704\ud574\uc11c\ub294 \ud574\ub2f9 Fragment\ub97c \uc0ac\uc6a9\ud558\ub294 \ubaa8\ub4e0 Activity\ub97c \uba3c\uc800 \ub9c8\uc774\uadf8\ub808\uc774\uc158 \ud574\uc57c \ud55c\ub2e4. \uadf8\ub807\uc9c0 \uc54a\uc73c\uba74, Fragment\ub294 Fragment \uc790\uc2e0\uc5d0\uac8c \uc758\uc874\uc131\uc744 \uc8fc\uc785\ud558\ub824\uace0 \ud560 \ub54c Hilt \ucef4\ud3ec\ub10c\ud2b8\ub97c \ucc3e\uc73c\ub824\ub2e4\uac00 \ud06c\ub798\uc26c\uac00 \ubc1c\uc0dd\ud55c\ub2e4. \ucf54\ub4dc\ubca0\uc774\uc2a4 \uc0ac\uc774\uc988\uc5d0 \ub530\ub77c \uc774\ub294 \ub300\uacf5\uc0ac\uac00 \ub420 \uc218 \uc788\ub2e4.<\/p>\n<h2>@OptionalInject\ub97c \uc0ac\uc6a9\ud558\ub294 \ubc29\ubc95<\/h2>\n<p>@AndroidEntryPoint\ub97c \uc0ac\uc6a9\ud558\ub294 \ud074\ub798\uc2a4\uc640 \ud568\uaed8 @OptionalInject \uc5b4\ub178\ud14c\uc774\uc158\uc744 \ucd94\uac00\ud558\uba74 Hilt\ub97c \uc0ac\uc6a9\ud558\ub294 \uc0c1\uc704 \ud56d\ubaa9\uc774 \uc788\uc744\ub54c\ub9cc \uc8fc\uc785\uc744 \uc2dc\ub3c4 \ud558\uac8c \ub41c\ub2e4. \uc774 \uc5b4\ub178\ud14c\uc774\uc158\uc744 \uc0ac\uc6a9\ud558\ub294 \uac83\uc740 \uc0dd\uc131\ub41c \uae30\ubcf8 \ud074\ub798\uc2a4\uc5d0\uc11c \uc8fc\uc785 \uc131\uacf5\uc2dc true\ub97c \ubc18\ud658\ud558\ub294 wasInjectedByHilt() \uba54\uc11c\ub4dc\ub97c \uc0dd\uc131\ud558\ub294\ub370 \uc601\ud5a5\uc744 \ub07c\uce5c\ub2e4.<\/p>\n<table style=\"width: 100%; border-collapse: collapse; background-color: #e6ffff;\">\n<tbody>\n<tr>\n<td style=\"width: 100%;\"><em>Note : \uae30\ubcf8 \ud074\ub798\uc2a4\uc5d0\uc11c \uc0dd\uc131\ub41c API\ub294 gradle \ud50c\ub7ec\uadf8\uc778 \uc0ac\uc6a9\uc790\uac00 \uc561\uc138\uc2a4 \ud560 \uc218 \uc5c6\uc73c\ubbc0\ub85c, OptionalInjectCheck\uc758 \uc815\uc801 \ud5ec\ud37c \uba54\uc11c\ub4dc\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc774 \uae30\ub2a5\uc5d0 \uc561\uc138\uc2a4 \ud560 \uc218 \uc788\ub294 \ub300\uccb4 API\uac00 \uc788\ub2e4.<\/em><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\uc774\ub97c \ud1b5\ud574 \ub2e4\ub978 \ubc29\ubc95\uc73c\ub85c \uc758\uc874\uc131\uc744 \uc81c\uacf5 \ud560 \uc218 \uc788\ub2e4 (\uc77c\ubc18\uc801\uc73c\ub85c Hilt\ub97c \uc0ac\uc6a9\ud558\uae30 \uc804\uc5d0 \uc758\uc874\uc131\uc744 \uc5bb\ub294 \ubc29\ubc95\uacfc\ub294 \ub2e4\ub974\ub2e4).<\/p>\n<p>\uc608\ub97c \ub4e4\uba74 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n<pre class=\"\"><code class=\"language-kotlin\">@OptionalInject\r\n@AndroidEntryPoint\r\nclass MyFragment : Fragment() {\r\n\r\n    @Inject lateinit var foo: Foooverride fun onAttach(activity: Activity) {\r\n        super.onAttach(activity)  \/\/ \uc8fc\uc785\uc740 \uc5ec\uae30\uc11c \ubc1c\uc0dd\ud55c\ub2e4. \ud558\uc9c0\ub9cc Activity\uac00 Hilt\ub97c \uc0ac\uc6a9\ud560 \ub54c\ub9cc \ubc1c\uc0dd\ud55c\ub2e4.\r\n        if (!wasInjectedByHilt()) {\r\n            \/\/ \uc774\uc804 \ubc29\ubc95\uc73c\ub85c Dagger\ub97c \uc5bb\uace0 \uc8fc\uc785\ud55c\ub2e4\r\n        }\r\n    }\r\n}\r\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>https:\/\/dagger.dev\/hilt\/optional-inject 7.2 Migration &#8211; Optional Injection \uc65c \uc120\ud0dd\uc801 \uc8fc\uc785\uc774 \ud544\uc694\ud55c\uac00? Hilt\ub97c \uc0ac\uc6a9\ud558\ub294 Fragment\ub294 Hilt\ub97c \uc0ac\uc6a9\ud558\ub294 Activity\uc5d0 \uc18d\ud574\uc57c \ud558\uace0, Hilt\ub97c \uc0ac\uc6a9\ud558\ub294 Activity\ub294 Hilt\ub97c \uc0ac\uc6a9\ud558\ub294 Application\uc5d0 \uc18d\ud574 \uc788\uc5b4\uc57c \ud55c\ub2e4. \uc774\ub294 \uc21c\uc218\ud55c Hilt \ucf54\ub4dc\ubca0\uc774\uc2a4\ub97c \uc704\ud574\uc11c\ub294 \uc790\uc5f0\uc2a4\ub7ec\uc6b4 \uc81c\uc57d\uc870\uac74\uc774\uba70, Hilt\ub97c \uc0ac\uc6a9\ud558\uc9c0 \uc54a\ub294 Fragment \ub610\ub294 Activity\ub97c \uac00\uc9c0\uace0 \uc788\ub2e4\uba74 \ub9c8\uc774\uadf8\ub808\uc774\uc158 \ud560\ub54c \ubb38\uc81c\uac00 \ub420 \uc218 \uc788\ub2e4. \uc608\ub97c \ub4e4\uba74, [&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\/44352"}],"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=44352"}],"version-history":[{"count":1,"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/posts\/44352\/revisions"}],"predecessor-version":[{"id":44353,"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/posts\/44352\/revisions\/44353"}],"wp:attachment":[{"href":"https:\/\/charlezz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=44352"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/charlezz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=44352"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/charlezz.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=44352"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}