Skip to content

Latest commit

ย 

History

History
38 lines (28 loc) ยท 2.49 KB

File metadata and controls

38 lines (28 loc) ยท 2.49 KB

TypeScript

TypeScript๋ž€?

Javascript + Type = TypeScript

ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋Œ€์ฒด ์–ธ์–ด์˜ ํ•˜๋‚˜๋กœ์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ Superset(์ƒ์œ„ํ™•์žฅ)์ด๊ณ , Microsoft์—์„œ ๋ฐœํ‘œํ•œ ์˜คํ”ˆ์†Œ์Šค๋กœ, ์ •์  ํƒ€์ดํ•‘์„ ์ง€์›ํ•˜๋ฉฐ ES6์˜ ํด๋ž˜์Šค, ๋ชจ๋“ˆ ๋“ฑ๊ณผ ES7์˜ Decorator ๋“ฑ์„ ์ง€์›

๋А์Šจํ•œ ํƒ€์ž…์˜ ์–ธ์–ด์ธ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•ด ๋งŒ๋“  ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๊ทœ๋ชจ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ์ฝ”๋“œ๊ฐ€ ๋ณต์žกํ•ด์ง€๊ณ , ๋””๋ฒ„๊ทธ์™€ ํ…Œ์ŠคํŠธ ๊ณต์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์–ด ์ด๋Ÿฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋‹จ์ ์„ ๊ทน๋ณตํ•˜๊ณ ์ž AltJs(์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋Œ€์ฒด ์–ธ์–ด)์ธ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ๊ฐ€ ๋“ฑ์žฅํ–ˆ๋‹ค๊ณ  ํ•œ๋‹ค.

image

  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด
  • Compiled Language
    • ์ „ํ†ต์ ์ธ Compiled Language์™€ ๋‹ค๋ฆ„ (Compile, Linking, Binary ๊ณผ์ •์ด ์—†์Œ)
    • Transpile์— ๋” ๊ฐ€๊นŒ์›€
    • ๋ฉ”ํƒ€ํ”„๋กœ๊ทธ๋ž˜๋ฐ (๋‹ค๋ฅธ์–ธ์–ด๋กœ ๋ณ€ํ™˜๋˜์–ด ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ง„ํ–‰๋˜๋Š”๊ฒƒ)
  • Interpreted Language

What is difference between compiler and transpiler?

compile : ํ•œ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธ

  • Java -> bytecode
  • c -> assembly

transpile : ํฌ๋žœ์ŠคํŒŒ์ผ์˜ ๊ฒฝ์šฐ ํ•œ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋น„์Šทํ•œ ์ˆ˜์ค€์˜ ์ถ”์ƒํ™”๋ฅผ ๊ฐ€์ง„ ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ๋ณ€ํ™˜ ํ•˜๋Š”๊ฒƒ์„ ๋งํ•จ

  • es6 -> es5
  • c++ -> c
  • coffescript -> javascript

transpile์€ source to source compiler ๋ผ๊ณ ๋„ ์„ค๋ช…ํ•˜๊ธฐ๋„ ํ•˜๋ฉฐ compiler์˜ ์ผ์ข…์œผ๋กœ transpiler๋ฅผ ์„ค๋ช…ํ•˜๊ณ  ์žˆ์–ด compile์ด๋ผ๋Š” ์šฉ์–ด๊ฐ€ ๋” ํฐ ๋ฒ”์ฃผ์— ์†ํ•˜๊ฒŒ ๋˜๊ณ , ๊ทธ ์•ˆ์— transpile์ด๋ผ๋Š” ๊ฐœ๋…์ด ์žˆ์Œ

ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์˜ ์žฅ์ 

  • ์ •์  ํƒ€์ž… - ์ฝ”๋”ฉ ๋‹จ๊ณ„์—์„œ ์ปดํŒŒ์ผ ์˜ค๋ฅ˜ ๋ฐœ๊ฒฌ ๊ฐ€๋Šฅ
  • ๋„๊ตฌ์˜ ์ง€์› - IDE์™€ ๊ฐ™์€ ๋„๊ตฌ์— ํƒ€์ž… ์ •๋ณด๋ฅผ ์ œ๊ณตํ•จ์œผ๋กœ์จ ๋†’์€ ์ˆ˜์ค€์˜ ์ฝ”๋“œ ์–ด์‹œ์ŠคํŠธ, ํƒ€์ž… ์ฒดํฌ, ๋ฆฌํŒฉํ† ๋ง ๋“ฑ์„ ์ง€์›๋ฐ›์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด๋Ÿฌํ•œ ๋„๊ตฌ์˜ ์ง€์›์€ ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•œ ํ•„์ˆ˜ ์š”์†Œ์ด๋‹ค.
  • ๊ฐ•๋ ฅํ•œ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ง€์› - Java, C# ๋“ฑ์˜ ํด๋ž˜์Šค ๊ธฐ๋ฐ˜ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด์— ์ต์ˆ™ํ•œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ ์ง„์ž… ์žฅ๋ฒฝ์„ ๋‚ฎ์ถ”๋Š” ํšจ๊ณผ๊ฐ€ ์žˆ๋‹ค.
  • ES6 / ES NEXT ์ง€์› - ํ˜„์žฌ ES6๋ฅผ ์™„์ „ํžˆ ์ง€์›ํ•˜์ง€ ์•Š๊ณ  ์žˆ๋Š” ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๊ณ ๋ คํ•˜์—ฌ Babel ๋“ฑ์˜ ํŠธ๋žœ์ŠคํŒŒ์ผ๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ํ˜„ ์ƒํ™ฉ์—์„œ TypeScript๊ฐ€ ์ƒˆ๋กœ์šด ์ŠคํŽ™์˜ ์œ ์šฉํ•œ ๊ธฐ๋Šฅ์„ ์•ˆ์ „ํ•˜๊ฒŒ ๋„์ž…ํ•˜๋Š”๋ฐ ์œ ๋ฆฌํ•˜๋‹ค.