NestJS Lifecycle (์๋ช ์ฃผ๊ธฐ) ๊ฐ๋
๐คทโ๏ธ ๋ณธ๋ก ์ ์์ Nest JS ๊ฐ๋ ?
Nest JS๋ Node JS ๊ธฐ๋ฐ์ผ๋ก ํ ์๋ฒ ์ดํ๋ฆฌ์ผ์ด์ ํ๋ ์์ํฌ ์ ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ๋ ์๋นํ ์ค๋ซ๋์ Express ๊ธฐ๋ฐ์ผ๋ก ์๋ฒ ์ดํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์์ ์๋์ ์ธ ์ ์ ์จ์ ์ฐจ์งํ๋ค.
๋ง์ด ์ฌ์ฉํ๋ ์ด์ ์ค์ ๋น ๋ฅด๊ฒ ์๋ฒ ๊ตฌ์ถ๊ณผ API ๊ตฌ์ฑํ ์ ์๋ค๋ ์ฅ์ ์ด ์๋ค.
Express๊ฐ ๊ฒฝ๋ํ๋ ํ๋ ์์ํฌ์ฌ์ ํต์ฌ์ ์ธ ๊ธฐ๋ฅ๊ณผ ๋น ๋ฅด๊ฒ ์๋ฒ๋ฅผ ๊ตฌ์ฑํด์ API ๊ตฌ์ถํ๋๋ฐ ํฐ ๋ฌธ์ ๊ฐ ์์ง๋ง ์๋น์ค ๊ท๋ชจ๊ฐ ํ์ฅ๋๊ณ ๋ณผ๋ฅจ์ด ์ปค์ง๋ ํ๋ก์ ํธ์์ ๋ถํธํจ์ด ๋ง๋ค.
์ด๋ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ Nest JS ํ๋ ์์ํฌ๊ฐ ๋ฑ์ฅํ๋ฉฐ ๊ธฐ์ ์ฉ ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๊ณ ๋ด์ฅํ๊ณ ์๋ ํ๋ฌ๊ทธ์ธ์ ํตํด์ ์ฝ๊ฒ ํ์ฅ๋ ํ ์ ์๋ค.
OOP(๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ), DI(์์กด์ฑ ์ฃผ์ ), AOP(๊ณผ์ ์งํฅ ํ๋ก๊ทธ๋๋ฐ)์ ๊ฐ์ ๋ฐฑ์๋ ๊ฐ๋ฐ ํธ๋ ๋๋ฅผ ์ถฉ์คํ ๋ฐ์ํ์ฌ ๊ณ ํ์ง์ ์ฝ๋๋ฅผ ๊ด๋ฆฌํ๊ณ ํ์ฅ๋ ์๋น์ค๋ฅผ ๊ฐ๋ฐํ ์ ์๋ค.
Nest.js - ๊ฐ๋ & ์ด๊ธฐ ์ ํ ๋ณด๊ณ ์ค์๋ฉด ๋ ๋ง์ ๋์์ด ๋ฉ๋๋ค~^^
https://cometruedream.tistory.com/132
๐คทโ๏ธ Nest JS ๋ผ์ดํ์ฌ์ดํด
์ฝ๊ฒ ์ดํดํ ์ ์๋ Nest Request Lifecycle ์ํคํ ์ฒ
Nest.js Middleware logger ๋ณด๊ณ ์ค์๋ฉด ๋ ๋ง์ ๋์์ด ๋ฉ๋๋ค~^^
https://cometruedream.tistory.com/133
Nest JS ๋ผ์ดํ ์ฌ์ดํด ์์
Nest JS ๋ผ์ดํ์ฌ์ดํด ์ ๋ฆฌ.....
- Client Request ๋ค์ด์จ๋ค.
- Middleware๋ฅผ ํ๋ค. ๋ฏธ๋ค์จ์ด๋ request์ response ์ค๊ฐ์ ๋ก์ง์ ์ถ๊ฐํฉ๋๋ค.
- ๋ฏธ๋ค์จ์ด๋?
- request ์ response ๊ทธ๋ฆฌ๊ณ next() ํจ์์ ์ ๊ทผํ ์ ์๋ ํจ์๋ฅผ ๊ตฌ์ฑํ ๋ ์ฌ์ฉ๋๋ค.
- ๋ฏธ๋ค์จ์ด๋?
- Middleware ํ๊ณ Guard๋ฅผ ํ๋ค. Guard์์ ์ธ์ฆ๊ณผ ์ธ๊ฐ๋ฅผ ๊ฒ์ฆ ํฉ์๋ค. Guard๋ ํ์ฉ๋ ์ ์ ๊ฐ ์๋๊ฑฐ๋ ๊ด๋ฆฌ์ ๊ถํ์ด ์์ผ๋ฉด ์์ฒญ ์์ฒด๋ฅผ ๋ง์์ฃผ๊ณ ๋ณด์์ ์ธ ์ธก๋ฉด์ ๊ฐํ์์ผ์ค๋๋ค. ์๋ฅผ๋ค์ด HTTP Header์ User์ ์ ๋ณด๊ฐ ๋ด๊ธด Token์ ๋ณด๋ด๋ฉด, ์๋ฒ์์ ์ ํจํ์ง ๊ถํ์ด ์๋ ์ ์ ์ธ์ง ์ฒดํฌํ๋ ๊ตฌ๊ฐ์
๋๋ค.
- Guard
- ์ธ์ฆ & ๊ถํ ๋ถ์ฌ์ ์ฌ์ฉ๋๋ค.
- CanActivate ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ค.
- Guard
- Guard๋ฅผ ์ง๋ Pre Interceptor๋ฅผ ๊ฑฐ์น๊ฒ ๋ฉ๋๋ค. interceptor๋ request์ response ์ค๊ฐ์ ๋ก์ง์ ์ถ๊ฐํ๋ค.
-
- interceptor์ logger ํ์ฉ์ด ์ข์ ์
- Controller๋จ์ ๋๋ฌํ๊ธฐ ์ ์ ๋ฐ๋์ Guard ๊ฑฐ์ณ๊ฐ๋ค. ์ฝ๊ฒ ์ค๋ช ํ๋ฉด ๋ฏธ๋ค์จ์ด๋ ์ ์ฌํ ์ญํ ์ ์ํํ๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค.
- ๋ณด์์ ์ํด์ ํ์์ ์ธ ์ฌ์ฉ์ & ๊ด๋ฆฌ์ ์ธ์ฆ, ์ ๊ทผ ์ ์ด๋ก ๋ณด์์ ๋์ผ์ ์๋ค.
-
- Interceptor๋ฅผ ์ง๋ Pipe๋ฅผ ๊ฑฐ์น๋ค. Client์์ request๊ฐ ์์ ๋ body, params, query์ ๋ํด validation, transformation ๊ฒ์ฆ์ ํด์ค๋๋ค. ์ฌ๊ธฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ์๋ฌ๋ฅผ ๋ฐ์์ํจ๋ค.
- ๊ทธ ๋ค์ Controller ๊ฑฐ์นฉ๋๋ค. Controller๋ ์์ฒญ์ ๋ฐ๋ ๋ผ์ฐํ
์ญํ์ ํด์ค๋๋ค.
- ์ปจํธ๋กค๋ฌ
- ์ธ๋ฐ์ด๋ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ์๋ต์ ์์ฑํ๋ค.
- ๋ผ์ฐํฐ ์ญํ์ ํ๋ค.
- Http, Https ๋ฉ์๋์ ๊ฒฝ๋ก๋ฅผ ์ฒ๋ฆฌํ๋ค.
- ์ปจํธ๋กค๋ฌ
- Controller ๊ฒ์ฆ์ ๋ง์น๊ณ Service๋จ์ ์คํํฉ๋๋ค.
- Post Interceptor๋ฅผ ๊ฑฐ์นฉ๋๋ค.
- Exception filter๋ฅผ ๊ฑฐ์น๊ณ ์ฌ๊ธฐ์ 400, 500 ์ค๋ฅ๋ฅผ ์ฒ๋ฆฌํ๋ค. custom filter๋ global exception filter๋ฅผ ์ ์ธํด ์๋ฌ๋ฅผ ํธ๋ค๋งํ๊ณ ์ฌ๊ธฐ ๊น์ง ๋ง์น๋ฉด server response ๋๊ฐ๊ฒ ๋๋ฉฐ nest.js ๋ผ์ดํ์ฌ์ดํด์ด ์ข ๋ฃ๋ฉ๋๋ค.
์ฌ๋ฐ๋ ์ค๋์ ๋ ๋ณ ์ด์ธ ๋ณด๊ณ ๊ฐ์ธ์!
https://cometruedream.tistory.com/242
https://cometruedream.tistory.com/241