๐ฉ Frontend-HTML & CSS & +JS/๐ฐ Node Js
Node.js ๋ฐ TypeScript ๊ธฐ์ด ๊ฐ์ด๋
ramen2
2024. 10. 30. 17:39
๋ฐ์ํ
1. Node.js ๊ฐ์
- Node.js๋ ์๋ฒ ์ฌ์ด๋์์ ์คํ๋๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ๊ฒฝ์ด๋ค.
- Google V8 ์์ง์ ์ฌ์ฉํด ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ๋น ๋ฅด๊ฒ ์คํํ๋ค.
- ์น ์๋ฒ ์ํํธ์จ์ด(์: Apache, Tomcat)๊ฐ ํ์ ์์ด ๋ด์ฅ ์น ์๋ฒ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
- **NPM(Node Package Manager)**์ผ๋ก ๋ค์ํ ํจํค์ง์ ๋ชจ๋์ ๊ด๋ฆฌํ๋ค.
2. ๋ช ๋ น์ด ์ ๋ฆฌ
๋์ค ๋ช ๋ น์ด
- cd / : ๋ฃจํธ ๋๋ ํฐ๋ฆฌ๋ก ์ด๋
- cd ํด๋๊ฒฝ๋ก : ์ํ๋ ํด๋๋ก ์ด๋
- cd .. : ์์ ํด๋๋ก ์ด๋
- md ํด๋๋ช : ํด๋ ์์ฑ
3. TypeScript ๊ฐ์
- 2012๋ Anders Hejlsberg๊ฐ ์์ํ ์คํ ์์ค ์ธ์ด.
- JavaScript์ Superset์ผ๋ก, JavaScript๋ก ๋ณํ๋์ด ์คํ๋๋ค.
- ๊ฐ๋ ฅํ ํ์ ์ง์ ๊ธฐ๋ฅ๊ณผ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ(OOP)์ ์ง์ํ๋ค.
- Angular, React, Vue ๊ฐ์ SPA ํ๋ ์์ํฌ์์ ํธํ์ด ๋ฐ์ด๋๋ค.
TypeScript๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ์ด์
- ์ต์ JavaScript ๊ธฐ๋ฅ์ ์ง๊ธ ๋ฐ๋ก ์ฌ์ฉ ๊ฐ๋ฅ.
- ํ์ ์์ ์ฑ์ ํตํด ์ฝ๋์ ์ค๋ฅ๋ฅผ ์ค์.
- ์ฃผ์ ํ๋ ์์ํฌ๋ค์ด TypeScript๋ฅผ ๊ธฐ๋ณธ ์ฑํํจ.
4. ์ค์น ๋ฐฉ๋ฒ ๋ฐ ์ฌ์ฉ๋ฒ
Node.js ์ค์น
- Node.js ๊ณต์ ์ฌ์ดํธ์์ LTS ๋ฒ์ ๋ค์ด๋ก๋.
- ์ผ๋ฐ์ ์ธ ํ๋ก๊ทธ๋จ ์ค์น์ฒ๋ผ '๋ค์-๋ค์'์ ํตํด ์ค์น.
- ์ค์น ํ, ํฐ๋ฏธ๋์ ์
๋ ฅ:
node --v # Node.js ๋ฒ์ ํ์ธnpm --v # NPM ๋ฒ์ ํ์ธ
- NPM ์ค๋ฅ ๋ฐ์ ์, ์๋ ๋ช
๋ น์ด๋ก ํด๊ฒฐ:
npm install -g npm # NPM ์ฌ์ค์น
TypeScript ์ค์น
- ์ ์ญ ์ค์น (cmd ๋ค์ด๊ฐ์ ์๋ ๋ช
๋ น์ด ์
๋ ฅ):
npm install -g typescript
- ๋ฒ์ ํ์ธ:
tsc --version
- ๋์๋ง ํ์ธ:
tsc --help
- ํ๋ก์ ํธ ์ด๊ธฐํ:
tsc --init
- TypeScript ํ์ผ ์ปดํ์ผ:
tsc app.ts # app.ts → app.js๋ก ๋ณํ
- ์๋ ์ปดํ์ผ ๋ชจ๋ ํ์ฑํ:
tsc -w # ํ์ผ ์ ์ฅ ์ ์๋ ์ปดํ์ผ
- ์ค์ง: CTRL + C
- ์ค์ง: CTRL + C
5. TypeScript ์ฃผ์ ๊ธฐ๋ฅ ๋ฐ ํค์๋ ์ ๋ฆฌ
์ฃผ์ ๊ธฐ๋ฅ
- ์ธํฐํ์ด์ค(Interfaces): ๋ฐ์ดํฐ์ ํํ๋ฅผ ์ ์ํ๊ณ ๊ท์น ์ค์ .
- ํด๋์ค(Classes): ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ(OOP) ๋ฐฉ์ ์ง์.
- ์ ๋ค๋ฆญ(Generics): ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ๊ณผ ํ์ฅ์ฑ์ ๋์.
- ๋ชจ๋(Modules): ๊ด๋ จ ์ฝ๋๋ค์ ๊ทธ๋ฃนํํ์ฌ ๊ด๋ฆฌ.
ํค์๋ ์ ๋ฆฌ
- class: ํด๋์ค ์ ์
- constructor: ์์ฑ์ ํจ์ (ํด๋์ค ์ด๊ธฐํ)
- export: ์ธ๋ถ์์ ์ฌ์ฉํ ์ ์๋ ๋ฉค๋ฒ ์ง์
- extends: ํด๋์ค ์์
- implements: ์ธํฐํ์ด์ค ๊ตฌํ
- import: ๋ชจ๋ ๊ฐ์ ธ์ค๊ธฐ
- public/private: ๋ฉค๋ฒ ์ ๊ทผ ์ ์ด
- =>: ํ์ดํ ํจ์ ๊ตฌ๋ฌธ (ES6)
6. TypeScript ๋ณ์์ ํ์
๋ณ์ ์ ์ธ ์์
var str: string = 'hello'; // string ํ์
๋ณ์ ์ ์ธ
function greet(name: string): string {
return 'Hello ' + name;
}
์ฃผ์ ๋ฐ์ดํฐ ํ์
- any: ๋ชจ๋ JavaScript ๊ฐ ํ์ฉ
- number: ์ ์์ ์ค์ ๋ชจ๋ ํฌํจ
- boolean: true/false ๊ฐ
- string: ๋ฌธ์์ด
- null/undefined: ํด๋น ๋ฆฌํฐ๋ด ๊ฐ
- void: ๋ฐํ๊ฐ์ด ์๋ ํจ์
- array: ๋ฐฐ์ด ํ์
- enum: ์ด๊ฑฐํ
7. TypeScript ํด๋์ค ์์
const Person = class {
name: string;
age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
greet(): void {
console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
}
};
const john = new Person('John', 30);
john.greet();
๋ฐ์ํ