{"id":1121,"date":"2021-09-13T20:26:14","date_gmt":"2021-09-13T11:26:14","guid":{"rendered":"https:\/\/blog.enyou.net\/ko\/?p=1121"},"modified":"2021-12-18T18:16:26","modified_gmt":"2021-12-18T09:16:26","slug":"combine-%ec%82%b4%ed%8e%b4%eb%b3%b4%ea%b8%b0-subscriber","status":"publish","type":"post","link":"https:\/\/blog.enyou.net\/ko\/archives\/1121","title":{"rendered":"Combine \uc0b4\ud3b4\ubcf4\uae30: Subscriber"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Subscriber<\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>A protocol that declares a type that can receive input from a publisher.<\/p><p>\ud37c\ube14\ub9ac\uc154\ub85c\ubd80\ud130 \uc785\ub825\uc744 \ubc1b\uc744 \uc218 \uc788\ub294 \ud0c0\uc785\uc744 \uc815\uc758\ud558\ub294 \ud504\ub85c\ud1a0\ucf5c.<\/p><cite><a href=\"https:\/\/developer.apple.com\/documentation\/combine\/publisher\">Apple Documentation<\/a><\/cite><\/blockquote>\n\n\n\n<p>Subscriber\ub294 Publisher\ub97c \uad6c\ub3c5\ud558\ub294 \ud0c0\uc785\uc774\ub2e4. RX\uc5d0\uc11c\ub294 \ub3d9\uc77c\ud55c \uc5ed\ud560\uc744 \ud558\ub294 \uac1d\uccb4\ub97c Observer\ub77c\uace0 \ubd80\ub974\uba70, \uacbd\uc6b0\uc5d0 \ub530\ub77c Watcher, \ub610\ub294 Reactor\ub77c\uace0\ub3c4 \ubd80\ub974\ub294 \uac83 \uac19\ub2e4.<\/p>\n\n\n\n<p>Publisher\ub85c \ubd80\ud130 \uc785\ub825\uc744 \ubc1b\uae30 \ub54c\ubb38\uc5d0 Input\uacfc Failure\ub97c \uc815\uc758\ud574\uc57c\ud55c\ub2e4. Publisher\ub97c \ud1b5\ud574 subscribe(_:) \ud560 \ub54c, \ub0b4\ubd80\uc801\uc73c\ub85c Subscriber\uc758 receive(subscription:) \ud568\uc218\uac00 \ud638\ucd9c\ub418\uba74\uc11c Subscription\uc744 \uc804\ub2ec\ubc1b\uace0, \uad6c\ub3c5\uc774 \uc2dc\uc791\ub41c\ub2e4.<\/p>\n\n\n\n<p>\ud37c\ube14\ub9ac\uc154\uc758 \uacbd\uc6b0\uc5d0\ub294 \uc6a9\ub3c4\uc5d0 \ub530\ub77c\uc11c \uc774\ubbf8 \uad6c\ud604\ub41c Convenience Publisher\uac00 \uad49\uc7a5\ud788 \ub9ce\uc9c0\ub9cc, Subscriber\uc758 \uacbd\uc6b0\uc5d0\ub294 Convenience Subscriber\ub85c \ud074\ub85c\uc800\ub97c \uc2e4\ud589\ud558\ub294 Sink\uc640 \uac12\uc744 \ub9e4\ud551\ud558\ub294 Assign \ub450 \uc885\ub958\ub9cc \uc788\uc73c\uba70, Operator\ub85c\uc758 \ud65c\uc6a9\uc5d0\uc11c\ub3c4 \ub3d9\uc77c\ud558\ub2e4.<\/p>\n\n\n\n<p>Assign\uc73c\ub85c \uac12\uc744 \ub9e4\ud551\ud560 \ub54c\ub294 \uc870\uc2ec\ud574\uc57c\ud560 \ubd80\ubd84\uc774 \uc788\ub294\ub370, \ub9cc\uc57d \ub9e4\ud551\ud558\ub294 \ub300\uc0c1 \uac1d\uccb4\uac00 \uc21c\ud658 \ucc38\uc870\ub97c \uc774\ub8e8\uace0 \uc788\ub2e4\uba74 Assign\uc740 \uadf8 \uac12\ub4e4\uc744 \uac15\ud55c \ucc38\uc870(strong reference)\ub85c \uae30\ub85d\ud558\uae30 \ub54c\ubb38\uc5d0 \uba54\ubaa8\ub9ac\uac00 \ub204\uc218\ub420 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Subscription<\/h3>\n\n\n\n<p>\uc11c\ube0c\uc2a4\ud06c\ub77c\uc774\ubc84\uac00 \ud37c\ube14\ub9ac\uc154\ub97c \uad6c\ub3c5\ud560 \ub54c, subscriber\uc758 receive(subscription:)\uc774 \ud638\ucd9c\ub41c\ub2e4. \uc774\ub97c \ud1b5\ud574 subscriber\ub294 subscription\uc744 \uc804\ub2ec\ubc1b\uc744 \uc218 \uc788\uace0, publisher\uc5d0\uac8c \uc6d0\uc18c\ub97c \uc694\uccad\ud558\uac70\ub098 \uad6c\ub3c5\uc744 \ucde8\uc18c\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"274\" src=\"https:\/\/blog.enyou.net\/wp-content\/uploads\/2021\/10\/\u1109\u1173\u110f\u1173\u1105\u1175\u11ab\u1109\u1163\u11ba-2021-10-06-\u110b\u1169\u1112\u116e-9.22.56-1024x274.png\" alt=\"\" class=\"wp-image-1209\" srcset=\"https:\/\/blog.enyou.net\/wp-content\/uploads\/2021\/10\/\u1109\u1173\u110f\u1173\u1105\u1175\u11ab\u1109\u1163\u11ba-2021-10-06-\u110b\u1169\u1112\u116e-9.22.56-1024x274.png 1024w, https:\/\/blog.enyou.net\/wp-content\/uploads\/2021\/10\/\u1109\u1173\u110f\u1173\u1105\u1175\u11ab\u1109\u1163\u11ba-2021-10-06-\u110b\u1169\u1112\u116e-9.22.56-300x80.png 300w, https:\/\/blog.enyou.net\/wp-content\/uploads\/2021\/10\/\u1109\u1173\u110f\u1173\u1105\u1175\u11ab\u1109\u1163\u11ba-2021-10-06-\u110b\u1169\u1112\u116e-9.22.56-768x206.png 768w, https:\/\/blog.enyou.net\/wp-content\/uploads\/2021\/10\/\u1109\u1173\u110f\u1173\u1105\u1175\u11ab\u1109\u1163\u11ba-2021-10-06-\u110b\u1169\u1112\u116e-9.22.56-1536x411.png 1536w, https:\/\/blog.enyou.net\/wp-content\/uploads\/2021\/10\/\u1109\u1173\u110f\u1173\u1105\u1175\u11ab\u1109\u1163\u11ba-2021-10-06-\u110b\u1169\u1112\u116e-9.22.56.png 1546w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption>\ucd5c\ucd08\uc5d0 \ud37c\ube14\ub9ac\uc154\ub97c \uad6c\ub3c5\ud55c\ub2e4\ub294 \uac83\uc740 \uc11c\ube0c\uc2a4\ud06c\ub9bd\uc158\uc774\ub77c\ub294 \ud1a0\ud070\uc744 \uc11c\ube0c\uc2a4\ud06c\ub77c\uc774\ubc84\uac00 \ubc1b\ub294 \uac83\uacfc \ub3d9\uc77c\ud558\ub2e4.<\/figcaption><\/figure>\n\n\n\n<p>Subscription\uc744 \ud1b5\ud574 \uc6d0\uc18c\ub97c \uc694\uccad\ud560 \ub54c\ub294 request()\ub97c \uc0ac\uc6a9\ud55c\ub2e4. \uc774\ub54c, Demand \uad6c\uc870\uccb4\ub97c \ub9e4\uac1c\ubcc0\uc218\ub85c \ub118\uae34\ub2e4. Demand\ub97c \ud1b5\ud574 Publisher\uc5d0\uac8c \ud574\ub2f9 \uc2dc\uc810\uc5d0 \ucd5c\ub300 \uc5bc\ub9c8\ub9cc\ud07c\uc758 \uc694\uad6c\ub97c \ud560 \uc9c0 \uc9c0\uc815\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"355\" src=\"https:\/\/blog.enyou.net\/wp-content\/uploads\/2021\/10\/\u1109\u1173\u110f\u1173\u1105\u1175\u11ab\u1109\u1163\u11ba-2021-10-06-\u110b\u1169\u1112\u116e-9.27.47-1024x355.png\" alt=\"\" class=\"wp-image-1211\" srcset=\"https:\/\/blog.enyou.net\/wp-content\/uploads\/2021\/10\/\u1109\u1173\u110f\u1173\u1105\u1175\u11ab\u1109\u1163\u11ba-2021-10-06-\u110b\u1169\u1112\u116e-9.27.47-1024x355.png 1024w, https:\/\/blog.enyou.net\/wp-content\/uploads\/2021\/10\/\u1109\u1173\u110f\u1173\u1105\u1175\u11ab\u1109\u1163\u11ba-2021-10-06-\u110b\u1169\u1112\u116e-9.27.47-300x104.png 300w, https:\/\/blog.enyou.net\/wp-content\/uploads\/2021\/10\/\u1109\u1173\u110f\u1173\u1105\u1175\u11ab\u1109\u1163\u11ba-2021-10-06-\u110b\u1169\u1112\u116e-9.27.47-768x266.png 768w, https:\/\/blog.enyou.net\/wp-content\/uploads\/2021\/10\/\u1109\u1173\u110f\u1173\u1105\u1175\u11ab\u1109\u1163\u11ba-2021-10-06-\u110b\u1169\u1112\u116e-9.27.47.png 1194w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption>\uc11c\ube0c\uc2a4\ud06c\ub9bd\uc158\uc744 \ubc1b\uc740 \ud6c4\uc5d0 \uc11c\ube0c\uc2a4\ud06c\ub77c\uc774\ubc84\ub294 Subscription\uc744 \uc774\uc6a9\ud574 \uc6d0\uc18c\ub97c \uc694\uccad\ud560 \uc218 \uc788\ub2e4. \uc774 \ub54c, \uc6d0\uc18c\uac00 \uc5b4\ub514\uc5d0\uc11c \ub9cc\ub4e4\uc5b4\uc9c0\ub294\uc9c0\ub294 \uc81c\uc57d\uc774 \uc5c6\ub2e4. Publisher\uc640 \uad00\uacc4\ub97c \uac00\uc9c0\uace0 Produced\ub41c \uc544\uc774\ud15c\uc774 \uc788\ub294 Queue\uc5d0\uc11c \ubeb4\uc62c \uc218\ub3c4 \uc788\uace0, Subscription\uc774 \uc790\uccb4\uc801\uc73c\ub85c \uc544\uc774\ud15c\uc744 \ub9cc\ub4e4 \uc218\ub3c4 \uc788\ub2e4. \uc5b4\ucc0c\ubcf4\uba74, Subscription\uc740 \uc218\uc2e0\ud69f\uc218\uac00 \uc81c\ud55c\ub41c \uc090\uc090\uc640 \ube44\uc2b7\ud558\ub2e4.<\/figcaption><\/figure>\n\n\n\n<p>Subscription\uc740 Cancellable \ud504\ub85c\ud1a0\ucf5c\uc744 \ub530\ub974\uace0 \uc788\uae30 \ub54c\ubb38\uc5d0, \uad6c\ub3c5\uc744 \ucde8\uc18c\ud574\uc57c\ud560 \uacbd\uc6b0\uc5d0\ub294 cancel()\ub97c \ud1b5\ud574 \uad6c\ub3c5\uc744 \ucde8\uc18c\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"413\" src=\"https:\/\/blog.enyou.net\/wp-content\/uploads\/2021\/10\/\u1109\u1173\u110f\u1173\u1105\u1175\u11ab\u1109\u1163\u11ba-2021-10-06-\u110b\u1169\u1112\u116e-9.33.24-1024x413.png\" alt=\"\" class=\"wp-image-1212\" srcset=\"https:\/\/blog.enyou.net\/wp-content\/uploads\/2021\/10\/\u1109\u1173\u110f\u1173\u1105\u1175\u11ab\u1109\u1163\u11ba-2021-10-06-\u110b\u1169\u1112\u116e-9.33.24-1024x413.png 1024w, https:\/\/blog.enyou.net\/wp-content\/uploads\/2021\/10\/\u1109\u1173\u110f\u1173\u1105\u1175\u11ab\u1109\u1163\u11ba-2021-10-06-\u110b\u1169\u1112\u116e-9.33.24-300x121.png 300w, https:\/\/blog.enyou.net\/wp-content\/uploads\/2021\/10\/\u1109\u1173\u110f\u1173\u1105\u1175\u11ab\u1109\u1163\u11ba-2021-10-06-\u110b\u1169\u1112\u116e-9.33.24-768x310.png 768w, https:\/\/blog.enyou.net\/wp-content\/uploads\/2021\/10\/\u1109\u1173\u110f\u1173\u1105\u1175\u11ab\u1109\u1163\u11ba-2021-10-06-\u110b\u1169\u1112\u116e-9.33.24.png 1110w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption>\uc11c\ube0c\uc2a4\ud06c\ub77c\uc774\ubc84\ub294 \uc11c\ube0c\uc2a4\ud06c\ub9bd\uc158\uc744 cancel()\ud560 \uc218 \uc788\ub2e4.<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>To-do:<\/p>\n\n\n\n<p>RXSwift\uc758 \uc608 \ucd94\uac00\ud558\uae30<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Subscriber A protocol that declares a type that can receive input from a publisher. \ud37c\ube14\ub9ac\uc154\ub85c\ubd80\ud130 \uc785\ub825\uc744 \ubc1b\uc744 \uc218 \uc788\ub294 \ud0c0\uc785\uc744 \uc815\uc758\ud558\ub294 \ud504\ub85c\ud1a0\ucf5c. Apple Documentation Subscriber\ub294 Publisher\ub97c \uad6c\ub3c5\ud558\ub294 \ud0c0\uc785\uc774\ub2e4. RX\uc5d0\uc11c\ub294 \ub3d9\uc77c\ud55c \uc5ed\ud560\uc744 \ud558\ub294 \uac1d\uccb4\ub97c Observer\ub77c\uace0 \ubd80\ub974\uba70, \uacbd\uc6b0\uc5d0 \ub530\ub77c Watcher, \ub610\ub294 Reactor\ub77c\uace0\ub3c4 \ubd80\ub974\ub294 \uac83 \uac19\ub2e4. Publisher\ub85c \ubd80\ud130 \uc785\ub825\uc744 \ubc1b\uae30 \ub54c\ubb38\uc5d0 Input\uacfc Failure\ub97c [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1121","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"jetpack_featured_media_url":"","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blog.enyou.net\/ko\/wp-json\/wp\/v2\/posts\/1121"}],"collection":[{"href":"https:\/\/blog.enyou.net\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.enyou.net\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.enyou.net\/ko\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.enyou.net\/ko\/wp-json\/wp\/v2\/comments?post=1121"}],"version-history":[{"count":12,"href":"https:\/\/blog.enyou.net\/ko\/wp-json\/wp\/v2\/posts\/1121\/revisions"}],"predecessor-version":[{"id":1319,"href":"https:\/\/blog.enyou.net\/ko\/wp-json\/wp\/v2\/posts\/1121\/revisions\/1319"}],"wp:attachment":[{"href":"https:\/\/blog.enyou.net\/ko\/wp-json\/wp\/v2\/media?parent=1121"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.enyou.net\/ko\/wp-json\/wp\/v2\/categories?post=1121"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.enyou.net\/ko\/wp-json\/wp\/v2\/tags?post=1121"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}