[SW] Software architecture

nero_luv03ยท2021๋…„ 2์›” 22์ผ
0

CS

๋ชฉ๋ก ๋ณด๊ธฐ
9/11

๐Ÿ’ architecture ?

: ์˜์–ด ์‚ฌ์ „์„ ๋ณด๋ฉด ์•„ํ‚คํ…์ฒ˜๋Š” ๊ฑด์ถ•ํ•™์ด๋ผ๊ณ  ๋ช…์‹œ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.. ๊ทธ๋ฆฌ๊ณ  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ๊ฑด์ถ•ํ•™์—๊ฒŒ ๋งŽ์€ ์˜ํ–ฅ์„ ๋ฏธ์นœ ํ•™๋ฌธ์ด๋ผ ๊ฑด์ถ•์šฉ์–ด๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์•„ํ‚คํ…์ฒ˜๋Š” ์ตœ์ ํ™”๋ฅผ ๋ชฉํ‘œ๋กœ ๋‘๊ณ  ์‹œ์Šคํ…œ ๊ตฌ์„ฑ๊ณผ ๋™์ž‘์›๋ฆฌ ๊ทธ๋ฆฌ๊ณ  ์‹œ์Šคํ…œ์˜ ๊ตฌ์„ฑํ™˜๊ฒฝ๋“ฑ์„ ์„ค๋ช… ๋ฐ ์„ค๊ณ„ํ•˜๋Š” ์ฒญ์‚ฌ์ง„ ๋˜๋Š” ์„ค๊ณ„๋„์ด์ž ๊ฐ€์ด๋“œ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•ด ์‹œ์Šคํ…œ์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์€ ๊ฐ€์žฅ ๊ธฐ์ดˆ์ ์ด๊ณ  ํ•ต์‹ฌ์ ์ธ ๋ถ€๋ถ„์˜ ์—…๋ฌด๋ผ ์‹ ์ž…์—๊ฒŒ๋Š” ๋งก๊ธฐ์ง€ ์•Š๋Š” ์—…๋ฌด์ž…๋‹ˆ๋‹ค. ์ œ๋Œ€๋กœ๋œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ์ค‘์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด ์ง€์—ญ์„ ์—ฌํ–‰๊ฐˆ ๋•Œ ๋ณดํ†ต ๊ฐ€์ด๋“œ๋ฅผ ์„ ์ •ํ•ด๋‘๊ฑฐ๋‚˜ ์–ด๋””๋ฅผ ์–ด๋–ป๊ฒŒ๊ฐ€์„œ ๋ฌด์—‡์„ ํ• ์ง€ ์„ค๊ณ„๋ฅผ ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์—ฌํ–‰์ด๋ผ๋Š” ๊ฐ€๋ฒผ์šด ๋‹จ์–ด๊ฐ€ ์•„ํ‚คํ…์ฒ˜๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์„์ง€๋Š” ๋ฏธ์ง€์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ฒฌ๊ณ ํ•œ ์„ค๊ณ„๊ณผ์ •์„ ๊ฑฐ์ณ์•ผ ๋ชจ๋ž˜์„ฑ์ด ์•„๋‹Œ castle์ด ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์ข‹์€ ์•„ํ‚คํ…์ฒ˜๋Š” ์‹œ์Šคํ…œ์„ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ณ , ๊ฐœ๋ฐœํ•˜๊ณ , ์œ ์ง€๋ณด์ˆ˜ํ•˜๊ณ , ๋ฐฐํฌ์‹œํ‚ฌ ์ˆ˜ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

ex) ๊ณ„์ธตํ™” ํŒจํ„ด, ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ํŒจํ„ด, MVC, BlackBoard ...

๐ŸฅŠ Architecture vs Design pattern

์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜๊ฐ€ ํ•œ ์†Œํ”„ํŠธ์›จ์–ด์˜ ๋ผˆ๋Œ€๋‚˜ ๊ณ ์ˆ˜์ค€์˜ ๊ธฐ๋ฐ˜์„ ๋‹ด๋‹นํ•˜๋Š”๋ฐ์— ๋ฐ˜ํ•ด, ์†Œํ”„ํŠธ์›จ์–ด ๋””์ž์ธ์€ ๊ฐ๊ฐ์˜ ๋ชจ๋“ˆ๋“ค์ด ์–ด๋–ค ๊ฒƒ์„ ์›ํ•˜๋Š”์ง€, ํด๋ž˜์Šค์˜ ๋ฒ”์œ„, ํ•จ์ˆ˜์˜ ๋ชฉ์  ๋“ฑ ์ฝ”๋“œ ์ˆ˜์ค€์˜ ๋””์ž์ธ์„ ๋‹ด๋‹นํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Design pattern

์ข‹์€ ์ฝ”๋“œ๋ฅผ ์„ค๊ณ„ํ•˜๊ธฐ ์œ„ํ•œ ์„ค๊ณ„ ๋””์ž์ธ ๋ฐฉ๋ฒ•๋ก ์ž…๋‹ˆ๋‹ค. ๊ฐ์ฒด ๊ฐ„ ์‘์ง‘๋„๋Š” ๋†’์ด๊ณ , ๊ฒฐํ•ฉ๋„๋Š” ๋‚ฎ๊ฒŒ, ์š”๊ตฌ ์‚ฌํ•ญ ๋ณ€๊ฒฝ ์‹œ, ์ฝ”๋“œ ๋ณ€๊ฒฝ์„ ์ตœ์†Œํ™”ํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์„ค๊ณ„ํ•˜๋ ค๋ฉด ์—ฌ๋Ÿฌ ์›์น™๋“ค์ด ์ง€์ผœ์ง€๋ฉด ์ข‹๋‹ค๋ผ๊ณ  ๋…ผ์˜๋˜์–ด ์™”์Šต๋‹ˆ๋‹ค.

ex) Singleton, Adapter, Proxy, Observer, Bridge ...

์ฐจ์ด์ 

์•„ํ‚คํ…์ฒ˜๋Š” ํ”„๋กœ๊ทธ๋žจ ๋‚ด์—์„œ ํฐ ๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑ๋˜์–ด ๋‹ค๋ฅธ ๊ตฌ์„ฑ ์š”์†Œ๋“ค์„ ๊ด€๋ฆฌํ•˜๋Š” ์—ญํ• 
๋””์ž์ธ ํŒจํ„ด์€ ํŠน์ • ์œ ํ˜•์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์•„ํ‚คํ…์ฒ˜๋ณด๋‹ค ์กฐ๊ธˆ ๋” ์ข‹์€ ๊ฐœ๋…์— ํฌํ•จ

๊ฒฐ๊ตญ ๋‘˜์€ ๋น„์Šทํ•˜๊ธดํ•˜์ง€๋งŒ ์ž์„ธํžˆ๋ณด๋ฉด ๋‹ค๋ฅด๋‹ค๋Š” ์ !!

profile
iOS developer

0๊ฐœ์˜ ๋Œ“๊ธ€