๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ฐœ๋ฐœ ์ผ์ง€ ๐Ÿ‘ฉ‍๐Ÿ’ป

ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ(TypeScript)์™€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(JavaScript)์˜ ์ฐจ์ด

by chuyj15 2025. 9. 11.
728x90
๋ฐ˜์‘ํ˜•
SMALL

ํ”„๋ก ํŠธ์—”๋“œ, ๋ฐฑ์—”๋“œ ์–ด๋””์„œ๋“  ๋น ์งˆ ์ˆ˜ ์—†๋Š” ์–ธ์–ด๊ฐ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(JavaScript) ์ž…๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๊ทธ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์œ„์— ์˜ฌ๋ผ์˜จ ์–ธ์–ด๊ฐ€ ๋ฐ”๋กœ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ(TypeScript) ์ž…๋‹ˆ๋‹ค.

๋งŽ์€ ํ”„๋กœ์ ํŠธ๋“ค์ด ๋‹จ์ˆœํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋Œ€์‹  ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋„์ž…ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ผ๊นŒ์š”?
์•„๋ž˜์—์„œ ์ฐจ์ด์ ์„ ์ •๋ฆฌํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 


1. ์–ธ์–ด์˜ ์ •์˜

  • JavaScript
    • ์›น์„ ์œ„ํ•œ ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด
    • ๋™์  ํƒ€์ž…(Dynamic Typing)์„ ์ง€์› → ์‹คํ–‰ ์‹œ์ ์— ํƒ€์ž…์ด ๊ฒฐ์ •๋จ
    • ๋ธŒ๋ผ์šฐ์ €์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‹คํ–‰ ๊ฐ€๋Šฅ
  • TypeScript
    • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์ƒ์œ„ ์ง‘ํ•ฉ(Superset) ์–ธ์–ด
    • ์ •์  ํƒ€์ž…(Static Typing) ์ง€์› → ์ปดํŒŒ์ผ ๋‹จ๊ณ„์—์„œ ํƒ€์ž… ์ฒดํฌ
    • ์ตœ์ข…์ ์œผ๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ํŠธ๋žœ์ŠคํŒŒ์ผ ๋˜์–ด ์‹คํ–‰๋จ

2. ํƒ€์ž…(Type) ์‹œ์Šคํ…œ

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

add(10, "20"); // ์‹คํ–‰๋จ (๊ฒฐ๊ณผ: "1020")
 
 
// TypeScript
function add(a: number, b: number): number {
  return a + b;
}

add(10, "20"); // โŒ ์—๋Ÿฌ ๋ฐœ์ƒ (ํƒ€์ž… ๋ถˆ์ผ์น˜)

๐Ÿ‘‰ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์‹คํ–‰ํ•ด๋ด์•ผ ์•Œ ์ˆ˜ ์žˆ์ง€๋งŒ, ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋Š” ์ปดํŒŒ์ผ ์‹œ์ ์— ์˜ค๋ฅ˜๋ฅผ ์žก์•„์ค๋‹ˆ๋‹ค.


3. ๊ฐœ๋ฐœ ๊ฒฝํ—˜ (DX, Developer Experience)

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
    • ์ž์œ ๋กญ๊ณ  ๋น ๋ฅด๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ ๊ฐ€๋Šฅ
    • ํ•˜์ง€๋งŒ ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜(Runtime Error)๋ฅผ ์ž์ฃผ ๋งŒ๋‚  ์ˆ˜ ์žˆ์Œ
  • ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ
    • IDE์—์„œ ์ž๋™์™„์„ฑ, ํƒ€์ž… ์ถ”๋ก , ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง์ด ํ›จ์”ฌ ์•ˆ์ •์ 
    • ํ˜‘์—… ์‹œ ํƒ€์ž… ์ •์˜๊ฐ€ ํ•˜๋‚˜์˜ ๋ฌธ์„œ ์—ญํ• ์„ ํ•ด์คŒ

4. ์ฝ”๋“œ ์œ ์ง€๋ณด์ˆ˜

  • JavaScript
    • ์ž‘์€ ํ”„๋กœ์ ํŠธ์—๋Š” ์ถฉ๋ถ„ํžˆ ๋น ๋ฅด๊ณ  ํŽธ๋ฆฌ
    • ๊ทœ๋ชจ๊ฐ€ ์ปค์ง€๋ฉด ๋ณ€์ˆ˜/ํ•จ์ˆ˜ ํƒ€์ž… ์ถ”์ ์ด ์–ด๋ ค์›Œ์ ธ ์œ ์ง€๋ณด์ˆ˜ ํž˜๋“ฆ
  • TypeScript
    • ํฐ ๊ทœ๋ชจ์˜ ํ”„๋กœ์ ํŠธ์—์„œ ์ฝ”๋“œ ์•ˆ์ •์„ฑ์„ ๋ณด์žฅ
    • ์˜ค๋žœ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋„ ํƒ€์ž… ๋•๋ถ„์— ๋ฒ„๊ทธ ๋ฐœ์ƒ๋ฅ  ๊ฐ์†Œ

5. ์š”์•ฝ

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋น ๋ฅธ ๊ฐœ๋ฐœ๊ณผ ์œ ์—ฐ์„ฑ์— ๊ฐ•์ 
  • ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋Š” ์•ˆ์ •์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์— ๊ฐ•์ 
  • ์š”์ฆ˜์€ ๋Œ€๋ถ€๋ถ„ TypeScript ๊ธฐ๋ฐ˜์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๊ณ , ํ•„์š”ํ•˜๋ฉด JS์™€ ํ˜ผ์šฉ

โœ… ๊ฒฐ๋ก 

๐Ÿ‘‰ ์ž‘์€ ํ”„๋กœ์ ํŠธ → JavaScript
๐Ÿ‘‰ ์ค‘๋Œ€ํ˜• ํ”„๋กœ์ ํŠธ, ํ˜‘์—… → TypeScript

ํ˜„์—…์—์„œ๋Š” ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ ์  ๋” ๊ธฐ๋ณธ์œผ๋กœ ์ฑ„ํƒํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž˜ ์ดํ•ดํ•œ ํ›„ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ฐฐ์šฐ๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์€ ํ•™์Šต ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.

 

 

#JavaScript #TypeScript #์›น๊ฐœ๋ฐœ #ํ”„๋ก ํŠธ์—”๋“œ #๋ฐฑ์—”๋“œ #๊ฐœ๋ฐœ๊ณต๋ถ€ #์ฝ”๋”ฉ #ํ”„๋กœ๊ทธ๋ž˜๋ฐ #๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ #React #NodeJS #TS

728x90
๋ฐ˜์‘ํ˜•
LIST