[ TypeScript ] ๊ฐœ๋…

์ตœ์„ฑ์ง„ยท2023๋…„ 12์›” 31์ผ
0

TypeScript

๋ชฉ๋ก ๋ณด๊ธฐ
2/2
post-thumbnail

๐Ÿ“ TypeScript ๋ž€?

TypeScript๋Š” ์ •์  ํƒ€์ž… ์–ธ์–ด์ด๋ฉฐ ๋™์  ํƒ€์ž… ์–ธ์–ด์ธ JavaScript์„ ๋ณด์™„ํ•ด์„œ ์ •์  ํƒ€์ž… ๋ฌธ๋ฒ•์„ ์ถ”๊ฐ€ํ•œ 'ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด' ์ž…๋‹ˆ๋‹ค.

JavaScript์˜ ์Šˆํผ ์…‹, ์ฆ‰ ์ƒ์œ„ ํ™•์žฅ์ž๋กœ JavaScript ์—”์ง„์„ ์‚ฌ์šฉํ•˜๋ฉฐ ์ž์‹ ์ด ์›ํ•˜๋Š” ๋ณ€์ˆ˜์˜ ํƒ€์ž…์„ ์ •์˜ํ•˜๊ณ  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋ฉด JavaScript๋กœ ์ปดํŒŒ์ผ๋˜์–ด ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

TypeScript๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š”

  • ์˜ค๋ฅ˜๋ฅผ ์‚ฌ์ „์— ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ฝ”๋“œ์˜ ์ž๋™์™„์„ฑ ๋ฐ ๊ฐ€์ด๋“œ๋ฅผ ๋ฐ›์„์ˆ˜ ์žˆ๋‹ค.(์ƒ์‚ฐ์„ฑ ํ–ฅ์ƒ)

๐Ÿ’ก TypeScript์˜ ํŠน์ง•

๐Ÿ” ์ •์  ํƒ€์ž…

  • ์ปดํŒŒ์ผ์„ ํ•˜๋Š” ๊ณผ์ •์—์„œ ํƒ€์ž…์„ ๊ฒฐ์ •ํ•˜๊ฒŒ ๋œ๋‹ค.
  • ์ปดํŒŒ์ผ์‹œ ์ž๋ฃŒํ˜•์— ๋งž์ง€ ์•Š๋Š” ๊ฐ’์ด ๋“ค์–ด๊ฐ€๋ฉด ์ปดํŒŒ์ผ ์—๋Ÿฌ๋ฅผ ๋ฐœ์ƒ ์‹œํ‚จ๋‹ค.
    ํ•˜์ง€๋งŒ TypeScript๋Š” ์ปดํŒŒ์ผ ๊ณผ์ •์—์„œ ํƒ€์ž…์„ ์ง€์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ปดํŒŒ์ผ ์—๋Ÿฌ๋ฅผ ์˜ˆ๋ฐฉํ•  ์ˆ˜ ์žˆ์„ ๋ฟ ์•„๋‹ˆ๋ผ, ์†์‰ฌ์šด ๋””๋ฒ„๊น…์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๐Ÿ” ๊ฐ์ฒด ์ง€ํ–ฅ

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

๐Ÿ” IDE ์ง€์›

  • IDE(ํ†ตํ•ฉ๊ฐœ๋ฐœํ™˜๊ฒฝ, Integrated Development Environment)์„ ํฌํ•จํ•œ ๋‹ค์–‘ํ•œ ๋„๊ตฌ์˜ ์ง€์›์„ ๋ฐ›์šธ ์ˆ˜ ์žˆ๋‹ค.
  • ์ฝ”๋”ฉ, ๋””๋ฒ„๊ทธ, ์ปดํŒŒ์ผ, ๋ฐฐํฌ ๋“ฑ ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ์— ๊ด€๋ จ๋œ ๋ชจ๋“  ์ž‘์—…์„ ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ ์•ˆ์—์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด
  • ๋Œ€ํ‘œ์ ์ธ IDE : VScode, Eclipse

๐Ÿ” ES6+ ๊ธฐ๋Šฅ ์ง€์›

  • ์ตœ์‹  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(ECMAScript)๋ฒ„์ „์—์„œ ์ถ”๊ฐ€๋œ ๊ธฐ๋Šฅ๋“ค์„ ๋ชจ๋“œ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ์ตœ์‹  ๊ธฐ์ˆ ์„ ํ™œ์šฉํ•˜๋ฉฐ ๋” ๊ฐ„๊ฒฐํ•˜๊ณ  ๊ฐ€๋…์„ฑ ์ข‹์€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ” JavaScript ํ˜ธํ™˜์„ฑ

  • TypeScript๋Š” JavaScript์™€ 100% ํ˜ธํ™˜๋œ๋‹ค. ๋”ฐ๋ผ์„œ JavaScript๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ณณ์ด๋ผ๋ฉด TypeScript๋„ ์“ธ ์ˆ˜ ์žˆ๋‹ค.
  • ์œ„์™€ ๊ฐ™์€ ํŠน์ง•์œผ๋กœ JavaScript๋ฅผ ์‚ฌ์šฉํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ TypeScript๋กœ ์ ์ง„์ ์œผ๋กœ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ’ก TypeScript์˜ ๋‹จ์ 

๐Ÿ” ํ•™์Šต ๋‚œ์ด๋„

  • TypeScript๋Š” ํƒ€์ž…์˜ ์ œํ•œ์„ ๋ฐ›์•„ ์ž๋ฃŒํ˜•์„ ๋น„๋กฏํ•œ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ์ตํ˜€์•ผ ํ•˜๊ธฐ์— JavaScript๋ณด๋‹ค ๋ฐฐ์šฐ๊ธฐ ์–ด๋ ต๋‹ค.
  • ํ•˜์ง€๋งŒ ํƒ€์ž…์ด ์ •ํ•ด์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋กœ์ ํŠธ ๊ทœ๋ชจ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ๋น ๋ฅด๊ฒŒ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ” ์ดˆ๊ธฐ ์„ธํŒ…์˜ ์–ด๋ ค์›€

  • TypeScript๋Š” ๋…์ž์ ์ธ ์–ธ์–ด๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์กด์˜ JavaScript ์—”์ง„์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
  • ์ด๋ฅผ ์œ„ํ•ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ค์น˜ํ•ด์•ผ ํ•˜๋Š” ๋ชจ๋“ˆ๋“ค์ด ์žˆ๊ณ , ์ปดํŒŒ์ผ์„ ์œ„ํ•œ ์˜ต์…˜๋“ค๋„ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋ฅผ ๋ณด์™„ํ•˜๊ธฐ์œ„ํ•ด 'Create React App', 'Vue CLI', 'Anqualr CLI' ๋“ฑ ์ดˆ๊ธฐ ์„ธํŒ… ๋„๊ตฌ๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ” ํƒ€์ž… ์ง€์ •์œผ๋กœ ์ธํ•œ ์ƒ์‚ฐ์„ฑ ์ €ํ•˜ ์šฐ๋ ค

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

โญ• ๊ฒฐ๋ก 

  • ์—๋Ÿฌ์˜ˆ๋ฐฉ, ๋””๋ฒ„๊น…์ด ์‰ฝ๋‹ค.
  • IDE(ํ†ตํ•ฉ๊ฐœ๋ฐœํ™˜๊ฒฝ)์„ ํฌํ•จํ•œ ๋‹ค์–‘ํ•œ ๋„๊ตฌ์˜ ์ง€์›์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.
  • ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ง€์›ํ•˜๊ณ  ๊ทธ๋กœ์ธํ•ด ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด๋ฅผ ๊ธฐ๋ฐ˜ํ•˜๋Š” ๊ฐœ๋ฐœ์ž์˜ ์ง„์ž… ์žฅ๋ฒฝ์„ ๋‚ฎ์ถฐ์ค€๋‹ค.

๐Ÿ“ TypeScript์™€ ํ˜ธํ™˜์„ฑ์ด ์ข‹์€ Library 'React'

  • Facebook(ํ˜„ Meta) ์—์„œ ๋งŒ๋“  JavaScript UI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.
  • ๋ณต์žกํ•˜๊ณ  ๋™์ ์ธ ์›น ํŽ˜์ด์ง€ UI ๊ฐœ๋ฐœ์— ์ดˆ์ ์„ ๋งž์ถ˜ ํ”„๋ก ํŠธ์—”ํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค.
  • ์‹ค์‹œ๊ฐ„ ๋Œ€์‹œ๋ณด๋“œ, ์†Œ์…œ ๋ฏธ๋””์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ์ „์ž์ƒ๊ฑฐ๋ž˜ ํ”Œ๋žซํผ ๋“ฑ์— ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค.
  • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๋‹ฌ๋ฆฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ”๋“œ์˜ ํ๋ฆ„๊ณผ ์ œ์–ด๋ฅผ ์ง์ ‘ ๊ด€๋ฆฌํ•œ๋‹ค.
  • ํ™œ๋ฐœํ•˜๊ณ  ๋‹ค์–‘ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ƒํƒœ๊ณ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์„œ ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•œ ์ž๋ฃŒ์™€ ์ง€์›์„ ์‰ฝ๊ฒŒ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

์ฐธ์กฐ : TypeScript ์‚ฌ์šฉํ•˜๋Š” ์ด์œ , ํ˜„์ง ์›น ๊ฐœ๋ฐœ๊ฐ€ ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค!
์ฐธ์กฐ : [TypeScript] ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ๋ญ˜๊นŒ?
์ฐธ์กฐ : ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์˜ ์ •์˜

profile
๋งˆ๋ถ€๋ฆฌ์ž…๋‹ˆ๋‹ค

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