2021. 8. 4. 22:19ใ๐ TIL
โ NestJs, TypeOrm ์ด๊ฒ ๋ง์ ?
nestjs ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ฌ ํ๋ก๋ํธ๋ฅผ ๊ฐ๋ฐ์ค์ด๋ค.
๋ณ์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ค ๋ณด๋, ์ด๋ค ์ฟผ๋ฆฌ๋ฅผ ๋ ๋ ค๋ ์ต์ 4๊ฐ ์ด์์ Table ์ ์กฐ์ธํ๊ฒ ๋๋ค.
์ด๋ฌ๋ค ๋ณด๋ entity ๋ฅผ ์์ฑํ๊ธด ํ์ง๋ง, ์ ๋๋ก ์ฌ์ฉํ์ง ๋ชปํ๋ ์ํฉ์ ๋์ฌ์๋ค.
์ฆ TypeOrm ๋ ์ฌ์ฉํ์ง ๋ชปํ์ฑ QueryBuilder ๋ก ๋ก์น ๋ repository layer ๋ฅผ ๊ฐ๊ฒ ๋๋ค.
์ด๋ฌ๋ฉด NestJs ๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๊ฐ ์์ง ์์๊ฐ? ๋ผ๋ ์๋ฌธ์ด ๋ค์์ง๋ง, ์ด์ฐจํผ ์ด๋ฐ ์ํฉ์ด๋ผ๋ฉด Spring์ JPA ๋ ์ ๋๋ก ์ฌ์ฉํ ์ ์๋ค.์ด๋ค ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๋ ๋๊ธด๊ฐ๊ธด์ด๋ ๋ป์ด๋ค.
โ Test code ์ ๋ถ์ฌ
unit test ๋ฅผ ํด๋ณด๊ณ ์ถ์๋ค. ์ฌ๊ธฐ์๋ Entity ๋ฅผ ์ ๋๋ก ์ฌ์ฉํ์ง ๋ชปํ ์ ์ด ์ฌ์คํ ๋๋ฌ๋ฌ๋ค.
querybuilder ๋ฅผ ํตํด db์ ์ ๊ทผํ๋ test code ์์ฑ์ด ์ฌ๊ฐ ํ๋ค์๋ค.
unit test ๊ฐ ์๋ E2E ํ ์คํธ๋ฅผ ์๋ํด์ผํ๋ค. ํ์ฌ ์ฐ๋ฆฌ ์ฝ๋์ ์ํฉ์, entity ๋ฅผ ์ฃผ์ ์ฉ๋๋ก ๋ฐ์ ์ฌ์ฉํ์ง ๋ชปํ๋, ์ด์ ๊ด๋ จ๋(typeorm) ํ ์คํธ ์ฝ๋๋ฅผ ์งค ์ ์๋ค. ๋ฌด์๋ณด๋ค back-end์ ํ์ฌ ๊ธฐ๋ฅ์ด Rest ํต์ ์ด ์ฐ์ ์ด๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋๋์ฑ E2E ํ ์คํธ์ ์ค์ ์ ๋๋ ๊ฒ์ด ๋ง๋ค. ๋ฌด์๋ณด๋ค ํ์ฌ์์ ๋ฑํ ํ ์คํธ ์ฝ๋๋ฅผ ์ง๋ผ๋ ๋ง์ด ์๊ธฐ ๋๋ฌธ์,,, ์ต์ํ์ ๊ณต์๋ก ํ ์คํธ์ฝ๋๋ฅผ ์์ฑํ๋ ค๋ฉด unit test ๋ณด๋จ e2e ๋ผ๋ ์๊ฐ์ด ๋ค์๋ค.
์ด ๊ณผ์ ์์ Jest ๋ฅผ ์๊ฒ ๋๋ค. spring์ mockito ์ ๋๋์ด ๋น์ทํ๋๋ฐ, mock ๊ฐ์ฒด๋ฅผ ๋ง๋๋ ๊ฑด ์ด๋ ํ๋ ์์ํฌ๋ ๊ตญ๋ฃฐ์ด๊ตฌ๋.
jest ๋ฅผ nestjs ์ ์ ์ฉํ์ฌ ํฌ์คํ ํด๋ณด๊ณ ์ถ๋ค.
๐ ํ๋ ํ๋ฃจ์๋ค
๋ถ์์ ์ฌ์๋ ์๋์ด ๊ฐ๋ฐ์๊ฐ ์๋ค๋ณด๋ ๋ฌผ์ด๋ณผ ์ํฉ๋ ์ฌ์์น ์๋ค. literally ํ๋ฃจ ์ข ์ผ ๊ตฌ๊ธ๋งํ๋ฉฐ, querybuilder ๊ด๋ จ ํ ์คํธ์ฝ๋๋ฅผ ์ฐพ์๋๋ฐ, ๊ฒฐ๊ตญ ๋ฐฉํฅ์ด ์๋ชป๋๋จ ๊ฒฐ๋ก ์ด ๋ฌ๋ค. (์ด๋๊ฐ ๋์์ ์ฒญํ๊ณ ์ถ๋ค ์ง์ง..) ๋ค์์ฃผ๋ฉด ์ ์ ๊ฐ๋ฐ์ ๋ถ๋ค์ด 5๋ช ์ด๋ ๋ ๋ค์ด์จ๋ค๋๋ฐ, ํ์ ์ต๊ณ ์ฐธ์ ๊ฒฝ๋ ฅ์ด 10๊ฐ์๋ ์๋ ์ฃผ๋์ด์ค์ ์ ์ฃผ๋์ด ๊ฐ๋ฐ์๋ค.(๊ทธ๊ฒ ๋๋ค)
๊ทธ๋ผ์๋, ์ด ๋ถ๋ด๊ฐ์ ์ ๋ฉด์ผ๋ก ๋ง์๋ฉฐ ์์ผ๋ก ๋์๊ฐ๋ค. ์ง๊ธ ํ๋ค๋ค๋ฉด ์ํ๊ณ ์๋๊ฒ์ด๋ผ ๋ฏฟ๋๋ค.
'๐ TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
210806 ๊ฐ๋ฐ๊ธฐ๋ก: switch(true) (0) | 2021.08.07 |
---|---|
210805 ๊ฐ๋ฐ๊ธฐ๋ก: ์ ํ๊ธฐ๋ฒ๊ณผ ๊ดํธ ํ๊ธฐ๋ฒ (dot notation, bracket notaion) (0) | 2021.08.05 |
210803 ๊ฐ๋ฐ๊ธฐ๋ก: moment.js (0) | 2021.08.03 |
210802 ๊ฐ๋ฐ๊ธฐ๋ก : ํ์ดํ ํจ์์ ํธ์ด์คํ (0) | 2021.08.02 |
210728 ๊ฐ๋ฐ๊ธฐ๋ก (0) | 2021.07.28 |