expressjs์์๋ ๊ณ์ธตํํ์๋ ๋ฌด์กฐ๊ฑด repository๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋ฐํด nestjs์์๋ ์ธ์ ๋ ์ฐ๊ณ ์ธ์ ๋ ์์ฐ๋ ๊ฒฝ์ฐ๊ฐ ์์๋ค. ์ธ๊ฑฐ๋ฉด ๋ค ์ฐ๊ณ ์์ฐ๋ ค๋ฉด ๋ค ์์ฐ์ง ์ด๊ฒ ๋ญ๋!? ๊ทธ ์ด์ ์ ๋ํด์ ์ฐพ์๋ดค๋ค.
์ฐ์ expressjs์ ๊ฒฝ์ฐ ๋ฏธ๋๋ฉ๋ฆฌ์ฆ์ ๊ฐ์กฐํ๋ ์น ํ๋ ์์ํฌ๋ก, ๋๋ถ๋ถ์ ๊ธฐ๋ฅ์ ๊ฐ๋ฐ์๊ฐ ์ง์ ๊ตฌํํด์ผ ํ๊ณ , Repository๋ฅผ ๋ช
์์ ์ผ๋ก ์์ฑํ๊ณ ์ฌ์ฉํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ธ๋ฐ์ ๋ฐํด,
nestjs์ ๊ฒฝ์ฐ Repository๋ฅผ ๋ช
์์ ์ผ๋ก ์์ฑํ์ง ์์๋ ๋๋ฉฐ, NestJS์ Provider์ ์์กด์ฑ ์ฃผ์
์ ํตํด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์
์ ์ถ์ํํ๊ณ , ํ์ํ ๊ฒฝ์ฐ ์๋น์ค ํด๋์ค๋ฅผ ๋ง๋ค์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์
์ ์ฒ๋ฆฌํ๋ค.
๊ทธ๋ผ nestjs์์ repository๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ ์ธ์ ์ผ๊น?
๋ณต์กํ ์ฟผ๋ฆฌ ๋ ผ๋ฆฌ : ๋จ์ํ CRUD(Create, Read, Update, Delete) ์์ ์ด์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฟผ๋ฆฌ ๋ก์ง์ด ํ์ํ ๊ฒฝ์ฐ. Repository๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฟผ๋ฆฌ๋ฅผ ๋์ฑ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌ ๊ฐ๋ฅ.
ํธ๋์ญ์ ์ฒ๋ฆฌ : ์ฌ๋ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ์ ํ๋์ ํธ๋์ญ์ ์ผ๋ก ๋ฌถ์ด์ผ ํ๋ ๊ฒฝ์ฐ.
์ฌ์ฉ์ ์ ์ ๋ฉ์๋ : ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ํน๋ณํ ์์ ์ด ํ์ํ ๊ฒฝ์ฐ, Repository์ ์ฌ์ฉ์ ์ ์ ๋ฉ์๋๋ฅผ ์ถ๊ฐํ์ฌ ํด๋น ์์ ์ ์ฒ๋ฆฌํ ์ ์์. ์๋ฅผ ๋ค์ด, ํน์ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๊ฑฐ๋ ๊ณ์ฐํ๋ ๊ฒฝ์ฐ์๋ ์ฌ์ฉ์ ์ ์ Repository ๋ฉ์๋๋ฅผ ์์ฑํ์ฌ ์ด๋ฌํ ์์ ์ ์ํํ ์ ์์.
ํ ์คํธ ์ฉ์ด์ฑ : ์์กด์ฑ ์ฃผ์ ์ ํตํด Mock Repository๋ฅผ ์ฃผ์ ํ์ฌ ์ ๋ ํ ์คํธ๋ฅผ ์ํํ ์ ์์.