๋ฏธ์
์ฒซ ์ธ์ ๋ฐ ์ค๊ณ ๋ฐฉํฅ ๐ก
๋ฏธ์
์ ์ฒ์๋ณด๊ณ , ์ค๋๋ ๋ฐค์์ ํด์ผํ ๊ฒ ๊ฐ๊ตฌ๋โฆ.๋ผ๊ณ ์๊ฐํ๋ค.๐ซฅ ๊ทธ๋ฐ๋ฐ, ๋ฏธ์
์ ์ฐฌ์ฐฌํ ์ฝ์ด๋ณด๋, ์ค๊ณ๋ฅผ ํํํ ํ๊ณ , ์๊ตฌ ์ฌํญ์ ๋นผ๋์ง ์๊ณ ์ฐฌ์ฐฌํ ํ๋ํ๋ ๊ตฌํํ๋ฉด, ์๊ฐ๋ณด๋ค ๋จ๊ณ๋ณ๋ก ์ ํด๊ฒฐํ ์๋ ์๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์๋ค.
์ค๊ณ๋ ํด๋์ค๋ฅผ ํจ์จ์ ์ผ๋ก ๋๋๊ณ , ๊ทธ ํด๋์ค๋ค์ ์ ์๋ ๊ฒ์ด ์ค์ํ๊ฒ ๋ค๊ณ ์๊ฐํ๋ค.
๋ฏธ์
ํด๊ฒฐ ์ค ๋ฌธ์ ์
- ๋๋ฌด ๋๋ฌด ๋ณต์กํด์, ๋นผ๋จน๊ฑฐ๋ ์ค๊ณ์์ ๋ถ์กฑํ๋ ๋ถ๋ถ์ ํด๊ฒฐํ๋ฉฐ ๊ตฌํํ๋๋ฐ ์ด๋ ค์์ ๊ฒช์๋ค.
์ค๋ ๊ณต๋ถํ ์ด๋ก ๐
-
๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ
: ํ๋ก๊ทธ๋๋ฐ์์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ถ์ํ์์ผ ์ํ์ ํ์๋ฅผ ๊ฐ์ง ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ณ , ๊ทธ ๊ฐ์ฒด๋ค ๊ฐ์ ์ ๊ธฐ์ ์ธ ์ํธ์์ฉ์ ํตํด ๋ก์ง์ ๊ตฌ์ฑํ๋ ํ๋ก๊ทธ๋จ ๋ฐฉ๋ฒ
-
์ฅ์
- ํ๋ก๊ทธ๋จ์ ๋ณด๋ค ์ ์ฐํ๊ณ ๋ณ๊ฒฝ ์ฉ์ดํ๊ฒ ๋ง๋ค ์ ์์.
- ์ฝ๋์ ๋ณ๊ฒฝ์ ์ต์ํํ๊ณ , ์ ์ง ๋ณด์์ ์ ๋ฆฌํจ.
- ์ฝ๋ ์ฌ์ฌ์ฉ์ ํตํด ๋ฐ๋ณต์ ์ธ ์ฝ๋ ์ต์ํ, ์ฝ๋๋ฅผ ์ต๋ํ ๊ฐ๊ฒฐํ๊ฒ ํํ ๊ฐ
- ๋ํ ํ๋ก์ ํธ์ ์ ํฉ ( ํด๋์ค ๋จ์๋ก ๋ชจ๋ํ ์์ผ ๊ฐ๋ฐ ๊ฐ๋ฅ)
-
๋จ์
- ์ฒ๋ฆฌ ์๋๊ฐ ์๋์ ์ผ๋ก ๋๋ฆผ
- ๊ฐ์ฒด๊ฐ ๋ง์ผ๋ฉด ์ฉ๋์ด ์ปค์ง ์ ์์.
- ์ค๊ณ ์ ๋ง์ ์๊ฐ๊ณผ ๋
ธ๋ ฅ์ด ํ์ํจ.
-
ํ๋ก๊ทธ๋๋ฐ ๊ตฌ์กฐ
- ํ๋กํผํฐ property์ ๋ฉ์๋ method
- ์บก์ํ encapsulation
- ์์ inheritance
- ๋คํ์ฑ polymorphism
-
ํด๋์ค, ๊ฐ์ฒด, ์ธ์คํด์ค
-
ํด๋์ค(Class)
-
๊ฐ์ฒด(Object)
- ๋ฌผ๋ฆฌ์ ์ผ๋ก ์กด์ฌํ๊ฑฐ๋ ์ถ์์ ์ผ๋ก ์๊ฐํ ์ ์๋ ๊ฒ ์ค์์ ์์ ์ ์์ฑ์ ๊ฐ์ง๊ณ ์๊ณ , ๋ค๋ฅธ ๊ฒ๊ณผ ์๋ณ ๊ฐ๋ฅํ ๊ฒ
-
์ธ์คํด์ค(Instance)
- ํด๋์ค๋ฅผ ํตํด ์์ฑ๋ ๊ฐ์ฒด ํ๋ํ๋๋ฅผ ์๋ฏธํจ.
-
์ธํฐํ์ด์ค
-
๋ชจ๋(module)
: ์ฝ๋๋ฅผ ๋ ์ ๊ตฌ์กฐํํ๊ณ ์ฌ์ฌ์ฉ์ฑ์ ๋์ด๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๋
๋ฆฝ์ ์ธ ์ฝ๋ ๋ธ๋ก
- ๋ชจ๋์ ์ฝ๋๋ฅผ ๋ถ๋ฆฌํ๊ณ ์ฌ์ฌ์ฉํ๊ธฐ ์ํ ๋
๋ฆฝ์ ์ธ ์ฝ๋ ๋ธ๋ก
- ๋ชจ๋์ ํ์ผ ๋จ์๋ก ๊ตฌ์ฑ๋๋ฉฐ,
export์ import๋ฅผ ํตํด ๋ชจ๋ ๊ฐ์ ์ฝ๋๋ฅผ ๊ณต์
- ํด๋์ค๋ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ธฐ ์ํ ํ
ํ๋ฆฟ
- ํด๋์ค๋ ์์ฑ๊ณผ ๋ฉ์๋๋ฅผ ํฌํจํ๋ฉฐ, ๊ฐ์ฒด ์ธ์คํด์ค๋ฅผ ์์ฑ ๊ฐ๋ฅ
-
๊ฐ์ ์ฐธ์กฐ (Indirection)
: ํน์ ๋ณ์๋ ๊ฐ์ฒด์ ์ง์ ์ ๊ทผํ๋ ๋์ , ๊ทธ ๋ณ์๋ ๊ฐ์ฒด์ ๋ํ ์ฐธ์กฐ๋ฅผ ํตํด ์ ๊ทผ
-
ํน์ ๋ณ์๋ ๊ฐ์ฒด์ ์ง์ ์ ๊ทผํ๋ ๋์ , ๊ทธ ๋ณ์๋ ๊ฐ์ฒด์ ๋ํ ์ฐธ์กฐ๋ฅผ ํตํด ์ ๊ทผ
-
๊ฐ์ ํ๊ฐ - eval์ ๊ฐ์ ์ ์ผ๋ก ํธ
-
์๋ฐ์คํฌ๋ฆฝํธ ํ๋กํ ํ์
๊ณผ ํด๋์ค
- object literal
- class์์ด ๋ฐ๋ก object๋ก ํํ
- ES classes pattern -ES2015
- class์์ ์ ๊ณตํ๋ constructor๋ผ๋ ์์ฑ์๊ฐ ์ฃผ์ด์ง.
- new ํค์๋ ํธ์ถ์ ํตํด constructor ์๋ ํธ์ถ
- constructor๊ฐ instance ๋ง๋ค์ด์ ๋ฐํํจ.
- prototype์ ๋ด๋ถ์ ์ผ๋ก ์ฌ
- constructor patter
- function์ new ํค์๋๋ก ํธ์ถํ๋ฉด, ๊ทธ ํจ์๋ constructor
- prototype pattern
- ๋ฉ์๋๋ฅผ prototype๊ฐ์ฒด์ ๋ณด๊ดํด์ constructor pattern๋ณด๋ค๋ ๋ฉ๋ชจ๋ฆฌ ํจ์จ ์ฑ์์ ๋งค์ฐ ์ ๋ฆฌ
- Object.create
- Object.create๋ ์ง์ ์ ์ผ๋ก prototypeํค์๋๋ฅผ ์ฌ์ฉํ์ง ์์ง๋ง, Prototype object๋ฅผ ๋ง๋๋ ๊ฒ๊ณผ ๋์ผ
๋ ๋์ ๋ด๊ฐ ๋๊ธฐ ์ํ ๋ฐ์ ์ฒดํฌ ํฌ์ธํธ๐