ํ์ ์คํฌ๋ฆฝํธ ์ปดํ์ผ๋ฌ๋ ํ์ ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ๋ถ์ํ์ฌ ์๋ฐ์คํฌ๋ฆฝํธ(*.js)๋ก ์ปดํ์ผ ํ๋ ํ๋ก๊ทธ๋จ์ด๋ค. tsc ๋ช ๋ น์ด๋ก ์คํ๋๊ณ ๋ด๋ถ์ ์ผ๋ก๋ ํ์ ์คํฌ๋ฆฝํธ ํจํค์ง์ ํฌํจ๋ CLI ๋๊ตฌ์ด๋ค.
"node_modules/typescript": {
"version": "4.9.4",
"resolved": "<https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz>",
"integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==",
"license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc", // ์ด ๋ถ๋ถ
"tsserver": "bin/tsserver"
},
"engines": {
"node": ">=4.2.0"
}
},


https://velog.io/@sehyunny/how-ts-compiler-compiles
๋์์๋ฆฌ
์ค์บ๋ (Scanning)
ํ์ฑ (Parsing)
AST๋ ํ๋ก๊ทธ๋จ ๋ถ์, ํ๋ก๊ทธ๋จ ๋ณํ ์์คํ ์์ ์ฌ์ฉ๋๋ค
๋ฐ์ธ๋ฉ (Binding)
์ฒดํน (Checking)
์ถ๋ ฅ (Emitting)
์ฌ๋ณผ(Symbol): ์ฝ๋ ๋ด์ ์ ์ธ์ ๋ํ๋ด๋ฉฐ, ํ์ ๊ฒ์ฌ ์ ์ค์ํ ์ญํ ์ ํจ.
AST(Abstract Syntax Tree): ํ ํฐ ์คํธ๋ฆผ์ผ๋ก ๋ณํ๋ ์ฝ๋์ ๊ตฌ์กฐ๋ฅผ ํธ๋ฆฌ ํํ๋ก ํํํ ๊ฒ์ผ๋ก, ์ดํ ๋จ๊ณ์์์ ๋ถ์๊ณผ ๋ณํ์ ์ฐธ์กฐ๋จ.
์ฒด์ปค(Checker): AST์ ์ฌ๋ณผ ์ ๋ณด๋ฅผ ํ์ฉํ์ฌ ์ฝ๋์ ํ์ ์ ๊ฒ์ฌํจ.
์๋ฏธํฐ(Emitter): ์ต์ข ์ ์ผ๋ก JavaScript ์ฝ๋๋ฅผ ์์ฑํ๋ ๋จ๊ณ.