
๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ(Object Oriented Programming, OOP)์ด๋? ํ๋์ ์ฒญ์ฌ์ง์ ๋ง๋ค๊ณ ๊ทธ ์ฒญ์ฌ์ง์ ๋ฐํ์ผ๋ก, ์ฆ ์๋ฐ์คํฌ๋ฆฝํธ์์๋ class๋ฅผ ๋ฐํ์ผ๋ก ํ๋ ํ๋์ ๊ฐ์ฒด, ์ฆ instance๋ฅผ ๋ง๋๋ ํ๋ก๊ทธ๋๋ฐ ํจํด์ ์๋ฏธํ๋ค. ์กฐ๊ธ ๋ ๋ง๋ถ์ด์๋ฉด, ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ๋ชจ๋ ๊ฒ์ "๊ฐ์ฒด"๋ก ๋ฐ์๋ค์ด๊ณ ๊ธฐ์กด์ ๋ง๋ค์ด ๋ ๊ฐ์ฒด๋ฅผ ์ฌ์ฌ์ฉํ ์ ์๋ค. โ๏ธ OOP์ 4๊ฐ์ง ํน์ง ์บก์ํ(Encapsulation) : ๊ฐ์ฒด์ ์์ฑ๊ณผ ๋ฉ์๋๋ฅผ ํ๋๋ก ๋ฌถ๋ ๊ฒ์ ๋งํ๋ค. ํน์ ์์ฑ์ด๋ ๋ฉ์๋๋ฅผ ๊ฐ์ถ ์ ์๊ธฐ ๋๋ฌธ์ ์ ๋ณด ์๋์ผ๋ก ์ฌ์ฉํ ์ ์๋ค. ๋๋ถ๋ถ์ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ ํด๋์ค๋ฅผ ์ ์ํ๊ณ ๊ทธ ํด๋์ค๋ฅผ ๊ตฌ์ฑํ๋ ์์ฑ๊ณผ ๋ฉ์๋์ ๋ํด public, privat..

๊ฐ์ฒด ์งํฅ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ด๋? ํ๋์ ์ฒญ์ฌ์ง์ ๋ง๋ค๊ณ ๊ทธ ์ฒญ์ฌ์ง์ ๋ฐํ์ผ๋ก, ์ฆ ์๋ฐ์คํฌ๋ฆฝํธ์์๋ class๋ฅผ ๋ฐํ์ผ๋ก ํ๋ ํ๋์ ๊ฐ์ฒด, ์ฆ instance๋ฅผ ๋ง๋๋ ํ๋ก๊ทธ๋๋ฐ ํจํด์ ์๋ฏธํ๋ค. โ๏ธ ํด๋์ค์ ์ธ์คํด์ค ํด๋์ค๋ ์์ฑ๊ณผ ๋ฉ์๋๋ฅผ ์ ์ํ๋ ๊ณต๊ฐ์ด๊ณ ์ธ์คํด์ค๋ ํด๋์ค์์ ์ ์๋ ์ ๋ณด๋๋ฅผ ๊ฐ์ ธ์ ์ด์ฉํ๋ ๊ฐ์ฒด์ด๋ค. ์์ฑ์ ํด๋์ค์ ํฌํจ๋๋ ๋ณ์๋ฅผ ์๋ฏธํ๊ณ , ๋ฉ์๋๋ ํด๋์ค์ ํฌํจ๋๋ ํจ์๋ฅผ ์๋ฏธํ๋ค. ํด๋์ค๋ฅผ ์ ์ํ๋ ๋ฐ์๋ 2๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค. ํจ์๋ก ์ ์ (ES5 ๋ฌธ๋ฒ) function Introduce(name, age, favorite) { // ์ธ์คํด์ค ๋ง๋ค์ด์ง ๋ ์คํ๋๋ ์ฝ๋ } class ํค์๋๋ก ์ ์ (ES6 ๋ฌธ๋ฒ) class Introduce { constructor(..