๐ 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
์์กด์ฑ์ ์ถ๊ฐํ๋ ๊ฒ ๋ซ๋ค.