We want to hear from you!Take our 2021 Community Survey!
This site is no longer updated.Go to react.dev

ํ…Œ์ŠคํŒ… ๊ฐœ์š”

๋‹ค๋ฅธ JavaScript ์ฝ”๋“œ์™€ ๋น„์Šทํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ React ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

React ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”๋ฐ ํฌ๊ฒŒ๋Š” 2๊ฐ€์ง€ ์นดํ…Œ๊ณ ๋ฆฌ๋กœ ๋‚˜๋ˆ„์–ด์ง‘๋‹ˆ๋‹ค.

  • ์ปดํฌ๋„ŒํŠธ ํŠธ๋ฆฌ ๋ Œ๋”๋ง : ๊ฐ„๋žตํ™”๋œ ํ…Œ์ŠคํŒ… ํ™˜๊ฒฝ ๋ฐ ์ถœ๋ ฅ๊ฐ’์ด ํ™•์‹คํ•œ ๊ฒฝ์šฐ.
  • ์™„์„ฑ๋œ ์•ฑ์—์„œ์˜ ํ…Œ์ŠคํŠธ : ํ˜„์‹ค์  ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ(โ€œ์—”๋“œ ํˆฌ ์—”๋“œโ€ ํ…Œ์ŠคํŠธ๋ผ๊ณ  ์•Œ๋ ค์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.)

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

ํŠธ๋ ˆ์ด๋“œ์˜คํ”„

ํ…Œ์ŠคํŒ… ๋„๊ตฌ๋ฅผ ์„ ํƒํ•  ๋•Œ ๋ช‡ ๊ฐ€์ง€ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„๋ฅผ ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ์€ ์˜๋ฏธ ์žˆ๋Š” ์ผ์ž…๋‹ˆ๋‹ค.

  • ๋ฐ˜๋ณต์ž‘์—… ์†๋„ vs ํ˜„์‹ค์ ์ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ : ๋ช‡๋ช‡ ๋„๊ตฌ๋“ค์€ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์ƒ๊ธฐ๊ณ  ๊ฒฐ๊ณผ ๊ฐ’์ด ์ถœ๋ ฅ๋˜๋Š” ๊ณผ์ •์—์„œ ๋งค์šฐ ๋น ๋ฅธ ํ”ผ๋“œ๋ฐฑ ๋ฃจํ”„๋ฅผ ์ œ๊ณตํ•˜์ง€๋งŒ ๋ธŒ๋ผ์šฐ์ € ๋™์ž‘์„ ์ •ํ™•ํžˆ ๊ตฌํ˜„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋„๊ตฌ๋“ค์ด ํ˜„์‹ค์  ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉ๋˜์ง€๋งŒ ๋ฐ˜๋ณต ์ž‘์—… ์†๋„๋ฅผ ์ €ํ•˜์‹œํ‚ค๊ณ  ์ง€์†์  ํ†ตํ•ฉ ์„œ๋ฒ„ ํ™˜๊ฒฝ์—์„œ ๋” ์—ฐ์•ฝํ•ฉ๋‹ˆ๋‹ค.
  • ์–ผ๋งˆ๋‚˜ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ์‹ค์ œ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์˜ ๋™์ž‘์„ ํ…Œ์ŠคํŠธํ•  ๊ฒƒ์ธ๊ฐ€? ์ปดํฌ๋„ŒํŠธ ์•ˆ์—์„œ๋Š” โ€˜์œ ๋‹›โ€™ํ…Œ์ŠคํŠธ์™€ โ€˜ํ†ตํ•ฉโ€™ํ…Œ์ŠคํŠธ์˜ ์ฐจ์ด๋Š” ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ํผ์„ ํ…Œ์ŠคํŒ… ํ•œ๋‹ค๊ณ  ํ•  ๋•Œ ํ…Œ์ŠคํŠธ๋Š” ๋˜ํ•œ ๋ฒ„ํŠผ์˜ ์•ˆ์˜ ๋ถ€๋ถ„์—์„œ ์ด๋ฃจ์–ด์ง€๋‚˜์š”? ๋˜๋Š” ๋ฒ„ํŠผ ์ปดํฌ๋„ŒํŠธ์— ์•Œ๋งž์€ ํ…Œ์ŠคํŠธ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‚˜์š”? ๋ฆฌํŒฉํ† ๋ง๋œ ๋ฒ„ํŠผ์ด ํผ ํ…Œ์ŠคํŠธ์— ์˜ค๋ฅ˜๋ฅผ ์ผ์œผํ‚ค๋‚˜์š”?

๊ฐ๊ฐ์˜ ํŒ€๊ณผ ์ œํ’ˆ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๋‹ต์ด ์ ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถ”์ฒœ ๋„๊ตฌ

Jest๋Š” JavaScript ํ…Œ์ŠคํŠธ ๋Ÿฌ๋„ˆ์ž…๋‹ˆ๋‹ค. DOM์— ์ ‘๊ทผํ•˜๊ฒŒ ํ•˜๋Š” jsdom์„ ํ†ตํ•ด์„œ jsdom์€ ๋‹จ์ง€ ์–ด๋–ป๊ฒŒ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ž‘๋™ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ๋Œ€๋žต์  ๊ฐœ์š”์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Š” ์ข…์ข… React ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ…Œ์ŠคํŒ… ํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. Jest๋Š” mocking modules๊ณผ timers ๊ฐ™์€ ํŒŒ์›Œํ’€ํ•œ ํŠน์ง•๊ณผ ๊ฒฐํ•ฉ๋˜์–ด ํ›Œ๋ฅญํ•œ ๋ฐ˜๋ณต์†๋„๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋” ๋งŽ์€ ์ฝ”๋“œ ์ œ์–ด๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

React Testing Library๋Š” ์‹คํ–‰ ๋””ํ…Œ์ผ์„ ๊ฐ€์ง€์ง€ ์•Š๋Š” React ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ฒŒ ํ•˜๋Š” ๋„๊ตฌ ๋ชจ์Œ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ ‘๊ทผ์€ ๋ฆฌํŒฉํ† ๋ง์„ ์ˆ˜์›”ํ•˜๊ฒŒ ํ•˜๋ฉฐ ์ ‘๊ทผ์„ฑ์— ๋Œ€ํ•œ ๊ฐ€์žฅ ์ข‹์€ ์—ฐ์Šต์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์ž์‹ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฐ€์ง€์ง€ ์•Š๋Š” ์ปดํฌ๋„ŒํŠธ์— ๋Œ€ํ•œ ์–•์€ ๋ Œ๋”๋ง ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜์ง€ ์•Š๋”๋ผ๋„ Jest์™€ ๊ฐ™์€ ํ…Œ์ŠคํŠธ ๋Ÿฌ๋„ˆ๋Š” mocking์— ์˜ํ•ด ์œ„๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

๋” ํ•™์Šตํ•˜๊ธฐ

๋‘ ๊ฐœ์˜ ํŽ˜์ด์ง€๋กœ ๋‚˜๋‰˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • Recipes: React ์ปดํฌ๋„ŒํŠธ์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ํ”ํ•œ ํŒจํ„ด
  • Environments: React ์ปดํฌ๋„ŒํŠธ์— ๋Œ€ํ•œ ํ…Œ์ŠคํŒ… ํ™˜๊ฒฝ์„ ์„ค์ •ํ•  ๋•Œ ๊ณ ๋ คํ•ด์•ผ ํ•  ๊ฒƒ
Is this page useful?Edit this page