ํฐ์คํ ๋ฆฌ ๋ทฐ
NestJS๋ก ํ๋ก์ ํธ ๋ง๋ค์ด๋ณด๊ธฐ - 1 (nestjs/cli)
๋๋์ด๋ฐ๐พ 2023. 2. 10. 13:17
Node.js๋ฅผ ์ฌ์ฉํ๊ณ , Typescript๋ฅผ ๋ฐฐ์ฐ๋ ์์ค์ ์ ํ๋ ํ๋ ์์ํฌ์ธ NestJS๋ผ๋ ๋ฌผ๊ฑด์ ์ฌ์ฉํ๊ฒ ๋์์ต๋๋ค.
๊ธฐ์กด์ Express๋ฅผ ์ฌ์ฉํ์๊ณ , ๊ทธ ์์ Typescript๋ฅผ ์
ํ
ํ์ฌ ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ๊ณผ๋ ๋ค๋ฅด๊ฒ ์ด ํ๋ ์์ํฌ๋ฅผ ์ฐ๊ฒ๋๋ฉด ๊ธฐ๋ณธ์ ์ธ Typescript ์
ํ
๋ถํฐ ์ ์ฒด์ ์ธ ๊ตฌ์กฐ๊น์ง ํ๋ ์์ํฌ ์์ฑ ์ปค๋งจ๋๋ฅผ ํตํด ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํด์ค๋๋ค. ๊ณต์ ๋ฌธ์์์๋ ์๋์ ๊ฐ์ด ์๊ฐํฉ๋๋ค.
Nest (NestJS) is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with and fully supports TypeScript (yet still enables developers to code in pure JavaScript) and combines elements of OOP (Object Oriented Programming), FP (Functional Programming), and FRP (Functional Reactive Programming).
Under the hood, Nest makes use of robust HTTP Server frameworks like Express (the default) and optionally can be configured to use Fastify as well!
Nest provides a level of abstraction above these common Node.js frameworks (Express/Fastify), but also exposes their APIs directly to the developer. This gives developers the freedom to use the myriad of third-party modules which are available for the underlying platform.
[์ถ์ฒ - https://docs.nestjs.com/]
์ง์ ์ฌ์ฉํด๋ณด๋ฉด์ ๋๊ผ๋๊ฑฐ์ง๋ง ์ฝ๊ฐ Spring ๊ฐ์ ๋๋์ด ์์์ต๋๋ค.
๊ธฐ์กด์ ๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๊ตฌ์ฑํ๋ ๋ชจ์์์๋ ๋ฌ๋ฆฌ OOP(๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ)์ ์์๊ฐ ๊ฐ๋ ฅํ๊ฒ ๋๊ปด์ก์ต๋๋ค.
๊ณต์ ๋ฌธ์์์ ๊ฐ์ด๋ํด์ฃผ๋ ์์๋๋ก ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ฉด ๊ต์ฅํ ์ฝ๊ฒ ์น์ดํ๋ฆฌ์ผ์ด์
์ ์คํํ ์ ์๊ณ , ์์ฃผ ๊น๋ํ๊ฒ ํ๋ก์ ํธ์ ๊ตฌ์กฐ๊ฐ ์์ฑ๋ฉ๋๋ค.
$ npm i -g @nestjs/cli
$ nest new project-name
์์๊ฐ์ด ์ปค๋งจ๋๋ฅผ ์
๋ ฅํ๋ฉด package manager๋ก ๋ฌด์์ ์ธ์ง ๋ฌผ์ด๋ณด๋๋ฐ
๊ทธ๊ฑด ์ทจํฅ์ ๋ง๊ฒ๋ ์ ํํ์๋ฉด ์ด๋ฐ ๊ตฌ์กฐ์ ํ๋ก์ ํธ๊ฐ ์์ฑ๋ฉ๋๋ค.
test๋ชจ๋๊ณผ ๊ธฐํ ์ค์ ํ์ผ๋ค์ ์ ์ณ๋๊ณ src๋๋ ํ ๋ฆฌ ์์ ํ์ผ๋ค์ ๋ณด์๋ฉด ๋๋๋ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ธ๊ฐ์ง์ ๊ตฌ์ฑ์ด ์์ต๋๋ค.
๋ฌผ๋ก ์ผ๋ฐ์ ์ธ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ๋ ์๋๊ณ ์ฑ์ ๊ตฌ๋ํ๊ธฐ ์ํ ๊ธฐ๋ณธ ๊ตฌ์ฑ๋ง์ ์์ฑํด์ค๋๋ค.
- Controller : ์ปจํธ๋กค๋ฌ๋ ๋ค์ด์ค๋ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ํด๋ผ์ด์ธํธ์ ์๋ต์ ๋ฐํํ๋ ์ญํ ์ ํฉ๋๋ค.
- Module : Nest๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์กฐ๋ฅผ ๋ง๋ค๋ ์ฌ์ฉํ ์ ์๋ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํด์ฃผ๋ ์ญํ ์ ํฉ๋๋ค. ๋ด์ฉ์ด ์กฐ๊ธ ํท๊ฐ๋ฆฌ๋๋ฐ ๊ตณ์ด ๋น์ ๋ฅผ ํ์๋ฉด Module์ Controller๋ Service๋ฑ์ ์ถ๊ฐํ์ฌ ํน์ ๊ธฐ๋ฅ์ ๊ฐ์ง๋ ๋ชจ๋๋ก ๋ง๋ค ์ ์์ต๋๋ค. ํ๋ก์ ํธ ์์ฑ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ง๋ค์ด์ง ๋ชจ๋์ ๋ฃจํธ๋ชจ๋์ ๋๋ค.
- Service : ์๋น์ค, ๋ง๊ทธ๋๋ก ์๋น์ค๋ฅผ ํ๊ธฐ์ํ ๋ก์ง์ ๋ด๊ณ ์๋ ์ญํ ์ ํฉ๋๋ค.
NestJS๋ Typescript๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ง ํ๋ ์์ํฌ๊ธฐ๋๋ฌธ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋น๋๊ฐ ํ์ํฉ๋๋ค.
๊ทธ๋์ nest build ๋ช
๋ น์ด๋ฅผ ์ฐ๋ฉด tsconfig ์ค์ ์ ์ด์ฉํ์ฌ Typescript ๋น๋๋ฅผ ํ๊ณ ๋น๋๋ js ํ์ผ์ node ๋ช
๋ น์ด๋ก ์คํ์ํฌ ์ ์์ต๋๋ค.
npm ํน์ yarn start ๋ช
๋ น์ด๋ก ์คํ์ ํ๋ฉด ์์ฃผ ๊ฐ๋จํ๊ฒ 3000 ํฌํธ๋ก ์น์ดํ๋ฆฌ์ผ์ด์
ํ๋๊ฐ ๋จ๊ฒ๋ฉ๋๋ค.
์์์ ๊ต์ฅํ ๊ฐ๋จํ์ฃ ? ๊ทธ๋ผ ๊ตณ์ด ์ด๋ฐ ํ๋ ์์ํฌ๋ฅผ ์ ์จ์ผํ ๊น ์ถ์๋๋ฐ ์ฌ์ฉํ๋ค๋ณด๋ NestJS์ ์ฌ๋ฌ ๊ธฐ๋ฅ๋ค์ด ์์์ต๋๋ค.
๋ค์ํ ์ด๋
ธํ
์ด์
์ง์๊ณผ ์ํคํ
์ณ๊ฐ ๋ช
ํํ๊ณ ๊ทธ์๋ฐ๋ฅธ ๊ฐ์ข
๊ธฐ๋ฅ๋ค์ ๊ณต์์ ์ผ๋ก ์ง์ํด์ฃผ๊ณ ์๊ธฐ๋๋ฌธ์ ํฐ ๋ฌด๋ฆฌ์์ด ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํ ์ ์์์ต๋๋ค. ์ด๋ฐ ๋ถ๋ถ๋ค์ ๋ค๋ฅธ ๊ธ์์ ๋ด์๋ณผ ์ ์๋๋ก ํ๊ฒ ์ต๋๋ค.
'Node.js > Nest.js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
NestJS๋ก ํ๋ก์ ํธ ๋ง๋ค์ด๋ณด๊ธฐ - 4 (configuration ์ ์ฉ) (0) | 2023.02.22 |
---|---|
NestJS๋ก ํ๋ก์ ํธ ๋ง๋ค์ด๋ณด๊ธฐ - 3 (DB์ฐ๋) (0) | 2023.02.16 |
NestJS๋ก ํ๋ก์ ํธ ๋ง๋ค์ด๋ณด๊ธฐ - 2 (๋๋ ํ ๋ฆฌ๊ตฌ์ฑ) (0) | 2023.02.14 |
- Total
- Today
- Yesterday
- node.js
- nestjs config
- foreignkey
- typeorm ์ฐ๊ฒฐ
- Spring
- Spring Async
- android
- sequelize
- JavaScript
- DeferredResult
- nestjs typeorm
- nestjs project
- docker mysql
- nestjs module
- ๋น๋๊ธฐ ์์ฒญ
- NestJS
- node.js backend
- ๊ธฐ์์ฒญAPI
- nestjs directory
- nestjs/cli
- typeorm
- nestjs doc
- Request_Limit_Exceeded
- ์๊ณ ๋ฆฌ์ฆ
- backend-framework
- Promise bulk
- Promise error
- nestjs configService
- @nestjs/config
- ํ๋ก๊ทธ๋๋จธ์ค
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |