[๋ฉด์ ‘]Typescript ๐Ÿง

GyungHo Goยท2020๋…„ 9์›” 2์ผ
1
post-thumbnail

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

ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋Š”

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

ํƒ€์ž…์ฒดํฌ, interface ์ง€์›๋“ฑ์œผ๋กœ ์ธํ•ด Typescript๋Š” ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์— ์ข€ ๋” ์ ํ•ฉํ•œ ์–ธ์–ด๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค.

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

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ํƒ€์ž… ์‹œ์Šคํ…œ์ด ์—†๋Š” ๋™์  ์–ธ์–ด๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ณ€์ˆ˜๋Š” ๋ฌธ์ž์—ด, ์ˆซ์ž, ๋ถˆ๋ฆฐ ๋“ฑ ์—ฌ๋Ÿฌ ํƒ€์ž…์˜ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. ๋น„๊ต์  ์œ ์—ฐํ•˜๊ฒŒ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๋Š” ํ•œํŽธ ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์—์„œ ์‰ฝ๊ฒŒ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒ ํ•  ์ˆ˜ ์žˆ๋Š” ๋‹จ์ ์„ ๊ฐ€์ง„๋‹ค.

ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋Š” ์ด๋Ÿฌํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์— ๊ฐ•ํ•œ ํƒ€์ž… ์‹œ์Šคํ…œ์„ ์ ์šฉํ•ด ๋Œ€๋ถ€๋ถ„์˜ ์—๋Ÿฌ๋ฅผ ์ปดํŒŒ์ผ ํ™˜๊ฒฝ์—์„œ ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๋™์•ˆ ์ฒดํฌ ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋Šฅ

  • ํฌ๋กœ์Šค ํ”Œ๋žซํผ ์ง€์› : ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‹คํ–‰๋˜๋Š” ๋ชจ๋“  ํ”Œ๋žซํผ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด : ํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค, ๋ชจ๋“ˆ ๋“ฑ์˜ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋ฉฐ, ์ˆœ์ˆ˜ํ•œ ๊ฐ์ฒด ์ง€ํ–ฅ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ •์ ํƒ€์ž… : ์ •์  ํƒ€์ž…์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๋™์•ˆ ์˜ค๋ฅ˜๋ฅผ ์ฒดํฌ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • DOM ์ œ์–ด: ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ ๊ฐ™์ด DOM์„ ์ œ์–ดํ•ด ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ตœ์‹  ECMAScript ๊ธฐ๋Šฅ ์ง€์› : ES6 ์ด์ƒ์˜ ์ตœ์‹  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ•์„ ์†์‰ฝ๊ฒŒ ์ง€์›ํ•  ์ˆ˜ ์žˆ๋‹ค.

์žฅ๋‹จ์ 

์žฅ์ 

1. ์ •์ ํƒ€์ž…

  • Typescript๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ€์žฅ ํฐ ์ด์œ ์ค‘ ํ•˜๋‚˜๋Š” ์ •์  ํƒ€์ž…์„ ์ง€์›ํ•˜๋Š”๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
  • ์ •์  ํƒ€์ž…์„ ์ง€์›ํ•˜๋ฏ€๋กœ ์ปดํŒŒ์ผ ๋‹จ๊ฒŒ์—์„œ ์˜ค๋ฅ˜๋ฅผ ํฌ์ฐฉํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์ด ์žˆ๋‹ค. ๊ฐœ๋ฐœ์ž์˜ ์˜๋„๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ์ฝ”๋“œ๋กœ ๊ธฐ์ˆ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ๋†’์ด๊ณ  ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋ฉฐ ๋””๋ฒ„๊น…์„ ์‰ฝ๊ฒŒ ํ•œ๋‹ค.

2. ๋„๊ตฌ์˜ ์ง€์›

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

3. ๊ฐ•๋ ฅํ•œ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ง€์›

  • ์ธํ„ฐํŽ˜์ด์Šค, ์ œ๋„ค๋ฆญ ๋“ฑ๊ณผ ๊ฐ™์€ ๊ฐ•๋ ฅํ•œ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ง€์›์€ ํฌ๊ณ  ๋ณต์žกํ•œ ํ”„๋กœ์ ํŠธ์˜ ์ฝ”๋“œ ๊ธฐ๋ฐ˜์„ ์‰ฝ๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์šด๋‹ค. ๊ทธ๋ฆฌ๊ณ  Java, C#๋“ฑ์˜ ํด๋ž˜์Šค ๊ธฐ๋ฐ˜ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด์— ์ต์ˆ™ํ•œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ ์ง„์ž…์žฅ๋ฒฝ์„ ๋‚ฎ์ถœ์ˆ˜ ์žˆ๋‹ค.

4. ES6/Es Next์ง€์›

TypeScript ํŒŒ์ผ(.ts)์€ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋™์ž‘ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ TypeScript ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์ด์šฉํ•ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ๋กœ ๋ณ€ํ™˜ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผ ์ปดํŒŒ์ผ ๋˜๋Š” ํŠธ๋žœ์ŠคํŒŒ์ผ๋ง์ด๋ผ ํ•œ๋‹ค.

https://mygumi.tistory.com/210
https://medium.com/@wonjong_oh/typescript-1-%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80-f4b02f54009c

profile
๊ธฐ๋กํ•˜๋Š” ์Šต๊ด€

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