๐Ÿ” [๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š” ์งˆ๋ฌธ] - 01. ํƒ€์ž… ์‹œ์Šคํ…œ์— ๋Œ€ํ•ด์„œ ์•Œ๊ณ  ์žˆ๋Š”์ง€?

์กฐ์ค€ํ˜•ยท2021๋…„ 6์›” 28์ผ
0

interview

๋ชฉ๋ก ๋ณด๊ธฐ
17/20
post-thumbnail
  • ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ์จ๋ดค๋Š”์ง€?
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์˜ ์ฐจ์ด์ ?
  • ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์˜ ์žฅ์ ๊ณผ ๋‹จ์ ?

๐Ÿ’ฌ Answer

๐ŸŒ ํƒ€์ž…

๐ŸŒ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ

๐Ÿ‘‰ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ(TypeScript)๋ž€?

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์— ํƒ€์ž…์„ ๋ถ€์—ฌํ•œ ์–ธ์–ด.
ํƒ€์ž… ์Šคํฌ๋ฆฝํŠธ๋Š” JS์™€ ๋‹ฌ๋ฆฌ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰ํ•˜๋ ค๋ฉด ํŒŒ์ผ์„ ํ•œ๋ฒˆ ๋ณ€ํ™˜(์ปดํŒŒ์ผ)ํ•ด์ฃผ์–ด์•ผ ํ•จ.

๐Ÿ‘‰ Why TypeScript?

2๊ฐ€์ง€ ๊ด€์ ์—์„œ JS์˜ ํ’ˆ์งˆ๊ณผ ๊ฐœ๋ฐœ ์ƒ์‚ฐ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค.

์—๋Ÿฌ์˜ ์‚ฌ์ „ ๋ฐฉ์ง€

// JS
function sum(a, b) {
  return a + b;
}

// TS
function sum(a: number, b: number) {
  return a + b;
}

JS์˜ ๊ฒฝ์šฐ ๋ฌธ์ž 10,20์„ ๋„ฃ๊ฒŒ๋˜๋ฉด 1020์ด ๋‚˜์˜ค๊ฒŒ๋ฉ๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ TS์˜ ๊ฒฝ์šฐ ์ˆซ์žํ˜•์ด๋ผ๊ณ  ๋ฏธ๋ฆฌ ์„ ์–ธํ•ด๋†จ๊ธฐ ๋•Œ๋ฌธ์— ์—๋Ÿฌ๋ฅผ ์‚ฌ์ „์— ๋ฐฉ์ง€ ํ•ฉ๋‹ˆ๋‹ค.

์ฝ”๋“œ ์ž๋™ ์™„์„ฑ๊ณผ ๊ฐ€์ด๋“œ

๊ฐœ๋ฐœ ํˆด์˜ ๊ธฐ๋Šฅ์„ ์ตœ๋Œ€๋กœ ํ™œ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
JS์˜ ๊ฒฝ์šฐ ํƒ€์ž…์ด ์ •ํ•ด์ ธ ์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ž๋™์™„์„ฑ์ด ๋ฏธ๋ฆฌ ๋œจ์ง€ ์•Š์•„ ์ผ์ผ์ด ํƒ€์ดํ•‘ํ•ด์•ผํ•จ.
TS์˜ ๊ฒฝ์šฐ ํƒ€์ž… ์ •ํ•ด๋†”์„œ ๋ฏธ๋ฆฌ ์ž๋™์™„์„ฑ์ด ๋– ์„œ ๋น ๋ฅด๊ณ  ์ •ํ™•ํ•˜๊ฒŒ ์ž‘์„ฑํ•ด ๋‚˜๊ฐˆ ์ˆ˜ ์žˆ์Œ.

๐Ÿ‘‰ JavaScript์™€ TypeScript์ฐจ์ด

JavaScript

  • ์›น ๊ฐœ๋ฐœ์— ์ฃผ๋กœ ์‚ฌ์šฉ๋จ
  • ์›น ํŽ˜์ด์ง€๋ฅผ ๋Œ€ํ™”์‹์œผ๋กœ ๋งŒ๋“œ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด
  • ํผ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ, ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ ์šฉ ๋ฐ ์ด๋ฒคํŠธ ์ƒ์„ฑ์„ ์ˆ˜ํ–‰
  • ํด๋ผ์ด์–ธํŠธ ์ธก ์Šคํฌ๋ฆฝํŒ… ์–ธ์–ด
    • ์‚ฌ์šฉ์ž๊ฐ€ ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์—ด๊ณ  ์›น ํŽ˜์ด์ง€๋ฅผ ์š”์ฒญํ•˜๋ฉด ํ•ด๋‹น ์š”์ฒญ์ด ์›น ์„œ๋ฒ„๋กœ ์ด๋™ํ•จ

TypeScript

  • JavaScript์˜ ์ƒ์œ„ ์ง‘ํ•ฉ์œผ๋กœ JavaScript์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์ด ์žˆ์Œ
  • TypeScript ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ts(TypeScript)ํŒŒ์ผ์„ js(JavaScript) ํŒŒ์ผ๋กœ ๋ณ€ํ™˜, ์‰ฝ๊ฒŒ ํ†ตํ•ฉ
  • ์ •์  ์œ ํ˜• ๊ฒ€์‚ฌ ์ œ๊ณต
  • ํด๋ž˜์Šค ๊ธฐ๋ฐ˜ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ
  • ํด๋ž˜์Šค ๊ธฐ๋ฐ˜์ด๋ฏ€๋กœ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ƒ์†, ์บก์Šํ™” ๋ฐ ์ƒ์„ฑ์ž๋ฅผ ์ง€์›ํ•  ์ˆ˜ ์žˆ์Œ

๐Ÿ“˜ ์ฐธ๊ณ 

https://joshua1988.github.io/ts/why-ts.html#ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ž€
https://velog.io/@pluviabc1/์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€-ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ-์ฐจ์ด์ 
https://velog.io/@recordboy/ํƒ€์ž…์Šคํฌ๋ฆฝํŠธTypeScript-ํƒ€์ž…-์„ ์–ธ

profile
๊นƒํ—ˆ๋ธŒ : github.com/JuneHyung

0๊ฐœ์˜ ๋Œ“๊ธ€