๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
IT

TypeScript: ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํ˜„๋Œ€์ ์ธ ํ™•์žฅ

by ๐Ÿ’ฒ๐ŸŽตโœ–๏ธโœ”๏ธโ˜ผ 2024. 2. 21.

TypeScript: ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํ˜„๋Œ€์ ์ธ ํ™•์žฅ

1. ์†Œ๊ฐœ

1.1 TypeScript๋ž€?

TypeScript๋Š” Microsoft์—์„œ ๊ฐœ๋ฐœํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์ƒ์œ„ ์ง‘ํ•ฉ ์–ธ์–ด๋กœ, ์ •์  ํƒ€์ž… ์‹œ์Šคํ…œ์„ ๋„์ž…ํ•˜์—ฌ ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๋ฅผ ์‚ฌ์ „์— ๋ฐฉ์ง€ํ•˜๊ณ  ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ ๋ฐ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š”๋ฐ ๋ชฉ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

1.2 ๋ฐฐ๊ฒฝ

TypeScript๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์œ ์—ฐ์„ฑ์€ ์œ ์ง€ํ•˜๋ฉด์„œ๋„ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๋ฅผ ์‚ฌ์ „์— ๋ฐฉ์ง€ํ•˜๊ณ ์ž ๋“ฑ์žฅํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์—์„œ์˜ ํ˜‘์—…๊ณผ ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•œ ๋‹ˆ์ฆˆ์— ์˜ํ•ด ํƒ„์ƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.

2. TypeScript์™€ JavaScript์˜ ์ฐจ์ด

2.1 ์ •์  ํƒ€์ž…

JavaScript๋Š” ๋™์  ํƒ€์ž… ์–ธ์–ด๋กœ, ์‹คํ–‰ ์‹œ๊ฐ„์— ํƒ€์ž…์ด ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด TypeScript๋Š” ์ •์  ํƒ€์ž… ์–ธ์–ด๋กœ, ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ณ€์ˆ˜์˜ ํƒ€์ž…์„ ๋ช…์‹œํ•จ์œผ๋กœ์จ ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๋ฅผ ์‚ฌ์ „์— ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.

2.2 ์ปดํŒŒ์ผ ์–ธ์–ด

TypeScript๋Š” JavaScript๋กœ ์ปดํŒŒ์ผ๋˜์–ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ TypeScript๋กœ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋Š” ์ปดํŒŒ์ผ์„ ํ†ตํ•ด JavaScript ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜๋˜์–ด ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

2.3 ํด๋ž˜์Šค ๊ธฐ๋ฐ˜ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

JavaScript๋Š” ํ”„๋กœํ† ํƒ€์ž… ๊ธฐ๋ฐ˜์˜ ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด์ด์ง€๋งŒ, TypeScript๋Š” ํด๋ž˜์Šค ๊ธฐ๋ฐ˜์˜ ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด๋กœ, ํด๋ž˜์Šค, ์ƒ์†, ์ ‘๊ทผ ์ œ์–ด์ž ๋“ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

3. TypeScript์˜ ์žฅ๋‹จ์ 

3.1 ์žฅ์ 

  • ์ •์  ํƒ€์ž… ์ฒดํฌ: ์ปดํŒŒ์ผ ๋‹จ๊ณ„์—์„œ ํƒ€์ž… ์˜ค๋ฅ˜๋ฅผ ์ฐพ์•„๋‚ด์–ด ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๋ฅผ ์‚ฌ์ „์— ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • ์ฝ”๋“œ ๊ฐ€๋…์„ฑ ํ–ฅ์ƒ: ๋ช…์‹œ์ ์ธ ํƒ€์ž… ์„ ์–ธ์œผ๋กœ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ๋†’์—ฌ์ค๋‹ˆ๋‹ค.
  • ์ธํ…”๋ฆฌ์„ผ์Šค ๊ธฐ๋Šฅ: ๊ฐ•๋ ฅํ•œ ์ฝ”๋“œ ์™„์„ฑ ๋ฐ ์ž๋™ ๋ฌธ์„œํ™”๋ฅผ ์ง€์›ํ•˜์—ฌ ๊ฐœ๋ฐœ ์ƒ์‚ฐ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.
  • ๋Œ€ํ˜• ํ”„๋กœ์ ํŠธ์˜ ์œ ์ง€๋ณด์ˆ˜์„ฑ: ์ •์  ํƒ€์ž…๊ณผ ๋ชจ๋“ˆ ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์˜ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค.

3.2 ๋‹จ์ 

  • ํ•™์Šต ๊ณก์„ : JavaScript์— ๋น„ํ•ด ํ•™์Šต ๊ณก์„ ์ด ์กฐ๊ธˆ ๋†’์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ปดํŒŒ์ผ ์‹œ๊ฐ„: TypeScript๋Š” ์ปดํŒŒ์ผ์ด ํ•„์š”ํ•˜๋ฏ€๋กœ ์ถ”๊ฐ€์ ์ธ ์ปดํŒŒ์ผ ์‹œ๊ฐ„์ด ์†Œ์š”๋ฉ๋‹ˆ๋‹ค.

4. TypeScript ์‚ฌ์šฉ ์‚ฌ๋ก€

4.1 ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ

TypeScript๋Š” ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์—์„œ์˜ ํ˜‘์—…๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ์ฃผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

4.2 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ํ”„๋ ˆ์ž„์›Œํฌ ๊ฐœ๋ฐœ

Angular, Vue, React ๋“ฑ์˜ ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ ๋ฐ ๋‹ค์–‘ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์€ TypeScript๋กœ ๊ฐœ๋ฐœ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

5. ๊ฒฐ๋ก 

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

๋Œ“๊ธ€