ํ๋์ ์ธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ํน์ง ์ง๋ ์ค์ํ ๋ ๊ฐ์ง ์ถ์ํ ๋ฉ์ปค๋์ฆ์ ํ๋ก์์ ์ถ์ํ(procedure abstraction)์ ๋ฐ์ดํฐ ์ถ์ํ(data abstraction)๋ค. ํ๋ก์์ ์ถ์ํ๋ ์ํํธ์จ์ด๊ฐ ๋ฌด์์ ํด์ผํ๋์ง๋ฅผ ์ถ์ํํ๋ค. ๋ฐ์ดํฐ ์ถ์ํ๋ ์ํํธ์จ์ด๊ฐ ๋ฌด์์ ์์์ผ ํ๋์ง๋ฅผ ์ถ์ํํ๋ค.
ํ๋ก์์ ์ถ์ํ
๋ฐ์ดํฐ ์ถ์ํ
์ญํ ๊ณผ ์ฑ
์์ ์ํํ๋ ๊ฐ์ฒด๊ฐ ๊ฐ์ฒด์งํฅ ํจ๋ฌ๋ค์์ด ์ด์ฉํ๋ ์ถ์ํ๋ค.
๊ธฐ๋ฅ์ ํ๋ ฅํ๋ ๊ณต๋์ฒด๋ฅผ ๊ตฌ์ฑํ๋๋ก ๊ฐ์ฒด๋ค๋ก ๋๋๋ ๊ณผ์
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๊ด์ ์์ ๊ฐ์ฒด์งํฅ์ด๋ ๋ฐ์ดํฐ๋ฅผ ์ค์ฌ์ผ๋ก ์ถ์ํ์ ํ๋ก์์ ์ถ์ํ๋ฅผ ํจ๊ป ํฌํจํ ๊ฐ์ฒด๋ฅผ ์ด์ฉํด ์์คํ ์ ๋ถํดํ๋ ๋ฐฉ๋ฒ์ด๋ค.
๊ธฐ๋ฅ์ ์ค๋ ์๊ฐ๋์ ์์คํ
์ ๋ถํดํ๊ธฐ ์ํ ๊ธฐ์ค์ผ๋ก ์ฌ์ฉ๋์๋ค.
์ด๋ฅผ ์๊ณ ๋ฆฌ์ฆ ๋ถํด ๋๋ ๊ธฐ๋ฅ ๋ถํด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๊ธฐ๋ฅ ๋ถํด์ ๊ด์ ์์ ์ถ์ํ์ ๋จ์๋ ํ๋ก์์ ์ด๋ฉฐ, ์์คํ
์ ํ๋ก์์ ๋ฅผ ๋จ์๋ก ๋ถํด๋๋ค.
ํ๋ก์์ ๋ ๋ฐ๋ณต์ ์ผ๋ก ์คํ๋๊ฑฐ๋ ๊ฑฐ์ ์ ์ฌํ๊ฒ ์คํ๋๋ ์์ ๋ค์ ํ๋์ ์ฅ์์ ๋ชจ์๋์์ผ๋ก์จ ๋ก์ง์ ์ฌ์ฌ์ฉํ๊ณ ์ค๋ณต์ ๋ฐฉ์งํ ์ ์๋ ์ถ์ํ ๋ฐฉ๋ฒ์ด๋ค.
ํ๋ก์์ ๋ฅผ ์ถ์ํ๋ผ๊ณ ๋ถ๋ฅด๋ ์ด์ ๋ ๋ด๋ถ ์์ธ ๊ตฌํ์ ๋ชจ๋ฅด๋๋ผ๋ ์ธํฐํ์ด์ค๋ง ์๋ฉด ํ๋ก์ธ์ ๋ฅผ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ ํต์ ์ธ ๊ธฐ๋ฅ ๋ถํด ๋ฐฉ๋ฒ์ ํํฅ์ ์ ๊ทผ๋ฒ(Top-Down Approach)๋ฅผ ๋ฐ๋ฅธ๋ค.
ํํฅ์ ์ ๊ทผ๋ฒ์ด๋ ์์คํ
์ ๊ตฌ์ฑํ๋ ๊ฐ์ฅ ์ต์์(topmost) ๊ธฐ๋ฅ์ ์ ์ํ๊ณ ,
์ด ์ต์์ ๊ธฐ๋ฅ์ ์ข ๋ ์์ ๋จ๊ณ์ ํ์ ๊ธฐ๋ฅ ์งํฉ์ผ๋ก ๋ถํดํด ๋๊ฐ๋ ๋ฐฉ๋ฒ์ ๋งํ๋ค.
๊ฐ ์ธ๋ถํ ๋จ๊ณ๋ ๋ฐ๋ก ์ ๋จ๊ณ๋ณด๋ค ๋ ๊ตฌ์ฒด์ ์ด์ด์ผ ํ๋ค.
๋ถํด๋ ์ธ๋ถํ๋ ๋ง์ง๋ง ํ์ ๊ธฐ๋ฅ์ด ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ๊ตฌํ ๊ฐ๋ฅํ ์์ค์ด ๋ ๋๊น์ง ๊ณ์ํ๋ค.


์ฑ
์ ์ฐ๋ ๊ฒ์ฒ๋ผ, ์
๋ ฅ, ๊ณ์ฐ, ์ถ๋ ฅ์ผ๋ก ๋ชฉ์ฐจ๋ฅผ ์ ํ๊ณ ๋ด์ฉ์ ๋ผ์๋ฃ๋๋ค.
๊ธฐ๋ฅ์ด ์ฐ์ ์ด๊ณ ๋ฐ์ดํฐ๋ ์กฐ์ฐ์ด๋ค.
๊ธฐ๋ฅ ๋ถํด ๋ฐฉ๋ฒ์์๋ ๊ธฐ๋ฅ์ ์ค์ฌ์ผ๋ก ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๊ฒฐ์ ํ๋ค. ๊ฐ๋ฅ ๋ถํด๋ผ๋ ๋ฌด๋์ ์ฃผ์ฐ์ ๊ธฐ๋ฅ์ด๋ฉฐ ๋ฐ์ดํฐ๋ ๊ธฐ๋ฅ์ ๋ณด์กฐํ๋ ์กฐ์ฐ์ ์ฐํ๋ ๋จธ๋ฌด๋ฅธ๋ค. ๊ธฐ๋ฅ์ด ์ฐ์ ์ด๊ณ ๋ฐ์ดํฐ๋ ๊ธฐ๋ฅ์ ๋ค๋ฅผ ๋ฐ๋ฅธ๋ค.
๊ธฐ๋ฅ ๋ถํด๋ฅผ ์ํ ํํฅ์ ์ ๊ทผ ๋ฐฉ๋ฒ์ ๋จผ์ ํ์ํ ๊ธฐ๋ฅ์ ์๊ฐํ๊ณ , ๊ธฐ๋ฅ์ ๋ถํด, ์ ์ ํ๋ ๊ณผ์ ์์ ํ์ํ ๋ฐ์ดํฐ์ ์ข
๋ฅ์ ์ ์ฅ ๋ฐฉ์์ ์๋ณํ๋ค.
์ด๋ ์ ์ง๋ณด์์ ๋ค์ํ ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํ๋ค.

์์คํ
์ ๋ฉ์ธ์ ๋ฃจํธ ๋
ธ๋๋ก ํ๋ ํธ๋ฆฌ, ๊ฐ ํ๋ก์์ ๋ ๋
ธ๋, ์์ ๋
ธ๋๋ ๋ถ๋ชจ ๋
ธ๋ ๊ตฌํ ์ ์ฐจ ์ค ํ ๋จ๊ณ๋ฅผ ์๋ฏธํ๋ค.
์ ๊ทธ๋ฆผ๋ง ๋ณด๋ฉด ๋
ผ๋ฆฌ์ , ๊ตฌ์กฐ์ , ์ฒด๊ณ์ ์ธ ๋์์ ์ด์์ ์ผ๋ก ๋ณด์ธ๋ค.
์ฒด๊ณ์ ์ด๊ณ ์ด์์ ์ธ ๋ฐฉ๋ฒ์ด ๋ถ๊ท์นํ๊ณ ๋ถ์์ ํ ์ธ๊ฐ๊ณผ ๋ง๋๋ ์ง์ ์์ ํผ๋๊ณผ ๋์๊ฐ ๋ฐ์ํ๋ค.
ํํฅ์ ๊ธฐ๋ฅ ๋ถํด ๋ฐฉ๋ฒ์ ๊ฒ์ผ๋ก๋ ์ด์์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก ๋ณด์ผ ์ ์์ง๋ง ์ค์ ๋ก ์ค๊ณ์ ์ ์ฉํ๋ค ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ค์ํ ๋ฌธ์ ์ ์ง๋ฉดํ๋ค.
์์คํ ์ ํ๋์ ๋ฉ์ธ ํจ์๋ก ๊ตฌ์ฑ๋ผ ์์ง ์๋ค.
๋ชจ๋ ๊ธฐ๋ฅ์ ์์ ๋ ธ๋๋ก ๊ฐ์ง๋ ํ๋์ ๋ฉ์ธ ๊ธฐ๋ฅ์ ์ ํํ ์ ์๋ค.
๋๋ถ๋ถ์ ์์คํ ์์ ๋ ผ์ฌํ์ง ์๋๋ค.
๊ธฐ๋ฅ์ ์ธ ์ธก๋ฉด์์ ๋๋ฑํ๊ฒ ๋ ๋ฆฝ์ ์ด๊ณ ์๊ฒฐ๋ ํ๋์ ๊ธฐ๋ฅ์ ํํ
๊ธฐ๋ฅ ์ถ๊ฐ๋ ์๊ตฌ์ฌํญ ๋ณ๊ฒฝ์ผ๋ก ์ธํด ๋ฉ์ธ ํจ์๋ฅผ ๋น๋ฒํ๊ฒ ์์ ํด์ผ ํ๋ค.

๋น์ฆ๋์ค ๋ก์ง์ด ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ๊ฐํ๊ฒ ๊ฒฐํฉ๋๋ค.
ํํฅ์ ๋ถํด๋ ๋๋ฌด ์ด๋ฅธ ์๊ธฐ์ ํจ์๋ค์ ์คํ ์์๋ฅผ ๊ณ ์ ์ํค๊ธฐ ๋๋ฌธ์ ์ ์ฐ์ฑ๊ณผ ์ฌ์ฌ์ฉ์ฑ์ด ์ ํ๋๋ค.
์์ ํจ์์ ๋ฌธ๋งฅ ์์์๋ง ์๋ฏธ๋ฅผ ๊ฐ๊ธฐ ๋๋ฌธ์ ์ฌ์ฌ์ฉ์ด ์ด๋ ต๋ค.
ํจ์๋ ์์ ํจ์๊ฐ ๊ฐ์ํ๋ ๋ฌธ๋งฅ์ ์๊ฐ(์์)์ ์ผ๋ก ๊ฐํ๊ฒ ๊ฒฐํฉ๋๋ค.
ํจ์๊ฐ ์ฌ์ฌ์ฉ ๋๋ ค๋ฉด ์ผ๋ฐ์ ์ด์ด์ผ ํ๋ค.
๋ฐ์ดํฐ ํ์์ด ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ ํ๊ธ ํจ๊ณผ๋ฅผ ์์ธกํ ์ ์๋ค.
์์คํ
์ ์ฌ๋ฌ๊ฐ์ ์ ์์ผ๋ก ๊ตฌ์ฑ๋๊ธฐ ๋๋ฌธ์
sumOfBasePays ํจ์ ๊ฐ์ ์๋ก์ด ์ ์์ ์ถ๊ฐํ ๋๋ง๋ค ํ๋์ ์ ์์ด๋ผ๊ณ ๊ฐ์ฃผํ๋ main ํจ์์ ๋ด๋ถ ๊ตฌํ์ ์์ ํ ์๋ฐ์ ์๋ค.
๊ธฐ์กด ์ฝ๋์ ๋น๋ฒํ ์์ ์ผ๋ก ์ธํ ๋ฒ๊ทธ ๋ฐ์ ํ๋ฅ ์ด ๋์์ ธ ์์คํ
์ ๋ณ๊ฒฝ์ ์ทจ์ฝํด์ง๋ค.
์ฆ, ํ๋์ ํจ์์ ์ ์ด๊ฐ ์ง์ค๋์ด ํ์ฅ์ด ์ด๋ ต๋ค.
๊ณผ๋ํ๊ฒ ํจ์์ ์ง์คํ์ฌ ๋ฐ์ดํฐ์ ๋ํ ์ํฅ๋ ํ์
์ด ์ด๋ ต๋ค.
์ค๊ณ๋ฅผ ์ฌ์ฌ์ฉํ๊ธฐ ํ๋ค๋ค.

ํํฅ์ ์์ ์ ์ฌ๋๋ค์ด ์ค๊ณ๋ ๊ฐ๋ฐ์ ์ด์ ๊ฐ์ด ์ฑ๊ณตํ ์ ์๋ค๊ณ ์ฐฉ๊ฐํ๊ฒ ํ๋ค.
์์คํ ๋ณ๊ฒฝ ๊ด๋ฆฌ ๊ธฐ๋ณธ ์ ๋ต์ ํจ๊ป ๋ณ๊ฒฝ๋๋ ๋ฐฉํฅ์ผ๋ก ๊ธฐ๋ฅ๊ณผ ๋ฐ์ดํฐ๋ฅผ ๋ฌถ์ด ์ธํฐํ์ด์ค๋ก๋ง ์ ๊ทผํ ์ ์๊ฒ ํ๋ ๊ฒ์ด๋ค.
์ ๋ณด ์๋

๊ธฐ๋ฅ ๋ถํด๊ฐ ๊ธฐ๋ฅ ๋์ถ ๊ณผ์ ์ด๋ผ๋ฉด
๋ชจ๋ ๋ถํด๋ ๊ฐ์ถฐ์ผ ํ ๋น๋ฐ์ ์ ํํ๊ณ , ๋น๋ฐ ์ฃผ๋ณ์ ์์ ์ ์ธ ๋ณดํธ๋ง์ ์ค์นํ๋ ๋ณด์กด์ ๊ณผ์ ์ด๋ค.
์์คํ ์ ๋ชจ๋ ๋จ์๋ก ์ด๋ป๊ฒ ๋ถํดํ ๊ฒ์ธ๊ฐ?
๋ชจ๋์ ๋ค์ ๋ ๊ฐ์ง ๋น๋ฐ์ ๊ฐ์ถฐ์ผ ํ๋ค.
๊ฐ์ฅ ํฐ ๋น๋ฐ์ ๋ฐ์ดํฐ์ง๋ง, ๋ณต์กํ ๋ก์ง์ด๋ ๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ ํฐ ์๋ฃ๊ตฌ์กฐ์ผ ์ ์๋ค.
๋ฐ์ดํฐ ์บก์์ ์ ๋ณด ์๋์ ํ ์ข
๋ฅ์ผ ๋ฟ์.
์๋ฐ์ ๋ชจ๋ ๊ฐ๋ ์ ํจํค์ง๋ค.
๋ชจ๋์ ๊ธฐ๋ฅ์ด ์๋๋ผ ๋ณ๊ฒฝ์ ์ ๋์ ๋ฐ๋ผ ์์คํ
์ ๋ถํดํ๊ฒ ํ๋ค.
๊ฐ ๋ชจ๋์ ์ธ๋ถ์ ๊ฐ์ถฐ์ผ ํ๋ ๋น๋ฐ๊ณผ ๊ด๋ จ์ฑ ๋์ ๋ฐ์ดํฐ,ํจ์ ์งํฉ์ด๋ค.
๋ฐ๋ผ์ ๋ชจ๋ ๋ด๋ถ๋ ์์ง๋๊ฐ ๋๋ค.
๋ชจ๋๊ณผ ๋ชจ๋ ์ฌ์ด์๋ ํผ๋ธ๋ฆญ ์ธํฐํ์ด์ค๋ฅผ ํตํด์๋ง ํต์ ํ ์ ์๋ค.
๋ฐ๋ผ์ ๋ฎ์ ๊ฒฐํฉ๋๋ฅผ ์ ์งํ๋ค.
๋ชจ๋ ๋ด๋ถ์ ๋ณ์๊ฐ ๋ณ๊ฒฝ๋๋๋ผ๋ ๋ชจ๋ ๋ด๋ถ์๋ง ์ํฅ์ ๋ฏธ์น๋ค
๋ชจ๋์ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ๋ด๋ถ์ ์ ์๋ ๋ณ์๋ฅผ ์ง์ ์ฐธ์กฐํ๋ ์ฝ๋์ ์์น๋ฅผ ๋ชจ๋ ๋ด๋ถ๋ก ์ ํํ ์ ์๋ค.
์ด์ ์ด๋ค ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋์์ ๋ ์ํฅ์ ๋ฐ๋ ํจ์๋ ํด๋น ๋ฐ์ดํฐ๋ฅผ ์ ์ํ ๋ชจ๋๋ง ๊ฒ์ํ๋ฉด ๋๋ค.
์ฆ, ์ ์ฒด ํจ์๋ค์ ๋ค์ ธ๋ณผ ํ์๊ฐ ์๋ค. ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ผ๋ก ์ธํ ํ๊ธํจ๊ณผ๋ฅผ ์ ์ดํ๋ค,
๋น์ฆ๋์ค ๋ก์ง๊ณผ ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ๋ํ ๊ด์ฌ์ฌ๋ฅผ ๋ถ๋ฆฌํ๋ค
์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ ์ธ๋ถ์์ ๋ด๋นํ๋ค.
๋ชจ๋์ ๋น์ฆ๋์ค ๋ก์ง์ ๋ด๋นํ๋ ์ธํฐํ์ด์ค๋ง ์ ๊ณตํ๋ค
์ฆ, ๋ค๋ฅธ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๊ฐ ์ถ๊ฐ๋๋๋ผ๋ ์ฌ์ฉ๋๋ ๋ชจ๋์ ๋น์ฆ๋์ค ๋ก์ง์ ๋ณํ์ง ์๋๋ค.
์ ์ญ ๋ณ์์ ์ ์ญ ํจ์๋ฅผ ์ ๊ฑฐํจ์ผ๋ก์จ ๋ค์์คํ์ด์ค ์ค์ผ(namespace pollution)์ ๋ฐฉ์งํ๋ค
๋ชจ๋์ ํ ๊ฐ์ง ์ฉ๋๋ ๋ค์์คํ์ด์ค๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด๋ค.
๋ณ์์ ํจ์๋ฅผ ๋ชจ๋ ๋ด๋ถ์ ํฌํจ์ํค๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ๋ชจ๋์์๋ ๋์ผํ ์ด๋ฆ์ ์ฌ์ฉํ ์ ์๋ค.
์ฆ ์ ์ญ ๋ค์ ์คํ์ด์ค๋ฅผ ์ค์ผ์ํค์ง ์๊ณ , ์ด๋ฆ ์ถฉ๋(name collision)์ ์ํ์ ์ํํ๋ค.
์ ๋ณด ์๋์ด๋ผ๋ ๊ฐ๋
์ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ค๊ณ์ ์ค์ฌ ์์๋ก ๋ถ๊ฐ์ํจ๋ค.
์ธ์คํด์ค ๊ฐ๋
์ ์ ๊ณตํ์ง ์๋๋ค.
์ข ๋ ๋์ ์์ค์ ์ถ์ํ๋ฅผ ์ํด์ , Employees ๋ชจ๋์ด ์ ์ฒด ์ง์๋ค์ ๋ค๋ฃจ๋๊ฒ ์๋๋ผ
๊ฐ๋ณ ์ง์์ ๋
๋ฆฝ์ ์ธ ๋จ์๋ก ๋ค๋ฃฐ ์ ์๋๋ก ํด์ผ ํ๋ค.
์ฆ ๋ค์์ ์ธ์คํด์ค๊ฐ ํ์ํ๋ค.
์ด๋ฅผ ์ํด ๋ฑ์ฅํ ๊ฐ๋
์ด ์ถ์ ๋ฐ์ดํฐ ํ์
์ด๋ค.
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ํ์
(type)์ด๋ ๋ณ์์ ์ ์ฅํ ์ ์๋ ๋ด์ฉ๋ฌผ์ ์ข
๋ฅ์ ๋ณ์์ ์ ์ฉ๋ ์ ์๋ ์ฐ์ฐ์ ๊ฐ์ง์๋ฅผ ์๋ฏธํ๋ค.
ํ์
์ ํตํด ์ ์ฅ๋ ๊ฐ์ ๋ํด ์ํ๋ ์ ์๋ ์ฐ์ฐ์ด ์ ํด์ง๋ค.
๋ฐ๋ผ์ ๋ณ์์ ๊ฐ์ ํ๋์ ์์ธกํ ์ ์๋ค.
(๋ฌธ์์ด ์ฐ๊ฒฐ, ์ ์ ๋ง์
)

๋ฆฌ์ค์ฝํ๋ ์ํํธ์จ์ด๋ฅผ ์ด์ฉํด ํํํ ์ ์๋ ์ถ์ํ์ ์์ค์ ํ๋จ๊ณ ๋์๋ค.
ํ์ ์ ๋ํด ์ฌ๋ฌ๊ฐ์ ์ธ์คํด์ค ์์ฑ ๊ฐ๋ฅํด์ผ ํ๋ค.
์ถ์ ๋ฐ์ดํฐ ํ์ ์ ๊ตฌ์กฐ์ฒด๋ ๋น์ทํจ.
๊ธฐ๋ณธ ์๋๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ์ ๊ณตํ๋ ํ์
์ฒ๋ผ, ์ฌ์ฉ์ ์ ์ํ์
์ ์ถ๊ฐํ ์ ์๊ฒ ํ๋๊ฒ์ด๋ค.
ํด๋์ค์ ์ถ์๋ฐ์ดํฐ ํ์
๋ ๋ค ๋ฐ์ดํฐ ์ถ์ํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์คํ
์ ๋ถํดํ์ง๋ง,
์์๊ณผ ๋คํ์ฑ ์ง์์ฌ๋ถ๊ฐ ๋ค๋ฅด๋ค.
ํด๋์ค์ ์ถ์ ๋ฐ์ดํฐ ํ์
๊ตฌ๋ถ ์ํด ๊ฐ์ฒด๊ธฐ๋ฐ ํ๋ก๊ทธ๋๋ฐ์ด๋ผ๊ณ ๋ ํ๋ค.
ํด๋์ค๋ ์ถ์ ๋ฐ์ดํฐ ํ์
์ธ๊ฐ?
ํด๋์ค์ ์ถ์ ๋ฐ์ดํฐ ํ์
๋ชจ๋ ๋ฐ์ดํฐ ์ถ์ํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์คํ
์ ๋ถํดํ๋ค.
ํด๋์ค๋ ์์๊ณผ ๋คํ์ฑ์ ์ง์ํ์ง๋ง
์ถ์ ๋ฐ์ดํฐ ํ์
์ ์ง์ํ์ง ๋ชปํ๋ค.

์ถ์ ๋ฐ์ดํฐ ํ์
์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ํ๋์ ํ์
์ฒ๋ผ ๋ณด์ด๋ Employee ํ์
๋ด์ ๊ฐ๋
2๊ฐ๊ฐ ๊ณต์กดํจ.
๊ตฌ์ฒด์ ์ธ ์ง์ ํ์
์ ์บก์ํํจ.
์ด๋ฅผ ํ์
์ถ์ํ๋ผ ํจ.

๊ฐ์ฒด์งํฅ์ ํ์
์ ๊ธฐ์ค์ผ๋ก ์คํผ๋ ์ด์
์ ๋ฌถ๋๋ค.
์ฆ, ์ ๊ท ์ง์๊ณผ ์๋ฅด๋ฐ์ดํธ ์ง์์ด๋ผ๋ ๋ ๊ฐ์ ํ์
์ ๋ช
์์ ์ผ๋ก ์ ์ํ๊ณ
๋ ์ง์ ์ ํ๊ณผ ๊ด๋ จ๋ ์คํผ๋ ์ด์
์ ์คํ ์ ์ฐจ๋ฅผ ๋ ํ์
์ ๋ถ๋ฐฐํ๋ค.
์ฆ ์๋ฅด๋ฐ์ดํธ, ์ง์ ๊ฐ๊ฐ์ ํด๋์ค๋ฅผ ์ ์ํ๊ณ
๊ฐ ํด๋์ค๋ค์ด calculatePay์ monthlyBasePay ์คํผ๋ ์ด์
์ ์ ์ ํ๊ฒ ๊ตฌํํ๊ฒ ๋ ๊ฒ์ด๋ค.
๊ณตํต๋ก์ง์ ๋ถ๋ชจ ํด๋์ค์ ์์นํ๋ค.

๋ด๋ถ ์ํ ์ ์ฐจ๋ ๋ค๋ฅด์ง๋ง ํด๋์ค๋ฅผ ์ด์ฉํ ๋คํ์ฑ์ ์ ์ฐจ์ ๋ํ ์ฐจ์ด์ ์ ๊ฐ์ถ๋ค.
์ฆ, ๊ฐ์ฒด์งํฅ์ ์ ์ฐจ ์ถ์ํ๋ค.
์ถ์ ๋ฐ์ดํฐ ํ์
์ ์คํผ๋ ์ด์
์ ๊ธฐ์ค์ผ๋ก ํ์
๋ค์ ์ถ์ํํ๋ค.
ํด๋์ค๋ ํ์
์ ๊ธฐ์ค์ผ๋ก ์ ์ฐจ๋ค์ ์ถ์ํํ๋ค.
ํด๋์ค๋ฅผ ๊ตฌํ ๋จ์๋ก ์ฌ์ฉํ๋ค๋ ๊ฒ์ด ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ํ๋ค๋ ์๋ฏธ๋ ์๋๋ค.
ํ์
์ ๊ธฐ์ค์ผ๋ก ์ถ์ํํ์ง ์์๋ค๋ฉด ๊ทธ๊ฒ์ ๊ฐ์ฒด์งํฅ ๋ถํด๊ฐ ์๋๋ค.
๋น๋ก ํด๋์ค๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๊ณ ํ๋๋ผ๋ ๋ง์ด๋ค.
ํ์
๋ณ์๋ฅผ ์ด์ฉํ ์กฐ๊ฑด๋ฌธ์ ๋คํ์ฑ์ผ๋ก ๋์ฒดํ๋ค.
๊ฐ์ฒด๊ฐ ๋ฉ์ธ์ง๋ฅผ ์ฒ๋ฆฌํ ์ ์ ํ ๋ฉ์๋๋ฅผ ์ ํํ๋ค.
๊ฐ์ฒด์งํฅ์ด๋ ์กฐ๊ฑด๋ฌธ์ ์ ๊ฑฐํ๋ ๊ฒ์ด๋ผ๊ณ ์ด๋์ ๋ ํ ์ ์๋ค.
์กฐ๊ฑด๋ฌธ ์ฒดํฌ ๋ก์ง์ ํ๋ํ๋ ๋ค ์ฐพ์์ ์์ ํด์ผํ๊ธฐ ๋๋ฌธ์ด๋ค.

Open-Closed Principle : ๊ธฐ์กด ์ฝ๋์ ์๋ฌด๋ฐ ์ํฅ๋ ๋ฏธ์น์ง ์๊ณ ์๋ก์ด ๊ฐ์ฒด ์ ํ๊ณผ ํ์๋ฅผ ์ถ๊ฐํ ์ ์๋ ๊ฐ์ฒด์งํฅ์ ํน์ฑ
์ถ์ฒ
์ค๋ธ์ ํธ - ์ฝ๋๋ก ์ดํดํ๋ ๊ฐ์ฒด์งํฅ ์ค๊ณ
https://github.com/eternity-oop/object