๊ฐ์ฒด์งํฅ ์ด๋?
- ์์คํ ์ ์ํธ์์ฉํ๋ ์์จ์ ์ธ ๊ฐ์ฒด๋ค์ ๊ณต๋์ฒด๋ก ๋ฐ๋ผ๋ณด๊ณ ๊ฐ์ฒด๋ฅผ ์ด์ฉํด ์์คํ ์ ๋ถํ ํ๋ ๋ฐฉ๋ฒ
- ์์จ์ ์ธ ๊ฐ์ฒด๋ ์ํ์ ํ์๋ฅผ ํจ๊ป ์ง๋๋ฉฐ ์ค์ค๋ก ์๊ธฐ ์์ ์ ์ฑ ์์ง๋ ๊ฐ์ฒด
- ๊ฐ์ฒด๋ ์์คํ ์ ํ์๋ฅผ ๊ตฌํํ๊ธฐ ์ํด ๋ค๋ฅธ๊ฐ์ฒด์ ํ๋ ฅ, ๊ฐ ๊ฐ์ฒด๋ ํ๋ ฅ ๋ด์์ ์ ํด์ง ์ญํ ์ ์ํํ๋ฉฐ ์ญํ ์ ๊ด๋ จ๋ ์ฑ ์์ ์งํฉ์ด๋ค.
- ๊ฐ์ฒด๋ ๋ค๋ฅธ ๊ฐ์ฒด์ ํ๋ ฅํ๊ธฐ ์ํด ๋ฉ์ธ์ง๋ฅผ ์ ์กํ๊ณ , ๋ฉ์์ง๋ฅผ ์์ ํ ๊ฐ์ฒด๋ ๋ฉ์์ง๋ฅผ ์ฒ๋ฆฌํ๋๋ฐ ์ ํฉํ ๋ฉ์๋๋ฅผ ์์จ์ ์ผ๋ก ์ ํํ๋ค.
- ๋ฉ์์ง๋ ๊ณง ์ฑ ์์ด๋ค.
์ญํ , ์ฑ ์, ํ๋ ฅ
- ๊ฐ์ฒด๋ ํ๋ ฅ์ ์ํด ํน์ ํ ์ญํ ์ ๋งก๊ณ ์ ํฉํ ์ฑ ์์ ์ํํ๋ค.
- ์ฌ๊ธฐ์ ์ญํ ์ ๋์ฒด ๊ฐ๋ฅ์ฑ์ ์๋ฏธํ๋ค.
- ๊ฐ ๊ฐ์ฒด๋ ์ฑ ์์ ์ํํ๋ ๋ฐฉ๋ฒ์ ์์จ์ ์ผ๋ก ์ ํ ํ๊ณ ๋ค๋ฅธ ๊ฐ์ฒด์ ํ๋ ฅํ๋ค.
- ๊ฐ์ฒด๋ ๋ค๋ฅธ ๊ฐ์ฒด๊ฐ '๋ฌด์(what)'์ ์ํํ๋์ง๋ ์์ ์์ง๋ง '์ด๋ป๊ฒ(how)' ์ํํ๋์ง์ ๋ํด์๋ ์ ์ ์๋ค.
- ๊ฐ์ฒด์งํฅ ์ธ๊ณ์์๋ ์ค์ง '๋ฉ์์ง' ๋ผ๋ ์์ฌ์ํต๋ง์ด ์กด์ฌํ๋ค.
ํ๋ ฅ
- ํ๋ ฅ์ ํ ์ฌ๋์ด ๋ค๋ฅธ ์ฌ๋์๊ฒ ๋์์ ์์ฒญํ ๋ ์์๋๋ค.
- ์์ฒญ ๋ฐ์ ์ฌ๋์ ์๋ต์ ํ๋ค.
- ์์ฒญ๊ณผ ์๋ต์ ํ๋ ฅ์ ์ฐธ์ฌํ๋ ๊ฐ์ฒด๊ฐ ์ํํ ์ฑ ์์ ์ ์ํ๊ฒ ๋๋ค.
์ฑ ์
- ์ ์ ํ ํ๋์ ํ ์๋ฌด๊ฐ ์๋ ๊ฒฝ์ฐ์ ํด๋น ๊ฐ์ฒด๊ฐ ์ฑ ์์ ๊ฐ์ง๋ค๊ณ ํ ์ ์๋ค.
-
์ฑ ์์ ์ฃผ๋ก ํ๋๊ฒ(doing)๊ณผ ์๋๊ฒ(knowing)์ผ๋ก ๋ถ๋ฅ๋๋ค.
-
ํ๋ ๊ฒ
- ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ฑฐ๋ ๊ณ์ฐ์ ํ๋ ๋ฑ์ ์ค์ค๋ก ํ๋๊ฒ
- ๋ค๋ฅธ ๊ฐ์ฒด์ ํ๋์ ์์์ํค๋ ๊ฒ
- ๋ค๋ฅธ ๊ฐ์ฒด์ ํ๋์ ์ ์ดํ๊ณ ์กฐ์ ํ๋ ๊ฒ
-
์๋ ๊ฒ
- ๊ฐ์ธ์ ์ธ ์ ๋ณด์ ๊ดํด ์๋ ๊ฒ
- ๊ด๋ จ๋ ๊ฐ์ฒด์ ๊ดํด ์๋ ๊ฒ
- ์์ ์ด ์ ๋ํ๊ฑฐ๋ ๊ณ์ฐํ ์ ์๋ ๊ฒ์ ๊ดํด ์๋๊ฒ
-
- ์ฆ, ์ฑ ์์ ๊ฐ์ฒด์ ์ธ๋ถ์ ์ ๊ณตํด ์ค ์ ์๋ ์ ๋ณด(์๋๊ฒ์ ์ธก๋ฉด)์ ์ธ๋ถ์ ์ ๊ณตํด ์ค ์ ์๋ ์๋น์ค(ํ๋ ๊ฒ์ ์ธก๋ฉด)์ ๋ชฉ๋ก์ด๊ณ ์ด ์ฑ ์์ ๊ฐ์ฒด์ ๊ณต์ฉ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌ์ฑํ๊ฒ ๋๋ค.
์ญํ
- ์ด๋ค ๊ฐ์ฒด๊ฐ ์ํํ๋ ์ฑ ์์ ์งํฉ์ ๊ฐ์ฒด๊ฐ ํ๋ ฅ ์์์ ์ํํ๋ ์ญํ ์ ์์ํ๋ค.
- ์ญํ ์ ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ๊ณ ์ ์ฐํ ๊ฐ์ฒด์งํฅ ์ค๊ณ๋ฅผ ๋ณ๋ ๋งค์ฐ ์ค์ํ ๊ตฌ์ฑ์์์ด๋ค.
- ์ญํ ์ ํ๋ ฅ ๋ด์์ ๋ค๋ฅธ ๊ฐ์ฒด๋ก ๋์ฒดํ ์ ์์์ ๋ํ๋ด๋ ์ผ์ข ์ ํ์์ด๋ค. ์ฆ, "์ด ์๋ฆฌ๋ ๋ ๋์ ์ด ์ญํ ์ ์ํํ ์ ์๋ค๋ฉด ๋๊ตฌ๋ผ๋ ๋์ฒดํ ์ ์์ด" ๋ผ๊ณ ๋งํ๋๊ฒ๊ณผ ๊ฐ๋ค.
- ์ญํ ์ ๊ฐ์ฒด์งํฅ ์ค๊ณ์ "๋จ์์ฑ" , "์ ์ฐ์ฑ" , "์ฌ์ฌ์ฉ์ฑ" ์ ๋ท๋ฐ์นจ ํ๋ ํต์ฌ ๊ฐ๋ ์ด๋ค.
- ์ญํ ์ ์ฌ์ฉํ๋ฉด ํ๋ ฅ์ ์ถ์ํ ์ํฌ ์ ์๋ค.
ํ์ ๊ณผ ์ถ์ํ
์ถ์ํ
- ์ถ์ํ๋ ์ค์ ์ ์ฌ๋ฌผ์์ ์์ ์ด ์ํ๋ ํน์ฑ๋ง ์ทจํ๊ณ ํ์ ์๋ ๋ถ๋ถ์ ์ถ๋ ค ํต์ฌ๋ง ํํํ๋ ํ์์ด๋ค.
- ์ถ์ํ๋ ์ด๋ค์์, ์ธ๋ถ์ฌํญ, ๊ตฌ์กฐ๋ฅผ ์ข ๋ ๋ช ํํ๊ฒ ์ดํดํ๊ธฐ ์ํด ํน์ ์ ์ฐจ๋ ๋ฌผ์ฒด๋ฅผ ์๋์ ์ผ๋ก ์๋ตํ๊ฑฐ๋ ๊ฐ์ถค์ผ๋ก์จ ๋ณต์ก๋๋ฅผ ๊ทน๋ณตํ๋ ๋ฐฉ๋ฒ.
- ๊ตฌ์ฒด์ ์ธ ์ฌ๋ฌผ ๊ฐ์ ๊ณตํต์ ์ ์ทจํ๊ณ ์ฐจ์ด์ ์ ๋ฒ๋ฆฌ์.
- ์ค์ํ ๋ถ๋ถ์ ๊ฐ์กฐํ๊ธฐ ์ํด ๋ถํ์ํ ์ธ๋ถ์ฌํญ์ ์ ๊ฑฐํด ๋จ์ํ ํ์.
- ์ถ์ํ ๋งค์ปค๋์ฆ์ ์ข ๋ฅ๋ก๋ '๋ถ๋ฅ์ ์ธ์คํด์คํ' , '์ผ๋ฐํ์ ํน์ํ' , '์งํฉ๊ณผ ๋ถํด' ๊ฐ ์๋ค.
๋ถ๋ฅ์ ์ธ์คํด์คํ
- '๋ถ๋ฅ์ ์ธ์คํด์คํ' ์ ์๋ก๋ ์๋์ฐจ , ์ , ๋๋ฌด ๋ฑ์ด ๋๊ฒ ๋ค.
- '๋ถ๋ฅ' ๋ผ๋๊ฒ์ ์ธ์์ ์กด์ฌํ๋ ๊ฐ์ฒด์ ๊ฐ๋ ์ ์ ์ฉํ๋ ๊ณผ์ ์ด๋ค. ๊ฐ์ฒด์ ํน์ ํ ๊ฐ๋ ์ ๋ํ๋ด๋ ์งํฉ์ ๊ตฌ์ฑ ์์๋ก ํฌํจ์ํจ๋ค.
- ์ฌ๋๋ค์ ์ด '๋ถ๋ฅ'๋ฅผ ํตํด ๊ฐ๋ณ ํ์์ ํ๋์ ๊ฐ๋ ์ผ๋ก ๋ค๋ฃจ๊ณ ์ด๋ ์๋ง์ ๊ฐ๋ณ์ ์ธ ํ์๋ค์ '๊ฐ์ฒด' , 'ํ๋์ ๊ฐ๋ ' ์ 'ํ์ ' ์ด๋ผ๊ณ ํ๋ค.
์ผ๋ฐํ์ ํน์ํ
- ์ผ๋ฐํ์ ํน์ํ๋ ๊ณ์ธต ๊ด๊ณ๋ฅผ ์ด๋ฃจ๊ณ ์๋ค. 'is-a' ๊ด๊ณ.
์งํฉ๊ณผ ๋ถํด
- ๋ณต์ก์ฑ์ '๊ณ์ธต'์ ํํ๋ฅผ ๋ค๋ค.
- ๋จ์ํ ํํ๋ก๋ถํฐ ๋ณต์กํ ํํ๋ก ์งํํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๊ทธ ์ฌ์ด์ ์กด์ฌํ๋ '์์ ์ ์ธ ํํ'์ ์์ ๋ถํฌ์ ์์กดํ๋ค.
- ์์ ์ ์ธ ํํ์ ๋ถ๋ถ์ผ๋ก๋ถํฐ ์ ์ฒด๋ฅผ ๊ตฌ์ถํ๋ ํ์๋ฅผ ์งํฉ์ด๋ผ๊ณ ํ๋ค.
- ๋ฐ๋๋ก ์ ์ฒด๋ฅผ ๋ถ๋ถ์ผ๋ก ๋ถํ ํ๋ ํ์๋ฅผ ๋ถํด๋ผ๊ณ ํ๋ค.
- ์งํฉ์ ๊ฐ์น๋ ๋ถํ์ํ ์ธ๋ถ์ฌํญ์ ๋ฐฐ์ ํ๊ณ ํฐ ๊ทธ๋ฆผ์์ ๋์์ ๋ค๋ฃฐ ์ ์๊ฒ ํ๋ค. ์ฆ, ๋ถํ์ํ ๋ถ๋ถ์ ์ถ์ํ ํ๋ค.
- ํฉ์ฑ ๊ด๊ณ๋ ๋ถ๋ถ์ ์ ์ฒด ์์ ์บก์ํํจ์ผ๋ก์จ ์ธ์ง ๊ณผ๋ถํ๋ฅผ ๋ฐฉ์งํ๋ค. ์ฆ, ์ด๋ ํ ๊ฐ์ฒด ์์ ์์ ํฌํจ์ํค๋ ๊ฒ์ด๋ค.
- ์ฐ๊ด ๊ด๊ณ๋ ๋จ์ํ ๋ฌผ๋ฆฌ์ ํต๋ก๊ฐ ์กด์ฌํ๋ค๋ ์ฌ์ค๋ง ๋ํ๋ธ๋ค. ์ฐ๊ด๊ด๊ณ๋ก ์ฐ๊ฒฐ๋ ๋ ๊ฐ์ฒด๋ ์๋ช ์ฃผ๊ธฐ์ ๊ด๋ จ๋ ์ด๋คํ ์ฝ๋ ๋ถ๊ณผํ์ง ์๋๋ค. ์ฆ, ๋ ๋ฆฝ์ ์ด๋ค.
- ํฉ์ฑ๊ด๊ณ๊ฐ ๋ด๋ถ์ ํฌํจ๋ ๊ฐ์ฒด๋ค์ ์กด์ฌ๋ฅผ ๊ฐ์ถค์ผ๋ก์จ ๋ด๋ถ ๊ตฌ์กฐ๋ฅผ ์ถ์ํ ํ๋ ๊ฒ์ฒ๋ผ ํจํค์ง๋ ๋ด๋ถ์ ํฌํจ๋ ํด๋์ค๋ค์ ๊ฐ์ถค์ผ๋ก์จ ์์คํ ์ ๊ตฌ์กฐ๋ฅผ ์ถ์ํ ํ๋ค.
๊ฐ๋
- ๊ณตํต์ ์ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ์ฒด๋ฅผ ๋ฌถ๊ธฐ ์ํ ๊ทธ๋ฆ์ ๊ฐ๋ (concept) ๋ผ๊ณ ํ๋ค.
- ๊ฐ๋ ์ ๊ด์ : ์ฌ๋ณผ(symbol), ๋ด์ฐ(intension), ์ธ์ฐ(extension)
- symbol : ๊ฐ๋ ์ ๊ฐ๋ฆฌํค๋ ์ด๋ฆ์ด๋ ๋ช ์นญ
- intension : ๊ฐ๋ ์ ์์ ํ ์ ์ ์ด ์๋ฏธ๋ก ์ธํด ๊ฐ์ฒด๊ฐ ๊ฐ๋ ์ ์ํ๋์ง ์ฌ๋ถ๋ฅผ ํ์ธํ ์ ์๋ค.
- extension : ๊ฐ๋ ์ ์ํ๋ ๋ชจ๋ ๊ฐ์ฒด์ ์งํฉ.
- ๊ฐ๋ ์ ์ด์ฉํด ๊ฐ์ฒด์ ๋ณต์ก์ฑ์ ๊ทน๋ณตํ๊ณ ๋ถ๋ฅํ์.
ํ์
- ํ์ ์ ๊ฐ๋ ์ด๋ค.
- ํ์ ์ ๊ณตํต์ ์ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ์ฒด๋ค์ ๋ฌถ๊ธฐ ์ํ ํ์ด๋ค.
- ์ด๋ค ๊ฐ์ฒด์ ํ์ ์ด ์๋์ฐจ๋ผ๊ณ ๋งํ ์ ์์ผ๋ ค๋ฉด ์๋์ฐจ๊ฐ ๋ฌด์์ธ์ง์ ๋ํ ๋ช ํํ ์ ์๊ฐ ํ์ํ๋ค.
- ํ์ ์ ๊ฐ๋ ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฌ๋ณผ, ๋ด์ฐ, ์ธ์ฐ์ ์ด์ฉํด ์์ ํ ์ ์์ผ๋ฉฐ ํ์ ์ ์ํ๋ ๊ฐ์ฒด ์ญ์ ํ์ ์ ์ธ์คํด์ค๋ผ๊ณ ํ๋ค.
- 'ํ์ ์ด ์๋ค' ๋ผ๋ ๋ง์ ๋ฉ๋ชจ๋ฆฌ ์์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ์ ์๋ ๋จ ํ๋์ ํ์ ๋ง์ด ์กด์ฌํ๋ค๋ ๊ฒ์ ์๋ฏธ. ์ฌ์ค ๋ฉ๋ชจ๋ฆฌ ์ธ์์ ํ์ ์ด๋ผ๋ ์ง์๊ฐ ์๋ค.
- ํ์ ์ด ์๋ ์ฒด๊ณ์์๋ ๋ฉ๋ชจ๋ฆฌ ์์ ๊ฐ์ด ์ด๋ค ์๋ฏธ์ธ์ง ๋งํ ์ ์๋ ์ฌ๋์ ์๋ค. '1001001'๋ง ๋ณด๊ณ ์ซ์์ธ์ง ๋ฌธ์์ด์ธ์ง ํด์ํ ์ ์๋๊ฐ?
- ๋ฐ์ดํฐ ํ์ ์ด๋ ๋ฉ๋ชจ๋ฆฌ ์์ ๋ฐ์ดํฐ์ ํน์ ํ ์๋ฏธ๋ฅผ ๋ถ์ฌํ ๊ฒ์ด๋ค. ์ฌ๋๋ค์ ์์ ์ด ๋ค๋ค์ผ ํ๋ ๋ฐ์ดํฐ์ ์ฉ๋์ ํ๋์ ๋ฐ๋ผ ๊ทธ๊ฒ๋ค์ ๋ถ๋ฅํ๊ฒ์ด๋ค.
- ํ์ ์์คํ ์ ๋ชฉ์ ์ ๋ฉ๋ชจ๋ฆฌ ์์ ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ๋นํธ์ด๋ก ๋ณด์์ผ๋ก ๊ทธ ํผ๋์ ๋ง๊ธฐ ์ํจ์ด๋ค. ๋ฉ๋ฏธ๋ก ์์ ์ ์ฅ๋ 0๊ณผ 1์ ๋ํด์ ์ํ ๊ฐ๋ฅํ ์์ ๊ณผ ๋ถ๊ฐ๋ฅ ์์ ์ ๊ตฌ๋ถํจ์ผ๋ก์จ ๋ฐ์ดํฐ๊ฐ ์๋ชป ์ฌ์ฉ๋๋๊ฒ์ ๋ฐฉ์งํ๋ค.
๊ฐ์ฒด์ ํ์
- ๊ฐ์ฒด๋ฅผ ํ์ ์ ๋ฐ๋ผ ๋ถ๋ฅํ๊ณ ๊ทธ ํ์ ์ ์ด๋ฆ์ ๋ถ์ด๋ ๊ฒ์ ๊ฒฐ๊ตญ ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉํ ์๋ก์ด ๋ฐ์ดํฐ ํ์ ์ ์ ์ธํ๋๊ฒ๊ณผ ๊ฐ๋ค.
- ๊ฐ์ฒด๊ฐ ์ด๋ค ํ์ ์ ์ํ๋์ง๋ ๊ฐ์ฒด๊ฐ ์ํํ๋ ํ๋์ด๋ค. ๋์ผํ ํ๋์ ์ํํ ์ ์๋ค๋ฉด ๊ทธ ๊ฐ์ฒด๋ค์ ๋์ผํ ํ์ ์ผ๋ก ๋ถ๋ฅ๋ ์ ์๋ค.
- ๋ด๋ถ์ ์ธ ํํ์ ์ธ๋ถ๋ก๋ถํฐ ์ฒ ์ ํ๊ฒ ๊ฐ์ถฐ์ง๋ค.
- ๊ฐ์ฒด๋ฅผ ๊ฒฐ์ ํ๋ ๊ฒ์ ํ๋์ด๋ค. ๋ฐ์ดํฐ๋ ๋จ์ง ํ๋์ ๋ฐ๋ฅผ ๋ฟ์ด๋ค.
- ๊ฐ์ฒด๊ฐ ์ธ๋ถ์ ์ ๊ณตํด์ผ ํ๋ ํ๋์ ๋จผ์ ์๊ฐํ์.
- ๊ฐ์ฒด๋ ์์๊ฐ๊ฐ ๋ณํ ์ ์๊ธฐ ๋๋ฌธ์ ํ์ ์ ์ฌ์ฉํ๋ฉด ์๊ฐ๊ณผ ๋ฌด๊ดํ ์ ์ ์ธ ๋ชจ์ต์ผ๋ก ๋ค๋ฃฐ์ ์๊ฒ ํด์ค๋ค. ์ฆ, ํ์ ์ ์ถ์ํ์ด๋ค. ๊ฐ์ฒด์ ์ํ ๋ณ๊ฒฝ์ด๋ผ๋ ๋ณต์ก์ฑ์ ๋จ์ํ ํ ์ ์๋ ๋ฐฉ๋ฒ์ด๋ค.
์ผ๋ฐํ/ํน์ํ ( ์ํผํ์ /์๋ธํ์ )
- ์ผ๋ฐํ / ํน์ํ์ ์ ์ ํ ์๋ ๊ณ ์์ด๊ณผ ๋๋ฌผ / ์ฌ์ ๋ฅผ ๋ค์ ์์ ๊ฒ์ด๋ค.
- ์ผ๋ฐํ / ํน์ํ ๊ด๊ณ๋ฅผ ๊ฒฐ์ ์ง๋ ๊ฒ์ ๊ฐ์ฒด์ ์ํ๊ฐ ์๋ ํ๋์ด๋ค.
- ์ฌ๊ธฐ์ ์ผ๋ฐ์ ์ธ ํ์ ์ ํน์์ ์ธ ํ์ ์ ๋ชจ๋ ํ๋์ค์์ ์ผ๋ถ ํ๋๋ง ๊ฐ์ง๋ค.
- ํน์ํ ํ์ ์ด๋ ์ผ๋ฐ์ ์ธ ํ์ ์ด ๊ฐ์ง ๋ชจ๋ ํ์ ์ ํฌํจํ์ง๋ง ๊ฑฐ๊ธฐ์ ์์ ๋ง์ ํ๋์ ์ถ๊ฐํ๋ ํ์ ์ ๊ฐ๋ฆฌํจ๋ค.
ํด๋์ค
- ํด๋์ค๋ ๋จ์ง ํ์ ์ ๊ตฌํํ ์ ์๋ ์ฌ๋ฌ ๊ตฌํ ๋ฉ์ปค๋์ฆ ์ค ํ๋์ด๋ค.
- ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ฒฝ์ฐ์๋ ํ๋กํ ํ์ ๊ธฐ๋ฐ์ ์ธ์ด๋ผ ํด๋์ค๊ฐ ์กด์ฌํ์ง ์๋๋ค.
์ํ, ํ๋, ์๋ณ์
์ํ
- ์ํ๋ฅผ ์ด์ฉํ๋ฉด ๊ณผ๊ฑฐ์ ํ๋ ์ด๋ ฅ์ ์ค๋ช ํ์ง ์์๋ ํ๋์ ๊ฒฐ๊ณผ๋ฅผ ์ฝ๊ฒ ์์ธก ํ๊ณ ์ค๋ช ํ ์ ์๋ค.
- ์ฆ, ์ํ๋ ํน์ ์์ ์ ๊ฐ์ฒด๊ฐ ๊ฐ์ง๊ณ ์๋ ์ ๋ณด์ ์งํฉ์ด๋ค.
- ๊ฐ์ฒด๋ ์ํ๋ฅผ ์ค์ค๋ก ๊ด๋ฆฌํ๋ ์์จ์ ์ธ ์กด์ฌ๋ค.
- ์ํ๋ฅผ ์ธ๋ถ์ ๋ ธ์ถ์ํค์ง ์๊ณ ์บก์ํ ํ๋๊ฒ์ ๊ฐ์ฒด์ ์์จ์ฑ์ ๋์ธ๋ค.
ํ๋
- ๊ฐ์ฒด์ ์ํ๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ ๊ฐ์ฒด์ ์๋ฐ์ ์ธ ํ๋์ด๋ค.
- ๊ฐ์ฒด์ ํ๋์ ์ํ์ ์ํฅ์ ๋ฐ๋๋ค.
- ํ๋์ด๋ ์ธ๋ณด์ ์์ฒญ ๋๋ ์์ ๋ ๋ฉ์์ง์ ์๋ตํ๊ธฐ ์ํด ๋์ํ๊ณ ๋ฐ์ํ๋ ํ๋
- ํ๋์ ๊ฒฐ๊ณผ๋ก๋ ๊ฐ์ฒด์ ์์ ์ ์ํ๋ฅผ ๋ณ๊ฒฝํ๊ฑฐ๋ ๋ค๋ฅธ ๊ฐ์ฒด์ ๋ฉ์์ง๋ฅผ ์ ๋ฌํ ์ ์๋ค.
- ํ๋์ ๋ค๋ฅธ๊ฐ์ฒด์์ ํ๋ ฅ์ ์ฐธ์ฌํ๋ฏ๋ก ์ธ๋ถ์ ๊ฐ์์ ์ด๋ค.
- drinkBeverage() -> ๋ ๊ฐ์ฒด -> drunken(quantity) -> ์๋ฃ๊ฐ์ฒด
์๋ณ์
- ์๋ก๋ฅผ ๊ตฌ๋ณํ ์ ์๋ ํน์ ํ ํ๋กํผํฐ๊ฐ ์๋ณ์๋ผ๊ณ ํ๋ค.
- ๊ฐ์ ์ํ๋ ๋ณํ์ง ์๊ธฐ์ immutable state๋ฅผ ๊ฐ์ง๋ค.
- ๊ฐ์ฒด์ ์ํ๋ ํ๋์ ์ํด ๋ณํ ์ ์๊ธฐ์ mutable state๋ผ๊ณ ํ๋ค.
- ๋๋ฑ์ฑ : ์ํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋น๊ต , ๋์ผ์ฑ: ์๋ณ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋น๊ต
- ๊ฐ์ฒด์ ๊ฒฝ์ฐ ์ํ๊ฐ ๊ฐ๋ณ์ ์ด๊ธฐ์ ์ํ ๋ณ๊ฒฝ์ ๋ ๋ฆฝ์ ์ธ ๋ณ๋์ ์๋ณ์๋ฅผ ์ด์ฉํด์ ๋ ์ธ์คํด์ค๋ฅผ ๋น๊ตํ ์ ์๋ค.
์์ ์ ๊ฐ์ฒด
- ํ์ค์์์๋ ์๋์ ์ธ ์กด์ฌ๊ฐ ์ํํธ์จ์ด ๊ฐ์ฒด๋ก ๊ตฌํ๋ ๋๋ ๋ฅ๋์ ์ผ๋ก ๋ณํ๋ค. ์๋ฅผ ๋ค๋ฉด ์ํํธ์จ์ด์์ ์ํ์ด ๊ฐ๊ฒฉ๊ณ์ฐ์ ์ค์ค๋ก ์ํํ ์ ์๋ค๋ ๊ฒ์ด๋ค.
- ๊ฐ์ฒด๋ฅผ ์ฐฝ์กฐํ ๋ ํ์ค ๊ฐ์ฒด๋ฅผ ๋ชจ๋ฐฉํ๋ ค ํ์ง๋ง๊ณ ํ์ค ์์ ๊ฐ์ฒด์ ๋ํ ์์ ๋ฅผ ์ฐ์. ์์ ๋ ํ๋์ ์๋ฏธ๋ฅผ ๋ค๋ฅธ ๊ฒ์ ์ด์ฉํด ์ ๋ฌํ๋ค๋ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
- "A๋ผ๋ ๊ฐ์ฒด๋ ์ ํ๊ธฐ ๊ฐ์์" ๋ผ๊ณ ํ์๋ A๋ผ๋ ๊ฐ์ฒด๋ ์ ํ๋ฅผ ๊ฑธ ์ ์๋ค๋ ์ฌ์ค์ ์ ์ ์๋ค.
- ์์ ๊ด๊ณ์ ์๋ ์ค์ ๊ฐ์ฒด์ ์ด๋ฆ์ ์ํํธ์จ์ด ๊ฐ์ฒด์ ์ด๋ฆ์ผ๋ก ์ฌ์ฉํ๋ฉด ํํ์ ์ฐจ์ด๋ฅผ ์ค์ฌ ์ํํธ์จ์ด์ ๊ตฌ์กฐ๋ฅผ ์ฝ๊ฒ ์์ธกํ ์ ์๋ค. ๊ทธ๋์ ์ ์ง๋ณด์๊ฐ ์ฉ์ดํ ์ํํธ์จ์ด๋ฅผ ๋ง๋ค ์ ์๋ค.
๊ฐ์ฒด์งํฅ ์ค๊ณ ๊ธฐ๋ฒ
์ฑ ์-์ฃผ๋ ์ค๊ณ
- ๊ฐ์ฒด์งํฅ ์ค๊ณ๋ app์ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํ ํ๋ ฅ ๊ด๊ณ๋ฅผ ๊ณ ์ํ๊ณ , ํ๋ ฅ์ ํ์ํ ์ญํ ๊ณผ ์ฑ ์์ ์๋ณํ ํ ์ด๋ฅผ ์ํํ ์ ์๋ ์ ์ ํ ๊ฐ์ฒด๋ฅผ ์๋ณํด ๋๊ฐ๋ ๊ณผ์ .
- ์ด ์ค๊ณ๋ ๊ฐ์ฒด์ ์ฑ ์์ ์ค์ฌ์ผ๋ก ์์คํ ์ ๊ตญ์ถํ๋ ์ค๊ณ ๋ฐฉ๋ฒ
- ์์คํ ์ ๋ ์์ ๊ท๋ชจ์ ์ฑ ์์ผ๋ก ๋ถํ ๋๊ณ ๊ฐ ์ฑ ์์ ์ฑ ์์ ์ํํ ์ ์ ํ ๊ฐ์ฒด์๊ฒ ํ ๋น๋๋ค. ๊ฐ์ฒด๊ฐ ์ฑ ์์ ์ํํ๋ ๋์ค์ ํ์ํ๋ค๋ฉด ์ ์ ํ ๊ฐ์ฒด๋ฅผ ์ฐพ์ ํ์ํ ์์ ์ ์์ฒญํ๋ค. ๋ง์ฝ ์ฑ ์์ ์ฌ๋ฌ ์ข ๋ฅ์ ๊ฐ์ฒด๊ฐ ์ํํ ์ ์๋ค๋ฉด ํ๋ ฅ์๋ ๊ฐ์ฒด๊ฐ ์๋๋ผ ์ถ์์ ์ธ ์ญํ ๋ก ๋์ฒด๋๋ค.
- ์์คํ ์ด ์ฌ์ฉ์์๊ฒ ์ ๊ณตํด์ผ ํ๋ ๊ธฐ๋ฅ์ธ ์์คํ ์ฑ ์์ ํ์ ํ๋ค.
- ์์คํ ์ฑ ์์ ๋ ์์ ์ฑ ์์ผ๋ก ๋๋๋ค.
- ๋ถํ ๋ ์ฑ ์์ ์ํํ ์ ์๋ ์ ์ ํ ๊ฐ์ฒด ๋๋ ์ญํ ์ ์ฐพ์ ์ฑ ์์ ํ ๋นํ๋ค.
- ๊ฐ์ฒด๊ฐ ์ฑ ์์ ์ํํ๋ ์ค์ ๋ค๋ฅธ๊ฐ์ฒด์ ๋์์ด ํ์ํ ๊ฒฝ์ฐ ์ด๋ฅผ ์ฑ ์์ง ์ ์ ํ ๊ฐ์ฒด๋ฅผ ์ฐพ๋๋ค.
- ํด๋น ๊ฐ์ฒด์๊ฒ ์ฑ ์์ ํ ๋นํจ์ผ๋ก์จ ๋ ๊ฐ์ฒด๊ฐ ํ๋ ฅํ๊ฒ ๋๋ค.
๋์์ธํจํด
- ๋ฐ๋ณต์ ์ผ๋ก ๋ฐ์ํ๋ ๋ฌธ์ ์ ๊ทธ ๋ฌธ์ ์ ๋ํ ํด๋ฒ์ ์
- ํจํด์ผ๋ก ํด๊ฒฐํ๋ ๋ฌธ์ ๊ฐ ๋ฌด์์ธ์ง๋ฅผ ๋ช ํํ๊ฒ ํ์ ํ๊ณ ํจํด์ ์ ์ฉํ ์ ์๋ ์ํฉ๊ณผ ์ ์ฉํ ์ ์๋ ์ํฉ์ ์ธ์งํ์.
- COMPOSITE ํจํด์ ์ ์ฒด์ ๋ถ๋ถ์ ํ๋์ ๋จ์๋ก ์ถ์ํํด์ผํ๋ ๊ฒฝ์ฐ์ ์ฌ์ฉ๋๋ค.
- ์ ์๋ก๋ ์ฌ์ฉ์ ๊ด์ ์์ ๋์์ด ํ์ผ์ธ์ง ํด๋์ธ์ง ์๊ด์์ด ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ๋ฐ๊ฟ์๋ ์์ง๋ง ํด๋์ ๊ฒฝ๋ก๋ฅผ ๋ฐ๊พธ๊ฒ ๋๋ฉด ๊ทธ ์์ ์๋ ํ์ผ๊น์ง๋ ํ๋ฒ์ ๋ณ๊ฒฝ ํ ์๋ ์์ด์ผ ํ๋ค. ์ฌ์ฉ์๋ ๋จ์ง ๋์์ ์ ํํ ํ ๊ฒฝ๋ก๋ฅผ ๋ฐ๊พธ๊ธฐ๋ง ํ๋ฉด ๋๋ค.
- ์ฆ, ๋ฉ์์ง ์์ ์๊ฐ ๋ถ๋ถ(ํ์ผ) ์ธ์ง ์ ์ฒด(ํด๋) ์ธ์ง์ ์๊ด ์์ด ๋์ผํ ๋ฉ์์ง(๊ฒฝ๋ก๋ณ๊ฒฝ)์ ์ด์ฉํด ๋์ผํ ๋ฐฉ์์ผ๋ก ๋์๊ณผ ์ํธ์์ฉํ๊ณ ์ถ์๋ ์ด์ฉํ๋ค.
์ฑ ์๊ณผ ๋ฉ์์ง
์์จ์ ์ธ ์ฑ ์
- ์์จ์ฑ ๊ทธ๊ฒ์ ์๊ธฐ ์ค์ค๋ก์ ์์น์ ๋ฐ๋ผ ์ด๋ค ์ผ์ ํ๊ฑฐ๋ ์์ ์ ํต์ ํด์ ์ ์ ํ๋ ์ฑ์ง์ด๋ ํน์ฑ์ด๋ค.
- ๊ฐ์ฒด๊ฐ ์ด๋ค ํ๋์ ํ๋ ์ ์ผํ ์ด์ ๋ ๋ค๋ฅธ ๊ฐ์ฒด๋ก๋ถํฐ ์์ฒญ์ ์์ ํ๊ธฐ ๋๋ฌธ์ด๋ค.
- ์์จ์ ์ธ ์ฑ ์์ ํน์ง์ ๊ฐ์ฒด๊ฐ '์ด๋ป๊ฒ (how)' ํด์ผ ํ๋๊ฐ๊ฐ ์๋๋ผ '๋ฌด์ (what)' ์ ํด์ผ ํ๋๊ฐ๋ฅผ ์ค๋ช ํ๋ค๋ ๊ฒ์ด๋ค.
๋ฉ์์ง์ ๋ฉ์๋
- ๊ฐ์ฒด์ ํ๋์ ์ ๋ฐํ๋ ํ์๋ฅผ ๊ฐ๋ฆฌ์ผ ๋ฉ์์ง-์ ์ก ์ด๋ผ๊ณ ํ๋ค.
- ๋ชจ์์ฅ์.์ฆ์ธํ๋ผ(์ด์ ,์๊ตญ);
- ๊ฐ์ฒด๋ ๋ฉ์์ง๋ฅผ ์์ ํ๋ฉด ๋จผ์ ํด๋น ๋ฉ์์ง๋ฅผ ์ฒ๋ฆฌํ ์ ์๋์ง ์ฌ๋ถ๋ฅผ ํ์ธํ๋ค. ๊ทธ ํ์ ๋ฉ์์ง๋ฅผ ์ฒ๋ฆฌํ ๋ฐฉ๋ฒ์ธ ๋ฉ์๋๋ฅผ ์ ํํ๊ฒ ๋๋ค.
- ๋ฉ์์ง๋ '์ด๋ป๊ฒ' ์ํ๋ ๊ฒ์ธ์ง๋ ๋ช ์ํ์ง ์๋๋ค.
๋คํ์ฑ
- ๋คํ์ฑ์ด๋ ์๋ก ๋ค๋ฅธ ์ ํ์ ๊ฐ์ฒด๊ฐ ๋์ผํ ๋ฉ์์ง์ ๋ํด ์๋ก ๋ค๋ฅด๊ฒ ๋ฐ์ํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
- ์๋ก ๋ค๋ฅธ ํ์ ์ ์ํ๋ ๊ฐ์ฒด๋ค์ด ๋์ผํ ๋ฉ์์ง๋ฅผ ์ฐํ ๊ฒฝ์ฐ ์๋ก ๋ค๋ฅธ ๋ฉ์๋๋ฅผ ์ด์ฉํด ๋ฉ์์ง๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ ๋ฉ์ปค๋์ฆ์ ๊ฐ๋ฆฌํจ๋ค.
- ์๋ก ๋ค๋ฅธ ๊ฐ์ฒด๋ค์ด ๋คํ์ฑ์ ๋ง์กฑ์ํจ๋ค๋ ๊ฒ์ ๊ฐ์ฒด๋ค์ด ๋์ผํ ์ฑ ์์ ๊ณต์ ํ๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค.
- ๋ฉ์์ง๋ฅผ ๋ณด๋ด๋ ๊ฐ์ฒด๋ ์์ ํ๋ ๊ฐ์ฒด๋ฅผ ํ ํ์๊ฐ ์๋ค. ๋จ์ง ๋ณด๋ด๋ ๋ฉ์์ง๋ฅผ ์ดํดํ๋ฉด ํด๋น ์ญํ ์ ์ํํ ์ ์๋ ์์ ์๋ผ๋ฉด ์ด๋ค ๋๊ตฌ์๋ ํ๋ ฅ์ด ๊ฐ๋ฅํ๋ค.
what/who ์ฌ์ดํด
- ๋จผ์ '์ด๋ค ํ์(what)'์ ์ํํ ๊ฒ์ธ์ง๋ฅผ ๊ฒฐ์ ํ ํ์ '๋๊ฐ(who)' ๊ทธ ํ์๋ฅผ ์ํํ ๊ฒ์ธ์ง๋ฅผ ๊ฒฐ์ ํด์ผ ํ๋ค๋ ๊ฒ.
- ์์ ๊ฐ๋ฅํ ๋ฉ์์ง๊ฐ ๋ชจ์ฌ ๊ฐ์ฒด์ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌ์ฑํ๋ค.
- ์ฐธ์ฌํ ๊ฐ์ฒด๋ฅผ ๊ฒฐ์ ํ๊ธฐ ์ ์ ํ๋ ฅ์ ํ์ํ ๋ฉ์์ง๋ฅผ ๋จผ์ ๊ฒฐ์ ํ๋ค.
- ๋ฉ์์ง๋ฅผ ๊ฒฐ์ ํ๊ธฐ ์ ๊น์ง ๊ฐ์ฒด์ ๊ดํด ๊ณ ๋ฏผํ์ง ๋ง์์ผ ํ๋ค.
- '๋ฌป์ง ๋ง๊ณ ์์ผ๋ผ' ๋จ์ง ์ก์ ์๋ ์์ ์๊ฐ ์ด๋ค ๊ฐ์ฒด์ธ์ง๋ ๋ชจ๋ฅด์ง๋ง ์์ ์ด ์ ์กํ ๋ฉ์์ง๋ฅผ ์ ์ฒ๋ฆฌํ ๊ฒ์ด๋ผ๋ ๊ฒ์ ๋ฏฟ๊ณ ๋ฉ์์ง๋ฅผ ์ ์กํ๋ค.
๊ฐ์ฒด ์ธํฐํ์ด์ค
- ์ธํฐํ์ด์ค๋ ์ฌ์ฉ๋ฒ๋ง ์ตํ๋ฉด ๋ด๋ถ ๊ตฌ์กฐ๋ฅผ ๋ชฐ๋ผ๋ ์ฝ๊ฒ ๋์์ ์กฐ์ํ๊ฑฐ๋ ์์ฌ๋ฅผ ์ ๋ฌํ ์ ์๋ค.
- ์ธํฐํ์ด์ค ์์ฒด๋ ๋ณ๊ฒฝํ์ง ์๊ณ ๋จ์ํ ๋ด๋ถ ๊ตฌ์ฑ์ด๋ ์๋๋ฐฉ์์ ๋ฐ๊พธ๋ ๊ฒ์ ์ธํฐํ์ด์ค ์ฌ์ฉ์์๊ฒ ์ด๋ค ์ํฅ๋ ๋ฏธ์น์ง ์๋๋ค.
- ๋์์ด ๋ณ๊ฒฝ๋๋๋ผ๋ ๋์ผํ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๊ธฐ๋ง ํ๋ฉด ์๋ฌด๋ฐ ๋ฌธ์ ์์ด ์ํธ์์ฉ ํ ์ ์๋ค.
- ๊ฐ์ฒด์ ์ธ๋ถ์ ๊ณต๊ฐ๋ ์ธํฐํ์ด์ค๋ฅผ ๊ณต์ฉ ์ธํฐํ์ด์ค๋ผ๊ณ ํ๋ค.
- ๊ฐ์ฒด์งํฅ ํจ๋ฌ๋ค์ ์์์ ์๊ธฐ ์ค์ค๋ก์๊ฒ ๋ญ๊ฐ๋ฅผ ์์ฒญํ๋ ๊ฒฝ์ฐ์๋ ๋ฉ์์ง๋ฅผ ์ ์กํด์ผ ํ๋ค.
- ์ธ๋ถ์์ ์ฌ์ฉํ ํ์๊ฐ ์๋ ์ธํฐํ์ด์ค๋ ์ต๋ํ ๋ ธ์ถํ์ง ๋ง์.
๊ตฌํ
- ๊ฐ์ฒด๋ฅผ ๊ตฌ์ฑํ์ง๋ง ๊ณต์ฉ ์ธํฐํ์ด์ค์ ํฌํจ๋์ง ์๋ ๋ชจ๋ ๊ฒ์ด ๊ตฌํ์ ํฌํจ๋๋ค.
- ๊ฐ์ฒด๋ ์ํ์ ํ๋์ ์ง๋๋ค ์ด ๋ถ๋ถ๋ค์ ๊ตฌ์ฑํ๋ ์ฝ๋ ์์ฒด๋ ๊ฐ์ฒด ์ธ๋ถ์ ๋ ธ์ถ๋๋ ๊ณต์ฉ ์ธํฐํ์ด์ค์ ์ผ๋ถ๋ ์๋๊ธฐ ๋๋ฌธ์ ๊ฐ์ฒด์ ๊ตฌํ๋ถ๋ถ์ ํฌํจ๋๋ค.
- ์ด ๋ถ๋ถ์ ์์ ํ๋๋ผ๋ ๊ฐ์ฒด ์ธ๋ถ์ ์ํฅ์ ๋ฏธ์ณ์๋ ์๋๋ค. ๊ฐ์ฒด ์ธ๋ถ์ ์ํฅ์ ๋ฏธ์น๋ ๋ณ๊ฒฝ์ ๊ฐ์ฒด์ ๊ณต์ฉ ์ธํฐํ์ด์ค๋ฅผ ์์ ํ ๋๋ฟ์ด๋ค.
์บก์ํ
- ์ํ์ ํ์์ ์บก์ํ , ์ธ๋ถ์ ๋ฐ๋์ ์ ๊ทผํด์ผ๋ง ํ๋ ํ์๋ง ๊ณจ๋ผ ๊ณต์ฉ ์ธํฐํ์ด์ค๋ฅผ ํตํด ๋ ธ์ถํ๋ค.
- ๋ฐ์ดํฐ ์บก์ํ๋ ์ธํฐํ์ด์ค์ ๊ตฌํ์ ๋ถ๋ฆฌํ๊ธฐ ์ํ ์ ์ ์กฐ๊ฑด์ด๋ค.
- ๊ฐ์ฒด๊ฐ ์์จ์ ์ด๊ธฐ ์ํด์๋ ์๊ธฐ ์์ ์ ์ํ๋ฅผ ์ค์ค๋ก ๊ด๋ฆฌํ ์ ์์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ ์บก์ํ๋ ์์จ์ ์ธ ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ธฐ ์ํ ์ ์ ์กฐ๊ฑด์ด๊ธฐ๋ ํ๋ค.
- ์ธ๋ถ์ ์ ๊ณตํด์ผ ํ ํ์๊ฐ ์๋ ๋ฉ์์ง๋ง์ ๊ฐ์ฒด์ ๊ณต์ฉ ์ธํฐํ์ด์ค์ ํฌํจ์ํค๊ณ ๊ฐ์ธ์ ์ธ ๋น๋ฐ์ ๊ณต์ฉ ์ธํฐํ์ด์ค์ ๋ค์ ๊ฐ์ถค์ผ๋ก์จ ์ธ๋ถ์ ๋ถํ์ํ ๊ณต๊ฒฉ๊ณผ ๊ฐ์ญ์ผ๋ก ๋ถํฐ ๋ด๋ถ ์ํ๋ฅผ ๊ฒฉ๋ฆฌํ ์ ์๋ค.
์ฑ ์๊ณผ ๋ฉ์์ง์ ์ ๋ฆฌ
- ์์จ์ ์ธ ์ฑ ์์ ํ๋ ฅ์ ๋จ์ํ๊ฒ ๋ง๋ ๋ค.
- ์์จ์ ์ธ ์ฑ ์์ ๋ชจ์ ์ฅ์์ ์ธ๋ถ์ ๋ด๋ถ๋ฅผ ๋ช ํํ๊ฒ ๋ถ๋ฆฌํ๋ค.
- ์ฑ ์์ด ์์จ์ ์ธ ๊ฒฝ์ฐ ์ฑ ์์ ์ํํ๋ ๋ด๋ถ์ ์ธ ๋ฐฉ๋ฒ์ ๋ณ๊ฒฝํ๋๋ผ๋ ์ธ๋ถ์ ์ํฅ์ ๋ฏธ์น์ง ์๋๋ค.
- ์์จ์ ์ธ ์ฑ ์์ ํ๋ ฅ์ ๋์์ ๋ค์ํ๊ฒ ์ ํํ ์ ์๋ ์ ์ฐ์ฑ์ ์ ๊ณตํ๋ค.
- ๊ฐ์ฒด๊ฐ ์ํํ๋ ์ฑ ์๋ค์ด ์์จ์ ์ผ์๋ก ๊ฐ์ฒด์ ์ญํ ์ ์ดํดํ๊ธฐ ์ฌ์์ง๋ค.
๊ฐ์ฒด์งํฅ์ ์๋ฅผ ์ดํด๋ณด์
์ปคํผ ์ ๋ฌธ์
-
์ปคํผ ์ ๋ฌธ์ ์์ ์ฃผ๋ฌธํ๊ธฐ
- ๋ฉ๋ดํ( 4๊ฐ์ ๋ฉ๋ด ) : 4๊ฐ์ ๋ฉ๋ด๋ 4๊ฐ์ ๊ฐ์ฒด๋ฅผ ๋งํ๊ณ ๋ฉ๋ดํ์ ๊ทธ ๊ฐ์ฒด๋ฅผ ํฌํจํ๋ ๊ฐ์ฒด๋ผ๊ณ ๋ณผ์์๋ค.
- ์๋์ ๋ฉ๋ดํ์ ๋ณด๊ณ ๋ฐ๋ฆฌ์คํ์๊ฒ ๋ฉ๋ด๋ฅผ ์ฃผ๋ฌธํ๋ค.
- ๋ฐ๋ฆฌ์คํ๋ ์ปคํผ๋ฅผ ์ ์กฐํ๋ค. ์๋ฉ๋ฆฌ์นด๋ ธ , ์นดํธ์น๋ ธ, ์นด๋ผ๋ฉ ๋งํค์๋, ์์คํ๋ ์
- ๋ฐ๋ฆฌ์คํ๋ ์์จ์ ์ผ๋ก ์ปคํผ๋ฅผ ์ ์กฐํ๋ ๊ฐ์ฒด๋ก ๋ณผ ์ ์์ผ๋ฉฐ ์ปคํผ ์ญ์ ์์ ๋ง์ ๊ฒฝ๊ณ๋ฅผ ๊ฐ์ง๋ฏ๋ก ๊ฐ์ฒด๋ก ๋ณผ ์ ์๋ค.
- ๋๋ฉ์ธ์ ์๋๊ฐ์ฒด , ๋ฉ๋ดํญ๋ชฉ๊ฐ์ฒด , ๋ฉ๋ดํ๊ฐ์ฒด , ๋ฐ๋ฆฌ์คํ ๊ฐ์ฒด , ์ปคํผ๊ฐ์ฒด๋ก ๊ตฌ์ฑ๋ ์์ ์ธ์
- ๋์ ์ธ ๊ฐ์ฒด๋ฅผ ์ ์ ์ธ ํ์ ์ผ๋ก ์ถ์ํํด์ ๋ณต์ก์ฑ์ ๋ฎ์ถ์.
- ์๋ํ์ , ๋ฉ๋ดํํ์ , ๋ฉ๋ด ํญ๋ชฉํ์ , ๋ฐ๋ฆฌ์คํ ํ์ , ์ปคํผํ์ ์ผ๋ก ๋๋๋ค.
- ๋ฉ๋ด ํญ๋ชฉ์ด ๋ฉ๋ดํ์ ํฌํจ๋๋ค. ( ํฉ์ฑ )
- ์๋์ ๋ฉ๋ดํ์ ์์์ผ ํ๋ ์๋ก๋ฅผ ์๊ณ ๋ง ์์ผ๋ฉด ๋๋ค. ( ์ฐ๊ด )
- ๋ฐ๋ฆฌ์คํ๋ ์ปคํผ๋ฅผ ์ ์กฐํด์ผํ๋ฏ๋ก ์ปคํผ๋ฅผ ์๊ณ ์์ด์ผ ํ๋ค. ( ์ฐ๊ด )
- ์๋์ ๋ฐ๋ฆฌ์คํ๋ฅผ ์์์ผ ํ๋ค. ( ์ฐ๊ด )
-
์ปคํผ ์ ๋ฌธ์ ์ค๊ณ
- ํ๋ ฅ์ ์ฐพ์. ๋ฉ์์ง๊ฐ ๊ฐ์ฒด๋ฅผ ์ ํํ๊ฒ ํด์ผํ๋ค. ๋ฉ์์ง๋ฅผ ๋จผ์ ์ ํํ๊ณ ๊ทธ ํ์ ๋ฉ์์ง๋ฅผ ์์ ํ๊ธฐ์ ์ ์ ํ ๊ฐ์ฒด๋ฅผ ์ ํํด์ผ ํ๋ค๋ ๊ฒ์ด๋ค. ์ด์ ๋ฏธ์์ง๋ฅผ ์์ ํ ๊ฐ์ฒด๋ ๋ฉ์์ง๋ฅผ ์ฒ๋ฆฌํ ์ฑ ์์ ๋งก๊ฒ ๋๊ณ ๊ฐ์ฒด๊ฐ ์์ ํ๋ ๋ฉ์์ง๋ ๊ฐ์ฒด๊ฐ ์ธ๋ถ์ ์ ๊ณตํ๋ ๊ณต์ฉ ์ธํฐํ์ด์ค์ ํํ๋๋ค.
- ์ด๋ค ๊ฐ์ฒด๊ฐ ์ปคํผ๋ฅผ ์ฃผ๋ฌธํ ์ฑ ์์ ์ ธ์ผ ํ๋๊ฐ?? ์ปคํผ๋ฅผ ์ฃผ๋ฌธํ๋ผ ( ๋ฉ๋ด์ด๋ฆ ) ์ด ๋ฉ์์ง์ ๋ํ ์ฑ ์์ ์๋์ด๋ค.
- ์๋์ '๋ฉ๋ด ํญ๋ชฉ์ ์ฐพ์๋ผ' ๋ผ๋ ์๋ก์ด ๋ฉ์์ง๋ฅผ ๋ณด๋ธ๋ค. ๋ฉ๋ด์ด๋ฆ ์ด๋ผ๋ ์ธ์๋ ํจ๊ป ๋ณด๋ธ๋ค.
- ํ์ค ๋ฉ๋ดํ์ ์ค์ค๋ก ๋ฉ๋ด๋ฅผ ์ฐพ์ง ์์ง๋ง ์ํํธ์จ์ด๋ ๋ฅ๋์ ์ด๊ณ ์์จ์ ์ธ ์กด์ฌ๋ค. ๋ฐ๋ผ์ ์ค๊ณ์๋ ๋ฌด์๋ฌผ์ ์๋ฌผ์ฒ๋ผ '์์ธํ' ํด์ผํ๋ค.
- ์๋์ ๋ฉ๋ดํญ๋ชฉ์ ์ป์์ผ๋ ์ด์ ์ปคํผ๋ฅผ ์ ์กฐํด๋ฌ๋ผ๊ณ ์์ฒญํ ์ ์๋ค.
-
์ธํฐํ์ด์ค ์ ๋ฆฌํ๊ธฐ
- ์๋ : ์ ํ์ ์ฃผ๋ฌธํ๋ผ
- ๋ฉ๋ดํ : ๋ฉ๋ด ํญ๋ชฉ์ ์ฐพ์๋ผ
- ๋ฐ๋ฆฌ์คํ : ์ปคํผ๋ฅผ ์ ์กฐํ๋ผ
- ์ปคํผ : ์์ฑํ๋ผ
class Customer{ constructor(){} order: function(menuName){} } class MenuItem{} class Menu{ constructor(){} choose: function(name){} } class barista{ constructor(){} makeCoffee: function(menuItem){} } class Coffee{ constructor(menuItem){ } }
-
๊ตฌํํ๊ธฐ
- ๊ณ ๊ฐ์ ๋ฉ๋ด์ ๋ฐ๋ฆฌ์คํ ๊ฐ์ฒด์ ์ ๊ทผ์ ํด์ผํ๋ค.
- ๋ฉ๋ด๋ menuName์ ํด๋นํ๋ MenuItem์ ์ฐพ์์ผ ํ๋ ์ฑ ์์ด ์๋ค. ๋ฐ๋ผ์ Menu ๊ฐ MenuItem์ ๊ด๋ฆฌํ๊ณ ์์ด์ผ ํ๋ค.
- ๋ฐ๋ฆฌ์คํ๋ MenuItem์ ์ด์ฉํด์ ์ปคํผ๋ฅผ ์ ์กฐํ๋ค.
class Customer{ constructor(){} order: function(menuName, menu, barista){ let menuItem = menu.choose(menuName); let coffee = barista.makeCoffee(menuItem); //... } } class Menu{ constructor(items){ this._items = items || []; this._itemsLength = items.length(); } choose: function(name){ for(let i = itemLength; i > 0; i--){ if(this._items[i].getName() === name){ return this._items[i]; } } } } class barista{ constructor(){} makeCoffee: function(menuItem){ let coffee = new Coffee(menuItem); return coffee; } } class Coffee{ constructor(opts){ this._name = opts.name; this._price = opts.price; } } class MenuItem{ constructor(opts){ this._name = opts.name; this._price = opts.price }, getCost: function(){ return this._price; } getName: function(){ return this._name; } }
์ ๋ฆฌ
-
์ฝ๋๋ ์ธ๊ฐ์ง ๊ด์ ์ ๋ชจ๋ ์ ๊ณตํด์ผํ๋ค.
-
๊ฐ๋ ๊ด์ , ๋ช ์ธ๊ด์ , ๊ตฌํ๊ด์
- ๊ฐ๋ ๊ด์ : ๋๋ฉ์ธ์ ๊ตฌ์ฑํ๋ ์ค์ํ ๊ฐ๋ ๊ณผ ๊ด๊ณ๋ฅผ ๋ฐ์ํ๋ค๋ฉด ๋ณ๊ฒฝ์ ๊ด๋ฆฌํ๊ธฐ ์ฝ๊ณ ์ ์ง๋ชจ์์ฑ์ ํฅ์ ์ํฌ์ ์๋ค.
- ๋ช ์ธ๊ด์ : ํด๋์ค์ ์ธํฐํ์ด์ค๋ฅผ ๋ฐ๋ผ๋ณธ๋ค. ํด๋์ค์ public ๋ฉ์๋๋ ๋ค๋ฅธ ํด๋์ค๊ฐ ํ๋ ฅํ ์ ์๋ ๊ณต์ฉ ์ธํฐํ์ด์ค๋ฅผ ๋๋ฌ๋ธ๋ค.
- ๊ตฌํ๊ด์ : ํด๋์ค์ ๋ด๋ถ ๊ตฌํ์ ๋ฐ๋ผ๋ณธ๋ค ๋ด๊ตฌ ๊ตฌํ๊ณผ ์์ฑ์ด ๋ณ๊ฒฝ๋๋๋ผ๋ ์ธ๋ถ์ ๊ฐ์ฒด์๊ฒ ์ํฅ์ ๋ฏธ์ณ์๋ ์๋๋ค.
-
-
๋๋ฉ์ธ ๊ฐ๋ ์ ์ฐธ์กฐํ์.
- ์ฌ์ฉ์๊ฐ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ๋ ๋์ ๋ถ์ผ๋ฅผ ๋๋ฉ์ธ์ด๋ผ๊ณ ํ๋ค.
- ๋๋ฉ์ธ ๋ชจ๋ธ์ด๋ ์ฌ์ฉ์๊ฐ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ๋ ๋์ ์์ญ์ ๊ดํ ์ง์์ ์ ํ์ ์ผ๋ก ๋จ์ํํ๊ณ ์์์ ์ผ๋ก ๊ตฌ์กฐํํ ํํ๋ค.
- ์ด๋ค ๋ฉ์์ง๊ฐ ์์๋ ๊ทธ ๋ฉ์์ง๋ฅผ ์์ ํ ๊ฐ์ฒด๋ ๋๋ฉ์ธ ๊ฐ๋ ์ค์ ๊ฐ์ฅ ์ ์ ํ ๊ฒ์ ์ ํํ๋ ๊ฒ์ด๋ค.
-
์ธํฐํ์ด์ค์ ๊ตฌํ์ ๋ถ๋ฆฌํ๋ผ
- ํด๋์ค๋ฅผ ๋ดค์ ๋ ํด๋์ค๋ฅผ ๋ช ์ธ ๊ด์ ๊ณผ ๊ตฌํ ๊ด์ ์ผ๋ก ๋๋ ๋ณผ์ ์์ด์ผ ํ๋ค๋ ๊ฒ์ด๋ค.