๐ Item49 ~ 51
   Item49. ์ฝ๋ฐฑ์์ this์ ๋ํ ํ์
 ์ ๊ณตํ๊ธฐ
  (1) class ๋ด์์์ this
 - ResetButton์์- onClick์ ํธ์ถํ๋ฉด- this๋ฐ์ธ๋ฉ ๋ฌธ์ ๋ก ์ธํด "Reset์ด ์ ์๋์ง ์์์ต๋๋ค"๋ผ๋ ๊ฒฝ๊ณ ๊ฐ ๋ฌ๋ค.
- ์ผ๋ฐ์ ์ธ ํด๊ฒฐ์ฑ
์ ์์ฑ์์์ ๋ฉ์๋์ this๋ฅผ ๋ฐ์ธ๋ฉ์ํค๋ ๊ฒ์ด๋ค.
- onClick๋ฉ์๋๋- ResetButton.prototype์ ์์ฑ์ ์ ์ํ๋ค.- ๊ทธ๋ฌ๋ฏ๋ก ResetButton์ ๋ชจ๋  ์ธ์คํด์ค์์ ๊ณต์ ๋๋ค.
 
- ๊ทธ๋ฌ๋ ์์ฑ์์์ this.onClick = ...์ผ๋ก ๋ฐ์ธ๋ฉํ๋ฉด,onClick์์ฑ์this๊ฐ ๋ฐ์ธ๋ฉ๋์ด ํด๋น ์ธ์คํด์ค์ ์์ฑ๋๋ค.- ์์ฑ ํ์ ์์์์ onClick์ธ์คํด์ค ์์ฑ์onClickํ๋กํ ํ์
 ์์ฑ๋ณด๋ค ์์ ๋์ด๋ฏ๋ก,render()๋ฉ์๋์this.onClick์ ๋ฐ์ธ๋ฉ๋ ํจ์๋ฅผ ์ฐธ์กฐํ๊ฒ ๋๋ค.
 
- ์กฐ๊ธ ๋ ๊ฐ๋จํ ํด๊ฒฐ์ฑ
์ผ๋ก ํ์ดํ ํจ์๋ฅผ ์ฌ์ฉํ  ์ ์๋ค.
 (2) ์ฝ๋ฐฑ ํจ์์ ๋งค๊ฐ๋ณ์์ this ๋๊ธฐ๊ธฐ
 - ์ฝ๋ฐฑ ํจ์์ ๋งค๊ฐ๋ณ์์ this๋ฅผ ์ถ๊ฐํ๊ณ , ์ฝ๋ฐฑ ํจ์๋ฅผcall๋ก ํธ์ถํด์ ํด๊ฒฐ
- this๋ฐ์ธ๋ฉ์ด ๋์ํ๋ ์๋ฆฌ๋ฅผ ์ดํดํด์ผ ํ๋ค.
- ์ฝ๋ฐฑ ํจ์์์ this๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค๋ฉด, ํ์
 ์ ๋ณด๋ฅผ ๋ช
์ํด์ผ ํ๋ค.
 Item50. ์ค๋ฒ๋ก๋ฉ ํ์
๋ณด๋ค๋ ์กฐ๊ฑด๋ถ ํ์
์ ์ฌ์ฉํ๊ธฐ
 - ์์ ๊ฐ์ด ์ ์ธํ๋ฉด ๋ชจํธํ ๋ถ๋ถ์ด ์๋ค.
- numberํ์
์ ๋งค๊ฐ๋ณ์๋ก ๋ฃ์ผ๋ฉด- numberํ์
์,- stringํ์
์ ๋งค๊ฐ๋ณ์๋ก ๋ฃ์ผ๋ฉด- stringํ์
์ ๋ฐํํ๋- numberํ์
์ ๋งค๊ฐ๋ณ์๋ก ๋ฃ๊ณ- stringํ์
์ ๋ฐํํ๋ ๊ฒฝ์ฐ๋ ํฌํจ๋์ด ์๋ค.
- ๊ทธ๋์ ์ ๋ค๋ฆญ์ ์ฌ์ฉํ๋ฉด ์ด๋ฌํ ๋์์ ๋ชจ๋ธ๋งํ  ์ ์๋ค.
 
- ํ์
์ ๊ตฌ์ฒด์ ์ผ๋ก ๋ง๋ค์ด ๋ณด๋ ค๋ ์๋๋ ์ข์์ผ๋ ๋๋ฌด ๊ณผํ๋ค. ํ์
์ด ๋๋ฌด ๊ณผํ๊ฒ ๊ตฌ์ฒด์ ์ด๋ค.
- stringํ์
์ ๋งค๊ฐ๋ณ์๋ก ๋๊ธฐ๋ฉด- stringํ์
์ด ๋ฐํ๋์ด์ผ ํ๋ค.
 
- ๊ทธ๋์ ์ด๋ฌํ ๊ฒฝ์ฐ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ฌ๋ฌ ๊ฐ์ง ํ์
 ์ ์ธ์ผ๋ก ๋ถ๋ฆฌํ  ์ ์๋ค.
- string์ด๋- numberํ์
์ ๊ฐ์ผ๋ก๋ ์ ๋์ํ์ง๋ง, ์ ๋์จ ํ์
 ๊ด๋ จํด์ ๋ฌธ์ ๊ฐ ์ฌ์ ํ ๋ฐ์ํ๋ค.
- ์ค๋ฒ๋ก๋ฉ (string | numberํ์
)์ ์ถ๊ฐํด์ ์ถ๊ฐํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ  ์ ์์ง๋ง, ๊ฐ์ฅ ์ข์ ํด๊ฒฐ์ฑ
์ **์กฐ๊ฑด๋ถ ํ์
**์ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค.
- T๊ฐ- string์ ๋ถ๋ถ ์งํฉ์ด๋ฉด(- string, ๋๋ ๋ฌธ์์ด ๋ฆฌํฐ๋ด, ๋๋ ๋ฌธ์์ด ๋ฆฌํฐ๋ด์ ์ ๋์จ), ๋ฐํ ํ์
์ด- string์ด๋ค.
- ๊ทธ ์ธ์ ๊ฒฝ์ฐ๋ ๋ฐํ ํ์
์ด number์ด๋ค.
- ์ค๋ฒ๋ก๋ฉ ํ์
๋ณด๋ค ์กฐ๊ฑด๋ถ ํ์
์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
- ์กฐ๊ฑด๋ถ ํ์
์ ์ถ๊ฐ์ ์ธ ์ค๋ฒ๋ก๋ฉ ์์ด ์ ๋์จ ํ์
์ ์ง์ํ  ์ ์๋ค.
 
 Item51. ์์กด์ฑ ๋ถ๋ฆฌ๋ฅผ ์ํด ๋ฏธ๋ฌ ํ์
 ์ฌ์ฉํ๊ธฐ
 - @types/node๋- devDependencies๋ก ํฌํจํด์ผ ํ๋๋ฐ ์ด๋ ๊ฒ ํ๋ฉด ๋ ๊ทธ๋ฃน ์ฌ์ฉ์์๊ฒ ๋ฌธ์ ๊ฐ ์๊ธด๋ค.- @types์ ๋ฌด๊ดํ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์
- NodeJS์ ๋ฌด๊ดํ ํ์
์คํฌ๋ฆฝํธ ์น ๊ฐ๋ฐ์
 
- ๊ทธ๋์ ๊ฐ์๊ฐ ํ์ํ ๋ชจ๋๋ง ์ฌ์ฉํ  ์ ์๋๋ก ๊ตฌ์กฐ์  ํ์ดํ์ ์ ์ฉํ  ์ ์๋ค.
- @types/node์ ์๋- Buffer์ ์ธ์ ์ฌ์ฉํ์ง ์๊ณ , ํ์ํ ๋ฉ์๋์ ์์ฑ๋ง ๋ณ๋๋ก ์์ฑํ  ์ ์๋ค.
 
- CsvBuffer๋- Buffer์ธํฐํ์ด์ค๋ณด๋ค ํจ์ฌ ์งง์ผ๋ฉด์๋ ์ค์ ๋ก ํ์ํ ๋ถ๋ถ๋ง์ ๋ผ์ด ๋ด์ด ๋ช
์ํ๋ค.
- ๋ง์ฝ ์์ฑ ์ค์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์กดํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ตฌํ๊ณผ ๋ฌด๊ดํ๊ฒ ํ์
์๋ง ์์กดํ๋ค๋ฉด, ํ์ํ ์ ์ธ๋ถ๋ง ์ถ์ถํ์ฌ ์์ฑ ์ค์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฃ๋ ๊ฒ(๋ฏธ๋ฌ๋ง, mirroring)์ ๊ณ ๋ คํด ๋ณด๋ ๊ฒ์ด ์ข๋ค.
- ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ์
์ด ์๋ ๊ตฌํ์ ์์กดํ๋ ๊ฒฝ์ฐ์๋ ๋์ผํ ๊ธฐ๋ฒ์ ์ ์ฉํ  ์ ์๊ณ  ํ์
 ์์กด์ฑ์ ํผํ  ์ ์๋ค.
- ๊ทธ๋ฌ๋ ํ๋ก์ ํธ์ ์์กด์ฑ์ด ๋ค์ํด์ง๊ณ  ํ์ ์์กด์ฑ์ด ์ถ๊ฐ๋จ์ ๋ฐ๋ผ ๋ฏธ๋ฌ๋ง ๊ธฐ๋ฒ์ ์ ์ฉํ๊ธฐ๊ฐ ์ด๋ ค์์ง๋ค.
- ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ์
 ์ ์ธ์ ๋๋ถ๋ถ์ ์ถ์ถํด์ผ ํ๋ค๋ฉด, ์ฐจ๋ผ๋ฆฌ ๋ช
์์ ์ผ๋ก @types์์กด์ฑ์ ์ถ๊ฐํ๋ ๊ฒ ๋ซ๋ค.