๐ Javascript
๋์ ํ์ ์ธ์ด
์ธํฐํ๋ฆฌํฐ ์ธ์ด
_ ์ธํฐํ๋ฆฌํฐ(interpreter, ํด์๊ธฐ)๋ ์์ค์ฝ๋๋ฅผ ๋ฐ๋ก ์คํํ๋ ์ปดํจํฐ ํ๋ก๊ทธ๋จ๋ ๋ฆฝ์ ์ผ๋ก ์ฌ์ฉ
์ ์ฐํจ
_ ํ์ ์ ์ ํ์ ๋ฐ์ง ์์.js ํ์ฅ์
๊ฐ๋จํ ํ๋ก์ ํธ
๐ Typescript
์ ์ ํ์ ์ธ์ด
์ปดํ์ผ ์ธ์ด
_์ปดํ์ผ(compile)์ด๋ ์์ค์ฝ๋์์ ๋ชฉ์ ์ฝ๋๋ก ์ฎ๊ธฐ๋ ๊ฒ๋ฐ์คํฌ๋ฆฝํธ์ ์์กด์
๊ฐ๊ฒฐํจ
,์ผ๊ด์ฑ
,์ฌ์ฌ์ฉ์ฑ
.ts ํ์ฅ์
๋ณต์กํ ํ๋ก์ ํธ
์๋ฐ์คํฌ๋ฆฝํธ์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ด์ ๋จ์ ์ ๋ชจ๋ ๋ณ์๋ ๊ฐ์ฒด๋ฅผ ํ์ ์ ์ง์ ํ์ง ์๋๋ค๋ ์ ์ด๋ค.
ํ์ ์คํฌ๋ฆฝํธ๋ ๊ทธ ์ ์ ๋ณด์ํ๊ธฐ ์ํด ๋์๋ค.
1. ๋ฒ๊ทธ ์๋ฐฉ
์๋ฐ์คํฌ๋ฆฝํธ๋ ์ ์ธํ ๋ ํ์ ์ ์ง์ ํด์ฃผ์ง ์๊ธฐ ๋๋ฌธ์ ๋์ํ๋ฉด์ ์ธ์ ๋๋ ๋ชจ๋ฅด๊ฒ ํ๋ณํ์ด ๋์ด ์์ ์๋ ์๊ณ , ๊ทธ๋ฐ ๋ถ๋ถ์ผ๋ก ์ธํด ์๊ธฐ์น ์์ ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ ์๋ ์๋ค.
2. ์ฝ๋ ํ๋ฆฌํฐ ํฅ์
ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ ๋๋ก ์ฌ์ฉํจ์ผ๋ก์จ ์ป์ ์ ์๋ ๊ฐ์ฅ ํฐ ์ฅ์ ์ค์ ํ๋๋ ๋ณ์์ ์ด๋ฆ๋ฟ๋ง ์๋๋ผ ๊ทธ ๋ฐ์ดํฐ์ "type"๊น์ง ์ ์ ์๊ฒ ํด์ค๋ค. ๊ทธ๋์ ์ฝ๋ ์์ฑ์ด ์ข ๋ ์ฝ๊ณ ์ง๊ด์ ์ด๊ฒ ๋ง๋ค์ด์ค๋ค.
3. ๋ธ๋ผ์ฐ์ ํธํ์ฑ
ํ์ ์คํฌ๋ฆฝํธ๋ ์ปดํ์ผ ๊ณผ์ ์์ ES6+ ๋ฌธ๋ฒ๋ค์ ES5(๋๋ ES3)๋ก ๋ฐ๊ฟ์ฃผ๊ธฐ ๋๋ฌธ์ Babel์ ๋์ ์์ด ํฌ๋ก์ค๋ธ๋ผ์ฐ์ง ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
์ปดํ์ผ์ ํด์ฃผ๋ ์๊ฐ์ด ๋ค๊ธฐ๋๋ฌธ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ง ์ฌ์ฉํ์ ๋๋ณด๋ค ์๋์์ ์ฐจ์ด๊ฐ ๋ ์ ๋ฐ์ ์๋ค.
๋งค๋ฒ ํ์ ์ ๋ฐ๋ก ๊ฒฐ์ ํด์ฃผ์ด์ผํด ๋ฒ๊ฑฐ๋กญ๊ธฐ๋ ํ๊ณ ์์ฑํด์ผํ๋ ์ฝ๋์ ์์ด ๋ง์์ง ์ ์๋ค.