Introduction

Introduction

Nest (λ˜λŠ” NestJS)λŠ” 효율적이고 ν™•μž₯ κ°€λŠ₯ν•œ Node.js μ„œλ²„μΈ‘ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λΉŒλ“œν•˜κΈ° μœ„ν•œ ν”„λ ˆμž„ μ›Œν¬μž…λ‹ˆλ‹€. 점진적 JavaScriptλ₯Ό μ‚¬μš©ν•˜λ©° TypeScriptλ₯Ό 기반으둜 μ™„λ²½ν•˜κ²Œ μ§€μ›ν•˜λ©° (아직 κ°œλ°œμžκ°€ μˆœμˆ˜ν•œ JavaScript둜 μ½”λ”© ν•  수 μžˆλ„λ‘ 함) OOP(Object Oriented Programming), FP( κΈ°λŠ₯ ν”„λ‘œκ·Έλž˜λ°) 및 FRP(κΈ°λŠ₯적 λ°˜μ‘μ„± ν”„λ‘œκ·Έλž˜λ°)의 μš”μ†Œλ₯Ό κ²°ν•©ν•©λ‹ˆλ‹€..

기본적으둜 NestλŠ” Express (κΈ°λ³Έκ°’)와 같은 κ°•λ ₯ν•œ HTTP Server ν”„λ ˆμž„ μ›Œν¬λ₯Ό μ‚¬μš©ν•˜λ©° μ„ νƒμ μœΌλ‘œ Fastifyλ₯Ό μ‚¬μš©ν•˜λ„λ‘ ꡬ성할 수 μžˆμŠ΅λ‹ˆλ‹€.

NestλŠ” μ΄λŸ¬ν•œ 일반적인 NodeJS ν”„λ ˆμž„ μ›Œν¬ (Express/Fastify)에 λŒ€ν•΄ 좔상화 μˆ˜μ€€μ„ μ œκ³΅ν•˜μ§€λ§Œ APIλ₯Ό κ°œλ°œμžμ—κ²Œ 직접 λ…ΈμΆœν•©λ‹ˆλ‹€. 이λ₯Ό 톡해 κ°œλ°œμžλŠ” κΈ°λ³Έ ν”Œλž«νΌμ—μ„œ μ‚¬μš©ν•  수 μžˆλŠ” μˆ˜λ§Žμ€ 타사 λͺ¨λ“ˆμ„ 자유둭게 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Philosophy

졜근 λͺ‡ λ…„ λ™μ•ˆ Node.js 덕뢄에 JavaScriptλŠ” ν”„λ‘ νŠΈ 및 λ°±μ—”λ“œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ λͺ¨λ‘μ—μ„œ μ›Ήμ˜ "lingua franca"κ°€ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 이둜 인해 개발자 생산성을 ν–₯μƒμ‹œν‚€κ³  λΉ λ₯΄κ³  ν…ŒμŠ€νŠΈ κ°€λŠ₯ν•˜λ©° ν™•μž₯ κ°€λŠ₯ν•œ ν”„λ‘ νŠΈ μ—”λ“œ μ‘μš© ν”„λ‘œκ·Έλž¨μ„ λ§Œλ“€ μˆ˜μžˆλŠ” Angular, React 및 Vue,와 같은 λ©‹μ§„ ν”„λ‘œμ νŠΈκ°€ μƒκ²ΌμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ Node (및 μ„œλ²„ μΈ‘ JavaScript)λ₯Ό μœ„ν•œ λ§Žμ€ ν›Œλ₯­ν•œ 라이브러리, 헬퍼 및 도ꡬ가 μ‘΄μž¬ν•˜μ§€λ§Œ 이듀 쀑 μ–΄λŠ 것도 μ•„ν‚€ν…μ²˜μ˜ μ£Όμš” 문제λ₯Ό 효과적으둜 ν•΄κ²°ν•˜μ§€ λͺ»ν•©λ‹ˆλ‹€.

NestλŠ” μ¦‰μ‹œ μ‚¬μš© κ°€λŠ₯ν•œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ•„ν‚€ν…μ²˜λ₯Ό μ œκ³΅ν•˜λ―€λ‘œ κ°œλ°œμžμ™€ νŒ€μ€ ν…ŒμŠ€νŠΈ κ°€λŠ₯ν•˜κ³  ν™•μž₯ κ°€λŠ₯ν•˜λ©° λŠμŠ¨ν•˜κ²Œ κ²°ν•©λ˜λ©° μœ μ§€ 관리가 μ‰¬μš΄ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Installation

μ‹œμž‘ν•˜λ €λ©΄ Nest CLIλ₯Ό μ‚¬μš©ν•˜μ—¬ ν”„λ‘œμ νŠΈλ₯Ό 슀캐 ν΄λ“œν•˜κ±°λ‚˜ μ‹œμž‘ ν”„λ‘œμ νŠΈλ₯Ό λ³΅μ œν•˜μ‹­μ‹œμ˜€ (λ‘˜ λ‹€ λ™μΌν•œ κ²°κ³Όλ₯Ό 생성 함).

Nest CLIλ₯Ό μ‚¬μš©ν•˜μ—¬ ν”„λ‘œμ νŠΈλ₯Ό 슀캐 ν΄λ”©ν•˜λ €λ©΄ λ‹€μŒ λͺ…령을 μ‹€ν–‰ν•˜μ‹­μ‹œμ˜€. 그러면 μƒˆ ν”„λ‘œμ νŠΈ 디렉토리가 μƒμ„±λ˜κ³  디렉토리에 초기 핡심 Nest 파일 및 지원 λͺ¨λ“ˆμ΄ μ±„μ›Œμ Έ ν”„λ‘œμ νŠΈμ˜ κΈ°λ³Έ ꡬ쑰가 μƒμ„±λ©λ‹ˆλ‹€. 처음 μ‚¬μš©μžμ—κ²ŒλŠ” Nest CLI둜 μƒˆ ν”„λ‘œμ νŠΈλ₯Ό μž‘μ„±ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. First Stepsμ—μ„œ 이 접근법을 계속 μ‚¬μš©ν•  κ²ƒμž…λ‹ˆλ‹€.

$ npm i -g @nestjs/cli
$ nest new project-name

λ˜λŠ” Git을 μ‚¬μš©ν•˜μ—¬ TypeScript μ‹œμž‘ ν”„λ‘œμ νŠΈλ₯Ό μ„€μΉ˜ν•˜λ €λ©΄ λ‹€μŒμ„ μˆ˜ν–‰ν•˜μ‹­μ‹œμ˜€.

$ git clone https://github.com/nestjs/typescript-starter.git project
$ cd project
$ npm install
$ npm run start

μŠ€νƒ€ν„° ν”„λ‘œμ νŠΈμ˜ JavaScript νŠΉμ§•μ„ μ„€μΉ˜ν•˜λ €λ©΄ μœ„μ˜ λͺ…λ Ή μˆœμ„œμ—μ„œjavascript-starter.git을 μ‚¬μš©ν•˜μ‹­μ‹œμ˜€.

npm (λ˜λŠ” yarn)으둜 μ½”μ–΄ 및 지원 νŒŒμΌμ„ μ„€μΉ˜ν•˜μ—¬ μ²˜μŒλΆ€ν„° μƒˆ ν”„λ‘œμ νŠΈλ₯Ό μˆ˜λ™μœΌλ‘œ λ§Œλ“€ μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. 이 경우 λ¬Όλ‘  ν”„λ‘œμ νŠΈ μƒμš©κ΅¬ νŒŒμΌμ„ 직접 μž‘μ„±ν•΄μ•Όν•©λ‹ˆλ‹€.

$ npm i --save @nestjs/core @nestjs/common rxjs reflect-metadata

Stay in touch

Last updated

Was this helpful?