๐ฏ ์ด๋ฒ ์ฃผ์ ๊ณต๋ถํ ๊ฒ
- [์๋ฃ๊ตฌ์กฐ&์๊ณ ๋ฆฌ์ฆ] ๋ฐฐ์ด, ์ฐ๊ฒฐ ๋ฆฌ์คํธ, ์คํ, ํ, ํด์ ํ ์ด๋ธ, ๊ทธ๋ํ, ํธ๋ฆฌ, ํธ๋ผ์ด
- [์น๊ฐ๋ฐ ์์] Generic
- [์ฝ๋ฉํ ์คํธ ๋ฌธ์ ํ์ด] ์ฌ๋ฐ๋ฅธ ๊ดํธ
- [์ฝ๋ฉํ ์คํธ ๋ฌธ์ ํ์ด] ํ๋ฆฐํฐ
- [์ฝ๋ฉํ ์คํธ ๋ฌธ์ ํ์ด] ๋ฒ ์คํธ ์จ๋ฒ
- [์ฝ๋ฉํ ์คํธ ๋ฌธ์ ํ์ด] ๊ฐ์ฅ ๋จผ ๋ ธ๋
๐ ๋ ๊ณต๋ถํด์ผ ํ ๊ฒ
- Map๊ณผ Set [์ฐธ๊ณ ๋ฌธ์]
- ํ, ์คํ, ์ฐ๊ฒฐ ๋ฆฌ์คํธ, ํด์ ํ ์ด๋ธ ๊ตฌํ
- ๋ธ๋ผ์ฐ์ ์๋ ์๋ฆฌ [์ฐธ๊ณ ๋ฌธ์]
- let, const์ ๋ธ๋ก ๋ ๋ฒจ ์ค์ฝํ [์ฐธ๊ณ ๋ฌธ์]
- ์ฝ๋ ๋ฆฌ๋ทฐ ๊ฐ์ด๋ [์ฐธ๊ณ ๋ฌธ์]
- ์คํ ์ปจํ ์คํธ [์ฐธ๊ณ ๋ฌธ์]
- Generic extends ๊ฐ๋
๐ Reflection
- ํ ์ฃผ ๋์ ๋๋ฌด ๋นก์ธ์ TIL ์ ๋ฆฌํ ์๊ฐ์ด ์์๋ค. ํ์ง๋ง ๊ทธ๋ฅ ๋์ด๊ฐ๊ธฐ์๋ ์ด๋ฒ ํ ์ฃผ ๋์ ๋ฐฐ์ด ๊ฒ ์ ๋ง ๋ง์์ ๊ฐ๋ตํ๊ฒ ์ ๋ฆฌํ๋ค.
- ํธ๋ฆฌ์ ํธ๋ผ์ด๋ฅผ ์ด์ฉํ ๊ณผ์ ๊ฐ ์์๋ค. ํ... ๋ด๊ธด ๋์ง๋ง ์ ๋๋ก ์ดํดํ ๊ฒ์ธ์ง ๋ชจ๋ฅด๊ฒ ๋ค. ๊ณผ์ ํ๋ฉด์ ๊นจ๋ฌ์ ๊ฒ์ ์ ์ด๋ ํ, ์คํ, ์ฐ๊ฒฐ ๋ฆฌ์คํธ, ํด์ ํ ์ด๋ธ, ์ด ๋ค๊ฐ์ง๋ ๋ ๊ฐ๊ณ ๋ ๊ตฌํํ ์ ์๋ ์ ๋๊ฐ ๋์ด์ผ ํ ๊ฒ ๊ฐ๋ค. ํนํ Map ์ด๊ฑฐ key์ ์ด๋ป๊ฒ ์ ๊ทผํ ์ ์๋์ง ๊ณ ๋ฏผํ๋๋ผ ์ง์ง ์๊ฐ ๋ง์ด ๋ฒ๋ ธ๋ค. ํธ๋ผ์ด ๊ณผ์ ๋ ์๋ ๋ ๋ฒจ ์ํ๋ฅผ ์์ฉํด์ ํ๋ผ๊ณ ํ์ จ๋๋ฐ ์ด๋ป๊ฒ ๊ทธ๊ฒ ๊ฐ๋ฅํ์ง ์์ง๋ ๋ชจ๋ฅด๊ฒ ๋ค. ์์ง ๊ฐ๋ ์ ์ ๋๋ก ์ดํด ๋ชปํ ๊ฒ ๊ฐ๋ค. ํธ๋ฆฌ ์ํ ๊ตฌํ ๊ณผ์ ๋ ์คํ์ผ๋ก๋ ํ ์ ์๋ ๋ฐฉ๋ฒ๋ ๊ณ ๋ฏผํด๋ด์ผ๊ฒ ๋ค.
- ์ค๋ ๋ฐ๋์ ๋์ ๋ฒ ์คํธ ์จ๋ฒ ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด ๋๋๋๊ณ ํ๊ธด ํ์๋ค. ๊ทผ๋ฐ ์๊ฐ ๋ณต์ก๋ ๋ฐ์ง๋ฉด ํ 3์ฐจ ์๊ฐ์ ๊ฑธ๋ฆด ๊ฒ ๊ฐ์ ๊ทธ๋ฐ ์ฝ๋...? ํ์ด๋ฅผ ๋ดค๋๋ฐ ๊ณ ์ฐจ ํจ์ ์ด์ฉํ์ ์ ๋๊ฒ ๊น๋ํ๊ฒ ํธ์๋๋ผ. ๊ทผ๋ฐ ์ถ์ํ๊ฐ ์ ๋์ด ์๋ ์ฝ๋๋ค ๋ณด๋ ์ ์ดํด๊ฐ ์๋๋ค. ๋ค์ ๋ด์ผ ํ ๊ฒ ๊ฐ๋ค.
- ํ ์ฃผ ๋์์ ๊ฐ์ ๋ด์ฉ์ด ์ฐธ ๊ฐํ์ค๋ฝ๋ค. ์ฝ๋ฉํ ์คํธ ์ค๋นํ๋ฉด์ ์ ๋ง ๋ง๋งํ๋๋ฐ ๋น๊ณผ ์๊ธ ๊ฐ์ ๊ฐ์๋ค. ๊ฐ์์ ๋๋ฌด ์์งํ๋ ๊ฑด ์ข์ง ์์ง๋ง ๊ทธ๋๋... ์ด ๊ฐ์๋ ์ง์ง ์ฐ์ด๋ค! ๊ผญ ๊ผญ ์ ๋๋ก ์ํํ๊ณ ์ถ๋ค.
- CS ๊ธฐ์ด ์คํฐ๋๊ฐ ์์๋๋ค. Typescript๋ก ๋์ด ์๋ API ๋ฌธ์๋ฅผ ์ฝ๋ ๋ฅ๋ ฅ์ ๊ธฐ๋ฅด๊ณ ์ถ์ด์ Generic์ ์ฃผ์ ๋ก ์ ์ ํ๋ค. ๊ทผ๋ฐ Javascript๋ ๋์ ํ์ ์ธ์ด์ด๋ค ๋ณด๋๊น ์์ง ๊ทธ๋ ๊ฒ ์๋ฟ์ง๊ฐ ์๋ ๊ฑฐ๋ค. ๊ทธ๋ฆฌ๊ณ Generic ๋ฟ๋ง ์๋๋ผ Typescript์์ ๋ฐ๋ก ์ฌ์ฉํ๋ ๋ฌธ๋ฒ?๋ค๋ ์๋ ๊ฒ ๊ฐ์์ ๊ฒฐ๊ตญ API ๋ฌธ์ ์ง๋ ์งํด์ ๋ชฉํ๋ ์ด๋ฃจ์ง ๋ชปํ๋ค. extends ์ดํดํด๋ณด๋ ค๋ค ์คํจํ๋๋ฐ ๋ณด์ถฉํ์ต ํด์ผ๊ฒ ๋ค.
- ๊ณผ์ ์ ๋ํ ํผ๋๋ฐฑ์ ๋ฐ์๋๋ฐ ํ์คํ const์ let์ ๋ํ ๊ฐ๋ ์ด ์ ์ ์กํ ์๋ ๊ฒ ๊ฐ๋ค. ์์์ ๊ฐ์ ์ฌํ ๋นํ ์ ์๋ค๋ ์๋ฌ๋ฅผ ๋ช ๋ฒ ๋ฐ์ผ๋๊น ๋๋ ๋ชจ๋ฅด๊ฒ ๋ค let์ผ๋ก ์ฐ๊ฒ ๋๋๋ฐ ๊ฐ๋ ์ ์ ์ก์์ผ๊ฒ ๋ค.
- ๊ณผ์ ์ ๋ํด์ ํ์๋ค ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ํด์ค์ผ ํ๋๋ฐ ์๋ ๊ฒ ๋ณ๋ก ์์ด์ ์์ ์ ์๋ค. ๋ฉํ ๋์ด ๊ณต์ ํด์ฃผ์ ์ฝ๋ ๋ฆฌ๋ทฐ ๊ฐ์ด๋ ์ฝ๊ณ ๋ค๋ฅธ ์ฌ๋๋ค PR ์ฌ๋ฆฐ ์ฝ๋ ๋ณด๋ฉด์ ์ฝ๋ ๋ฆฌ๋ทฐ ๋ฐฉ๋ฒ๋ ๊ณต๋ถํด์ผ ํ ๊ฒ ๊ฐ๋ค.
- ๋ฉํ ๋์ด ๊ณต์ ํด์ฃผ์ ์ฐธ๊ณ ๋ฌธ์๋ค ๋งค์ผ ํ๋์ฉ์ด๋ผ๋ ๊ผญ ๋ณด์!
- ์ด๋ฒ ์ฃผ์ ๋จ์ฌ์ผ์์ ๋ฃ๋ ์์ ์ด ๋๋ฌ๋ค. ํ ์ฃผ ๋์ ๋ ๊ต์ก ๊ณผ์ ์ ๋ณํํ ๊ฑด๋ฐ ๋นก์ผ ๊ฒ๋ ๋นก์ผ ๊ฒ์ด์ง๋ง... ์ง๊ธ ๋ญํ๊ณ ์๋ ํ๋ ํํ๊ฐ ์ค๋ ์๊ฐ๋ค์ด ๋ง์๋ค. ํ๋ก์ ํธ ๋ฐํ ๋ค์ผ๋ฉด์ ๋๋ ๋ ๋ง๋ฆฌ ํ ๋ผ๋ฅผ ์ก์ ๊ฒ ์๋๊ณ ๋ ๋ค ๋์ณค๊ตฌ๋ ํ๋ ์๊ฐ์ด ๋ค์๋ค. ์ด๋ ์ ๋ ์๋๊ณ ๋ ๋ค ์ ๋ชป ํด๋ด๋ ๋๋. ๋ฐฑ์๋๋ฅผ ๊ฒฝํํด ๋ณผ ๊ธฐํ๊ฐ ๋ง์ง ์์ ๊ฒ ๊ฐ์์ ๋๋ ๋ฐฑ์๋ ๋ง๋ฌด๋ฆฌ ์์ ์ ์ฐธ์ฌํ๊ณ ์ถ์๋ฐ ๋์ ํ ์ฌ์ ๊ฐ ๋์ง ์์ ๊ฒ ๊ฐ์์ ์๊ดด๊ฐ์ ์๋ฌ๋ ธ๋ค. ๊ธ์์ผ์ด ์ ๋ง ๊ณ ๋น์๋ค. ์จ๋ชธ์์ ์ด์ด ๋ฌ๋๋ฐ ๊ฐ์ด ์ฌ๋ ์น๊ตฌ๊ฐ ์ฝ๋ก๋ ๊ฒ์ฌ ์์ฑ ๋ฐ์ ๊ฑฐ ๋ณด๋ฉด ๊ทธ๋ฅ ์ ๋ชป ์๊ณ ์คํธ๋ ์ค๋ฅผ ๋ง์ด ๋ฐ์์ ๊ทธ๋ฌ๋ ๊ฒ ๊ฐ๋ค. ์ฃผ๋ง์ ์ ์ 7์๊ฐ ์๋๊น ๋ค์ ๊ด์ฐฎ์์ก๋ค.
- ์๋ฌดํผ ๋ด๊ฐ ๋ด๋ฆฐ ๊ฒฐ๋ก ์ ์ฐ์ ์์๋ฅผ ์ ์ ํด์ผ ํ๋ค๋ ๊ฒ์ด๋ค. ์๊ฐ๊ณผ ์ฒด๋ ฅ๊ณผ ๋ฅ๋ ฅ์ ํ์ ๋์ด ์๊ณ ๋ชจ๋ ๊ฑธ ๋ค ํด๋ผ ์๋ ์๋ค. ๋๋ฌด ์์ฌ ๋ถ๋ฆฌ์ง ๋ง๊ณ ๋ด๊ฐ ํ ์ ์๋ ๊ฒ์ ํ ์ ์๋ ๋งํผ ํ์. ์ค์ํ ๊ฒ์ ๋จผ์ ์ง์คํ์.
- ๊ฐ์ด ๊ณต๋ถํ๋ ์ฌ๋๋ค์ด ๋ง๋ค๋ ๊ฑด ์ฐธ ์ข์๋ฐ ๋ค๋ฅธ ์ฌ๋๋ค๊ณผ ๋น๊ตํ๊ธฐ ์ฌ์์ง๋ค. ๋๋ง ์ ๋ชป ๋ฐ๋ผ๊ฐ๋ ๊ฒ ๊ฐ์ ๋๋์ ๋จ์น๊ธฐ๊ฐ ์ฝ์ง ์๋ค. ๋ฉํ ๊ด๋ฆฌ๋ฅผ ์ํ์!
- ์ด๋ฒ์ ์ฌ๋ฆผํฝ ๊ฒฝ๊ธฐ๋ฅผ ๋ณด๋ฉด์ ๋ฐฐ์ด ๊ฒ ๋ง๋ค. ํฌ๊ธฐํ์ง ์๊ณ ๋๊น์ง ํด๋ณด๋ ๋ง์๊ฐ์ง. ํ์ง๋ง ๋ด๊ฐ ์ํ๋ก์ธ ๋ ๋ฌด์๋ณด๋ค๋ ๋๋ฅผ ๋จผ์ ๋๋ณด๋ ๋ง์๊ฐ์ง. ๊ผด์ฐ๋ฅผ ํ๋๋ผ๋(๊ทธ๋ฐ ๋ญํน ๋งค๊ธฐ๋ ์์คํ ์ ์๋ค. ๋น์ ๋ค) ์ค๊ฐ์ ๊ทธ๋ง ๋๋ ๊ฒ๋ณด๋ค๋ ๋ซ๋ค. ๊ทธ๋ฌ๋๊น ๋๋ฅผ ๋๋ฌด ์ฑ๊ทผํ์ง ๋ง๊ณ ๋๋ฅผ ๋๋ณด๋ฉด์ ๊ณต๋ถํด๋๊ฐ๋ 5๊ฐ์์ด ๋์ผ๋ฉด ์ข๊ฒ ๋ค.
'TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[TIL] 20210814 (0) | 2021.08.14 |
---|---|
[TIL] 20210811 (3) | 2021.08.12 |
[TIL] 20210803 (4) | 2021.08.04 |
[TIL] 20210802 (2) | 2021.08.02 |
[TIL] 20210801 (0) | 2021.08.01 |