λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

#1 Language πŸ‘„/1-3 Typescript

[Typescript] Typescriptλž€?

πŸ’‘ κ°œμš”
Microsoftμ—μ„œ κ°œλ°œν•˜κ³  μœ μ§€/κ΄€λ¦¬ν•˜λŠ” Apache λΌμ΄μ„ΌμŠ€κ°€ λΆ€μ—¬λœ μ˜€ν”ˆ μ†ŒμŠ€

πŸ’‘ μ‚¬μš©ν•˜λŠ” 이유
  • C#, Java와 같은 μ–Έμ–΄λ“€μ—μ„œ μ‚¬μš©ν•˜λŠ” κ°•ν•œ νƒ€μž… μ‹œμŠ€ν…œμ€ 높은 가독성과 μ½”λ“œ ν’ˆμ§ˆ 등을 μ œκ³΅ν•  수 있고
    λŸ°νƒ€μž„μ΄ μ•„λ‹Œ 컴파일 ν™˜κ²½μ—μ„œ μ—λŸ¬κ°€ λ°œμƒν•΄ 치λͺ…적인 였λ₯˜λ“€μ„ λ”μš± 더 μ‰½κ²Œ μž‘μ•„λ‚Ό 수 μžˆμ—ˆμŒ
  • 반면 μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” νƒ€μž… μ‹œμŠ€ν…œμ΄ μ—†λŠ” 동적 ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄
  • μžλ°”μŠ€ν¬λ¦½νŠΈ λ³€μˆ˜λŠ” λ¬Έμžμ—΄, 숫자, 뢈린 λ“± μ—¬λŸ¬ νƒ€μž…μ˜ 값을 κ°€μ§ˆ 수 있음
  • 이λ₯Ό μ•½ν•œ νƒ€μž… 언어라고 ν‘œν˜„ν•  수 있으며 비ꡐ적 μœ μ—°ν•˜κ²Œ κ°œλ°œν•  수 μžˆλŠ” ν™˜κ²½μ„ μ œκ³΅ν•˜μ§€λ§Œ, λŸ°νƒ€μž„ ν™˜κ²½μ—μ„œ μ‰½κ²Œ μ—λŸ¬κ°€ λ°œμƒν•  수 μžˆλŠ” 단점을 가짐
  • νƒ€μž…μŠ€ν¬λ¦½νŠΈλŠ” μ΄λŸ¬ν•œ μžλ°”μŠ€ν¬λ¦½νŠΈμ— κ°•ν•œ νƒ€μž… μ‹œμŠ€ν…œμ„ μ μš©ν•΄
  • λŒ€λΆ€λΆ„μ˜ μ—λŸ¬λ₯Ό 컴파일 ν™˜κ²½μ—μ„œ μ½”λ“œλ₯Ό μž…λ ₯ν•˜λŠ” λ™μ•ˆ 체크 κ°€λŠ₯

 

νƒ€μž…μŠ€ν¬λ¦½νŠΈμ˜ κΈ°λŠ₯
  • 크둜슀 ν”Œλž«νΌ 지원: μžλ°”μŠ€ν¬λ¦½νŠΈκ°€ μ‹€ν–‰λ˜λŠ” λͺ¨λ“  ν”Œλž«νΌμ—μ„œ μ‚¬μš©ν•  수 있음
  • 객체 μ§€ν–₯ μ–Έμ–΄: 클래슀, μΈν„°νŽ˜μ΄μŠ€, λͺ¨λ“ˆ λ“±μ˜ κ°•λ ₯ν•œ κΈ°λŠ₯을 μ œκ³΅ν•˜λ©°, μˆœμˆ˜ν•œ 객체 μ§€ν–₯ μ½”λ“œλ₯Ό μž‘μ„±ν•  수 있음
  • 정적 νƒ€μž…: 정적 νƒ€μž…μ„ μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ— μ½”λ“œλ₯Ό μž…λ ₯ν•˜λŠ” λ™μ•ˆμ— 였λ₯˜λ₯Ό 체크할 수 있음.(단 에디터 ν˜Ήμ€ ν”ŒλŸ¬κ·ΈμΈμ˜ λ„μ›€μ˜ ν•„μš”)
  • DOM μ œμ–΄: μžλ°”μŠ€ν¬λ¦½νŠΈμ™€ 같이 DOM을 μ œμ–΄ν•΄ μš”μ†Œλ₯Ό μΆ”κ°€ν•˜κ±°λ‚˜ μ‚­μ œν•  수 있음
  • μ΅œμ‹  ECMAScript κΈ°λŠ₯ 지원: ES6 μ΄μƒμ˜ μ΅œμ‹  μžλ°”μŠ€ν¬λ¦½νŠΈ 문법을 μ†μ‰½κ²Œ 지원할 수 있음
μž₯점
  • μΆ”κ°€ νƒ€μž…μ„ μ΄μš©ν•˜μ—¬ λͺ…μ‹œμ μ΄κ³  μ˜ˆμƒμΉ˜ λͺ»ν•œ λ§Žμ€ μ—λŸ¬λ₯Ό ν”Όν•  수 있음
  • νƒ€μž…μŠ€ν¬λ¦½νŠΈλ§Œ 이해할 수 μžˆλŠ” νŠΉμ •ν•œ κΈ°λŠ₯듀을 좔가함
단점
  • λΈŒλΌμš°μ €λŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈλ₯Ό μ‹€ν–‰ν•  수 μ—†μŒ
  • μžλ°”μŠ€ν¬λ¦½νŠΈλ₯Ό μ‹€ν–‰ν•  수 μžˆλŠ” ν™˜κ²½μ—μ„œλŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈκ°€ μ§€μ›λ˜μ§€ μ•ŠμŒ
μ‚¬μš© 방법
  • μžλ°”μŠ€ν¬λ¦½νŠΈκ°€ .js ν™•μž₯자λ₯Ό κ°€μ§„ 파일둜 μž‘μ„±λ˜λŠ” 것과 같이 νƒ€μž…μŠ€ν¬λ¦½νŠΈλŠ” .ts ν™•μž₯자λ₯Ό κ°€μ§„ 파일둜 μž‘μ„±ν•  수 있고, μž‘μ„± ν›„ νƒ€μž…μŠ€ν¬λ¦½νŠΈ 컴파일러λ₯Ό 톡해 μžλ°”μŠ€ν¬λ¦½νŠΈ 파일둜 μ»΄νŒŒμΌν•˜μ—¬ μ‚¬μš©ν•¨
  • (νƒ€μž…μŠ€ν¬λ¦½νŠΈλŠ” ν”„λ‘œκ·Έλž˜λ°μ–Έμ–΄λ©΄μ„œ 도ꡬ이기도 함. 즉, μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜μ—¬ νƒ€μž…μŠ€ν¬λ¦½νŠΈ μ½”λ“œλ₯Ό μžλ°”μŠ€ν¬λ¦½νŠΈλ‘œ μ»΄νŒŒμΌν•˜λŠ” 컴파일러)
  • tsc λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•˜μ—¬ 폴더 경둜 선택 ν›„ tsc 파일λͺ….ts ν•˜λ©΄ μžλ™μœΌλ‘œ 컴파일
개발 ν™˜κ²½

VSCode와 WebStorm

  • VSCode(Visual Studio Code)와 WebStorm은 νƒ€μž…μŠ€ν¬λ¦½νŠΈ 지원 κΈ°λŠ₯이 λ‚΄μž₯λ˜μ–΄ 있기 λ•Œλ¬Έμ— λ³„λ„μ˜ μ„€μ • 없이도
  • νƒ€μž…μŠ€ν¬λ¦½νŠΈ νŒŒμΌμ„(.ts, tsconfig.json λ“±) 인식할 수 있고 μ½”λ“œ 검사, λΉ λ₯Έ μˆ˜μ •, μ‹€ν–‰ 및 디버깅 λ“±μ˜ λ‹€μ–‘ν•œ κΈ°λŠ₯을 λ°”λ‘œ μ‚¬μš©ν•  수 있음
  • 단, μ»΄νŒŒμΌλŸ¬λŠ” ν¬ν•¨λ˜μ–΄ μžˆμ§€ μ•ŠκΈ° λ•Œλ¬Έμ— λ³„λ„λ‘œ μ„€μΉ˜ν•΄μ•Ό 함.(E.g. npm install typescript)
μ„€μΉ˜
  • tsc λͺ…령을 μ‚¬μš©ν•˜κΈ° μœ„ν•΄ νƒ€μž…μŠ€ν¬λ¦½νŠΈλ₯Ό μ „μ—­ μ„€μΉ˜ν•  수 있음
$ npm install -g typescript
$ tsc --version
$ tsc ./src/index.ts
LIST