TypeScript๋ Microsoft์์ ๊ฐ๋ฐํ ์คํ์์ค ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์
๋๋ค.
๊ธฐ์กด JavaScript๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋, ์ ์ ํ์
(static typing) ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์์ ์ธ์ด์
๋๋ค.
์ฆ, JavaScript์ ๋จ์ ์ ๋ณด์ํ๋ฉด์ ๋ ์์ ์ ์ด๊ณ ๊ท๋ชจ ์๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ง๋ค๊ธฐ ์ํ ๋๊ตฌ์
๋๋ค.
โ JavaScript + Type = TypeScript
| ํน์ง | ์ค๋ช |
|---|---|
| ๐ ์ ์ ํ์ ๊ฒ์ฌ | ๋ณ์, ํจ์์ ํ์ ์ ๋ช ์ํ ์ ์์ผ๋ฉฐ ์ปดํ์ผ ์์ ์ ํ์ ์ค๋ฅ ๊ฐ์ง |
| โฑ ๋น ๋ฅธ ์ค๋ฅ ๊ฒ์ถ | ์คํ ์ ์ ๋ฒ๊ทธ๋ฅผ ํ์ธํ ์ ์์ (๋ฐํ์ ์๋ฌ ๊ฐ์) |
| ๐ฏ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ง์ | ํด๋์ค, ์ธํฐํ์ด์ค, ์์ ๋ฑ ์ง์ |
| ๐งฉ JavaScript 100% ํธํ | JS ๋ฌธ๋ฒ ๊ทธ๋๋ก ์ฌ์ฉ ๊ฐ๋ฅ, ์ ์ง์ ์ผ๋ก ์ ์ฉ ๊ฐ๋ฅ |
| ๐ ๋๊ตฌ ์นํ์ฑ | VS Code ๋ฑ IDE์์ ๊ฐ๋ ฅํ ์๋์์ฑ, ๊ฒฝ๊ณ , ๋ฆฌํฉํ ๋ง ์ง์ |
let name: string = "ํ๊ธธ๋";
let age: number = 30;
let isAdmin: boolean = true; let numbers: number[] = [1, 2, 3];
let user: { name: string; age: number } = {
name: "์ฒ ์",
age: 25
}; function add(x: number, y: number): number {
return x + y;
} interface Person {
name: string;
age: number;
}
const person: Person = {
name: "์ํฌ",
age: 22
}; class Animal {
constructor(public name: string) {}
speak(): void {
console.log(`${this.name}์ด(๊ฐ) ์๋ฆฌ๋ฅผ ๋
๋๋ค.`);
}
}
const dog = new Animal("๊ฐ์์ง");
dog.speak(); 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 |
| ๊ธฐ๋ฐ ์ธ์ด | JavaScript |
| ํต์ฌ ๊ธฐ๋ฅ | ์ ์ ํ์ ๊ฒ์ฌ, ํด๋์ค, ์ธํฐํ์ด์ค, ์ ๋ค๋ฆญ |
| ๋ํ ํ์ฉ ๋ถ์ผ | ํ๋ก ํธ์๋(React, Angular, Vue), Node.js ๋ฐฑ์๋ |
| ์ ํฉํ ๋์ | ์ค/๋ํ ํ๋ก์ ํธ, ํ์ , ์ฅ๊ธฐ ์ ์ง๋ณด์ ํ๋ก์ ํธ |
1. ํ์ ์คํฌ๋ฆฝํธ ๊ฐ์ ํ์ ์คํฌ๋ฆฝํธ(TypeScript)๋ ๋ง์ดํฌ๋ก์ํํธ(Microsoft)๊ฐ ๊ฐ๋ฐํ ์๋ฐ์คํฌ๋ฆฝํธ(JavaScript)์ ์์ ์งํฉ(Superset) ์ธ์ด์ ๋๋ค.์ฆ, ์๋ฐ์คํฌ๋ฆฝํธ์ ์ ์ ํ์ (Static Type)์ ์ถ๊ฐํ๊ณ ,…
์๋์ฐ ์ด์์ฒด์ ์ ๋ ธํธ๋ถ์์๋ iPhone ์ ์ ํ ๋๋ง์ด ์ ์๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๋ณดํต iPhone์ ๋๋ผ์ด๋ฒ๊ฐ ์ค์น๊ฐ ์๋์์ด์์ธ…
์ค๋ผํด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฑ๋ฅ์ ๋ ผํ ๋, ๋ด๋ถ์ ์ผ๋ก ๋ฐ์ํ๋ ๊ฒฝํฉ(Contention)์ ํผํ ์ ์๋ ์ฃผ์ ๋ค. ํนํ ๋ค์์ ํ๋ก์ธ์ค๊ฐ…
์๋ ํ์ธ์, ํน์ ์ด๋ฐ ์๊ฐํด ๋ณธ ์ ์์ผ์ ๊ฐ์? "๋ด๊ฐ ํฌ์ํ ํ์ฌ๋ ๋๊ฐ ๊ฐ์ํ๊ณ , ์ด๋ป๊ฒ ์ด์๋ ๊น?" ์ค๋์…
'๋ฒกํฐ ์คํ ์ด' ์๋ฒฝ ๊ฐ์ด๋: AI ์๋, ๋ฐ์ดํฐ์ ์๋ก์ด ์ฌ์ฅ์ ๋ง๋๋ค IT ์ ๊ณ๋ ์ธ๊ณต์ง๋ฅ(AI)์ด๋ผ๋ ๊ฑฐ๋ํ ํจ๋ฌ๋ค์์…
1. Gemini CLI๋ ๋ฌด์์ธ๊ฐ์? Gemini CLI๋ ํฐ๋ฏธ๋ ํ๊ฒฝ์์ ์ง์ Gemini ๋ชจ๋ธ๊ณผ ์ํธ์์ฉํ ์ ์๋๋ก ๋ง๋ค์ด์ง…