\uc2a4\ud504\ub9c1 \uc6f9\ud50c\ub7ed\uc2a4\ub294 \uc2a4\ud504\ub9c1 \ud504\ub808\uc784\uc6cc\ud06c\uc5d0\uc11c \ube44\ub3d9\uae30\uc801\uc73c\ub85c HTTP \uc694\uccad\uc744 \ucc98\ub9ac\ud560 \uc218 \uc788\ub294 \ubaa8\ub4c8\ub85c, \uc11c\ube14\ub9bf API\ub97c \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uace0 \ub124\ud2f0 \ub610\ub294 \uc5b8\ub354\ud1a0\uc6b0 \uac19\uc740 \ub2e4\ub978 \uc11c\ubc84\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ubaa8\ub4c8\uc740 Reactor \ud504\ub85c\uc81d\ud2b8\uc640 \ud568\uaed8 \uc0ac\uc6a9\ub420 \ub54c \ub354\uc6b1 \uac15\ub825\ud55c \ube44\ub3d9\uae30 \ucc98\ub9ac \uae30\ub2a5\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4.<\/p>\n
\uc2a4\ud504\ub9c1 \uc6f9\ud50c\ub7ed\uc2a4\uc758 \uac00\uc7a5 \ud070 \uc7a5\uc810\uc740 \ube44\ub3d9\uae30\uc801\uc73c\ub85c \uc694\uccad\uc744 \ucc98\ub9ac\ud560 \uc218 \uc788\ub2e4\ub294 \uac83\uc785\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 \ub354\uc6b1 \ube60\ub978 \uc751\ub2f5 \uc18d\ub3c4\uc640 \ub354 \ub9ce\uc740 \ud2b8\ub798\ud53d\uc744 \ucc98\ub9ac\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub610\ud55c, \uc774 \ubaa8\ub4c8\uc740 Reactive Streams \uc2a4\ud399\uc744 \ub530\ub974\uae30 \ub54c\ubb38\uc5d0, \ub9ac\uc561\ud2f0\ube0c\ud55c \ubc29\uc2dd\uc73c\ub85c \ub370\uc774\ud130\ub97c \ucc98\ub9ac\ud560 \uc218 \uc788\ub294 \uc7a5\uc810\uc774 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n
Project Reactor\ub294 \ub9ac\uc561\ud2f0\ube0c\ud55c \ud504\ub85c\uadf8\ub798\ubc0d\uc744 \uc9c0\uc6d0\ud558\uae30 \uc704\ud55c \ub77c\uc774\ube0c\ub7ec\ub9ac\uc785\ub2c8\ub2e4. Reactor\ub294 Publisher, Subscriber, Subscription, Processor \ub4f1\uc758 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc81c\uacf5\ud558\uc5ec, Reactive Streams \uc2a4\ud399\uc744 \ub530\ub974\ub294 \ubaa8\ub4e0 \ub77c\uc774\ube0c\ub7ec\ub9ac\uc640 \ud568\uaed8 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n
Publisher\ub294 \ub370\uc774\ud130\ub97c \ubc1c\ud589\ud558\ub294 \uc5ed\ud560\uc744 \ud558\uba70, Subscriber\ub294 \ub370\uc774\ud130\ub97c \uad6c\ub3c5\ud558\ub294 \uc5ed\ud560\uc744 \ud569\ub2c8\ub2e4. Subscription\uc740 Publisher\uc640 Subscriber \uac04\uc758 \uc5f0\uacb0\uc744 \ub098\ud0c0\ub0b4\uba70, Processor\ub294 Publisher\uc640 Subscriber\ub97c \ubaa8\ub450 \uad6c\ud604\ud55c \uc778\ud130\ud398\uc774\uc2a4\uc785\ub2c8\ub2e4. Reactor\ub294 \uc774\ub7ec\ud55c \uc778\ud130\ud398\uc774\uc2a4\ub4e4\uc744 \ud65c\uc6a9\ud558\uc5ec \ube44\ub3d9\uae30\uc801\uc73c\ub85c \ub370\uc774\ud130\ub97c \ucc98\ub9ac\ud569\ub2c8\ub2e4.<\/p>\n
Reactor\ub294 Flux\uc640 Mono \ub450 \uac00\uc9c0 \ud0c0\uc785\uc758 \ub370\uc774\ud130 \uc2a4\ud2b8\ub9bc\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. Flux\ub294 0 \ub610\ub294 \uc5ec\ub7ec \uac1c\uc758 \uc544\uc774\ud15c\uc744 \ubc1c\ud589\ud560 \uc218 \uc788\ub294 \uc2a4\ud2b8\ub9bc\uc774\uba70, Mono\ub294 0 \ub610\ub294 1\uac1c\uc758 \uc544\uc774\ud15c\uc744 \ubc1c\ud589\ud560 \uc218 \uc788\ub294 \uc2a4\ud2b8\ub9bc\uc785\ub2c8\ub2e4. \uc774\ub7ec\ud55c Flux\uc640 Mono\ub97c \uc0ac\uc6a9\ud558\uc5ec \ube44\ub3d9\uae30\uc801\uc73c\ub85c \ub370\uc774\ud130\ub97c \ucc98\ub9ac\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n
\ubc18\uc751\ud615 \ub370\uc774\ud130 \ucc98\ub9ac\ub294 \ub370\uc774\ud130\ub97c \ucc98\ub9ac\ud558\ub294 \ubc29\uc2dd\uc744 \ub9ac\uc561\ud2f0\ube0c\ud55c \ubc29\uc2dd\uc73c\ub85c \ubcc0\uacbd\ud558\ub294 \uac83\uc785\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 \ub354 \ub9ce\uc740 \ub370\uc774\ud130\ub97c \ucc98\ub9ac\ud558\uace0, \ub354 \ube60\ub974\uac8c \ucc98\ub9ac\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ubc18\uc751\ud615 \ub370\uc774\ud130 \ucc98\ub9ac\ub97c \uc0ac\uc6a9\ud568\uc73c\ub85c\uc368 \ub2e4\uc74c\uacfc \uac19\uc740 \uc7a5\uc810\uc744 \uc5bb\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n
\ubc18\uc751\ud615 \ub370\uc774\ud130 \ucc98\ub9ac\ub97c \uc0ac\uc6a9\ud558\uba74 \ub354\uc6b1 \ube60\ub978 \uc751\ub2f5 \uc18d\ub3c4\uc640 \ub354 \ub9ce\uc740 \ud2b8\ub798\ud53d\uc744 \ucc98\ub9ac\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 \ub354 \ub192\uc740 \uc131\ub2a5\uc744 \uc5bb\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n
\ubc18\uc751\ud615 \ub370\uc774\ud130 \ucc98\ub9ac\ub97c \uc0ac\uc6a9\ud558\uba74 \ub354 \ub9ce\uc740 \ub370\uc774\ud130\ub97c \ucc98\ub9ac\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 \ub354 \ub9ce\uc740 \uc815\ubcf4\ub97c \uc218\uc9d1\ud558\uace0, \ub354 \uc815\ud655\ud55c \ubd84\uc11d\uc744 \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n
\ubc18\uc751\ud615 \ub370\uc774\ud130 \ucc98\ub9ac\ub97c \uc0ac\uc6a9\ud558\uba74 \uc2dc\uc2a4\ud15c\uc758 \uc548\uc815\uc131\uc744 \ub192\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 \uc2dc\uc2a4\ud15c\uc774 \ub354\uc6b1 \uc548\uc815\uc801\uc73c\ub85c \ub3d9\uc791\ud558\uba70, \uc608\uae30\uce58 \uc54a\uc740 \ubb38\uc81c\ub97c \ubbf8\ub9ac \uc608\ubc29\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n
\ubc18\uc751\ud615 \ub370\uc774\ud130 \ucc98\ub9ac\ub97c \ud65c\uc6a9\ud558\ub294 \ubc29\ubc95\uc740 \ub2e4\uc591\ud569\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \ube44\ub3d9\uae30\uc801\uc73c\ub85c \ub370\uc774\ud130\ub97c \ucc98\ub9ac\ud558\ub294 \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uac1c\ubc1c\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub610\ud55c, \ub300\uaddc\ubaa8 \ub370\uc774\ud130 \ucc98\ub9ac\ub97c \uc704\ud55c \ubd84\uc0b0 \uc2dc\uc2a4\ud15c\uc744 \uad6c\uc131\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n
@GetMapping(\"\/{id}\")\npublic Mono<ResponseEntity> getUserById(@PathVariable Long id) {\n return userService.getUserById(id)\n .map(ResponseEntity::ok)\n .defaultIfEmpty(ResponseEntity.notFound().build());\n}<\/code><\/pre>\n\uc704\uc758 \uc608\uc81c\ub294 \uc2a4\ud504\ub9c1 \uc6f9\ud50c\ub7ed\uc2a4\uc640 Project Reactor\ub97c \uc0ac\uc6a9\ud558\uc5ec \ube44\ub3d9\uae30\uc801\uc73c\ub85c \ub370\uc774\ud130\ub97c \ucc98\ub9ac\ud558\ub294 \ubc29\ubc95\uc744 \ubcf4\uc5ec\uc90d\ub2c8\ub2e4. getUserById() \uba54\uc18c\ub4dc\ub294 Mono \ud0c0\uc785\uc758 \ub370\uc774\ud130\ub97c \ubc18\ud658\ud558\uba70, \uc774\ub97c \ud1b5\ud574 \ube44\ub3d9\uae30\uc801\uc73c\ub85c \ub370\uc774\ud130\ub97c \ucc98\ub9ac\ud569\ub2c8\ub2e4.<\/p>\n
\uacb0\ub860<\/h1>\n
\ubc18\uc751\ud615 \ub370\uc774\ud130 \ucc98\ub9ac\ub294 \ub354\uc6b1 \ube60\ub974\uace0 \uc815\ud655\ud55c \ub370\uc774\ud130 \ucc98\ub9ac\ub97c \uc704\ud55c \ud544\uc218\uc801\uc778 \uae30\uc220\uc785\ub2c8\ub2e4. \uc2a4\ud504\ub9c1 \uc6f9\ud50c\ub7ed\uc2a4\uc640 Project Reactor\ub97c \uc0ac\uc6a9\ud558\uc5ec \ube44\ub3d9\uae30\uc801\uc73c\ub85c \ub370\uc774\ud130\ub97c \ucc98\ub9ac\ud558\ub294 \ubc29\ubc95\uc744 \uc775\ud600\ub450\uba74, \ub354\uc6b1 \ud6a8\uc728\uc801\uc778 \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uac1c\ubc1c\uacfc \ub300\uaddc\ubaa8 \ub370\uc774\ud130 \ucc98\ub9ac\ub97c \uc704\ud55c \ubd84\uc0b0 \uc2dc\uc2a4\ud15c \uad6c\uc131\uc5d0 \ub3c4\uc6c0\uc774 \ub420 \uac83\uc785\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"
\uc2a4\ud504\ub9c1 \uc6f9\ud50c\ub7ed\uc2a4\uc640 Project Reactor\ub97c \uc774\uc6a9\ud55c \ubc18\uc751\ud615 \ub370\uc774\ud130 \ucc98\ub9ac \uae30\uc220\uc5d0 \ub300\ud574 \uc54c\uc544\ubcf4\uc790.<\/p>\n","protected":false},"author":1,"featured_media":33704,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1957],"tags":[2119,2011,2188,2428],"class_list":["post-34311","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development","tag-api","tag-project","tag-public","tag-reactive"],"acf":[],"_links":{"self":[{"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/posts\/34311","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/comments?post=34311"}],"version-history":[{"count":1,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/posts\/34311\/revisions"}],"predecessor-version":[{"id":34330,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/posts\/34311\/revisions\/34330"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/media\/33704"}],"wp:attachment":[{"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/media?parent=34311"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/categories?post=34311"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/tags?post=34311"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}