First steps
First steps
์ด ๊ธฐ์ฌ์์๋ Nest์ ํต์ฌ ๊ธฐ๋ณธ ์ฌํญ์ ๋ํด ์์ ๋ด ๋๋ค. Nest ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ ๊ตฌ์ฑ ์์์ ์ต์ํด ์ง๋๋ก ์ ๋ฌธ ๋ ๋ฒจ์์ ๋ง์ ๊ธฐ์ด๋ฅผ ๋ค๋ฃจ๋ ๊ธฐ๋ฅ์ ๊ฐ์ถ ๊ธฐ๋ณธ CRUD ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น๋ํฉ๋๋ค.
Language
์ฐ๋ฆฌ๋ TypeScript๋ฅผ ์ข์ํ์ง๋ง ๋ฌด์๋ณด๋ค๋ Node.js๋ฅผ ์ข์ํฉ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ Nest๋ TypeScript ๋ฐ ์์ JavaScript์ ๋ชจ๋ ํธํ๋ฉ๋๋ค. Nest๋ ์ต์ ์ธ์ด ๊ธฐ๋ฅ์ ํ์ฉํ๋ฏ๋ก ๋ฐ๋๋ผ JavaScript์ ํจ๊ป ์ฌ์ฉํ๋ ค๋ฉด Babel ์ปดํ์ผ๋ฌ๊ฐ ํ์ํฉ๋๋ค.
์ฐ๋ฆฌ๋ ๋๋ถ๋ถ ์ฐ๋ฆฌ๊ฐ ์ ๊ณตํ๋ ์์ ์์ TypeScript๋ฅผ ์ฌ์ฉํ์ง๋ง ํญ์ ์ฝ๋ ์ค๋ํซ์ ๋ฐ๋๋ผ JavaScript ๊ตฌ๋ฌธ์ผ๋ก ์ ํ ํ ์ ์์ต๋๋ค (๊ฐ ์ค๋ํซ์ ์ค๋ฅธ์ชฝ ์๋จ ๋ชจ์๋ฆฌ์์๋ ์ธ์ด ๋ฒํผ์ ํด๋ฆญํ์ฌ ์ ํ).
Prerequisites
์ด์ ์ฒด์ ์ Node.js (>= 8.9.0)๊ฐ ์ค์น๋์ด ์๋์ง ํ์ธํ์ญ์์ค.
Setup
Nest CLI๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ๋ก์ ํธ๋ฅผ ์ค์ ํ๋ ๊ฒ์ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค. npm์ ์ค์นํ๋ฉด OS ํฐ๋ฏธ๋์์ ๋ค์ ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ์ Nest ํ๋ก์ ํธ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
project
๋๋ ํ ๋ฆฌ๊ฐ ์์ฑ๋๊ณ , ๋
ธ๋ ๋ชจ๋๊ณผ ๋ช ๊ฐ์ ๋ค๋ฅธ ์์ฉ๊ตฌ ํ์ผ์ด ์ค์น๋๋ฉฐ, src/
๋๋ ํ ๋ฆฌ๊ฐ ์์ฑ๋์ด ์ฌ๋ฌ ์ฝ์ด ํ์ผ๋ก ์ฑ์์ง๋๋ค.
srcapp.controller.tsapp.module.tsmain.ts
ํต์ฌ ํ์ผ์ ๋ํ ๊ฐ๋ตํ ๊ฐ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
main.ts
์๋ ๋น๋๊ธฐ ํจ์๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
Nest ์ ํ๋ฆฌ์ผ์ด์
์ธ์คํด์ค๋ฅผ ์์ฑํ๊ธฐ ์ํด ํต์ฌ NestFactory
ํด๋์ค๋ฅผ ์ฌ์ฉํฉ๋๋ค. NestFactory
๋ ์ ํ๋ฆฌ์ผ์ด์
์ธ์คํด์ค ์์ฑ์ ํ์ฉํ๋ ๋ช ๊ฐ์ง ์ ์ ๋ฉ์๋๋ฅผ ๋
ธ์ถํฉ๋๋ค. create()
๋ฉ์๋๋ INestApplication
์ธํฐํ์ด์ค๋ฅผ ์ถฉ์กฑ์ํค๋ ์ ํ๋ฆฌ์ผ์ด์
๊ฐ์ฒด๋ฅผ ๋ฐํํฉ๋๋ค. ์ด ๊ฐ์ฒด๋ ๋ค์ ์ฅ์์ ์ค๋ช
ํ๋ ์ผ๋ จ์ ๋ฉ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค. ์์ main.ts
์์ ์์ HTTP ๋ฆฌ์ค๋๋ฅผ ์์ํ๋ฉด ์์ฉ ํ๋ก๊ทธ๋จ์ด ์ธ๋ฐ์ด๋ HTTP ์์ฒญ์ ๊ธฐ๋ค๋ฆด ์ ์์ต๋๋ค.
Nest CLI๋ก ์ค์บ ํด๋ฉ๋ ํ๋ก์ ํธ๋ ๊ฐ๋ฐ์๊ฐ ๊ฐ ๋ชจ๋์ ์ ์ฉ ๋๋ ํ ๋ฆฌ์ ๋ณด๊ดํ๋ ๊ท์น์ ๋ฐ๋ฅด๋๋ก ๊ถ์ฅํ๋ ์ด๊ธฐ ํ๋ก์ ํธ ๊ตฌ์กฐ๋ฅผ ๋ง๋ญ๋๋ค.
Platform
Nest๋ ํ๋ซํผ์ ๊ตฌ์ ๋ฐ์ง ์๋ ํ๋ ์ ์ํฌ๊ฐ๋๋ ๊ฒ์ ๋ชฉํ๋กํฉ๋๋ค. ํ๋ซํผ ๋ ๋ฆฝ์ฑ์ ํตํด ๊ฐ๋ฐ์๋ ์ฌ๋ฌ ์ ํ์ ์์ฉ ํ๋ก๊ทธ๋จ์์ ํ์ฉํ ์ ์๋ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๋ ผ๋ฆฌ์ ๋ถ๋ถ์ ๋ง๋ค ์ ์์ต๋๋ค. ๊ธฐ์ ์ ์ผ๋ก Nest๋ ์ด๋ํฐ๊ฐ ์์ฑ๋๋ฉด ๋ชจ๋ Node HTTP ํ๋ ์ ์ํฌ์ ์๋ ํ ์ ์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ง์๋๋ ๋ ๊ฐ์ง HTTP ํ๋ซํผ์ด ์์ต๋๋ค : express ๋ฐ fastify. ํ์์ ๊ฐ์ฅ ์ ํฉํ ๊ฒ์ ์ ํํ ์ ์์ต๋๋ค.
์ด๋ค ํ๋ซํผ์ ์ฌ์ฉํ๋ ์์ฒด ์ ํ๋ฆฌ์ผ์ด์
์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ค์ ๊ฐ๊ฐ NestExpressApplication
๋ฐ NestFastifyApplication
์ผ๋ก ๋ํ๋ฉ๋๋ค.
์๋ ์์ ์ ๊ฐ์ด ํ์
์ NestFactory.create()
๋ฉ์๋์ ์ ๋ฌํ๋ฉด app
๊ฐ์ฒด๋ ํน์ ํ๋ซํผ์์๋ง ์ฌ์ฉํ ์์๋ ๋ฉ์๋๋ฅผ ๊ฐ๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ธฐ๋ณธ ํ๋ซํผ API์ ์ค์ ๋ก ์ก์ธ์คํ์ง ์๋ ํ ์ ํ์ ์ง์ ํ ํ์๊ฐ ์์ต๋๋ค.
Running the application
์ค์น ํ๋ก์ธ์ค๊ฐ ์๋ฃ๋๋ฉด OS ๋ช ๋ น ํ๋กฌํํธ์์ ๋ค์ ๋ช ๋ น์ ์คํํ์ฌ ์ธ๋ฐ์ด๋ HTTP ์์ฒญ์ ์์ ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ํ ์ ์์ต๋๋ค.
์ด ๋ช
๋ น์ HTTP ์๋ฒ๊ฐ src/main.ts
ํ์ผ์ ์ ์๋ ํฌํธ์์ ์์ ๋๊ธฐํ๋ฉด์ ์ฑ์ ์์ํฉ๋๋ค. ์์ฉ ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ฉด ๋ธ๋ผ์ฐ์ ๋ฅผ ์ด๊ณ http://localhost:3000/
์ผ๋ก ์ด๋ํ์ญ์์ค. Hello world!
๋ฉ์์ง๊ฐ ๋ํ๋ฉ๋๋ค.
Last updated