๐ฎ๐ปโโ๏ธ ๋น์ ์ด ํ๋ฐํธ์๋ ๋ฉด์ ์์ ๋ง๋๊ฒ๋ ์ง๋ฌธ

## ๋ชฉ์ฐจ
- ๋ธ๋ผ์ฐ์ ๋ ๋๋ง ๊ณผ์
- Callback, Promise, Async/Await
- ํธ์ด์คํ
- ํด๋ก์
- This
- ์คํ์ปจํ ์คํธ
- ํ๋กํ ํ์
๐ธ๏ธ ๋ธ๋ผ์ฐ์ ์ ๋ ๋๋ง ๊ณผ์
- ์๋ฒ๋ก ๋ถํฐ ๋ฐ์ HTML ๊ณผ CSS ํ์ผ์ ๋ฐํ์ผ๋ก DOM Tree (Document Object Modal) ์CSSOM (CSS Object Model) ์ ๋ง๋ ๋ค.
- DOM Tree ์ CSSOM ์ ๋ฐํ์ผ๋ก ํ๋ฉด์ ๊ทธ๋ฆฌ๊ธฐ ์ํ ์ฉ๋์ธ Render Tree ๋ฅผ ๋ง๋ ๋ค.
- Render Tree ๋ฅผ ๋ฐํ์ผ๋ก ViewPort ๋ฅผ ๊ธฐ์ค์ผ๋ก Layout ๋ฐฐ์น๋ฅผ ๊ณ์ฐํฉ๋๋ค.
- ๊ณ์ฐ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ์ผ๋ก ์ค์ Paint ๊ฐ ์ผ์ด๋ฉ๋๋ค.
๐ฎ๐ปโโ๏ธ ViewPort ๊ฐ ๋ณํ๊ฑฐ๋, Node ๋ฐฐ์น๊ฐ ๋ฌ๋ผ์ก์ ๋ 3๋ฒ๊ณผ 4 ๋ฒ์ ์์ ์ด ๋ฐ๋ณต์ ์ผ๋ก ์ผ์ด๋๊ฒ ๋๋๋ฐ, ์ด๋ฅผ Reflow/RePaint ๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ ์ค์ DOM ์ ์ ๊ทผํ์ฌ ์์ ์ด ์ผ์ด๋๊ธฐ ๋๋ฌธ์ ๋ธ๋ผ์ฐ์ ๋ ์ด ์์ ์ ํ๋ค์ดํฉ๋๋ค.
Virtual dom ์ ์ด์ฉํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ๊ฐ์ ํ ์ ์์ต๋๋ค.
๏ธ๐ธ Callback๊ณผ Promise, Async/Await์ ์ฐจ์ด์
๋น๋๊ธฐ ์์
์ด๋ ์ธ์ ๋๋ ์ง ๋ชจ๋ฅด๋ ์์
์ ์๋ฏธํ๋ค.
ํ์ง๋ง ์ฐ๋ฆฌ๋ ์ฝ๋๋ฅผ ์์ฑํ ๋ ๋น๋๊ธฐ๋ฅผ ๋๊ธฐ์ฒ๋ผ ๋ณด์ฅ๋ฐ์์ผํ๋ ๊ฒฝ์ฐ๊ฐ ์๊ธฐ๋๋ฐ, ์ด๋ Callback, Promise, Async/Await ์ ํ์ ๋น๋ฆฌ๊ฒ๋๋ค.

1. Callback
๋จผ์ Callback ์ ์ด์ฉํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด๋ณด์.
๊ฐ๊ฐ์ fetcher ์์ ๋ค์ ์์
์ ํธ์ถํ๊ฒ ๋๋๋ฐ, ์ด๋ ๊ฒ ํ๋ฉด ์ฐ๋ฆฌ๊ฐ ์์ฐจ ๋ณด์ฅ์ด ๊ฐ๋ฅํ๋ค.
๏ธ๐ฎ๐ปโโ ๏ธํ์ง๋ง ์ค์ผ์ฅด ๊ด๋ฆฌํด์ผ๋ ํจ์๊ฐ ๋ง์์ง๋ค๋ฉด ๊ฐ๋
์ฑ์ด ํ์ ํ๊ฒ ๋จ์ด์ง๊ฒ๋๊ณ , callback ์ ๋ค๋ก ๋ค๋ฅธ ์ฝ๋๊ฐ ๋ค์ด๊ฐ๋ฉด์ ์์
์ ๋ถ๋ฆฌ๊ฐ ๊น๋ํ๊ฒ ๋์ง ์๋ ๋ฌธ์ ๊ฐ ์๋ค.

2. Promise
Callback ์ ๋จ์ ์ ๋ณด์ํ๊ฒ Promise ์ด๋ค. Promise๋ then ์ด๋ผ๋ ํจ์๋ฅผ ์ด์ฉํด ์์
๋จ์๋ก ํจ์๋ฅผ ์ชผ๊ฐ๊ณ , Resolve์ Reject Callback ์ ์ด์ฉํด ์ํฉ์ ๋ง๊ฒ ๊ฐ์ ์ ๋ฌํ๋ค.

๐ฎ๐ปโโ๏ธ ๊ฐ๋ ์ฑ ์ธก๋ฉด์์๋ Callback ๋ณด๋ค ์ข์์ก์ง๋ง, Promise ์ธํฐํ์ด์ค์ ์์กดํด์ผ๋๋ค๋ ๋ฌธ์ ๊ฐ ์๋ค. ์๋ฅผ๋ค๋ฉด then ์์ ์ฝ๋๊ฐ ๋ฌถ์ธ๋ค๊ฑฐ๋ error ์ฒ๋ฆฌ๋ฅผ ์ํด try/catch ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ Promise ์ then/catch ์์์ ํ๋ ์๋ฌ์ ์ค๋ณต์ผ๋ก ์ฒ๋ฆฌ๋ฅผ ํด์ผ๋๋ ๋ฌธ์ ๊ฐ ์๋ค.
3. Async/Await
Promise ์ ๋จ์ ์ ๋ณด์ํ ๊ฒ์ด Async/Await ์ด๋ค.
Async Function ์ ๋ง๋ค๊ณ ๋ด๋ถ์์ Await ์ ์ด์ฉํ์ฌ ์ค์ผ์ฅด ์์๋ฅผ ์ ํ๊ฒ๋๋ค. ๊ฐ๋
์ฑ์ด ์ข๊ณ , ์ธํฐํ์ด์ค์ ๋ฌถ์ด์ง ์๊ธฐ ๋๋ฌธ์ ์ฝ๋ ๋ถ๋ฆฌ๊ฐ ์์ฝ๊ณ ๋ชจ๋ํํ๊ธฐ๋ ์ข๋ค.

๏ธ๐ธ ํธ์ด์คํ (Hoisting)
ํธ์ด์คํ ์ด๋ ์คํ์ ์ ํจํ ์ค์ฝํ๋ด์์ ๋ณ์ ์ ์ธ๋ถ๋ฅผ ๋์ด์ฌ๋ฆฌ๋ ๊ฒ์ ์๋ฏธํ๋ค.
- ๋ณ์ ํธ์ด์คํ

๋ณ์ ํธ์ด์คํ
์ ๊ฒฝ์ฐ ์ ์ธ๊ณผ ํ ๋น์ผ๋ก ๋๋ ์ง๊ฒ๋๋ค. ์ ์ธ์ var name;
์ํ ๋น์ name = "olaf"
๋ฅผ ์๋ฏธํ๋ค.
ํธ์ด์คํ
์ ์ ์ธ๋ถ๋ง ๋์ด์ฌ๋ฆฌ๊ฒ๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์์ ์ฝ๋๋ ์คํ์ ์๋์ ๊ฐ์ด ๋ณํ๊ฒ๋๋ค. console.log
์์ ์๋ ํ ๋น์ด ์ผ์ด๋์ง ์์๊ธฐ ๋๋ฌธ์ undefined ๊ฐ ์ฐํ๊ฒ ๋๋๊ฒ์ด๋ค.

2. ํจ์ ํธ์ด์คํ (ํจ์ ์ ์ธ์ ํธ์ด์คํ )
ํจ์ ์์ฒด๊ฐ ๋์ด์ฌ๋ ค์ง๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์ ํฐ ๋ฌด๋ฆฌ๊ฐ ์๋ค.
ํ์ง๋ง ์ ์ธ์ ์ฝ๋ ์ฌ์ฉ์ ๊ธฐ๋ณธ ๊ท์น์ ์ด๊ธ๋๋ค.
Lint ๋ฅผ ์ด์ฉํ์ฌ ์ ์ธ์ ์๋ ์ฌ์ฉํ์ง ๋ชปํ๋ค๋ ์ต์
์ ์ถ๊ฐํ๋ค๋ฉด ํ๋ฆ์ ํผ๋์ ๋ฐฉ์ง ํ ์ ์๋ค.

3. let, const
var ์ ํธ์ด์คํ
๊ณผ let, const ์ ํธ์ด์คํ
์ ๋ค๋ฅด๋ค.
let ๊ณผ const ๋ ๊ฐ์ ํ ๋น์ ์ ์ ๊ทผ์ ํ์ฉํ์ง ์๋๋ค.
let, const ๋ TDZ (temporal dead zone) ์ ์ํ๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ํ ๋น์ ์ ์ ๊ทผํ๋ คํ๋ค๋ฉด, ReferenceError ๋ฅผ ๋ง๋๊ฒ ๋ ๊ฒ์ด๋ค.

https://github.com/ajzawawi/js-interview-prep/blob/master/answers/es6/temporal-dead-zone.md
๏ธ๐ธ ํด๋ก์
ํด๋ก์ ๋ ์์ฑ๋ ๋น์์ ์ค์ฝํ์ฒด์ธ์ ๊ธฐ์ตํ๋ ํจ์์ด๋ค.
- ์ค์ฝํ์ฒด์ธ

inner ๋ด๋ถ์์ num
์ด๋ผ๋ ๋ณ์์ ์ ๊ทผํ๋ คํ๋ค.
์ ์ผ ๋จผ์ inner์ ๋ด๋ถ์์ num
์ ์ฐพ์ผ๋ คํ๋๋ฐ, inner ๋ด๋ถ์๋ num
์ด ์กด์ฌํ์ง ์๋๋ค. ์ด๋ ๋ค์์ผ๋ก inner ๋ฅผ ๊ฐ์ธ๊ณ ์๋ outer ์์ num
์ ์ฐพ์ผ๋ คํ๋๋ฐ, ์ด์ฒ๋ผ ๋ด๋ถ์์ ๋ฐ์ผ๋ก ์ด์ด์ง๋ ์ค์ฝํ๋ฅผ ์ค์ฝํ ์ฒด์ธ์ด๋ผ๊ณ ํ๋ค.
2. ํด๋ก์

- outer ๋ inner ๋ผ๋ ํจ์๋ฅผ ๋ฆฌํดํ๋ค.
- inner ๋ ์์ฑ ๋น์์ ์ค์ฝํ ์ฒด์ธ์ ๊ธฐ์ตํ๊ณ ์๋ค.
- foo ๋ผ๋ ๋ณ์์ outer ์ return ๊ฐ์ธ inner (๋ด๋ถ์์ ์ธ๋ถ๋ฅผ ์ฐธ์กฐํ๋ ์ค์ฝํ ์ฒด์ธ์ ๊ธฐ์ตํ๊ณ ์๋)๋ฅผ ๋ด์๋ค.
- foo() ๋ฅผ ์คํํ๋ค. ์ด๋ inner() ๋ฅผ ์คํํ๋ ๊ฒ๊ณผ ๊ฐ๋ค. inner ๋ ์ค์ฝํ์ฒด์ธ์ ๊ธฐ์ตํ๊ณ ์๊ธฐ ๋๋ฌธ์ outer ์ num ๊น์ง ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก num ์๋ 10 ์ด ์ถ๋ ฅ๋๋ค.
์ธ์ ํด๋ก์ ๋ฅผ ์ด์ฉํ ๊น ?
- private ์ ๊ทผ์ ์ด: Javascript ์๋ ์ผ๋ฐ์ ์ผ๋ก ์ ๊ทผ ์ ์ด์๋ผ๋ ๊ฐ์ด ์๋ค. private ํ๊ฒ ๊ฐ์ ์ ๊ทผ์ ์ ์ดํ๊ณ ์ถ๋ค๋ฉด ์ค์ฝํ๋ฅผ ์ด์ฉ ํ ์ ์๋๋ฐ, ์ด ๋ ํด๋ก์ ๋ฅผ ์ฌ์ฉํ๋ค.
ํด๋ก์ ๋ฅผ ์ด์ฉํ๋ฉด ์๋์ ๊ฐ์ด count ๋ณ์๋ฅผ ์จ๊ธฐ๋ฉฐ ๊ฐ์ ์ ์ด ํ ์ ์๋๋ก ๋ง๋ค ์ ์๋ค.

- ํจ์ํ ํ๋ก๊ทธ๋๋ฐ: ์ฌ์ด๋์ดํํธ๋ฅผ ์ผ์ผํค์ง ์๋ ๋ชฉ์ ์ ๊ฐ์ง ํจ์๋ค์ ์กฐํฉ
add ๋ผ๋ ํจ์๋ a ๋ผ๋ ์ธ์๋ฅผ ๋ฐ์ ์๋ก์ด b ๋ผ๋ ์ธ์์ ๋ํด์ฃผ๋ ํจ์(๊ธฐ์กด์ a ๋ฅผ ์ฐธ์กฐํ ์ํ๋ก ๋ฆฌํด๋๋ค)๋ฅผ ๋ฆฌํดํ๋ค.
์ฐ๋ฆฌ๋ add ๋ผ๋ ํจ์๋ฅผ ์ด์ฉํ์ฌ ์ด๋ค ๊ฐ์ด ๋ค์ด์ค๋๋ผ๋ 10 ์ ๋ํด์ฃผ๋ add10
์ด๋ผ๋ ํจ์๋ฅผ ๋ง๋ค ์ ์๋ค.

- ๋ฃจํ ๋ด๋ถ์ ํด๋ก์ : ํด๋ก์ ๊ฐ ๊ฐ์ง ์ค์ฝํ ๋ฌธ์
๊ต์ฅํ ์ ๋ช ํ ๋จ๊ณจ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํ๋ค. for ๋ฃจํ๋ฅผ ๋๋ฉด์ setTimeout ์ด ๋๋ค. ๋น์ฐํ ํด๋น setTimeout callback ์ 0 ์ time ์ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ ํด๋น๋ฒ์งธ์ index ๊ฐ ์ฐํ ๊ฒ ์ด๋ผ๋ ๊ธฐ๋๋ฅผ ๊ฐ์ง๊ฒํ๋ค.

ํ์ง๋ง ๊ธฐ๋ํ๋ ๊ฒฐ๊ณผ์๋ ๋ค๋ฅด๊ฒ i ์๋ 6 ์ด๋ผ๋ ๊ฐ์ด ์ฐํ๊ฒ๋๋๋ฐ, ์ฝ๊ฒ ์ค๋ช ํ์๋ฉด setTimeout ์ด ๋์ํ๋๊ณณ๊ณผ for ๋ฌธ์ด ๋์ํ๋ ๊ณณ์ด๋ค๋ฅด๋ค. for ๋ฌธ์ด ๋จผ์ ๋์ํ๊ณ for ์ ๋์์ด ๋๋๋ฉด setTimeout ์ด ํธ์ถ๋๋ค. ์ด๋๋ ์ด๋ฏธ i ๊ฐ 6์ด๋ ์ํ์ด๊ธฐ ๋๋ฌธ์ console ์๋ 6์ด ์ถ๋ ฅ๋๋ ๊ฒ์ด๋ค.
์ด ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐ ํ ์ ์์๊น?
๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ์ฆ์ ์คํํจ์๋ฅผ ์ด์ฉํด index๋ณ๋ก ํจ์๋ฅผ ์คํํ์ฌ ์ค์ฝํ๋ฅผ ๊ฐ๋ผ๋ฒ๋ฆฌ๋ ๊ฒ์ด๋ค.

๋๋ let ์ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ด ์๋ค.

let ์ for ๋ฌธ์์ ํน์ดํ๊ฒ ๋์ํ๋๋ฐ, ํด๋น ์ฝ๋๊ฐ babel ์ ํต๊ณผํ์ฌ transpile ์ด ๋๋ค๋ฉด, setTimeout ๋ถ๋ถ์ ๋ณ๋์ ํจ์๋ก ๋ถ๋ฆฌํ์ฌ ์๋์ ๊ฐ์ด ๋์์ด ๋๋๋ก ๋ณ๊ฒฝํ๋ค.

๏ธ๐ธ This
This ๋ ํธ์ถํจํด์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค.
ํจ์ ํธ์ถํจํด, ๋ฉ์๋ ํธ์ถํจํด, ์์ฑ์ ํธ์ถํจํด.
ํฌ๊ฒ 3 ๊ฐ์ง์ ํจํด์ด ์๋ค.
- ํจ์ ํธ์ถ ํจํด
๋จผ์ ๊ธฐ๋ณธ์ ์ธ ํจ์ ํธ์ถ ํจํด์ ๋ํด์ ์์๋ณด์.
์ผ๋ฐ์ ์ธ ํจ์ํธ์ถ ํจํด์์์ this ๋ window ๋ฅผ ๊ฐ๋ฆฌํจ๋ค.

2. ๋ฉ์๋ ํธ์ถ ํจํด
ํธ์ถ๋ ํจ์๊ฐ ๊ฐ์ฒด์ ํ๋กํผํฐ๋ผ๋ฉด ๋ฉ์๋ ํธ์ถํจํด์ผ๋ก ํธ์ถ๋ฉ๋๋ค.
ํด๋น ๋ฉ์๋ ๋ด๋ถ์ this ๋ ๋ฉ์๋๋ฅผ ์์ ํ๊ณ ์๋ ๊ฐ์ฒด๋ก ๋ฐ์ธ๋ฉ๋ฉ๋๋ค.
ํ์ง๋ง, ๋ฉ์๋ ๋ด๋ถ์์ ํธ์ถ๋ ํจ์๋ ์ผ๋ฐ ํจ์ํธ์ถ ํจํด์ด ์ ์ฉ๋ฉ๋๋ค.

3. ์์ฑ์ ํธ์ถํจํด
ํจ์์ new ํค์๋๋ฅผ ๋ถ์ฌ์ ์คํ์ ํ๋ฉด ์์ฑ์ ํจ์๋ก ๋์ํ๋ค.
์์ฑ์ ํจ์ ์ฝ๋๊ฐ ์คํ๋๊ธฐ์ ๋น ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ์ด ๊ฐ์ฒด๋ this ๋ก ๋ฐ์ธ๋ฉ๋๋ค. ์์ฑ์ ํจ์์ ์ฝ๋ ๋ด๋ถ์์ ์ฌ์ฉ๋๋ this ๋ ์ด ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํจ๋ค.

4. Arrow Function
ArrowFunction ์๋ this ๊ฐ ์๋ค. ํน์ดํ๊ฒ๋ Arrow Function ์ this ๋ ์์ scope์ this ๋ฅผ ๊ฐ๋ฆฌํจ๋ค.

๏ธ๐ธ ํ๋กํ ํ์
๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ ์์ ์ ๋ถ๋ชจ๊ฒฉ์ธ ๊ฐ์ฒด์ ์ฐ๊ฒฐ๋๋ ๋งํฌ๋ฅผ ๊ฐ์ง๊ฒ ๋๋ค.

์์์ __proto__
๊ฐ ๋ถ๋ชจ๊ฒฉ์ธ ๊ฐ์ฒด์ ์ฐ๊ฒฐ๋ ๋งํฌ์ด๋ค.
์์ฑ์ ํจ์์ ๊ฒฝ์ฐ prototype
์ด๋ผ๋ ๊ฐ์ฒด๊ฐ ์์ฑ๋๋๋ฐ ์ด๋ ์๊ธฐ ์์ ๊ณผ ์ฐ๊ฒฐ๋ ๋งํฌ์ด๋ค. prototype
์ constructor ๋ผ๋ ํ๋กํผํฐ๋ฅผ ๊ฐ์ง ๊ฐ์ฒด์ด๋ค.
์์ฑ์ ํจ์๋ฅผ ํตํด ์์ฑ๋ ๊ฐ์ฒด๋ค์ ๋ถ๋ชจ๊ฒฉ์ธ ๊ฐ์ฒด๋ก ์์ฑ์ ํจ์์prototype
๊ณผ ๋งํฌ๊ฐ ์ฐ๊ฒฐ๋๋ค.

Person ์์ฑ์๋ฅผ ์ด์ฉํด์ ๋ง๋ ๊ฐ์ฒด์ด๋ค. __proto__
์์ Person ์์ฑ์์ prototype
๊ฐ์ฒด์ ๋งํฌํ๊ณ ํด๋น ๊ฐ์ฒด๋ Object ์ ๋งํฌ๋๋ค. Object ๋ ๋ชจ๋ ๊ฐ์ฒด์ ์ข
์ ์ด๋ค.
prototype
์ constructor ๋ผ๋ ํ๋กํผํฐ๋ฅผ ๊ฐ์ง ๊ฐ์ฒด๋ผ๊ณ ํ๋ค. ์ด ๋ง์ ํ๋กํผํฐ ๋๋ ๋ฉ์๋๋ฅผ ์ถ๊ฐ ํ ์ ์๋ค๋ ๊ฒ์ด๋ค.

์์ ์ฝ๋๋ฅผ ๋ณด๋ฉด Person ์ prototype
๊ฐ์ฒด์ getName ์ด๋ผ๋ ํจ์๋ฅผ ์ถ๊ฐํ๋ค. ๊ทธ๋ฆฌ๊ณ olaf ๋ผ๋ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด olaf.getName
์ผ๋ก ํจ์๋ฅผ ์คํํ๋ค. olaf ๋ผ๋ ๊ฐ์ฒด๋ getName ์ด๋ผ๋ ํจ์๋ฅผ ๊ฐ์ง๊ณ ์์ง ์๊ธฐ ๋๋ฌธ์ ์๋ฌ๊ฐ ๋์ผ ์ ์์ด์ง๋ง ์ ์์ ์ผ๋ก ์ด๋ฆ์ด ์ถ๋ ฅ๋ ๊ฑธ ๋ณผ ์ ์๋ค.
์ฌ๊ธฐ์ ์ฐ๋ฆฌ๋ ํ๋กํ ํ์ ์ฒด์ธ์ด๋ผ๋ ๊ฐ๋ ์ ์ ์ ์๋ค.
- olaf.getName ์ ์คํํ๊ฒ๋๋ฉด ์๊ธฐ ์์ ์์ ๋จผ์ getName ์ด๋ผ๋ ํจ์๋ฅผ ์ฐพ์ผ๋ ค ํ ๊ฒ์ด๋ค.
- ํ์ง๋ง getName ์ ์กด์ฌํ์ง ์๋๋ค. ์ด ๋ Person ๊ณผ ์ฐ๊ฒฐ๋ ํ๋กํ ํ์ ๋งํฌ๋ฅผ ์ฐพ์๊ฐ๊ฒ๋๋๋ฐ, Person ์ getName ์ด๋ผ๋ ๋ฉ์๋๋ฅผ ๊ฐ์ง๊ณ ์๋ค. olaf ๋ ํด๋น ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๊ฒ๋๋ค.
- ์ด์ฒ๋ผ ์์ ์ ์์ญ์์ ๋ถ๋ชจ ํ๋กํ ํ์
์์ญ์ผ๋ก ์ฌ๋ผ๊ฐ๋ฉด์ ์ฐพ๋๊ฒ์
ํ๋กํ ํ์ ์ฒด์ธ
์ด๋ผ๊ณ ํ๋ค.
์ด๋ฐ ๊ฐ๋ ์ ์ด์ฉํ๋ฉด class ์ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ฑ ํ ์ ์๊ณ , ์์ ๋ํ ๊ฐ๋ฅํ๋ค. ๋ํ ์ค๋ณต๋ ํจ์๋ค์ ํ๋กํ ํ์ ์์ญ์ ๋ฃ์ด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌ ํ ์๋ ์๋ค.