Inflearn brand logo image
Inflearn brand logo image
์ฑ„๋„ํ†ก ์•„์ด์ฝ˜
BEST

๋”ฐ๋ผํ•˜๋ฉฐ ๋ฐฐ์šฐ๋Š” TDD ๊ฐœ๋ฐœ [2023.11 ์—…๋ฐ์ดํŠธ]

์ด ๊ฐ•์˜๋ฅผ ํ†ตํ•ด์„œ ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ(TDD)์„ ์ด์šฉํ•˜์—ฌ Node.js ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค์–ด ๋ด…๋‹ˆ๋‹ค.

Thumbnail

์ดˆ๊ธ‰์ž๋ฅผ ์œ„ํ•ด ์ค€๋น„ํ•œ
[์†Œํ”„ํŠธ์›จ์–ด ํ…Œ์ŠคํŠธ, TDD] ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๊ฑธ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์–ด์š”

  • Node.js

  • Test Driven Development

  • Express.js

  • Mongo DB

  • Jest

  • Supertest

์ง€์‹๊ณต์œ ์ž ๋ณ„์  4.9์ ! John Ahn๋‹˜๊ณผ ํ•จ๊ป˜ 
TDD ๋ฐฉ์‹์œผ๋กœ ์›น์•ฑ์„ ์ง์ ‘ ๋งŒ๋“ค์–ด๋ณด์„ธ์š”.

์ฃผ์ œ ์†Œ๊ฐœ ๐Ÿ“

์•ˆ๋…•ํ•˜์„ธ์š”.
์ด๋ฒˆ ๊ฐ•์˜์—์„œ๋Š” ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ์„ ์ด์šฉํ•œ Node.js ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค์–ด ๋ด…๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์„ ํ•˜๋Š” ๋ฐ ์žˆ์–ด์„œ ํ…Œ์ŠคํŠธ์ฃผ๋„๊ฐœ๋ฐœ(TDD)์€ ์ ์  ๊ธฐ๋ณธ์ด ๋˜์–ด๊ฐ€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 
๋”์šฑ ์•ˆ์ •์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์š”๊ตฌ๋˜๋Š” ์˜ค๋Š˜๋‚ ,
๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ๋””๋ฒ„๊น… ์‹œ๊ฐ„์„ ์ค„์ด๋Š” ๋ฐ ๊ต‰์žฅํžˆ ํšจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ•์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. 

ํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ๋งŽ์€ ํšŒ์‚ฌ์—์„œ๋Š” ์‹œ๊ฐ„์ด ์—†๋‹ค๋Š” ์ด์œ ๋กœ
์•„์ง TDD ๋ฐฉ์‹์„ ์—…๋ฌด์— ์ ์šฉํ•˜์ง€ ๋ชปํ–ˆ๋‹ค๊ณ  ํ•˜๋Š” ๊ณณ๋“ค๋„ ๋งŽ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๋ง‰์ƒ TDD๋ฅผ ์ ์šฉํ•˜๋ ค ํ•˜๋ฉด ์ƒˆ๋กœ์šด ๋ชจ๋“ˆ, ์ƒˆ๋กญ๊ฒŒ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ์‹์— ์ต์ˆ™ํ•˜์ง€ ์•Š์•„์„œ
๋‹ค์‹œ TDD ๋ฐฉ์‹์„ ํฌ๊ธฐํ•˜๋Š” ๊ฒฝ์šฐ๋„ ๋งŽ์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. 

๊ทธ๋ž˜์„œ ์ด๋ฒˆ ๊ฐ•์˜์—์„œ๋Š” ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ์„ ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ์‰ฝ๊ฒŒ ํ•ด๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๋Š”์ง€
๋”ฐ๋ผ๋งŒ ํ•˜๋ฉด TDD๋ฅผ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋Š” ๊ฐ•์˜๋ฅผ ๋งŒ๋“ค์–ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

์ด ๊ฐ•์˜๋ฅผ ํ†ตํ•ด์„œ ํ…Œ์ŠคํŠธ ์ฃผ๋„์˜ ๊ฐœ๋ฐœ์„ ๋ฐฐ์šฐ์…”์„œ
์‹ค๋ฌด์—์„œ๋“ , ๊ฐœ์ธ ํฌํŠธํด๋ฆฌ์˜ค์—์„œ๋“  ์ž˜ ์‚ฌ์šฉ๋์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค!


์ด ๊ฐ•์˜์—์„œ ๋ฐฐ์šฐ๋Š” ๊ฒƒ๋“ค โœ๏ธ

  • ๊ธฐ๋ณธ ๊ตฌ์กฐ 
     Node.js   Express.js   mongoDB   Mongoose 
  • ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ 
     Jest   Supertest   node-mocks-http  

๊ฐ•์˜ ํŠน์ง• ๐Ÿ’ก 

์ œ ๊ฐ•์˜์˜ ํŠน์ง•์€ ํ•ญ์ƒ ๋„ํ‘œ๋ฅผ ์ด์šฉํ•ด์„œ ์„ค๋ช…ํ•œ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค.

ํŠน์ • ๋ถ€๋ถ„๋งŒ์„ ๋„ํ‘œํ™”ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๊ฐ•์˜ ์ „์ฒด์—์„œ ๋„ํ‘œํ™” ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๋ถ€๋ถ„์„ ์ฐพ์•„๋‚ด
๋„ํ‘œ๋ฅผ ์ด์šฉํ•ด์„œ ๋” ์‰ฝ๊ฒŒ ์ดํ•ด ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋…ธ๋ ฅํ•˜์˜€์Šต๋‹ˆ๋‹ค. 

๊ทธ๋ฆฌ๊ณ  ํ•œ ๋ฒˆ ๋ฐฐ์šด ๊ฒƒ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐ˜๋ณตํ•˜๋Š” ํ˜•์‹์œผ๋กœ ๊ฐ•์ขŒ๊ฐ€ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์–ด
์ž๋™์œผ๋กœ ๋ณต์Šต์ด ์ด๋ฃจ์–ด์ง€๋Š” ํŠน์ง•์„ ๊ฐ–๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 


์—ฌ๊ธฐ์„œ ๋‹ค๋ฃจ๋Š” ํˆด ๐Ÿงฐ 

Visual Studio Code๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ ์ž์‹ ์ด ์›ํ•˜๋Š” Editor๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค. 
MAC์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ ์œˆ๋„์šฐ์—์„œ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.


ํ•จ๊ป˜ ํ•™์Šตํ•˜๋ฉด ์ข‹์€ ๊ฐ•์˜ ๐Ÿƒโ€โ™‚๏ธ

๋”ฐ๋ผํ•˜๋ฉฐ ๋ฐฐ์šฐ๋Š” ๋…ธ๋“œ, ๋ฆฌ์•กํŠธ ์‹œ๋ฆฌ์ฆˆ - ๊ธฐ๋ณธ ๊ฐ•์˜
ํ’€์Šคํƒ ๊ฐœ๋ฐœ์˜ ์ฒซ๊ฑธ์Œ!
๋…ธ๋“œ + ๋ฆฌ์•กํŠธ๋กœ JS๋ฅผ ์žฌ๋ฏธ์žˆ๊ฒŒ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”.
๋”ฐ๋ผํ•˜๋ฉฐ ๋ฐฐ์šฐ๋Š” ๋…ธ๋“œ, ๋ฆฌ์•กํŠธ ์‹œ๋ฆฌ์ฆˆ -
์‡ผํ•‘๋ชฐ ์‚ฌ์ดํŠธ ๋งŒ๋“ค๊ธฐ

์‡ผํ•‘๋ชฐ ์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“ค๋ฉฐ ์‹ค์ „ ์Šคํ‚ฌ ํ•œ ๋‹จ๊ณ„ UP! 
๋”ฐ๋ผํ•˜๋ฉฐ ๋ฐฐ์šฐ๋Š” ๋„์ปค์™€ CIํ™˜๊ฒฝ
์š”์ƒˆ ๋งŽ์ด ์“ฐ๋Š” ๋„์ปค, ์‹ค๋ฌด์—์„œ ์ œ๋Œ€๋กœ ํ™œ์šฉํ•˜๋ ค๋ฉด?

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”!

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • ํ…Œ์ŠคํŠธ ์ฃผ๋„์˜ ๊ฐœ๋ฐœ์„ ๋ฐฐ์šฐ๊ณ  ์‹ถ์œผ์‹  ๋ถ„

  • ๋”์šฑ ์•ˆ์ •์ ์ธ ์•ฑ์„ ๋งŒ๋“ค๊ณ  ์‹ถ์œผ์‹  ๋ถ„

์„ ์ˆ˜ ์ง€์‹,
ํ•„์š”ํ• ๊นŒ์š”?

  • Node.js

์•ˆ๋…•ํ•˜์„ธ์š”
John Ahn์ž…๋‹ˆ๋‹ค.

82,576

๋ช…

์ˆ˜๊ฐ•์ƒ

2,609

๊ฐœ

์ˆ˜๊ฐ•ํ‰

2,428

๊ฐœ

๋‹ต๋ณ€

4.8

์ 

๊ฐ•์˜ ํ‰์ 

20

๊ฐœ

๊ฐ•์˜

์•ˆ๋…•ํ•˜์„ธ์š”. 

์ฆ๊ฒ๊ฒŒ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ๋Š” ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค. 

์•ž์œผ๋กœ ๋งŽ์€ ๋„์›€์„ ๋“œ๋ฆด ์ˆ˜ ์žˆ์—ˆ์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค.


- ๋”ฐ๋ผํ•˜๋ฉฐ ๋ฐฐ์šฐ๋Š” ๋„์ปค์™€ CIํ™˜๊ฒฝ ์ €์ž
- ์นด์นด์˜ค ๊ธฐ์—… ์‹ ์ž… ๊ณต์ฑ„ FE ๊ต์ˆ˜์ž
- ํŒจ์ŠคํŠธ์บ ํผ์Šค, ๊ตฌ๋ฆ„ ๊ฐ•์‚ฌ 
- ํ˜„๋Œ€์ž๋™์ฐจ ๊ฐœ๋ฐœ ๊ธฐ์—… ๊ต์œก
- ์‹ ํ•œ์€ํ–‰ ๋ฉ”ํƒ€๋ฒ„์Šค, ์ฝ”๋น— ํƒ€์šด ํ’€์Šคํƒ ๊ฐœ๋ฐœ
- ์—ฌ๋Ÿฌ ๊ณต๊ณต๊ธฐ๊ด€ SNS ํ’€์Šคํƒ ๊ฐœ๋ฐœ

๋”๋ณด๊ธฐ

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

48๊ฐœ โˆ™ (4์‹œ๊ฐ„ 50๋ถ„)

ํ•ด๋‹น ๊ฐ•์˜์—์„œ ์ œ๊ณต:

์ˆ˜์—…์ž๋ฃŒ
๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์•„์ง ์ถฉ๋ถ„ํ•œ ํ‰๊ฐ€๋ฅผ ๋ฐ›์ง€ ๋ชปํ•œ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.
๋ชจ๋‘์—๊ฒŒ ๋„์›€์ด ๋˜๋Š” ์ˆ˜๊ฐ•ํ‰์˜ ์ฃผ์ธ๊ณต์ด ๋˜์–ด์ฃผ์„ธ์š”!