๐ ๋ชฉ์ฐจ.
2. ์ด์ํ ๋๋ผ์ ๊ฐ์ฒด
.๊ฐ์ฒด์งํฅ๊ณผ ์ธ์ง ๋ฅ๋ ฅ
.๊ฐ์ฒด, ๊ทธ๋ฆฌ๊ณ ์ด์ํ ๋๋ผ
.๊ฐ์ฒด, ๊ทธ๋ฆฌ๊ณ ์ํํธ์จ์ด ๋๋ผ
.๊ธฐ๊ณ๋ก์์ ๊ฐ์ฒด
.ํ๋์ด ์ํ๋ฅผ ๊ฒฐ์ ํ๋ค
.์์ ์ ๊ฐ์ฒด
โ๏ธ ๋ด์ฉ.
2. ์ด์ํ ๋๋ผ์ ๊ฐ์ฒด
๊ฐ์ฒด์งํฅ ํจ๋ฌ๋ค์์ ์ง์์ ์ถ์ํํ๊ณ ์ถ์ํํ ์ง์์ ๊ฐ์ฒด ์์ ์บก์ํํจ์ผ๋ก์จ ์ค์ธ๊ณ ๋ฌธ์ ์ ๋ด์ฌ๋๋ ๋ณต์ก์ฑ์ ๊ด๋ฆฌํ๋ ค๊ณ ํ๋ค. ๊ฐ์ฒด๋ฅผ ๋ฐ๊ฒฌํ๊ณ ์ฐฝ์กฐํ๋ ๊ฒ์ ์ง์๊ณผ ํ๋์ ๊ตฌ์กฐํํ๋ ๋ฌธ์ ๋ค.
- ๋ ๋ฒ ์นด ์ํ์ค๋ธ๋ก
.๊ฐ์ฒด์งํฅ๊ณผ ์ธ์ง ๋ฅ๋ ฅ
- ์ธ๊ฐ์ด ์ง์ ์ ์ผ๋ก ์ง๊ฐํ ์ ์๋ ๋๋ถ๋ถ์ ๊ฐ์ฒด๋ ๋ฌผ๋ฆฌ์ ์ธ ๊ฒฝ๊ณ๋ฅผ ์ง๋ ๊ตฌ์ฒด์ ์ธ ์ฌ๋ฌผ์ด๋ค.
.๊ฐ์ฒด, ๊ทธ๋ฆฌ๊ณ ์ด์ํ ๋๋ผ
- ๊ฐ์ฒด์ ํน์ง
1. ๊ฐ์ฒด๋ ์ํ๋ฅผ ๊ฐ์ง๋ฉฐ ์ํ๋ ๋ณ๊ฒฝ ๊ฐ๋ฅํ๋ค.
2. ๊ฐ์ฒด์ ์ํ๋ฅผ ๋ณ๊ฒฝ์ํค๋ ๊ฒ์ ๊ฐ์ฒด์ ํ๋์ด๋ค.
2-1) ํ๋์ ๊ฒฐ๊ณผ๋ ์ํ์ ์์กด์ ์ด๋ฉฐ ์ํ๋ฅผ ์ด์ฉํด ์์ ํ ์ ์๋ค.
2-2) ํ๋์ ์์๊ฐ ๊ฒฐ๊ณผ์ ์ํฅ์ ๋ฏธ์น๋ค.
3. ๊ฐ์ฒด๋ ์ด๋ค ์ํ์ ์๋๋ผ๋ ์ ์ผํ๊ฒ ์๋ณ ๊ฐ๋ฅํ๋ค.
.๊ฐ์ฒด, ๊ทธ๋ฆฌ๊ณ ์ํํธ์จ์ด ๋๋ผ
- ๊ฐ์ฒด๋ ์ํ(state), ํ๋(behavior), ์๋ณ์(identity)๋ฅผ ์ง๋ ์ค์ฒด์ด๋ค.
- ๋ชจ๋ ๊ฐ์ฒด์ ์ํ๋ ๋จ์ํ ๊ฐ๊ณผ ๊ฐ์ฒด์ ์กฐํฉ์ผ๋ก ํํํ ์ ์๋ค.
๊ฐ์ฒด์ ์ํ๋ฅผ ๊ตฌ์ฑํ๋ ๋ชจ๋ ํน์ง์ ํตํ์ด ๊ฐ์ฒด์ ํ๋กํผํฐ(property, ๊ฐ์ฒด์ ํ์ )๋ผ๊ณ ํ๋ค.
๊ฐ์ฒด์ ๊ฐ์ฒด ์ฌ์ด์ ์๋ฏธ ์๋ ์ฐ๊ฒฐ์ ๋งํฌ(link)๋ผ ํ๋ค.
๊ฐ์ฒด๋ฅผ ๊ตฌ์ฑํ๋ ๋จ์ํ ๊ฐ์ ์์ฑ(attribute, ๊ฐ์ฒด์ ๊ฐ)์ด๋ผ ํ๋ค.
๊ฐ์ฒด์ ํ๋กํผํฐ๋ ๋จ์ํ ๊ฐ์ธ ์์ฑ๊ณผ ๋ค๋ฅธ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋ ๋งํฌ๋ผ๋ ๋ ๊ฐ์ง ์ข ๋ฅ์ ์กฐํฉ์ผ๋ก ํํํ ์ ์๋ค.
- ์ํ์ ํ๋
๊ฐ์ฒด์ ์ํ๋ ์ ์ ๋ก ๋ณ๊ฒฝ๋์ง ์๋๋ค. ๊ฐ์ฒด์ ์ํ๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ ๊ฐ์ฒด์ ์๋ฐ์ ์ธ ํ๋๋ฟ์ด๋ค.
1. ๊ฐ์ฒด์ ํ๋์ ์ํ์ ์ํฅ์ ๋ฐ๋๋ค. -> ์ํธ์์ฉ์ด ํ์ฌ์ ์ํ์ ์ด๋ค ๋ฐฉ์์ผ๋ก ์์กดํ๋๊ฐ.
2. ๊ฐ์ฒด์ ํ๋์ ์ํ๋ฅผ ๋ณ๊ฒฝ์ํจ๋ค. -> ์ํธ์์ฉ์ด ์ด๋ป๊ฒ ํ์ฌ์ ์ํ๋ฅผ ๋ณ๊ฒฝ์ํค๋๊ฐ
- ํ๋ ฅ๊ณผ ํ๋
๊ฐ์ฒด๊ฐ ๋ค๋ฅธ ๊ฐ์ฒด์ ํ๋ ฅํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ๋ค๋ฅธ ๊ฐ์ฒด์๊ฒ ์์ฒญ์ ๋ณด๋ด๋ ๊ฒ์ด๋ค. ์ค๋ก์ง ๋ฉ์์ง๋ฅผ ํตํด์๋ง ์์ฌ์ํตํ ์ ์๋ค.
- ์๋ณ์
๊ฐ์ฒด๋ ์ธ๊ฐ์ ์ธ์ง ๋ฅ๋ ฅ์ ์ด์ฉํด ์๋ณ ๊ฐ๋ฅํ ๊ฒฝ๊ณ๋ฅผ ๊ฐ์ง ๋ชจ๋ ์ฌ๋ฌผ์ ์๋ฏธํ๋ค. ๊ฐ์ฒด๊ฐ ์๋ณ ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ๊ฐ์ฒด๋ฅผ ์๋ก ๊ตฌ๋ณํ ์ ์๋ ํน์ ํ ํ๋กํผํฐ๊ฐ ๊ฐ์ฒด ์์ ์กด์ฌํ๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค. ์ด ํ๋กํผํฐ๋ฅผ ์๋ณ์๋ผ๊ณ ํ๋ค. ๋ชจ๋ ๊ฐ์ฒด๋ ์๋ณ์๋ฅผ ๊ฐ์ง๋ฉฐ ์๋ณ์๋ฅผ ์ด์ฉํด ๊ฐ์ฒด๋ฅผ ๊ตฌ๋ณํ ์ ์๋ค.
๋ชจ๋ ๊ฐ์ฒด๊ฐ ์๋ณ์๋ฅผ ๊ฐ์ง๋ค๋ ๊ฒ๊ณผ ๋ฐ๋๋ก ๊ฐ์ฒด๊ฐ ์๋ ๋จ์ํ ๊ฐ์ ์๋ณ์๋ฅผ ๊ฐ์ง์ง ์๋๋ค.
๋จ์ํ ๊ฐ์ ์ซ์, ๋ฌธ์์ด ๋ฑ ๋ณํ์ง ์๋ ์์ ๋ชจ๋ธ๋งํ๋ค.
๊ฐ์ ๊ฒฝ์ฐ ๋ ์ธ์คํด์ค์ ์ํ๊ฐ ๊ฐ๋ค๋ฉด ๊ฐ์ ๊ฒ์ผ๋ก ํ๋จํ๋ค. ์ด์ฒ๋ผ ์ํ๋ฅผ ์ด์ฉํด ๋ ๊ฐ์ด ๊ฐ์์ง ํ๋จํ ์ ์๋ ์ฑ์ง์ ๋๋ฑ์ฑ(equality)์ด๋ผ๊ณ ํ๋ค.
๊ฐ์ฒด์ ๊ฒฝ์ฐ ์๊ฐ์ ๋ฐ๋ผ ๋ณ๊ฒฝ๋๋ ์ํ๋ฅผ ํฌํจํ๋ฉฐ, ํ๋์ ํตํด ์ํ๋ฅผ ๋ณ๊ฒฝํ๋ค. ๋ฐ๋ผ์ ๊ฐ๋ณ ์ํ๋ฅผ ๊ฐ์ง๋ค.
์ด ๋๋ ๋ ๊ฐ์ฒด์ ์๋ณ์๋ฅผ ๊ฐ์ง๊ณ ํ๋จํ๊ฒ ๋๋๋ฐ ๋ ๊ฐ์ฒด์ ์ํ๊ฐ ๋ค๋ฅด๋๋ผ๋ ๊ฐ์ฒด์ ์๋ณ์๊ฐ ๊ฐ๋ค๋ฉด ๊ฐ์ ๊ฐ์ฒด๋ก ํ๋จํ ์ ์๋ค. ์ด์ฒ๋ผ ์๋ณ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ์ฒด๊ฐ ๊ฐ์์ง๋ฅผ ํ๋จํ ์ ์๋ ์ฑ์ง์ ๋์ผ์ฑ(identical)์ด๋ผ๊ณ ํ๋ค.
.๊ธฐ๊ณ๋ก์์ ๊ฐ์ฒด
๊ฐ์ฒด๋ฅผ ๊ธฐ๊ณ๋ก์ ๋ฐ๋ผ๋ณด๋ ๊ด์ ์ ์ํ, ํ๋, ์๋ณ์์ ๋ํ ์๊ฐ์ ์ธ ์ด๋ฏธ์ง๋ฅผ ์ ๊ณตํ๊ณ ์บก์ํ์ ๋ฉ์์ง๋ฅผ ํตํ ํ๋ ฅ ๊ด๊ณ๋ฅผ ๋งค์ฐ ํจ๊ณผ์ ์ผ๋ก ์ค๋ช ํ๋ค.
.ํ๋์ด ์ํ๋ฅผ ๊ฒฐ์ ํ๋ค.
๊ฐ์ฒด์งํฅ์ ๊ฐ ์ ๋ฌธํ ์ฌ๋๋ค์ด ๊ฐ์ฅ ์ฝ๊ฒ ๋น ์ง๋ ํจ์ ์ ์ํ๋ฅผ ์ค์ฌ์ผ๋ก ๊ฐ์ฒด๋ฅผ ๋ฐ๋ผ๋ณด๋ ๊ฒ์ด๋ค. ์ด๋ณด์ ๋ค์ ๋จผ์ ๊ฐ์ฒด์ ํ์ํ ์ํ๊ฐ ๋ฌด์์ธ์ง๋ฅผ ๊ฒฐ์ ํ๊ณ ๊ทธ ์ํ์ ํ์ํ ํ๋์ ๊ฒฐ์ ํ๋ค. ์ํ๊น๊ฒ๋ ์ด๋ฌํ ๋ฐฉ๋ฒ์ ์ค๊ณ์ ๋์ ์ํฅ์ ๋ผ์น๋ค.
1. ์ํ๋ฅผ ๋จผ์ ๊ฒฐ์ ํ ๊ฒฝ์ฐ ์บก์ํ๊ฐ ์ ํด๋๋ค.
์ํ์ ์ด์ ์ ๋ง์ถ ๊ฒฝ์ฐ ์ํ๊ฐ ๊ฐ์ฒด ๋ด๋ถ๋ก ๊น๋ํ๊ฒ ์บก์ํ๋์ง ๋ชปํ๊ณ ๊ณต์ฉ ์ธํฐํ์ด์ค์ ๊ทธ๋๋ก ๋ ธ์ถ๋ผ๋ฒ๋ฆด ํ๋ฅ ์ด ๋์์ง๋ค.
2. ๊ฐ์ฒด๋ฅผ ํ๋ ฅ์๊ฐ ์๋ ๊ณ ๋ฆฝ๋ ์ฌ์ผ๋ก ๋ง๋ ๋ค.
๊ฐ์ฒด๊ฐ ํ์ํ ์ด์ ๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ฌธ๋งฅ ๋ด์์ ๋ค๋ฅธ ๊ฐ์ฒด์ ํ๋ ฅํ๊ธฐ ์ํด์์ด๋ค. ๋ถํํ๊ฒ๋ ์ํ๋ฅผ ๋จผ์ ๊ณ ๋ คํ๋ ๋ฐฉ์์ ํ๋ ฅ์ด๋ผ๋ ๋ฌธ๋งฅ์์ ๋ฉ๋ฆฌ ๋ฒ์ด๋ ์ฑ ๊ฐ์ฒด๋ฅผ ์ค๊ณํ๊ฒ ํจ์ผ๋ก์จ ์์ฐ์ค๋ฝ๊ฒ ํ๋ ฅ์ ์ ํฉํ์ง ๋ชปํ ๊ฐ์ฒด๋ฅผ ์ฐฝ์กฐํ๊ฒ ๋๋ค.
3. ๊ฐ์ฒด์ ์ฌ์ฌ์ฉ์ฑ์ด ์ ํ๋๋ค. ๊ฐ์ฒด์ ์ฌ์ฌ์ฉ์ฑ์ ๋ค์ํ ํ๋ ฅ์ ์ฐธ์ฌํ ์ ์๋ ๋ฅ๋ ฅ์์ ๋์จ๋ค. ์ํ์ ์ด์ ์ ๋ง์ถ ๊ฐ์ฒด๋ ๋ค์ํ ํ๋ ฅ์ ์ฐธ์ฌํ๊ธฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์ ์ฌ์ฌ์ฉ์ฑ์ด ์ ํ๋ ์๋ฐ์ ์๋ค.
ํ๋ ฅ์ ์ฐธ์ฌํ๋ ํ๋ฅญํ ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ธฐ ์ํ ๊ฐ์ฅ ์ค์ํ ๋๋ชฉ์ ์ํ๊ฐ ์๋๋ผ ํ๋์ ์ด์ ์ ๋ง์ถ๋ ๊ฒ์ด๋ค.
๊ฐ์ฒด์ ์ ํฉ์ฑ์ ๊ฒฐ์ ํ๋ ๊ฒ์ ๊ฐ์ฒด์ ํ๋์ด๋ค.
ํ๋ ฅ ์์์ ๊ฐ์ฒด์ ํ๋์ ๊ฒฐ๊ตญ ๊ฐ์ฒด๊ฐ ํ๋ ฅ์ ์ฐธ์ฌํ๋ฉด์ ์์ํด์ผ ํ๋ ์ฑ ์์ ์๋ฏธํ๋ค. ๋ฐ๋ผ์ ์ด๋ค ์ฑ ์์ด ํ์ํ๊ฐ๋ฅผ ๊ฒฐ์ ํ๋ ๊ณผ์ ์ด ์ ์ฒด ์ค๊ณ๋ฅผ ์ฃผ๋ํด์ผ ํ๋ค. ์ฑ ์-์ฃผ๋ ์ค๊ณ(Responsibility-Driven Design, RDD)๋ ํ๋ ฅ์ด๋ผ๋ ๋ฌธ๋งฅ ์์์ ๊ฐ์ฒด์ ํ๋์ ์๊ฐํ๋๋ก ๋์์ผ๋ก์จ ์์ง๋ ๋๊ณ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฐ์ฒด๋ฅผ ๋ง๋ค ์ ์๊ฒ ํ๋ค.
ํ๋์ด ์ํ๋ฅผ ๊ฒฐ์ ํ๋ค. ์ด ์ฅ์์ ๊ฐ์ฅ ์ค์ํ ๋ฌธ์ฅ์ด๋ค.
.์์ ์ ๊ฐ์ฒด
๊ฐ์ฒด์งํฅ์ด๋ ํ์ค์ธ๊ณ์ ๋ชจ๋ฐฉ์ด ์๋๋ค. ์ ์ง์ ๋ฅํ ์กด์ฌ๋ก์ ํ์ค์ ๊ฐ์ฒด๋ณด๋ค ๋ ๋ง์ ์ผ์ ํ ์ ์๋ค. ์ด ํน์ง์ ์์ธํ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
ํ์ค ์ธ๊ณ์ ๊ฐ์ฒด์งํฅ ์ธ๊ณ ์ฌ์ด์ ๊ด๊ณ๋ฅผ ์ข ๋ ์ ํํ๊ฒ ์ค๋ช ํ ์ ์๋ ๋จ์ด๋ ์์ ์ด๋ค.
๐ ๋๋์ .
. ํ๋์ด ์ํ๋ฅผ ๊ฒฐ์ ํ๋ค.
'Study' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๊ฐ์ฒด์งํฅ์ ์ฌ์ค๊ณผ ์คํด - 1] ํ๋ ฅํ๋ ๊ฐ์ฒด๋ค์ ๊ณต๋์ฒด (0) | 2023.01.17 |
---|---|
[๊ฐ์ฒด์งํฅ์ ์ฌ์ค๊ณผ ์คํด - 0] ๊ณํ (0) | 2023.01.17 |