๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ๊ณผ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ์ฃผ์ ๊ฐ๋ 4๊ฐ์ง๋ ํ์ตํ๋ค.
๊ฐ์ฒด ์งํฅ ์ธ์ด
- "ํด๋์ค"๋ผ๋ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ฒญ์ฌ์ง์ ์ฌ์ฉํด ์ฝ๋ ์์ฑ
- Javascript๋ ๊ฐ์ฒด ์งํฅ ํจํด์ผ๋ก ์์ฑ ๊ฐ๋ฅํ๋ค.
- ๊ฐ์ฒด ์งํฅ์ ํน์ง์ ๋น ๋ฅด๊ฒ ํ๋ ์ธ์ด์ ์ ์ฉ ๋์๋ค.
โ ์บก์ํ(Encapsultion), โก ์ถ์ํ(Abstraction), โข ์์(Inheritanece), โฃ ๋คํ์ฑ(Polymorphism) 4๊ฐ์ง ์ฃผ์ ๊ฐ๋ ์ด ์๋ค.
์ฝ๋ ์คํ ์์์ ๋ฐ๋ผ ์ ์ฐจ์ ์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์๋,
์ฝ๋๊ฐ ์์งํ๋ ์ค์ ๋ชจ์ต๊ณผ ๋ฎ๊ฒ ์ฝ๋๋ฅผ ๋ชจ์ ๊ฒฐํฉ ํ๋ ๊ฒ์ ์๋ฏธ
์ฅ์
- ์ฝ๋๋ฅผ ๋ณต์กํ๊ธฐ ์๊ฒ ๋ง๋ ๋ค.
- ์ฌ์ฌ์ฉ์ด ๋๋ค.
์๋ฅผ ๋ค์ด ์ปดํจํฐ ๋ด๋ถ๋ ๋ณต์กํ๊ฒ ๋์ด์์ผ๋ ์ธ๋ถ ๋ชจ์ต์ ๋จ์ํ๊ฒ ๋์ด์๋ค.
์ฅ์
- ์ฝ๋๋ฅผ ๋ณต์กํ์ง ์๊ฒ ๋ง๋ ๋ค.
- ๋จ์ํ๋ ์ฌ์ฉ์ผ๋ก ๋ณํ์ ๋ํญ ์ํฅ์ด ์ต์ํ ๋๋ค.
์๋ฅผ ๋ค์ด [์ฌ๋]ํด๋์ค์ [ํ์] ํด๋์ค๋ฅผ ๋ง๋ค์์ ๋ [ํ์]์ ๋ณธ์ง์ ์ฌ๋์ผ๋ก [์ฌ๋]์ ์์ฑ๊ณผ ๋ฉ์๋๋ฅผ [ํ์]์ ์์ ํ [ํ์]์ ํ์ํ ์์ฑ๊ณผ ๋ฉ์๋๋ง ์ถ๊ฐํด ์ค๋ค.
์ฅ์
- ๋ถํ์ํ ์ฝ๋๋ฅผ ์ค์ฌ ์ค๋ค.
- ์ฌ์ฌ์ฉ์ฑ์ด ๋๋ค.
๋ง์ฝ, ๋คํฅ์ฑ์ ์ ๊ณตํ์ง ์์ ๊ฒฝ์ฐ ํด๋์ค์ ์ข ๋ฅ๋ณ๋ก ํ๋ ํ๋ ๋ค๋ฅด๊ฒ ๋ง๋ค์ด์ผํ๋ค.
์ฅ์
- ๋์ผํ ๋ฉ์๋์ ๋ํด ์กฐ๊ฑด๋ฌธ ๋์ ๊ฐ์ฒด์ ํน์ฑ์ ๋ง๊ฒ ๋ค๋ฅด๊ฒ ์์ฑํ๋ ๊ฒ์ด๊ฐ๋ฅํ๋ค.
๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ(OOP)์ ํ์ตํ๊ณ ํ๊ณ
์ฃผ์ ๊ฐ๋
4๊ฐ์ง(์บก์ํ, ์ถ์ํ, ์์, ๋คํ์ฑ)๋ฅผ ์์ฉํด์
์ฝ๋๋ฅผ ๋ณต์กํ์ง ์๊ณ ์ฌ์ฌ์ฉ์ฑ์ด ๊ฐ๋ฅํ ์ฝ๋๋ฅผ ์์ฑํ๋๊ฒ ์ค์ํ๋ค๊ณ ์๊ฐํ๊ฒ ๋์๋ค.
๋ค๋ฅธ ์ฌ๋์ด ๋ณด์๋ "์ ์ด๊ฑด ์ด๋ฐ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์ด๋ฐ์์ผ๋ก ์ถ๊ฐํ๋ฉด ์๋ ๋๊ฒ ๋ค" ๋ผ๋ ์๊ฐ์ ๊ฐ์ง ์ ์๋๋ก
์ดํดํ๊ณ ์์ฉํ๋ ์ฐ์ต์ ํด์ผ๊ฒ ๋ค.