๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“ŒCS/Design Pattern2

[Design Pattern] ์–ด๋Œ‘ํ„ฐ ํŒจํ„ด(Adapter Pattern) ๊ฐœ๋… ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋ถˆ์ผ์น˜๋ฅผ ํ•ด๊ฒฐํ•ด์„œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”๊ตฌํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ. ํ˜ธํ™˜์„ฑ์ด ์—†๋Š” ์ธํ„ฐํŽ˜์ด์Šค ๋•Œ๋ฌธ์— ํ•จ๊ป˜ ๋™์ž‘ํ•  ์ˆ˜ ์—†๋Š” ํด๋ž˜์Šค๋“ค์ด ํ•จ๊ป˜ ๋™์ž‘ํ•˜๋„๋ก ํ•ด์ค€๋‹ค. ํด๋ผ์ด์–ธํŠธ์—์„œ ์–ด๋Œ‘ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• ํด๋ผ์ด์–ธํŠธ์—์„œ ํƒ€๊ฒŸ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•จ์œผ๋กœ์จ ์–ด๋Œ‘ํ„ฐ์— ์š”์ฒญ์„ ํ•œ๋‹ค. ์–ด๋Œ‘ํ„ฐ์—์„œ๋Š” ์–ด๋Œ‘ํ‹ฐ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ทธ ์š”์ฒญ์„ ์–ด๋Œ‘ํ‹ฐ์— ๋Œ€ํ•œ ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค. ํด๋ผ์ด์–ธํŠธ์—์„œ๋Š” ํ˜ธ์ถœ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›๊ธด ํ•˜์ง€๋งŒ ์ค‘๊ฐ„์— ์–ด๋Œ‘ํ„ฐ๊ฐ€ ๊ปด ์žˆ๋Š”์ง€๋Š” ์ „ํ˜€ ์•Œ์ง€ ๋ชปํ•œ๋‹ค. ์žฅ์  ์ธํ„ฐํŽ˜์ด์Šค ๋ถˆ์ผ์น˜ ํ•ด๊ฒฐ ํด๋ผ์ด์–ธํŠธ์™€ ๊ตฌํ˜„๋œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋ถ„๋ฆฌ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. ํ–ฅํ›„ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๋ฐ”๋€Œ๋”๋ผ๋„ ๋ณ€๊ฒฝ ๋‚ด์—ญ์€ ์–ด๋Œ‘ํ„ฐ์— ์บก์Šํ™”๋˜๊ธฐ ๋•Œ๋ฌธ์— ํด๋ผ์ด์–ธํŠธ๋Š” ๋ฐ”๋€” ํ•„์š”๊ฐ€ ์—†๋‹ค. ์ข…๋ฅ˜ ๊ฐ์ฒด ์–ด๋Œ‘ํ„ฐ ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๊ฐ์ฒด์˜ .. 2021. 5. 2.
[Design Pattern] ํ”„๋ก์‹œ ํŒจํ„ด(Proxy Pattern) ๊ฐœ๋… ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋ก์‹œ๋ผ๋Š” ์šฉ์–ด๋Š” ํด๋ผ์ด์–ธํŠธ์™€ ์‚ฌ์šฉ ๋Œ€์ƒ ์‚ฌ์ด์˜ ๋Œ€๋ฆฌ ์—ญํ• ์„ ๋งก์€ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋‘๋Š” ๋ฐฉ๋ฒ•์„ ์ด์นญํ•˜๋Š” ๋ฐ˜๋ฉด, ๋””์ž์ธ ํŒจํ„ด์—์„œ ๋งํ•˜๋Š” ํ”„๋ก์‹œ ํŒจํ„ด์˜์€ ํ”„๋ก์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘์—์„œ ํƒ€๊นƒ์— ๋Œ€ํ•œ ์ ‘๊ทผ ๋ฐฉ๋ฒ•์„ ์ œ์–ดํ•˜๋ ค๋Š” ๋ชฉ์ ์„ ๊ฐ€์ง„ ๊ฒฝ์šฐ๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค. ํ”„๋ก์‹œ ํŒจํ„ด์˜ ํ”„๋ก์‹œ๋Š” ํƒ€๊นƒ์˜ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๋Š”๋‹ค. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํƒ€๊นƒ์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ์‹์„ ๋ณ€๊ฒฝํ•œ๋‹ค. ํƒ€๊นƒ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ๊ฐ€ ๋ณต์žกํ•˜๊ฑฐ๋‚˜ ๋‹น์žฅ ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” ๊ผญ ํ•„์š”ํ•œ ์‹œ์ ๊นŒ์ง€ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๋Š” ํŽธ์ด ์ข‹๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ํƒ€๊นƒ ์˜ค๋ธŒ์ ํŠธ์— ๋Œ€ํ•œ ๋ ˆํผ๋Ÿฐ์Šค๊ฐ€ ๋ฏธ๋ฆฌ ํ•„์š”ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿด ๋•Œ ํ”„๋ก์‹œ ํŒจํ„ด์„ ์ ์šฉํ•˜๋ฉด ๋œ๋‹ค. ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ํƒ€๊นƒ์— ๋Œ€ํ•œ ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ๋„˜๊ฒจ์•ผ ํ•˜๋Š”๋ฐ, ์‹ค์ œ ํƒ€๊นƒ ์˜ค๋ธŒ์ ํŠธ ๋Œ€์‹  ํ”„๋ก์‹œ๋ฅผ ๋„˜๊ฒจ์ค€๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ”„.. 2021. 4. 25.