๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
TS

[TS] : TS์˜ ์ปดํŒŒ์ผ๋Ÿฌ TSC

by ๊ถŒ์Šพํ–„ 2023. 8. 17.

TSC ?

ํƒ€์ž…(T) ์Šคํฌ๋ฆฝํŠธ(S) ์ปดํŒŒ์ผ๋Ÿฌ(C)์˜ ์ค„์ž„๋ง์ด๋‹ค.

 

์ปดํŒŒ์ผ๋Ÿฌ ?

์ปดํŒŒ์ผ๋Ÿฌ๋Š” ํŠน์ • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ ์ •์  ์–ธ์–ด๋กœ์„œ์˜ ์ •์ฒด์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๋„๊ตฌ์ด๋‹ค.

์ปดํŒŒ์ผ๋Ÿฌ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ์†Œ์Šค ์ฝ”๋“œ → ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋„๊ตฌ.
์ด๋Ÿฌํ•œ ๋ณ€ํ™˜ ๊ณผ์ •์—์„œ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์†Œ์Šค ์ฝ”๋“œ์˜ ๊ตฌ๋ฌธ๊ณผ ๊ตฌ์กฐ๋ฅผ ๊ฒ€์‚ฌํ•˜์—ฌ ๋ฌธ์ œ๊ฐ€ ์—†๋Š”์ง€ ํ™•์ธ์„ ํ•ด์ค€๋‹ค.
์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ์— ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ๋ฏธ๋ฆฌ ์•Œ๋ ค์ฃผ์–ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ปดํŒŒ์ผ๋Ÿฌ์˜ ์—ญํ• 

  • ํƒ€์ž…๊ฒ€์‚ฌ : tsc๋Š” ์†Œ์Šค์ฝ”๋“œ์˜ ์ •์ ํƒ€์ž…๊ฒ€์‚ฌ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.
    -> ์ข‹์€ ์  : ํƒ€์ž…๊ด€๋ จ ์˜ค๋ฅ˜๋ฅผ ๋ฏธ์—ฐ์— ๋ฐฉ์ง€ํ•˜๊ณ  ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ฝ”๋“œ๋ณ€ํ™˜ : tsc๋Š” TS ์—์„œ JS ๋กœ ์ฝ”๋“œ ๋ณ€ํ™˜์„ ํ•ด์ฃผ๊ธฐ๋„ ํ•œ๋‹ค.
  • ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์ดํ•ดํ•˜๋ฉด ๋ณ€ํ™˜๋œ ์ฝ”๋“œ๊ฐ€ ์–ด๋–ป๊ฒŒ ์‹คํ–‰์ด ๋  ๊ฑด์ง€ ์˜ˆ์ธก์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
    -> ์ด๋ฅผ ํ†ตํ•ด, ๋””๋ฒ„๊น… ๊ณผ์ •์—์„œ ๋„์›€์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.
  • ์†Œ์Šค์ฝ”๋“œ์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ๊ฒฌ๋˜๋ฉด ๋ฐ”๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ
  • ์ตœ์ ํ™” : ์ฝ”๋“œ๊ฐ€ ์ตœ์ ํ™”๋˜๋ฉด ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰์‹œ๊ฐ„์ด ๋นจ๋ผ์ง€๊ณ , ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ด๋Ÿฌํ•œ ๋ถ€๋ถ„์„ ์ž๋™์ ์œผ๋กœ ๋„์™€์ค€๋‹ค.

 

์ปดํŒŒ์ผ๋Ÿฌ ๋“ฑ์žฅ ์ด์œ 

์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•˜๊ธฐ์—๋Š” ๊ธฐ๊ณ„์–ด๊ฐ€ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ -> ์ธ๊ฐ„์ด ๊ธฐ๊ณ„์–ด๋กœ ์ž‘์—…์„ ํ•˜๊ธฐ์—๋Š” ๋ฌด๋ฆฌ ->
์šฐ๋ฆฌ๊ฐ€ ์ž‘์—…ํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜ํ•  ์ด์œ ๊ฐ€ ์ƒ๊น€

๊ทธ๋ž˜์„œ ๋“ฑ์žฅํ•œ๊ฒŒ ์ปดํŒŒ์ผ๋Ÿฌ.

์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์–ธ์–ด -> ๊ธฐ๊ณ„์–ด ์—ญํ• ์„ ํ•œ๋‹ค.

 

๊ทธ๋Ÿผ TSC ์˜ ์—ญํ• ์€ ?

TS ๋ฅผ JS ๋กœ ๋ณ€ํ™˜์„ ํ•ด์ค€๋‹ค.

JS๋Š” ๋™์ ์–ธ์–ด(=์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด)์ด๋‹ค.
TS๋Š” ์ •์ ์–ธ์–ด(=์ปดํŒŒ์ผ ์–ธ์–ด)์ด๋‹ค.

์ปดํ“จํ„ฐ๊ฐ€ ํ•ด์„์„ ์œ„ํ•ด ํ•„์š”ํ•œ ์–ธ์–ด๋Š” ๊ธฐ๊ณ„์–ด์ธ๋ฐ, TS๋ฅผ JS๋กœ ๋ฐ”๊ฟ”๋ด์•ผ ๋ฌด์Šจ ์†Œ์šฉ?

Node.js ๋˜๋Š” Chrome์€ ๋‚ด์žฅ๋œ V8 ์—”์ง„์ด ์ด๋Ÿฐ JS๊ฐ™์€ ๋™์ ์–ธ์–ด๋ฅผ ํ•ด์„ํ•˜๊ณ  ์‹คํ–‰ํ•˜๊ฒŒ ํ•ด์ค€๋‹ค.

๊ทธ๋ž˜์„œ TSC๋Š” ์ปดํ“จํ„ฐ์—์„œ์˜ ์ฝ”๋“œ ์‹คํ–‰์„ ์œ„ํ•ด TS๋ฅผ JS๋กœ ๋ณ€ํ™˜์‹œ์ผœ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š” ์—ญํ• ์„ ํ•˜๋Š” ๋…€์„์ด๋‹ค.

๊ฒฐ๋ก  : ์ •์ ์–ธ์–ด๋Š” ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜์ด ๋˜์–ด์•ผ ์‹คํ–‰์ด ๊ฐ€๋Šฅ / ๋™์ ์–ธ์–ด๋Š” ์—”์ง„์ด ์ฝ”๋“œ๋ฅผ ํ•œ ์ค„์”ฉ ํ•ด์„ํ•˜๋ฉด์„œ ๋™์ ์œผ๋กœ ์‹คํ–‰์ด ๊ฐ€๋Šฅ

 

TSC ๋ช…๋ น์–ด

์ฃผ์š” ๋ช…๋ น์–ด

tsc --init // tsconfig.json ์ƒ์„ฑ
tsc <src์ด๋ฆ„>.ts // <src>.ts ์ปดํŒŒ์ผ
tsc src/*.ts // src ๋””๋ ‰ํ† ๋ฆฌ ์•ˆ์— ์žˆ๋Š” ๋ชจ๋“  TypeScript ํŒŒ์ผ์„ ์ปดํŒŒ์ผ
tsc index.js --declaration --emitDeclarationOnly

// @types ํŒจํ‚ค์ง€๋ฅผ ์œ„ํ•œ .d.ts ํŒŒ์ผ ์ƒ์„ฑ์„ ํ•˜๋Š” ๋ช…๋ น์ž…๋‹ˆ๋‹ค!
- TypeScript๋กœ ์ž‘์„ฑ๋œ ๋ชจ๋“ˆ์ด ์•„๋‹ˆ๋ผ JavaScript๋กœ ์ž‘์„ฑ๋œ ๋ชจ๋“ˆ์— ํƒ€์ž… ์„ ์–ธ์„ ์ œ๊ณตํ•  ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์“ฐ์—ฌ์š”!

 

#tsc #js #ts #์ปดํŒŒ์ผ #์ปดํŒŒ์ผ๋Ÿฌ #๊ธฐ๊ณ„์–ด #๋™์ ์–ธ์–ด #์ •์ ์–ธ์–ด #v8 #์‹คํ–‰

'TS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[TS] : .d.ts  (0) 2023.08.17
[TS] : tsconfig.json  (0) 2023.08.17
[TS] : Type Script ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊ตฌ์ถ• (์ž‘์—… ํ•˜๋ฉด์„œ ๋‚ด์šฉ ์ถ”๊ฐ€)  (0) 2023.08.14
[TS] : Type Script  (0) 2023.08.11
[TS] : READ-ONLY  (0) 2023.08.09