Typescript

μ •μŠΉμ›Β·2023λ…„ 4μ›” 23일
0
post-thumbnail
post-custom-banner

πŸ“’ λͺ©μ°¨

  • πŸ“Œ νƒ€μž…μŠ€ν¬λ¦½νŠΈ(TypeScript)λž€?
  • πŸ“Œ νƒ€μž…μŠ€ν¬λ¦½νŠΈ(TypeScript)의 μž₯점
  • πŸ“Œ νƒ€μž…μŠ€ν¬λ¦½νŠΈ(TypeScript)의 단점
  • πŸ“Œ νƒ€μž…μŠ€ν¬λ¦½νŠΈ(TypeScript)의 νŠΉμ§•
  • πŸ“Œ μ°Έμ‘°

πŸ“Œ νƒ€μž…μŠ€ν¬λ¦½νŠΈ(TypeScript)λž€?

νƒ€μž…μŠ€ν¬λ¦½νŠΈλž€ μžλ°”μŠ€ν¬λ¦½νŠΈμ— νƒ€μž…μ„ λΆ€μ—¬ν•œ 언어이닀. λ§ˆμ΄ν¬λ‘œμ†Œν”„νŠΈμ—μ„œ 개발 및 κ΄€λ¦¬λ˜κ³  μžˆλŠ” μ˜€ν”ˆ μ†ŒμŠ€ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ‘œμ„œ λŒ€κ·œλͺ¨ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κ°œλ°œν•˜λŠ”λ° μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ λ¬Έμ œμ μ„ λ³΄μ™„ν•˜κΈ° μœ„ν•΄ 개발된 언어이닀.

νƒ€μž…μŠ€ν¬λ¦½νŠΈλŠ” μžλ°”μŠ€ν¬λ¦½νŠΈμ™€ ν˜Έν™˜μ΄ λ˜λŠ” 것은 λ¬Όλ‘  클래슀, μΈν„°νŽ˜μ΄μŠ€μ™€ 같은 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ° νŒ¨ν„΄μ„ μ œκ³΅ν•œλ‹€. 즉, μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ 단점은 쀄이고 μž₯점을 λ³΄μ™„ν•œ 언어이닀.

πŸ“Œ νƒ€μž…μŠ€ν¬λ¦½νŠΈ(TypeScript)의 μž₯점

βœ… μ—λŸ¬ 사전 방지, μ•ˆμ •μ„± 그리고 ν˜‘μ—…μš©μ΄μ„±

function add(a, b) {
	return a + b;
}

μœ„μ˜ ν•¨μˆ˜λŠ” 두 개의 숫자 νƒ€μž…μ˜ 인자λ₯Ό 전달받아 합을 λ°˜ν™˜ν•˜λŠ” 것이 λͺ©ν‘œμ΄λ‹€. ν•˜μ§€λ§Œ μ½”λ“œμƒ μ–΄λ–€ νƒ€μž…μ˜ 인자λ₯Ό 전달해야 ν•˜λŠ”μ§€ λͺ…ν™•ν•˜μ§€ μ•Šλ‹€. λ”°λΌμ„œ μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” λ‹€λ₯Έ μ‚¬λžŒμ΄ μ½”λ“œλ₯Ό 읽을 λ•Œ, νƒ€μž…μ„ μ§μž‘ν•˜κΈ° μ–΄λ ΅λ‹€λŠ” λ¬Έμ œκ°€ 있으며, μ΄λ‘œμΈν•΄ μ˜λ„μ™€ λ‹€λ₯Έ κ²°κ³Όκ°€ λ°˜ν™˜λ  수 μžˆλ‹€.

ν•˜μ§€λ§Œ, λ°˜λ©΄μ— νƒ€μž…μŠ€ν¬λ¦½νŠΈμ˜ 경우, μ•„λž˜μ™€ 같이 νƒ€μž…μ„ μ§€μ •ν•΄μ€ŒμœΌλ‘œμ„œ μ•žμ„œ μ–ΈκΈ‰ν•œ νƒ€μž…μ„ μ§μž‘ν•˜κΈ° μ–΄λ €μš΄ 문제λ₯Ό ν•΄κ²°ν•œλ‹€λŠ” μž₯점이 μžˆλ‹€.

function add(a: number, b: number){
	return a + b;
}

βœ… 싀행속도

μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” 동적 νƒ€μž…μ˜ 인터프리티 언어이닀. 즉, μ‰½κ²Œ 말해 λŸ°νƒ€μž„ μ‹œ, νƒ€μž…μ„ κ²°μ •ν•˜μ—¬ μ μš©ν•˜κ³  μΆ”κ°€λ‘œ 였λ₯˜κ°€ μžˆλŠ”μ§€ ν™•μΈν•˜λŠ” μž‘μ—…μ΄ 뒀따라 이루어진닀. λ”°λΌμ„œ 싀행속도가 였래 κ±Έλ¦°λ‹€λŠ” 단점이 μžˆλ‹€. λ°˜λ©΄μ— νƒ€μž…μŠ€ν¬λ¦½νŠΈμ˜ 경우, μ½”λ“œλ₯Ό μž‘μ„±ν•  λ•Œ, 미리 νƒ€μž…μ„ κ²°μ •ν•˜κΈ° λ•Œλ¬Έμ— λŸ°νƒ€μž„ λ•Œ νƒ€μž…μ„ ν™•μΈν•˜λŠ” μž‘μ—…μ΄ μ—†μ–΄ μ‹€ν–‰ 속도가 λΉ λ₯΄λ‹€λŠ” μž₯점이 μžˆλ‹€.

πŸ“Œ νƒ€μž…μŠ€ν¬λ¦½νŠΈ(TypeScript)의 단점

βœ… 초반 섀정이 λΆˆνŽΈν•˜λ‹€

νƒ€μž…μŠ€ν¬λ¦½νŠΈλŠ” λ…μžμ μΈ μ–Έμ–΄κ°€ μ•„λ‹ˆκΈ° λ•Œλ¬Έμ—, 기쑴에 μ‘΄μž¬ν•˜λŠ” μžλ°”μŠ€ν¬λ¦½νŠΈ μ—”μ§„μ—μ„œ 싀행이 λœλ‹€.
이λ₯Ό μœ„ν•΄ 기본적으둜 μ„€μΉ˜ν•΄μ•Ό ν•˜λŠ” λͺ¨λ“ˆλ“€μ΄ 있으며, μ»΄νŒŒμΌμ„ μœ„ν•œ μ˜΅μ…˜λ„ μ„€μ •ν•΄μ•Ό ν•˜λŠ” λ²ˆκ±°λ‘œμ›€μ΄ μžˆλ‹€.

βœ… interface λ˜λŠ” class 이름 λ•Œλ¬Έμ— 였λ₯˜κ°€ λ°œμƒν•  수 μžˆλ‹€.

같은 λ‚΄μš©μ„ λ‹΄κ³ μžˆλ”λΌλ„ 이름이 λ‹€λ₯Έ κ²½μš°μ— λ¬Έμ œκ°€ 생길 수 μžˆλ‹€.
μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œλŠ” λ”°λ‘œ 해주지 μ•Šμ•„λ„ λ˜λŠ” 뢀뢄인 이름 λ•Œλ¬Έμ— λ¬Έμ œκ°€ 생길 수 μžˆλ‹€.

πŸ“Œ νƒ€μž…μŠ€ν¬λ¦½νŠΈ(TypeScript)의 νŠΉμ§•

μžλ°”μŠ€ν¬λ¦½νŠΈλ₯Ό μ‹€ν–‰ ν•  수 μžˆλŠ” ν™˜κ²½μ—μ„œλŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈκ°€ μ§€μ›λ˜μ§€ μ•ŠλŠ”λ‹€.
λΈŒλΌμš°μ €λŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈλ₯Ό μ‹€ν–‰ν•  수 μ—†μœΌλ©°, node.js λ˜ν•œ νƒ€μž…μŠ€ν¬λ¦½νŠΈλ₯Ό μ‹€ν–‰ν•  수 μ—†λ‹€.
νƒ€μž…μŠ€ν¬λ¦½νŠΈλŠ” ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ΄λ©΄μ„œ 도ꡬ이닀.
μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜μ—¬ νƒ€μž…μŠ€ν¬λ¦½νŠΈ μ½”λ“œλ₯Ό μžλ°”μŠ€ν¬λ¦½νŠΈλ‘œ 컴파일 ν•˜λŠ” 컴파일러이며, νƒ€μž…μŠ€ν¬λ¦½νŠΈ μ½”λ“œλ₯Ό μž‘μ„±ν•˜μ—¬ 일반적인 μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œλ₯Ό 얻을 수 μžˆλ‹€λŠ” νŠΉμ§•μ΄ μžˆλ‹€.

πŸ“Œ μ°Έμ‘°

https://hymndev.tistory.com/79
https://imraccoon-developer.tistory.com/11

post-custom-banner

0개의 λŒ“κΈ€