๋””์ž์ธํŒจํ„ด 2

[CS] ๋””์ž์ธ ํŒจํ„ด_ํ–‰์œ„ํŒจํ„ด

๐Ÿ’กํ–‰์œ„ ํŒจํ„ด์ด๋ž€?ํด๋ž˜์Šค๋‚˜ ๊ฐ์ฒด์˜ ์ฑ…์ž„ ๋ถ„๋ฐฐ ๋ฐฉ๋ฒ•๊ณผ ๊ด€๋ จ๋œ ํŒจํ„ด ๐Ÿ’กํ–‰์œ„ ํŒจํ„ด ํŠน์ง•ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ์„ ์—ฌ๋Ÿฌ ๊ฐ์ฒด๋กœ ๋ถ„๋ฐฐํ•˜์—ฌ ๊ฒฐํ•ฉ๋„ ์ตœ์†Œํ™” ๐Ÿ’กํ–‰์œ„ ํŒจํ„ด ์ข…๋ฅ˜Chain-of-ResponsibilityCommandInterpreterIteratorMediatorMementoObserverStateStrategyTemplate MethodVisitor ๐Ÿ’กChain-of-Responsibility ํŒจํ„ด์ •์˜ : ์‚ฌ์Šฌ ๋ฐฉ์‹์œผ๋กœ ์—ฐ๊ฒฐ๋œ ๊ฐ์ฒด๊ฐ€ ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด ๊ทธ ์š”์ฒญ์„ ์ˆ˜ํ–‰ํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฐ์ฒด๋ผ๋ฉด ๋‹ค์Œ ๊ฐ์ฒด์— ๋„˜๊น€ex) JAVA์˜ try catch๋ฌธ ์žฅ์ : ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ์•Œ ํ•„์š” ์—†์Œ: ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ํ•ธ๋“ค๋Ÿฌ๋ฅผ chain์— ๋™์ ์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ฒ˜๋ฆฌ ์ˆœ์„œ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œ ๊ฐ€๋Šฅ (์œ ์—ฐ์„ฑ) ๋‹จ์ : ๋””๋ฒ„..

[CS] ๋””์ž์ธ ํŒจํ„ด_๊ตฌ์กฐํŒจํ„ด

๐Ÿ’ก๊ตฌ์กฐ ํŒจํ„ด์ด๋ž€?๊ตฌ์กฐ ํŒจํ„ด์ด๋ž€ ํด๋ž˜์Šค๋‚˜ ๊ฐ์ฒด๋ฅผ ๋” ํฐ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“œ๋Š” ํŒจํ„ด ๐Ÿ’ก๊ตฌ์กฐ ํŒจํ„ด ํŠน์ง•์„œ๋กœ ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐœ๋ฐœํ•œ ํด๋ž˜์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ•˜๋‚˜์ธ ๊ฒƒ์ฒ˜๋Ÿผ ์‚ฌ์šฉ ๊ฐ€๋Šฅ์ธํ„ฐํŽ˜์ด์Šค๋‚˜ ๊ตฌํ˜„์„ ๋ณตํ•ฉํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ฐ์ฒด๋ฅผ ํ•ฉ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ• ์ œ๊ณต ๐Ÿ’ก๊ตฌ์กฐ ํŒจํ„ด ์ข…๋ฅ˜AdapterBridgeCompositeDecoratorFacadeFlyweightProxy ๐Ÿ’กAdapter ํŒจํ„ด์ •์˜ : ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ์„ ํ•„์š”ํ•œ ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ„ด ์žฅ์ : ํด๋ž˜์Šค ์žฌํ™œ์šฉ์„ฑ ์ฆ๊ฐ€ ๋‹จ์ : ํด๋ž˜์Šค๋ฅผ ์žฌํ™œ์šฉํ•  ๋•Œ ์ถ”๊ฐ€ ์ฝ”๋“œ๊ฐ€ ํ•„์š”ํ•˜์—ฌ ๋ณต์žก๋„๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ณ  ์†๋„ ์ €ํ•˜๐Ÿ’กBridge ํŒจํ„ด์ •์˜ : ์ถ”์ƒ์ ์ธ ๋ถ€๋ถ„๊ณผ ๊ตฌ์ฒด์ ์ธ ๋ถ€๋ถ„์„ ๋‚˜๋ˆ  ๊ตฌํ˜„ํ•˜๋Š” ํŒจํ„ด ์žฅ์ : ๋…๋ฆฝ์ ์œผ๋กœ ํ™•์žฅ ๊ฐ€๋Šฅ: ์ถ”์ƒ์ ์ธ ๋ถ€๋ถ„๊ณผ ๊ตฌ์ฒด์ ์ธ ๋ถ€๋ถ„ ๋ถ„๋ฆฌ ๊ฐ€๋Šฅ ๋‹จ์ : ๋ณต์žก๋„ ์ฆ๊ฐ€ ..