Frontend ๊ฐœ๋ฐœ์ž - hyo.loui

ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ - ๊ฐœ๋…๊ณผ ํ™˜๊ฒฝ ์„ธํŒ… ๋ณธ๋ฌธ

Typescript

ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ - ๊ฐœ๋…๊ณผ ํ™˜๊ฒฝ ์„ธํŒ…

hyo.loui 2023. 1. 16. 11:34

๐ŸŽฏ๋ชฉ์  :

Typescript : (ํ•™์Šต๋…ธํŠธ) ๊ฐœ๋…

Typescript : ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ…์—์„œ ์ปดํŒŒ์ผ ๊ณผ์ •๊นŒ์ง€

 


1. ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ž€?

SuperSet: JS์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ๊ธฐ์กด์— ์‚ฌ์šฉํ•˜๋˜

javascript๋Š” ๋™์ ํƒ€์ž… ์ด์ง€๋งŒ,

typescript๋Š” ์ •์ ํƒ€์ž… ์ด๋‹ค.

 

์ƒ์‚ฐ์„ฑ(์œ ์ง€๋ณด์ˆ˜)๊ณผ ํŽธ์˜๋ฅผ ์œ„ํ•ด ํƒ€์ž…์„ ์ถ”๊ฐ€ํ•œ ์–ธ์–ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

ms ์—์„œ ๊ฐœ๋ฐœํ•˜์˜€๊ณ , ๊พธ์ค€ํžˆ ์ธ๊ธฐ์™€ ์ˆ˜์š”๊ฐ€ ์ƒ์Šนํ•˜๊ณ  ์žˆ๋‹ค.

 


2. Time

 

Javascript๋Š” ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด ๋Ÿฐํƒ€์ž„์— ๊ฒฐ์ •๋œ๋‹ค

Typescript๋Š” ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด ์ปดํŒŒ์ผํƒ€์ž„์— ๊ฒฐ์ •๋œ๋‹ค

์ปดํŒŒ์ผํƒ€์ž„? ๋Ÿฐํƒ€์ž„?

  • ์ปดํŒŒ์ผ ํƒ€์ž„ (compile time) : ์ž‘์„ฑํ•œ ์†Œ์Šค์ฝ”๋“œ๊ฐ€ ์–ด๋– ํ•œ ๊ฒƒ(js, binary ๋“ฑ)์œผ๋กœ ๋ณ€ํ™˜๋˜๋Š” ๊ณผ์ •
  • ๋Ÿฐํƒ€์ž„ : ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋Š” ๊ณผ์ •

IDE(VS Code)์—์„œ๋Š” ์ปดํŒŒ์ผ ํƒ€์ž„์—์„œ ์—๋Ÿฌ๊ฐ€ ๋‚  ์ƒํ™ฉ์„ ๋นจ๊ฐ„์ค„๋กœ ๋ฏธ๋ฆฌ ์•Œ๋ ค์ค€๋‹ค.

๋”ฐ๋ผ์„œ Javascript๋Š” ์—ฌ๋Ÿฌ๋ถ„์˜ react ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ์ „ ์–ด๋–ค ์˜ค๋ฅ˜๊ฐ€ ์žˆ์„ ์ง€ ์•Œ ์ˆ˜ ์—†์œผ๋‚˜, Typescript๋Š” ์—๋Ÿฌ๊ฐ€ ๋‚  ์ƒํ™ฉ์„ ๋ฏธ๋ฆฌ ์—ฌ๋Ÿฌ๋ถ„์˜ IDE(vscode)๊ฐ€ ์•Œ๋ ค์ค€๋‹ค.

 

https://velog.io/@limdumb/TypeScript

 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์‹ค์ œ๋กœ ๋™์ž‘์„ ํ•ด์•ผ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ,

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

 


3. Typescript๋ฅผ ์™œ ์“ธ๊นŒ?

 

๋น„๊ต ์žฅ์  ๋‹จ์ 
typescript
  1. ์ƒํƒœ๊ณ„๊ฐ€ ํฌ๋‹ค
  2. Microsoft์—์„œ ๊ฐœ๋ฐœํ•œ vscode์™€ ์ž˜ ๋งž๋Š”๋‹ค
  3. ์—ฌ๋Ÿฌ๋ถ„์ด ์‚ฌ์šฉํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ lib์—์„œ ํƒ€์ž… ์ •์˜ ํŒŒ์ผ์„ ์ œ๊ณตํ•œ๋‹ค
  4. ์œ ์ง€๋ณด์ˆ˜๊ฐ€ JS๋ณด๋‹ค ์œ ๋ฆฌํ•˜๋‹ค 
  5. ์ ์€ ์–‘์˜ ์ฝ”๋”ฉ์„ ํ•  ๋•Œ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ๊ฐ€๋Šฅ
  6. ํ”„๋กœ์ ํŠธ ์‚ฌ์ด์ฆˆ๊ฐ€ ์ปค์ง€๋ฉด ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์–ด๋ ต๋‹ค
1. Javascript์— ๋น„ํ•ด ์–ด๋ ต๋‹ค
javascript 1. ๋‹ค๋ฅธ ์–ธ์–ด์— ๋น„ํ•ด ์‰ฝ๋‹ค
2. ์ ์€ ์–‘์˜ ์ฝ”๋”ฉ์„ ํ•  ๋•Œ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ๊ฐ€๋Šฅ
1. ๋Ÿฐํƒ€์ž„ ์‹œ ์˜ค๋ฅ˜๊ฐ€ ๊ฒ€์ถœ
2. ํ”„๋กœ์ ํŠธ ์‚ฌ์ด์ฆˆ๊ฐ€ ์ปค์ง€๋ฉด ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์–ด๋ ต๋‹ค

 


4. ์ƒ์‚ฐ์„ฑ(์œ ์ง€๋ณด์ˆ˜)๊ฐ€ ์™œ ์œ ๋ฆฌํ• ๊นŒ?

 

์•„๋ž˜ ์ฝ”๋“œ๋ฅผ typescript์— ์ž‘์„ฑ๊ณผ ๋™์‹œ์— ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค,

ํ•˜์ง€๋งŒ javascript์—์„œ๋Š” ์‹คํ–‰ํ•ด์•ผ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

const me = {
  name: 'seunghyo',
  gender: 'man',
};

console.log(person.age);
  • ์—๋Ÿฌ ๋ฐœ์ƒ
    • ์ •์  ํƒ€์ž… ์–ธ์–ด์ธ TS๋Š” IDE(vsc)์—์„œ person์˜ ํƒ€์ž…์„ ์•Œ๊ธฐ์— ์—๋Ÿฌ๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค.
    • ๋™์  ํƒ€์ž… ์–ธ์–ด์ธ JS๋Š” IDE(vsc)์—์„œ ์•Œ ์ˆ˜ ์—†๋‹ค.
  • ์ž๋™ ์™„์„ฑ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜คํƒ€, ๋น ๋ฅธ ์‚ฌ์šฉ์„ฑ์„ ์ œ๊ณต๋ฐ›๋Š”๋‹ค

5. ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ… >> ์ปดํŒŒ์ผ

 

ํ„ฐ๋ฏธ๋„์— ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์„ค์น˜๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค

 

// ์‚ฌ์šฉํ•  ํ”„๋กœ์ ํŠธ์— ์„ค์น˜ํ•  ๊ฒฝ์šฐ
npm install typescript
// ์ „์—ญ(๋‚ด ์ปดํ“จํ„ฐ)ํ™˜๊ฒฝ์— ์„ค์น˜ํ•  ๊ฒฝ์šฐ
npm install -g typescript

 

ํ„ฐ๋ฏธ๋„์— ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ
์ž‘์—… ํด๋” ๋‚ด๋ถ€์— 'typescirpt compiler' ์„ค์น˜ํ•œ๋‹ค

npx tsc --init

 

 

๊ฒฐ๊ณผ ํ™”๋ฉด(ํ„ฐ๋ฏธ๋„) :

ํ„ฐ๋ฏธ๋„์— ์œ„์ฒ˜๋Ÿผ ์ถœ๋ ฅ๋˜๋ฉด ์ •์ƒ์ ์œผ๋กœ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ด ์„ธํŒ… ๋œ ๊ฒƒ์ด๋‹ค!

 

์ปดํŒŒ์ผ ๊ณผ์ •์€ ๋ฌด์ฒ™ ์‰ฝ๋‹ค!

์ด์ œ ํด๋” ๋‚ด๋ถ€์—

'ํŒŒ์ผ์ด๋ฆ„.ts' ๋ฅผ ์ƒ์„ฑ ํ›„ ๋ณธ์ธ์˜ ์ž‘์—…์„ ๋งˆ์น˜๊ณ ,

 npx tsc

์œ„ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด,

 

 

๊ธฐ์กด์— tsc ๋ช…๋ น์–ด๋กœ ์ƒ์„ฑํ•œ tsconfig.json๊ณผ
๋‚ด๊ฐ€ ์ž‘์—…ํ•œ hello.ts์™€ hi.ts ์ด๋ ‡๊ฒŒ ์„ธ๊ฐ€์ง€๋ฅผ ๋งŒ๋“ค์—ˆ์ง€๋งŒ,

๋‚ด๊ฐ€ ์ƒ์„ฑํ•˜์ง€ ์•Š์€ JSํŒŒ์ผ์ด ์ƒ๊ธฐ๊ณ 

js ํŒŒ์ผ์„ ์—ด์–ด๋ณด๋ฉด ์ƒ์†Œํ•œ ๊ตฌ๋ฌธ์œผ๋กœ

์ปดํŒŒ์ผ์ด ๋œ ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.


 

 ์ตœ์ข… ์ •๋ฆฌ 

  1. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ == ๋™์ ํƒ€์ž…, ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ == ์ •์ ํƒ€์ž…
  2. Typescript๋Š” ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด ์ปดํŒŒ์ผํƒ€์ž„์— ๊ฒฐ์ •๋œ๋‹ค
  3. ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋Š” ์—๋Ÿฌ๋ฅผ ๋ฏธ๋ฆฌ ๋ฐœ์ƒํ•ด์ฃผ๋ฉฐ ์ž๋™์™„์„ฑ ๊ธฐ๋Šฅ์œผ๋กœ ์ƒ์‚ฐ์„ฑ ํ–ฅ์ƒ
  4. [ํ™˜๊ฒฝ์„ธํŒ…] ํ”„๋กœ์ ํŠธ, ์ „์—ญ์— typescript ์„ค์น˜(install) >> ์ปดํŒŒ์ผ๋Ÿฌ(tsc) ์„ค์น˜ >> ์ปดํŒŒ์ผ(npx tsc)