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

๐ŸŽ iOS/Design Pattern

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