๋ฐ๋ผํ๋ฉฐ ๋ฐฐ์ฐ๋ TDD ๊ฐ๋ฐ [2023.11 ์ ๋ฐ์ดํธ]
John Ahn
์ด ๊ฐ์๋ฅผ ํตํด์ ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ(TDD)์ ์ด์ฉํ์ฌ Node.js ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค์ด ๋ด ๋๋ค.
์ด๊ธ
TDD, Node.js, Express
์ด ๊ฐ์๋ฅผ ํตํด NestJS์ ๋ํด์ ๋ฐฐ์ธ ์ ์์ต๋๋ค.
์๊ฐ์ 8,837๋ช
๋์ด๋ ์ด๊ธ
์๊ฐ๊ธฐํ ๋ฌด์ ํ

๋จผ์ ๊ฒฝํํ ์๊ฐ์๋ค์ ํ๊ธฐ
5.0
youngpar
์ง์ง ์ด๊ฒ ๋ฌด๋ฃ์ธ๊ฒ ๋ง์ด ๋จ?
5.0
์นด๋ ธ์ฃ
๊ฐ์ธ ํ๋ก์ ํธ๋ฅผ ์ํด ๊ธํ๊ฒ ๊ฐ์๋ฅผ ์ฐพ์์ ๋ดค๋๋ฐ ์ ๋ง ์ฐจ๊ทผ์ฐจ๊ทผ ์ค๋ช ์ ์ ํด์ฃผ์ ์ ์ดํด๊ฐ ์๋์ด์! nest.js๋ฅผ ๊ณต๋ถํ๊ธฐ ์ ์ spring๊ฐ์๋ฅผ ๋ดค์๋๋ฐ ์ด๋ ๊ฒ๊น์ง ์ด๋ณด์ ๋๋์ด์ ๋ง์ถฐ์ ์ฒ์ฒํ ํต์ฌ์ ์ค๋ช ํ๋ ๊ฐ์๋ ์์์ด์. ์ด ๊ฐ์ ๋์ ๋น์ทํ spring๋ ์ด์ ์ผ ์ดํด๊ฐ ๋๋ค์. ์ด๋ป๊ฒ ์๋ฒ๊ฐ ๋์๊ฐ๋์ง ๊ตฌ์กฐ๋ ์๊ธฐ ์ฝ๊ฒ ๊ทธ๋ฆผ์ผ๋ก๋ ์ค๋ช ํด ์ฃผ์๊ณ , ์ ๊ฐ ๊ถ๊ธํ๋ ๊ฒ๋ค์ ๋ค ์ค๋ช ํด ์ฃผ์ ์ ์ข์์ด์. ์ด ๊ฐ์๋ฅผ ๋ณด๊ธฐ ์ ์๋ "dto๊ฐ ๋ญ์ง? ์ ์ฐ์ง? ์์กด์ฑ ์ฃผ์ ์ด๋ผ๋? @๊ฐ ๋ญ๊ณ ์ธ์ ์จ์ผ ํ์ง? controller๋ service๋ ๋ฌด์จ ์ญํ ์ด๊ธธ๋ ๋๋์ง?"๋ผ๋ ์ด๋ฐ ์๋ฌธ๋ค์ ๊ฐ์ง๊ณ ์์์ต๋๋ค. ์ด๋ค ๊ฐ์์์๋ ์๋ฌด๋ฆฌ ์ด๋ณด ๊ฐ์์ฌ๋ ๊ทธ๋ฐ ์ค๋ช ์ด ์์ด์ ์ดํด๋ ์๋๊ณ ํผ์ ์ฐพ์๋ด์ผ ํ๋ ๋ต๋ตํจ์ด ์์๋๋ฐ ๋ชจ๋ ๊ฑธ ํ๋ํ๋ ์ค๋ช ํด์ฃผ์ ์ ์์ด ํ๋ ธ์ด์. ์ด ๊ฐ์๊ฐ ๋๋ฌด ๋ง์์ ๋ญ๋๋ค. ์ด๋ ๊ฒ ์ค๋ช ์ ์ ํด์ฃผ์๋๋ฐ ๋ฌด๋ฃ๋ผ๋. ๋ง์ด ๋๋์? ๋๋ฐ... ๋๋ฌด ๊ฐ์ฌํฉ๋๋ค. ๋๋ถ์ ์ดํด๊ฐ ๋์ด์! ์ด ๊ฐ์ ์ถ์ฒํฉ๋๋ค.
5.0
sadwfwe123
๋ค์คํธ์ ์ ๋ฌธํ๊ธฐ์ ๋งค์ฐ ์ข์ ๊ฐ์์ ๋๋ค. ๊ฐ ์ฑํฐ๊ฐ ์ ๋ถ๋ฆฌ๋์ด์๊ณ ๊ฝค๋ ๊ด๋ฒ์ํ ๋ด์ฉ์ ๋ค๋ค ๋ค์คํธ์ ๊ธฐ๋ณธ๊ฐ๋ ์ ์ตํ๊ธฐ์ ์ข์ต๋๋ค. ์ข์ ๊ฐ์ ๋๋ฌด๋ ๊ฐ์ฌํฉ๋๋ค.
NestJS
PostgresSQL
TypeORM
JWT, PASSPORT
๋
ธ๋ ๊ฐ๋ฐ์๋ผ๋ฉด ์ฃผ๋ชฉ!
์์ฆ ๋จ๋ NestJS๋ฅผ ์๊ฐํฉ๋๋ค.
์๋
ํ์ธ์.
์ด๋ฒ ๊ฐ์์์๋ NestJS์ ๋ํด ๋ค๋ค๋ดค์ต๋๋ค.
๊ฐ๋ ฅํ๊ณ ๊น๋ค๋ก์ด ๋ฐฑ์๋ ์์คํ
์ ๋ง๋ค๊ธฐ ์ํ,
ํ์ฅ์ฑ์ด ๋๊ณ ์ง๋ณด์ ์ธ
๋ค๋ชฉ์ ์คํ์์ค Node.js ํ๋ ์์ํฌ์
๋๋ค.
NestJS๋ ํจ์จ์ ์ด๊ณ ํ์ฅ ๊ฐ๋ฅํ Node.js ์๋ฒ์ธก ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๊ธฐ ์ํ ํ๋ ์์ํฌ๋ก, ํ์ฌ TypeScript์์ ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ์ฑ์ฅํ๋ Node.js ํ๋ ์์ํฌ์ ๋๋ค.
2021๋ ํ์ฌ 39,300๊ฐ ์ด์์ GitHub ๋ณ์ด ์์ผ๋ฉฐ ์ฃผ๊ฐ npm ๋ค์ด๋ก๋ ๋น์จ์ ๊ฑฐ์ 600,000๊ฐ์ ๋๋ค. ๊ฐ๋ฐ์๊ฐ ์ ์๋ ค์ง ์ํํธ์จ์ด ๊ฐ๋ฐ ํจ๋ฌ๋ค์์ ์๋ํ๊ณ ๋ฐฐ์ฐ๊ณ ์ฌ์ฉํ๋๋ก ๊ถ์ฅํ๋ฉฐ, ์ค๋ช ์์ ๋ง์ ์์ ์ ๋ ์ํผ ๋ฐ ์ฝ๋ ์์ค๊ฐ ์์ต๋๋ค.
NestJS๋ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํจ๊ป ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก ์ฝ๊ฒ ํ์ฅํ ์ ์์ต๋๋ค. ์ ์์ด ์ ๋ ์ํ๊ณ์ ์ง๋ณด์ ์ธ ํน์ฑ ๋๋ถ์ ๋ค์ฌ๋ค๋ฅํ JavaScript ๊ธฐ๋ฅ๊ณผ ๋์์ธ ํจํด์ ์ ๊ณตํฉ๋๋ค.
Create(์์ฑ) Read(์ฝ๊ธฐ)
Update(๊ฐฑ์ ) Delete(์ญ์ )๋ก,
๋๋ถ๋ถ์ ์ํํธ์จ์ด๊ฐ ๊ฐ์ง๋
๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๊ธฐ๋ฅ์ ๋งํฉ๋๋ค.
์ด๋ฌํ ์ฅ์ ์ ๊ฐ์ง NestJS๋ฅผ ์ด ๊ฐ์์์๋ NestJS ๊ธฐ์ด๋ถํฐ ์์ํด, NestJS๋ฅผ ์ด์ฉํ ๊ฒ์ํ์ ์์ฑํ๊ณ ์ปจํธ๋กคํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํจ๊ป ๋ฐ๋ผ ๋ง๋ค์ด๋ด ๋๋ค.
์ ์ ์ง์์ ํ์ธํด์ฃผ์ธ์!
ํ์ตํ๋ฉด์ ํท๊ฐ๋ฆด ์ ์๋ ๋ถ๋ถ์ ๋ชจ๋ ๋ํํํ์์ต๋๋ค. ๊ฐ์๊ฐ NestJS ๊ธฐ๋ฅ ์์ฃผ๋ก ๋์๊ฐ๊ธฐ๋ ํ์ง๋ง, ๊ฐ์๋ฅผ ํ๋ ์ค๊ฐ์ค๊ฐ ์๊ฐ์ ์ ์ฅ์์ ํท๊ฐ๋ฆฌ๋ ๊ฐ๋ ์ด๋ ํ๋ํ๋์ ๊ธฐ๋ฅ๋ค์ด ์ ์ด๋ ๊ฒ ๊ตฌ์ฑ๋๋์ง ์ค๋ช ํ๊ธฐ ์ํด ๋ ธ๋ ฅํ์ต๋๋ค.
์ด ๊ฐ์๋ก ๋ง์ ๋ถ๋ค์ด ์์ผ๋ก NestJS๋ฅผ ์ฌ์ฉํ๋๋ฐ ์์ด์ ๋ง์ ๋์์ด ๋์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค. ๐
๋ฐ๋ผํ๋ฉฐ ๋ฐฐ์ฐ๋ ๋
ธ๋,
๋ฆฌ์กํธ ์๋ฆฌ์ฆ - ๊ธฐ๋ณธ ๊ฐ์
์ฝ๊ฒ ๋ฐฐ์ฐ๋ ํ์คํ
๋ฐ๋ผํ๋ฉฐ ๋ฐฐ์ฐ๋ ๋
ธ๋,
๋ฆฌ์กํธ ์๋ฆฌ์ฆ -
์ ํ๋ธ ์ฌ์ดํธ ๋ง๋ค๊ธฐ
์๋น์ค ๊ฐ๋ฐ ๋
ธํ์ฐ
๋ฐ๋ผํ๋ฉฐ ๋ฐฐ์ฐ๋ ๋
ธ๋,
๋ฆฌ์กํธ ์๋ฆฌ์ฆ -
์ํ ์ฌ์ดํธ ๋ง๋ค๊ธฐ
API ์ฐ๋๊น์ง ์ตํ๊ธฐ
ํ์ต ๋์์
๋๊ตฌ์ผ๊น์?
Nodejs ๊ฐ๋ฐ์
NestJS๋ฅผ ๋ฐฐ์ฐ๊ณ ์ถ์ผ์ ๋ถ
์ ์ ์ง์,
ํ์ํ ๊น์?
NodeJS
ExpressJS
85,402
๋ช
์๊ฐ์
2,780
๊ฐ
์๊ฐํ
2,430
๊ฐ
๋ต๋ณ
4.8
์
๊ฐ์ ํ์
20
๊ฐ
๊ฐ์
์๋ ํ์ธ์.
์ฆ๊ฒ๊ฒ ๊ฐ๋ฐํ๊ณ ์๋ ๊ฐ๋ฐ์์ ๋๋ค.
์์ผ๋ก ๋ง์ ๋์์ ๋๋ฆด ์ ์์์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค.
- ๋ฐ๋ผํ๋ฉฐ ๋ฐฐ์ฐ๋ ๋์ปค์ CIํ๊ฒฝ ์ ์
- ์นด์นด์ค ๊ธฐ์
์ ์
๊ณต์ฑ FE ๊ต์์
- ํจ์คํธ์บ ํผ์ค, ๊ตฌ๋ฆ ๊ฐ์ฌ
- ํ๋์๋์ฐจ ๊ฐ๋ฐ ๊ธฐ์
๊ต์ก
- ์ ํ์ํ ๋ฉํ๋ฒ์ค, ์ฝ๋น ํ์ด ํ์คํ ๊ฐ๋ฐ
- ์ฌ๋ฌ ๊ณต๊ณต๊ธฐ๊ด SNS ํ์คํ ๊ฐ๋ฐ
์ ์ฒด
60๊ฐ โ (6์๊ฐ 12๋ถ)
ํด๋น ๊ฐ์์์ ์ ๊ณต:
4. ๊ฐ์ ์๊ฐ
02:02
5. NestJS๋?
03:05
6. NodeJS ์ค์น
01:15
7. NestJS CLI ์ค์น
03:29
11. NestJS ๋ชจ๋
02:46
์ ์ฒด
373๊ฐ
5.0
373๊ฐ์ ์๊ฐํ
์๊ฐํ 6
โ
ํ๊ท ํ์ 5.0
์๊ฐํ 1
โ
ํ๊ท ํ์ 5.0
์๊ฐํ 10
โ
ํ๊ท ํ์ 5.0
์๊ฐํ 1
โ
ํ๊ท ํ์ 5.0
์์ ๋จ
์๊ฐํ 2
โ
ํ๊ท ํ์ 5.0
5
๊ฐ์ธ ํ๋ก์ ํธ๋ฅผ ์ํด ๊ธํ๊ฒ ๊ฐ์๋ฅผ ์ฐพ์์ ๋ดค๋๋ฐ ์ ๋ง ์ฐจ๊ทผ์ฐจ๊ทผ ์ค๋ช ์ ์ ํด์ฃผ์ ์ ์ดํด๊ฐ ์๋์ด์! nest.js๋ฅผ ๊ณต๋ถํ๊ธฐ ์ ์ spring๊ฐ์๋ฅผ ๋ดค์๋๋ฐ ์ด๋ ๊ฒ๊น์ง ์ด๋ณด์ ๋๋์ด์ ๋ง์ถฐ์ ์ฒ์ฒํ ํต์ฌ์ ์ค๋ช ํ๋ ๊ฐ์๋ ์์์ด์. ์ด ๊ฐ์ ๋์ ๋น์ทํ spring๋ ์ด์ ์ผ ์ดํด๊ฐ ๋๋ค์. ์ด๋ป๊ฒ ์๋ฒ๊ฐ ๋์๊ฐ๋์ง ๊ตฌ์กฐ๋ ์๊ธฐ ์ฝ๊ฒ ๊ทธ๋ฆผ์ผ๋ก๋ ์ค๋ช ํด ์ฃผ์๊ณ , ์ ๊ฐ ๊ถ๊ธํ๋ ๊ฒ๋ค์ ๋ค ์ค๋ช ํด ์ฃผ์ ์ ์ข์์ด์. ์ด ๊ฐ์๋ฅผ ๋ณด๊ธฐ ์ ์๋ "dto๊ฐ ๋ญ์ง? ์ ์ฐ์ง? ์์กด์ฑ ์ฃผ์ ์ด๋ผ๋? @๊ฐ ๋ญ๊ณ ์ธ์ ์จ์ผ ํ์ง? controller๋ service๋ ๋ฌด์จ ์ญํ ์ด๊ธธ๋ ๋๋์ง?"๋ผ๋ ์ด๋ฐ ์๋ฌธ๋ค์ ๊ฐ์ง๊ณ ์์์ต๋๋ค. ์ด๋ค ๊ฐ์์์๋ ์๋ฌด๋ฆฌ ์ด๋ณด ๊ฐ์์ฌ๋ ๊ทธ๋ฐ ์ค๋ช ์ด ์์ด์ ์ดํด๋ ์๋๊ณ ํผ์ ์ฐพ์๋ด์ผ ํ๋ ๋ต๋ตํจ์ด ์์๋๋ฐ ๋ชจ๋ ๊ฑธ ํ๋ํ๋ ์ค๋ช ํด์ฃผ์ ์ ์์ด ํ๋ ธ์ด์. ์ด ๊ฐ์๊ฐ ๋๋ฌด ๋ง์์ ๋ญ๋๋ค. ์ด๋ ๊ฒ ์ค๋ช ์ ์ ํด์ฃผ์๋๋ฐ ๋ฌด๋ฃ๋ผ๋. ๋ง์ด ๋๋์? ๋๋ฐ... ๋๋ฌด ๊ฐ์ฌํฉ๋๋ค. ๋๋ถ์ ์ดํด๊ฐ ๋์ด์! ์ด ๊ฐ์ ์ถ์ฒํฉ๋๋ค.
์ง์๊ณต์ ์๋์ ๋ค๋ฅธ ๊ฐ์๋ฅผ ๋ง๋๋ณด์ธ์!
๊ฐ์ ๋ถ์ผ์ ๋ค๋ฅธ ๊ฐ์๋ฅผ ๋ง๋๋ณด์ธ์!
๊ฐ์๊ฐ ํฌํจ๋ ๋ก๋๋งต์ผ๋ก ํ์ตํด ๋ณด์ธ์!
๋ฌด๋ฃ