-
์ฒซ๋ฒ์งธ ๋ฌธ์ ์ํฉ: 500 ์๋ต (SupabaseConnection ์ ์ญ ๋ชจ๋ํ)
-
์ธ์ ๋ถํฐ ์ด๋ฐ ์ด์๊ฐ ๋ฐ์ํ๋๊ฐ? - ๋กค๋ฐฑ์ ํด๋ณด์ !
-
๋ก๊น ์ฝ๋ ์ถ๊ฐ - NestJS์ DI ๋ฌธ์
-
๋๋ฒ์งธ ๋ฌธ์ ์ํฉ. 401 ์๋ต (MockingUser ์ปดํฌ๋ํธ ๋ ๋๋ง ์ถ๊ฐ)
-
์ธ๋ฒ์งธ ๋ฌธ์ ์ํฉ. 404 ์๋ต (API_PATH ๋ณ๊ฒฝ)
-
๋ค๋ฒ์งธ ๋ฌธ์ ์ํฉ. 404 (๋ฐ์ดํฐ ํ ์ด๋ธ ์ด๊ธฐํ)
-
๋๋ ์
mission: main ๋ธ๋์น๋ฅผ ๊ณ ์ณ๋ผ!
ํ์์ด main ๋ธ๋์น์ ์ด์๊ฐ ๋ฐ์ํ์ฌ ๊ฐ๋ฐ ์งํ์ ์์ ๋ชป ํ๊ณ ์๋ค๊ณ ํ์๋ค.
์ด ๋ฌธ์ ๋ฅผ ์ง๋จํ๊ณ ํด๊ฒฐํ ๊ณผ์ ์ ์์ธํ ๊ธฐ๋กํด๋ณธ๋ค!

์ฒซ๋ฒ์งธ ๋ฌธ์ ์ํฉ: 500 ์๋ต (SupabaseConnection ์ ์ญ ๋ชจ๋ํ)

๋จผ์ , ๋์ํ์ง ์๋ ํ์ด์ง์ ์ ์ํ์ฌ ๋คํธ์ํฌ ํญ์ ํ์ธํ์๋ค.
๋ธ๋ผ์ฐ์ ์ ๋คํธ์ํฌ ์์ฒญ์ด ์๋ฒ๋ก ์ ๋ฌ๋์ง ์๊ณ Network Error๊ฐ ๋ฐ์ํ๊ณ ์์๋ค.
์ฃผ๋ชฉํด์ผ ํ ๊ฒ์, ๋คํธ์ํฌ ํญ์์ ๋ง์ API ์์ฒญ์ด Preflight์์ ์คํจํ๊ณ ์์๋ค.
์ด์ ๋ฐ๋ผ ์๋ฒ ์๋ต์ ๋ฌธ์ ๊ฐ ์์ ๊ฐ๋ฅ์ฑ์ด ์๋ค๊ณ ์๊ฐํ๋ค.
์ธ์ ๋ถํฐ ์ด๋ฐ ์ด์๊ฐ ๋ฐ์ํ๋๊ฐ? - ๋กค๋ฐฑ์ ํด๋ณด์ !
์ ์์ ์ผ๋ก ์๋ํ๋ main ๋ธ๋์น์ ๊ฐ์๊ธฐ ์ด์๊ฐ ๋ฐ์ํ์ผ๋,
๋ณํฉ๋ ํน์ PR์ ๋ฌธ์ ๊ฐ ์์ ๊ฒ์ด๋ผ ์๊ฐํ๋ค.
PR๊ณผ ์ปค๋ฐ ๊ธฐ์ค์ผ๋ก ๋กค๋ฐฑ์ ์งํํ๋ฉฐ ํ ์คํธํด๋ณธ ๊ฒฐ๊ณผ,
๋ฐฑ์๋ ํ์๋ถ์ ๋๊ท๋ชจ ์ ์ ๋ถ๋ถ ๋ฆฌํฉํ ๋ง PR ์ดํ๋ถํฐ ๋์ผํ ์ด์๊ฐ ๋ฐ์ํ๋ ๊ฒ์ ํ์ธํ ์ ์์๋ค.
๋ก๊น ์ฝ๋ ์ถ๊ฐ - NestJS์ DI ๋ฌธ์
๋ก์ปฌ๋ก ํ๋ก ํธ์ ๋ฐฑ์ ์คํํ ํ ๋ฐฑ์๋์ชฝ์ ์ฐํ๋ ๋ก๊ทธ๋ฅผ ํ์ธํด๋ณด์๋ค.

Cannot read properties of undefined (reading 'connection') ์๋ฌ๊ฐ ์ฐํ๊ณ ์์๋ค.
์ข ๋ ์ธ๋ถ์ ์ธ ์ค๋ฅ์ ์์ธ์ผ๋ก๋
1. JwtAuthGuard์์ undefined๋ฅผ ์ฐธ์กฐํ ๊ฒฝ์ฐ
2. ์ฃผ์ ๋ ์์กด์ฑ ๋๋ฝ
3. ํ๊ฒฝ๋ณ์ ๋๋ ์ค์ ๋ฌธ์
์ด๋ ๊ฒ ์ถ๋ฆด ์ ์์๋ค.
๋๋ฒ๊น ์ ์ํด ๋ก๊น ์ฝ๋๋ฅผ ์ถ๊ฐํ์๋ค.

์ฑ๊ณต์ ์ผ๋ก ์ฃผ์ ๋์๋ค๊ฐ, ๋ค์ ์ฃผ์ ๋์ง ์๋๋ค๋ ๋ก๊ทธ๊ฐ ๋ด๋ค.
SupabaseConnection ์ธ์คํด์ค ์์ฑ์ ํ ๋ฒ๋ง ์์ฑ๋๊ณ ์์ผ๋ฉฐ, NestJS์์ ์ ์์ ์ผ๋ก ์ด๊ธฐํ๋๊ณ ์๋ค.
๊ทผ๋ฐ JwtAuthGuard์์ ์ฃผ์ ๋์ง ์๋๋ค๋ ๊ฒ.
DI (Dependency Injection) ์ค์ ์ ์ค์ฝํ๋ ์์กด์ฑ ๊ด๋ฆฌ์ ์์ ๋ฌธ์ ์ผ ๊ฐ๋ฅ์ฑ์ด ์๋ค!
Dependency Injection (์์กด์ฑ ์ฃผ์ ): ๊ฐ์ฒด๊ฐ ํ์ํ ์์กด์ฑ์ ์ง์ ์์ฑํ๊ฑฐ๋ ๊ด๋ฆฌํ์ง ์๊ณ ์ธ๋ถ์์ ์ฃผ์ ๋ฐ๋ ๋์์ธ ํจํด. ์ด๋ฅผ ํตํด ๊ฐ์ฒด ๊ฐ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ๊ณ ํ ์คํธ ๊ฐ๋ฅ์ฑ๊ณผ ์ฝ๋ ์ฌ์ฌ์ฉ์ฑ์ ๋์ธ๋ค.

SupabaseConnection์ ์ ์ญ ๋ชจ๋๋ก ์ค์ ํ์ฌ ๋ชจ๋ ๊ณณ์์ ๋์ผํ ์ธ์คํด์ค๋ฅผ ์ฐธ์กฐํ๋๋ก ์์ ํ๋
500 ์๋ต์ด ์ค๋ ๋ฌธ์ ๋ ํด๊ฒฐ๋๊ฒ ๋์๋ค!
๋๋ฒ์งธ ๋ฌธ์ ์ํฉ. 401 ์๋ต (MockingUser ์ปดํฌ๋ํธ ๋ ๋๋ง ์ถ๊ฐ)
์ ์ญ์ผ๋ก ์ฒ๋ฆฌํด์ฃผ๋ 500์ด ์๋ 401 ์๋ต์ด ์ค๊ฒ ๋๋ค.


๋ค๋ฅธ ํ๋ก ํธ ํ์๋ถ์ ์ด์ ์์ ์์,
๋ก๊ทธ์ธ ์ ๊ฑฐ ์์ ์ ํ๋ฉฐ
์ ์ ๋ฅผ ๋ชจํนํ๋ ์ปดํฌ๋ํธ๊ฐ ์์๋๋ฐ
ํด๋น ์ปดํฌ๋ํธ๊ฐ ๋ฃจํธ ํ์ด์ง์์ ๋ ๋๋ง๋์ง ์์ ํ ํฐ ์์ฑ์ ํ์ง ์๋ ๊ฒ์ด์๋ค.

ํด๋น ์ปดํฌ๋ํธ๋ฅผ ๋ ๋๋งํ๊ฒ ํด์ฃผ์๋ค.
์ธ๋ฒ์งธ ๋ฌธ์ ์ํฉ. 404 ์๋ต (API_PATH ๋ณ๊ฒฝ)
์ด์ํ ์ ์, MockingUser ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง๋๋๋ฐ๋ token์ ์ ๋๋ก ๋ฐ์์ค์ง ๋ชปํ๋ค๋ ๊ฒ์ด์๋ค.
curl ๋ช ๋ น์ด๋ก ํ์ธํด๋ณด๋ 404 ์๋ต์ด ๋ฐํ๋๋ ๊ฒ์ ๋ณผ ์ ์์๋ค.

์ด์ ๋ฐ๋ผ ๋ฐฑ์๋์ชฝ ์ฝ๋๋ฅผ ํ์ธํด๋ณด๋, API path๊ฐ /auth๊ฐ ์๋ /user๋ก ๋ณ๊ฒฝ๋์ด ์์๋ค.
๋ฐฑ์๋ ํ์๋ถ์ด path๋ฅผ ๋ณ๊ฒฝํ๊ณ ํ๋ก ํธ์ชฝ์ ๊ณต์ ํ์ง ์์๋ ๊ฒ์ด๋ค.
์ด์ ๋ฐ๋ผ ํ๋ก ํธ์ API_PATH๋ฅผ ๋ณ๊ฒฝํ์๊ณ ,
์๋ต ํ์๋ session์ ๋ด์ ๋ณด๋ด๋ ๊ฒ์ผ๋ก ์ฝ๊ฐ ๋ณ๊ฒฝ๋์ด ์์ด
์๋ต ๊ฐ์ ๋ง๊ฒ ํ ํฐ์ ์ฟ ํค์ ์ ์ฅํ๋๋ก ์์ ํ์๋ค.

๋ค๋ฒ์งธ ๋ฌธ์ ์ํฉ. 404 (๋ฐ์ดํฐ ํ ์ด๋ธ ์ด๊ธฐํ)
์ด์ token์ ์ ๋๋ก ๋ฐ์์ค๋๋ฐ, ํ์์ ์ฐพ์ ์ ์๋ค๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
/workspace ํ์ด์ง์์ API ์์ฒญ ์ user_metadatas ํ ์ด๋ธ์์ ์ ์ ๋ฅผ ์กฐํํ๋๋ฐ,
supabase user_metadatas ํ ์ด๋ธ์ด ๋น์ด ์์ด ๋จ๋ ๋ฌธ์ ์๋ค.
์ด์ ๋ฐ๋ผ ๋ชจํน์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๋ง user_metadatas ํ ์ด๋ธ์ ์์๋ก ์ง์ ์ถ๊ฐํด์ฃผ์๋ค.

๋๋ ์
์ด๋ฒ ๋ฌธ์ ๋ ๊ฝค ๊ธด ํ๋ฆ์ ๋ฐ๋ผ ์ฌ๋ฌ ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ์ผ ํด๊ฒฐํ ์ ์๋ ๋ณต์กํ ๋ฌธ์ ์๋ค.
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์ค๊ฐ์ ํ๋ฆ์ ๋์ ์ ์์ด์ ใ ใ 5์๊ฐ ๋์ ์ฐ์์ผ๋ก ๋ชฐ์ ํ๋ฉฐ ๋ถ์ํ๊ณ ๋๋ฒ๊น ํ๋ค.
ํนํ, DI ๋ฌธ์ ๋ NestJS ์ค๊ณ ์ด๊ธฐ ๋จ๊ณ์์ ์๋น์ค์ ์ค์ฝํ์ ์ ์ญ ๋ชจ๋ ๊ด๋ฆฌ๋ฅผ ๋ช ํํ ์ค๊ณํด์ผ ํ๋ค๊ณ ๋๊ผ๋ค.
์์กด์ฑ ์ฃผ์ ์ด ๋ณต์กํ ํ๊ฒฝ์์๋ ์๋น์ค ๊ฐ ์ฐธ์กฐ ์์๋ฅผ ์ฒ ์ ํ ์ ๊ฒํด์ผ ํ๋ค!
NestJS์ Dependency Injection์ด ๊ฐ์ฅ ํฐ ๋ฌธ์ ์ ์์ธ์ด์์ง๋ง,
์ปดํฌ๋ํธ ๋ ๋๋ง, API path, ์ ์ ๋ฐ์ดํฐ ํ ์ด๋ธ ๋ฑ
๋ค๋ฅธ ๋ฌธ์ ์ ์์ธ๋ค๋ ๊ฝค ์ค์ํ ๋ฌธ์ ์ ์์ธ๋ค ์ค ํ๋์๋ค!
๋ฐฑ์๋ ๊ฐ๋ฐ์๋ ๋ณ๊ฒฝ ์ฌํญ์ ํ๋ก ํธ ๊ฐ๋ฐ์์๊ฒ ์ ๊ณต์ ํ๊ณ ,
ํ๋ก ํธ๋ ๋ฐฑ์๋์ ๋ณ๊ฒฝ์ฌํญ์ด ํ๋ก ํธ์ ์ํฅ์ ๋ฏธ์น ๊ฐ๋ฅ์ฑ์ ๊ผผ๊ผผํ ํ์ธํ๋ ํ์ ๊ณผ์ ์ด ํ์์ ์ด๋ผ๊ณ ์๊ฐํ๋ค.
ํธ๋ฌ๋ธ ์ํ ์ ๋๋ฌด ์ฌ๋ฐ์ด
ํนํ ์ด๋ฒ ๋ฌธ์ ๋ ๋จ๊ณ์ ์ผ๋ก ํด๊ฒฐํ๋ ๋ฌธ์ ๋ผ์ ๋ ์ฌ๋ฐ์๋ค!
์ค๊ฐ์ ๋ฌธ์ ์ข ๋ฅ๊ฐ ๋ฐ๋์์ ๋๊ฐ ์ ์ผ ์ง๋ฆฟํด ๐
mission: main ๋ธ๋์น๋ฅผ ๊ณ ์ณ๋ผ!
ํ์์ด main ๋ธ๋์น์ ์ด์๊ฐ ๋ฐ์ํ์ฌ ๊ฐ๋ฐ ์งํ์ ์์ ๋ชป ํ๊ณ ์๋ค๊ณ ํ์๋ค.
์ด ๋ฌธ์ ๋ฅผ ์ง๋จํ๊ณ ํด๊ฒฐํ ๊ณผ์ ์ ์์ธํ ๊ธฐ๋กํด๋ณธ๋ค!

์ฒซ๋ฒ์งธ ๋ฌธ์ ์ํฉ: 500 ์๋ต (SupabaseConnection ์ ์ญ ๋ชจ๋ํ)

๋จผ์ , ๋์ํ์ง ์๋ ํ์ด์ง์ ์ ์ํ์ฌ ๋คํธ์ํฌ ํญ์ ํ์ธํ์๋ค.
๋ธ๋ผ์ฐ์ ์ ๋คํธ์ํฌ ์์ฒญ์ด ์๋ฒ๋ก ์ ๋ฌ๋์ง ์๊ณ Network Error๊ฐ ๋ฐ์ํ๊ณ ์์๋ค.
์ฃผ๋ชฉํด์ผ ํ ๊ฒ์, ๋คํธ์ํฌ ํญ์์ ๋ง์ API ์์ฒญ์ด Preflight์์ ์คํจํ๊ณ ์์๋ค.
์ด์ ๋ฐ๋ผ ์๋ฒ ์๋ต์ ๋ฌธ์ ๊ฐ ์์ ๊ฐ๋ฅ์ฑ์ด ์๋ค๊ณ ์๊ฐํ๋ค.
์ธ์ ๋ถํฐ ์ด๋ฐ ์ด์๊ฐ ๋ฐ์ํ๋๊ฐ? - ๋กค๋ฐฑ์ ํด๋ณด์ !
์ ์์ ์ผ๋ก ์๋ํ๋ main ๋ธ๋์น์ ๊ฐ์๊ธฐ ์ด์๊ฐ ๋ฐ์ํ์ผ๋,
๋ณํฉ๋ ํน์ PR์ ๋ฌธ์ ๊ฐ ์์ ๊ฒ์ด๋ผ ์๊ฐํ๋ค.
PR๊ณผ ์ปค๋ฐ ๊ธฐ์ค์ผ๋ก ๋กค๋ฐฑ์ ์งํํ๋ฉฐ ํ ์คํธํด๋ณธ ๊ฒฐ๊ณผ,
๋ฐฑ์๋ ํ์๋ถ์ ๋๊ท๋ชจ ์ ์ ๋ถ๋ถ ๋ฆฌํฉํ ๋ง PR ์ดํ๋ถํฐ ๋์ผํ ์ด์๊ฐ ๋ฐ์ํ๋ ๊ฒ์ ํ์ธํ ์ ์์๋ค.
๋ก๊น ์ฝ๋ ์ถ๊ฐ - NestJS์ DI ๋ฌธ์
๋ก์ปฌ๋ก ํ๋ก ํธ์ ๋ฐฑ์ ์คํํ ํ ๋ฐฑ์๋์ชฝ์ ์ฐํ๋ ๋ก๊ทธ๋ฅผ ํ์ธํด๋ณด์๋ค.

Cannot read properties of undefined (reading 'connection') ์๋ฌ๊ฐ ์ฐํ๊ณ ์์๋ค.
์ข ๋ ์ธ๋ถ์ ์ธ ์ค๋ฅ์ ์์ธ์ผ๋ก๋
1. JwtAuthGuard์์ undefined๋ฅผ ์ฐธ์กฐํ ๊ฒฝ์ฐ
2. ์ฃผ์ ๋ ์์กด์ฑ ๋๋ฝ
3. ํ๊ฒฝ๋ณ์ ๋๋ ์ค์ ๋ฌธ์
์ด๋ ๊ฒ ์ถ๋ฆด ์ ์์๋ค.
๋๋ฒ๊น ์ ์ํด ๋ก๊น ์ฝ๋๋ฅผ ์ถ๊ฐํ์๋ค.

์ฑ๊ณต์ ์ผ๋ก ์ฃผ์ ๋์๋ค๊ฐ, ๋ค์ ์ฃผ์ ๋์ง ์๋๋ค๋ ๋ก๊ทธ๊ฐ ๋ด๋ค.
SupabaseConnection ์ธ์คํด์ค ์์ฑ์ ํ ๋ฒ๋ง ์์ฑ๋๊ณ ์์ผ๋ฉฐ, NestJS์์ ์ ์์ ์ผ๋ก ์ด๊ธฐํ๋๊ณ ์๋ค.
๊ทผ๋ฐ JwtAuthGuard์์ ์ฃผ์ ๋์ง ์๋๋ค๋ ๊ฒ.
DI (Dependency Injection) ์ค์ ์ ์ค์ฝํ๋ ์์กด์ฑ ๊ด๋ฆฌ์ ์์ ๋ฌธ์ ์ผ ๊ฐ๋ฅ์ฑ์ด ์๋ค!
Dependency Injection (์์กด์ฑ ์ฃผ์ ): ๊ฐ์ฒด๊ฐ ํ์ํ ์์กด์ฑ์ ์ง์ ์์ฑํ๊ฑฐ๋ ๊ด๋ฆฌํ์ง ์๊ณ ์ธ๋ถ์์ ์ฃผ์ ๋ฐ๋ ๋์์ธ ํจํด. ์ด๋ฅผ ํตํด ๊ฐ์ฒด ๊ฐ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ๊ณ ํ ์คํธ ๊ฐ๋ฅ์ฑ๊ณผ ์ฝ๋ ์ฌ์ฌ์ฉ์ฑ์ ๋์ธ๋ค.

SupabaseConnection์ ์ ์ญ ๋ชจ๋๋ก ์ค์ ํ์ฌ ๋ชจ๋ ๊ณณ์์ ๋์ผํ ์ธ์คํด์ค๋ฅผ ์ฐธ์กฐํ๋๋ก ์์ ํ๋
500 ์๋ต์ด ์ค๋ ๋ฌธ์ ๋ ํด๊ฒฐ๋๊ฒ ๋์๋ค!
๋๋ฒ์งธ ๋ฌธ์ ์ํฉ. 401 ์๋ต (MockingUser ์ปดํฌ๋ํธ ๋ ๋๋ง ์ถ๊ฐ)
์ ์ญ์ผ๋ก ์ฒ๋ฆฌํด์ฃผ๋ 500์ด ์๋ 401 ์๋ต์ด ์ค๊ฒ ๋๋ค.


๋ค๋ฅธ ํ๋ก ํธ ํ์๋ถ์ ์ด์ ์์ ์์,
๋ก๊ทธ์ธ ์ ๊ฑฐ ์์ ์ ํ๋ฉฐ
์ ์ ๋ฅผ ๋ชจํนํ๋ ์ปดํฌ๋ํธ๊ฐ ์์๋๋ฐ
ํด๋น ์ปดํฌ๋ํธ๊ฐ ๋ฃจํธ ํ์ด์ง์์ ๋ ๋๋ง๋์ง ์์ ํ ํฐ ์์ฑ์ ํ์ง ์๋ ๊ฒ์ด์๋ค.

ํด๋น ์ปดํฌ๋ํธ๋ฅผ ๋ ๋๋งํ๊ฒ ํด์ฃผ์๋ค.
์ธ๋ฒ์งธ ๋ฌธ์ ์ํฉ. 404 ์๋ต (API_PATH ๋ณ๊ฒฝ)
์ด์ํ ์ ์, MockingUser ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง๋๋๋ฐ๋ token์ ์ ๋๋ก ๋ฐ์์ค์ง ๋ชปํ๋ค๋ ๊ฒ์ด์๋ค.
curl ๋ช ๋ น์ด๋ก ํ์ธํด๋ณด๋ 404 ์๋ต์ด ๋ฐํ๋๋ ๊ฒ์ ๋ณผ ์ ์์๋ค.

์ด์ ๋ฐ๋ผ ๋ฐฑ์๋์ชฝ ์ฝ๋๋ฅผ ํ์ธํด๋ณด๋, API path๊ฐ /auth๊ฐ ์๋ /user๋ก ๋ณ๊ฒฝ๋์ด ์์๋ค.
๋ฐฑ์๋ ํ์๋ถ์ด path๋ฅผ ๋ณ๊ฒฝํ๊ณ ํ๋ก ํธ์ชฝ์ ๊ณต์ ํ์ง ์์๋ ๊ฒ์ด๋ค.
์ด์ ๋ฐ๋ผ ํ๋ก ํธ์ API_PATH๋ฅผ ๋ณ๊ฒฝํ์๊ณ ,
์๋ต ํ์๋ session์ ๋ด์ ๋ณด๋ด๋ ๊ฒ์ผ๋ก ์ฝ๊ฐ ๋ณ๊ฒฝ๋์ด ์์ด
์๋ต ๊ฐ์ ๋ง๊ฒ ํ ํฐ์ ์ฟ ํค์ ์ ์ฅํ๋๋ก ์์ ํ์๋ค.

๋ค๋ฒ์งธ ๋ฌธ์ ์ํฉ. 404 (๋ฐ์ดํฐ ํ ์ด๋ธ ์ด๊ธฐํ)
์ด์ token์ ์ ๋๋ก ๋ฐ์์ค๋๋ฐ, ํ์์ ์ฐพ์ ์ ์๋ค๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
/workspace ํ์ด์ง์์ API ์์ฒญ ์ user_metadatas ํ ์ด๋ธ์์ ์ ์ ๋ฅผ ์กฐํํ๋๋ฐ,
supabase user_metadatas ํ ์ด๋ธ์ด ๋น์ด ์์ด ๋จ๋ ๋ฌธ์ ์๋ค.
์ด์ ๋ฐ๋ผ ๋ชจํน์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๋ง user_metadatas ํ ์ด๋ธ์ ์์๋ก ์ง์ ์ถ๊ฐํด์ฃผ์๋ค.

๋๋ ์
์ด๋ฒ ๋ฌธ์ ๋ ๊ฝค ๊ธด ํ๋ฆ์ ๋ฐ๋ผ ์ฌ๋ฌ ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ์ผ ํด๊ฒฐํ ์ ์๋ ๋ณต์กํ ๋ฌธ์ ์๋ค.
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์ค๊ฐ์ ํ๋ฆ์ ๋์ ์ ์์ด์ ใ ใ 5์๊ฐ ๋์ ์ฐ์์ผ๋ก ๋ชฐ์ ํ๋ฉฐ ๋ถ์ํ๊ณ ๋๋ฒ๊น ํ๋ค.
ํนํ, DI ๋ฌธ์ ๋ NestJS ์ค๊ณ ์ด๊ธฐ ๋จ๊ณ์์ ์๋น์ค์ ์ค์ฝํ์ ์ ์ญ ๋ชจ๋ ๊ด๋ฆฌ๋ฅผ ๋ช ํํ ์ค๊ณํด์ผ ํ๋ค๊ณ ๋๊ผ๋ค.
์์กด์ฑ ์ฃผ์ ์ด ๋ณต์กํ ํ๊ฒฝ์์๋ ์๋น์ค ๊ฐ ์ฐธ์กฐ ์์๋ฅผ ์ฒ ์ ํ ์ ๊ฒํด์ผ ํ๋ค!
NestJS์ Dependency Injection์ด ๊ฐ์ฅ ํฐ ๋ฌธ์ ์ ์์ธ์ด์์ง๋ง,
์ปดํฌ๋ํธ ๋ ๋๋ง, API path, ์ ์ ๋ฐ์ดํฐ ํ ์ด๋ธ ๋ฑ
๋ค๋ฅธ ๋ฌธ์ ์ ์์ธ๋ค๋ ๊ฝค ์ค์ํ ๋ฌธ์ ์ ์์ธ๋ค ์ค ํ๋์๋ค!
๋ฐฑ์๋ ๊ฐ๋ฐ์๋ ๋ณ๊ฒฝ ์ฌํญ์ ํ๋ก ํธ ๊ฐ๋ฐ์์๊ฒ ์ ๊ณต์ ํ๊ณ ,
ํ๋ก ํธ๋ ๋ฐฑ์๋์ ๋ณ๊ฒฝ์ฌํญ์ด ํ๋ก ํธ์ ์ํฅ์ ๋ฏธ์น ๊ฐ๋ฅ์ฑ์ ๊ผผ๊ผผํ ํ์ธํ๋ ํ์ ๊ณผ์ ์ด ํ์์ ์ด๋ผ๊ณ ์๊ฐํ๋ค.
ํธ๋ฌ๋ธ ์ํ ์ ๋๋ฌด ์ฌ๋ฐ์ด
ํนํ ์ด๋ฒ ๋ฌธ์ ๋ ๋จ๊ณ์ ์ผ๋ก ํด๊ฒฐํ๋ ๋ฌธ์ ๋ผ์ ๋ ์ฌ๋ฐ์๋ค!
์ค๊ฐ์ ๋ฌธ์ ์ข ๋ฅ๊ฐ ๋ฐ๋์์ ๋๊ฐ ์ ์ผ ์ง๋ฆฟํด ๐