Typescriptλž€?

1. κ°œμš”

λ§Žμ€ κΈ°μ—…λ“€μ—μ„œ typescirpt에 λŒ€ν•œ μ—­λŸ‰μ„ κ°€μ§„ κ°œλ°œμžλ“€μ„ ν•„μš”λ‘œν•˜κ³  μžˆλ‹€. javascriptκ³Ό 이름이 λΉ„μŠ·ν•œ typescriptλŠ” 무엇이며? javascriptμ™€λŠ” μ–΄λ–€ 차이점이 μžˆλŠ”μ§€ μ•Œμ•„λ³΄μž. λ˜ν•œ typescriptκ°€ κ°€μ§€κ³  μžˆλŠ” νŠΉμ§•λ„ ν•¨κ»˜ μ‚΄νŽ΄λ³΄μž.


2. νƒ€μž…μŠ€ν¬λ¦½νŠΈ(typescript)λž€?

νƒ€μž…μŠ€ν¬λ¦½νŠΈλŠ” λ§ˆμ΄ν¬λ‘œμ†Œν”„νŠΈμ—μ„œ κ°œλ°œν•œ μ˜€ν”ˆμ†ŒμŠ€ ν”„λ‘œκ·Έλž˜λ° 언어이며, μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ 단점을 λ³΄μ•ˆν•˜κΈ° μœ„ν•΄ λ§Œλ“€μ–΄μ‘Œλ‹€. λͺ¨λ“  λΈŒλΌμš°μ €, 호슀트, μš΄μ˜μ²΄μ œμ—μ„œ λ™μž‘ν•œλ‹€.

TypeScript is JavaScript with syntax for types. TypeScript is a strongly typed programming language that builds on JavaScript, giving you better tooling at any scale.

μœ„λŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈ 곡식 ν™ˆνŽ˜μ΄μ§€μ—μ„œ μ„€λͺ…ν•˜κ³  μžˆλŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈμ— λŒ€ν•œ μ„€λͺ…이닀. 이λ₯Ό ν† λŒ€λ‘œ νƒ€μž…μŠ€ν¬λ¦½νŠΈλ₯Ό μ„€λͺ…ν•˜μžλ©΄ μ•„λž˜μ™€ κ°™λ‹€.

  • μžλ°”μŠ€ν¬λ¦½νŠΈλ₯Ό κΈ°λ°˜μ„ λ§Œλ“  κ°•λ ₯ν•œ 언어이닀.

  • νƒ€μž…μ„ μ •ν•˜κΈ° λ•Œλ¬Έμ— μ–΄λ– ν•œ ν™˜κ²½μ—μ„œλ„ 훨씬 쒋은 κ²½ν—˜μ„ μ„ μ‚¬ν•œλ‹€.

  • νƒ€μž…μ΄ μžˆλŠ” κ°•λ ₯ν•œ 언어이닀.

μ—¬κΈ°μ„œ λ§ν•˜λŠ” νƒ€μž…μ΄λž€ ν”„λ‘œκ·Έλž¨μ—μ„œ λ‹€λ£° 수 μžˆλŠ” κ°’μ˜ μ’…λ₯˜(string, boolean, int λ“±)λ₯Ό μ˜λ―Έν•œλ‹€.


3. νƒ€μž…μŠ€ν¬λ¦½νŠΈμ˜ νŠΉμ§•

μ•„λž˜λŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈ 곡식 ν™ˆνŽ˜μ΄μ§€μ— μžˆλŠ” νŠΉμ§•μ„ κ°€μ Έμ˜¨ 것이닀.

  1. JavaScript and More

    TypeScript adds additional syntax to JavaScript to support a tighter integration with your editor. Catch errors early in your editor.

    • νƒ€μž…μŠ€ν¬λ¦½νŠΈλŠ” μžλ°”μŠ€ν¬λ¦½νŠΈμ— 문법을 μΆ”κ°€ν•˜μ—¬ vscode와 같은 μ—λ””ν„°μ—μ„œ 였λ₯˜λ₯Ό μž‘λŠ”λ° 도와쀀닀.

  2. A Result Yout Can Trust

    TypeScript code converts to JavaScript, which runs anywhere JavaScript runs: In a browser, on Node.js or Deno and in your apps.

    • νƒ€μž…μŠ€ν¬λ¦½νŠΈλŠ” μžλ°”μŠ€ν¬λ¦½νŠΈκ°€ μ‹€ν–‰λ˜λŠ” ν™˜κ²½(λΈŒλΌμš°μ €, λ…Έλ“œJS, Deno)μ—μ„œ μžλ°”μŠ€ν¬λ¦½νŠΈλ‘œ λ³€ν™˜λœλ‹€.

  3. Safety at Scale

    TypeScript understands JavaScript and uses type inference to give you great tooling without additional code.

    • νƒ€μž…μŠ€ν¬λ¦½νŠΈλŠ” 좔가가적인 μ½”λ“œ μž‘μ„± 없이 νƒ€μž…μ˜ μœ ν˜•μ„ μΆ”λ‘ ν•  수 μžˆλ‹€.

뿐만 μ•„λ‹ˆλΌ μ•„λž˜μ™€ 같은 λ‹€μ–‘ν•œ νŠΉμ§•μ„ κ°€μ§€κ³  μžˆλ‹€.

  • 컴파일 μ–Έμ–΄, 정적 νƒ€μž… μ–Έμ–΄: νƒ€μž…μŠ€ν¬λ¦½νŠΈλŠ” 컴파일러 λ˜λŠ” 바벨(Babel)을 톡해 μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œλ‘œ λ³€ν™˜λœλ‹€. μ½”λ“œ μž‘μ„± λ‹¨κ³„μ—μ„œ νƒ€μž…μ„ 체크해 였λ₯˜λ₯Ό 확인할 수 있고 미리 νƒ€μž„μ„ κ²°μ •ν•˜κΈ° λ•Œλ¬Έμ— μ‹€ν–‰ 속도가 맀우 λΉ λ₯΄λ‹€. ν•˜μ§€λ§Œ μ½”λ“œ μž‘μ„± μ‹œ 맀번 νƒ€μž…μ„ κ²°μ •ν•΄μ•Ό ν•˜κΈ° λ•Œλ¬Έμ— 번거둭고 μ½”λ“œλŸ‰μ΄ μ¦κ°€ν•˜λ©΄μ„œ 컴파일 μ‹œκ°„μ΄ 였래 κ±Έλ¦°λ‹€λŠ” 단점이 μžˆλ‹€.

  • μžλ°”μŠ€ν¬λ¦½νŠΈ μŠˆνΌμ…‹: νƒ€μž…μŠ€ν¬λ¦½νŠΈλŠ” μžλ°”μŠ€ν¬λ¦½νŠΈ κΈ°λ³Έ 문법에 νƒ€μž…μŠ€ν¬λ¦½νŠΈμ˜ 문법을 μΆ”κ°€ν•œ 것이닀.

  • 객체 μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ° 지원: νƒ€μž…μŠ€ν¬λ¦½νŠΈλŠ” ES6μ—μ„œ μƒˆλ‘­κ²Œ μ‚¬μš©λœ 문법을 ν¬ν•¨ν•˜κ³  있으며 클래슀, μΈν„°νŽ˜μ΄μŠ€, 상속, λͺ¨λ“ˆ λ“±κ³Ό 같은 객체 μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ° νŒ¨ν„΄μ„ μ œκ³΅ν•œλ‹€.

  • 점진적 μ „ν™˜ κ°€λŠ₯: κΈ°μ‘΄ μžλ°”μŠ€ν¬λ¦½νŠΈλ‘œ λ§Œλ“€μ–΄μ§„ ν”„λ‘œμ νŠΈμ— μΆ”κ°€ κΈ°λŠ₯μ΄λ‚˜ νŠΉμ • κΈ°λŠ₯μ—λ§Œ νƒ€μž…μŠ€ν¬λ¦½νŠΈλ₯Ό λ„μž…ν•¨μœΌλ‘œμ¨ ν”„λ‘œμ νŠΈλ₯Ό μ μ§„μ μœΌλ‘œ μ „ν™˜ν•  수 μžˆλ‹€.


4. Javascript vs Typescript

μ•žμœΌλ‘œ typescript νŒŒνŠΈμ—μ„œ λ§Žμ€ λ‚΄μš©μ˜ typescriptλ₯Ό 닀루기 λ•Œλ¬Έμ— μ—¬κΈ°μ„œλŠ” ν•˜λ‚˜μ˜ μ˜ˆμ‹œλ₯Ό 톡해 두 μ–Έμ–΄μ˜ 차이점을 μ‚΄νŽ΄λ³΄μž.

a와 bλΌλŠ” 인자λ₯Ό λ°›μ•„μ„œ λ”ν•˜λŠ” ν•¨μˆ˜μΈ add functionλ₯Ό λ§Œλ“€μ–΄λ³΄μž.

λ¨Όμ € μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ μ½”λ“œλŠ” μ•„λž˜μ™€ κ°™λ‹€.

μΈμžμ— μ—¬λŸ¬ νƒ€μž…μ„ λ„£μ–΄ ν•¨μˆ˜λ₯Ό μ‹€ν–‰ν•΄λ³΄μž.

μœ„μ— λ³΄μ΄λŠ” 것과 같은 a, b에 μ–΄λ– ν•œ νƒ€μž…μ˜ 인자λ₯Ό λ„£κ³  ν•¨μˆ˜λ₯Ό 싀행해도 결과값이 λ‚˜μ˜€λŠ” 것을 λ³Ό 수 μžˆλ‹€.

μ΄λ²ˆμ—” μœ„μ˜ add function을 κ·ΈλŒ€λ‘œ νƒ€μž…μŠ€ν¬λ¦½νŠΈλ‘œ μ‹€ν–‰ν•˜λ©΄ μ–΄λ–»κ²Œ 될까? a, b에 μ–΄λ– ν•œ νƒ€μž…λ„ μ„ μ–Έν•˜μ§€ μ•Šμ•„ μ—λ””ν„°λŠ” μ•„λž˜μ™€ 같은 μ—λŸ¬λ₯Ό 보여쀄 것이닀.

type error

μœ„μ˜ μ—λŸ¬λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄μ„œλŠ” a, b에 νƒ€μž…μ„ μ •ν•΄μ€˜μ•Ό ν•œλ‹€.

μœ„μ˜ μ½”λ“œμ²˜λŸΌ 각각의 μΈμžμ— numberλΌλŠ” νƒ€μž…μ„ μ§€μ •ν•΄μ£Όμ—ˆλ‹€. μ΄λ ‡κ²Œ μΈμžμ— νƒ€μž…μ„ 정해두면 numberνƒ€μž…μ΄ μ•„λ‹Œ λ‹€λ₯Έ νƒ€μž…μ„ 인자둜 λ„£μ–΄ 싀행을 ν•˜κ²Œ λœλ‹€λ©΄ νƒ€μž…μŠ€ν¬λ¦½νŠΈλŠ” λ‹€μ‹œ μ•„λž˜μ™€ 같은 μ—λŸ¬λ₯Ό 보여쀄 것이닀.

type error

이렇듯 κ°œλ°œμžλ“€μ€ μ½”λ“œκ°€ 컴파일이 되기 μ „ νƒ€μž…μŠ€ν¬λ¦½νŠΈμ—μ„œ μ—λŸ¬λ₯Ό 보여주어 μ½”λ“œμ˜ 문제λ₯Ό μ•Œλ €μ£Όμ–΄ μ—λŸ¬λ₯Ό ν•΄κ²°ν•  수 μžˆλ„λ‘ 도와쀀닀.

typescript palygroundμ—μ„œ μ—¬λŸ¬ νƒ€μž…μŠ€ν¬λ¦½νŠΈ μ½”λ“œλ₯Ό μž‘μ„±ν•˜λ©΄μ„œ μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œμ™€ 비ꡐ할 수 μžˆλ‹€. μ•„λž˜λŠ” μœ„μ˜ add functionλ₯Ό νƒ€μž…μŠ€ν¬λ¦½νŠΈ palygroundμ—μ„œ μž‘μ„±ν•˜κ³  μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œμ™€ λΉ„κ΅ν•œ 사진이닀.

typescript playground

5. Conclusion

아직 νƒ€μž…μŠ€ν¬λ¦½νŠΈμ— λŒ€ν•΄ μ΅μˆ™ν•˜μ§€ μ•Šλ‹€. λ¦¬μ•‘νŠΈμ™€ νƒ€μž…μŠ€ν¬λ¦½νŠΈλ₯Ό ν•¨κ»˜ κ³΅λΆ€ν•˜λ©΄μ„œ 정리λ₯Ό κΎΈμ€€νžˆ ν•˜μ—¬ μ•žμœΌλ‘œ νƒ€μž…μŠ€ν¬λ¦½νŠΈλ₯Ό κΎΈμ€€νžˆ μ‚¬μš©ν•  수 μžˆλ„λ‘ ν•˜μž. 특히 λ¦¬μ•‘νŠΈμ—μ„œ μ‚¬μš©ν•˜λŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈμ— λŒ€ν•΄μ„œ 많이 배우자.😁


μ°Έκ³ 

νƒ€μž…μŠ€ν¬λ¦½νŠΈ 곡식 ν™ˆνŽ˜μ΄μ§€ ν™œμš©λ„κ°€ λ†’μ•„μ§€λŠ” μ›Ή ν”„λ‘ νŠΈμ—”λ“œ μ–Έμ–΄, νƒ€μž…μŠ€ν¬λ¦½νŠΈ(TypeScript)


πŸ“… 2022-07-25

Last updated