Nest.js

NestJS Lifecycle (์ƒ๋ช…์ฃผ๊ธฐ) ๊ฐœ๋…

martinooo 2024. 5. 7. 18:31
728x170

 

๐Ÿคท‍โ™‚๏ธ ๋ณธ๋ก ์— ์•ž์„œ Nest JS ๊ฐœ๋…?


Nest JS๋Š” Node JS ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์„œ๋ฒ„ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ ์ž…๋‹ˆ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์ƒ๋‹นํžˆ ์˜ค๋žซ๋™์•ˆ Express ๊ธฐ๋ฐ˜์œผ๋กœ ์„œ๋ฒ„ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์—์„œ ์••๋„์ ์ธ ์ ์œ ์œจ์„ ์ฐจ์ง€ํ•œ๋‹ค.

๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ์ค‘์— ๋น ๋ฅด๊ฒŒ ์„œ๋ฒ„ ๊ตฌ์ถ•๊ณผ API ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

Express๊ฐ€ ๊ฒฝ๋Ÿ‰ํ™”๋œ ํ”„๋ ˆ์ž„์›Œํฌ์—ฌ์„œ ํ•ต์‹ฌ์ ์ธ ๊ธฐ๋Šฅ๊ณผ ๋น ๋ฅด๊ฒŒ ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•ด์„œ API ๊ตฌ์ถ•ํ•˜๋Š”๋ฐ ํฐ ๋ฌธ์ œ๊ฐ€ ์—†์ง€๋งŒ ์„œ๋น„์Šค ๊ทœ๋ชจ๊ฐ€ ํ™•์žฅ๋˜๊ณ  ๋ณผ๋ฅจ์ด ์ปค์ง€๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ๋ถˆํŽธํ•จ์ด ๋งŽ๋‹ค. 

์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ Nest JS ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋“ฑ์žฅํ•˜๋ฉฐ ๊ธฐ์—…์šฉ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๊ณ  ๋‚ด์žฅํ•˜๊ณ  ์žˆ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ†ตํ•ด์„œ ์‰ฝ๊ฒŒ ํ™•์žฅ๋„ ํ•  ์ˆ˜ ์žˆ๋‹ค. 

OOP(๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ), DI(์˜์กด์„ฑ ์ฃผ์ž…), AOP(๊ณผ์  ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ)์™€ ๊ฐ™์€ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ ํŠธ๋ Œ๋“œ๋ฅผ ์ถฉ์‹คํžˆ ๋ฐ˜์˜ํ•˜์—ฌ ๊ณ ํ’ˆ์งˆ์˜ ์ฝ”๋“œ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ํ™•์žฅ๋œ ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค.

 

300x250

 

Nest.js - ๊ฐœ๋… & ์ดˆ๊ธฐ ์…‹ํŒ… ๋ณด๊ณ  ์˜ค์‹œ๋ฉด ๋” ๋งŽ์€ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค~^^

https://cometruedream.tistory.com/132

 

Nest.js - ๊ฐœ๋… & ์ดˆ๊ธฐ์…‹ํŒ…

๐Ÿคณ Nest.js ๋ž€? Nest.js๋Š” ํšจ์œจ์ ์ด๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ Node.js ์„œ๋ฒ„ ์ธก ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค. JavaScript๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  TypeScript๋กœ ๊ตฌ์ถ•๋˜์–ด ์™„๋ฒฝํ•˜๊ฒŒ ์ง€์›ํ•˜๋ฉฐ OOP, FP, FRP ์š”์†Œ๋ฅผ ๊ฒฐํ•ฉ

cometruedream.tistory.com

 

๐Ÿคท‍โ™‚๏ธ Nest JS ๋ผ์ดํ”„์‚ฌ์ดํด


์‰ฝ๊ฒŒ ์ดํ•ดํ• ์ˆ˜ ์žˆ๋Š” Nest Request Lifecycle ์•„ํ‚คํ…์ฒ˜

 

 

Nest.js Middleware logger  ๋ณด๊ณ  ์˜ค์‹œ๋ฉด ๋” ๋งŽ์€ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค~^^

https://cometruedream.tistory.com/133

 

Nest.js Middleware logger

๐Ÿคณ Nest.js ๋ฏธ๋“ค์›จ์–ด๋ž€?๋ฏธ๋“ค์›จ์–ด๋Š” Route ํ•ธ๋“ค๋Ÿฌ ๋ณด๋‹ค ๋จผ์ € ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ๋ฏธ๋“ค ์›จ์–ด ๊ธฐ๋Šฅ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์š”์ฒญ-์‘๋‹ต ์ฃผ๊ธฐ์—์„œ ์š”์ฒญ ๋ฐ ์‘๋‹ต ๊ฐ์ฒด ์™€ ๋ฏธ๋“ค์›จ์–ด ๊ธฐ๋Šฅ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต

cometruedream.tistory.com

 

Nest JS ๋ผ์ดํ”„ ์‚ฌ์ดํด ์ˆœ์„œ 

 

Nest JS ๋ผ์ดํ”„์‚ฌ์ดํด ์ •๋ฆฌ.....

  1. Client Request ๋“ค์–ด์˜จ๋‹ค.
  2. Middleware๋ฅผ ํƒ„๋‹ค. ๋ฏธ๋“ค์›จ์–ด๋ž€ request์™€ response ์ค‘๊ฐ„์— ๋กœ์ง์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
    1. ๋ฏธ๋“ค์›จ์–ด๋ž€?
      1. request ์™€ response ๊ทธ๋ฆฌ๊ณ  next() ํ•จ์ˆ˜์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜๋ฅผ ๊ตฌ์„ฑํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.
  3. Middleware ํƒ€๊ณ  Guard๋ฅผ ํƒ„๋‹ค. Guard์—์„  ์ธ์ฆ๊ณผ ์ธ๊ฐ€๋ฅผ ๊ฒ€์ฆ ํ•ฉ์‹œ๋‹ค. Guard๋Š” ํ—ˆ์šฉ๋œ ์œ ์ €๊ฐ€ ์•„๋‹ˆ๊ฑฐ๋‚˜ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์ด ์—†์œผ๋ฉด ์š”์ฒญ ์ž์ฒด๋ฅผ ๋ง‰์•„์ฃผ๊ณ  ๋ณด์•ˆ์ ์ธ ์ธก๋ฉด์„ ๊ฐ•ํ™”์‹œ์ผœ์ค๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด HTTP Header์— User์˜ ์ •๋ณด๊ฐ€ ๋‹ด๊ธด Token์„ ๋ณด๋‚ด๋ฉด, ์„œ๋ฒ„์—์„œ ์œ ํšจํ•œ์ง€ ๊ถŒํ•œ์ด ์žˆ๋Š” ์œ ์ €์ธ์ง€ ์ฒดํฌํ•˜๋Š” ๊ตฌ๊ฐ„์ž…๋‹ˆ๋‹ค.
    1. Guard
      1. ์ธ์ฆ & ๊ถŒํ•œ ๋ถ€์—ฌ์— ์‚ฌ์šฉ๋œ๋‹ค.
      2. CanActivate ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค.
  4. Guard๋ฅผ ์ง€๋‚˜ Pre Interceptor๋ฅผ ๊ฑฐ์น˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. interceptor๋Š” request์™€ response ์ค‘๊ฐ„์— ๋กœ์ง์„ ์ถ”๊ฐ€ํ•œ๋‹ค.
      • interceptor์— logger ํ™œ์šฉ์ด ์ข‹์€ ์˜ˆ
    1. Controller๋‹จ์— ๋„๋‹ฌํ•˜๊ธฐ ์ „์— ๋ฐ˜๋“œ์‹œ Guard ๊ฑฐ์ณ๊ฐ„๋‹ค. ์‰ฝ๊ฒŒ ์„ค๋ช…ํ•˜๋ฉด ๋ฏธ๋“ค์›จ์–ด๋ž‘ ์œ ์‚ฌํ•œ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.
    2. ๋ณด์•ˆ์„ ์œ„ํ•ด์„œ ํ•„์ˆ˜์ ์ธ ์‚ฌ์šฉ์ž & ๊ด€๋ฆฌ์ž ์ธ์ฆ, ์ ‘๊ทผ ์ œ์–ด๋กœ ๋ณด์•ˆ์„ ๋†’์ผ์ˆ˜ ์žˆ๋‹ค.
  5. Interceptor๋ฅผ ์ง€๋‚˜ Pipe๋ฅผ ๊ฑฐ์นœ๋‹ค. Client์—์„œ request๊ฐ€ ์™”์„ ๋•Œ body, params, query์— ๋Œ€ํ•ด validation, transformation ๊ฒ€์ฆ์„ ํ•ด์ค๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์—๋Ÿฌ๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค.
  6. ๊ทธ ๋‹ค์Œ Controller ๊ฑฐ์นฉ๋‹ˆ๋‹ค. Controller๋Š” ์š”์ฒญ์„ ๋ฐ›๋Š” ๋ผ์šฐํŒ… ์—ญํ™œ์„ ํ•ด์ค๋‹ˆ๋‹ค.
    1. ์ปจํŠธ๋กค๋Ÿฌ
      1. ์ธ๋ฐ”์šด๋“œ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‘๋‹ต์„ ์ƒ์„ฑํ•œ๋‹ค.
      2. ๋ผ์šฐํ„ฐ ์—ญํ™œ์„ ํ•œ๋‹ค.
      3. Http, Https ๋ฉ”์†Œ๋“œ์™€ ๊ฒฝ๋กœ๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค.
  7. Controller ๊ฒ€์ฆ์„ ๋งˆ์น˜๊ณ  Service๋‹จ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  8. Post Interceptor๋ฅผ ๊ฑฐ์นฉ๋‹ˆ๋‹ค.
  9. Exception filter๋ฅผ ๊ฑฐ์น˜๊ณ  ์—ฌ๊ธฐ์„œ 400, 500 ์˜ค๋ฅ˜๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค. custom filter๋‚˜ global exception filter๋ฅผ ์„ ์–ธํ•ด ์—๋Ÿฌ๋ฅผ ํ•ธ๋“ค๋งํ•˜๊ณ  ์—ฌ๊ธฐ ๊นŒ์ง€ ๋งˆ์น˜๋ฉด server response ๋‚˜๊ฐ€๊ฒŒ ๋˜๋ฉฐ nest.js ๋ผ์ดํ”„์‚ฌ์ดํด์ด ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

 


 

์žฌ๋ฐŒ๋Š” ์˜ค๋Š˜์˜ ๋ ๋ณ„ ์šด์„ธ ๋ณด๊ณ  ๊ฐ€์„ธ์š”! 

 

 

 

https://cometruedream.tistory.com/242

 

๋ฆฌ์•กํŠธ Vite Proxy ํ™œ์šฉํ•œ CORS ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

๐Ÿคท‍โ™‚๏ธ ๋ณธ๋ก ์— ์•ž์„œํ”„๋ก ํŠธ์—”๋“œ ๋ฒˆ๋“ค๋Ÿฌ ๊ฐœ๋…๊ณผ webpack vs vite ๋น„๊ต์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€๋ฅผ ํ•˜๊ณ  ๊ธ€์„ ๋ณด์‹œ๋ฉด ๋” ๋งŽ์€ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค^^ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๋ฒˆ๋“ค๋Ÿฌ ๊ฐœ๋…๊ณผ webpack vs vite ๋น„๊ตhttps://comet

cometruedream.tistory.com

 

 

https://cometruedream.tistory.com/241

 

React ํด๋”๊ตฌ์กฐ FSD ๊ธฐ๋Šฅ ๋ถ„ํ™œ ์„ค๊ณ„ ์•„ํ‚คํ…์ฒ˜

๐Ÿคท‍โ™‚๏ธ ๋ณธ๋ก ์— ์•ž์„œํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ์— ์•ž์„œ ํด๋” ๊ตฌ์กฐ, ์„ค๊ณ„์— ๋Œ€ํ•œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ์ƒ๋‹นํžˆ ์–ด๋ ต๋‹ค. ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์— React FSD ํด๋”๊ตฌ์กฐ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์„ค๊ณ„ํ•  ์˜ˆ์ •์ด๋ผ์„œ FSD ์•„ํ‚คํ…

cometruedream.tistory.com

 

๊ทธ๋ฆฌ๋“œํ˜•