๐Ÿ’œ๊ฐœ๋ฐœ๊ณผ ์ผ์ƒ (โ‰ง∇โ‰ฆ)๏พ‰

Nest.js ์ด๋ž€? + ์„ค์น˜ ๋ณธ๋ฌธ

web/Node.js Express

Nest.js ์ด๋ž€? + ์„ค์น˜

๊ฐ•์˜์„œ 2022. 10. 8. 15:06

์ด๋ฒˆ ์•ฑ๊ฐœ๋ฐœ์„ ํ•  ๋•Œ ์›์ฒด Spring ๊ธฐ๋ฐ˜ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๋ ค๊ณ  ํ–ˆ์œผ๋‚˜,

์–ด์ฐŒ์ €์ฐŒ React-Native๋ฅผ ์‚ฌ์šฉํ•  ๊ฑฐ๋ฉด javasript ์–ธ์–ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ๊ฐœ๋ฐœ์ด ํ›จ์”ฌ ํŽธํ•˜๊ณ  ๋” ๋ณดํŽธ์ ์ด๊ธฐ์—

ํ•ด๋‹น ํ”„๋กœ์ ํŠธ๋Š” Nest.js๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‘” ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•  ์˜ˆ์ •์ด๋‹ค.

 

Nest.js๋Š” Node.js๊ฐ€ ์ง„ํ™”ํ•œ ๋ฒ„์ „ ์ค‘ ํ•˜๋‚˜๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

Node.js์˜ ๊ธฐ๋Šฅ์„ ๋” ๊ฐ„ํŽธํ™”ํ•˜๊ฒŒ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๊ฐœ๋ฐœํ•œ ๊ฒƒ์ด express๋ผ๋ฉด, express์˜ ์žฅ์ ์„ ๋” ๊ทน๋Œ€ํ™” ํ•œ ๊ฒƒ์ด Nest๋‹ค.

์ฆ‰, Node.js๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‘” ์›น API ํ”„๋ ˆ์ž„์›Œํฌ ์ด๋ฉฐ, Express ๋˜๋Š” Fastify ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๋ž˜ํ•‘ํ•˜์—ฌ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ express๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‘ก๋‹ˆ๋‹ค.  Node.js๋Š” ์†์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์œ ์—ฐํ•จ์œผ๋กœ ์ธํ•ด SW ํ’ˆ์งˆ์ด ์ผ์ •์น˜ ์•Š๊ณ  ์ ํ•ฉํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ๋งŽ์€ ์‹œ๊ฐ„์„ ํ• ์• ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ณด์•ˆํ•œ ๊ฒƒ์ด Nest.js์ž…๋‹ˆ๋‹ค.

 

Nest.js์˜ ์žฅ์ 

- ๋ชจ๋“ˆ/์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์„ฑ -> ์žฌ์‚ฌ์šฉ์„ฑ ๋†’ํž˜

- IoC (์ œ์–ด์—ญ์ „)

- DI (์˜์กด์„ฑ ์ฃผ์ž…)

- AOP (๊ด€์  ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ) ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŠน์ง•์„ ๋„ฃ์Œ

- typescript ์‚ฌ์šฉ

 

 

Nest.js ์„ค์น˜

๋จผ์ € nest.js๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์—๋Š” node.js๊ฐ€ ๋ฏธ๋ฆฌ ์ค€๋น„๋˜์–ด ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. 

ํ•ด๋‹น ๊ธ€์€ node.js๊ฐ€ ๋ฏธ๋ฆฌ ์„ค์น˜๋˜์–ด์žˆ๋‹ค๋Š” ์ „์ œ ํ•˜์— ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค!

 

node.js ๋ฅผ ์„ค์น˜ํ•˜๋ฉด npm์ด ๊ฐ™์ด ์„ค์น˜๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ npm ์ด๋ž€ Node.js์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค. 

ํ•ด๋‹น ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด์„œ node.js์˜ ์—…๋ฐ์ดํŠธ, ์„ค์น˜, ์‚ญ์ œ ๋“ฑ์˜ ๊ด€๋ฆฌ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

nest.js๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ํ•ด๋‹น ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

npm i -g @nestjs/cli

 

i : install ๋ช…๋ น์–ด์˜ ์•ฝ์ž

-g : ์ปดํ“จํ„ฐ์˜ ๊ธ€๋กœ๋ฒŒ ํ™˜๊ฒฝ์— ์„ค์น˜ํ•จ. -> ๋ชจ๋“  ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์ฐธ์กฐ ๊ฐ€๋Šฅํ•จ.

      ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ๋Š” npm root -g ๋กœ ํ™•์ธ ๊ฐ€๋Šฅ

 

 ์„ค์น˜ ํ–ˆ์œผ๋ฉด ์–ด๋–ค ํŒจํ‚ค์ง€๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (npm ์—…๋ฐ์ดํŠธ ์ •๋ณด๋„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„ค์š”)

 

nest new [ํ”„๋กœ์ ํŠธ์ด๋ฆ„]

์ดํ›„ ํ•ด๋‹น ๋ช…๋ น์–ด๋ฅผ ํ† ๋Œ€๋กœ ์ƒˆ๋กœ์šด nest ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

ํŒŒ์ผ ์ƒ์„ฑ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•ด ๋ณผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, 

์–ด๋–ค ๋งค๋‹ˆ์ € ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•  ์˜ˆ์ •์ธ์ง€ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ํ•„์ž๋Š” npm์„ ์‚ฌ์šฉํ•  ์˜ˆ์ •์ด๋‹ค.

๋””๋ ‰ํ† ๋ฆฌ์˜ ๊ตฌ์„ฑ์€ ์™ผ์ชฝ๊ณผ ๊ฐ™์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

๋ณด์ผ๋Ÿฌ ํ”Œ๋ ˆ์ดํŠธ ์ฝ”๋“œ๋ผ๊ณ  ๋ถˆ๋ฆฌ๋ฉฐ, 

 

 

 

 

 

 

 

 

 

 

nest.js github์—์„œ ์ œ๊ณตํ•ด์ฃผ๋Š” typescript ๊ธฐ๋ฐ˜ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์„ ์ง„ํ–‰ํ•˜๋ฉด ํ˜„์žฌ ์ตœ์‹  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ง„ํ–‰ํ•œ๋‹ค. 

์ถ”๊ฐ€๋กœ, https://github.com/nestjs/typescript-starter ์˜ ๋ฐฉ์‹๋„ ์ฐธ๊ณ ํ•˜๋ฉด ์ข‹๋‹ค.