GOF์ ๋์์ธ ํจํด 1์ฅ, ์๋ก ์ ๋๋ฒ์งธ๋ฅผ ์ ๋ฆฌํด๋ด ๋๋ค.
์นดํ๋ก๊ทธ ์กฐ์งํ ํ๊ธฐ
์์ญ์ ๊ธฐ์ค์ผ๋ก
- ์์์ ๋งํ ๋์์ธ ํจํด๋ค์ ์ถ์ํ ์์ค๊ณผ ๋ฐฐ์์ ๊น์ด๊ฐ ๋ค๋ฆ
- ๊ทธ๋ ๊ธฐ์ ๋ชฉ์ ๊ณผ ๋ฒ์๋ฅผ ๊ธฐ์ค์ผ๋ก ์กฐ์งํํจ
- ๋ชฉ์
- ์์ฑ: ๊ฐ์ฒด๋ค์ ์์ฑ๊ณผ์ ์ ๊ด์ฌ
- ๊ตฌ์กฐ: ํด๋์ค๋ ๊ฐ์ฒด์ ํฉ์ฑ์ ๊ดํ ํจํด
- ํ๋: ํด๋์ค๋ ๊ฐ์ฒด๋ค์ ์ํธ์์ฉ ๋ฐฉ๋ฒ๊ณผ ์ฑ ์ ๋ถ์ฐ ๋ฐฉ๋ฒ
- ๋ฒ์
- ํด๋์ค: ํด๋์ค์ ์๋ธํด๋์ค ๊ฐ์ ๊ด๋ จ์ฑ์ ๋ค๋ฃจ๋ ํจํด
- ์ฃผ๋ก ์์
- ์ปดํ์ผ ํ์์ ์ ์ ์ผ๋ก ๊ฒฐ์ ๋จ
- ๊ฐ์ฒด: ๊ฐ์ฒด ๊ด๋ จ์ฑ์ ๋ค๋ฃจ๋ ํจํด
- ๋ฐํ์์ ๋ณ๊ฒฝํ ์ ์์
- ์กฐ๊ธ๋ ๋์ ์ธ ์ฑ๊ฒฉ์ ์ง๋
- ๋๋ถ๋ถ์ ์์์ ์ด์ฉํจ
- ํด๋์ค: ํด๋์ค์ ์๋ธํด๋์ค ๊ฐ์ ๊ด๋ จ์ฑ์ ๋ค๋ฃจ๋ ํจํด
๋ณตํฉ์ ์ผ๋ก ์ฝํ ๊ฒฝ์ฐ ์ด๋ค ์์ผ๋ก ์ดํดํ ์ ์๋ ์กฐ๊ธ๋ ๊ตฌ์ฒด์ ์ธ ๊ตฌ๋ถ์ ๋ํด ์์๋ณด์.
- ์์ฑ ํด๋์ค ํจํด
- ์์ฑ ์ฑ ์์ ์ผ๋ถ๋ฅผ ์๋ธํด๋์ค๊ฐ ๋ด๋น
- ์์ฑ ๊ฐ์ฒด ํจํด
- ์์ฑ ์ฑ ์์ ์ผ๋ถ๋ฅผ ๋ค๋ฅธ ๊ฐ์ฒด์๊ฒ ์์
- ๊ตฌ์กฐ ํด๋์ค ํจํด
- ์์์ ์ด์ฉํด์ ํด๋์ค๋ฅผ ๋ณตํฉํจ
- ๊ตฌ์กฐ ๊ฐ์ฒด ํจํด
- ์์์ ์ด์ฉํด์ ๊ฐ์ฒด๋ฅผ ํฉ์ฑํ๋ ๋ฐฉ๋ฒ์ ์ ์
- ํ๋ ํด๋์ค ํจํด
- ์์์ ์ด์ฉํด์ ์๊ณ ๋ฆฌ์ฆ๊ณผ ์ ์ด ํ๋ฆ์ ๊ธฐ์
- ํ๋ ๊ฐ์ฒด ํจํด
- ํ๋์ ์์ ์ ์ํํ๊ธฐ ์ํด ๊ฐ์ฒด ์งํฉ์ด ์ด๋ป๊ฒ ํ๋ ฅํ๋์ง ๊ธฐ์
ํจํด๊ฐ ์ฐธ์กฐ๊ด๊ณ๋ฅผ ๊ธฐ์ค์ผ๋ก
- ์ด ๊ทธ๋ฆผ์ ์์ง ์ดํดํ ์๋ ์๋ค.
- ๋ค๋ง ์ ๊ทธ๋ฆผ์ ํจํด ๊ฐ์ ์ฐธ์กฐ ๊ด๊ณ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ํ๋ธ ๊ฒ์ด๋ค.
- ๋์ค์ ์ ์ ์๊ฒ ์ง
๋์์ธ ํจํด์ ์ด์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํธ๋ ๋ฐฉ๋ฒ
- ๋์์ธ ํจํด์ ์ฌ์ฉํ๋ฉด ์ด๋ค ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ๊ธฐ๋ฅผ ์งํฅํ๋ ๊ฒ์ผ๊น?
์ ๋นํ ๊ฐ์ฒด ์ฐพ๊ธฐ
๊ธฐ๋ณธ ์ฉ์ด
- ๊ฐ์ฒด: data + procedure
- procedure: method or operation
- ๊ฐ์ฒด๋ ์์ฒญ ํน์ message์ ๋ฐ์ผ๋ฉด ์ฐ์ฐ์ ์ํํ๋ค.
- ์์ฒญ์ ๊ฐ์ฒด๊ฐ ์ฐ์ฐ์ ์คํํ๊ฒ ํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ด๋ค.
- ์ฐ์ฐ์ ๊ฐ์ฒด์ ๋ด๋ถ ๋ฐ์ดํฐ์ ์ํ๋ฅผ ๋ณ๊ฒฝํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ด๋ค.
- ์ด ๋๊ฐ์ ์ ์ฝ์ ์ ์ฉํ ๊ฒ์ ์บก์ํ๋์ด ์๋ค๊ณ ๋งํ๋ค.
๊ฐ์ฒด์งํฅ ์ค๊ณ๊ฐ ์ด๋ ค์ด ์ด์ ์ ๋ฐฉ๋ฒ๋ค
- ๊ฐ์ฒด ์งํฅ ์ค๊ณ์ ์์ด ๊ฐ์ฅ ์ด๋ ค์ด ๋ถ๋ถ์ ์์คํ ์ ๊ตฌ์ฑํ ๊ฐ์ฒด์ ๋ถํ ์ ๊ฒฐ์ ํ๋ ์ผ์ด๋ค.
- ์บก์ํ, ํฌ๊ธฐ, ์ข ์์ฑ, ์ ์ฐ์ฑ, ์ฑ๋ฅ, ์งํ, ์ฌ์ฌ์ฉ์ฑ ๋ฑ์ ๊ณ ๋ คํด์ผ ํ๋ค.
- ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ๋ค์ ๊ณ ๋ คํ๊ธฐ ์ํ ํ๋จ์ ๋ชจ๋ ์ฃผ๊ด์ ์ด๊ธฐ ๋๋ฌธ์ ๋๋์ฑ ์ด๋ ต๋ค.
- ์๋ฅผ ๋ค์ด, ์์คํ ์ ํ๋ ฅ๊ด๊ณ, ์ฑ ์์ฑ์ ์ค์ฌ์ผ๋ก ์ค๊ณํ๊ฑฐ๋, ์ค์ธ๊ณ๋ฅผ ๋ชจ๋ฐฉํ ๋ชจ๋ธ๋ก ๋ง๋ค๊ฑฐ๋ ํ ์ ์๋ค. ํ์ง๋ง ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ์๋ค.
- ๊ฐ์ฒด ์งํฅ ์ค๊ณ๋ ์ค์ธ๊ณ์ ๋์ ๊ด๊ณ๋ฅผ ๊ฐ์ง ๋ชปํ ๋๊ฐ ๋ง๋ค.
- ํํ ์ค์ธ๊ณ๋ฅผ ๋ชจ๋ฐฉํ๋ ๋ฐฉ๋ฒ์ด๋ผ ํ์ง๋ง, ์ ์์ค์ผ๋ก ๊ฐ์ ๋๋ ๋ฐฐ์ด, ๋ฆฌ์คํธ์ ๊ฐ์ ๊ตฌํ์ ์ง์ ์ ์ผ๋ก ์ฐ๊ด๋๋ ๋ ์๋ค๋ก ๋์ด ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
- ์ค์ธ๊ณ๋ฅผ ๊ทธ๋๋ก ๋ฐ์ํ๊ฒ ๋๋ฉด ํ์ฌ์ ์ค์ธ๊ณ๋ ๋ฐ์๊ฐ๋ฅํ๋ ๋ฏธ๋๋ ๋ถ๊ฐ๋ฅํ๋ค.
- ์ด๋ฌํ ์ ์ ๊ธฐ๋ฐ์ผ๋ก ์ฐ๋ฆฌ๋ ์ค๊ณ ๋จ๊ณ ๋์์ ์๋ก์ด ์ถ์ํ๋ ๊ฐ์ฒด๋ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋ค์ด์ผ ํ๋ค.
- ์ด๋ ๊ฒฐ๊ตญ ์ค๊ณ์ ์ ์ฐ์ฑ์ ์ฆ์งํ๊ธฐ ์ํ ์ค์ํ ๋ ธ๋ ฅ์ค ํ๋๋ค.
- ์์ฝํ๋ฉด, ์ค์ธ๊ณ๋ฅผ ๊ทธ๋๋ก ๋ชจ๋ฐฉํ๋ ๋ฐฉ์์ผ๋ก OOP๋ฅผ ์ค๊ณํ๊ธฐ ์ด๋ ต๋ค๋ ๊ฒ์ด๋ค.
- ๊ทธ ๊ณผ์ ์๋ ์ค๊ณ์ ์ ์ฐ์ฑ, ๊ฐ์ฒด์ ํฌ๊ธฐ๋ฑ ๋ค์ํ ๋ณ์ ๋๋ฌธ์ ์๋ก์ด ์ถ์ํ๋ฅผ ๋ง๋ค์ด ๊ด๋ฆฌํ ํ์์ฑ์ด ์๊ธฐ ๋๋ฌธ์ด๋ค.
- ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ OOP๋ฅผ ๋จ์ํ ์ค์ธ๊ณ๋ฅผ ๋ชจ๋ฐฉํ๊ธฐ ์ํ ๋ฐฉ๋ฒ๋ก ์ด๋ผ ์นญํ๋ ๊ฒ์ ์ผ๋ถ๋ง ์ดํดํ๊ณ ์๋๊ฒ์ด๋ผ ์๊ฐํ ์ ์๊ฒ ๋ค.
๊ฐ์ฒด์ ํฌ๊ธฐ ๊ฒฐ์
- ๊ฐ์ฒด์ ๊ท๋ชจ๋ ์ด๋ค ๊ธฐ์ค์ผ๋ก ์ ํ ์ ์์๊น?
- ๋์์ธ ํจํด์์๋ ์ด ๋ฌธ์ ์ ๋ํ ๋ต์ ์ ์ํ๋ค.
- ํผ์ฌ๋: ์๋ธ์์คํ ๊ฐ์ฒด๋ก ํํํ๋ ๋ฐฉ๋ฒ
- ํ๋ผ์ด๊ธ: ๊ท๋ชจ๋ ์์ผ๋ ๊ฐ์๋ ๋ง์ ๊ฐ์ฒด๋ฅผ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ
- ๊ฐ์ฒด๋ฅผ ์์ ๊ท๋ชจ๋ก ๋ถํ ํ๋ ๋ฐฉ๋ฒ ๋ฑ์ด ์๋ค.
๊ฐ์ฒด ์ธํฐํ์ด์ค์ ๋ช ์ธ
- Signiture: ์ฐ์ฐ์ ์ด๋ฆ, ๋งค๊ฐ๋ณ์๋ก ๋ฐ๋ ๊ฐ์ฒด๋ค, ๋ฐํ ๊ฐ
- Interface: ๊ฐ์ฒด๊ฐ ์ ์ํ๋ ์ฐ์ฐ์ ๋ชจ๋ ์๊ทธ๋์ฒ๋ฅผ ๋งํจ
- ์ฆ, ๊ฐ์ฒด๊ฐ ๋ฐ์์ ์ฒ๋ฆฌํ ์ ์๋ ์ฐ์ฐ์ ์งํฉ์ ๋งํจ
- Type: ํน์ ์ธํฐํ์ด์ค๋ฅผ ์ง์นญํ๋ ์ด๋ฆ
- SuperType: ๋ค๋ฅธ ์ธํฐํ์ด์ค๊ฐ ํฌํจํ๋ ์ธํฐํ์ด์ค
- SubType: ๋ค๋ฅธ ์ธํฐํ์ด์ค๋ฅผ ํฌํจํ๋ ์ธํฐํ์ด์ค
- ๋น์ฐํ๊ฒ๋ SuperType์ผ๋ก SubType๋ค์ ๊ด๋ฆฌํ ์ ์์
- SubType์ ๊ตฌํ์ ๋ฐ๋ผ ๋ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ ๋์ฌ ์ ์๋ค.
- ์ฆ, ์ด๋ค ์์ฒญ๊ณผ ๊ทธ ์์ฒญ์ ์ฒ๋ฆฌํ ๊ฐ์ฒด๋ฅผ ๋ฐํ์์ ์ฐ๊ฒฐ์ง๋ ๊ฒ์ ๋์ ๋ฐ์ธ๋ฉ์ด๋ผ ํ๋ค.
- ์ด๋ฌํ ๋์ ๋ฐ์ธ๋ฉ์ ๋์ผํ ์ธํฐํ์ด์ค๋ฅผ ๊ฐ์ง ๋ค๋ฅธ ๊ฐ์ฒด๋ก ๋์ฒดํ ์ ์๋๋ก ํ๋ค.
- ์ด๋ฌํ ์ฑ์ง์ ๋คํ์ฑ์ด๋ผ ํ๋ค.
- ์ด๋ ๊ฐ์ฒด์งํฅ ์์คํ
์ ํต์ฌ ๊ฐ๋
์ด๋ค.
- ์ฌ์ฉ์ ์ ์๋ฅผ ๋จ์ํ
- ๊ฐ์ฒด๊ฐ ๊ฒฐํฉ๋๋ฅผ ์์ฐ
- ๋ฐํ์์ ๊ด๋ จ์ฑ์ ๋ค์ํ๊ฒ ๋ง๋ค์ด์ค
- ๋์์ธ ํจํด์ ์ธํฐํ์ด์ค์ ์ ์ํด์ผ ํ๋ ์์, ๋ฐ์ดํฐ ๋ฑ์ ๊ธฐ๋ฐ์ผ๋ก ์ธํฐํ์ด์ค ์์ฑ์ ๋์์ค๋ค.
- ๋ํ ์ธํฐํ์ด์ค๊ฐ์ ๊ด๋ จ์ฑ๋ ์ ์ํ๋ค.
๊ฐ์ฒด ๊ตฌํ ๋ช ์ธํ๊ธฐ
- ๊ทธ๋ผ ๊ฐ์ฒด๋ ์ด๋ป๊ฒ ์ ์ํด์ผ ํ ๊น?
- ๊ทธ ๊ตฌํ์ class์์ ์ํํ๋ค.
- ํด๋์ค ์ด๋ฆ
- Line
- ์ฐ์ฐ ์ด๋ฆ
- Line
- ๋ฐ์ดํฐ
- ์ผ์ชฝ ๊ฐ์ฒด๊ฐ ์ค๋ฅธ์ชฝ ๊ฐ์ฒด๋ฅผ ์์ฑํจ
- ์ ์ ์ฑ์ด ์ผ๊ฐํ
- ์์ ๊ด๊ณ ํํ
- ์ค์ ๋น ์ผ๊ฐํ
- ์ถ์ ํด๋์ค: ๋ชจ๋ ์๋ธ ํด๋์ค ์ฌ์ด์ ๊ณตํต๋๋ ์ธํฐํ์ด์ค๋ฅผ ์ ์
- ์ ์ํ ๋ชจ๋ ์ฐ์ฐ์ด๋ ์ผ๋ถ ์ฐ์ฐ์ ๊ตฌํ์ ์๋ธํด๋์ค๋ก ๋๊น
- ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ถ์ ํด๋์ค๋ ์ธ์คํด์คํ ํ ์ ์๋ค. ๋ชจ๋ ์ฐ์ฐ์ด ์ ์๋์ง ์์๊ธฐ ๋๋ฌธ
- ์ด๋ ๊ฒ ์ ์๋งํ๊ณ ๊ตฌํ์ ํ์ง ์์ ์ฐ์ฐ์ ์ถ์ ์ฐ์ฐ์ด๋ผ ํ๋ค.
- ๊ทธ๋ฆฌ๊ณ ์ด๋ฐ ์ถ์ ํด๋์ค๊ฐ ์๋ ํด๋์ค๋ ๊ตฌ์ฒด ํด๋์ค๋ผ ํ๋ค.
- ์ถ์ ํด๋์ค, ์ถ์ ์ฐ์ฐ์ ์ด๋ฆ์ italic์ผ๋ก ํ๊ธฐํ๋ค.
- Mixed In ํด๋์ค: ๋ค๋ฅธ ํด๋์ค๋ค์๊ฒ ์ ํ์ ์ธ ์ธํฐํ์ด์ค ํน์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ค๋ ๋ชฉ์ ์ ๊ฐ์ง ํด๋์ค
- ๋ค์ค ์์์ ์ฌ์ฉํด์ผ๋ง ํ๋ค.
- ์ผ์ชฝ์ ๊ตฌ์ฒด ํด๋์ค๋ฅผ ์์ํ๊ณ , ์ค๋ฅธ์ชฝ์ ์ถ์ ํด๋์ค๋ฅผ ์์๋ฐ์๋ค.
- ๊ทธ๋ ๊ธฐ ๋๋ฌธ์
MixinOperation()
์ ๊ฒฝ์ฐ์๋ ํ์์ ์ผ๋ก ๊ตฌํํด์ผ ํ๋ค. - ํ์ง๋ง ๋ค์ค ์์์ ์ฃฝ์์ ๋ค์ด์๋ชฌ๋์ ๊ฐ์ ๋ฌธ์ ๊ฐ ์๊ธฐ ๋๋ฌธ์, ์์ฆ์ธ์ด์์๋ ์ง์ํ์ง ์๋๋ค.
ํด๋์ค ์์ ๋ ์ธํฐํ์ด์ค ์์
- ํด๋์ค ์์
- ์ด๋ฏธ ์ ์๋ ๊ฐ์ฒด์ ๊ตฌํ์ ๋ฐํ์ผ๋ก ํจ
- ์ธํฐํ์ด์ค ์์
- ํน์ ๊ฐ์ฒด๊ฐ ๋ค๋ฅธ ๊ฐ์ฒด ๋์ ์ ์ฌ์ฉ๋ ์ ์๋ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ ๋ง๋ค์ด์ง
๊ตฌํ์ ๋ฐ๋ฅด์ง ์๊ณ , ์ธํฐํ์ด์ค์ ๋ฐ๋ฅด๋ ํ๋ก๊ทธ๋๋ฐ
๊ตฌํ์ด ์๋ ์ธํฐํ์ด์ค์ ๋ฐ๋ผ ํ๋ก๊ทธ๋๋ฐํ์ธ์.
- ํด๋์ค ์์์ ๋ถ๋ชจ ํด๋์ค์ ์ ์ํ ๊ตฌํ์ ์ฌ์ฌ์ฉํ์ฌ ํ์ฅํ๋ ค๋ ๋ฉ์ปค๋์ฆ์ด๋ค.
- ์ฆ, ๊ตฌํ์ ์ฌ์ฌ์ฉ์ ์ผ๋์ ๋์๋ค๊ณ ํ ์ ์๋ค.
- ํ์ง๋ง, ์ด ๋ฟ๋ง ์๋๋ผ ๋คํ์ฑ์ ๋์ด๋ผ ์ ์์ด์ผ ํ๋ค.
- ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ด๋ค ๋ณ์๋ฅผ ๊ตฌ์ฒด ํด๋์ค์ ์ธ์คํด์ค๋ก ์ ์ธํ๋ ์ผ์ ํผํด์ผ ํ๋ค.
- ๋ฌผ๋ก ์์ ํด๋์ค๋ฅผ ์์ํ ํ์ ํด๋์ค์ ๊ฒฝ์ฐ ์์ ํด๋์ค๋ก ์ ์ธํ์ ๋ ๋คํ์ฑ์ผ๋ก ๋์ํ๊ธฐ๋ ํ๋ค.
- ํ์ง๋ง ์ธํฐํ์ด์ค ๊ฐ๋ ์ผ๋ก ๋ค๋ฃจ๊ฒ ๋๋ค๋ฉด..
- ์ธํฐํ์ด์ค๋ง ๋ง์กฑํ๋ฉด ์ฌ์ฉํ๋ฉด ๋๋ค. ๊ตฌ์ฒด ํ์ ์ ์ ํ์๊ฐ ์๋ค.
์ฌ์ฌ์ฉ์ ์คํ ๊ฐ๋ฅ ํ ๊ฒ์ผ๋ก
๊ฐ์ฒด ํฉ์ฑ์ ์ฌ์ฉํ์ธ์.
์์ ๋ ํฉ์ฑ
- ๊ธฐ๋ฅ์ ์ฌ์ฌ์ฉ์ ์ํด ๊ตฌ์ฌํ๋ ๋ํ์ ์ธ ๋ฐฉ๋ฒ์ ํด๋์ค ์์, ๊ฐ์ฒด ํฉ์ฑ์ด๋ค.
- Subclassing: ํด๋์ค ์์ - White box reuse
- Composition: ๊ฐ์ฒด ํฉ์ฑ - Black box reuse
ํด๋์ค ์์
- ์ฅ์
- ์ปดํ์ผ ์์ ์ ์ ์๋จ
- ๋ถ๋ชจ ๊ตฌํ์ ์ฝ๊ฒ ์์ ๊ฐ๋ฅํจ
- ๋๋ ์ผ๋ถ๋ง ์ฌ์ ์ํจ
- ๋จ์
- ๋ฐํ์ ์์ ํด๋์ค ๊ตฌํ ๋ณ๊ฒฝ ๋ถ๊ฐ (์ปดํ์ผ ์์ ์ ๊ฒฐ์ ๋๋๊น)
- ๋ถ๋ชจ ํด๋์ค์ ๊ตฌํ์ ์ข
์์ ์
- ๋ถ๋ชจ ํด๋์ค์ ๊ตฌํ์ด ๋ค ๋๋ฌ๋ ์บก์ํ๊ฐ ๊นจ์ง๋ค๋ ์๊ฒฌ๋ ์์
- ์ด๋ฐ ๊ตฌํ์ ์ข
์์ฑ์ ์๋ธ ํด๋์ค ์ฌ์ฌ์ฉ์ ๋ฌธ์ ๊ฐ ์๊น
- ์ ๋ฌธ์ ์ ๋ง์ง ์๋๋ค๋ฉด, ๋ถ๋ชจ ํด๋์ค๋ฅผ ์ฌ์์ฑํด์ผ ํจ
- ์์ ๋ฌธ์ ์์ ๋ฒ์ด๋๊ธฐ ์ํด์๋ ์ถ์ ํด๋์ค์์๋ง ์์๋ฐ๋ ๊ฒ์ด ์๊ฒ ๋ค.
- ๊ทธ๋ฌ๋ฉด ์๋ธ ํด๋์ค์์๋ง ๊ตฌํ์ ๋ฐ๊พธ๋ฉด ๋๋ค.
๊ฐ์ฒด ํฉ์ฑ
- ์ฅ์
- ์ธํฐ ํ์ด์ค๋ง ๋ฐ๋ผ๋ณด๊ฒ ํ ์ ์์ด ์บก์ํ๋ฅผ ์ ์งํ ์ ์๋ค.
- ๋์ฒด ์ญ์ ๊ฐ๋ฅํ๋ค.
- ๊ฐ์ฒด๋ ์ธํฐํ์ด์ค์ ๋ง์ถฐ ๊ตฌํ๋์ด ๊ตฌํ์ฌ์ด ์ข ์์ฑ์ด ์ค์ด๋ ๋ค.
- ๋จ์
- ํด๋์ค์ ์๊ฐ ์ ์ด์ง๊ณ ๊ฐ์ฒด์ ์๋ ๋ง์์ง
์์
- ๋ฐํ์์ ํ๋์ ๋ณตํฉ์ ๊ฐ๋ฅํ๊ฒ ํ๋ค.
- ์ค์ ํ์ดํ๋ Window๊ฐ rectangle instance์ ๋ํ ์ฐธ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์์์ ๋ณด์ฌ์ค๋ค.
area()
์ฐ์ฐ์ ์์ํ์ฌ ์ฒ๋ฆฌํ๋ค.- ๋จ์ ์, ๊ตฌ์กฐ๊ฐ ์ดํดํ๊ธฐ ์ด๋ ค์ธ ์ ์๋ค๋ ์ ์ด๋ค.
- ์ด๋ ๋ฐํ์ ๊ฐ์ฒด์ ๋ฐ๋ผ ๊ทธ ๊ฒฐ๊ณผ๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ด๋ค.
์์ ๋ ๋งค๊ฐ๋ณ์ํ๋ ํ์
- Generic์ ๋งํ๋ค.
- ๋งค๊ฐ๋ณ์๋ก ํ์ ์ ์ ์ํ์ง ์๋๋ค.
๋ฐํ์ ๋ฐ ์ปดํ์ผ ํ์์ ๊ตฌ์กฐ๋ฅผ ๊ด๊ณ์ง๊ธฐ
- ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋จ์ ์คํ๊ตฌ์กฐ๋ ์ฝ๋ ๊ตฌ์กฐ์ ์ผ์นํ์ง ์๋ ๊ฒฝ์ฐ๊ฐ ์๋ค.
- ์ฝ๋ ๊ตฌ์กฐ๋ ์ปดํ์ผ ์์ ์ ํ์ ๋์ง๋ง, ๋ฐํ์์์๋ ๊ต๋ฅํ๋ ๊ฐ์ฒด๋ค์ ์ํด ๊ตฌ์กฐ๊ฐ ๋ฌ๋ผ์ง ์ ์๋ค.
- ๊ฐ์ฒด ๊ด๊ณ์์๋ ์งํฉ๊ณผ ์ธ์ง๋ผ๋ ๊ฒ์ด ์๋ค.
- ์งํฉ: ํ ๊ฐ์ฒด๊ฐ ๋ค๋ฅธ ๊ฐ์ฒด๋ฅผ ์์ ํ๊ฑฐ๋ ์ฑ ์์ ์ง
- ์ธ์ง: ํ ๊ฐ์ฒด๊ฐ ๋ค๋ฅธ ๊ฐ์ฒด์ ๋ํด ์๊ณ ์์
- ์ผ์ชฝ์ด ์ค๋ฅธ์ชฝ์ ํฌํจ, ์ค๋ฅธ์ชฝ์ ์ผ์ชฝ์ ์ธ์ง
- ์ด ๋๊ฐ๋ ์ฌ์ค ๊ตฌํ์์ผ๋ก ๋ณด์์ ๋ ๊ตฌ๋ถํ๊ธฐ๊ฐ ๊น๋ค๋ก์ธ ์ ์๋ค. ๊ฒฐ๊ตญ ์ํธ์ฐธ์กฐ๋๊น
- ๊ทธ๋์ ์ด๋ฌํ ๊ตฌ์กฐ๋ ์ฌ์ฉ ๋ชฉ์ ์ ๋ฐ๋ผ ๊ฒฐ์ ํด์ผ ํ๋ค.
- ์งํฉ์ ๊ฒฝ์ฐ, ๊ฐ๋ ฅํ ์์์ฑ์ ๋๋ค. ์ฆ ํ์ ์์๊ฐ ๋ฌด์กฐ๊ฑด์ ์ผ๋ก ํฌํจ๋๋ค๋ ์๋ฏธ๋ค.
- ์ธ์ง์ ๊ฒฝ์ฐ ๋ณ๊ฒฝ์ด ์ฆ๋ค. ์ข๋ ๋์ ์ด๋ค.
๋ณํ์ ๋๋นํ ์ค๊ณ
- ๋ณํ์ ๋๋นํ์ฌ ์ค๊ณํ๊ธฐ ์ํด์๋ ์์ผ๋ก ์ผ์ด๋ ๋ณํ์ ๋ํด ์๊ฐํด๋ณด์์ผ ํ๋ค.
- ๋ค์๊ณผ ๊ฐ์ ์ํฉ์์ ๋์์ธ ํจํด์ ํตํด ์ฌ์ค๊ณ๊ฐ ํ์ํ๊ฒ ๋๋ค.
- ๊ฐ์ฒด ์์ฑ
- ํด๋์ค ์ด๋ฆ์ ๋ช ์ํด์ ์์ฑํ๋ฉด ๋์ฒด๊ฐ ๋ถ๊ฐ๋ฅํด์ง๋ค.
- ํน์ ๊ตฌํ์ ์ข ์์ ์ด๊ฒ ๋๋ค.
- ์์ผ๋ก ๊ตฌํ์ ์ฝ๋งค์ธ๋ค.
- ๋์์ธ ํจํด: ์ถ์ ํฉํ ๋ฆฌ, ํฉํ ๋ฆฌ ๋ฉ์๋, ์ํ
- ํน์ ์ฐ์ฐ์ ๋ํ ์์กด์ฑ
- ํน์ ํ ์ฐ์ฐ์ ์ฌ์ฉํ๋ฉด ์์ฒญ์ ๋ง์กฑํ๋ ํ๊ฐ์ง ๋ฐฉ๋ฒ์๋ง ๋งค์ด๊ฒ ๋๋ค.
- ๋์์ธ ํจํด: ์ฑ ์ ์ฐ์, ๋ช ๋ น
- ํ๋์จ์ด์ ์ํํธํค์ด ํ๋ซํผ์ ๋ํ ์์กด์ฑ
- ํน์ ํ๋ซํผ์ ์ข ์๋ ์ํํธ์จ์ด๋ ๋ค๋ฅธ ํ๋ซํผ์ ์ด์ํ๊ธฐ ์ด๋ ต๋ค.
- ๋์์ธ ํจํด: ์ถ์ ํฉํ ๋ฆฌ, ๊ฐ๊ต
- ๊ฐ์ฒด์ ํํ์ด๋ ๊ตฌํ์ ๋ํ ์์กด์ฑ
- ์ฌ์ฉ์์๊ฒ ๊ฐ์ฒด ํํ ๋ฐฉ๋ฒ, ์ ์ฅ ๋ฐฉ๋ฒ, ๊ตฌํ ๋ฐฉ๋ฒ ๋ฑ์ ์ ๋ณด๋ฅผ ๊ฐ์ถ์ด ๋ณํ์ ์ ๋๋ฅผ ์ ์ดํ๋ค.
- ๋์์ธ ํจํด: ์ถ์ ํฉํ ๋ฆฌ, ๊ฐ๊ต, ๋ฉ๋ฉํ , ํ๋ก์
- ์๊ณ ๋ฆฌ์ฆ ์์กด์ฑ
- ์๊ณ ๋ฆฌ์ฆ ์์ฒด๋ฅผ ํ์ฅ, ๋์ฒด, ์ต์ ํํ ์ ์๋ ๊ฒ์ ๋์ํด์ผ ํ๋ค.
- ๋์์ธ ํจํด: ๋น๋, ๋ฐ๋ณต์, ์ ๋ต, ํ ํ๋ฆฟ ๋ฉ์๋, ๋ฐฉ๋ฌธ์
- ๋์ ๊ฒฐํฉ๋
- ๋์ ๊ฒฐํฉ๋๋ฅผ ๊ฐ์ง๋ฉด ๋ ๋ฆฝ์ ์ผ๋ก ์ฌ์ฌ์ฉํ๊ธฐ ์ด๋ ต๋ค.
- ํ๋์ ๊ฑฐ๋ํ ์์คํ ์ด ๋์ด๋ฒ๋ฆฐ๋ค.
- ๋์์ธ ํจํด: ์ถ์ ํฉํ ๋ฆฌ, ๊ฐ๊ต, ์ฑ ์ ์ฐ์, ๋ช ๋ น, ํผ์ฌ๋, ์ค์ฌ์, ๊ฐ์์
- ์๋ธํด๋์ฑ์ ํตํ ๊ธฐ๋ฅ ํ์ฅ
- ๋จ์ํ ํ์ฅ๋ง์ ์ด์ ๋ก ์๋ก์ด ์๋ธํด๋์ค๋ฅผ ๋ง๋ค๋ฉด ํด๋์ค ์๋ฅผ ์์ฒญ๋๊ฒ ์ฆ๊ฐ์ํฌ ์ ์๋ค.
- ๋, ์๋ธ ํด๋์ฑํ๋ ํด๋์ค๋ง๋ค ๋งค๋ฒ ํด์ผํ๋ ์ด๊ธฐํ, ์๋ฉธ์ ๋ํ ๊ตฌํ ์ค๋ฒํค๋๋ ์๋ค.
- ๊ฐ์ฒด ํฉ์ฑ๊ณผ ์์์ ์ฌ์ฉํ์ฌ ์ ์ฐํ๊ฒ ์ฒ๋ฆฌํ์.
- ๋ค๋ง ๊ฐ์ฒด ํฉ์ฑ์ ๋ง์ด ์ฌ์ฉํ๋ฉด ์ดํดํ๊ธฐ๊ฐ ์ด๋ ค์์ง๋ค.
- ๋์์ธ ํจํด: ๊ฐ๊ต, ์ฑ ์ ์ฐ์, ์ฅ์์, ๊ฐ์์, ์ ๋ต
- ํด๋์ค ๋ณ๊ฒฝ์ด ํธํ์ง ๋ชปํ ์
- ๋์์ธ ํจํด: ์ ์์, ์ฅ์์, ๋ฐฉ๋ฌธ์
๋์์ธ ํจํด์ ๊ณ ๋ฅด๋ ๋ฐฉ๋ฒ
- ํจํด์ด ์ด๋ป๊ฒ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋์ง ํ์ ํ์.
- ํจํด์ ์๋๋ฅผ ๋ณด์.
- ํจํด๋ค ๊ฐ์ ๊ด๋ จ์ฑ์ ํ์ ํ์.
- ๋น์ทํ ๋ชฉ์ ์ ํจํด๋ค์ ๋ชจ์์ ๊ณต๋ถํฉ์๋ค.
- ์ฌ์ค๊ณ์ ์์ธ์ ํ์ ํ์.
- ์ค๊ณ์์ ๊ฐ๋ณ์ฑ์ ๊ฐ์ ธ์ผ ํ๋ ๋ถ๋ถ์ด ๋ฌด์์ธ์ง ํ์ ํ์.
๋์์ธ ํจํด ์ฌ์ฉ ๋ฐฉ๋ฒ
- ์ ์ฒด๋ฅผ ํ๋ ๊ธฐ๋ถ์ผ๋ก ํ๋ฒ ์ฝ๋๋ค.
- ๋ค์ ์ฒ์์ผ๋ก ๊ฐ์ ๊ตฌ์กฐ, ์ฐธ์ฌ์, ํ๋ ฅ ๋ฐฉ๋ฒ์ ๋ค์ ๊ณต๋ถํ๋ค.
- ํ์คํ ์ดํด๋ฅผ ์ํด ์์ ์ฝ๋๋ฅผ ๋ณธ๋ค.
- ์ค์ ํ๋ก์ ํธ์์ ์ฌ์ฉํ ์ฐธ์ฌ์ ์ด๋ฆ์ ์ ํ๋ค.
- ํด๋์ค๋ฅผ ์ ์ํ๋ค.
- ํจํด์ ์ ์ํ ์ฐ์ฐ์ ๋ํด ์ด๋ฆ์ ์ ์ํ๋ค.
- ์ฐ์ฐ์ ๊ตฌํํ๋ค.