๋‹จ์œ„ ํ…Œ์ŠคํŠธ(Unit Test)์™€ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ(Integration Test)

๊ณฐํ„ฐ๋ทฐ ์„œ๋น„์Šค ๊ฐœ๋ฐœ์—์„œ ์ง„ํ–‰ํ•œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ์™€ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ๋ฐฉ์‹์— ๋Œ€ํ•ด ์„ค๋ช…ํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.

Profile Picture
quiet-honey
2024-01-27

์›๋ณธ ๊ธ€ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ

์•ž์„  ํฌ์ŠคํŠธ์—์„œ๋Š” ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ž€ ๋ฌด์—‡์ธ์ง€, ๋˜ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ธ์ง€์— ๋Œ€ํ•ด ๊ฐ„๋‹จํ•˜๊ฒŒ ์•Œ์•„๋ณด์•˜๋‹ค.
ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋Š” ์™œ ๋งŒ๋“ค๊นŒ?
์ด๋ฒˆ์—๋Š” ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์˜ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์™€ ๊ฐ ์ข…๋ฅ˜ ๋ณ„๋กœ ์†Œํ”„ํŠธ์›จ์–ด์˜ ์–ด๋–ค ๋ถ€๋ถ„์— ์ง‘์ค‘ํ•˜๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ๊ทธ์ค‘์—์„œ๋„ ํŠนํžˆ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ์™€ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ์— ๋Œ€ํ•ด ์ž์„ธํ•˜๊ฒŒ ์•Œ์•„๋ณด๊ฒ ๋‹ค.

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์˜ ์ข…๋ฅ˜

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์—๋Š” ๋‹จ์œ„ ํ…Œ์ŠคํŠธ, ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ, ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ ๋“ฑ ์šฐ๋ฆฌ๊ฐ€ ํ”ํžˆ ๋“ค์–ด๋ณธ ํ…Œ์ŠคํŠธ ๋ฐฉ์‹๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ธ์ˆ˜ ํ…Œ์ŠคํŠธ, ํšŒ๊ท€ ํ…Œ์ŠคํŠธ, E2E ํ…Œ์ŠคํŠธ ๋“ฑ ์ •๋ง ๋งŽ์€ ์ข…๋ฅ˜์˜ ํ…Œ์ŠคํŠธ๊ฐ€ ์กด์žฌํ•œ๋‹ค. ์—ฌ๊ธฐ์—์„œ๋Š” ํ”ํžˆ ๊ฐœ๋ฐœ์ž๋“ค์ด ์ ‘ํ•  ์ˆ˜ ์žˆ๋Š” ํ…Œ์ŠคํŠธ์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•ด ๋ณด๊ฒ ๋‹ค.

  1. ๋‹จ์œ„ ํ…Œ์ŠคํŠธ(Unit Test): ์†Œํ”„ํŠธ์›จ์–ด์˜ ๊ฐ€์žฅ ์ž‘์€ ๋‹จ์œ„์ธ ํ•จ์ˆ˜, ๋ฉ”์„œ๋“œ, ๋˜๋Š” ํด๋ž˜์Šค ๋“ฑ์˜ ๊ฐœ๋ณ„ ๋‹จ์œ„๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋Š” ์ฃผ๋กœ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฐ ๋ถ€๋ถ„์ด ์˜๋„๋Œ€๋กœ ์ •ํ™•ํ•˜๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.
  2. ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ(Integration Test): ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๊ฐ€ ์™„๋ฃŒ๋œ ๋ชจ๋“ˆ๋“ค์„ ์กฐํ•ฉํ•˜์—ฌ ์ „์ฒด ์‹œ์Šคํ…œ์ด ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ํ…Œ์ŠคํŠธ์ด๋‹ค. ๋ชจ๋“ˆ ๊ฐ„์˜ ์ƒํ˜ธ ์ž‘์šฉ๊ณผ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐ ์ค‘์ ์„ ๋‘”๋‹ค.
  3. ์ธ์ˆ˜ ํ…Œ์ŠคํŠธ(Acceptance Test): ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์‚ฌ์šฉ์ž ๋˜๋Š” ์‹œ์Šคํ…œ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š”์ง€ ๊ฒ€์ฆํ•˜๋Š” ํ…Œ์ŠคํŠธ์ด๋‹ค. ์‚ฌ์šฉ์ž์˜ ๊ด€์ ์—์„œ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์˜ˆ์ƒ๋Œ€๋กœ ๋™์ž‘ํ•˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
  4. ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ(Performance Test): ํŠน์ • ์ƒํ™ฉ์—์„œ์˜ ์‘๋‹ต ์‹œ๊ฐ„, ์ฒ˜๋ฆฌ๋Ÿ‰ ๋“ฑ์„ ์ธก์ •ํ•จ์œผ๋กœ์จ ์†Œํ”„ํŠธ์›จ์–ด์˜ ์„ฑ๋Šฅ์„ ํ‰๊ฐ€ํ•œ๋‹ค.
  5. ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ(Load Test): ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ํŠน์ • ๋ถ€ํ•˜ ์กฐ๊ฑด์—์„œ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ํ…Œ์ŠคํŠธ์ด๋‹ค. ๋‹ค์ˆ˜์˜ ๋™์‹œ ์‚ฌ์šฉ์ž๋‚˜ ๋งŽ์€ ๋ฐ์ดํ„ฐ ์–‘ ๋“ฑ์˜ ๋ถ€ํ•˜ ์กฐ๊ฑด์„ ํŠน์ • ์‹œ๊ฐ„ ๋™์•ˆ ๊ฐ€ํ•ด์„œ ์†Œํ”„ํŠธ์›จ์–ด์˜ ์•ˆ์ •์„ฑ์„ ํ‰๊ฐ€ํ•œ๋‹ค.
  6. E2E ํ…Œ์ŠคํŠธ(End-to-End Test): ์†Œํ”„ํŠธ์›จ์–ด ์‹œ์Šคํ…œ์˜ ์ „์ฒด์ ์ธ ํ๋ฆ„์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜์—ฌ ์‚ฌ์šฉ์ž์˜ ๊ด€์ ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์˜ˆ์ƒ๋Œ€๋กœ ๋™์ž‘ํ•˜๋Š”์ง€๋ฅผ ํ™•์ธํ•˜๋Š” ํ…Œ์ŠคํŠธ์ด๋‹ค. ์ธ์ˆ˜ ํ…Œ์ŠคํŠธ์™€ ์•ฝ๊ฐ„ ๋น„์Šทํ•˜๋‹ค๊ณ  ๋Š๊ปด์งˆ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ธ์ˆ˜ ํ…Œ์ŠคํŠธ๋Š” ์š”๊ตฌ์‚ฌํ•ญ์„ ์ค‘์‹ฌ์œผ๋กœ ํ…Œ์ŠคํŠธ๊ฐ€ ์ง„ํ–‰๋˜๋Š” ๋ฐ˜๋ฉด, E2E ํ…Œ์ŠคํŠธ๋Š” ์ „์ฒด ์‹œ์Šคํ…œ์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๋‹จ์œ„ ํ…Œ์ŠคํŠธ

์œ„์—์„œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋Š” ์†Œํ”„ํŠธ์›จ์–ด์˜ ๊ฐ€์žฅ ์ž‘์€ ๋‹จ์œ„์ธ ๋ฉ”์„œ๋“œ ๋“ฑ์„ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ํ•˜์˜€๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์‹ค์ œ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ๋Š” ์–ด๋–ป๊ฒŒ ์ง„ํ–‰๋˜๋Š” ๊ฒƒ์ผ๊นŒ?

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

์ด๋Ÿฐ ์ƒํ™ฉ์—์„œ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๊ฐ€ ์ง„ํ–‰๋  ์ˆ˜ ์žˆ์„๊นŒ? ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋Š” ํ•˜๋‚˜์˜ ๋ชจ๋“ˆ ๋‹จ์œ„๋งŒ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์ด๊ธฐ์— ๋‹ค๋ฅธ ๋ชจ๋“ˆ์˜ ๊ฒฐ๊ณผ์— ์˜ํ–ฅ์„ ๋ฐ›์•„์„œ๋Š” ์•ˆ๋œ๋‹ค. ์ฆ‰, ๋‹ค๋ฅธ ๋ชจ๋“ˆ์—์„œ๋Š” ํ…Œ์ŠคํŠธ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ์˜๋„ํ•œ ๋Œ€๋กœ ์‘๋‹ต์ด ์™€์•ผ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. "ํ…Œ์ŠคํŠธ ๋Œ€์ƒ ๋ชจ๋“ˆ์ด ์ด๋Ÿฌํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ์ด๋Ÿฌํ•œ ์‘๋‹ต์„ ํ•˜๋Š”์ง€"๋ฅผ ํ…Œ์ŠคํŠธํ•  ๊ฒƒ์ด๊ธฐ์— ๋‹ค๋ฅธ ๋ชจ๋“ˆ๋“ค์€ "์ด๋Ÿฌํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค"๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๊ธฐ๋งŒ ํ•˜๋ฉด ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

์œ„์—์„œ ๋งํ•œ ๋‹ค๋ฅธ ๋ชจ๋“ˆ๋“ค์ด "์ด๋Ÿฌํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค"๋ฅผ ๋งŒ๋“ค์–ด์ค„ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ Mock(๋ชจ์˜ ๊ฐ์ฒด)์ด๋‹ค. Mocking์„ ํ†ตํ•ด ํ˜„์žฌ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ ค๊ณ  ํ•˜๋Š” ๋ชจ๋“ˆ์— ์˜ํ–ฅ์„ ์ฃผ๋Š” ๋‹ค๋ฅธ ๋ชจ๋“ˆ๋“ค์ด ์ง€์ •๋œ ์‘๋‹ต๋งŒ์„ ๋ฐ˜ํ™˜ํ•˜๋„๋ก, ์ฆ‰ "ํ‰๋‚ด" ๋‚ด๊ฒŒ ํ•˜์—ฌ ํ…Œ์ŠคํŠธ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ , ๊ทธ๋Ÿฌํ•œ ์ƒํ™ฉ ์†์—์„œ ํ…Œ์ŠคํŠธ ๋Œ€์ƒ ๋ชจ๋“ˆ์ด ์˜๋„ํ•œ ์‘๋‹ต์„ ํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. "์˜์กด์„ฑ"์œผ๋กœ ์ธํ•œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์‹œ์˜ ์–ด๋ ค์›€์„ Mock์„ ์‚ฌ์šฉํ•ด ํ•œ ๋ฒˆ์— ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ฐ„๋‹จํ•œ ์˜ˆ๋ฅผ ๋“ค์–ด๋ณด๊ฒ ๋‹ค. ํ˜„์žฌ MVC ํŒจํ„ด์„ ๋”ฐ๋ฅด๋Š” Spring ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ , ์ด๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋ ค๊ณ  ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด์ž. ํŠน์ • Controller ๊ณ„์ธต์— ๋Œ€ํ•ด ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ ค๊ณ  ํ•œ๋‹ค๋ฉด, Controller ๊ณ„์ธต์€ ๋‹น์—ฐํ•˜๊ฒŒ๋„ Service ๊ณ„์ธต์˜ ๊ฒฐ๊ณผ์— ์˜ํ–ฅ์„ ๋ฐ›๊ฒŒ ๋œ๋‹ค.
Service ๊ณ„์ธต์—์„œ A๊ฐ€ ๋ฐ˜ํ™˜๋˜๋ฉด Controller ๊ณ„์ธต์—์„œ๋Š” A'๋ผ๋Š” ๊ฒฐ๊ณผ, Service ๊ณ„์ธต์—์„œ B๊ฐ€ ๋ฐ˜ํ™˜๋˜๋ฉด Controller ๊ณ„์ธต์—์„œ๋Š” B'๋ผ๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๋Š” ๋ฐฉ์‹์„ ํ…Œ์ŠคํŠธํ•ด ๋ณด๊ฒ ๋‹ค๊ณ  ํ•˜์ž. ๊ทธ๋ ‡๋‹ค๋ฉด Service ๊ณ„์ธต์—์„œ A ๋˜๋Š” B๋ผ๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋ฐ˜ํ™˜๋˜๋„๋ก Mocking์„ ์ง„ํ–‰ํ•˜๋ฉด ๋œ๋‹ค. Mocking ํ›„ Controller ๊ณ„์ธต์—์„œ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๋Š”์ง€ ํ™•์ธํ•˜๋ฉด ์ •๋ง ๊ฐ„๋‹จํ•˜๊ฒŒ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๊ฐ€ ์™„๋ฃŒ๋˜๋Š” ๊ฒƒ์ด๋‹ค.
๋งŒ์•ฝ Mocking์ด ์—†์—ˆ๋‹ค๋ฉด, Service ๊ณ„์ธต์—์„œ A ๋˜๋Š” B๊ฐ€ ๋‚˜์˜ค๋„๋ก ์š”์ฒญ์ด๋‚˜ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ์„ค๊ณ„๋ฅผ ๋” ์„ธ๋ฐ€ํ•˜๊ฒŒ ์กฐ์ •ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ํ…Œ์ŠคํŠธ์— ์Ÿ์•„์•ผ ํ•˜๋Š” ๋ฆฌ์†Œ์Šค๋„ ์ปค์ง€๊ฒŒ ๋์„ ๊ฒƒ์ด๋‹ค. ๋˜ํ•œ ์œ„์™€ ๊ฐ™์€ ๋ฐฉ์‹์˜ ํ…Œ์ŠคํŠธ๋Š” ๋‹ค๋ฅธ ๋ชจ๋“ˆ๋“ค๊ณผ ๊ฒฐํ•ฉํ•œ ์ƒํƒœ์˜ ํ…Œ์ŠคํŠธ์ด๊ธฐ์— ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ผ๋Š” ๊ฐœ๋…์—๋„ ์–ด๊ธ‹๋‚˜๋Š” ํ…Œ์ŠคํŠธ๊ฐ€ ๋ผ๋ฒ„๋ฆฐ๋‹ค.

ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ

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

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

ํ•˜์ง€๋งŒ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ์˜ ์–ด๋ ค์›€์€ ์ „์ฒด ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ์ด๊ธฐ ๋•Œ๋ฌธ์— DB์— ๊ฐ’์ด ์‚ฝ์ž…๋˜๊ณ , ๋ณ€๊ฒฝ๋˜๊ณ , ๋˜ ์‚ญ์ œ๋˜๊ธฐ๋„ ํ•˜๋ฉด์„œ ์ž์นซ ํ…Œ์ŠคํŠธ์˜ ์„ค๊ณ„๊ฐ€ ์ž˜๋ชป๋œ๋‹ค๋ฉด ์‹ค์ œ DB์— ์ €์žฅ๋œ ๊ฐ’์— ์˜ํ–ฅ์„ ๋ผ์น˜๋Š” ์ตœ์•…์˜ ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด๋‹ค. ๋ฌผ๋ก  ์ด๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ ์‹ค์ œ DB๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ํ…Œ์ŠคํŠธ DB๋ฅผ ๋กœ์ปฌ์ด๋‚˜ ๋‹ค๋ฅธ ์„œ๋ฒ„์— ๋งˆ๋ จํ•˜์—ฌ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ํ…Œ์ŠคํŠธ๋ฅผ ์ฒ˜์Œ ์ ‘ํ•œ ์ดˆ๋ณด ๊ฐœ๋ฐœ์ž์˜ ๊ฒฝ์šฐ ์ž์นซ ์‰ฝ๊ฒŒ ์‹ค์ˆ˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์ด๋‹ค.

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

๋‹ค์Œ ๋ธ”๋กœ๊น…์—์„œ๋Š” ์‹ค์ œ ๊ณฐํ„ฐ๋ทฐ์—์„œ ์–ด๋–ค ์ข…๋ฅ˜์˜ ํ…Œ์ŠคํŠธ๋“ค์„ ์ง„ํ–‰ํ•˜์˜€๋Š”์ง€์— ๋Œ€ํ•ด ์–˜๊ธฐํ•ด ๋ณด๊ฒ ๋‹ค.

ยฉ 2024 Adultlee. All rights reserved.Made with โค by ์ด์„ฑ์ธ