4์ฅ. ์ญํ , ์ฑ ์, ํ๋ ฅ ๐ข
์ฑ ์
์ฑ ์์ ๊ฐ์ฒด์งํฅ ์ค๊ณ์ ํ์ง์ ๊ฒฐ์ ํ๋ ๊ฐ์ฅ ์ค์ํ ์์์ด๋ค. ๊ฐ์ฒด์งํฅ ์ค๊ณ์ ์์ ์ ์ ์ ํ ๊ฐ์ฒด์๊ฒ ์ ์ ํ ์ฑ ์์ ํ ๋นํ๋ ๋ฐ ์๋ค.
์ค๊ณ๋ฅผ ์์ํ๋ ์ด๋ฐ์๋ ์ด๋ค ๊ฐ์ฒด๊ฐ ์ด๋ค ์ฑ ์์ ๊ฐ์ง๊ณ ์ด๋ค ๋ฐฉ์์ผ๋ก ์๋ก ํ๋ ฅํด์ผ ํ๋์ง์ ๋ํ ๊ฐ์๋ฅผ ์๋ ๊ฒ๋ง์ผ๋ก๋ ์ถฉ๋ถํ๋ค. ์ฑ ์๊ณผ ํ๋ ฅ์ ๊ตฌ์กฐ๊ฐ ์๋ฆฌ๋ฅผ ์ก๊ธฐ ์ ๊น์ง๋ ์ฑ ์์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๊ณ ๋ฏผ์ ์ ์ ๋ค๋ก ๋ฏธ๋ค๋์.
์ญํ
์ด๋ค ๊ฐ์ฒด๊ฐ ์ํํ๋ ์ฑ ์์ ์งํฉ์ ๊ฐ์ฒด๊ฐ ํ๋ ฅ ์์์ ์ํํ๋ ์ญํ ์ ์์ํ๋ค.
์ญํ ์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ๊ณ ์ ์ฐํ ๊ฐ์ฒด์งํฅ ์ค๊ณ๋ฅผ ๋ณ๋ ๋งค์ฐ ์ค์ํ ๊ตฌ์ฑ์์์ด๋ค.
์ญํ ์ ๊ฐ๋ ์ ์ฌ์ฉํ๋ฉด ์ ์ฌํ ํ๋ ฅ์ ์ถ์ํํ ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค์ํ ๊ฐ์ฒด๋ค์ด ํ๋ ฅ์ ์ฐธ์ฌํ ์ ์๊ธฐ ๋๋ฌธ์ ํ๋ ฅ์ด ์ข ๋ ์ ์ฐํด์ง๋ฉฐ ๋ค์ํ ๊ฐ์ฒด๋ค์ด ๋์ผํ ํ๋ ฅ์ ์ฐธ์ฌํ ์ ์์ด์ ์ฌ์ฌ์ฉ์ฑ์ด ๋์์ง๋ค. ๊ทธ๋์ ์ญํ ์ ๊ฐ์ฒด์งํฅ ์ค๊ณ์ ๋จ์์ฑ(simplicity), ์ ์ฐ์ฑ(flexibility), ์ฌ์ฌ์ฉ์ฑ(reusability)์ ๋ท๋ฐ์นจํ๋ ํต์ฌ ๊ฐ๋ ์ด๋ค.
5์ฅ. ์ฑ ์๊ณผ ๋ฉ์์ง ๐
๋ฉ์์ง
๋ฉ์์ง๋ ์ก์ ์์ ์์ ์ ์ฌ์ด์ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถค์ผ๋ก์จ ์ค๊ณ๋ฅผ ์ ์ฐํ๊ณ , ํ์ฅ ๊ฐ๋ฅํ๊ณ , ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ๊ฒ ๋ง๋ ๋ค.
What/Who ์ฌ์ดํด
๊ฐ์ฒด ์ฌ์ด์ ํ๋ ฅ ๊ด๊ณ๋ฅผ ์ค๊ณํ๊ธฐ ์ํด์๋ '์ด๋ค ํ์(what)'๋ฅผ ์ํํ ๊ฒ์ธ์ง๋ฅผ ๊ฒฐ์ ํ ํ์ '๋๊ฐ(who)' ๊ทธ ํ์๋ฅผ ์ํํ ๊ฒ์ธ์ง๋ฅผ ๊ฒฐ์ ํด์ผ ํ๋ค. ์ฌ๊ธฐ์ '์ด๋ค ํ์'๊ฐ ๋ฐ๋ก ๋ฉ์์ง๋ค.
๊ฐ์ฒด๊ฐ ์ด๋ค ๋ฉ์์ง๋ฅผ ์์ ํ๊ณ ์ฒ๋ฆฌํ ์ ์๋๋๊ฐ ๊ฐ์ฒด์ ์ฑ ์์ ๊ฒฐ์ ํ๋ค. ์ฑ ์-์ฃผ๋ ์ค๊ณ ๋ฐฉ๋ฒ์์๋ What/Who ์ฌ์ดํด์ ๋ฐ๋ผ ํ๋ ฅ์ ์ฐธ์ฌํ ๊ฐ์ฒด๋ฅผ ๊ฒฐ์ ํ๊ธฐ ์ ์ ํ๋ ฅ์ ํ์ํ ๋ฉ์์ง๋ฅผ ๋จผ์ ๊ฒฐ์ ํ๋ค. ๋ฉ์์ง๊ฐ ๊ฒฐ์ ๋ ํ์์ผ ๋ฉ์์ง๋ฅผ ์์ ํ ํ๋ณด๋ฅผ ์ ํํ๋ ๊ฒ์ผ๋ก ์ด์ ์ด ์ด๋ํ๋ค.
๊ฐ์ฒด์ ์ธํฐํ์ด์ค ์ธ ๊ฐ์ง ์์น
- ์ข ๋ ์ถ์์ ์ธ ์ธํฐํ์ด์ค
์ง๋์น๊ฒ ์์ธํ ์์ค์ ๋ฉ์์ง๋ฅผ ๋ณด๋ด๋ ๊ฒ์ ๊ฐ์ฒด์ ์์จ์ฑ์ ์ ํดํ๋ค. - ์ต์ ์ธํฐํ์ด์ค
์ธ๋ถ์์ ์ฌ์ฉํ ํ์๊ฐ ์๋ ์ธํฐํ์ด์ค๋ ์ต๋ํ ๋ ธ์ถํ์ง ๋ง๋ผ. ์ด๋ ๊ฒ ํ๋ฉด ๊ฐ์ฒด์ ๋ด๋ถ๋ฅผ ์์ ํ๋๋ผ๋ ์ธ๋ถ์ ๋ฏธ์น๋ ์ํฅ์ ์ต์ํํ ์ ์๋ค. - ์ธํฐํ์ด์ค์ ๊ตฌํ ๊ฐ์ ์ฐจ์ด๊ฐ ์๋ค๋ ์ ์ ์ธ์
'์ธํฐํ์ด์ค์ ๊ตฌํ์ ๋ถ๋ฆฌ(separation of interface and implementation) ์์น'์ ๋ณ๊ฒฝ์ ๊ด๋ฆฌํ๊ธฐ ์ํ ๊ฒ์ด๋ค. ์ธํฐํ์ด์ค์ ๊ตฌํ์ ๋ถ๋ฆฌํ๋ค๋ ๊ฒ์ ๋ณ๊ฒฝ๋ ๋งํ ๋ถ๋ถ์ ๊ฐ์ฒด์ ๋ด๋ถ์ ๊ฝ๊ฝ ์จ๊ฒจ ๋๋๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค.
์ฑ ์์ ์์จ์ฑ์ด ํ๋ ฅ์ ํ์ง์ ๊ฒฐ์ ํ๋ค.
- ์์จ์ ์ธ ์ฑ
์์ ํ๋ ฅ์ ๋จ์ํ๊ฒ ๋ง๋ ๋ค.
์์จ์ ์ธ ์ฑ ์์ ์ธ๋ถ์ ์ธ ์ฌํญ๋ค์ ๋ฌด์ํ๊ณ ์๋๋ฅผ ๋๋ฌ๋ด๋ ํ๋์ ๋ฌธ์ฅ์ผ๋ก ํํํจ์ผ๋ก์จ ํ๋ ฅ์ ๋จ์ํ๊ฒ ๋ง๋ ๋ค. - ์ถ์ํ - ์์จ์ ์ธ ์ฑ
์์ ๋ชจ์ ์ฅ์์ ์ธ๋ถ์ ๋ด๋ถ๋ฅผ ๋ช
ํํ๊ฒ ๋ถ๋ฆฌํ๋ค.
์์ฒญํ๋ ๊ฐ์ฒด๊ฐ ๋ชฐ๋ผ๋ ๋๋ ์ฌ์ ์ธ ๋ถ๋ถ์ด ๊ฐ์ฒด ๋ด๋ถ๋ก ์บก์ํ๋๊ธฐ ๋๋ฌธ์ ์ธํฐํ์ด์ค์ ๊ตฌํ์ด ๋ถ๋ฆฌ๋๋ค. - ์ฑ
์์ด ์์จ์ ์ผ ๊ฒฝ์ฐ ์ฑ
์์ ์ํํ๋ ๋ด๋ถ์ ์ธ ๋ฐฉ๋ฒ์ ๋ณ๊ฒฝํ๋๋ผ๋ ์ธ๋ถ์ ์ํฅ์ ๋ฏธ์น์ง ์๋๋ค.
๋ณ๊ฒฝ์ ํ๊ธํจ๊ณผ๊ฐ ๊ฐ์ฒด ๋ด๋ถ๋ก ์บก์ํ๋๊ธฐ ๋๋ฌธ์ ๋ ๊ฐ์ฒด ๊ฐ์ ๊ฒฐํฉ๋๊ฐ ๋ฎ์์ง๋ค. - ์์จ์ ์ธ ์ฑ
์์ ํ๋ ฅ์ ๋์์ ๋ค์ํ๊ฒ ์ ํํ ์ ์๋ ์ ์ฐ์ฑ์ ์ ๊ณตํ๋ค.
์ค๊ณ๊ฐ ์ ์ฐํด์ง๊ณ ์ฌ์ฌ์ฉ์ฑ์ด ๋์์ง๋ค. - ๊ฐ์ฒด๊ฐ ์ํํ๋ ์ฑ
์๋ค์ด ์์จ์ ์ผ์๋ก ๊ฐ์ฒด์ ์ญํ ์ ์ดํดํ๊ธฐ ์ฌ์์ง๋ค.
์ฑ ์์ด ์์จ์ ์ผ์๋ก ๊ฐ์ฒด์ ์์ง๋๋ฅผ ๋์ ์ํ๋ก ์ ์งํ๊ธฐ๊ฐ ์ฌ์์ง๋ค.
6์ฅ. ๊ฐ์ฒด ์ง๋ ๐
๊ตฌ์กฐ
๊ฐ์ฒด์งํฅ์ ๊ฐ์ฒด์ ๊ตฌ์กฐ์ ์ง์คํ๊ณ ๊ธฐ๋ฅ์ด ๊ฐ์ฒด์ ๊ตฌ์กฐ๋ฅผ ๋ฐ๋ฅด๊ฒ ๋ง๋ ๋ค. ์์คํ ๊ธฐ๋ฅ์ ๋ ์์ ์ฑ ์์ผ๋ก ๋ถํ ๋๊ณ ์ ์ ํ ๊ฐ์ฒด์๊ฒ ๋ถ๋ฐฐ๋๊ธฐ ๋๋ฌธ์ ๊ธฐ๋ฅ์ด ๋ณ๊ฒฝ๋๋๋ผ๋ ๊ฐ์ฒด ๊ฐ์ ๊ตฌ์กฐ๋ ๊ทธ๋๋ก ์ ์ง๋๋ค.
7์ฅ. ํจ๊ป ๋ชจ์ผ๊ธฐ โณ
ํด๋น ์ฅ์์๋ ์ปคํผ ์ ๋ฌธ์ ์์ ์ปคํผ๋ฅผ ์ฃผ๋ฌธํ๋ ๊ณผ์ ์ ๊ฐ์ฒด์งํฅ ๊ด์ ์์ ์ค๊ณํด ๋ณด๊ณ ์ด๋ฅผ '๊ฐ๋ ๊ด์ ', '๋ช ์ธ ๊ด์ ', '๊ตฌํ ๊ด์ '์์ ์ดํด๋ณธ๋ค.
- ๊ฐ๋
๊ด์ (Conceptual Perspective)
๊ฐ๋ ๊ด์ ์์ ์ค๊ณ๋ ๋๋ฉ์ธ ์์ ์กด์ฌํ๋ ๊ฐ๋ ๊ณผ ๊ฐ๋ ์ฌ์ด์ ๊ด๊ณ๋ฅผ ํํํ๋ค. - ๋ช
์ธ ๊ด์ (Specification Perspective)
๋ช ์ธ ๊ด์ ์ ๋๋ฉ์ธ์ ๊ฐ๋ ์ด ์๋๋ผ ์ค์ ์ํํธ์จ์ด ์์์ ์ด์ ์จ ์ฌ๋ ๊ฐ์ฒด๋ค์ ์ฑ ์์ ์ด์ ์ ๋ง์ถ๊ฒ ๋๋ค. - ๊ตฌํ ๊ด์ (Implementation Perspective)
๊ตฌํ ๊ด์ ์ ์ด์ ์ ๊ฐ์ฒด๋ค์ด ์ฑ ์์ ์ํํ๋ ๋ฐ ํ์ํ ๋์ํ๋ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ด๋ค.
ํด๋น ๊ธ์ '๊ฐ์ฒด์งํฅ์ ์ฌ์ค๊ณผ ์คํด - ์กฐ์ํธ (์ํค๋ถ์ค)'๋ฅผ ์ฝ๊ณ ์์ฑํ ๊ฒ์ ๋๋ค.
'๐ ๊ฐ๋ฐ ์์ > ๊ฐ์ฒด์งํฅ์ ์ฌ์ค๊ณผ ์คํด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ฐ์ฒด์งํฅ์ ์ฌ์ค๊ณผ ์คํด(1) (0) | 2023.01.23 |
---|