๐ŸŒŸ TypeScript๋ž€?

TypeScript๋Š” Microsoft์—์„œ ๊ฐœ๋ฐœํ•œ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ž…๋‹ˆ๋‹ค.
๊ธฐ์กด JavaScript๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋˜, ์ •์  ํƒ€์ž…(static typing) ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•œ ์ƒ์œ„ ์–ธ์–ด์ž…๋‹ˆ๋‹ค.

์ฆ‰, JavaScript์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•˜๋ฉด์„œ ๋” ์•ˆ์ •์ ์ด๊ณ  ๊ทœ๋ชจ ์žˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

โœ… JavaScript + Type = TypeScript

๐Ÿง  ์™œ TypeScript๋ฅผ ์“ธ๊นŒ?

JavaScript์˜ ๋ฌธ์ œ์ 

  • ๋ณ€์ˆ˜์— ์–ด๋–ค ํƒ€์ž…์ด ๋“ค์–ด๊ฐ€๋Š”์ง€ ์•Œ ์ˆ˜ ์—†์Œ
  • ์˜คํƒ€, ํƒ€์ž… ์˜ค๋ฅ˜๊ฐ€ ๋Ÿฐํƒ€์ž„(runtime)์—์•ผ ๋ฐœ๊ฒฌ๋จ
  • ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋ฒ„๊ทธ ์ถ”์ ์ด ์–ด๋ ค์›€

TypeScript์˜ ํ•ด๊ฒฐ์ฑ…

  • ํƒ€์ž…์„ ๋ช…์‹œํ•จ์œผ๋กœ์จ ์ปดํŒŒ์ผ ๋‹จ๊ณ„์—์„œ ์˜ค๋ฅ˜๋ฅผ ์‚ฌ์ „ ๊ฒ€์ถœ
  • IDE ์ž๋™์™„์„ฑ, ๋ฆฌํŒฉํ† ๋ง ์ง€์› ๊ฐ•ํ™”
  • ํŒ€ ํ˜‘์—…๊ณผ ์œ ์ง€๋ณด์ˆ˜์— ์œ ๋ฆฌ

๐Ÿš€ TypeScript์˜ ์ฃผ์š” ํŠน์ง•

ํŠน์ง•์„ค๋ช…
๐Ÿ”  ์ •์  ํƒ€์ž… ๊ฒ€์‚ฌ๋ณ€์ˆ˜, ํ•จ์ˆ˜์˜ ํƒ€์ž…์„ ๋ช…์‹œํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ปดํŒŒ์ผ ์‹œ์ ์— ํƒ€์ž… ์˜ค๋ฅ˜ ๊ฐ์ง€
โฑ ๋น ๋ฅธ ์˜ค๋ฅ˜ ๊ฒ€์ถœ์‹คํ–‰ ์ „์— ๋ฒ„๊ทธ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ (๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ ๊ฐ์†Œ)
๐ŸŽฏ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ง€์›ํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค, ์ƒ์† ๋“ฑ ์ง€์›
๐Ÿงฉ JavaScript 100% ํ˜ธํ™˜JS ๋ฌธ๋ฒ• ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ, ์ ์ง„์ ์œผ๋กœ ์ ์šฉ ๊ฐ€๋Šฅ
๐Ÿ›  ๋„๊ตฌ ์นœํ™”์„ฑVS Code ๋“ฑ IDE์—์„œ ๊ฐ•๋ ฅํ•œ ์ž๋™์™„์„ฑ, ๊ฒฝ๊ณ , ๋ฆฌํŒฉํ† ๋ง ์ง€์›

๐Ÿงพ ๊ธฐ๋ณธ ๋ฌธ๋ฒ• ์˜ˆ์ œ

1. ๋ณ€์ˆ˜ ์„ ์–ธ๊ณผ ํƒ€์ž…

let name: string = "ํ™๊ธธ๋™";
let age: number = 30;
let isAdmin: boolean = true;

2. ๋ฐฐ์—ด๊ณผ ๊ฐ์ฒด

let numbers: number[] = [1, 2, 3];
let user: { name: string; age: number } = {
name: "์ฒ ์ˆ˜",
age: 25
};

3. ํ•จ์ˆ˜์— ํƒ€์ž… ์ง€์ •

function add(x: number, y: number): number {
return x + y;
}

4. ์ธํ„ฐํŽ˜์ด์Šค

interface Person {
name: string;
age: number;
}

const person: Person = {
name: "์˜ํฌ",
age: 22
};

5. ํด๋ž˜์Šค

class Animal {
constructor(public name: string) {}

speak(): void {
console.log(`${this.name}์ด(๊ฐ€) ์†Œ๋ฆฌ๋ฅผ ๋ƒ…๋‹ˆ๋‹ค.`);
}
}

const dog = new Animal("๊ฐ•์•„์ง€");
dog.speak();

6. ์œ ๋‹ˆ์˜จ ํƒ€์ž… / ํƒ€์ž… ๋ณ„์นญ

type Status = "success" | "error" | "loading";

let currentStatus: Status = "success";

๐Ÿ“ฆ ์„ค์น˜ ๋ฐ ์ปดํŒŒ์ผ

npm install -g typescript      # TypeScript ์„ค์น˜
tsc --init # tsconfig.json ์ƒ์„ฑ
tsc index.ts # TypeScript โ†’ JavaScript ์ปดํŒŒ์ผ

๐Ÿงช ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ ์š”์•ฝ

๊ธฐ๋Šฅ์˜ˆ์‹œ
์ œ๋„ค๋ฆญ (Generic)function identity<T>(arg: T): T
ํƒ€์ž… ์ถ”๋ก let name = "hello"; โ†’ string ์ž๋™ ์ถ”๋ก 
์„ ํƒ์  ์†์„ฑinterface User { name: string; age?: number }
readonly์ฝ๊ธฐ ์ „์šฉ ์†์„ฑ ์ง€์ •
ํƒ€์ž… ๊ฐ€๋“œif (typeof value === "string") { ... }

โš–๏ธ TypeScript์˜ ์žฅ๋‹จ์ 

โœ… ์žฅ์ 

  • ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์— ์ ํ•ฉ
  • ๋ฒ„๊ทธ ์˜ˆ๋ฐฉ์— ํƒ์›” (์ปดํŒŒ์ผ ๋‹จ๊ณ„์—์„œ ์˜ค๋ฅ˜ ๊ฐ์ง€)
  • ์ฝ”๋“œ ์ž๋™์™„์„ฑ, ๋ฆฌํŒฉํ† ๋ง์ด ์‰ฌ์›€
  • ์ธํ„ฐํŽ˜์ด์Šค์™€ ํด๋ž˜์Šค ๋“ฑ OOP ์ง€์›
  • JS์™€ ํ˜ธํ™˜์„ฑ ๋†’์Œ (๊ธฐ์กด ์ฝ”๋“œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ)

โŒ ๋‹จ์ 

  • ๋Ÿฌ๋‹ ์ปค๋ธŒ ์กด์žฌ (์ฒ˜์Œ์—” ๋ณต์žกํ•ด ๋ณด์ผ ์ˆ˜ ์žˆ์Œ)
  • ์„ค์ • ๋ฐ ๋นŒ๋“œ ํ™˜๊ฒฝ ์ถ”๊ฐ€ ํ•„์š”
  • ๊ฐ„๋‹จํ•œ ํ”„๋กœ์ ํŠธ์—๋Š” ๊ณผํ•  ์ˆ˜ ์žˆ์Œ

๐Ÿข TypeScript ์‚ฌ์šฉํ•˜๋Š” ๋Œ€ํ‘œ ๊ธฐ์—…

  • Microsoft (๋ฌผ๋ก !)
  • Google (Angular ๊ณต์‹ ์–ธ์–ด)
  • Slack
  • Airbnb
  • Uber
  • Shopify

๐Ÿ“Œ ์š”์•ฝ ์ •๋ฆฌ

ํ•ญ๋ชฉ๋‚ด์šฉ
์–ธ์–ด๋ช…TypeScript
๊ธฐ๋ฐ˜ ์–ธ์–ดJavaScript
ํ•ต์‹ฌ ๊ธฐ๋Šฅ์ •์  ํƒ€์ž… ๊ฒ€์‚ฌ, ํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค, ์ œ๋„ค๋ฆญ
๋Œ€ํ‘œ ํ™œ์šฉ ๋ถ„์•ผํ”„๋ก ํŠธ์—”๋“œ(React, Angular, Vue), Node.js ๋ฐฑ์—”๋“œ
์ ํ•ฉํ•œ ๋Œ€์ƒ์ค‘/๋Œ€ํ˜• ํ”„๋กœ์ ํŠธ, ํ˜‘์—…, ์žฅ๊ธฐ ์œ ์ง€๋ณด์ˆ˜ ํ”„๋กœ์ ํŠธ

๐Ÿ”ง ์‚ฌ์šฉ ์ถ”์ฒœ ์˜ˆ์‹œ

  • Angular ํ”„๋กœ์ ํŠธ (๊ณต์‹ ์–ธ์–ด๋กœ TypeScript ์‚ฌ์šฉ)
  • React + TypeScript ์กฐํ•ฉ์œผ๋กœ ์•ˆ์ „ํ•œ UI ๊ฐœ๋ฐœ
  • NestJS ๊ฐ™์€ ๋ฐฑ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ (Node.js ๊ธฐ๋ฐ˜)
  • ๋Œ€๊ทœ๋ชจ ๊ธฐ์—… ์‹œ์Šคํ…œ, ๊ธˆ์œต/๊ณต๊ณต ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ

zerg96

Recent Posts

์ถฉ๊ฒฉ! ์ฝ”์Šคํ”ผ 8% ํญ๋ฝ์— SKํ…”๋ ˆ์ฝค AI ์ฐจ๋‹จ๊นŒ์ง€ – ํ•œ๊ตญ์˜ AI ๋„๋ฐ•์ด ํ„ฐ์กŒ๋‹ค

์ฝ”์Šคํ”ผ 8% ํญ๋ฝ, ์„œํ‚ท๋ธŒ๋ ˆ์ด์ปค ๋ฐœ๋™, SKํ…”๋ ˆ์ฝค Claude AI ์ฐจ๋‹จ๊นŒ์ง€. ํ•œ๊ตญ์˜ AI ๋ ˆ๋ฒ„๋ฆฌ์ง€ ๋ฒ„๋ธ”์ด ๋‹จ ํ•˜๋ฃจ…

2์ฃผ ago

๋‹น์‹  ์–ผ๊ตด์ด ์ด๋ฏธ ์“ฐ์ด๊ณ  ์žˆ๋‹ค… AI ๋”ฅํŽ˜์ดํฌ ๋ฒ”์ฃ„, ์ƒ๊ฐ๋ณด๋‹ค ํ›จ์”ฌ ์‹ฌ๊ฐํ•ฉ๋‹ˆ๋‹ค

SNS ์‚ฌ์ง„ 1์žฅ์œผ๋กœ 30์ดˆ ๋งŒ์— ๋”ฅํŽ˜์ดํฌ ์˜์ƒ์ด ์™„์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋‹น์‹ ์˜ ์–ผ๊ตด์ด ์ด๋ฏธ ๋ฒ”์ฃ„์— ์•…์šฉ๋˜๊ณ  ์žˆ์„ ์ˆ˜…

3์ฃผ ago

๋‹น์‹  ์–ผ๊ตด์ด ์ด๋ฏธ ์“ฐ์ด๊ณ  ์žˆ๋‹ค โ€” AI ๋”ฅํŽ˜์ดํฌ ๋ฒ”์ฃ„, ์ƒ๊ฐ๋ณด๋‹ค ํ›จ์”ฌ ์‹ฌ๊ฐํ•ฉ๋‹ˆ๋‹ค

SNS ์‚ฌ์ง„ 1์žฅ์œผ๋กœ 30์ดˆ ๋งŒ์— ๋”ฅํŽ˜์ดํฌ ์˜์ƒ์ด ์™„์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋‹น์‹ ์˜ ์–ผ๊ตด์ด ์ด๋ฏธ ๋ฒ”์ฃ„์— ์•…์šฉ๋˜๊ณ  ์žˆ์„ ์ˆ˜…

3์ฃผ ago

๋‹ฌ๋Ÿฌยท์› ํ™˜์œจ ๊ธ‰๋“ฑ, ์ง€๊ธˆ ๋‹น์‹ ์ด ๊ผญ ์•Œ์•„์•ผ ํ•  ๊ฒƒ๋“ค

๋‹ฌ๋Ÿฌ/์› ํ™˜์œจ์ด ๊ธ‰๋“ฑํ•˜๋Š” ์ด์œ ์™€ ์‹ค์ƒํ™œ ์˜ํ–ฅ์„ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ ๋‹น์žฅ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜์ „ยทํˆฌ์ž ๋Œ€์‘ ์ „๋žต๊นŒ์ง€…

3์ฃผ ago

๋ฏธ๋ž˜์—์…‹ยท๋ฏธ๋ž˜์—์…‹๋ฒค์ฒ˜ํˆฌ์žยท๋ฏธ๋ž˜์—์…‹์ƒ๋ช… ๋™๋ฐ˜ ๊ธ‰๋“ฑ, ์ŠคํŽ˜์ด์ŠคX์™€ ๋ฌด์Šจ ๊ด€๊ณ„?

๋ฏธ๋ž˜์—์…‹ยท๋ฏธ๋ž˜์—์…‹๋ฒค์ฒ˜ํˆฌ์žยท๋ฏธ๋ž˜์—์…‹์ƒ๋ช…์ด ๋™๋ฐ˜ ๊ธ‰๋“ฑํ•œ ์ด์œ ๋Š” ์ŠคํŽ˜์ด์ŠคX ์ƒ์žฅ ๊ธฐ๋Œ€๊ฐ์ž…๋‹ˆ๋‹ค. ์„ธ ํšŒ์‚ฌ๊ฐ€ ์ŠคํŽ˜์ด์ŠคX์™€ ์–ด๋–ป๊ฒŒ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š”์ง€ ์ƒ์„ธํžˆ ๋ถ„์„ํ–ˆ์Šต๋‹ˆ๋‹ค.

3์ฃผ ago

์ŠคํŽ˜์ด์ŠคX ์ƒ์žฅ D-๋ฐ์ด? ์ผ๋ก  ๋จธ์Šคํฌ๊ฐ€ ์ ˆ๋Œ€ ๋ง ์•ˆ ํ•˜๋Š” ์ง„์งœ ์ด์œ 

์ŠคํŽ˜์ด์ŠคX ์ƒ์žฅ์ด ๊ณ„์† ๋ฏธ๋ค„์ง€๋Š” ์ง„์งœ ์ด์œ ๋ฅผ ํŒŒํ—ค์ณค์Šต๋‹ˆ๋‹ค. ํ™”์„ฑ ๊ณ„ํš, ์Šคํƒ€๋งํฌ ๋ถ„๋ฆฌ, ๊ตญ๋ฐฉ ๊ณ„์•ฝ... ๋จธ์Šคํฌ๊ฐ€ ์ ˆ๋Œ€…

3์ฃผ ago