{"id":385,"date":"2018-06-21T16:43:29","date_gmt":"2018-06-21T07:43:29","guid":{"rendered":"http:\/\/www.charlezz.com\/?p=385"},"modified":"2018-06-21T16:43:29","modified_gmt":"2018-06-21T07:43:29","slug":"android-architecture-components-workmanager","status":"publish","type":"post","link":"https:\/\/charlezz.com\/?p=385","title":{"rendered":"Android Architecture Component &#8211; WorkManager"},"content":{"rendered":"<h1><img decoding=\"async\" class=\"confluence-embedded-image confluence-external-resource image-center\" src=\"http:\/\/www.pacificariptide.com\/.a\/6a00d8341c795b53ef014e87098e1e970d-pi\" data-image-src=\"http:\/\/www.pacificariptide.com\/.a\/6a00d8341c795b53ef014e87098e1e970d-pi\" \/><\/h1>\n<h1>WorkManager\ub85c \uc791\uc5c5 \ucc98\ub9ac \ud558\uae30<\/h1>\n<p>WorkManager API\ub294 \ud2b9\uc815 \uc720\uc608\uac00\ub2a5\ud558\uba70, \ube44\ub3d9\uae30 \uc801\uc778 \uc791\uc5c5\ub4e4\uc744 \uc27d\uac8c \ucc98\ub9ac\ud560 \uc218 \uc788\uac8c \ud574\uc90d\ub2c8\ub2e4. \uc774 API\ub4e4\uc740 \uac1c\ubc1c\uc790\ub4e4\uc774 \uc791\uc5c5(Work)\uc744 \ub9cc\ub4e4\uac8c \ud558\uace0 WorkManager\uc5d0\uac8c \uc791\uc5c5\uc744 \ub118\uae34\ub4a4 \uc989\uac01\uc801\uc73c\ub85c \ub610\ub294 \uc801\ub2f9\ud55c \ub54c\uc5d0 \ud574\ub2f9 \uc791\uc5c5\uc744 \uc218\ud589 \ud560 \uc218 \uc788\ub3c4\ub85d \ud569\ub2c8\ub2e4.<br \/>\n\uc608\ub97c\ub4e4\uba74, \uc571\uc740 \uac00\ub054 \uc0c8\ub85c\uc6b4 \ub9ac\uc18c\uc2a4\ub97c \ub124\ud2b8\uc6cc\ud06c\ub85c\ubd80\ud130 \ub2e4\uc6b4\ub85c\ub4dc \ubc1b\uc544\uc57c\ud558\ub294\ub370, WorkManager\ub97c \uc774\uc6a9\ud55c\ub2e4\uba74 Task\ub97c \uc124\uc815\ud558\uace0, \uc2e4\ud589\ud558\uae30 \uc704\ud55c \ud658\uacb0\uc124\uc815\uc744 \ud574\uc90d\ub2c8\ub2e4(\uc5b4\ub5a4 \uc791\uc5c5\uc744 \ud734\ub300\ud3f0\uc774 \ucda9\uc804\uc911\uc774\uba74\uc11c \ub124\ud2b8\uc6cc\ud06c\uc5d0 \uc5f0\uacb0\ub418\uc5c8\uc744\ub54c\ub9cc \uc218\ud589\ud574! \ucc98\ub7fc\ub9d0\uc774\uc8e0.)<br \/>\n\uadf8\ub9ac\uace0 WorkManager\uc5d0\uac8c \ud574\ub2f9\uc791\uc5c5\uc744 \ub118\uae30\uba74 \uc870\uac74\uc774 \ub9de\uc744\ub54c \u00a0\uc791\uc5c5\uc744 \uc218\ud589\ud558\uac8c \ub429\ub2c8\ub2e4. \uc2ec\uc9c0\uc5b4 \uc571\uc774 \uac15\uc81c\ub85c \uc885\ub8cc\ub418\uac70\ub098 \uae30\uae30\uac00 \uc7ac\ubd80\ud305 \ub418\ub354\ub77c\ub3c4 \uc791\uc5c5\uc218\ud589\uc774 \uc5ec\uc804\ud788 \ubcf4\uc7a5\ub429\ub2c8\ub2e4.<\/p>\n<table class=\"wysiwyg-macro\" style=\"background-image: url('http:\/\/wiki.navercorp.com\/plugins\/servlet\/confluence\/placeholder\/macro-heading?definition=e2luZm99&amp;locale=ko_KR&amp;version=2'); background-repeat: no-repeat;\" data-macro-name=\"info\" data-macro-id=\"e4f908b5-aa10-41f5-b1be-608a8f84e7e9\" data-macro-schema-version=\"1\" data-macro-body-type=\"RICH_TEXT\">\n<tbody>\n<tr>\n<td class=\"wysiwyg-macro-body\">&nbsp;<br \/>\nNote:WorkManager\ub294 \ub9c8\uce58 \uc11c\ubc84\uc5d0 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0 \uad00\ub828\ub41c \ub370\uc774\ud130\ub97c \uc5c5\ub85c\ub4dc \ud558\uac70\ub098 \ud560\ub54c \ucc98\ub7fc, \uc2ec\uc9c0\uc5b4 \uc571\uc774 \uc885\ub8cc\ub418\ub354\ub77c\ub3c4 \uc2dc\uc2a4\ud15c\uc740 \ud558\ub358\uc791\uc5c5\uc744 \uacc4\uc18d\ud574\uc11c \uc218\ud589\ud558\ub824\uace0 \ud560 \uac83\uc785\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uc571-\ud504\ub85c\uc138\uc2a4\uac00 \uc885\ub8cc\ub418\ubc84\ub9b0\ub2e4\uba74 \ud504\ub85c\uc138\uc2a4\ub0b4\uc5d0 \uc788\ub358 \ubc31\uadf8\ub77c\uc6b4\ub4dc \uc791\uc5c5\uc740 \uc548\uc804\ud558\uac8c \uc885\ub8cc\ub418\uc9c0 \ubabb \ud560 \uac81\ub2c8\ub2e4. \uadf8\ub7f4\ub550 <a href=\"https:\/\/developer.android.com\/training\/multiple-threads\/create-threadpool#ThreadPool\">ThreadPools<\/a>\ub97c \uc0ac\uc6a9\ud558\ub294\uac83\uc744 \ucd94\ucc9c\ud569\ub2c8\ub2e4.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>WorkManager\ub294 \uae30\uae30\uc758 API\ub808\ubca8\uacfc \uc571\uc758 \uc0c1\ud0dc \ub4f1\uc758 \uc694\uc18c\ub97c \uae30\ubc18\uc73c\ub85c \ud558\ub294 \uc791\uc5c5\uc744 \uc801\ub2f9\ud55c \ubc29\ubc95\uc744 \ucc3e\uc544 \uc218\ud589\ud569\ub2c8\ub2e4. \ub9cc\uc57d WorkManager\uac00 \uc571\uc774 \uc2e4\ud589\uc911\uc778\ub3d9\uc548\uc5d0 \uc5ec\ub7ec \ud0dc\uc2a4\ud06c\uc911 \ud558\ub098\ub97c \uc2e4\ud589\ud55c\ub2e4\uba74, WorkManager\ub294 \uc571\ud504\ub85c\uc138\uc2a4\ub0b4\uc5d0\uc11c \uc0c8\ub85c\uc6b4 \uc2a4\ub808\ub4dc\ub97c \ud560\ub2f9\ud558\uc5ec \ud574\ub2f9 \uc791\uc5c5\uc744 \uc218\ud589\ud569\ub2c8\ub2e4. \ub9cc\uc57d \uc571\uc774 \uc2e4\ud589\uc911\uc774 \uc544\ub2c8\ub77c\uba74, WorkManager\ub294 \uae30\uae30\uc758 API\ub808\ubca8\uacfc \uc885\uc18d\uc131\ub4f1\uc744 \uace0\ub824\ud558\uc5ec JobScheduler, Firebase JobDispatcher \ub610\ub294 AlarmManager\ub4f1 \uc801\ub2f9\ud55c \ubc29\ubc95\uc73c\ub85c \ubc31\uadf8\ub77c\uc6b4\ub4dc \ud0dc\uc2a4\ud06c\ub97c \ucc98\ub9ac \ud558\uac8c \ub429\ub2c8\ub2e4. \uc5b4\ub5a4\uac8c \uae30\uae30\uac00 \uac16\uace0\uc788\ub294 \uac00\uc6a9\ud560 \uc218 \uc788\ub294 \uc801\ub2f9\ud55c API\uc778\uc9c0 \ucc3e\uace0 \ucf54\ub4dc\ub97c \uc9e4\ud544\uc694\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. \ub300\uc2e0\uc5d0 WorkManager\uc5d0\uac8c \uadf8\ub7f0 \uc791\uc5c5\ub4e4\uc744 \ub118\uaca8\ubc84\ub9ac\uace0 \uc5b4\ub5a4\uac8c \uc81c\uc77c \uc88b\uc740\ubc29\ubc95\uc778\uc9c0 WorkManager\uac00 \uace0\ub974\uac8c \ud558\uba74 \ub429\ub2c8\ub2e4.<br \/>\n\ucd94\uac00\uc801\uc73c\ub85c WorkManager\ub294 \uba87\uba87 \uace0\uae09 \uae30\ub2a5\ub4e4\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. \uc608\ub97c\ub4e4\uba74 \ud558\ub098\uc758 \ud0dc\uc2a4\ud06c\uac00 \ub05d\ub098\uba74 \ubc14\ub85c \ub2e4\uc74c \ud0dc\uc2a4\ud06c\ub97c \uc218\ud589\ud55c\ub2e4\ub358\uac00 \ud558\ub294\u00a0\uc77c\ub828\ub41c \uc791\uc5c5\ub4e4\uc744 \uc124\uc815\ud558\ub294\uac83\ub3c4 \uac00\ub2a5\ud569\ub2c8\ub2e4. \ub610\ud55c \uc791\uc5c5\uc218\ud589\uc0c1\ud0dc\ub97c \ud655\uc778\ud558\uace0 \ud604\uc7ac\uc0c1\ud0dc\ub97c \ub9ac\ud134\ud558\uc5ec\u00a0LiveData\uac00 \uac10\uc9c0\ud560 \uc218 \uc788\uac8c\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. \uc791\uc5c5\uc758 \uc0c1\ud0dc\ub97c \ud654\uba74\uc5d0\uc11c \ud655\uc778\ud558\uace0 \uc2f6\ub2e4\uba74 \uc544\uc8fc \uc720\uc6a9\ud55c \uae30\ub2a5\uc774 \ub420\uac81\ub2c8\ub2e4.<\/p>\n<table class=\"wysiwyg-macro\" style=\"background-image: url('http:\/\/wiki.navercorp.com\/plugins\/servlet\/confluence\/placeholder\/macro-heading?definition=e2luZm99&amp;locale=ko_KR&amp;version=2'); background-repeat: no-repeat;\" data-macro-name=\"info\" data-macro-id=\"7694bfc7-1733-46f4-907b-b36d5f9a4ff1\" data-macro-schema-version=\"1\" data-macro-body-type=\"RICH_TEXT\">\n<tbody>\n<tr>\n<td class=\"wysiwyg-macro-body\">&nbsp;<br \/>\n\uc548\ub4dc\ub85c\uc774\ub4dc \ud504\ub85c\uc81d\ud2b8\uc5d0 WorkManager \uc885\uc18d\uc131\uc744 \ucd94\uac00\ud558\ub824\uba74 \ub2e4\uc74c <a href=\"https:\/\/developer.android.com\/topic\/libraries\/architecture\/adding-components.html#workmanager\">\ub9c1\ud06c<\/a>\ub97c \ud074\ub9ad\ud558\uc138\uc694<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>\uac01 \ud074\ub798\uc2a4\ub4e4\uc758 \uac1c\ub150<\/h2>\n<p>WorkManager API\ub294 \uba87\uba87 \ud074\ub798\uc2a4\ub4e4\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \uba87\uac00\uc9c0 \uacbd\uc6b0\uc5d0\uc11c\ub294, \ud574\ub2f9\ud074\ub798\uc2a4\ub97c \uc0c1\uc18d\ud558\uc5ec \ud558\uc704\ud074\ub798\uc2a4\ub85c \ub9cc\ub4e0\ub2e4\uc74c \uc0ac\uc6a9\ud558\uc5ec\uc57c \ud569\ub2c8\ub2e4.<br \/>\n\uc8fc\uc694 \ud074\ub798\uc2a4\uc758 \uc815\ubcf4\ub294 \uc774\ub807\uc2b5\ub2c8\ub2e4.<\/p>\n<ul style=\"list-style-type: square;\">\n<li><a href=\"https:\/\/developer.android.com\/reference\/androidx\/work\/Worker.html\">Worker<\/a> : \uc5b4\ub5a4 \uc791\uc5c5\uc744 \uc218\ud589\ud560\uc9c0 \uba85\uc2dc\ud569\ub2c8\ub2e4. WorkerManager API\ub294 \ucd94\uc0c1\ud074\ub798\uc2a4\uc778 Worker\ub97c \ud3ec\ud568\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uac1c\ubc1c\uc790\ub294 \uc774 \ud074\ub798\uc2a4\ub97c \uc0c1\uc18d\ud558\uc5ec \uc791\uc5c5\uc744 \uc218\ud589\ud558\uba74 \ub429\ub2c8\ub2e4.<\/li>\n<li><a href=\"https:\/\/developer.android.com\/reference\/androidx\/work\/WorkRequest.html\">WorkRequest<\/a> : \uac1c\ubcc4\uc801\uc778 \uc791\uc5c5\uc744 \ub098\ud0c0\ub0c5\ub2c8\ub2e4. WorkRequest\uac1d\uccb4\ub294 \uc5b4\ub5a4 Worker\ud074\ub798\uc2a4\uac00 \uc5b4\ub5a4 \uc791\uc5c5\uc744 \ud558\ub294\uc9c0 \ucd5c\uc18c\ud55c \uba85\uc2dc\ub97c \ud574\uc918\uc57c \ud569\ub2c8\ub2e4. \uadf8\ub7ec\ub098 \ub610\ud55c, WorkRequest \uac1d\uccb4\ud55c\ud14c \u00a0\uc5b4\ub5a4 \uc870\uac74\uc5d0\uc11c \ub3d9\uc791\ud560\uac74\uc9c0 \uac19\uc740 \uc138\ubd80\uc801\uc778 \ub0b4\uc6a9\ub4e4\uc744 \ucd94\uac00\ud574\uc904 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. \ubaa8\ub4e0 WorkRequest\ub294 \uc790\ub3d9\uc73c\ub85c \uc0dd\uc131\ub41c \uace0\uc720\ud55c ID\ub97c \uac00\uc9c0\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc774 ID\ub97c \uc774\uc6a9\ud558\uc5ec \ud050\uc5d0 \ubc30\uce58\ub41c \uc791\uc5c5\uc744 \ucde8\uc18c\ud558\uac70\ub098 \ud604\uc7ac \ud0dc\uc2a4\ud06c\uc758 \uc791\uc5c5\uc0c1\ud0dc\ub97c \uc54c\uc544\ub0bc\uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. WorkRequest\ub294 \ucd94\uc0c1\uc801\uc778 \ud074\ub798\uc2a4\uc774\uae30 \ub54c\ubb38\uc5d0 OneTimeWorkRequest\ub098 PeriodWorkRequest\uac19\uc740 \ud558\uc704 \ud074\ub798\uc2a4\ub97c \uc9c1\uc811 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n<ul style=\"list-style-type: square;\">\n<li><a href=\"https:\/\/developer.android.com\/reference\/androidx\/work\/WorkRequest.Builder.html\">WorkRequest.Builder<\/a> : WorkRequest\ub97c \ub9cc\ub4e4\uc218 \uc788\uac8c \ub3c4\uc640\uc8fc\ub294 \ud5ec\ud37c \ud074\ub798\uc2a4\uc785\ub2c8\ub2e4. \ub2e4\uc2dc \ub9d0\ud558\uc9c0\ub9cc, OneTimeWorkRequest.Builder \ub610\ub294 PeriodicWorkRequest.Builder \ud074\ub798\uc2a4\uc911 \ud558\ub098\ub97c \uc4f0\uba74 \ub429\ub2c8\ub2e4.<\/li>\n<li><a href=\"https:\/\/developer.android.com\/reference\/androidx\/work\/Constraints.html\">Constraints<\/a> : \uc791\uc5c5\uc774 \uc2e4\ud589\ub418\uc57c\ud560 \uc2dc\uc810\uc5d0 \ub300\ud55c \uc81c\uc57d\uc870\uac74\uc744 \uc124\uc815\ud569\ub2c8\ub2e4. (\uc608\ub97c\ub4e4\uba74 &#8220;\ub124\ud2b8\uc6cc\ud06c\uac00 \uc5f0\uacb0\ub418\uc5c8\uc744\ub54c\ub9cc \uc218\ud589\ud574\uc918!&#8221;) \uac1c\ubc1c\uc790\ub294 Constraints \uac1d\uccb4\ub97c Constraints.Builder\ub97c \ud1b5\ud574 \ub9cc\ub4e4\uace0, Constraints\ub97c WorkRequest.Builder\uc5d0\uac8c WorkRequest\uac00 \ub9cc\ub4e4\uc5b4\uc9c0\uae30\uc804\uc5d0 \ub118\uaca8 \uc90d\ub2c8\ub2e4.<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/developer.android.com\/reference\/androidx\/work\/WorkManager.html\">WorkManager<\/a> : \uc694\uccad\ud55c \uc791\uc5c5\uc744 \ud050\uc5d0 \ub123\uac70\ub098 \uad00\ub9ac\ud569\ub2c8\ub2e4. \uac1c\ubc1c\uc790\ub294 WorkRequest\uac1d\uccb4\ub97c WorkManager\uc5d0\uac8c \ub118\uaca8 \uc791\uc5c5\uc774 \ud050 \ub300\uae30\uc5f4\uc5d0 \ub4e4\uc5b4\uac08\uc218 \uc788\uac8c \ud569\ub2c8\ub2e4.\u00a0WorkManager\ub294 \uc2dc\uc2a4\ud15c\uc790\uc6d0\uc758 \ubd80\ud558\ub97c \ubd84\uc0b0\uc2dc\ud0a4\ub294 \ubc29\uc2dd\uc73c\ub85c \uc791\uc5c5\uc744 \ucc98\ub9ac \ud569\ub2c8\ub2e4.<\/li>\n<li><a href=\"https:\/\/developer.android.com\/reference\/androidx\/work\/WorkStatus.html\">WorkStatus<\/a> : \ud2b9\uc815\uc791\uc5c5\uc5d0 \ub300\ud55c \uc815\ubcf4\ub97c \ud3ec\ud568\ud569\ub2c8\ub2e4. WorkManager\ub294 \uac01 WorkRequest \uac1d\uccb4\uc5d0 \ub300\ud55c LiveData\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4. LiveData\ub294 WorkStatus\ub97c \uac00\uc9c0\uace0 \uc788\uc73c\uba70, \ud574\ub2f9 LiveData\ub97c \uac10\uc9c0\ud558\ub294\uac83\uc73c\ub85c \uac1c\ubc1c\uc790\ub294 \ud604\uc7ac \uc791\uc5c5\uc0c1\ud0dc\uac00 \uc5b4\ub5a4\uc9c0 \uacb0\uc815\ud560\uc218 \uc788\uace0, \uc791\uc5c5\uc774 \ub05d\ub09c\ud6c4\uc5d0 \uc5b4\ub5a4\ud0c0\uc785\uc758 \ubc18\ud658\uac12\uc774\uac74 \ubc1b\uc744\uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ul>\n<h2>\uc77c\ubc18\uc801\uc778 \uc791\uc5c5\ud750\ub984<\/h2>\n<p>\uc0ac\uc9c4 \ub77c\uc774\ube0c\ub7ec\ub9ac \uc571\uc744 \uac1c\ubc1c\ud55c\ub2e4\uace0 \uac00\uc815\ud558\uace0, \uc571\uc740 \uc8fc\uae30\uc801\uc73c\ub85c \uc800\uc7a5\ub41c \uc0ac\uc9c4\uc744 \uc555\ucd95\ud558\ub824\uace0 \ud55c\ub2e4. \uc774\ub7f4\ub54c WorkManager API\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc774\ubbf8\uc9c0 \uc555\ucd95\uc791\uc5c5\uc744 \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uacbd\uc6b0 \uc555\ucd95\uc774 \uc77c\uc5b4\ub098\ub294 \uc2dc\uc810\uc5d0 \ub300\ud574 \uac1c\ubc1c\uc790\uac00 \uc77c\uc77c\uc774 \ub2e4 \uc2e0\uacbd \uc4f8 \ud544\uc694\uac00 \uc5c6\ub2e4. \uadf8\ub0e5 \uc791\uc5c5\uc5d0 \ub300\ud55c \uc14b\ud305\ub9cc \ub05d\ub0b4\uace0 \uc78a\uc5b4\ubc84\ub9ac\uba74\ub41c\ub2e4.<br \/>\n\uba3c\uc800 Worker\ud074\ub798\uc2a4\ub97c \uc815\uc758\ud574\uc57c \ud558\uace0 doWork()\uba54\uc18c\ub4dc\ub97c \uc7ac\uc815\uc758 \ud558\uc790. \ub9cc\ub4e4\uace0\uc790 \ud558\ub294 Worker \ud074\ub798\uc2a4\uc5d0 \uc5b4\ub5a4\uc2dd\uc73c\ub85c \ub3d9\uc791\ud560\uc9c0\uc5d0 \ub300\ud55c \ub0b4\uc6a9\ub9cc \uba85\uc2dc\ud558\ub3c4\ub85d \ud558\uc790. \ud558\uc9c0\ub9cc \uc774 Worker\uac00 \uc5b8\uc81c \uc5b4\ub5bb\uac8c \ub3cc\uc544\uc57c\ud558\ub294\uc9c0\uc5d0 \ub300\ud55c \uc815\ubcf4\ub294 \uc801\uc9c0 \ub9d0\uc790.<\/p>\n<table class=\"wysiwyg-macro\" style=\"background-image: url('http:\/\/wiki.navercorp.com\/plugins\/servlet\/confluence\/placeholder\/macro-heading?definition=e2NvZGV9&amp;locale=ko_KR&amp;version=2'); background-repeat: no-repeat;\" data-macro-name=\"code\" data-macro-id=\"0ab9c967-3c3e-486c-8de8-2adcdd914117\" data-macro-schema-version=\"1\" data-macro-body-type=\"PLAIN_TEXT\">\n<tbody>\n<tr>\n<td class=\"wysiwyg-macro-body\">\n<pre class=\"lang:java decode:true\">public class CompressWorker extends Worker {\n    @Override\n    public Worker.Result doWork() {\n        \/\/ \uc800\uc7a5\ub41c \uc774\ubbf8\uc9c0\ub97c \uc555\ucd95\ud558\ub294 \uc791\uc5c5\uc740 \uc5ec\uae30\uc11c \ud558\uba74\ub41c\ub2e4\n        \/\/ \uc774 \uc608\uc81c\uc5d0\uc11c\ub294 \ub9e4\uac1c\ubcc0\uc218\uac00\uc5c6\ub2e4.\n        \/\/ \ubaa8\ub4e0 \uc0ac\uc9c4\uc744 \uc555\ucd95\ud558\ub294\uac83\uc744 \uc804\uc81c\ub85c \ud55c\ub2e4.\n        myCompress();\n        \/\/ \uc131\uacf5 \ub610\ub294 \uc2e4\ud328\uc5d0 \ub300\ud55c \ubc18\ud658\uac12\uc744 \uc54c\ub824\uc900\ub2e4.\n        return Result.SUCCESS;\n        \/\/ (\ubc18\ud658\uac12\uc774 RETRY\ub77c\uba74 WorkerManager\ub294 \uc791\uc5c5\uc744 \ub098\uc911\uc5d0 \ub2e4\uc2dc \uc218\ud589\ud558\uac8c\ub41c\ub2e4.\n        \/\/ Failure\ub77c\uba74 \ub2e4\uc2dc \uc218\ud589\ud558\uc9c0 \uc54a\ub294\ub2e4.)\n    }\n}<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\ub2e4\uc74c\uc740, Worker\ub97c \uae30\ubc18\uc73c\ub85c \ud558\uc5ec OneTimeWorkRequest\ub97c \ub9cc\ub4e0\ub2e4 \uadf8\ub7f0 \ub4a4 WorkManager\uc5d0\uac8c \uc791\uc5c5\uc744 queue\uc5d0 \ub123\uc5b4\ub2ec\ub77c\uace0 \ud55c\ub2e4.<\/p>\n<table class=\"wysiwyg-macro\" style=\"background-image: url('http:\/\/wiki.navercorp.com\/plugins\/servlet\/confluence\/placeholder\/macro-heading?definition=e2NvZGV9&amp;locale=ko_KR&amp;version=2'); background-repeat: no-repeat;\" data-macro-name=\"code\" data-macro-id=\"05612a69-b00a-462b-be9a-bccf8904848b\" data-macro-schema-version=\"1\" data-macro-body-type=\"PLAIN_TEXT\">\n<tbody>\n<tr>\n<td class=\"wysiwyg-macro-body\">\n<pre class=\"lang:java decode:true\">OneTimeWorkRequest compressionWork =\n        new OneTimeWorkRequest.Builder(CompressWorker.class)\n    .build();\nWorkManager.getInstance().enqueue(compressionWork);<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>WorkManager\ub294 \uc791\uc5c5\uc744 \uc218\ud589\ud560\ub9cc\ud55c \uc801\ub2f9\ud55c \uc2dc\uac04\uc744 \uc120\ud0dd\ud55c\ub2e4. \uc2dc\uc2a4\ud15c\uc758 \ubd80\ud558\uac00 \uc5b4\ub290\uc815\ub3c4\uc778\uc9c0 \uace0\ub824\ud558\uace0, \uae30\uae30\uac00 \ucda9\uc804\uc911\uc778\uc9c0 \uc544\ub2cc\uc9c0 \uae30\ud0c0\ub4f1\ub4f1\uc758 \ubb38\uc81c\ub97c \uc870\uc728\ud55c\ub2e4. \ub300\ubd80\ubd84\uc758 \uacbd\uc6b0\uc5d0\uc11c \uc81c\uc57d\uc870\uac74\uc744 \uba85\uc2dc\ud558\uc9c0 \uc54a\ub294\ub2e4\uba74, WorkManager\ub294 \uc791\uc5c5\uc744 \uc989\uc2dc \uc218\ud589\ud558\uac8c \ub41c\ub2e4. \ub9cc\uc57d \uc791\uc5c5\uc0c1\ud0dc\ub97c \ud655\uc778\ud558\uace0 \uc2f6\ub2e4\uba74 WorkStatus\ub97c \uc5bb\uc73c\uba74 \ub41c\ub2e4. \uc608\ub97c\ub4e4\uc5b4 \uc791\uc5c5\uc774 \ub05d\ub0ac\ub294\uc9c0 \uc54c\uace0 \uc2f6\ub2e4\uba74 \ub2e4\uc74c\uacfc \uac19\uc774 \ud558\uba74\ub41c\ub2e4.<\/p>\n<table class=\"wysiwyg-macro\" style=\"background-image: url('http:\/\/wiki.navercorp.com\/plugins\/servlet\/confluence\/placeholder\/macro-heading?definition=e2NvZGV9&amp;locale=ko_KR&amp;version=2'); background-repeat: no-repeat;\" data-macro-name=\"code\" data-macro-id=\"246ff40e-36bd-4752-9f8a-9ded909e49e3\" data-macro-schema-version=\"1\" data-macro-body-type=\"PLAIN_TEXT\">\n<tbody>\n<tr>\n<td class=\"wysiwyg-macro-body\">\n<pre class=\"lang:java decode:true\">WorkManager.getInstance().getStatusById(compressionWork.getId())\n    .observe(lifecycleOwner, workStatus -&gt; {\n        \/\/ \uc791\uc5c5\uc0c1\ud0dc\uc5d0\ub530\ub978 \ucc98\ub9ac\ub294 \uc774\uacf3\uc5d0\uc11c \ud558\uba74 \ub41c\ub2e4.\n        if (workStatus != null &amp;&amp; workStatus.getState().isFinished()) {\n            \/\/ ...\n        }\n    });<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>\uc791\uc5c5 \uc81c\uc57d\uc870\uac74<\/h3>\n<p>\ub9cc\uc57d \uc6d0\ud55c\ub2e4\uba74, \uc5b8\uc81c \uc791\uc5c5\uc744 \uc218\ud589\ud558\ub294\uc9c0 \uc81c\uc57d\uc870\uac74\uc744 \uba85\uc2dc\ud560 \uc218\ub3c4 \uc788\ub2e4. \uc608\ub97c\ub4e4\uc5b4 \uae30\uae30\uac00 idle\uc0c1\ud0dc\uc774\uba74\uc11c \ucda9\uc804\uc911\uc77c\ub54c\ub9cc \uc218\ud589\ud558\uace0 \uc2f6\uc740\uc791\uc5c5\uc774 \uc788\uc744\uc218 \uc788\ub2e4. \uc774\ub7f0\uacbd\uc6b0 OneTimeWorkRequest.Builder\ub97c \ub9cc\ub4e4\uc5b4\uc57c\ud558\uace0 \ud574\ub2f9 \ube4c\ub354\ub97c \ud1b5\ud574 OneTimeWorkRequest\ub97c \ub9cc\ub4e4\ub3c4\ub85d \ud558\uc790.<\/p>\n<table class=\"wysiwyg-macro\" style=\"background-image: url('http:\/\/wiki.navercorp.com\/plugins\/servlet\/confluence\/placeholder\/macro-heading?definition=e2NvZGV9&amp;locale=ko_KR&amp;version=2'); background-repeat: no-repeat;\" data-macro-name=\"code\" data-macro-id=\"b273b989-eec0-4c2b-bbed-32c9f3a93528\" data-macro-schema-version=\"1\" data-macro-body-type=\"PLAIN_TEXT\">\n<tbody>\n<tr>\n<td class=\"wysiwyg-macro-body\">\n<pre class=\"lang:java decode:true\">\/\/ \uc5b8\uc81c \uc791\uc5c5\uc744 \uc218\ud589\ud560\uc9c0 \ub300\ud55c Constraints\ub97c \ub9cc\ub4e4\uc790.\nConstraints myConstraints = new Constraints.Builder()\n    .setRequiresDeviceIdle(true)\n    .setRequiresCharging(true)\n    .build();\n\/\/ \uadf8\ub7f0\ub2e4\uc74c \uc704\uc5d0\uc11c \ub9cc\ub4e0 \uc81c\uc57d \uc870\uac74\uc744 \uc774\uc6a9\ud558\uc5ec OneTimeWorkRequest\ub97c \ub9cc\ub4e4\uc790\nOneTimeWorkRequest compressionWork =\n                new OneTimeWorkRequest.Builder(CompressWorker.class)\n     .setConstraints(myConstraints)\n     .build();<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\uadf8\ub7f0\ub2e4\uc74c \uc544\uae4c \ub9d0\ud588\ub4ef\uc774 WorkManager.enqueue()\uc5d0\uac8c OneTimeWorkRequest \uac1d\uccb4\ub97c \ub118\uae30\uc790. WorkManager\ub294 \uac1c\ubc1c\uc790\uac00 \uc801\uc740 \uc81c\uc57d\uc870\uac74\ub4e4\uc744 \uc0b4\ud3b4\ubcf4\uace0 \uc5b8\uc81c \uc218\ud589\ud558\uba74 \uc88b\uc744\uc9c0 \uacb0\uc815\ud55c\ub2e4.<\/p>\n<h3>\uc791\uc5c5 \ucde8\uc18c\ud558\uae30<\/h3>\n<p>\ud050\uc5d0 \ub123\uc740 \uc791\uc5c5\uc744 \ucde8\uc18c\ud560\uc218\ub3c4 \uc788\ub2e4. \ucde8\uc18c\ud558\uae30 \uc704\ud574\uc11c\ub294 WorkRequest\ub85c \ubd80\ud130 \uc5bb\uc740 work ID\uac00 \ud544\uc694\ud558\ub2e4. \uc608\ub97c\ub4e4\uc5b4 \uc544\ub798\uc758 \ucf54\ub4dc\ub294 \uc555\ucd95\uc791\uc5c5\uc744 \ucde8\uc18c\ud558\ub294 \uc608\uc81c\uc774\ub2e4.<\/p>\n<table class=\"wysiwyg-macro\" style=\"background-image: url('http:\/\/wiki.navercorp.com\/plugins\/servlet\/confluence\/placeholder\/macro-heading?definition=e2NvZGV9&amp;locale=ko_KR&amp;version=2'); background-repeat: no-repeat;\" data-macro-name=\"code\" data-macro-id=\"861d588d-9600-42d4-96f0-ff91901de98d\" data-macro-schema-version=\"1\" data-macro-body-type=\"PLAIN_TEXT\">\n<tbody>\n<tr>\n<td class=\"wysiwyg-macro-body\">\n<pre class=\"lang:java decode:true\">UUID compressionWorkId = compressionWork.getId();\nWorkManager.getInstance().cancelWorkById(compressionWorkId);<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>WorkManager\ub294 \ucd5c\uc0c1\uc758 \ub178\ub825\uc73c\ub85c \uc8fc\uc5b4\uc9c4 \uc791\uc5c5\uc744 \ucde8\uc18c\uc2dc\ud0a8\ub2e4. \ud558\uc9c0\ub9cc \uc774\uac83\uc740 \ubcf8\uc9c8\uc801\uc73c\ub85c \ubd88\ubd84\uba85\ud558\ub2e4. \ucde8\uc18c\ub97c \ud558\ub824\uace0 \ud560\ub54c\uc5d0\u00a0\uc774 \uc791\uc5c5\uc774 \uc218\ud589\uc911\uc778\uc9c0 \ub05d\ub0ac\ub294\uc9c0 \ubaa8\ub978\ub2e4. \ub610\ud55c WorkManager\ub294 \uace0\uc720\ud55c \uc21c\ucc28\uc791\uc5c5 \ub610\ub294 \ubaa8\ub4e0 \ud0dc\uadf8\uac00 \uc788\ub294 \uc791\uc5c5\ub4e4\uc5d0 \ub300\ud574\uc11c \ucd5c\uc120\uc744 \ub2e4\ud574 \ubaa8\ub4e0\uc791\uc5c5\ub4e4\uc744 \ucde8\uc18c\uc2dc\ud0a4\ub294 \uba54\uc18c\ub4dc\ub3c4 \uc81c\uacf5\ud55c\ub2e4.<\/p>\n<h2>\uace0\uae09 \uae30\ub2a5<\/h2>\n<p>WorkManager\uc758 \ud575\uc2ec \ubaa9\uc801\uc740 \uac04\ub2e8\ud558\uac8c \ub9cc\ub4e4\uace0, \uc77c\uc744 \ub358\uc9c0\uace0 \uc78a\uc73c\ub77c\ub294 \uac83\uc774\ub2e4.<br \/>\n\ubc18\uba74\uc5d0 \uc815\uad50\ud55c \uc791\uc5c5\uc744 \ud558\uae30\uc704\ud55c \uace0\uae09 \uae30\ub2a5\ub4e4\uc744 \uc81c\uacf5\ud558\uae30\ub3c4 \ud55c\ub2e4.<\/p>\n<h3>\ubc18\ubcf5 \uc791\uc5c5<\/h3>\n<p>\ubc18\ubcf5\uc801\uc73c\ub85c \uc218\ud589\uc744 \ud544\uc694\ub85c \ud558\ub294 \uc791\uc5c5\uc774 \uc788\uc744 \uc218 \uc788\ub2e4. \uc608\ub97c \ub4e4\uba74 \uc0ac\uc9c4 \uad00\ub9ac \uc571\uc774 \ud55c\ubc88\ub9cc \uc555\ucd95\ud558\ub294\uac83\uc744 \uc6d0\uce58 \uc54a\ub294\ub2e4\uba74. \ub354 \ub098\uc544\uac00 \uc0ac\uc9c4\ub4e4\uc744 \ub9e4\ubc88 \uc870\uc0ac\ud558\uc5ec \uc555\ucd95\uc774 \ud544\uc694\ud55c \uc0c8\ub85c\uc6b4 \uc774\ubbf8\uc9c0\ub098 \ubcc0\uacbd\ub41c \uc774\ubbf8\uc9c0\uac00 \uc788\ub294\uc9c0 \ud655\uc778\ud558\uace0 \uc2f6\uc5b4\ud560 \uc218 \uc788\ub2e4. \uc774\ub7f0 \ubc18\ubcf5\ub418\ub294 \uc791\uc5c5\uc740 \ucc3e\uc740 \uc774\ubbf8\uc9c0\ub97c \uc555\ucd95\ud558\uac70\ub098 \uc0c8\ub85c\uc6b4 &#8220;\uc774\ubbf8\uc9c0 \uc555\ucd95&#8221; \uc791\uc5c5\uc744 \uc218\ud589\ud560 \uc218\ub3c4 \uc788\ub2e4.<br \/>\n\ubc18\ubcf5 \uc791\uc5c5\uc744 \ub9cc\ub4e4\uae30\uc704\ud574\uc11c\ub294 PeriodicWorkRequest.Builder\ud074\ub798\uc2a4\ub97c \uc774\uc6a9\ud558\uc5ec PeriodicWorkRequest\ub97c \ub9cc\ub4e4\uc5b4 OneTimeWorkRequest\ub54c\ucc98\ub7fc \ud050\uc5d0 \ub123\uc73c\uba74 \ub41c\ub2e4. \uc608\ub97c\ub4e4\uba74, \uc774\ubbf8\uc9c0\uc758 \uc555\ucd95\uc5ec\ubd80\ub97c \uc54c\uae30\uc704\ud574 PhotoCheckWorker \ud074\ub798\uc2a4\ub97c \uc815\uc758\ud588\ub2e4\uace0 \uac00\uc815\ud558\uc790. \ub9cc\uc57d 12\uc2dc\uac04\ub9c8\ub2e4 \ubaa9\ub85d\uc5d0 \uc788\ub294 \uc791\uc5c5\ub4e4\uc744 \uc218\ud589\ud55c\ub2e4\uba74 PeriodicWorkRequest\ub97c \ub2e4\uc74c\uacfc \uac19\uc774 \ub9cc\ub4e4\uc218 \uc788\ub2e4.<\/p>\n<table class=\"wysiwyg-macro\" style=\"background-image: url('http:\/\/wiki.navercorp.com\/plugins\/servlet\/confluence\/placeholder\/macro-heading?definition=e2NvZGV9&amp;locale=ko_KR&amp;version=2'); background-repeat: no-repeat;\" data-macro-name=\"code\" data-macro-id=\"053a0065-3a31-4cd3-be22-ea5438ff574e\" data-macro-schema-version=\"1\" data-macro-body-type=\"PLAIN_TEXT\">\n<tbody>\n<tr>\n<td class=\"wysiwyg-macro-body\">\n<pre class=\"lang:java decode:true\">new PeriodicWorkRequest.Builder photoCheckBuilder =\n        new PeriodicWorkRequest.Builder(PhotoCheckWorker.class, 12,\n                                        TimeUnit.HOURS);\n\/\/ \uc6d0\ud558\uba74 \uc81c\uc57d\uc870\uac74\uc744 \ube4c\ub354\uc5d0\uc11c \uc801\uc6a9\ud574\ub3c4 \ub41c\ub2e4\n\/\/ \uc2e4\uc81c \uc791\uc5c5 \uac1d\uccb4\ub97c \ub9cc\ub4e4\uc790:\nPeriodicWorkRequest photoCheckWork = photoCheckBuilder.build();\n\/\/ \uadf8\ub7f0\ub2e4\uc74c \ubc18\ubcf5\uc791\uc5c5\uc73c\ub85c \ub4f1\ub85d\ud558\uc790:\nWorkManager.getInstance().enqueue(photoCheckWork);<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>WorkManager\ub294 \uac1c\ubc1c\uc790\uac00 \uc694\uccad\ud55c \uac04\uaca9\uc73c\ub85c \uc791\uc5c5\uc744 \uc2e4\ud589\ud558\ub824\uace0 \uc2dc\ub3c4\ud569\ub2c8\ub2e4. \uac1c\ubc1c\uc790\uac00 \uc9c0\uc815\ud55c \uc81c\ud55c \uc870\uac74 \ubc0f \uae30\ud0c0 \uc694\uad6c \uc0ac\ud56d\uc5d0 \ub530\ub77c \uc791\uc5c5\uc774 \uc2e4\ud589\ub429\ub2c8\ub2e4.<\/p>\n<h3>\uc5f0\uacc4 \uc791\uc5c5<\/h3>\n<p>\uba87\uba87 \uc791\uc5c5\ub4e4\uc740 \ud2b9\uc815\uc21c\uc11c\ub97c \uac00\uc9c0\uace0 \ub3cc\uae30\ub3c4 \ud569\ub2c8\ub2e4. WorkManager\ub294 \uc21c\uc11c\uc788\ub294 \uc5ec\ub7ec\uc791\uc5c5\ubaa9\ub85d\uc744 \ucc98\ub9ac \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<br \/>\n\uc608\ub97c\ub4e4\uba74, 3\uac1c\uc758 OneTimeWorkRequest\uc778 workA, workB, work3\uac00 \uc788\ub2e4\uace0 \uac00\uc815\ud569\ub2c8\ub2e4. \uc791\uc5c5\uc740 \ubc18\ub4dc\uc2dc \uc21c\uc11c\uc5d0 \ub9de\uac8c \ub3d9\uc791\ub418\uc5b4\uc57c \ud569\ub2c8\ub2e4. \ud050\uc5d0 \ub123\uae30 \uc704\ud574\uc11c, WorkManager.beginWith() \uba54\uc18c\ub4dc\ub97c \ud638\ucd9c\ud558\uc5ec \uc21c\uc11c\ub97c \ub9cc\ub4e4\uace0 \uccab\ubc88\uc9f8 OneTimeWorkRequest\ub97c \ub118\uae41\ub2c8\ub2e4. \ubc18\ud658\uac12\uc73c\ub85c \uc791\uc5c5\uc21c\uc11c\uac00 \uc815\uc758\ub418\uc5b4\uc788\ub294\u00a0<a href=\"https:\/\/developer.android.com\/reference\/androidx\/work\/WorkContinuation.html\">WorkContinuation<\/a>\uc774 \ub118\uc5b4\uc628\ub2e4. \uadf8\ub7f0 \ub2e4\uc74c \ub0a8\uc544\uc788\ub294 OneTimeWorkRequest\ub4e4\uc744 WorkContinuation.then()\uc744 \ud1b5\ud574 \uc21c\uc11c\ub300\ub85c \ucd94\uac00\ud569\ub2c8\ub2e4 . \uadf8\ub7f0\ub2e4\uc74c WorkContinuation.enqueue()\ud558\uba74 \ub429\ub2c8\ub2e4.<\/p>\n<table class=\"wysiwyg-macro\" style=\"background-image: url('http:\/\/wiki.navercorp.com\/plugins\/servlet\/confluence\/placeholder\/macro-heading?definition=e2NvZGV9&amp;locale=ko_KR&amp;version=2'); background-repeat: no-repeat;\" data-macro-name=\"code\" data-macro-id=\"9db81a71-f303-4406-bfe6-661056fc1fc7\" data-macro-schema-version=\"1\" data-macro-body-type=\"PLAIN_TEXT\">\n<tbody>\n<tr>\n<td class=\"wysiwyg-macro-body\">\n<pre class=\"lang:java decode:true\">WorkManager.getInstance()\n    .beginWith(workA)\n        \/\/ Note: WorkManager.beginWith() \uba54\uc18c\ub4dc\ub294 WorkContinuation \uac1d\uccb4\ub97c \ubc18\ud658\ud569\ub2c8\ub2e4.\n        \/\/ \uc544\ub798\uc758 then() \uba54\uc18c\ub4dc\ub4e4\uc740 WorkContinuation\uc774 \uac00\uc9c0\uace0 \uc788\ub294 \uba54\uc18c\ub4dc \uc785\ub2c8\ub2e4.\n    .then(workB)    \/\/ \ucc38\uace0\ub85c then()\uc740 \uc0c8\ub85c\uc6b4 WorkContinuation \uac1d\uccb4\ub97c \ubc18\ud658\ud569\ub2c8\ub2e4.\n    .then(workC)\n    .enqueue();<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>WorkManager\ub294 \uac01 \uc791\uc5c5\uc758 \uc81c\uc57d\uc870\uac74\uc5d0 \ub530\ub77c\u00a0\ud050\uc5d0 \ub4e4\uc5b4\uac04 \uc21c\uc11c\ub300\ub85c \uc791\uc5c5\uc744 \uc218\ud589\ud569\ub2c8\ub2e4. \u00a0\ub9cc\uc57d \uc5b4\ub5a4 \uc791\uc5c5\uc774 <a href=\"https:\/\/developer.android.com\/reference\/androidx\/work\/Worker.Result#FAILURE\">Worker.Result.FAILURE<\/a>\ub97c \ubc18\ud658\ud55c\ub2e4\uba74 \ubaa8\ub4e0 \uc791\uc5c5\uc774 \ub05d\ub098\ubc84\ub9bd\ub2c8\ub2e4.<br \/>\n\ub610\ud55c \uc5ec\ub7ec OneTimeWorkRequest\uac1d\uccb4\ub97c beginWith() \uadf8\ub9ac\uace0 then()\uc5d0 \uc778\uc790\uac12\uc73c\ub85c \ub118\uae38\uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub9cc\uc57d \uc5ec\ub7ec OneTimeWorkRequest \uac1d\uccb4\ub97c \ud558\ub098\uc758 \uba54\uc18c\ub4dc\ud638\ucd9c\uc5d0 \ub118\uae34\ub2e4\uba74, \ub098\uba38\uc9c0 queue\uc5d0 \uc788\ub294 \uc791\uc5c5\ub4e4\uc774 \uc218\ud589\ub418\uae30 \uc804\uc5d0 \u00a0WorkManager\ub294 \ubc29\uae08 \ub118\uae34 \uc5ec\ub7ec OneTimeWorkRequest\ub97c \ubcd1\ud589\uc801\uc73c\ub85c \uc218\ud589\ud569\ub2c8\ub2e4. \uc608\ub97c \ubcf4\uc2dc\uc8e0.<\/p>\n<table class=\"wysiwyg-macro\" style=\"background-image: url('http:\/\/wiki.navercorp.com\/plugins\/servlet\/confluence\/placeholder\/macro-heading?definition=e2NvZGV9&amp;locale=ko_KR&amp;version=2'); background-repeat: no-repeat;\" data-macro-name=\"code\" data-macro-id=\"b9bce5ca-33f3-4102-b5d1-3b8a5c94d3b8\" data-macro-schema-version=\"1\" data-macro-body-type=\"PLAIN_TEXT\">\n<tbody>\n<tr>\n<td class=\"wysiwyg-macro-body\">\n<pre class=\"lang:java decode:true\">WorkManager.getInstance()\n    \/\/ \uba3c\uc800 workA1,workA2,workA3 \uc791\uc5c5\ub4e4\uc744 \ubcd1\ud589\ucc98\ub9ac \ud569\ub2c8\ub2e4.\n    .beginWith(workA1, workA2, workA3)\n    \/\/ \uc704 \uc791\uc5c5\ub4e4\uc774 \ub05d\ub098\uace0\ub098\uba74 workB\ub97c \uc218\ud589\ud569\ub2c8\ub2e4.\n    .then(workB)\n    \/\/ \uadf8\ub7f0\ub2e4\uc74c workC1, workC2\ub97c \ub2e4\uc2dc \uc21c\uc11c\uc0c1\uad00\uc5c6\uc774 \ucc98\ub9ac \ud569\ub2c8\ub2e4.\n    .then(workC1, workC2)\n    .enqueue();<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>WorkContinuation.combin()\uc744 \uc774\uc6a9\ud55c\ub2e4\uba74, \ubcf5\ud569\uc5f0\uacc4\ub85c \uc880 \ub354 \ubcf5\uc7a1\ud558\uac8c \uc21c\uc11c\ub97c \ub9cc\ub4e4\uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc608\ub97c\ub4e4\uba74, \uc21c\uc11c\uac00 \ub2e4\uc74c\uacfc \uac19\ub2e4\uace0 \uac00\uc815\ud569\ub2c8\ub2e4.<br \/>\n<img decoding=\"async\" class=\"confluence-embedded-image confluence-external-resource\" src=\"https:\/\/developer.android.com\/images\/topic\/libraries\/architecture\/workmanager-chain.svg\" height=\"400\" data-image-src=\"https:\/\/developer.android.com\/images\/topic\/libraries\/architecture\/workmanager-chain.svg\" \/><br \/>\n\uc774\ub7f0 \uc21c\uc11c\ub97c \ub9cc\ub4e4\uae30 \uc704\ud574\uc11c\ub294 \ub450\uac00\uc9c0 \ubd84\ub9ac\ub41c \uccb4\uc778\uc744 \ub9cc\ub4e4\uc5b4\uc57c \ud569\ub2c8\ub2e4. \uadf8\ub7f0 \ub4a4 \uc138\ubc88\uc9f8\ucc98\ub7fc \ud558\ub098\ub85c \ubcd1\ud569 \uc2dc\ud0b5\ub2c8\ub2e4.<\/p>\n<table class=\"wysiwyg-macro\" style=\"background-image: url('http:\/\/wiki.navercorp.com\/plugins\/servlet\/confluence\/placeholder\/macro-heading?definition=e2NvZGV9&amp;locale=ko_KR&amp;version=2'); background-repeat: no-repeat;\" data-macro-name=\"code\" data-macro-id=\"5c8daf5b-feca-4421-a0c6-6a745404e51e\" data-macro-schema-version=\"1\" data-macro-body-type=\"PLAIN_TEXT\">\n<tbody>\n<tr>\n<td class=\"wysiwyg-macro-body\">\n<pre class=\"lang:java decode:true\">WorkContinuation chain1 = WorkManager.getInstance()\n    .beginWith(workA)\n    .then(workB);\nWorkContinuation chain2 = WorkManager.getInstance()\n    .beginWith(workC)\n    .then(workD);\nWorkContinuation chain3 = WorkContinuation\n    .combine(chain1, chain2)\n    .then(workE);\nchain3.enqueue();<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\uc774 \uacbd\uc6b0\uc5d0\ub294 WorkManager\uac00 workA\ub97c workB\ubcf4\ub2e4 \uba3c\uc800 \uc2e4\ud589\uc2dc\ud0b5\ub2c8\ub2e4. \ub610\ud55c workC\ub97c workD\ubcf4\ub2e4 \uba3c\uc800 \uc2e4\ud589\uc2dc\ud0b5\ub2c8\ub2e4. \uadf8\ub7f0\ub4a4 workB\uc640 workD\uac00 \uc791\uc5c5\uc774 \ub05d\ub098\uac8c \ub418\uba74 \ub9c8\uce68\ub0b4 WorkManager\ub294 workE\ub97c \uc2e4\ud589\ud569\ub2c8\ub2e4.<\/p>\n<table class=\"wysiwyg-macro\" style=\"background-image: url('http:\/\/wiki.navercorp.com\/plugins\/servlet\/confluence\/placeholder\/macro-heading?definition=e2luZm99&amp;locale=ko_KR&amp;version=2'); background-repeat: no-repeat;\" data-macro-name=\"info\" data-macro-id=\"af58b43f-fcb9-4981-96fa-9533d7cfd673\" data-macro-schema-version=\"1\" data-macro-body-type=\"RICH_TEXT\">\n<tbody>\n<tr>\n<td class=\"wysiwyg-macro-body\">&nbsp;<br \/>\nWorkManager\uac00 \ud558\uc704 \uccb4\uc778\uc5d0\uc11c \uc218\ud589\ub418\ub294\ub3d9\uc548 chain1\uacfc chain2\uac00 \uc21c\uc11c\uac00 \uc5b4\ub5a4\uc2dd\uc73c\ub85c \uc815\ud574\uc9c0\ub294\uc9c0\ub294 \ubcf4\uc7a5\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uba74 workB\uac00 workC\ubcf4\ub2e4 \uba3c\uc800 \ub610\ub294 \ud6c4\uc5d0 \uc2e4\ud589\ub420 \uc218\ub3c4 \uc788\uace0, \ub3d9\uc2dc\uc5d0 \uc2e4\ud589\ub420\uc218\ub3c4 \uc788\ub294\uac81\ub2c8\ub2e4. \ud55c\uac00\uc9c0 \ubcf4\uc7a5\ud560 \uc218 \uc788\ub294\uac74 \uac01 \ud558\uc704\uccb4\uc778\uc774 \uac00\uc9c0\uace0 \uc788\ub294 \ud14c\uc2a4\ud06c\uc21c\uc11c\ub294 \uc62c\ubc14\ub974\uac8c \uc9c0\ucf1c\uc9c4\ub2e4\ub294\uac83\uc785\ub2c8\ub2e4. workB\ub294 workA\uac00 \ub05d\ub098\uae30 \uc804\uae4c\uc9c0\ub294 \uc2e4\ud589\ub418\uc9c0\uc54a\ub294\ub2e4\ub294\uac83\uc774\uc8e0.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\ub2e4\uc591\ud55c \uc22b\uc790\uc758 WorkContinuation \uba54\uc18c\ub4dc\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uba54\uc18c\ub4dc\ub4e4\uc740 \ud2b9\uc815\uc0c1\ud669\ub4e4\uc5d0\uc11c \ud544\uc694\ud55c \uc18d\uae30\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4. \uc608\ub97c\ub4e4\uba74 WorkContinuation.combine(OneTimeWorkRequest, WorkContinuation&#8230;) \uba54\uc18c\ub4dc\uac00 \uc788\uace0 \uc774 \uba54\uc18c\ub4dc\ub294 WorkManager\uc5d0\uac8c \ubaa8\ub4e0 WorkContinuation \uccb4\uc778\uc744 \uc644\ub8cc\ud558\ub77c\uace0 \uba85\ub839\ud569\ub2c8\ub2e4. \uadf8\ub7f0\ub4a4 OneTimeWorkRequest\ub97c \ub05d\ub0c5\ub2c8\ub2e4. \uc790\uc138\ud55c \uc815\ubcf4\ub294 <a href=\"https:\/\/developer.android.com\/reference\/androidx\/work\/WorkContinuation.html\">WorkContinuation<\/a>\uc744 \ud655\uc778\ud558\uc138\uc694.<\/p>\n<h3>\uace0\uc720\ud55c \uc791\uc5c5 \uc21c\uc11c<\/h3>\n<p>\uc5b4\ub5a4 WorkRequest\uac1d\uccb4\uac74 tag\ub97c \uc801\uc6a9\ud558\ub294\uac83\uc73c\ub85c \uc778\ud574 \uc791\uc5c5\ub4e4\uc744\u00a0\ub17c\ub9ac\uc801\uc73c\ub85c \uadf8\ub8f9\uc9c0\uc744\uc218 \uc788\uc2b5\ub2c8\ub2e4. tag\ub97c \uc801\uc6a9\ud558\uae30 \uc704\ud574\uc11c\ub294 WorkRequest.Builder.addTag()\ub97c \ud638\ucd9c\ud569\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uba74,<\/p>\n<table class=\"wysiwyg-macro\" style=\"background-image: url('http:\/\/wiki.navercorp.com\/plugins\/servlet\/confluence\/placeholder\/macro-heading?definition=e2NvZGV9&amp;locale=ko_KR&amp;version=2'); background-repeat: no-repeat;\" data-macro-name=\"code\" data-macro-id=\"46a5ffe1-0f80-4cd1-bfaa-87aa60f32818\" data-macro-schema-version=\"1\" data-macro-body-type=\"PLAIN_TEXT\">\n<tbody>\n<tr>\n<td class=\"wysiwyg-macro-body\">\n<pre class=\"lang:java decode:true\">OneTimeWorkRequest cacheCleanupTask =\n        new OneTimeWorkRequest.Builder(MyCacheCleanupWorker.class)\n    .setConstraints(myConstraints)\n    .addTag(\"cleanup\")\n    .build();<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>WorkManager\ud074\ub798\uc2a4\ub4e4\uc740 \uc5ec\ub7ec\uac00\uc9c0 \uc720\ud2f8\ub9ac\ud2f0 \uba54\uc18c\ub4dc\ub4e4\uc740 \uc81c\uacf5\ud558\ub294\ub370 \uac1c\ubc1c\uc790\uac00 \ubaa8\ub4e0 \uc791\uc5c5\uc744 \ud2b9\uc815 \ud0dc\uadf8\ub97c \uc774\uc6a9\ud558\uc5ec \uc218\ud589\ud560 \uc218 \uc788\uac8c \ud569\ub2c8\ub2e4. \uc608\ub97c\ub4e4\uba74, WorkManager.cancelAllWorkByTag()\ub294 \ud2b9\uc815 \ud0dc\uadf8\ub97c \uac16\uace0 \uc788\ub294 \ubaa8\ub4e0 \uc791\uc5c5\ub4e4\uc744 \ucde8\uc18c\uc2dc\ud0b5\ub2c8\ub2e4. \uadf8\ub9ac\uace0 WorkManager.getStatusesByTag()\ub294 \ud574\ub2f9 \ud0dc\uadf8\ub97c \uac00\uc9c0\uace0 \uc788\ub294 WorkStatus \ub9ac\uc2a4\ud2b8\ub97c \ubc18\ud658\ud558\uac8c \ub429\ub2c8\ub2e4.<\/p>\n<h3>\uc778\uc790 \uc785\ub825\ud558\uace0 \uac12 \ubc18\ud658\ud558\uae30<\/h3>\n<p>\ub192\uc740 \uc720\uc5f0\uc131\uc744 \uc704\ud574\uc11c\ub294 \uac1c\ubc1c\uc790\ub294 \uc791\uc5c5\uc5d0 \ub300\ud574 \uc778\uc790\ub97c \ub118\uae30\uace0 \ubc18\ud658\ub418\ub294 \uac12\uc744 \ubc1b\uc744\uc218 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4. \uac12\uc744 \ub118\uae30\uace0 \ubc1b\ub294\uac74 \ud0a4-\uac12 \uc30d\uc73c\ub85c \ud569\ub2c8\ub2e4. \uc778\uc790\ub97c \ub118\uae30\uae30 \uc704\ud574\uc11c WorkRequest.Builder.setInputData() \uba54\uc18c\ub4dc\ub97c WorkRequest\uac1d\uccb4\ub97c \ub9cc\ub4e4\uae30\uc804\uc5d0 \ud638\ucd9c\ud569\ub2c8\ub2e4. \uc774 \uba54\uc18c\ub4dc\ub294 Data.Builder\ub97c \ud1b5\ud574 \ub9cc\ub4e4\uc5b4\uc9c4 Data\ub97c \uc778\uc790\ub85c \ubc1b\uc2b5\ub2c8\ub2e4. Worker\ud074\ub798\uc2a4\ub294 Worker.getInputData()\ub97c \ud638\ucd9c\ud568\uc73c\ub85c\uc368 \uc774\ub7ec\ud55c \uc778\uc790\ub4e4\uc5d0 \uc811\uadfc\ud560\uc218 \uc788\uac8c \ub429\ub2c8\ub2e4. \uac12\uc744 \ubc18\ud658\ud558\uae30 \uc704\ud574\uc11c\ub294 Data\uac1d\uccb4\ub97c \uc778\uc790\ub85c \ubc1b\ub294 Worket.setOutputData()\ub97c \ud638\ucd9c\ud569\ub2c8\ub2e4. LiveData&lt;WorkStatus&gt;\ub97c observing\ud558\ub294\uac83\uc73c\ub85c \uc0b0\ucd9c\ubb3c\uc744 \ubc1b\uc544 \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4.<br \/>\n\uc608\ub97c\ub4e4\uba74 \uc5b4\ub5a4 \uacc4\uc0b0 \uc791\uc5c5\uc744 \uc218\ud589\ud558\ub294 Worker \ud074\ub798\uc2a4\uac00 \uc788\ub2e4\uace0 \uac00\uc815\ud558\uace0, \uc544\ub798\uc758 \ucf54\ub4dc\ub974 \ud655\uc778\ud569\uc2dc\ub2e4.<\/p>\n<table class=\"wysiwyg-macro\" style=\"background-image: url('http:\/\/wiki.navercorp.com\/plugins\/servlet\/confluence\/placeholder\/macro-heading?definition=e2NvZGV9&amp;locale=ko_KR&amp;version=2'); background-repeat: no-repeat;\" data-macro-name=\"code\" data-macro-id=\"138898b4-0092-40a3-b40a-e11403c345b8\" data-macro-schema-version=\"1\" data-macro-body-type=\"PLAIN_TEXT\">\n<tbody>\n<tr>\n<td class=\"wysiwyg-macro-body\">\n<pre class=\"lang:java decode:true\">public class MathWorker extends Worker {\n    \/\/ \ud30c\ub77c\ubbf8\ud130 \ud0a4\uac12 \uc815\uc758\n    public static final String KEY_X_ARG = \"X\";\n    public static final String KEY_Y_ARG = \"Y\";\n    public static final String KEY_Z_ARG = \"Z\";\n    \/\/ \uacb0\uacfc \ud0a4\uac12 \uc815\uc758\n    public static final String KEY_RESULT = \"result\";\n    @Override\n    public Worker.Result doWork() {\n        \/\/ \uc778\uc790\uac12\uc744 \uac00\uc9c0\uace0 \uc624\uae30 \uc704\ud574\uc11c\ub294 \uc544\ub798\uc640 \uac19\uc774 \ud574\uc57c\ud558\uba70, \uae30\ubcf8\uac12\uc744 \uc815\uc758\ud574\uc918\uc57c \ud55c\ub2e4.\n        int x = getInputData().getInt(KEY_X_ARG, 0);\n        int y = getInputData().getInt(KEY_Y_ARG, 0);\n        int z = getInputData().getInt(KEY_Z_ARG, 0);\n        \/\/ \uacc4\uc0b0\uc791\uc5c5\uc744 \ud55c\ub2e4.\n        int result = myCrazyMathFunction(x, y, z);\n        \/\/\uacb0\uacfc\ub97c \ucd9c\ub825\ud558\uba74 \ub044-\uc755!\n        Data output = new Data.Builder()\n            .putInt(KEY_RESULT, result)\n            .build();\n        setOutputData(output);\n        return Result.SUCCESS;\n    }\n}<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\uc791\uc5c5\uc744 \ub9cc\ub4e4\uace0 \uc778\uc790\ub97c \ub118\uae30\uae30 \uc704\ud55c \ucf54\ub4dc\ub294 \uc774\ub807\uac8c \ud558\uba74\ub41c\ub2e4.<\/p>\n<table class=\"wysiwyg-macro\" style=\"background-image: url('http:\/\/wiki.navercorp.com\/plugins\/servlet\/confluence\/placeholder\/macro-heading?definition=e2NvZGV9&amp;locale=ko_KR&amp;version=2'); background-repeat: no-repeat;\" data-macro-name=\"code\" data-macro-id=\"26c748aa-bfd4-4b1b-8c54-3fbd8dcb3f96\" data-macro-schema-version=\"1\" data-macro-body-type=\"PLAIN_TEXT\">\n<tbody>\n<tr>\n<td class=\"wysiwyg-macro-body\">\n<pre class=\"lang:java decode:true\">\/\/ Data\uac1d\uccb4 \ub9cc\ub4e4\uae30\nData myData = new Data.Builder()\n    \/\/ X,Y,Z 3\uac00\uc9c0 \uc778\uc790 \ub118\uae30\uae30\n    .putInt(KEY_X_ARG, 42)\n    .putInt(KEY_Y_ARG, 421)\n    .putInt(KEY_Z_ARG, 8675309)\n    \/\/build()\ub97c \ud1b5\ud574 \uc2e4\uc81c Data \uac1d\uccb4 \ub9cc\ub4e4\uae30:\n    .build();\n\/\/ \uadf8\ub7f0\ub2e4\uc74c myData\uac00 \ud3ec\ud568\ub41c OneTimeWorkRequest\ub97c \ub9cc\ub4e4\uace0 \ud050\uc5d0 \ub118\ub294 \uc791\uc5c5\uc744 \ud55c\ub2e4\nOneTimeWorkRequest mathWork = new OneTimeWorkRequest.Builder(MathWorker.class)\n        .setInputData(myData)\n        .build();\nWorkManager.getInstance().enqueue(mathWork);<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\ub4e4\uc5b4\uc624\ub294 \uacb0\uacfc\uac12\uc740 WorkStatus\ub85c \ud655\uc778 \uac00\ub2a5\ud558\ub2e4.<\/p>\n<table class=\"wysiwyg-macro\" style=\"background-image: url('http:\/\/wiki.navercorp.com\/plugins\/servlet\/confluence\/placeholder\/macro-heading?definition=e2NvZGV9&amp;locale=ko_KR&amp;version=2'); background-repeat: no-repeat;\" data-macro-name=\"code\" data-macro-id=\"c3e00f6a-400b-468e-9d89-13be7179418c\" data-macro-schema-version=\"1\" data-macro-body-type=\"PLAIN_TEXT\">\n<tbody>\n<tr>\n<td class=\"wysiwyg-macro-body\">\n<pre class=\"lang:java decode:true\">WorkManager.getInstance().getStatusById(mathWork.getId())\n    .observe(lifecycleOwner, status -&gt; {\n         if (status != null &amp;&amp; status.getState().isFinished()) {\n           int myResult = status.getOutputData().getInt(KEY_RESULT,\n                  myDefaultValue));\n           \/\/ ... do something with the result ...\n         }\n    });<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\ub9cc\uc57d \uc791\uc5c5\ub4e4\uc744 \ubb36\uace0\uc790 \ud55c\ub2e4\uba74, \ud558\ub098\uc758 \uc791\uc5c5\uc5d0\uc11c \ub118\uc5b4\uc624\ub294 \ubc18\ud658\uac12\uc744 \ub2e4\uc74c \uc791\uc5c5\uc758 \uc778\uc790\uac12\uc73c\ub85c \uc4f8\uc218\ub3c4 \uc788\ub2e4. \ud558\ub098\uc758 OneTimeWorkRequest \ub4a4\uc5d0 \ud558\ub098\uc758 OneTimeWorkRequest\uac00 \uc788\ub294 \uac04\ub2e8\ud55c \uc5f0\uacc4\uc791\uc5c5\uc778 \uacbd\uc6b0 \uccab\ubc88\uc9f8 \uc791\uc5c5\uc740 setOutputData()\ub97c \ud638\ucd9c\ud558\uc5ec \uacb0\uacfc\uac12\uc744 \ubc18\ud658\ud558\uace0 \ub2e4\uc74c \uc791\uc5c5\uc740 getInputData()\ub97c \ud638\ucd9c\ud558\uc5ec \uadf8 \uacb0\uacfc\ub97c \uac00\uc838\uc635\ub2c8\ub2e4. \uc5ec\ub7ec \uc791\uc5c5\uc774 \ubaa8\ub450 \ud558\ub098\uc758 \uc791\uc5c5\uc5d0\uac8c \uacb0\uacfc\uac12\uc744 \ubcf4\ub0b4\ub294 \ubcf5\uc7a1\ud55c \uc791\uc5c5\uc774\ub77c\uba74 OneTimeWorkRequest.Builder\uc5d0\uc11c InputMerger\ub97c \uc815\uc758\ud558\uc5ec \ub2e4\ub978 \uc791\uc5c5\uc774 \ub3d9\uc77c\ud55c \ud0a4\ub97c \uc0ac\uc6a9\ud558\uc5ec \ucd9c\ub825\uc744 \ubc18\ud658 \ud560 \uacbd\uc6b0 \uc218\ud589 \ud560 \uc791\uc5c5\uc744 \uc9c0\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>WorkManager\ub85c \uc791\uc5c5 \ucc98\ub9ac \ud558\uae30 WorkManager API\ub294 \ud2b9\uc815 \uc720\uc608\uac00\ub2a5\ud558\uba70, \ube44\ub3d9\uae30 \uc801\uc778 \uc791\uc5c5\ub4e4\uc744 \uc27d\uac8c \ucc98\ub9ac\ud560 \uc218 \uc788\uac8c \ud574\uc90d\ub2c8\ub2e4. \uc774 API\ub4e4\uc740 \uac1c\ubc1c\uc790\ub4e4\uc774 \uc791\uc5c5(Work)\uc744 \ub9cc\ub4e4\uac8c \ud558\uace0 WorkManager\uc5d0\uac8c \uc791\uc5c5\uc744 \ub118\uae34\ub4a4 \uc989\uac01\uc801\uc73c\ub85c \ub610\ub294 \uc801\ub2f9\ud55c \ub54c\uc5d0 \ud574\ub2f9 \uc791\uc5c5\uc744 \uc218\ud589 \ud560 \uc218 \uc788\ub3c4\ub85d \ud569\ub2c8\ub2e4. \uc608\ub97c\ub4e4\uba74, \uc571\uc740 \uac00\ub054 \uc0c8\ub85c\uc6b4 \ub9ac\uc18c\uc2a4\ub97c \ub124\ud2b8\uc6cc\ud06c\ub85c\ubd80\ud130 \ub2e4\uc6b4\ub85c\ub4dc \ubc1b\uc544\uc57c\ud558\ub294\ub370, WorkManager\ub97c \uc774\uc6a9\ud55c\ub2e4\uba74 Task\ub97c \uc124\uc815\ud558\uace0, \uc2e4\ud589\ud558\uae30 \uc704\ud55c [&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":[16],"tags":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/posts\/385"}],"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=385"}],"version-history":[{"count":0,"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/posts\/385\/revisions"}],"wp:attachment":[{"href":"https:\/\/charlezz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=385"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/charlezz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=385"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/charlezz.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=385"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}