From fe33267dfa5f515ac8c5860f28bd5f17cfd3c1df Mon Sep 17 00:00:00 2001 From: kizmo04 Date: Mon, 1 Nov 2021 14:48:03 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20=EC=B1=85=EC=9E=84=EC=97=B0=EC=87=84=20?= =?UTF-8?q?=ED=8C=A8=ED=84=B4=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../example.png | Bin 0 -> 25925 bytes .../chain-of-responsibility-pattern/index.md | 133 ++++++++++++++++++ 2 files changed, 133 insertions(+) create mode 100644 study/design-pattern/catalogs/chain-of-responsibility-pattern/example.png create mode 100644 study/design-pattern/catalogs/chain-of-responsibility-pattern/index.md diff --git a/study/design-pattern/catalogs/chain-of-responsibility-pattern/example.png b/study/design-pattern/catalogs/chain-of-responsibility-pattern/example.png new file mode 100644 index 0000000000000000000000000000000000000000..d9b4e22cf93dae39e50f6d75c1b7c599ed97e203 GIT binary patch literal 25925 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 A1ONa4 literal 0 HcmV?d00001 diff --git a/study/design-pattern/catalogs/chain-of-responsibility-pattern/index.md b/study/design-pattern/catalogs/chain-of-responsibility-pattern/index.md new file mode 100644 index 0000000..b7cffb1 --- /dev/null +++ b/study/design-pattern/catalogs/chain-of-responsibility-pattern/index.md @@ -0,0 +1,133 @@ +# ์ฑ…์ž„ ์—ฐ์‡„(Chain of Responsibility) + +## **๐Ÿ’ก ์ฑ…์—์„œ ์„ค๋ช…ํ•˜๋Š” ์˜๋„** + +์š”์ฒญ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ ๊ธฐํšŒ๋ฅผ ์ฒด์ด๋‹ ๋œ ์—ฌ๋Ÿฌ ๊ฐ์ฒด์—๊ฒŒ ์ฃผ์–ด, ํด๋ผ์ด์–ธํŠธ์™€ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฐ์ฒด๋“ค ๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๊ธฐ ์œ„ํ•œ ํŒจํ„ด + +## **๐Ÿง ์šฐ๋ฆฌ ์ƒํ™ฉ์— ๋งž๊ฒŒ ํ’€์–ด ์“ด ๋™๊ธฐ** + +์„œ๋น„์Šค์—์„œ ๋˜์ง„ ์—๋Ÿฌ๋ฅผ ํฌ๋งคํŒ… ํ•œ๋‹ค๊ณ  ํ•  ๋•Œ, ๋ฉ”์‰ฌ์›์—์„œ ์‚ฌ์šฉ์ค‘์ธ api ์„œ๋ฒ„๋“ค์˜ ์ข…๋ฅ˜๋Š” ๋„ˆ๋ฌด๋„ˆ๋ฌด ๋‹ค์–‘ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋˜์ ธ์ง„ ์—๋Ÿฌ๋ฉ”์„ธ์ง€ ์ข…๋ฅ˜๋„ ๋‹ค์–‘ํ•ฉ๋‹ˆ๋‹ค. + +![Example](./example.png) + +์„œ๋น„์Šค์—์„œ ๋˜์ ธ์ง„ ์—๋Ÿฌ๊ฐ์ฒด๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ์˜ ํ•ธ๋“ค๋Ÿฌ ๊ฐ์ฒด๋ฅผ ๋”ฐ๋ผ์„œ ์ „๋‹ฌ๋œ๋‹ค๊ณ  ํ•ฉ์‹œ๋‹น. ๊ฐ ํ•ธ๋“ค๋Ÿฌ๋Š” ์ž์‹ ์˜ ๋„๋ฉ”์ธ๊ณผ ๊ด€๋ จ๋œ ํƒ€์ž…์˜ ์—๋Ÿฌ์ด๋ฉด ํ•ธ๋“ค๋งํ•˜๊ณ , ์•„๋‹ˆ๋ผ๋ฉด ๋‹ค์Œ ํ•ธ๋“ค๋Ÿฌ์—๊ฒŒ ๋„˜๊ฒจ์ค๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒํ•˜๋ฉด, ์„œ๋น„์Šค์—์„œ๋Š” ๋ช‡๊ฐœ์˜ ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ์–ด๋–ค ์ˆœ์„œ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š”์ง€ ๋ชฐ๋ผ๋„ ๋ฉ”์„ธ์ง€๋งŒ ์ „๋‹ฌํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ฐ ํ•ธ๋“ค๋Ÿฌ๋“ค์€ ์ž๊ธฐ ๋„๋ฉ”์ธ์˜ ์—๋Ÿฌ์ผ๋•Œ๋งŒ ์ฒ˜๋ฆฌํ•˜๊ณ  ์•„๋‹ˆ๋ผ๋ฉด ๋‹ค์Œ ํ•ธ๋“ค๋Ÿฌ์—๊ฒŒ ๋„˜๊ฒจ์ฃผ๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. (๋˜ํ•œ ๋‹ค์Œ์œผ๋กœ ๋„˜๊ฒจ์ค„ ํ•ธ๋“ค๋Ÿฌ๋งŒ ์•Œ๊ณ ์žˆ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค) + +## **๐Ÿ›  ํ™œ์šฉ์„ฑ: ์ด๋Ÿด ๋•Œ ์”๋‹ˆ๋‹ค** + +- ์—ฌ๋Ÿฌ ๊ฐ์ฒด์—๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋„๋ก ํ•˜๊ณ  ์‹ถ์„ ๋•Œ, ๊ทธ๋ ‡์ง€๋งŒ ๊ทธ ์ˆœ์„œ๋‚˜ ์ฒซ๋ฒˆ์งธ ์š”์ฒญ ๊ฐ์ฒด๋ฅผ ๋ชจ๋ฅด๊ฒŒ ํ•˜๊ณ  ์‹ถ์„ ๋•Œ +- ์˜ˆ๋ฅผ๋“ค๋ฉด DOM ์ด๋ฒคํŠธ ํ”„๋กœํผ๊ฒŒ์ด์…˜ + - DOM ํŠธ๋ฆฌ์—์„œ ์›ํ•˜๋Š” ๊ณณ์—์„œ ์ด๋ฒคํŠธ๋ฅผ ํ•ธ๋“ค๋งํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ๋‹ค. +- Express ์„œ๋ฒ„๋‚˜ Redux ๋“ฑ์˜ ๋ฏธ๋“ค์›จ์–ด + +## **๐ŸŽ ๊ฒฐ๊ณผ** + +- ๋ฉ”์„ธ์ง€ ์ „๋‹ฌ์ž (sender)๊ฐ€ ํ•ธ๋“ค๋Ÿฌ์˜ ์š”์ฒญ ์ฒ˜๋ฆฌ ์ˆœ์„œ๋‚˜ ๋ฐฉ๋ฒ•๋“ฑ์„ ๋ชฐ๋ผ๋„ ๋œ๋‹ค. โ‡’ ๊ฐ ํด๋ž˜์Šค์˜ ๊ฒฐํ•ฉ๋„๊ฐ€ ๋‚ฎ์•„์ง„๋‹ค. +- ํ•ธ๋“ค๋Ÿฌ์˜ ์ˆœ์„œ, ํƒ€์ž… ๋“ฑ์ด ๋™์ ์œผ๋กœ ๊ฒฐ์ •๋  ์ˆ˜ ์žˆ๋‹ค. +- ๋‹ค๋งŒ ๋ฐ˜๋“œ์‹œ ๋ช…์‹œ์ ์œผ๋กœ ๋ฉ”์„ธ์ง€ ์ˆ˜์‹ ์ž๋ฅผ ๊ฒฐ์ •ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ํ•ญ์ƒ ๋ฉ”์„ธ์ง€๊ฐ€ ์ฒ˜๋ฆฌ๋œ๋‹ค๊ณ  ๋ณด์žฅํ•  ์ˆ˜ ์—†์œผ๋ฉฐ, ์ฒด์ธ์˜ ์ˆœ์„œ๋ฅผ ์•Œ๊ธฐ ์–ด๋ ต๊ธฐ๋•Œ๋ฌธ์— ๋””๋ฒ„๊น…์ด ์–ด๋ ค์šธ ์ˆ˜ ์žˆ๋‹ค. + +## **๐Ÿ—บ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•** + +์ถ”์ƒ Handler ํด๋ž˜์Šค โ†’ handleSomething, nextHandler + +๊ตฌ์ฒด Handler ํด๋ž˜์Šค โ†’ handleSomthing์—์„œ ์‹ค์ œ ์ฒ˜๋ฆฌ ๋กœ์ง์„ ๊ตฌํ˜„, ์ฒ˜๋ฆฌํ•  ๋ฐฉ๋ฒ•์ด ์—†๋‹ค๋ฉด ๋‹ค์Œ ํ•ธ๋“ค๋Ÿฌ์˜ handleSomthineg์„ ํ˜ธ์ถœ + +```tsx +class HandlerChain { + setNextObj(nextObjInChain) {} + processMultiple(req) { + console.log("No multiple for: " + req.getMultiple()); + } +} + +class Multiple { + constructor(multiple) { + this.multiple = multiple; + } + + getMultiple() { + return this.multiple; + } +} + +class MultipleofTwoHandler extends HandlerChain { + constructor() { + super(); + this.nextObjInChain = new HandlerChain(); + } + + setNextObj(nextObj) { + this.nextObjInChain = nextObj; + } + + processMultiple(req) { + if (req.getMultiple() % 2 == 0) { + console.log("Multiple of 2: " + req.getMultiple()); + } else { + this.nextObjInChain.processMultiple(req); + } + } +} + +class MultipleofThreeHandler extends HandlerChain { + constructor() { + super(); + this.nextObjInChain = new HandlerChain(); + } + + setNextObj(nextObj) { + this.nextObjInChain = nextObj; + } + + processMultiple(req) { + if (req.getMultiple() % 3 == 0) { + console.log("Multiple of 3: " + req.getMultiple()); + } else { + this.nextObjInChain.processMultiple(req); + } + } +} + +class MultipleofFiveHandler extends HandlerChain { + constructor() { + super(); + this.nextObjInChain = new HandlerChain(); + } + + setNextObj(nextObj) { + this.nextObjInChain = nextObj; + } + + processMultiple(req) { + if (req.getMultiple() % 5 == 0) { + console.log("Multiple of 5: " + req.getMultiple()); + } else { + this.nextObjInChain.processMultiple(req); + } + } +} + +//configuring the chain of handler objects +var c1 = new MultipleofTwoHandler(); +var c2 = new MultipleofThreeHandler(); +var c3 = new MultipleofFiveHandler(); +c1.setNextObj(c2); +c2.setNextObj(c3); + +//the chain handling different cases +c1.processMultiple(new Multiple(95)); +c1.processMultiple(new Multiple(50)); +c1.processMultiple(new Multiple(9)); +c1.processMultiple(new Multiple(4)); +c1.processMultiple(new Multiple(21)); +c1.processMultiple(new Multiple(23)); +``` + +handler๋“ค์„ ๋ฏธ๋ฆฌ ์ƒ์œ„ ํด๋ž˜์Šค์— ๋“ฑ๋กํ•˜๊ฑฐ๋‚˜(์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋‹ค์Œ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ํ•ธ๋“ค๋Ÿฌ๋ผ๋ฆฌ ์•Œ ํ•„์š”๋Š” ์—†์ง€๋งŒ ์ƒ์œ„์—์„œ ๊ด€๋ฆฌ๋˜์–ด์•ผ ํ•œ๋‹ค) handler์— ๋Œ€ํ•œ setter ๋ฉ”์†Œ๋“œ๋ฅผ ์ž‘์„ฑํ•ด์„œ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ• ๋“ฑ์ด ์žˆ๋‹ค. + +์ค‘์š”ํ•œ๊ฒƒ์€ ๊ฐ ๊ตฌํ˜„ ํ•ธ๋“ค๋Ÿฌ๋“ค์ด ๋ฉ”์„ธ์ง€ ์ฒ˜๋ฆฌ๋ฐฉ๋ฒ•์„ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋ฉฐ, ๋‹ค์Œ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์•Œ๊ณ ์žˆ์–ด์•ผ ํ•œ๋‹ค. + +## **๐Ÿ”™ ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•œ ์˜ˆ์‹œ (๋˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ–ˆ๋‹ค๋ฉด...)** + +์ด๋ฏธ framework๋ ˆ๋ฒจ์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ์žˆ๋Š”๋ฐ, ๋ฉ”์‰ฌ์›์— ์ ์šฉํ•œ๋‹ค๋ฉด.. + +ํŒŒ์ผ ์ฒ˜๋ฆฌ ๋กœ์ง์„ ๊ตฌ์„ฑํ•  ๋•Œ ํ™•์žฅ์ž๋ณ„๋กœ ๋‹ค๋ฅธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋‹ฌ๊ฑฐ๋‚˜ ์—‘์…€ ํŒŒ์ผ ์ฒ˜๋ฆฌ๋ฅผ ํ• ๋•Œ๋„ ๊ฐ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•๋ณ„๋กœ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋‚˜๋ˆ ์„œ ๊ตฌ์„ฑํ•ด๋„ ๊ดœ์ฐฎ์„ ๋“ฏ ํ•˜๋‹ค!