์ฌ์ค์ ๋ง์๋๋ฆฌ์๋ฉด ์ ๋ ์ด ๊ธ์ ์ฒ์๋ถํฐ ๊ธฐํํ ๊ฒ์ ์๋๋๋ค. ๋๋ ์ฌ๊ธฐ์ ๋
ผ์ํ๊ณ ์ถ์ ๋ฌธ์ ๋ฅผ ์ธ๊ธํ ๊ฐ์น์กฐ์ฐจ ์๋ ์ฌ์ํ ๋ฌธ์ ๋ก ์๊ฐํ์ต๋๋ค. ํ์ง๋ง ์ด ์ฌ์ดํธ์ ๊ธ์ ์ฐ๋ ๊ณผ์ ์์ ์ ๋ ํ ํฌ๋ผ์์ ๋ค์ค ์์์ ๋ํ ๋
ผ์๋ฅผ ์ ๊ธฐํ์ต๋๋ค. ๊ทธ ๊ฒฐ๊ณผ, ๋๋ถ๋ถ์ ๊ฐ๋ฐ์๋ค์ ์์์ ๋ํด ๋งค์ฐ ๋ง์ฐํ๊ฒ ์ดํดํ๊ณ ์๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ๋ฐ๋ผ์ ๊ทธ๋ ๋ง์ ์ค์๋ฅผ ์ ์ง๋ฆ
๋๋ค. ์์์ OOP์ ๊ฐ์ฅ ์ค์ํ ๊ธฐ๋ฅ ์ค ํ๋์ด๊ธฐ ๋๋ฌธ์(๊ฐ์ฅ ์ค์ํ์ง๋ ์๋๋ผ๋!) ์ด ํ์์ ๋ํด ๋ณ๋์ ๊ธฐ์ฌ๋ฅผ ์ฐ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. * * * ๋จผ์ ๊ฐ์ฒด์ ํด๋์ค๋ผ๋ ๋ ๊ฐ์ง ๊ฐ๋
์ ๊ตฌ๋ณํ๊ณ ์ถ์ต๋๋ค. ์ด๋ฌํ ๊ฐ๋
์ ๋์์์ด ํผ๋์ค๋ฌ์์ง๋๋ค. ํํธ, ์ด๋ค์ OOP์ ํต์ฌ์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์๊ฐ์๋ ๊ทธ๋ค ์ฌ์ด์ ์ฐจ์ด์ ์ ์๋ ๊ฒ์ด ํ์ํฉ๋๋ค. ๊ทธ๋์, ๋ฌผ์ฒด. ๊ธฐ๋ณธ์ ์ผ๋ก ๊ทธ๊ฒ์ ๋ฌด์์ด๋ ๋ฉ๋๋ค. ์ฌ๊ธฐ ํ๋ธ๊ฐ ์์ต๋๋ค. ๋๋ฌด, ํ๋์. ๊ฐ์ฅ์๋ฆฌ์ ๊ธธ์ด๋ 5cm์ด๋ฉฐ ์ด๊ฒ์ ๋ฌผ์ฒด์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ํผ๋ผ๋ฏธ๋๋ ์์ด์. ํ๋ผ์คํฑ, ๋นจ๊ฐ์. ๊ฐ๋น๋ผ 10cm. ์ด๊ฒ๋ ๊ฐ์ฒด์
๋๋ค. ๊ทธ๋ค์ ๊ณตํต์ ์ด ๋ฌด์์
๋๊น? ๋ค๋ฅธ ํฌ๊ธฐ. ๋ค๋ฅธ ๋ชจ์. ๋ค๋ฅธ ์ฌ๋ฃ. ๊ทธ๋ฌ๋ ๊ณตํต์ ์ด ์์ต๋๋ค. ์ฐ์ , ์ ์ก๋ฉด์ฒด์ ํผ๋ผ๋ฏธ๋๋ ๋ชจ๋ ์ ๋ค๋ฉด์ฒด์ด๋ค. ์ ๊ฒ๋ค. ๊ผญ์ง์ ์์ ๋ฉด ์์ ํฉ์ด ๋ชจ์๋ฆฌ ์๋ณด๋ค 2๊ฐ ๋ ๋ง์ต๋๋ค. ๋ ๋์๊ฐ. ๋ ๋ชจ์ ๋ชจ๋ ๋ฉด, ๋ชจ์๋ฆฌ ๋ฐ ๊ผญ์ง์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ ์์น ๋ชจ๋ ๊ฐ๋น๋ผ ํฌ๊ธฐ์ ๊ฐ์ ํน์ง์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ ๋ชจ์ ๋ชจ๋ ํ์ ํ ์ ์์ต๋๋ค. ๋ ๊ทธ๋ฆผ ๋ชจ๋ ๊ทธ๋ฆด ์ ์์ต๋๋ค. ๋ง์ง๋ง ๋ ์์ฑ์ ์ด๋ฏธ ๋์์
๋๋ค. ๋ฑ๋ฑ. ํ๋ก๊ทธ๋๋ฐ ์ค์ต์ ํตํด ์ด์ข
๊ฐ์ฒด๋ณด๋ค ๋์ข
๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ํจ์ฌ ์ฝ๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ์ธ๋ฌผ๋ค ์ฌ์ด์๋ ์ฌ์ ํ ๊ณตํต์ ์ด ์๊ธฐ ๋๋ฌธ์ ์ด๋ป๊ฒ๋ ์ด ๊ณตํต์ ์ ๋ถ๊ฐ์ํค๊ณ ์ถ์ ์๊ตฌ๊ฐ ์์ต๋๋ค. ์ฌ๊ธฐ์ ํด๋์ค ๊ฐ๋
์ด ๋ฑ์ฅํฉ๋๋ค. ๊ทธ๋์ ์ ์.
ํด๋์ค๋ ๊ฐ์ฒด ๊ทธ๋ฃน์ ๊ณตํต ์์ฑ์ ๋ํ ์ค๋ช
์
๋๋ค. ์ด๋ฌํ ์์ฑ์ ๊ฐ์ฒด์ ํน์ฑ(ํฌ๊ธฐ, ๋ฌด๊ฒ, ์์ ๋ฑ)์ผ ์๋ ์๊ณ ๋์, ์ญํ ๋ฑ์ผ ์๋ ์์ต๋๋ค.
๋
ผํ. "all"(๋ชจ๋ ์์ฑ์ ๋ํ ์ค๋ช
)์ด๋ผ๋ ๋จ์ด๋ ์ฌ์ฉ๋์ง ์์์ต๋๋ค. ์ด๋ ๋ชจ๋ ๊ฐ์ฒด๊ฐ ์ฌ๋ฌ ๋ค๋ฅธ ํด๋์ค์ ์ํ ์ ์์์ ์๋ฏธํฉ๋๋ค.
๊ธฐํํ์ ๋ชจ์์ ๊ธฐ๋ณธ์ผ๋ก ๋์ผํ ์๋ฅผ ๋ค์ด๋ณด๊ฒ ์ต๋๋ค. ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ค๋ช
์
์ ๋ค๋ฉด์ฒด ์
๋๋ค . ๋ชจ์๋ฆฌ ํฌ๊ธฐ, ๋ฉด ๋ฐ ๊ผญ์ง์ ์์ ๊ด๊ณ์์ด. ์ฐ๋ฆฌ๊ฐ ์๋ ์ ์ผํ ๊ฒ์ ์ด ๋ํ์ ๊ผญ์ง์ , ๋ชจ์๋ฆฌ, ๋ฉด์ด ์๊ณ ๋ชจ์๋ฆฌ์ ๊ธธ์ด๊ฐ ๋์ผํ๋ค๋ ๊ฒ์
๋๋ค.
๋ ๋์๊ฐ. ์ค๋ช
์ ์ข ๋ ๊ตฌ์ฒด์ ์ผ๋ก ๋ง๋ค ์ ์์ต๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ด ๋ค๋ฉด์ฒด๋ฅผ ๊ทธ๋ฆฌ๊ณ ์ถ๋ค๊ณ ๊ฐ์ ํด ๋ด
์๋ค .
๊ทธ๋ ค์ง ์ ๋ค๋ฉด์ฒด ์ ๊ฐ์ ๊ฐ๋
์ ์๊ฐํ๊ฒ ์ต๋๋ค . ๊ทธ๋ฆผ์ ๊ทธ๋ฆฌ๋ ค๋ฉด ๋ฌด์์ด ํ์ํฉ๋๊น? ํน์ ๊ผญ์ง์ ์ขํ์ ์์กดํ์ง ์๋ ์ผ๋ฐ์ ์ธ ๊ทธ๋ฆฌ๊ธฐ ๋ฐฉ๋ฒ์ ๋ํ ์ค๋ช
์
๋๋ค. ์๋ง๋ ๋ฌผ์ฒด์ ์์์ผ ๊ฒ์
๋๋ค.
์ด์ Cube ๋ฐ
Tetrahedron ํด๋์ค๋ฅผ ์๊ฐํ๊ฒ ์ต๋๋ค . ์ด ํด๋์ค์ ์ํ๋ ๊ฐ์ฒด๋ ํ์คํ ์ ๋ค๋ฉด์ฒด์
๋๋ค. ์ ์ผํ ์ฐจ์ด์ ์ ๊ฐ ์ ํด๋์ค์ ๋ํด ๊ผญ์ง์ , ๋ชจ์๋ฆฌ ๋ฐ ๋ฉด์ ์๊ฐ ์ด๋ฏธ ์๊ฒฉํ๊ฒ ๊ณ ์ ๋์ด ์๋ค๋ ๊ฒ์
๋๋ค. ๋ํ ํน์ ๋ํ์ ์ ํ์ ์๋ฉด ๊ทธ๋ฆฌ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ค๋ช
์ ์ ๊ณตํ ์ ์์ต๋๋ค. ์ด๋
Cube ๋๋
Tetrahedron ํด๋์ค์ ๋ชจ๋ ๊ฐ์ฒด๊ฐ ๊ทธ๋ ค์ง
์ ๋ค๋ฉด์ฒด ํด๋์ค ์ ๊ฐ์ฒด์ด๊ธฐ๋ ํจ์ ์๋ฏธํฉ๋๋ค . ํด๋์ค์ ๊ณ์ธต ๊ตฌ์กฐ๊ฐ ์์ต๋๋ค. ์ด ๊ณ์ธต ๊ตฌ์กฐ์์๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ค๋ช
๋ถํฐ ๊ฐ์ฅ ๊ตฌ์ฒด์ ์ธ ์ค๋ช
๊น์ง ๋ด๋ ค๊ฐ๋๋ค. ๋ชจ๋ ํด๋์ค์ ๊ฐ์ฒด๋ ๊ณ์ธต ๊ตฌ์กฐ์ ๋ณด๋ค ์ผ๋ฐ์ ์ธ ํด๋์ค์ ๋ํ ์ค๋ช
์๋ ์ ํฉํฉ๋๋ค. ์ด ํด๋์ค ๊ด๊ณ๋ฅผ
์์ ์ด๋ผ๊ณ ํฉ๋๋ค . ๊ฐ ํ์ ํด๋์ค๋ ์์ ํด๋์ค์ ๋ชจ๋ ์์ฑ, ๋ณด๋ค ์ผ๋ฐ์ ์ธ ์์ฑ์ ์์ํ๊ณ (์๋ง๋) ์ด๋ฌํ ์์ฑ์ ์์ ์ ์ผ๋ถ ์์ฑ์ ์ถ๊ฐํฉ๋๋ค. ๋๋ ์์ ํด๋์ค์ ์ผ๋ถ ์์ฑ์ ์ฌ์ ์ํฉ๋๋ค. ์ฌ๊ธฐ์์๋ ๊ฐ์ฒด์งํฅ ๋์์ธ์ ๊ดํ Gradi Bucha์ ๊ณ ์ ์ฑ
์ ์ธ์ฉํ๊ณ ์ถ์ต๋๋ค.
๋ฐ๋ผ์ ์์์ ํ์ ํด๋์ค๊ฐ ํ๋ ์ด์์ ์์ ํด๋์ค์์ ์์๋๋ ํด๋์ค ๊ฐ์ "is a" ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ์ ์ํฉ๋๋ค. ์ด๊ฒ์ ์ค์ ๋ก ์ ์ ์ ๋ํ ๋ฆฌํธ๋จธ์ค ํ
์คํธ์
๋๋ค. ํด๋์ค A์ B๊ฐ ์ฃผ์ด์ก์ ๋ A๊ฐ B์ ์ข
๋ฅ๊ฐ "์๋" ๊ฒฝ์ฐ A๋ B์ ํ์ ํด๋์ค๊ฐ ๋์ด์๋ ์ ๋ฉ๋๋ค.
๋ฒ์ญํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ฐ๋ผ์ ์์์ ํ์ ํด๋์ค๊ฐ ํ๋ ์ด์์ ์์ ํด๋์ค์์ ์์๋๋ ํด๋์ค ๊ฐ์ "is" ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ์ ์ํฉ๋๋ค. ์ฌ์ค ์ด๊ฒ์ ์์์ ์ ์ํ๋ ํ
์คํธ(๋ฌธ์ ๊ทธ๋๋ก ๋ฆฌํธ๋จธ์ค ํ
์คํธ, ๋ด ๋
ธํธ)์
๋๋ค. ํด๋์ค A์ B๊ฐ ์๊ณ ํด๋์ค A๊ฐ ํด๋์ค B์ ๋ณํ์ด "์๋" ๊ฒฝ์ฐ A๋ B์ ํ์ ํด๋์ค๊ฐ ์๋์ด์ผ ํฉ๋๋ค.
์ฌ๊ธฐ๊น์ง ์ฝ์ผ์ ๋ถ๋ค์ ์๋ง๋ ์ด๋ฆฌ๋ฅ์ ํ์ฌ ๊ด์๋์ด๋ฅผ ์๊ฐ๋ฝ์ผ๋ก ๋น๋น ๋๋ฆฌ์ค ๊ฒ์
๋๋ค. ์ฒซ ๋ฒ์งธ ์๊ฐ์ ์ด๊ฒ์ด ์ฌ์ํ ์ผ์ด๋ผ๋ ๊ฒ์
๋๋ค! ์ด๊ฒ์ ์ฌ์ค์ด๋ค. ํ์ง๋ง ๋ด๊ฐ ๋ณธ ๋ฏธ์น ์์ ๊ณ์ธต์ด ์ผ๋ง๋ ๋ง์์ง ์๋ค๋ฉด! ์ ๊ฐ ๋งจ ์ฒ์์ ์ธ๊ธํ ํ ๋ก ์์ ์ฐธ๊ฐ์ ์ค ํ ๋ช
์ด ํฑํฌ๋ฅผ ๊ธฐ๊ด์ด์ผ๋ก๋ถํฐ ๋ฌผ๋ ค๋ฐ์์ต๋๋ค!!! ํฑํฌ์ ๊ธฐ๊ด์ด์ด ์๋ค๋ ๋จ์ํ ์ด์ ๋๋ฌธ์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ๊ฐ์ฅ ํํ ์ค์์
๋๋ค. ์์์ ํ ๊ฐ์ฒด๋ฅผ ๋ค๋ฅธ ๊ฐ์ฒด ๋ด์ ํฌํจํ๋ ์ง๊ณ์ ํผ๋๋ฉ๋๋ค. ํฑํฌ๋ ๊ธฐ๊ด์ด์ด ์๋๋ฉฐ ๊ธฐ๊ด์ด์ด ํฌํจ๋์ด ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ์ค๋ฅ๋ก ์ธํด ๋ค์ค ์์์ ์ฌ์ฉํ๋ ค๋ ๊ฒฝ์ฐ๊ฐ ๊ฐ์ฅ ๋ง์ต๋๋ค. ์ด์ Java๋ก ์ง์ ์ด๋ํด ๋ณด๊ฒ ์ต๋๋ค. ์์ ์ธก๋ฉด์์ ๋ฌด์์ด ์์ต๋๊น? ์ธ์ด์๋ ๋ ๊ฐ์ง ์ ํ์ ํด๋์ค๊ฐ ์์ต๋๋ค. ๊ตฌํ์ ํฌํจํ ์ ์๋ ํด๋์ค์ ๊ทธ๋ ์ง ์์ ํด๋์ค์
๋๋ค. ํ์๋ฅผ ์ธํฐํ์ด์ค๋ผ๊ณ ๋ถ๋ฅด์ง๋ง ๋ณธ์ง์ ์ผ๋ก ์์ ํ ์ถ์ ํด๋์ค์
๋๋ค.
๋ฐ๋ผ์ ์ธ์ด๋ฅผ ์ฌ์ฉํ๋ฉด ์ ์ฌ์ ์ผ๋ก ๊ตฌํ์ด ํฌํจ๋ ๋ค๋ฅธ ํด๋์ค์์ ํด๋์ค๋ฅผ ์์ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋จ ํ๋์์๋ง ๊ฐ๋ฅํฉ๋๋ค! ์ ์ด๋ฐ ์ผ์ด ์ผ์ด๋ฌ๋์ง ์ค๋ช
ํ๊ฒ ์ต๋๋ค. ์์ ์ ๊ฐ ๊ตฌํ์ด ์์ ์ด ์๊ณ ์๋ ๋ณ์์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ํด๋น ๋ถ๋ถ๋ง ์ฒ๋ฆฌํ ์ ์๋ค๋ ๊ฒ์
๋๋ค. ๊ทธ๋ฆฌ๊ณ
A ์
B ์์ ํด๋์ค
C๋ฅผ ์์ํ๋๋ผ๋ ํด๋์ค A์์ ์์๋
processA ๋ฉ์๋๋ ๋ด๋ถ ๋ณ์
a ์์๋ง ์๋ํ ์ ์์ต๋๋ค. ์๋ํ๋ฉด
c ์
processC ๋ฉ์๋ ์ ๋ํด ์๋ฌด๊ฒ๋ ๋ชจ๋ฅด๋ฏ์ด
b ์ ๋ํด ์๋ฌด๊ฒ๋ ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์
๋๋ค . ๋ง์ฐฌ๊ฐ์ง๋ก
processB ๋ฐฉ๋ฒ
๋ณ์ b์์๋ง ์๋ํ ์ ์์ต๋๋ค. ์ฆ, ๋ณธ์ง์ ์ผ๋ก ์์๋ฐ์ ๋ถ๋ถ์ด ๋ถ๋ฆฌ๋์ด ์๋ ๊ฒ์
๋๋ค. ํด๋์ค C๋ ํ์คํ ์ด๋ค๊ณผ ํจ๊ป ์๋ํ ์ ์์ง๋ง ์์๋์ง ์๊ณ ๋จ์ํ ์ผ๋ถ๋ก ํฌํจ๋๋ ๊ฒฝ์ฐ ์ด๋ฌํ ๋ถ๋ถ๊ณผ๋ ์ ์๋ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฌ๊ธฐ์๋ ๋ ๋ค๋ฅธ ๊ณจ์นซ๊ฑฐ๋ฆฌ๊ฐ ์๋๋ฐ, ์ด๋ฆ์ด ์ค๋ณต๋๋ค๋ ์ ์ด๋ค.
processA ์
processB ๋ฉ์๋์ ์ด๋ฆ์ด ๋์ผํ๋ค๋ฉด(์: process) ํด๋์ค
C ์
process ๋ฉ์๋๋ฅผ ํธ์ถํ๋ฉด ์ด๋ค ํจ๊ณผ๊ฐ ์์ต๋๊น ? ๋ ๊ฐ์ง ๋ฐฉ๋ฒ ์ค ์ด๋ ๊ฒ์ด ํธ์ถ๋ฉ๋๊น? ๋ฌผ๋ก C++์๋ ์ด๋ฌํ ์ํฉ์ ์ ์ดํ ์ ์๋ ๊ธฐ๋ฅ์ด ์์ง๋ง ์ด๊ฒ์ด ์ธ์ด์ ์กฐํ๋ฅผ ๋ํด์ฃผ์ง๋ ์์ต๋๋ค. ๋ฐ๋ผ์ ๊ตฌํ ์์์ ์ฅ์ ์ ์ ๊ณตํ์ง ์์ง๋ง ๋จ์ ์ด ์์ต๋๋ค. ์ด๋ฌํ ์ด์ ๋ก Java์ ๊ตฌํ ์์์ ์ค๋จ๋์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ฐ๋ฐ์์๊ฒ๋ ์ธํฐํ์ด์ค๋ก๋ถํฐ์ ์์๊ณผ ๊ฐ์ ๋ค์ค ์์ ์ต์
์ด ๋จ์ ์์์ต๋๋ค. Java ์ฉ์ด๋ก ์ธํฐํ์ด์ค ๊ตฌํ์
๋๋ค. ์ธํฐํ์ด์ค๋ ๋ฌด์์
๋๊น? ์ผ๋ จ์ ๋ฉ์๋. (์ฐ๋ฆฌ๋ ํ์ฌ ์ธํฐํ์ด์ค์ ์์ ์ ์๋ฅผ ๊ณ ๋ คํ๊ณ ์์ง ์์ต๋๋ค. ์ด์ ๋ํ ์์ธํ ๋ด์ฉ์
์ฌ๊ธฐ์์ ํ์ธํ์ธ์.) ๋ฉ์๋๋ ๋ฌด์์ธ๊ฐ์? ๊ทธ๋ฆฌ๊ณ ๋ฉ์๋์ ํต์ฌ์ ๊ฐ์ฒด์ ๋์์ ๊ฒฐ์ ํฉ๋๋ค.
๊ฑฐ์ ๋ชจ๋ ๋ฉ์๋์ ์ด๋ฆ์ getXXX ,
drawXXX ,
countXXX ๋ฑ ์ ์ก์
์ด ํฌํจ๋์ด ์๋ ๊ฒ์ ์ฐ์ฐ์ด ์๋๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ธํฐํ์ด์ค๋ ๋ฉ์๋์ ๋ชจ์์ด๋ฏ๋ก ์ค์ ๋ก
์ธํฐํ์ด์ค๋
๋์์
๊ฒฐ์ ํ๋ ์์ ์
๋๋ค . ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ๋ ๋ค๋ฅธ ์ต์
์ ๊ฐ์ฒด์ ์ญํ ์ ์ ์ํ๋ ๊ฒ์
๋๋ค.
๊ด์ฐฐ์, ์ฒญ์ทจ์ ๋ฑ ์ด ๊ฒฝ์ฐ ๋ฐฉ๋ฒ์ ์ค์ ๋ก ์ผ๋ถ ์ธ๋ถ ์ด๋ฒคํธ์ ๋ํ ๋ฐ์์ ๊ตฌํ์
๋๋ค. ๊ทธ๊ฒ์ ๋ค์ ํ๋์
๋๋ค. ๋ฌผ๋ก ๊ฐ์ฒด๋ ์ฌ๋ฌ ๊ฐ์ง ๋ค๋ฅธ ๋์์ ๊ฐ์ง ์ ์์ต๋๋ค. ๋ ๋๋ง์ด ํ์ํ ๊ฒฝ์ฐ ๋ ๋๋ง๋ฉ๋๋ค. ๊ตฌ์๋ฐ์ ํ์๊ฐ ์๋ค๋ฉด ๊ตฌ์๋ฐ์ ๊ฒ์
๋๋ค. ๊ธ์์. ๋ฐ๋ผ์ ๋์์ ์ ์ํ๋ ํด๋์ค์์ ์์ํ๋ ๊ธฐ๋ฅ์ ๋งค์ฐ ์ ์ฉํฉ๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก, ๊ฐ์ฒด๋ ์ฌ๋ฌ ๊ฐ์ง ๋ค๋ฅธ ์ญํ ์ ๊ฐ์ง ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋
๊ตฌํ
ํ๋์ ์ ์ ์ผ๋ก ์ด๋ฆฐ์ด ํ๊ธ์ ์์ฌ์ ๋ฌ๋ ค ์์ต๋๋ค. ์ธํฐํ์ด์ค(๊ตฌํ)๋ก๋ถํฐ์ ์์์ ์ด ํด๋์ค์ ๊ฐ์ฒด๊ฐ ์ด๋ฐ์ ๋ฐ ์ผ์ ํ ์ ์์ด์ผ ํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ ์ํํ๋ ๋ฐฉ๋ฒ์ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ ๊ฐ ํด๋์ค์ ์ํด ๋
๋ฆฝ์ ์ผ๋ก ๊ฒฐ์ ๋ฉ๋๋ค. ์์์ ์ค๋ฅ๋ก ๋์๊ฐ ๋ณด๊ฒ ์ต๋๋ค. ๋ค์ํ ์์คํ
์ ๊ฐ๋ฐํ ๊ฒฝํ์ ๋ฐ๋ฅด๋ฉด ์ธํฐํ์ด์ค์์ ์์์ ๋ฐ์ผ๋ฉด ๋ค์ค ๊ตฌํ ์์์ ์ฌ์ฉํ์ง ์๊ณ ๋ ๋ชจ๋ ์์คํ
์ ๊ตฌํํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ C++์ ์กด์ฌํ๋ ํํ์ ๋ค์ค ์์์ด ๋ถ์กฑํ๋ค๋ ๋ถ๋ง ์ฌํญ์ ์ ํ ๋ ์ด๋ ์๋ชป๋ ์ค๊ณ์ ํ์คํ ์ ํธ์
๋๋ค. ๊ฐ์ฅ ํํ ์ค์๋ ์ ๊ฐ ์ด๋ฏธ ์ธ๊ธํ ๊ฒ์
๋๋ค. ์์์ ์ง๊ณ์ ํผ๋๋ฉ๋๋ค. ๋๋ก๋ ์๋ชป๋ ๊ฐ์ ์ผ๋ก ์ธํด ์ด๋ฐ ์ผ์ด ๋ฐ์ํฉ๋๋ค. ์ ๊ฒ๋ค. ์๋ฅผ ๋ค์ด ์๋๊ณ๋ฅผ ์๋ก ๋ค๋ฉด, ์๋๋ ๊ฑฐ๋ฆฌ์ ์๊ฐ์ ์ธก์ ํด์ผ๋ง ์ธก์ ํ ์ ์์ผ๋ฉฐ, ๊ทธ ํ์๋ ์๋๊ณ๊ฐ ๋๊ธ์์ ์๊ณ๋ก๋ถํฐ ์ฑ๊ณต์ ์ผ๋ก ์์๋์ด ๋ค์์ ์ ์์ ๋ฐ๋ผ ๋๊ธ์์ ์๊ณ๊ฐ ๋๋ค๊ณ ์ฃผ์ฅ๋ฉ๋๋ค. ๊ณ์น. (์๋๊ณ๋ก ์๊ฐ์ ์ธก์ ํด ๋ฌ๋ผ๋ ๋์ ์์ฒญ์ ๋๊ฐ ๋๋ด์ผ๋ก ๋๋ต๋๊ฑฐ๋ ์ ํ ๋๋ตํ์ง ์์์ต๋๋ค.) ์ฌ๊ธฐ์ ์ค์๋ ๋ฌด์์
๋๊น? ์ ์ ์์. ์ฌ์ค ์๋๊ณ๋ ์๊ฐ์ ์ธก์ ํ์ง ์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ๊ฑฐ๋ฆฌ๋ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค. ๋ชจ๋ ์๋๊ณ์ ์๋ ์ฃผํ ๊ธฐ๋ก๊ณ๋ ๋์ผํ ํ์ฐ์ง์ ์๋ ๋ ๋ฒ์งธ ์ฅ์น์ ์ ํ์ ์ธ ์์
๋๋ค. ์งํฉ. ์๋๋ฅผ ์ธก์ ํ ํ์๋ ์์ต๋๋ค. ์์ ํ ์ ๊ฑฐํ ์ ์์ต๋๋ค. ์ด๋ ์๋ ์ธก์ ์ ์ด๋ค ์ํฅ๋ ๋ฏธ์น์ง ์์ต๋๋ค. ๋๋ก๋ ๊ทธ๋ฌํ ์ค์๊ฐ ์๋์ ์ผ๋ก ์ด๋ฃจ์ด์ง๊ธฐ๋ ํฉ๋๋ค. ์ด๊ฒ์ ํจ์ฌ ๋ ๋์ฉ๋๋ค. โ๋ค, ๊ทธ๊ฒ ์๋ชป๋ ๊ฑด ์์ง๋ง ๊ทธ๊ฒ ๋ํํ
๋ ๋ ํธํด์.โ ์ด๊ฒ์ด ๋ฌด์์ผ๋ก ์ด์ด์ง ์ ์์ต๋๊น? ํ์ง๋ง ์ฌ๊ธฐ์ ๋ด์ฉ์ด ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ํฌ์ ๊ธฐ๊ด์ด์์ ํฑํฌ๋ฅผ ๋ฌผ๋ ค๋ฐ์ ๊ฒ์
๋๋ค. ์ด ๋ฐฉ๋ฒ์ด ๋ ํธ๋ฆฌํฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ํฑํฌ๋ ๋ํฌ์ ๊ธฐ๊ด์ด์ผ๋ก ๋ณํฉ๋๋ค. ๋ค์์ผ๋ก ๋นํ๊ธฐ์ ๊ธฐ๊ด์ด 2๊ฐ์ ๋ํฌ 1๊ฐ๋ฅผ ์ฅ์ฐฉํ๊ฒ ์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ฌด์์ ์ป๋์? ์ธ ๊ฐ์ ํฑํฌ ํํ์ ๋ฌด๊ธฐ๊ฐ ๋งค๋ฌ๋ฆฐ ํญ๊ณต๊ธฐ! ์๋ํ๋ฉด ๊ทธ๊ฒ์ ์ดํดํ์ง ๋ชปํ ์ฑ ํฑํฌ๋ฅผ ๊ธฐ๊ด์ด์ผ๋ก ์ฌ์ฉํ๋ ์ฌ๋์ด ๋ถ๋ช
ํ ์๊ธฐ ๋๋ฌธ์
๋๋ค. ์์ ๊ณ์ธต ๊ตฌ์กฐ์ ๋ฐ๋ผ ๋
์ ์ ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ ์ ๋์ ์ผ๋ก ์ณ์ ๊ฒ์
๋๋ค. ์๋ํ๋ฉด ๊ทธ๋ฌํ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ์ค๊ณํ ์ฌ๋์ด ์ค์๋ฅผ ํ๊ธฐ ๋๋ฌธ์
๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ ๋ " ์ด๋ ๊ฒ ํ๋ ๊ฒ์ด ๋์๊ฒ ๋ ํธ๋ฆฌํ๋ค" ๋ ์ ๊ทผ ๋ฐฉ์์ ์ ์ดํดํ์ง ๋ชปํฉ๋๋ค . ๋ฃ๋ ์ฌ๋์ฒ๋ผ ์ฐ๋ ๊ฒ ํธํ๊ณ , ๊ธฐ๋ณธ์ ์ธ ๋ฌธ๋ฒ์ ๋งํ๋ ์ฌ๋์ ๊น์น ํ๋ค. ๋ฌผ๋ก ๊ณผ์ฅํ๊ณ ์์ง๋ง ์ฃผ์ ์์ด๋์ด๋ ๋จ์ ์์ต๋๋ค. ์๊ฐ์ ์ธ ํธ๋ฆฌํจ ์ธ์๋ ๋ฌธํด๋ ฅ๊ณผ ๊ฐ์ ๊ฒ์ด ์์ต๋๋ค. ์ด ๊ฐ๋
์ ์๋ง์ ์ฌ๋๋ค์ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ์ ์๋์์ต๋๋ค. ์ค์ ๋ก ์ด๊ฒ์ด ์์ด๋ก "๋ชจ๋ฒ ์ฌ๋ก"๋ผ๊ณ ๋ถ๋ฆฌ๋ ์ต๊ณ ์ ์๋ฃจ์
์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋จ์ํด ๋ณด์ด๋ ์๋ฃจ์
์ด ๋ฏธ๋์ ๋ง์ ๋ฌธ์ ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
๋ฌผ๋ก ์ด ์๋ ํฌ๊ฒ ๊ณผ์ฅ๋์ด ์์ด ํฐ๋ฌด๋์๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์น๋ช
์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ํ๋ ๋ ๋ถ๋ช
ํ ์ฌ๋ก๋ ์์ต๋๋ค. ๊ฐ์ฒด๋ฅผ ์ง๊ณํ๋ ๋์ ๊ฐ์ฒด์์ ์์ํจ์ผ๋ก์จ ๊ฐ๋ฐ์๋ ๋๊ตฌ์๊ฒ๋ ์์ ๊ฐ์ฒด์ ๊ธฐ๋ฅ์ ์ง์ ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ๊ทธ๊ฒ์ด ์๋ฏธํ๋ ๋ชจ๋ ๊ฒ. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํจ๊ป ์๋ํ๋
DBManager ํด๋์ค๊ฐ ์๋ค๊ณ ์์ํด ๋ณด์ธ์ .
DBManager -
DataManager๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ๋ค๋ฅธ ํด๋์ค๋ฅผ ๋ง๋ญ๋๋ค . ์ด ํด๋์ค๋ ๋ฐ์ดํฐ ์ ์ด, ๋ณํ, ์ถ๊ฐ ์์
๋ฑ์ ์ํํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋น์ฆ๋์ค ๊ณ์ธต๊ณผ ๊ธฐ๋ณธ ๊ณ์ธต ์ฌ์ด์ ์๋ ๊ณ์ธต์
๋๋ค. DBManager์์ DataManager๋ฅผ ์์ํ๋ฉด ์ด๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋์ ๋๊ตฌ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ง์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๊ทธ๋ ์ ์ด, ๋ณํ ๋ฑ์ ์ฐํํ๋ ๋ชจ๋ ์์
์ ์ํํ ์ ์์ต๋๋ค. ์ข์ต๋๋ค. ์๋ฌด๋ ์๋์ ์ธ ํด๋ฅผ ๋ผ์น๊ณ ์ถ์ง ์์ผ๋ฉฐ ์ง์ ์ ์ธ ์กฐ์น๊ฐ ์ ๋ฅํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ํ์ง๋ง! ๋ฒ ์ด์ค๊ฐ ๋ฐ๋์๋ค๊ณ ๊ฐ์ ํด๋ณด์. ๋ด ๋ง์, ํต์ ๋ ๋ณํ์ ์ผ๋ถ ์์น์ด ๋ฐ๋์๋ค๋ ๋ป์
๋๋ค. DataManager๊ฐ ๋ณ๊ฒฝ๋์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ง์ ์์
ํ๋ ์ฝ๋๋ ๊ณ์ ์๋ํฉ๋๋ค. ๊ทธ๋ค์ ์๋ง๋ ๊ทธ๋ฅผ ๊ธฐ์ตํ์ง ๋ชปํ ๊ฒ์
๋๋ค. ๊ทธ ๊ฒฐ๊ณผ๋ ๊ทธ๊ฒ์ ์ฐพ๋ ์๋ค์ด ํ์์ผ๋ก ๋ณํ ์ ๋๋ก ๊ทธ๋ฐ ๋ถ๋ฅ์ ์ค๋ฅ๊ฐ ๋ ๊ฒ์ด๋ค. DataManager๋ฅผ ์ฐํํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์์
ํ๋ ์ผ์ ๋๊ตฌ์๊ฒ๋ ์ผ์ด๋์ง ์์ต๋๋ค. ๊ทธ๊ฑด ๊ทธ๋ ๊ณ , ์ค์ ์ํ์ ์์
๋๋ค. ์ค๋ฅ๋ฅผ ์ฐพ๋ ๋ฐ ๋งค์ฐ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ ธ์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก ๋ค์ ๋ง์๋๋ฆฌ๊ฒ ์ต๋๋ค.
์์์ "is" ๊ด๊ณ๊ฐ ์๋ ๊ฒฝ์ฐ์๋ง ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก ์์์ ๋ณธ์ง์ด๊ธฐ ๋๋ฌธ์
๋๋ค. ์ฆ ํ์ ํด๋์ค์ ๊ฐ์ฒด๋ฅผ ๊ธฐ๋ณธ ํด๋์ค์ ๊ฐ์ฒด๋ก ์ฌ์ฉํ๋ ๋ฅ๋ ฅ์
๋๋ค. ํด๋์ค ์ฌ์ด์ "is" ๊ด๊ณ๊ฐ ์๋ค๋ฉด ์์์ด ์์ด์๋ ์ ๋ฉ๋๋ค!!! ์ด๋ค ์ํฉ์์๋ ์ ๋๋ก. ๋์ฑ์ด โ ๋๋ฌด ํธ๋ฆฌํ๊ธฐ ๋๋ฌธ์
๋๋ค. ์๋ณธ ์์ค ๋งํฌ: http://www.skipy.ru/philosophy/inheritance.html
GO TO FULL VERSION