Jest: Jest๋Š” ๋ชจ๋“  Windows ์‹œ์Šคํ…œ (Windows 10 ์ดํ•˜)์—์„œ 3 ๋ฐฐ ๋Š๋ฆฝ๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2019๋…„ 01์›” 15์ผ  ยท  76์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: facebook/jest

๐Ÿ› ๋ฒ„๊ทธ ๋ณด๊ณ ์„œ

Jest๋Š” Windows ์‹œ์Šคํ…œ์—์„œ ๋Š๋ฆฝ๋‹ˆ๋‹ค.

์žฌํ˜„ํ•˜๋ ค๋ฉด

Windows ๋ฐ์Šคํฌํ†ฑ ์ปดํ“จํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ.

์˜ˆ์ƒ๋˜๋Š” ํ–‰๋™

๋ฒˆ๊ฐœ์ฒ˜๋Ÿผ ๋นจ๋ผ์•ผํ•ฉ๋‹ˆ๋‹ค.

npx envinfo --preset jest

์—ฌ๊ธฐ์— ๊ฒฐ๊ณผ๋ฅผ ๋ถ™์—ฌ ๋„ฃ์œผ์‹ญ์‹œ์˜ค.

  System:
    OS: Windows 10
    CPU: (4) x64 Intel(R) Core(TM) i5-7400 CPU @ 3.00GHz
  Binaries:
    npm: 6.2.0 - C:\Program Files\nodejs\npm.CMD

๋‚˜๋Š” ๋งŽ์€ ๊ฒƒ์„ ์ฝ์—ˆ๊ณ  ๋ชจ๋“  Windows ์‚ฌ์šฉ์ž์˜ 100 %๊ฐ€ ๋†๋‹ด์œผ๋กœ ํ…Œ์ŠคํŠธ ์‹คํ–‰์„ ์ง€์—ฐ์‹œํ‚ค๋Š” ์˜ํ–ฅ์„๋ฐ›๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ๋ชจ๋“  Mac ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ์—„์ฒญ๋‚˜๊ฒŒ ๋น ๋ฆ…๋‹ˆ๋‹ค.

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

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ €๋Š” ์ƒˆ๋กœ์šด MacBook Pro๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. MacOS์™€ Windows 10์„ ๋ชจ๋‘ ์‚ฌ์šฉํ•˜๋Š” ํ•™์ƒ์ด ์žˆ์œผ๋ฏ€๋กœ ๋“œ๋ผ์ด๋ธŒ์— ํŒŒํ‹ฐ์…˜์„ ๋‘ ๊ฐœ ๋” ์ถ”๊ฐ€ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜๋Š” Windows 10 ์šฉ์ด๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” Tuxera NTFS๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ณต์œ  ์Šคํ† ๋ฆฌ์ง€ ์šฉ์ž…๋‹ˆ๋‹ค.

์ €๋Š” ์˜ค๋Š˜ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•ฉํ•˜๋Š” JavaScript ๊ฐ•์˜๋ฅผ ์ค€๋น„ํ•˜๋ฉด์„œ์ด ์†๋„ ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ MacOS์—์„œ Jest๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์ง€๋งŒ ์ฝ”๋“œ์™€ ํ…Œ์ŠคํŠธ๋Š” ๊ณต์œ  NTFS ํŒŒํ‹ฐ์…˜์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์ œํ’ˆ๊ตฐ์ด describe.skip ๋กœ ํ‘œ์‹œ๋œ ๊ฒฝ์šฐ์—๋„ Jest๋Š” ๋‹จ์ผ ์‹คํ–‰ ๋ชจ๋“œ์™€ ๊ฐ์‹œ ๋ชจ๋“œ ๋ชจ๋‘์—์„œ ์™„๋ฃŒํ•˜๋Š” ๋ฐ 10 ์ดˆ ์ด์ƒ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

8 ๊ฐœ ์Šค์œ„ํŠธ
42 ํšŒ ํ…Œ์ŠคํŠธ

jest ๋ฅผ mocha ์™€ chai ๋ฐ”๊พธ์—ˆ๊ณ  ์‹คํ–‰์€ ์•ฝ 1 ์ดˆ ๋‹จ์ผ ๋ฐ 10 ๋ฐ€๋ฆฌ ์ดˆ ์‹œ๊ณ„ ๋ชจ๋“œ๋กœ ๋Œ์•„ ์™”์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  76 ๋Œ“๊ธ€

๊ด€๋ จ : # 6783

์‹œ์ž‘ ์†๋„๊ฐ€ ๋Š๋ฆฐ๊ฐ€์š”? ์•„๋‹ˆ๋ฉด ์‹œ๊ณ„ ๋ชจ๋“œ์ธ๊ฐ€์š”? ์‹œ์ž‘ํ•˜๋Š” ๋™์•ˆ watchman ์„ค์น˜๋ฅผ ์‹œ๋„ํ•˜๋ฉด ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค (https://facebook.github.io/watchman/docs/install.html).

ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ๋ถ€ํ„ฐ๋Š” ๊ดœ์ฐฎ์•„ ๋ณด์ž…๋‹ˆ๋‹ค. (ํŽธ์ง‘ : ์‹ค์ œ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ๋„ ๋Š๋ฆฝ๋‹ˆ๋‹ค. 0.5 ์ดˆ์˜ ์†๋„๋กœ ํ•˜๋‚˜์”ฉ ํ†ต๊ณผํ•˜๋Š” ๋ฐ˜๋ฉด ํ‘œ์ค€์€ 0.05์ฒ˜๋Ÿผ ๋Š๊ปด์ง‘๋‹ˆ๋‹ค.
ํ…Œ์ŠคํŠธ ๋‹น ์ดˆ)
๊ทธ๋Ÿฌ๋‚˜ ์‹œ์ž‘ ๋ฐ / ๋˜๋Š” ๋†๋‹ด ํ…Œ์ŠคํŠธ ์‹œ์ž‘์‹œ ๋Š๋ฆฝ๋‹ˆ๋‹ค (์•ฝ 4 ~ 6 ์ดˆ ์ง€์—ฐ, Mac ์ปดํ“จํ„ฐ๋ณด๋‹ค 4 ~ 6 ๋ฐฐ ๋Š๋ฆผ).

๋‚˜๋Š” ํŒŒ์ˆ˜๊พผ์„ ์‹œ๋„ํ•˜๊ณ  ๋‹น์‹ ์—๊ฒŒ ๋Œ์•„๊ฐˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค

์˜ˆ๋ฅผ ๋“ค์–ด ndb ์Šคํƒ€ํŠธ ์—…์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœํ•„์„ ์ž‘์„ฑํ•˜๊ณ  ๋Š๋ฆฐ ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ๋‹ค๋ฉด ํฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค ๐Ÿ™‚

ํŒŒ์ˆ˜๊พผ์ด ์„ค์น˜๋œ ๊ฒฝ์šฐ์—๋„ ์ง€์—ฐ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋Š๋ฆฝ๋‹ˆ๋‹ค.
ndb์—์„œ "jest --verbose"๋ฅผ ์‹คํ–‰ํ•˜๋Š” ํ”„๋กœํŒŒ์ผ ๋ง ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ฒ˜์Œ 1.7 ์ดˆ์˜ ์Šคํฌ๋ฆฐ ์ƒท :

first_1 7secs

1.8 ์ดˆ ~ 2.7 ์ดˆ ์Šคํฌ๋ฆฐ ์ƒท

image

๊ธฐ๋ก ํ›„ ndb์˜ ํ”„๋กœํ•„ ํƒญ์—์„œ ์ €์žฅ๋œ .json ํŒŒ์ผ ๋ฐ .heapsnapshot ํŒŒ์ผ :

profiling.zip

@pfftdammitchris ๋Š๋ฆฌ๋‹ค ๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋œ [์ •ํ™•ํ•œ] ์‚ฌ์šฉ
(ํ•˜๋‚˜์˜ ํŒŒ์ผ ๋˜๋Š” ์—ฌ๋Ÿฌ ํŒŒ์ผ)? (์‹œ๊ณ„ ๋ชจ๋“œ ๋˜๋Š” ์•„๋‹ˆ์˜ค)? ์˜ˆ์ œ๋ฅผ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
ํ•˜๋‚˜์˜ ํŒŒ์ผ ๊ฐ์‹œ ๋ชจ๋“œ ๋ฌธ์ œ => # 6783์˜ ๋งˆ์ง€๋ง‰ ๋Œ“๊ธ€์„ ์ฝ์œผ์‹ญ์‹œ์˜ค.

๊ฐ์‹œ ๋ชจ๋“œ์˜ ์œ ๋ฌด์— ๊ด€๊ณ„์—†์ด ๋‹จ์ผ ๋ฐ ๋‹ค์ค‘ ํŒŒ์ผ ๋ชจ๋‘ ๋Š๋ฆฝ๋‹ˆ๋‹ค. ๊ฑฐ์˜ ๋ชจ๋“  ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ๋งˆ๋‹ค ํ…Œ์ŠคํŠธ ์ดˆ๊ธฐํ™”์— 3 ์ดˆ ์ด์ƒ์˜ ์ง€์—ฐ์ด ์žˆ์œผ๋ฉฐ, ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๋‚˜์”ฉ ์‹คํ–‰ํ•˜๋Š” ์†๋„๊ฐ€ 0.3 ์ดˆ โ€‹โ€‹๋˜๋Š” 0.4 ์ดˆ ๋˜๋Š” 0.5 ์ดˆ ๋Š๋ฆฌ์ง€ ๋งŒ mocha / chai์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ํ…Œ์ŠคํŠธ ์‹คํ–‰์ž๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๊ฐ๊ฐ 0.05 ์ดˆ์ฒ˜๋Ÿผ ๋Š๊ปด์ง‘๋‹ˆ๋‹ค.

๋‚˜๋Š” codesandbox์—์„œ jest๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ดˆ๊ธฐํ™” / ์‹คํ–‰ ํ…Œ์ŠคํŠธ์—์„œ ์ฆ‰์‹œ jest๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋ฉฐ ๋™๋ฃŒ๋“ค์ด Mac ์ปดํ“จํ„ฐ์—์„œ ๋†๋‹ด์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์„ ๋ณด์•˜๊ณ  ํ‰์†Œ์ฒ˜๋Ÿผ ์ฆ‰์‹œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์•„๋Š” ํ•œ ๊ทธ๊ฒƒ์€ ๋‹จ์ง€ Windows ๊ธฐ๊ณ„์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ง์žฅ์—์„œ Windows ๊ธฐ๊ณ„๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๋†๋‹ด์ด ๋Š๋ฆฐ ๋ฌธ์ œ๋ฅผ ๊ฒช๊ณ  ์žˆ์œผ๋ฉฐ ์ง‘์—์„œ๋„ Windows ๊ธฐ๊ณ„๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๋ฌธ์ œ๋Š” ์—ฌ๊ธฐ์—์„œ ๊ณ„์†๋ฉ๋‹ˆ๋‹ค.

--runInBand๋ฅผ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ ๋Š๋‚Œ์— ๋”ฐ๋ผ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์†๋„๊ฐ€ ๊ฐ๊ฐ 0.2 ์ดˆ์”ฉ ๋” ๋Š๋ ค์ง„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์„ค๋ช…

--runInBand๋ฅผ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ ๋Š๋‚Œ์— ๋”ฐ๋ผ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์†๋„๊ฐ€ ๊ฐ๊ฐ 0.2 ์ดˆ์”ฉ ๋” ๋Š๋ ค์ง„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

=> v24๋กœ ์‹œ๋„ํ•˜์…จ์Šต๋‹ˆ๊นŒ? v23์—์„œ v24๋กœ์ด ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ๋งŒ ์ข‹์€ ๊ฐœ์„  ์‚ฌํ•ญ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
_ rerun ์—์„œ watch ๋ฐ ํ•œ ํŒŒ์ผ์— ๋Œ€ํ•ด ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ (์ฒซ ์‹คํ–‰ ์‹œ๊ฐ€ ์•„๋‹˜) _
-> 2/3 ์ดˆ๊ฐ€ 0.4 / 0.5 ์ดˆ๋กœ ๋–จ์–ด์ง‘๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ Mac์— ๋น„ํ•ด ์‹œ๋„ํ•œ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค ... ๊ทธ๋ž˜์„œ ์–ด์ฉŒ๋ฉด ๊ทธ๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋‚˜์ฉ๋‹ˆ๋‹ค ... ํ˜„์žฌ์˜ ๊ฐœ์„ ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ 


๋ฟก๋ฟก

  1. ๋ชจ๋“  ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋Œ€ํ•ด Windows์—์„œ https://github.com/facebook/jest/issues/7110 ์„ Jest ์†๋„ ํšŒ๊ท€ [v22 ๋Œ€ v23]๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค.
    # 6783์€ ๊ทธ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

2.์ด ๋ฌธ์ œ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ฌธ์ œ ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋Œ€ํ•œ ๋†๋‹ด ์†๋„ ๋ฌธ์ œ [Mac ๋Œ€ Windows].

๋ชจ๋‘๋“ค ์•ˆ๋…• !
๋‚˜๋Š” jest 24์™€ windows 10์˜ ๋Š๋ฆฐ ์†๋„๋ฅผ ๋ˆ„์ ํ•ฉ๋‹ˆ๋‹ค (400 ๊ฐœ์˜ ํ…Œ์ŠคํŠธ์— 800 ์ดˆ!). ์ด ๋ชจ๋“  ์†๋„๋ฅผ ๋†’์ด๋Š” ๊ฐ€์žฅ ๋น ๋ฅธ ๋ฐฉ๋ฒ•์€ powershell ๋˜๋Š” cmd ๋Œ€์‹  wsl์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด์ œ ๋‚ด ํ…Œ์ŠคํŠธ๋Š” "๋‹จ์ง€"189 ์ดˆ๊ฐ€ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

Windows 10 ๋นŒ๋“œ 15063 ์‹œ์Šคํ…œ, Core i7 (16GB)์—์„œ ์‹คํ–‰ํ•˜๋Š” ๋ฐ 1 ๋ถ„ 43 ์ดˆ๊ฐ€ ๊ฑธ๋ฆฌ๋Š” 1302 ๊ฐœ์˜ ํ…Œ์ŠคํŠธ๊ฐ€ ํฌํ•จ ๋œ 144 ๊ฐœ์˜ ํ…Œ์ŠคํŠธ ํŒŒ์ผ ๋ชจ์Œ์ด ์žˆ์œผ๋ฉฐ 32GB์˜ MAC OS Mojave์—์„œ๋Š” 28 ์ดˆ๊ฐ€ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ๊ฐœ๋ฐœ ํŒ€์€ Windows์™€ Mac๊ฐ„์— ๊ท ๋“ฑํ•˜๊ฒŒ ๋ถ„ํ• ๋˜์–ด ์žˆ์œผ๋ฉฐ ๊ทธ ์ˆซ์ž๋Š” ๋งค์šฐ ๋ฐ˜๋ณต์ ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ์ž…๋‹ˆ๋‹ค.

it("works", () => {
  expect(1).toEqual(1);
});

๋‚ด๊ฐ€ codesandbox์— ๋„ฃ์–ดํ•˜๊ณ  ์ฆ‰์‹œ ๊ฝค ๋งŽ์ด ์‹คํ–‰ - https://codesandbox.io/s/4q8l0q52lw

๋‚ด Windows ์ปดํ“จํ„ฐ์—์„œ๋Š” 4-5 ์ดˆ๊ฐ€ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

PASS src / index.test.js
v ์ž‘๋™ (62ms)

ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ : 1 ๊ฐœ ํ†ต๊ณผ, ์ด 1 ๊ฐœ
ํ…Œ์ŠคํŠธ : 1 ๊ฐœ ํ†ต๊ณผ, 1 ๊ฐœ ์ด
์Šค๋ƒ… ์ƒท : ์ด 0 ๊ฐœ
์‹œ๊ฐ„ : 4.158 ์ดˆ
๋ชจ๋“  ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ๋ฅผ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ์ž์ฒด๋Š” 62ms๊ฐ€ ๊ฑธ๋ ธ์ง€ ๋งŒ ๋‚˜๋จธ์ง€ ํ…Œ์ŠคํŠธ ์žฅ์น˜๋Š” 4 ์ดˆ๊ฐ€ ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค. Enter ํ‚ค๋ฅผ ๋ˆŒ๋Ÿฌ ํ…Œ์ŠคํŠธ๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋ฉด ๋™์ผํ•œ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

๋‚ด ์„ค์ •-

> npx envinfo --preset jest

  System:
    OS: Windows 10
    CPU: (4) x64 Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz
  Binaries:
    Node: 8.12.0 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.10.1 - C:\Program Files (x86)\Yarn\bin\yarn.CMD
    npm: 6.4.1 - C:\Program Files\nodejs\npm.CMD

WSL Ubuntu๋กœ ์‹œ๋„ํ•ด ๋ณด์•˜๊ณ  ๋™์ผํ•œ ๊ฒฐ๊ณผ (4-5 ์ดˆ)๋ฅผ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค-ํ•ด๋‹น ์„ค์ •-

  System:
    OS: Linux 4.4 Ubuntu 18.04.2 LTS (Bionic Beaver)
    CPU: (4) x64 Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz
  Binaries:
    Node: 8.10.0 - /usr/bin/node
    npm: 3.5.2 - /usr/bin/npm

์ €๋Š” Jest๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ์ค‘์ด๋ฏ€๋กœ ๋งค์šฐ ๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ๋ฐ 15-20 ์ดˆ๊ฐ€ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๋“ค์ด ๋นจ๋ฆฌ ๋‹ฌ๋ฆฌ๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ƒ๊ฐ์˜ ๊ธฐ์ฐจ๋ฅผ ์žƒ๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค!

@bburns ๋Š” ์œ„์˜ ๋ฌธ์ œ๋ฅผ ์ฝ์—ˆ์Šต๋‹ˆ๋‹ค.


ํ—‰ํ—‰
์‹ค ํ•ด์ƒ๋„์—์„œ micromatch 4๋กœ ์‹œ๋„ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์ฐฝ๋ฌธ์—์„œ ๋” ๋‚˜์€์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
https://github.com/facebook/jest/issues/7963#issuecomment -483985345

์ €๋Š” ์ƒˆ๋กœ์šด MacBook Pro๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. MacOS์™€ Windows 10์„ ๋ชจ๋‘ ์‚ฌ์šฉํ•˜๋Š” ํ•™์ƒ์ด ์žˆ์œผ๋ฏ€๋กœ ๋“œ๋ผ์ด๋ธŒ์— ํŒŒํ‹ฐ์…˜์„ ๋‘ ๊ฐœ ๋” ์ถ”๊ฐ€ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜๋Š” Windows 10 ์šฉ์ด๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” Tuxera NTFS๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ณต์œ  ์Šคํ† ๋ฆฌ์ง€ ์šฉ์ž…๋‹ˆ๋‹ค.

์ €๋Š” ์˜ค๋Š˜ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•ฉํ•˜๋Š” JavaScript ๊ฐ•์˜๋ฅผ ์ค€๋น„ํ•˜๋ฉด์„œ์ด ์†๋„ ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ MacOS์—์„œ Jest๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์ง€๋งŒ ์ฝ”๋“œ์™€ ํ…Œ์ŠคํŠธ๋Š” ๊ณต์œ  NTFS ํŒŒํ‹ฐ์…˜์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์ œํ’ˆ๊ตฐ์ด describe.skip ๋กœ ํ‘œ์‹œ๋œ ๊ฒฝ์šฐ์—๋„ Jest๋Š” ๋‹จ์ผ ์‹คํ–‰ ๋ชจ๋“œ์™€ ๊ฐ์‹œ ๋ชจ๋“œ ๋ชจ๋‘์—์„œ ์™„๋ฃŒํ•˜๋Š” ๋ฐ 10 ์ดˆ ์ด์ƒ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

8 ๊ฐœ ์Šค์œ„ํŠธ
42 ํšŒ ํ…Œ์ŠคํŠธ

jest ๋ฅผ mocha ์™€ chai ๋ฐ”๊พธ์—ˆ๊ณ  ์‹คํ–‰์€ ์•ฝ 1 ์ดˆ ๋‹จ์ผ ๋ฐ 10 ๋ฐ€๋ฆฌ ์ดˆ ์‹œ๊ณ„ ๋ชจ๋“œ๋กœ ๋Œ์•„ ์™”์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋†๋‹ด์„ mocha์™€ chai๋กœ ๋ฐ”๊พธ๊ณ  ์•ฝ 1 ์ดˆ์˜ ์‹ฑ๊ธ€๊ณผ 10 ๋ฐ€๋ฆฌ ์ดˆ์˜ ์‹œ๊ณ„ ๋ชจ๋“œ๋กœ ๋Œ์•„์™”๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹น์‹ ์€ ๋‚ด ๋งˆ์ง€๋ง‰ ๊ฒŒ์‹œ๋ฌผ์„ ์ฝ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์€ mocha/chai ๋ฅผ ํ™๋ณดํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค ... ์šฐ๋ฆฌ ๋ชจ๋‘๋Š” ์ด๊ฒƒ์— ๋Œ€ํ•ด ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค ... ์šฐ๋ฆฌ๋Š” ๋†๋‹ด์˜ ํšŒ๊ท€๋ฅผ ์ˆ˜์ •ํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. [๋‚ด ๊ฒŒ์‹œ๋ฌผ์—์„œ] ...can you try with micromatch 4... ์ด ์ž‘์—…์„ ๋•๊ฑฐ๋‚˜ ์“ธ๋ชจ์—†๋Š” ๋Œ“๊ธ€์„ ์Šค๋ ˆ๋“œ์—์„œ ์ œ์™ธ ์‹œํ‚ค์‹ญ์‹œ์˜ค. ์ง์ ‘์ ์œผ๋กœ ๋ฏธ์•ˆํ•˜์ง€๋งŒ ์–ธ์  ๊ฐ€๋Š” ๊ทธ๊ฒƒ์„ ๋งํ•  ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค.

@nasreddineskandrani ๋‚˜๋Š” ์‹œ๋„ํ•˜๊ณ  [email protected]์„ ํ•˜์ง€๋งŒ, ์–ด๋–ค ๋„์›€์ด ๋งŽ์ด ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค ๊ฐ์‹œ ๋ชจ๋“œ๋กœ ์‹คํ–‰ํ•  ๋•Œ ๋‚œ ์—ฌ์ „ํžˆ ๋งค์šฐ ๋Š๋ฆฌ๊ฒŒ ์‹คํ–‰์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@pachumon ์ˆ˜์ • ์‚ฌํ•ญ์€ ๋‚ด๊ฐ€ ์ดํ•ดํ•˜๋Š” ํ•œ 24.8.0์— ์—†์Šต๋‹ˆ๋‹ค.

์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ํŠน์ • ๋ฒ„์ „์— ๋Œ€ํ•œ jest ์ข…์†์„ฑ ํ•˜๋‚˜๋ฅผ ์„ค์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค (์ด๋ก ์ ์œผ๋กœ) ์ˆ˜์ • ์‚ฌํ•ญ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ jest 25 => ๊ฐœ๋ฐœ์ž๊ฐ€ https://github.com/์„ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ธฐ ์œ„ํ•ด ์—ฌ๊ธฐ์—์„œ ์ฝ์„ ์ˆ˜

์ข…์†์„ฑ (๋งˆ์ดํฌ๋กœ ๋งค์น˜)์„ ์ˆ˜์ •์ด ์™„๋ฃŒ๋œ ๋ฒ„์ „์œผ๋กœ ์„ค์ •ํ•˜๋ ค๋ฉด => ์—ฌ๊ธฐ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž‘์€ ํ”„๋กœ์ ํŠธ์—์„œ ์˜ˆ์ œ๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.
https://github.com/nasreddineskandrani/benchmark_jest/blob/master/jest_24_with_micromatch4/package.json

package.json ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค : ( yarn ์•„๋‹ˆ๋ผ npm yarn ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค)

...
  "resolutions": {
    "micromatch": "^4.0.0"
  }
...

๋„์›€์ด ๋˜์—ˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค! ๊ทธ๋ฆฌ๊ณ  ํ”ผ๋“œ๋ฐฑ์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ 

๋‚ด ํ…Œ์ŠคํŠธ ์‹คํ–‰ ์‹œ๊ฐ„๋„ 23.6.0์˜ 2.5 ๋ถ„์—์„œ 24.7.1 ๋ฐ 24.8.0์˜ 15 ๋ถ„์œผ๋กœ ๋Š˜์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค. CI ์„œ๋ฒ„๋Š” ์œˆ๋„์šฐ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ์ด ์—…๊ทธ๋ ˆ์ด๋“œ๋กœ ๋นŒ๋“œ ์‹œ๊ฐ„์ด ๋น„์Šทํ•˜๊ฒŒ ํฌ๊ฒŒ ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. @nasreddineskandrani ๊ฐ€ ์œ„์— ์–ธ๊ธ‰ ํ•œ๋Œ€๋กœ micromatch ์ข…์†์„ฑ ํ•ด๊ฒฐ ์žฌ์ •์˜๋ฅผ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์•„๋ฌด ์†Œ์šฉ์ด ์—†์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ์ง„๋‹จํ•˜๋Š” ๋ฐ ๋„์›€์ด ํ•„์š”ํ•˜๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”.

@TomMahle ์ด๊ฒƒ์€ ๋งค์šฐ ๋‚˜์œ newz์ž…๋‹ˆ๋‹ค :( (์šฐ๋ฆฌ๊ฐ€ ์ด์•ผ๊ธฐํ•˜๊ณ ์žˆ๋Š” ํšŒ๊ท€๋Š” ์ด๋ฏธ 23.6์—์žˆ์—ˆ์Šต๋‹ˆ๋‹ค)
์ง€๊ธˆ์€ ๊ฐ„๋‹จํ•œ '์ƒ˜ํ”Œ'ํ”„๋กœ์ ํŠธ๊ฐ€ ์ข‹์€ ์„ฑ๋Šฅ์„ ๋ณด์—ฌ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ดํฌ๋กœ ๋งค์น˜ ์—…๋ฐ์ดํŠธ ํ›„.
๋””๋ฒ„๊น… ํ•  ์‹ค์ œ ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ํ”„๋กœ์ ํŠธ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๊ฐ€ ๋น„๊ณต๊ฐœ์ž…๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ๊ณต๊ฐœ?

micromatch @nasreddineskandrani ์— ๋Œ€ํ•œ ์ œ์•ˆ์— ๊ฐ์‚ฌํ•˜์ง€๋งŒ ์œ„์˜ @TomMahle ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ^4.0.0 ๊ณ ์ •ํ•ด๋„ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๐Ÿ˜ข

ํ•˜์ง€๋งŒ์ด ๋ฌธ์ œ๋ฅผ ์ง„๋‹จํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜์žˆ๋Š” ํ•œ ๊ฐ€์ง€ ํŽ‘ํ‚ค ํ•œ ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด Windows ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ ๋งˆ์šดํŠธ ๋œ ๊ธฐ๋ณธ ์•ฑ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€์žˆ๋Š” ๋„์ปค ์ปจํ…Œ์ด๋„ˆ์—์„œ ๊ธฐ๋ณธ Windows ์‹œ์Šคํ…œ์—์„œ jest๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„๊ฐ์‹œ ๋ชจ๋“œ์—์„œ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์€ ๋‘ ์‹œ์Šคํ…œ์—์„œ ๊ฑฐ์˜ ๋™์ผํ•œ ๋™์ž‘์„ ๋ณด์ด๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ฆฌ๋ˆ…์Šค VM.

๊ทธ๋Ÿฌ๋‚˜ watch ๋ชจ๋“œ์—์„œ๋Š” ์ƒํ™ฉ์ด ์•ฝ๊ฐ„ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์ฐฝ์€ ํ•ญ์ƒ ์˜ˆ์ƒ๋Œ€๋กœ ๋Š๋ฆฌ๊ฒŒ ์ž‘๋™ํ•˜์ง€๋งŒ docker ์ปจํ…Œ์ด๋„ˆ ๋Š” ์ฒ˜์Œ ์‹คํ–‰ํ•  ๋•Œ๋งŒ ๋Š๋ฆฌ๊ฒŒ ํ…Œ์ŠคํŠธ๋ฅผ p ๋ฅผ ๋ˆ„๋ฅด๊ณ  ํŒจํ„ด์„ ์ž…๋ ฅํ•˜์—ฌ) 1 ์ดˆ ์ด๋‚ด์— ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค (๊ธฐ๋ณธ ์ฐฝ์—์„œ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ 3-4 ์ดˆ๊ฐ€ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค). ๋„์ปค ์‚ฌ์šฉ์˜ ์œ ์ผํ•œ ๋‹จ์ ์€ ํŒŒ์ผ ๋ณ€๊ฒฝ ์ด๋ฒคํŠธ๊ฐ€ ๋‚ด Windows ๋ณผ๋ฅจ์—์„œ ๋„์ปค๋กœ ์ „ํŒŒ๋˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์œผ๋ฏ€๋กœ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ๋Œ€์‹  Enter ํ‚ค ๋ฅผ ๋ˆŒ๋Ÿฌ ํ…Œ์ŠคํŠธ๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹น๋ฉดํ•œ ๋ฌธ์ œ์™€ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”. ๋ถˆํ–‰ํžˆ๋„ ๋‚ด ํ”„๋กœ์ ํŠธ๋Š” ๋น„๊ณต๊ฐœ์ž…๋‹ˆ๋‹ค. ๋” ์ž‘์€ ์ฝ”๋“œ ์ƒ˜ํ”Œ (Jest config?)์ด ์žˆ๊ฑฐ๋‚˜ ํ†ต๊ณ„๋ฅผ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ธฐ๊บผ์ด ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ํ…Œ์ŠคํŠธ๋Š” (์œˆ๋„์šฐ์—์„œ๋งŒ) ๊ทน์ ์œผ๋กœ ๋Š๋ฆฐ ๊ฒƒ ๊ฐ™์•„์„œ ํŠน์ • ํ…Œ์ŠคํŠธ์™€ ๊ด€๋ จ์ด ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋‚ด ๊ฐœ์ธ ์›น ์‚ฌ์ดํŠธ๋ฅผ ์œ„ํ•ดํ•˜๊ณ ์žˆ๋Š” ๋„์ปค ์ž‘์—…์„ ๋งˆ๋ฌด๋ฆฌํ•˜๊ณ ์žˆ๋‹ค-> (1 ์ฃผ์ผ ํ›„์—) ๋‚˜๋Š” ์ด๊ฒƒ์— ๋Œ€ํ•ด ๋‹ค์‹œ ์˜ฌ ๊ฒƒ์ด๋‹ค.

๋ฟก๋ฟก
๋‚˜๋Š” ๋‹น์‹ ์ด ์„ค๋ช…ํ•˜๋Š” ๋ฌธ์ œ์™€ ํ•จ๊ป˜ repo github๋ฅผ ๊ฐ–๊ธฐ ์œ„ํ•ด ๋‚ด ํŽธ์„ ์‹œ๋„ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  1. ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๊ฒ€์‚ฌ๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๊นŒ?
  2. ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด dom ๋ชจ๋“œ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?
  3. ๋ฐ˜์‘์ธ๊ฐ€, ๊ฐ๋„์ธ๊ฐ€?
    ๋ณด๋„ˆ์Šค:
  4. ๋””๋ฒ„๊น… ํ•  ์ˆ˜ ์žˆ๋„๋ก github repo์—์„œ ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
    ๋‚ด ํฌํฌ : https://github.com/nasreddineskandrani/benchmark_jest
    ๋˜๋Š”
  5. ํ…Œ์ŠคํŠธ ๋จธ์‹ ์—์„œ ๋‚ด repo๋ฅผ ์‹œ๋„ํ•ด ๋ณผ๊นŒ์š”? ๊ฒฐ๊ณผ๋ฅผ ๋ณด์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? 23.6์—์„œ 24 ์‚ฌ์ด

๋‚˜๋Š” ๋งˆ์ดํฌ๋กœ ๋งค์น˜์˜ ๋ฉ”์ธํ…Œ์ด๋„ˆ๋“ค์—๊ฒŒ ์ถฉ๋ถ„ํžˆ์ฃผ์˜๋ฅผ ๊ธฐ์šธ ์˜€๊ธฐ ๋•Œ๋ฌธ์—์ด ๋ฌธ์ œ๋Š” ์ด๋ฏธ ํ•ด๊ฒฐ ๋œ ๊ฒƒ ๊ฐ™๋‹ค. Windows์—์„œ ๋†๋‹ด ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์€ ํ˜„์žฌ ๋งค์šฐ ๋ถˆ์พŒํ•œ ๊ฒฝํ—˜์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ ์ดํ›„๋กœ mocha / chai๋กœ ์˜ฎ๊ฒผ์ง€๋งŒ์ด ๋ฌธ์ œ๊ฐ€ ์—ฌ์ „ํžˆ ํ•ด๊ฒฐ๋˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์— ๋†€๋ž์Šต๋‹ˆ๋‹ค.

์„ค๋ช…

--runInBand๋ฅผ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ ๋Š๋‚Œ์— ๋”ฐ๋ผ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์†๋„๊ฐ€ ๊ฐ๊ฐ 0.2 ์ดˆ์”ฉ ๋” ๋Š๋ ค์ง„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

=> v24๋กœ ์‹œ๋„ํ•˜์…จ์Šต๋‹ˆ๊นŒ? v23์—์„œ v24๋กœ์ด ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ๋งŒ ์ข‹์€ ๊ฐœ์„  ์‚ฌํ•ญ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
_ rerun ์—์„œ watch ๋ฐ ํ•œ ํŒŒ์ผ์— ๋Œ€ํ•ด ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ (์ฒซ ์‹คํ–‰ ์‹œ๊ฐ€ ์•„๋‹˜) _
-> 2/3 ์ดˆ๊ฐ€ 0.4 / 0.5 ์ดˆ๋กœ ๋–จ์–ด์ง‘๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ Mac์— ๋น„ํ•ด ์‹œ๋„ํ•œ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค ... ๊ทธ๋ž˜์„œ ์–ด์ฉŒ๋ฉด ๊ทธ๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋‚˜์ฉ๋‹ˆ๋‹ค ... ํ˜„์žฌ์˜ ๊ฐœ์„ ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ 

๋ฟก๋ฟก

  1. ๋ชจ๋“  ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋Œ€ํ•ด Windows์—์„œ # 7110์„ Jest ์†๋„ ํšŒ๊ท€ [v22 ๋Œ€ v23]๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค.
    # 6783์€ ๊ทธ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

2.์ด ๋ฌธ์ œ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ฌธ์ œ ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋Œ€ํ•œ ๋†๋‹ด ์†๋„ ๋ฌธ์ œ [Mac ๋Œ€ Windows].

๋‚˜๋Š” ๊ฒŒ์‹œ๋ฌผ ๋‹น์‹œ ๋‘ ๋ฒ„์ „์„ ๋ชจ๋‘ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฐฉ๊ธˆ ๊ฐ„๋‹จํ•œ ๋ฐฐ์—ด ํ‘ธ์‹œ ํ…Œ์ŠคํŠธ๋กœ ํ•˜๋‚˜์˜ ํ…Œ์ŠคํŠธ๋กœ ์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ ์‹œ์ž‘๋ถ€ํ„ฐ ์™„๋ฃŒ๊นŒ์ง€ 10 ์ดˆ ์ด์ƒ ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๋Š” react / typescript๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€๋งŒ ํ…Œ์ŠคํŠธ ํŒŒ์ผ์€ react ์ปดํฌ๋„ŒํŠธ ํŒŒ์ผ์ด ์•„๋‹ˆ๋ผ .js์™€ ๊ฐ™์€ ์ผ๋ฐ˜ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์‹œ๊ฐํ™”ํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚˜์€ ๊ฒฝ์šฐ ์‹œ๊ฐ์  ์ฐธ์กฐ๋ฅผ ์œ„ํ•ด ์•„๋ž˜ GIF๋ฅผ :

1

ํ…Œ์ŠคํŠธ๋ฅผ ์ฒ˜์Œ ์‹คํ–‰ํ•  ๋•Œ ํ…Œ์ŠคํŠธ๊ฐ€ 9 ์ดˆ๋กœ ์ถ”์ •๋˜๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ์™„๋ฃŒ๋˜๋ฉด ์™„๋ฃŒ ๋  ๋•Œ๊นŒ์ง€ ๋‘ ๋ฒˆ์งธ ํ…Œ์ŠคํŠธ๋ฅผ ๋ฌด์ž‘์œ„๋กœ ์žฌ ์‹œ๋„ ํ•ฉ๋‹ˆ๋‹ค.

์œ„์˜ gif ์‚ฌ์ง„์„ ์ฐ์—ˆ์„ ๋•Œ (์ด๋ฒˆ์— ๋‘ ๋ฒˆ์งธ) ์˜ˆ์ƒ ์‹œ๊ฐ„์ด ์•ฝ๊ฐ„ ์ค„์–ด๋“ค์—ˆ๊ณ  ๋‘ ๋ฒˆ์งธ ์žฌ ์‹œ๋„๋ฅผ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ์˜ˆ์ƒ๋˜๋Š” ๋†๋‹ด ํ–‰๋™์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ๋ณ„๋„์˜ ํ”„๋กœ์ ํŠธ์—์„œ yarn์œผ๋กœ micromatch 4๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์ €์˜ gif์ž…๋‹ˆ๋‹ค.

2

Windows 10 ๋ฐ ๋‚ด ์ปดํ“จํ„ฐ ์‚ฌ์–‘์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ :
AMD FX (tm) -8320 8 ์ฝ”์–ด ํ”„๋กœ์„ธ์„œ 3.50GHz
16GB ๋žจ
x64
SSD

์—ฌ๊ธฐ์„œ ์ œ ํ”„๋กœํŒŒ์ผ ๋ง์„ ๊ณต์œ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
๋ช…์„ธ์„œ:

  • Windows 10 Pro
  • ๋…ธ๋“œ 10.15.3
  • ์ธํ…” ์ฝ”์–ด i7-4702MQ 2.2GHz
  • 8GB RAM
  • x64
  • SSD

๋‹จ๊ณ„ :

  1. npx create-react-app my-app --typescript
  2. App.test.tsx
  3. npm test

CPU ํ”„๋กœํ•„ :
image
CPU-20190801T141211.zip

์‚ฌ์†Œํ•œ ๋‹จ์ผ React ๊ตฌ์„ฑ ์š”์†Œ ๋ฐ ํ…Œ์ŠคํŠธ๋ฅผ์œ„ํ•œ ๋ชจ๋“ˆ์„ ์š”์ฒญํ•˜๋Š” ๋ฐ 15 ์ดˆ๋งŒ ์†Œ์š”๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋ฉ๋‹ˆ๊นŒ?

CPU ํ”„๋กœํŒŒ์ผ ๋ง์— ๋Œ€ํ•ด ๋” ๋งŽ์€ ๊ฒฝํ—˜์ด์žˆ๋Š” ์‚ฌ๋žŒ์ด ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

112 ํšŒ
์œˆ๋„์šฐ 10
์ฒซ ์‹คํ–‰ 507 ์ดˆ
๋‘ ๋ฒˆ์งธ ์‹คํ–‰ 23 ์ดˆ
๋ฆฌ๋ˆ…์Šค ์„œ๋ธŒ ์‹œ์Šคํ…œ
54 ์ดˆ์˜ ํ”„๋ฆฌ์ŠคํŠธ ๋Ÿฐ
๋‘ ๋ฒˆ์งธ ์‹คํ–‰ 29 ์ดˆ

85 ๋ฒˆ์˜ ํ…Œ์ŠคํŠธ
์œˆ๋„์šฐ 10
์ฒซ ์‹คํ–‰ 44 ์ดˆ
๋‘ ๋ฒˆ์งธ ์‹คํ–‰ 15 ์ดˆ
๋ฆฌ๋ˆ…์Šค ์„œ๋ธŒ ์‹œ์Šคํ…œ
์ฒซ ์‹คํ–‰ 26 ์ดˆ
๋‘ ๋ฒˆ์งธ ์‹คํ–‰ 15 ์ดˆ

Kepro์ด ๊ฒฐ๊ณผ๋Š” micromatch 4์™€ ํ•จ๊ป˜ ์žˆ์Šต๋‹ˆ๊นŒ?


์—ฌ๊ธฐ์— 1 ๋ฐฑ๋งŒ ๊ฐœ์˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๋Š” ๊ฒƒ๋ณด๋‹ค ์ง์ ‘ ์ฑ„ํŒ…์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ์ฃผ์ œ์™€ ๊ด€๋ จ๋œ ๋ชจ๋“  ๋ฌธ์ œ๋ฅผ ๋”ฐ๋ผ๊ฐ€๋Š” ๊ฒƒ์ด ์ •๋ง ์ง€์˜ฅ์ด๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์—ฌ๊ธฐ์—์„œ ๊ฐ€์ž… ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://gitter.im/wearefrontend/jest-slow-windows
์ง€๊ธˆํ•˜๊ณ  ์žˆ์–ด์š” ...

Gitter๋Š” ๋‚ด ํšŒ์‚ฌ VPN์„ ํ†ตํ•ด ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค. ์‚ฌ๋ž‘์Šค๋Ÿฌ์šด ์‚ฌ๋žŒ๋“ค์ด ์—ฌ๊ธฐ์— ์˜๋ฏธ์žˆ๋Š” ์—…๋ฐ์ดํŠธ๋ฅผ ๊ฒŒ์‹œ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋†€๋ผ์šด ์ผ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. <3

์—ฌ์ „ํžˆ ์ง‘์—์„œ ์—ฐ๊ฒฐํ•˜์—ฌ ์˜คํ”ˆ ์†Œ์Šค๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ถ”์‹  dota ๊ฒŒ์ž„์€ ๋Œ€๊ธฐ์—ด์— ๋” ๋งŽ์€ ์‹œ๊ฐ„์ด ์†Œ์š”๋ฉ๋‹ˆ๋‹ค. ์ด์ œ gitter๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)
ํ˜„์žฌ ์œ„์น˜ : nodejs / node # 28946

ํŠธ์œ— ๋‹ด์•„ ๊ฐ€๊ธฐ ๋‚˜๋Š” ์ƒˆ๋กœ์šด ๋งฅ๋ถ์„ ์ฃผ๋ฌธ ํ–ˆ์œผ๋ฏ€๋กœ ๊ทธ๊ฒƒ์ด ๋„์ฐฉํ•  ๋•Œ๊นŒ์ง€ ์˜คํ”ˆ ์†Œ์Šค ์ž‘์—…์—์„œ ๋ฒ—์–ด๋‚  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์—ฌ๊ฐ€ ์‹œ๊ฐ„์— ๋‚ด ์—‰๋šฑํ•œ Windows ์ƒ์ž์—์„œ ์‹ค์ œ๋กœ ์ž‘์—…ํ•˜๋Š” ๊ฒƒ์„ ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ๊ฐ€ ๋…ธ๋“œ / C ++ ์˜์—ญ์œผ๋กœ ์ด๋™ ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.์ด ์˜์—ญ์€ ๋‚ด ์•ˆ์ „ ์ง€๋Œ€๋ฅผ ์•ฝ๊ฐ„ ๋ฒ—์–ด๋‚œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” ์ด๊ฒƒ์— ๋Œ€ํ•œ ์†Œ์‹์ด ์žˆ์Šต๋‹ˆ๊นŒ?

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ ์—ฌ๋Ÿฌ ํ…Œ์ŠคํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ --runInBand๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ํ…Œ์ŠคํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋ฐ ์—ฌ์ „ํžˆ ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ์ง€ ๋งŒ ๋‹ค์Œ ํ…Œ์ŠคํŠธ๋Š” ๋น ๋ฆ…๋‹ˆ๋‹ค.

๋‚ด ํ”„๋กœ์ ํŠธ๋Š” ๋ชจ๋“  ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ 21.803 ์ดˆ๊ฐ€ ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค.
์ด์ œ --runInBand๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด 7.412 ์ดˆ๋งŒ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

--runInBand๋Š” ๊ทธ๋ƒฅ ๋” ๋Š๋ฆฌ๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. 1200 ํ…Œ์ŠคํŠธ. runinBand 70/50 ์ดˆ์—†์ด. --runInBand๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‘ ๋ฒˆ์งธ ์‹คํ–‰์—์„œ ๊ธฐ๊ปํ•ด์•ผ 90 ์ดˆ
๋ฆฌ๋ˆ…์Šค์—์„œ๋Š” 5-8 ๋ฐฐ ๋” ๋น ๋ฆ„

๊ทธ๋Ÿฐ ๋‹ค์Œ --maxWorkers = 4๋ฅผ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค.

@ cino893 , ํ•ด๊ฒฐ์ฑ…์ด ์•„๋‹™๋‹ˆ๋‹ค :) ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์•„๋‹Œ ์ˆ˜์ •์„ ์ฐพ์œผ์‹ญ์‹œ์˜ค.

๊ทธ๊ฒƒ์— ๋Œ€ํ•œ ์†Œ์‹์€ ์—†๋‚˜์š”? ๊ทธ ๋ฒ„๊ทธ๋กœ ์ธํ•ด ๋ฒ„์ „ 21์— ์Œ“์˜€์Šต๋‹ˆ๋‹ค. v22๋Š” ๋Š๋ฆฌ๊ณ  v23์€ ๋” ๋Š๋ฆฝ๋‹ˆ๋‹ค.
์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋†’์€ ๋ฒ„๊ทธ๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

๋‚ด๊ฐ€ ์ผํ•˜๋Š” ๊ณณ์—์„œ๋Š” OS๋ฅผ ์„ ํƒํ•˜๊ฑฐ๋‚˜ Windows ๋˜๋Š” ์ด์™€ ์œ ์‚ฌํ•œ ๊ฒƒ์— Ubuntu๋ฅผ ์„ค์น˜ํ•  ์ž์œ ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

@gombek v25 ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์…จ์Šต๋‹ˆ๊นŒ? Jest ํŒ€์€ ์ „๋ฐ˜์ ์œผ๋กœ ์„ฑ๋Šฅ์„ ๋งŽ์ด ๊ฐœ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”,์ด ํ† ๋ก ์— ๋ช‡ ๊ฐ€์ง€ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. Jest๋Š” ํ˜ธ์ŠคํŠธ ์‹œ์Šคํ…œ (Windows)์˜ ๋ณผ๋ฅจ์„ ํ†ตํ•ด ๊ณต์œ  ๋œ ์†Œ์Šค ์ฝ”๋“œ์™€ ํ…Œ์ŠคํŠธ๊ฐ€์žˆ๋Š” Docker ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ์‹คํ–‰๋  ๋•Œ๋„ ๋งค์šฐ ๋Š๋ฆฝ๋‹ˆ๋‹ค.

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

@gombek v25 ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์…จ์Šต๋‹ˆ๊นŒ? Jest ํŒ€์€ ์ „๋ฐ˜์ ์œผ๋กœ ์„ฑ๋Šฅ์„ ๋งŽ์ด ๊ฐœ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค.

Windows์—์„œ Jest v25๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๋Š๋ฆฝ๋‹ˆ๋‹ค.

@pfftdammitchris ์ €๋Š” Mac + Windows์—์„œ ๊ฝค ๋ณต์žกํ•œ ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ๋ฅผ ๋น„๊ต

ํ•˜๋‚˜...

Windows์—์„œ ํŠนํžˆ์ฃผ์˜ํ•ด์•ผ ํ•  ์‚ฌํ•ญ ์ค‘ ํ•˜๋‚˜๋Š” Carbon Black (๋˜๋Š” ๊ธฐํƒ€ ์‹ค์‹œ๊ฐ„ ํŒŒ์ผ ๊ฐ์‹œ ์†Œํ”„ํŠธ์›จ์–ด)๊ณผ ๊ฐ™์€ ๋ฐ”์ด๋Ÿฌ์Šค ๋ฐฑ์‹  / ํŒŒ์ผ ๊ฐ์‹œ์ž์™€ ๊ฐ™์€ ์นจ์ž… ์ปค๋„ ์ˆ˜์ค€ ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค. ์ด์™€ ๊ฐ™์€ ์‹คํ–‰์ด ์žˆ์œผ๋ฉด Jest๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์—„์ฒญ๋‚œ ์„ฑ๋Šฅ ์ €ํ•˜๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ์ˆ˜์‹ญ ๋ถ„์ด ๊ฑธ๋ฆฐ๋‹ค๋Š” ์ด์•ผ๊ธฐ์ž…๋‹ˆ๋‹ค.

์ €๋Š” ์ž‘๋…„์— ๊ฐ™์€ ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ๊ฐ€ Macbook Pro์—์„œ 30 ์ดˆ, Windows ๋žฉํ†ฑ์—์„œ 20 ๋ถ„์ด ๊ฑธ๋ฆฌ๋ฉฐ ์ด๋Ÿฌํ•œ ํŒŒ์ผ ๊ฐ์‹œ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋Š” ํšŒ์‚ฌ์—์„œ ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

์™œ ๊ทธ๋Ÿฐ์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ํŒŒ์ผ ํ•ธ๋“ค๊ณผ ๊ด€๋ จ์ด ์žˆ์œผ๋ฉฐ Jest๊ฐ€ node.js ํŒŒ์ผ ์‹œ์Šคํ…œ API ์ค‘ ์ผ๋ถ€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ถ”์ธก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์•ฝ 20 ๊ฐœ์˜ ํ…Œ์ŠคํŠธ๋งŒ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ์ดˆ๊ธฐ ์‹คํ–‰์—์„œ ๋‘ ๊ฐ€์ง€ ๋ชจ๋‘์—์„œ ๋†๋‹ด์œผ๋กœ ํƒ€์ด๋ฐ์„ ์žก์€ ๋‹ค์Œ Enter ํ‚ค๋ฅผ ๋ˆŒ๋Ÿฌ ๋‹ค์‹œ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

Windows์—์„œ๋Š” ๋‘ ๋ฒˆ ๋ชจ๋‘ ์•ฝ 15 ์ดˆ๊ฐ€ ๊ฑธ๋ ธ์ง€ ๋งŒ Linux์—์„œ๋Š” ์ฒ˜์Œ ์‹คํ–‰์‹œ ์•ฝ 5.3 ์ดˆ, ํ›„์† ์‹คํ–‰์—์„œ๋Š” 2.3 ์ดˆ๊ฐ€ ์†Œ์š”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

-t = "GARBAGE"๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑด๋„ˆ ๋›ฐ๋„๋กํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฆฌ๋ˆ…์Šค๋Š” 1.5 ์ดˆ๊ฐ€ ๊ฑธ๋ ธ์ง€ ๋งŒ ์ฐฝ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹13 ์ดˆ๊ฐ€ ๊ฑธ๋ ธ๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋Š” ๊ฒƒ์€ ์‹ค์ œ ํ…Œ์ŠคํŠธ ์‹คํ–‰์ด ์•„๋‹Œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค!

๋‘ ์ปดํ“จํ„ฐ ๋ชจ๋‘ ์ตœ์‹  ๋ฒ„์ „์˜ node์™€ jest๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ Linux๋Š” ์‹ค์ œ๋กœ hyper-v๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Windows ๋‚ด๋ถ€์—์„œ ์‹คํ–‰๋˜๋Š” VM์ด๋ฏ€๋กœ ๋‹ค๋ฅธ ๊ฒƒ๋“ค์ด ๋™์ผํ•˜๋ฉด Windows๊ฐ€ ๋” ๋น ๋ฅผ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์•ฝ 20 ๊ฐœ์˜ ํ…Œ์ŠคํŠธ๋งŒ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ์ดˆ๊ธฐ ์‹คํ–‰์—์„œ ๋‘ ๊ฐ€์ง€ ๋ชจ๋‘์—์„œ ๋†๋‹ด์œผ๋กœ ํƒ€์ด๋ฐ์„ ์žก์€ ๋‹ค์Œ Enter ํ‚ค๋ฅผ ๋ˆŒ๋Ÿฌ ๋‹ค์‹œ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

Windows์—์„œ๋Š” ๋‘ ๋ฒˆ ๋ชจ๋‘ ์•ฝ 15 ์ดˆ๊ฐ€ ๊ฑธ๋ ธ์ง€ ๋งŒ Linux์—์„œ๋Š” ์ฒ˜์Œ ์‹คํ–‰์‹œ ์•ฝ 5.3 ์ดˆ, ํ›„์† ์‹คํ–‰์—์„œ๋Š” 2.3 ์ดˆ๊ฐ€ ์†Œ์š”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

-t = "GARBAGE"๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑด๋„ˆ ๋›ฐ๋„๋กํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฆฌ๋ˆ…์Šค๋Š” 1.5 ์ดˆ๊ฐ€ ๊ฑธ๋ ธ์ง€ ๋งŒ ์ฐฝ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹13 ์ดˆ๊ฐ€ ๊ฑธ๋ ธ๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋Š” ๊ฒƒ์€ ์‹ค์ œ ํ…Œ์ŠคํŠธ ์‹คํ–‰์ด ์•„๋‹Œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค!

๋‘ ์ปดํ“จํ„ฐ ๋ชจ๋‘ ์ตœ์‹  ๋ฒ„์ „์˜ node์™€ jest๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ Linux๋Š” ์‹ค์ œ๋กœ hyper-v๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Windows ๋‚ด๋ถ€์—์„œ ์‹คํ–‰๋˜๋Š” VM์ด๋ฏ€๋กœ ๋‹ค๋ฅธ ๊ฒƒ๋“ค์ด ๋™์ผํ•˜๋ฉด Windows๊ฐ€ ๋” ๋น ๋ฅผ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ. Windows์—์„œ Linux VM์— ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋งˆ์šดํŠธํ•˜๊ณ  ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด Windows ์—์„œ์ฒ˜๋Ÿผ ๋Š๋ ค์ง‘๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์•ž์„œ ์–ธ๊ธ‰ ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ Jest์˜ ํŒŒ์ผ ์ฒ˜๋ฆฌ ๋กœ์ง์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Œ์„ ๊ฐ•๋ ฅํ•˜๊ฒŒ ์•”์‹œํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ. Windows์—์„œ Linux VM์— ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋งˆ์šดํŠธํ•˜๊ณ  ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด Windows ์—์„œ์ฒ˜๋Ÿผ ๋Š๋ ค์ง‘๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์•ž์„œ ์–ธ๊ธ‰ ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ Jest์˜ ํŒŒ์ผ ์ฒ˜๋ฆฌ ๋กœ์ง์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Œ์„ ๊ฐ•๋ ฅํ•˜๊ฒŒ ์•”์‹œํ•ฉ๋‹ˆ๋‹ค.

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

ํŒŒ์ผ ๊ฐ์‹œ์ž์— ๋Œ€ํ•œ hevans90์˜ ๋Œ“๊ธ€์„ ๋ดค์Šต๋‹ˆ๋‹ค. ํƒ€์‚ฌ ๋ฐ”์ด๋Ÿฌ์Šค ๋ฐฑ์‹ ์ด ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š๊ฑฐ๋‚˜ ์ด์™€ ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ์ด ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š์ง€๋งŒ Windows ๊ธฐ๋ณธ ์ œ๊ณต ์‹ค์‹œ๊ฐ„ ๋ณดํ˜ธ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ด๋„ ๋ˆˆ์— ๋„๋Š” ์ฐจ์ด๋Š” ์—†์Šต๋‹ˆ๋‹ค.

์‹œ๋„ํ•˜๊ณ  ๋””๋ฒ„๊น… ํ•  ์‹œ๊ฐ„์ด์žˆ๋Š” ์‚ฌ๋žŒ์—๊ฒŒ ๋„์›€์ด ๋˜์—ˆ์œผ๋ฉดํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์˜ค๋Š˜ Windows Defender๊ฐ€ ํฐ ์ฐจ์ด๋ฅผ ๋งŒ๋“ ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.
์˜ˆ์ „์—๋Š” ๋งŽ์€ ์˜ˆ์™ธ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ๋” ๋น ๋ฅธ ๋…ธํŠธ๋ถ์„ ๋ฐ›์•˜์„ ๋•Œ jest๊ฐ€ ๋‹จ์ผ ํŒŒ์ผ์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐ 10 ๋ถ„ ์ด์ƒ ๊ฑธ๋ฆฐ ์ด์œ ๋ฅผ ํ‰์ƒ ์•Œ ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ์˜ˆ์™ธ๋ฅผ ๊ธฐ์–ตํ–ˆ์Šต๋‹ˆ๋‹ค.
์–ด๋–ค ์ œ์™ธ๊ฐ€ ์ฐจ์ด๋ฅผ ๋งŒ๋“œ๋Š”์ง€ ์ •ํ™•ํžˆ ์•Œ ์ˆ˜๋Š” ์—†์ง€๋งŒ ๋Ÿฌ๋„ˆ๋Š” 10 ๋ถ„์„ ๋„˜์ง€ ์•Š๊ณ  15 ์ดˆ๋กœ ์ค„์˜€์Šต๋‹ˆ๋‹ค.

๊ด€๋ จ ์ œ์™ธ ํ•ญ๋ชฉ์ด์žˆ๋Š” ์š”์ ์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค (๊ฐ•๋ ฅํ•˜์ง€๋งŒ)
https://gist.github.com/darvell/edbc758b11ea4dcd7226b7c9f1821196
ํŒŒ์ผ ํ™•์žฅ์ž .ts .js .spec.ts .spec.js .tsx ๋„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

์–ด๋–ค ์ œ์™ธ๊ฐ€ ์ฐจ์ด๋ฅผ ๋งŒ๋“œ๋Š”์ง€ ์ •ํ™•ํžˆ ์•Œ ์ˆ˜๋Š” ์—†์ง€๋งŒ ๋Ÿฌ๋„ˆ๋Š” 10 ๋ถ„์„ ๋„˜์ง€ ์•Š๊ณ  15 ์ดˆ๋กœ ์ค„์˜€์Šต๋‹ˆ๋‹ค.

ํ  ๋‚˜๋Š” ๋ฐฉ๊ธˆ ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋‚ด ๊ฒƒ๊ณผ ์•„๋ฌด๋Ÿฐ ์ฐจ์ด๊ฐ€์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์–ด์จŒ๋“  ํ•ญ์ƒ ์˜ˆ์™ธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ IntelliJ Idea๋Š” ์ž‘์—… ๊ณต๊ฐ„ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ œ์™ธ์— ์ž๋™์œผ๋กœ ๋ฐฐ์น˜ํ•˜๋„๋ก ์ œ์•ˆํ•˜๊ณ  ํ—ˆ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์ด๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค (ํ•„์š”ํ•œ ๊ฒฝ์šฐ). ๋”ฐ๋ผ์„œ ์ œ ๊ฒฝ์šฐ์—๋Š” ์†๋„ ์ €ํ•˜๊ฐ€ Windows Defender ๋˜๋Š” ๋‹ค๋ฅธ ๋ฐ”์ด๋Ÿฌ์Šค ์Šค์บ๋„ˆ๋กœ ์ธํ•œ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค.

์„ฑ๋Šฅ ์ฐจ์ด๋Š” Mac์— ๋น„ํ•ด 5 ~ 10 ๋ฐฐ์ž…๋‹ˆ๋‹ค. PC๋Š” ๊ฐ•๋ ฅํ•œ ๋ฐ์Šคํฌํ†ฑ ์ปดํ“จํ„ฐ์ž…๋‹ˆ๋‹ค (์ฝ๊ธฐ : ๋งฅ๋ถ๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฆ„). ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ์€ ๋ฒˆ๊ฐœ์ฒ˜๋Ÿผ ๋น ๋ฅด๋ฉฐ Jest ๋งŒ์ด ๋ฌธ์ œ๋กœ ๊ณ ํ†ต ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

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

๋˜ํ•œ์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ์ผ hello world ํ…Œ์ŠคํŠธ๊ฐ€ ํฌํ•จ ๋œ ๋‹จ์ผ ํ…Œ์ŠคํŠธ ํŒŒ์ผ์ด๋ฉฐ ์‹œ์ž‘ํ•˜๋Š” ๋ฐ 15 ์ดˆ๊ฐ€ ๊ฑธ๋ฆฌ๊ณ  ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ 12 ์ดˆ๊ฐ€ ๋” ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

๐Ÿ‘‹ ๋‚˜๋Š” ๊ทธ๋“ค์ด jest์™€ ํ•จ๊ป˜ typescript๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Œ์„ ์•”์‹œํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ๋‹ต๋ณ€์„ ๋ด…๋‹ˆ๋‹ค-์ด๊ฒƒ์€ ์‚ดํŽด๋ณผ ๊ฐ€์น˜๊ฐ€์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (ts-jest๋„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ) : https://github.com/kulshekhar/ts-jest/issues/ 908 # issuecomment -484043250

์ €์—๊ฒŒ ๋ณ€ํ™”๋Š” (์บ์‹œ์—†์ด) ๋†๋‹ด์ด ์‹œ์ž‘๋  ๋•Œ๊นŒ์ง€ 30 ๋ถ„์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒƒ์—์„œ ๋ถˆ๊ณผ ๋ช‡ ์ดˆ๋กœ ์ง„ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

isolatedModules ํ”Œ๋ž˜๊ทธ๋ฅผ ์„ค์ •ํ•˜๋ฉด ์‚ฌ์–‘ ํŒŒ์ผ์— ๋Œ€ํ•œ ์œ ํ˜• ๊ฒ€์‚ฌ๊ฐ€ ์ˆ˜ํ–‰๋˜์ง€ ์•Š์œผ๋ฉฐ ์ผ๋ถ€ ๊ธฐ๋Šฅ์ด ์†์‹ค๋ฉ๋‹ˆ๋‹ค. https://github.com/kulshekhar/ts-jest/blob/master/docs/user/ config / isolatedModules.md

๊ท€ํ•˜์˜ ๋ฌธ์ œ๊ฐ€ ๋†๋‹ด์ธ์ง€ ํ™•์ธํ•˜๋Š” ๋ฐ ์œ ์šฉ ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์—ฌ๊ธฐ์—๋งŒ ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ‘‹ ๋‚˜๋Š” ๊ทธ๋“ค์ด jest์™€ ํ•จ๊ป˜ typescript๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Œ์„ ์•”์‹œํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ๋‹ต๋ณ€์„ ๋ด…๋‹ˆ๋‹ค .

์ €์—๊ฒŒ ๋ณ€ํ™”๋Š” (์บ์‹œ์—†์ด) ๋†๋‹ด์ด ์‹œ์ž‘๋  ๋•Œ๊นŒ์ง€ 30 ๋ถ„์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒƒ์—์„œ ๋ถˆ๊ณผ ๋ช‡ ์ดˆ๋กœ ์ง„ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

isolatedModules ํ”Œ๋ž˜๊ทธ๋ฅผ ์„ค์ •ํ•˜๋ฉด ์‚ฌ์–‘ ํŒŒ์ผ์— ๋Œ€ํ•œ ์œ ํ˜• ๊ฒ€์‚ฌ๊ฐ€ ์ˆ˜ํ–‰๋˜์ง€ ์•Š์œผ๋ฉฐ ์ผ๋ถ€ ๊ธฐ๋Šฅ์ด ์†์‹ค๋ฉ๋‹ˆ๋‹ค. https://github.com/kulshekhar/ts-jest/blob/master/docs/user/ config / isolatedModules.md

๊ท€ํ•˜์˜ ๋ฌธ์ œ๊ฐ€ ๋†๋‹ด์ธ์ง€ ํ™•์ธํ•˜๋Š” ๋ฐ ์œ ์šฉ ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์—ฌ๊ธฐ์—๋งŒ ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— ์ˆœ์ˆ˜ํ•œ JavaScript. ์ด ๋ฌธ์ œ๋Š” TypeScript์™€ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ  : https://github.com/kulshekhar/ts-jest/pull/1549 ๋Š” ts-jest์˜ ์•ŒํŒŒ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค (์•„๋งˆ ์˜ค๋Š˜). ts-jest๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ์€ ์•ŒํŒŒ ๋ฒ„์ „์„ ํ…Œ์ŠคํŠธํ•˜๊ณ  https://github.com/kulshekhar/ts-jest/issues/1115์— ๋Œ€ํ•œ ์˜๊ฒฌ์„ ๋ณด๋‚ด์ฃผ์„ธ์š”.

๋˜ํ•œ์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ์ผ hello world ํ…Œ์ŠคํŠธ๊ฐ€ ํฌํ•จ ๋œ ๋‹จ์ผ ํ…Œ์ŠคํŠธ ํŒŒ์ผ์ด๋ฉฐ ์‹œ์ž‘ํ•˜๋Š” ๋ฐ 15 ์ดˆ๊ฐ€ ๊ฑธ๋ฆฌ๊ณ  ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ 12 ์ดˆ๊ฐ€ ๋” ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

Mac์—์„œ ๋™์ผํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹œ์ž‘ํ•˜๋Š” ๋ฐ ์•ฝ 1.5 ์ดˆ, ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ 1 ์ดˆ ๋ฏธ๋งŒ์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ TS๊ฐ€ ์•„๋‹Œ JS๋„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Jest์™€ ํ•จ๊ป˜ ์ˆœ์ˆ˜ํ•œ JavaScript๋„ ์—ฌ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค. ์ธํ…”์˜ 10 ์„ธ๋Œ€ ํ”„๋กœ์„ธ์„œ๋ฅผ ํƒ‘์žฌ ํ•œ ๊ฐ•๋ ฅํ•œ ์ฟผ๋“œ ์ฝ”์–ด ๋…ธํŠธ๋ถ์ด ์žˆ๊ณ  ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ์€ ๋งค์šฐ ๋น ๋ฅด์ง€ ๋งŒ ๋ช‡ ๊ฐ€์ง€ ๊ธฐ๋ณธ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ Windows์™€ Linux์—์„œ [email protected] ๊ฐ€ 2-3 ๋ฐฐ ๋” ๋งŽ์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

๋™์ผํ•œ ๋ฌธ์ œ, ๋‚ด ํ…Œ์ŠคํŠธ๊ฐ€ Windows์—์„œ ์‹คํ–‰๋˜๋Š” ๋ฐ ์•ฝ 60 ์ดˆ๊ฐ€ ๊ฑธ๋ฆฌ๋ฉฐ ์ฒ˜์Œ 45 ์ดˆ ๋™์•ˆ UI๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚ด ๋ฆฌ๋ˆ…์Šค ์ปดํ“จํ„ฐ์—์„œ ๋˜‘๊ฐ™์€ ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ๋ฅผ ์‹คํ–‰ํ–ˆ๊ณ  ์™„๋ฃŒํ•˜๋Š” ๋ฐ 8 ์ดˆ๊ฐ€ ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค.

์œ„์˜ @Cellule ์˜ ๋Œ“๊ธ€์€ ์•ฝ 15 ์ดˆ๊นŒ์ง€ ๊ทน์ ์œผ๋กœ ๋นจ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.

@ryanrapini ๋Š” @Cellule ์˜ ์กฐ์–ธ์„ ๋”ฐ๋ž์ง€๋งŒ ( Windows UI > Virus and Threat Protection > Manage Settings > Add Exclusions ํ†ต๊ณผํ–ˆ์Šต๋‹ˆ๋‹ค) ์ผ๋ถ€ ํ…Œ์ŠคํŠธ๊ฐ€ 13 ์ดˆ์—์„œ 6 ์ดˆ๋กœ, ๊ธฐ๋ณธ์ ์œผ๋กœ ์ ˆ๋ฐ˜์ด๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ!

์›น ์‚ฌ์ดํŠธ์˜ FAQ ํŽ˜์ด์ง€์—์„œ Windows Defender (๋˜๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ AV?)๋ฅผ ์–ธ๊ธ‰ํ•˜๋Š” ์„น์…˜์„ ์ œ๊ณตํ•˜๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? https://jestjs.io/docs/en/troubleshooting

ts-jest์™€ ํ•จ๊ป˜ isolatedModules: true ์‚ฌ์šฉํ•˜๋ฉด ์ฝœ๋“œ ์Šคํƒ€ํŠธ โ€‹โ€‹์—… (~ 10 ๋ถ„ => 15 ์ดˆ)์— ํฐ ์ฐจ์ด๊ฐ€ ์žˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” jest 25๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ์ „์— # 9457์ด ํ•ด๊ฒฐ๋˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์•ŒํŒŒ์—์„œ ๊ฐœ์„  ์‚ฌํ•ญ์„ ํ…Œ์ŠคํŠธํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

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

์—ฌ๊ธฐ์— ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ๊ณ  ํ•ด๊ฒฐ์ฑ…์ด ์—†์Šต๋‹ˆ๋‹ค ...

ํ˜„์žฌ ๋ช‡ ๊ฐ€์ง€ ํ…Œ์ŠคํŠธ๊ฐ€์žˆ๋Š” ๋งค์šฐ ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
Wes Bo์˜ "Advanced React Course"์—์„œ ๊ฐ€์ ธ์˜จ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๊ทธ๋Š” Mac์—์„œ ์‹คํ–‰ํ•˜๊ณ  ์ปดํ“จํ„ฐ์—์„œ ์ฆ‰๊ฐ์ ์ธ ๋‹ต๋ณ€์„ ์–ป์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋‚˜๋ฅผ ์œ„ํ•ด :

ํ…Œ์ŠคํŠธ ๋ชจ์Œ : 2 ๊ฑด ๊ฑด๋„ˆ ๋›ฐ๊ณ  15 ๊ฑด ํ†ต๊ณผ, ์ด 17 ๊ฑด ์ค‘ 15 ๊ฑด
ํ…Œ์ŠคํŠธ : 6 ๊ฑด ๊ฑด๋„ˆ ๋›ฐ๊ธฐ, 37 ๊ฑด ํ†ต๊ณผ, ์ด 43 ๊ฑด
์Šค๋ƒ… ์ƒท : 18 ๊ฐœ ํ†ต๊ณผ, ์ด 18 ๊ฐœ
์‹œ๊ฐ„ : 5.869 ์ดˆ
๋ชจ๋“  ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ๋ฅผ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

isolatedModules: true ๋‚ด ๊ฒฝ์šฐ์—๋Š” ์•„๋ฌด ๊ฒƒ๋„ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์ง€๋งŒ ์—ฌ์ „ํžˆ 5-6 ์ดˆ ์ •๋„์ž…๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์–ด๋–ค ์˜ต์…˜์œผ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋ฉด 9 ~ 10 ์ดˆ ์ •๋„ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

Defender Exceptions์— ๋‚ด dev ํด๋”๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์•„๋ฌด๊ฒƒ๋„ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ๋ชจ์Œ : 2 ๊ฑด ๊ฑด๋„ˆ ๋›ฐ๊ณ  15 ๊ฑด ํ†ต๊ณผ, ์ด 17 ๊ฑด ์ค‘ 15 ๊ฑด
ํ…Œ์ŠคํŠธ : 6 ๊ฑด ๊ฑด๋„ˆ ๋›ฐ๊ธฐ, 37 ๊ฑด ํ†ต๊ณผ, ์ด 43 ๊ฑด
์Šค๋ƒ… ์ƒท : 18 ๊ฐœ ํ†ต๊ณผ, ์ด 18 ๊ฐœ
์‹œ๊ฐ„ : 5.563 ์ดˆ
๋ชจ๋“  ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ๋ฅผ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

Windows์— ์ข‹์€ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๊นŒ?
wsl2๋กœ ๊ฐ€์•ผํ•˜๋‚˜์š”?

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

์—ฌ๊ธฐ์— ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ๊ณ  ํ•ด๊ฒฐ์ฑ…์ด ์—†์Šต๋‹ˆ๋‹ค ...

ํ˜„์žฌ ๋ช‡ ๊ฐ€์ง€ ํ…Œ์ŠคํŠธ๊ฐ€์žˆ๋Š” ๋งค์šฐ ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
Wes Bo์˜ "Advanced React Course"์—์„œ ๊ฐ€์ ธ์˜จ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๊ทธ๋Š” Mac์—์„œ ์‹คํ–‰ํ•˜๊ณ  ์ปดํ“จํ„ฐ์—์„œ ์ฆ‰๊ฐ์ ์ธ ๋‹ต๋ณ€์„ ์–ป์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋‚˜๋ฅผ ์œ„ํ•ด :

ํ…Œ์ŠคํŠธ ๋ชจ์Œ : 2 ๊ฑด ๊ฑด๋„ˆ ๋›ฐ๊ณ  15 ๊ฑด ํ†ต๊ณผ, ์ด 17 ๊ฑด ์ค‘ 15 ๊ฑด
ํ…Œ์ŠคํŠธ : 6 ๊ฑด ๊ฑด๋„ˆ ๋›ฐ๊ธฐ, 37 ๊ฑด ํ†ต๊ณผ, ์ด 43 ๊ฑด
์Šค๋ƒ… ์ƒท : 18 ๊ฐœ ํ†ต๊ณผ, ์ด 18 ๊ฐœ
์‹œ๊ฐ„ : 5.869 ์ดˆ
๋ชจ๋“  ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ๋ฅผ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

isolatedModules: true ๋‚ด ๊ฒฝ์šฐ์—๋Š” ์•„๋ฌด ๊ฒƒ๋„ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์ง€๋งŒ ์—ฌ์ „ํžˆ 5-6 ์ดˆ ์ •๋„์ž…๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์–ด๋–ค ์˜ต์…˜์œผ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋ฉด 9 ~ 10 ์ดˆ ์ •๋„ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

Defender Exceptions์— ๋‚ด dev ํด๋”๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์•„๋ฌด๊ฒƒ๋„ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ๋ชจ์Œ : 2 ๊ฑด ๊ฑด๋„ˆ ๋›ฐ๊ณ  15 ๊ฑด ํ†ต๊ณผ, ์ด 17 ๊ฑด ์ค‘ 15 ๊ฑด
ํ…Œ์ŠคํŠธ : 6 ๊ฑด ๊ฑด๋„ˆ ๋›ฐ๊ธฐ, 37 ๊ฑด ํ†ต๊ณผ, ์ด 43 ๊ฑด
์Šค๋ƒ… ์ƒท : 18 ๊ฐœ ํ†ต๊ณผ, ์ด 18 ๊ฐœ
์‹œ๊ฐ„ : 5.563 ์ดˆ
๋ชจ๋“  ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ๋ฅผ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

Windows์— ์ข‹์€ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๊นŒ?
wsl2๋กœ ๊ฐ€์•ผํ•˜๋‚˜์š”?

๋‚ด ์†”๋ฃจ์…˜์„ ์ ์šฉํ•˜๊ณ  ์–ด๋–ค ์ผ์ด ๋ฐœ์ƒํ•˜๋Š”์ง€ ์•Œ๋ ค ์ฃผ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? (์‹ค์ œ๋กœ Cellule์˜ ์†”๋ฃจ์…˜์ด์ง€๋งŒ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋Œ€์‹  ๋ฉ”๋‰ด๋ฅผ ํ†ตํ•ด ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค)

๋‚ด ์†”๋ฃจ์…˜์„ ์ ์šฉํ•˜๊ณ  ์–ด๋–ค ์ผ์ด ๋ฐœ์ƒํ•˜๋Š”์ง€ ์•Œ๋ ค ์ฃผ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? (์‹ค์ œ๋กœ Cellule์˜ ์†”๋ฃจ์…˜์ด์ง€๋งŒ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋Œ€์‹  ๋ฉ”๋‰ด๋ฅผ ํ†ตํ•ด ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค)

๋‚ด ๋ฉ”์‹œ์ง€์—์„œ ๋งํ–ˆ๋“ฏ์ด ๋‚˜๋Š” ์ด๋ฏธ ๊ทธ๊ฒƒ์„ํ–ˆ์Šต๋‹ˆ๋‹ค :)

๋ฉ”๋‰ด๋ฅผ ํ†ตํ•ด ๋‹น์‹ ์ด ํ•œ ์ผ์„ ๋”ฐ๋ž์Šต๋‹ˆ๋‹ค.

Windows์—์„œ๋„์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ ์ž์ฒด๋Š” 1 ์ดˆ ๋ฏธ๋งŒ์œผ๋กœ ์‹คํ–‰๋˜์ง€๋งŒ ์ „์ฒด ์„ค์ •์€ ์‹คํ–‰ํ•˜๋Š” ๋ฐ 15 ์ดˆ ์ •๋„ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. v24 ๋ฐ v26์—์„œ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์‹ค์ œ๋กœ v26์—์„œ๋Š” ์กฐ๊ธˆ ๋Š๋ฆฝ๋‹ˆ๋‹ค.

๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์— ์šด์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค (์‹คํ–‰ ์‹œ๊ฐ„์ด ํ–ฅ์ƒ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค).

  • --runInBand
  • maxWorkers
  • @Cellule ๋ฐ @alessioalex๊ฐ€ ์ œ์•ˆํ•œ๋Œ€๋กœ Virus and Threat Protection .ts .js .spec.ts .spec.js .tsx ์ œ์™ธ ์ถ”๊ฐ€

๋ฐ”๋‹๋ผ ์ž๋ฐ” โ€‹โ€‹์Šคํฌ๋ฆฝํŠธ์™€ ์ƒˆ๋กœ์šด ํƒ€์ดํ”„ ์Šคํฌ๋ฆฝํŠธ ํ”„๋กœ์ ํŠธ์™€ ํ•จ๊ป˜ Windows์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋ชจ์นด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 10ms ๋ฏธ๋งŒ์œผ๋กœ ์‹คํ–‰๋˜๋Š” 9 ๊ฐœ์˜ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ 2 โ€‹โ€‹์ดˆ๊ฐ€ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

๋ฏธ์นœ ์ง“์ด์•ผ!

๋‹จ์ˆœํžˆ jest๋ฅผ ์ „ ์„ธ๊ณ„์ ์œผ๋กœ ์„ค์น˜ํ•˜๋ฉด ์ด์ œ ์ •ํ™•ํžˆ ๋™์ผํ•œ ํ”„๋กœ์ ํŠธ๊ฐ€ 52 (!!!) ์ดˆ๊ฐ€ ์•„๋‹Œ 0.9 ์ดˆ์— ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค!
ํ”„๋กœ์ ํŠธ์— npm remove jest
npm install -g jest

๋ฌผ๋ก  ๊ฐœ๋ฐœ์ž ์ข…์†์„ฑ์œผ๋กœ jest๋ฅผ ํ”„๋กœ์ ํŠธ์— ๋‹ค์‹œ ํ†ตํ•ฉํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์™œ ๊ทธ๋Ÿฐ์ง€ ์•„์‹ญ๋‹ˆ๊นŒ?

๋ฏธ์นœ ์ง“์ด์•ผ!

๋‹จ์ˆœํžˆ jest๋ฅผ ์ „ ์„ธ๊ณ„์ ์œผ๋กœ ์„ค์น˜ํ•˜๋ฉด ์ด์ œ ์ •ํ™•ํžˆ ๋™์ผํ•œ ํ”„๋กœ์ ํŠธ๊ฐ€ 52 (!!!) ์ดˆ๊ฐ€ ์•„๋‹Œ 0.9 ์ดˆ์— ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค!
ํ”„๋กœ์ ํŠธ์— npm remove jest
npm install -g jest

๋ฌผ๋ก  ๊ฐœ๋ฐœ์ž ์ข…์†์„ฑ์œผ๋กœ jest๋ฅผ ํ”„๋กœ์ ํŠธ์— ๋‹ค์‹œ ํ†ตํ•ฉํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์™œ ๊ทธ๋Ÿฐ์ง€ ์•„์‹ญ๋‹ˆ๊นŒ?

์ด๊ฒƒ์€ ๋‚˜์—๊ฒŒ ๋ฐ”์ด๋Ÿฌ์Šค ์Šค์บ๋„ˆ ๋ฌธ์ œ์ฒ˜๋Ÿผ ๋“ค๋ฆฝ๋‹ˆ๋‹ค. ์ฆ‰, ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ† ๋ฆฌ๋Š” ํฌ๋กค๋ง ์†๋„๋ฅผ ๋Šฆ์ถ”๋Š” ๋ฐ”์ด๋Ÿฌ์Šค ์Šค์บ” ๋ฒ”์œ„์— ์žˆ์ง€๋งŒ ๊ธ€๋กœ๋ฒŒ npm ๋””๋ ‰ํ† ๋ฆฌ๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‹จ์ง€ ์ถ”์ธก ์ผ๋ฟ์ž…๋‹ˆ๋‹ค.

๋ฐฉ๊ธˆ @JPustkuchen ๊ณผ ๋™์ผํ•œ ๊ฒƒ์„ ์‹œ๋„ํ–ˆ์œผ๋ฉฐ ์„ฑ๋Šฅ์€ ~ 10 ์ดˆ์—์„œ 1 ์ดˆ ๋ฏธ๋งŒ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

Windows Defender์—์„œ ํ”„๋กœ์ ํŠธ ํด๋”๋ฅผ ์ œ์™ธํ–ˆ์ง€๋งŒ Jest๊ฐ€ ์—ฌ์ „ํžˆ ๋Š๋ฆฌ๊ฒŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

์•„์ง ์ž‘์—… ์ค‘์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์ฝ”๋“œ์—์„œ ์˜คํƒ€๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์‹œ๊ณ„ ๋ชจ๋“œ์˜ ํ…Œ์ŠคํŠธ๊ฐ€ ์ฆ‰์‹œ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋ฅผ ์ปดํŒŒ์ผํ•˜๊ธฐ ์ „์— ์‹ค์ œ๋กœ ์ƒˆ ๋””๋ ‰ํ† ๋ฆฌ ํฌ๋กค๋ง์„ ๊ฐ•์š”ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์•„์ฃผ ๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ์—๋„ 10 ์ดˆ๊ฐ€ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ ์–ด๋„ ์ด๊ฒƒ์ด ๋ฌธ์ œ๋ผ๋Š” ๊ฒƒ์„ ์ธ์ •ํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ํ˜„์žฌ๋กœ์„œ๋Š” ์ถฉ๋ถ„ํ•œ ์„ฑ๋Šฅ์„ ๊ฐ€์ง„ ๋‚ด Windows ๋ฐ์Šคํฌํ†ฑ ์ปดํ“จํ„ฐ (๋™๋ฃŒ ์ธ ๋งฅ๋ถ๋ณด๋‹ค ํ›จ์”ฌ ๋” ๋งŽ์Œ)๊ฐ€ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ๋งฅ๋ถ๋ณด๋‹ค ์•ฝ 69 ๋ฐฐ ๋Š๋ฆฝ๋‹ˆ๋‹ค! Jest ํ…Œ์ŠคํŠธ๊ฐ€ ๋„ˆ๋ฌด ๋Š๋ฆฌ๊ฒŒ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ž‘์—…ํ•˜๋Š” ๊ฒƒ์ด ๋„ˆ๋ฌด ๋น„ํšจ์œจ์ ์ด๋ฏ€๋กœ ์‹ค์ œ๋กœ ํ”„๋ŸฐํŠธ ์—”๋“œ ์ฝ”๋“œ๋ฅผ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š๋„๋ก ๊ฐ•์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์œผ๋ฉด Jest์—์„œ ๋ฉ€์–ด์ ธ ์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ์€ ๋ฒˆ๊ฐœ์ฒ˜๋Ÿผ ๋น ๋ฅด์ง€ ๋งŒ Jest ํ…Œ์ŠคํŠธ๋Š” ๋งค์šฐ ๋Š๋ฆฝ๋‹ˆ๋‹ค. ์‹ค์ œ ํ…Œ์ŠคํŠธ ๋กœ์ง์ด ์‹คํ–‰๋  ๋•Œ ์‹ค์ œ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ ์™ธ์— ๋‹ค๋ฅธ ์ž‘์—…์— ์‹œ๊ฐ„์ด ์†Œ์š”๋ฉ๋‹ˆ๋‹ค.

์ข€ ๋” ๊ธ์ •์  ์ธ ์ ์—์„œ, ์ €๋Š”์ด ๋ฒ„๊ทธ์— ๊ฐ์‚ฌ์˜ ํฐ ๋นš์„ ์กŒ๋‹ค๊ณ  ๋งํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ฃผ์š” ๊ฐœ๋ฐœ ์›Œํฌ ํ”Œ๋กœ์šฐ๋ฅผ ์œ„ํ•ด Linux๋กœ ์ „ํ™˜ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•˜๊ฒŒ ๋œ ๊ฒƒ์€ ๋งˆ์ง€๋ง‰ ๋นจ๋Œ€์˜€์œผ๋ฉฐ ๊ทธ ์–ด๋Š ๋•Œ๋ณด ๋‹ค ํ–‰๋ณตํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€๋” ๋ ˆ๊ฑฐ์‹œ ํ”„๋กœ์ ํŠธ์—์„œ ์ž‘์—…ํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ ˆ๋Œ€๋กœ ๋Œ์•„ ๊ฐ€์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ๋งํ•  ์ˆ˜๋Š” ์—†์ง€๋งŒ ASP.NET ์ฝ”์–ด๊ฐ€ ํฌ๋กœ์Šค ํ”Œ๋žซํผ์ด๊ธฐ ๋•Œ๋ฌธ์— Windows๋กœ ๋‹ค์‹œ ๋ถ€ํŒ…ํ•˜๋Š” ์ด์œ ๊ฐ€ ํ•ญ์ƒ ์ค„์–ด๋“ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@ timrobinson33 ์ œ๋ฐœ ์ฃผ์ œ์— ๋Œ€ํ•ด ๊ณ„์†ํ•ฉ์‹œ๋‹ค. Node๊ฐ€ ๋ชจ๋“  ํ”Œ๋žซํผ์—์„œ ์ž˜ ์ž‘๋™ํ•œ๋‹ค๋Š” ์ ์„ ๊ณ ๋ คํ•˜๋ฉด jest ์ด Windows์˜ ๋‹ค๋ฅธ ํ™˜๊ฒฝ๋ณด๋‹ค 68 ๋ฐฐ ๋Š๋ ค ์•ผ ํ•  ์ด์œ ๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋‹ค๋ฅธ ํ…Œ์ŠคํŠธ ๋Ÿฌ๋„ˆ์—์„œ๋Š”์ด ๋ฌธ์ œ๋ฅผ ๊ฒฝํ—˜ ํ•œ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค.

๋ฒค์น˜ ๋งˆํฌ jest github repo์—์„œ v26.4.2๋กœ ํ…Œ์ŠคํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.
https://github.com/nasreddineskandrani/benchmark_jest
๋‚ด ์ปดํ“จํ„ฐ์˜ ๋…ธ๋“œ ๋ฒ„์ „ : v12.13.0

๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์—…๋ฐ์ดํŠธํ•ด๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค (์Šคํฌ๋ฆฐ ์ƒท ์ฐธ์กฐ)! ๋‚˜์—๊ฒŒ ๋†๋‹ด์€ ์ด์ œ ๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ์— ๋งž์Šต๋‹ˆ๋‹ค.
์ง์žฅ์—์„œ ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ๊ฒฝ์šฐ. ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ดœ์ฐฎ ๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๋ฅผ ๋ถ„๋ฆฌํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

image

@empperi ๋‚ด ๋ฒค์น˜ ๋งˆํฌ ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด v26 ํด๋”๋กœ ์ปดํ“จํ„ฐ์—์„œ์ด ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์„ ์•Œ๋ ค์ฃผ์„ธ์š”. 0.166ms๊ฐ€ ์•„๋‹ˆ๊ฑฐ๋‚˜ ์ฃผ๋ณ€์— ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฒค์น˜ ๋งˆํฌ jest github repo์—์„œ v26.4.2๋กœ ํ…Œ์ŠคํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.
https://github.com/nasreddineskandrani/benchmark_jest
๋‚ด ์ปดํ“จํ„ฐ์˜ ๋…ธ๋“œ ๋ฒ„์ „ : v12.13.0

๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์—…๋ฐ์ดํŠธํ•ด๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค (์Šคํฌ๋ฆฐ ์ƒท ์ฐธ์กฐ)! ๋‚˜์—๊ฒŒ ๋†๋‹ด์€ ์ด์ œ ๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ์— ๋งž์Šต๋‹ˆ๋‹ค.
์ง์žฅ์—์„œ ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ๊ฒฝ์šฐ. ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ดœ์ฐฎ ๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๋ฅผ ๋ถ„๋ฆฌํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

image

@empperi ๋‚ด ๋ฒค์น˜ ๋งˆํฌ ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด v26 ํด๋”๋กœ ์ปดํ“จํ„ฐ์—์„œ์ด ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์„ ์•Œ๋ ค์ฃผ์„ธ์š”. 0.166ms๊ฐ€ ์•„๋‹ˆ๊ฑฐ๋‚˜ ์ฃผ๋ณ€์— ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

image

์˜ˆ์ƒ๋Œ€๋กœ ํ…Œ์ŠคํŠธ ์„ค์ • ์„ฑ๋Šฅ์—๋Š” ์ฐจ์ด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ปดํ“จํ„ฐ๋ณด๋‹ค ์•ฝ๊ฐ„ ๋น ๋ฅด๊ฒŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. __tests__ ์•„๋ž˜์— 100 ๊ฐœ์˜ ํ…Œ์ŠคํŠธ ํŒŒ์ผ์„ ํฌํ•จํ•˜๋„๋ก ํ…Œ์ŠคํŠธ ์„ค์ •์„ ๋ณ€๊ฒฝํ–ˆ์œผ๋ฉฐ์ด ํŒŒ์ผ๋„ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ์•ฑ์€ react-scripts ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ์ง€๋งŒ ์„ฑ๋Šฅ์—๋Š” ์ฐจ์ด๊ฐ€ ์—†๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์˜ˆ์ œ์— ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” WSL2 bash (NTFS ํŒŒ์ผ ์‹œ์Šคํ…œ์— ๋Œ€ํ•ด) ๋ฐ ๋ถ์—์„œ ์ด๋Ÿฌํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์œผ๋ฉฐ ์‹คํ–‰ ์‹œ๊ฐ„์€ ์›์‹œ powershell์— ๋น„ํ•ด ๊ฑฐ์˜ 10 ๋ฐฐ์˜€์Šต๋‹ˆ๋‹ค. NTFS์— ๋Œ€ํ•œ WSL2์—์„œ๋Š” ๋” ๋Š๋ฆฐ I / O ์†๋„๊ฐ€ ์˜ˆ์ƒ๋˜์ง€๋งŒ์ด ์„ค์ •์ด ์–ผ๋งˆ๋‚˜ ๊ฐ„๋‹จํ•œ์ง€๋ฅผ ๊ณ ๋ คํ•˜๋ฉด (๊ฐ๊ฐ ๋‹จ์ผ ํ…Œ์ŠคํŠธ๊ฐ€์žˆ๋Š” 100 ๊ฐœ์˜ ํ…Œ์ŠคํŠธ ํŒŒ์ผ) ์‹ค์ œ๋กœ ๊ทธ๋‹ค์ง€ ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฐธ๊ณ ๋กœ WSL2 bash์—์„œ ์ด๊ฒƒ์„ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

time find . -name "*.js" -print | xargs cat
...(file content prints omitted)...
real    0m0.138s
user    0m0.030s
sys     0m0.000s

WSL2์—์„œ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์ฝ๋Š” ๋ฐ ์‹œ๊ฐ„์ด ๊ฑฐ์˜ ๊ฑธ๋ฆฌ์ง€ ์•Š์Œ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. Powershell์—์„œ ์œ ์‚ฌํ•œ ๋ช…๋ น์„ ์ฐธ์กฐํ•˜๋ ค๋ฉด :

> Measure-Command { ls *.js | % { cat $_ } }

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 0
Milliseconds      : 49
Ticks             : 499000
TotalDays         : 5,77546296296296E-07
TotalHours        : 1,38611111111111E-05
TotalMinutes      : 0,000831666666666667
TotalSeconds      : 0,0499
TotalMilliseconds : 49,9

์„ฑ๋Šฅ์ด ๊ฐ™์€ ์•ผ๊ตฌ์žฅ์— ์žˆ์Œ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ Jest๊ฐ€ I / O๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด๋Š” WSL2์˜ ์„ฑ๋Šฅ์— ํฌ๊ฒŒ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ๋‚˜์—๊ฒŒ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค๋Š” ํ”„๋กœ์ ํŠธ์— ๊ด€ํ•ด์„œ๋Š” ์ฝ”๋“œ ๋ฐ ํ…Œ์ŠคํŠธ์˜ ๋ฌธ์ œ๋กœ ์ธํ•ด bash๋ฅผ ์š”๊ตฌํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ๊ฐ„๋‹จํ•œ ์ž‘์—…์ด ์•„๋‹™๋‹ˆ๋‹ค. WSL2๊ฐ€ ์ธ๊ธฐ๋ฅผ ์–ป๊ณ  ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๊ฐ์•ˆํ•  ๋•Œ ์ด๊ฒƒ์€ ์กฐ์‚ฌํ•ด์•ผ ํ•  ์‹ค์ œ ๋ฌธ์ œ๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋„์›€์ด ๋˜์—ˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

:ํŽธ์ง‘ํ•˜๋‹ค:

ํ˜ธ๊ธฐ์‹ฌ์œผ๋กœ ๋‚˜๋Š” --no-watch ๋กœ ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ WSL2๋ฅผ ํ†ตํ•ด ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ๋ณด๋Š” ๊ฒƒ์ด ์–ด๋–ค ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š”์ง€ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๋‹ต์€ '์•„๋‹ˆ์˜ค'์ž…๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๊ทธ๋‹ค์ง€ ์˜ํ–ฅ์„์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚ด Windows ์ปดํ“จํ„ฐ์—์„œ ๋ฒค์น˜ ๋งˆํฌ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ์•ฝ 1.6 ์ดˆ๊ฐ€ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. WSL์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
AVG ๋ฐ”์ด๋Ÿฌ์Šค ๋ฐฑ์‹ ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€๋งŒ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋ฐ ๋…ธ๋“œ ์‹คํ–‰ ํŒŒ์ผ์— ๋Œ€ํ•œ ์˜ˆ์™ธ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
๋‚ด ํ•˜๋“œ ๋“œ๋ผ์ด๋ธŒ๋Š” SSD์ž…๋‹ˆ๋‹ค.

๋…ธ๋“œ ๋ฒ„์ „์€ v12.16.1

image

ํ…Œ์ŠคํŠธ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋ฉด ํŒŒ์ผ ๊ฐ์‹œ์ž๊ฐ€ ์ฆ‰์‹œ ํŠธ๋ฆฌ๊ฑฐ๋˜์ง€๋งŒ ํ•ด๋‹น ์—…๋ฐ์ดํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹ค์ œ ์‹œ๊ฐ„์€ ์•ฝ 1 ์ดˆ ~ 2.4 ์ดˆ์ž…๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ์ด ๋ฌธ์ œ์ธ์ง€ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ์ €์žฅ์†Œ๋ฅผ ์—‰๋ง์œผ๋กœ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค .https : //github.com/kentcdodds/react-testing-library-course/tree/tjs

  • ๋‚˜๋Š” npm test ๊ฐ€์„œ ๋ชจ๋“  ํ…Œ์ŠคํŠธ๊ฐ€ ์‹œ๊ณ„ ๋ชจ๋“œ์—์„œ ์‹คํ–‰๋˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
  • 'p'๋ฅผ ๋ˆŒ๋Ÿฌ ํŒŒ์ผ ํŒจํ„ด์„ ์ž…๋ ฅํ•˜๊ณ  "tdd-02"๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. 3 ์ดˆ ์ด์ƒ์˜ ์‹คํ–‰ ์‹œ๊ฐ„์„ ์–ป์Šต๋‹ˆ๋‹ค.
    image

Kent C. Dodds๊ฐ€ ์œ ๊ธ‰ ๊ณผ์ •์—์„œ ์—‰๋ง์ธ ํ™˜๊ฒฝ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด ๋†€๋ž„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฐ€ ๊ทธ๋ ‡๊ฒŒํ•œ๋‹ค๋ฉด ์•„๋งˆ ๊ฑฐ๊ธฐ์—์„œ ๋””๋ฒ„๊ทธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. :? ๊ทธ์˜ ๋น„๋””์˜ค์—์„œ๋Š” ์ž˜ ์ž‘๋™ํ•˜๋ฉฐ Mac์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‹ค์‹œ ์žฌํ˜„ ํ•  ์ˆ˜์—†๋Š” ๋งค์šฐ ์ด์ƒํ•œ ์ ์„ ์ฃผ๋ชฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ ์ค‘ ํ•˜๋‚˜ (tdd-02 ... js)์— ๋Œ€ํ•ด ์•ฝ 0.1 ์ดˆ ๋™์•ˆ ์‹คํ–‰๋˜๊ณ  ๊ทธ ์˜†์—์žˆ๋Š” ํŒŒ์ผ ( tdd-01 ... js)-์•ฝ 3 ์ดˆ. ์ฝ”๋“œ๋Š” ๊ฑฐ์˜ ๋™์ผํ•˜๋ฉฐ ๋™์ผํ•œ ์ข…์†์„ฑ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋น ๋ฅด๊ฒŒ ์‹คํ–‰๋˜๋Š” ํŒŒ์ผ์—์„œ ์ฝ”๋“œ๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ ๋Š๋ฆฌ๊ฒŒ ์‹คํ–‰๋˜๋Š” ํŒŒ์ผ์— ๋ถ™์—ฌ ๋„ฃ๊ฑฐ๋‚˜ ๊ทธ ๋ฐ˜๋Œ€์˜ ๊ฒฝ์šฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๋Š” ๋™์ผํ–ˆ์Šต๋‹ˆ๋‹ค. ๋Š๋ฆฌ๊ฒŒ ์‹คํ–‰๋˜๋Š” ํŒŒ์ผ์€ ๋Š๋ฆฌ๊ฒŒ ์œ ์ง€๋˜๊ณ  ๋น ๋ฅด๊ฒŒ ์‹คํ–‰๋˜๋Š” ํŒŒ์ผ์€ ์‹ค์ œ ์ฝ”๋“œ๊ฐ€ ๋ฐ”๋€ ์ƒํƒœ๋กœ ๋น ๋ฅด๊ฒŒ ์œ ์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฏธ์ณ ๊ฐ€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋‘ ํŒŒ์ผ์ด ๋‹ค์‹œ ๋Š๋ฆฌ๊ฒŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค (3-6 ์ดˆ).

@Glinkis ์ฒซ ๋ฒˆ์งธ ์‹คํ–‰ ํ›„ Enter ํ‚ค๋ฅผ ๋ˆŒ๋Ÿฌ๋„ ๋ ๊นŒ์š”? ์—ฌ์ „ํžˆ 1.6 ์ดˆ ์•ˆ์— ํ‘œ์‹œ ๋˜๋‚˜์š”? (์žฌ๋ฐฉ์†ก ํŠธ๋ฆฌ๊ฑฐ)


@SimeonRolev ๋‚˜๋Š” ๋‹น์‹ ์ด ๊ฒŒ์‹œ ํ•œ ์˜ˆ์ œ๋ฅผ ์‚ดํŽด๋ณด๊ณ  ๋™์ผํ•œ ๋‹จ๊ณ„ (ํŒจํ„ด ...)๋กœ ์–ด๋–ค ์ข…๋ฅ˜์˜ ์ˆซ์ž๋ฅผ ์–ป์—ˆ๋Š”์ง€ ๋ณผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ตœ์‹  ์ •๋ณด:
try1 : ๋‚˜๋Š” ๋‹น์‹ ์˜ ๋‹จ๊ณ„๋ฅผ ์‹œ๋„ํ–ˆ์„ ๋•Œ ๋‚ด๊ฐ€ ๊ทธ๊ฒƒ์„ ์‹œ๋„ํ•˜๊ณ  6 ์ดˆ๋ฅผ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค-> ๊ฐ™์€ ํ…Œ์ŠคํŠธ๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•  ๋•Œ 3 ์ดˆ๋กœ ๋–จ์–ด์กŒ์Šต๋‹ˆ๋‹ค (์ž…๋ ฅ์„ ๋ˆ„๋ฅด์‹ญ์‹œ์˜ค)
try2 : Kent repo์—์„œ jest๋ฅผ 26.4๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ-> ์žฌ์‹คํ–‰์„ ์œ„ํ•ด ๊ฑฐ์˜ ๋™์ผํ•˜๊ฒŒ 3 ์ดˆ ์‹คํ–‰
try3 : ๋ฒค์น˜ ๋งˆํฌ ํ…Œ์ŠคํŠธ ์ €์žฅ์†Œ์—์„œ index.spec.js ํŒŒ์ผ์„ ๊ฐ€์ ธ ์™”์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Kent repo์— ๋–จ์–ด ๋œจ ๋ ธ์Šต๋‹ˆ๋‹ค. (๋‹ค๋ฅธ ๋ชจ๋“  ํ…Œ์ŠคํŠธ ํŒŒ์ผ ์‚ญ์ œ)-> ๋†€๋žŒ 2.8 ์ดˆ (SAME JEST 26.4.2, SAME COMPUTER, POWERSHELL, NODE_VERSION ๋“ฑ ... ์–ด์ œ ํ…Œ์ŠคํŠธ๊ฐ€ ์—ฌ๊ธฐ์— ๊ฒŒ์‹œ ๋จ)
image

๋‚˜๋Š”์ด try3์„ ์—ฌ์ „ํžˆ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค => ๋‚ด ํŒŒ์ผ์— ๋Œ€ํ•œ Kent repo ์—์„œ ์žฌ์‹คํ–‰์‹œ ~ 3sec์ด์ง€๋งŒ ๋‚ด repo ์—์„œ๋Š” ์žฌ์‹คํ–‰์‹œ 0.300s๋กœ ๋–จ์–ด์ง‘๋‹ˆ๋‹ค (์ด๊ฒƒ์„ ๋””๋ฒ„๊น…ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค)
ํŽธ์ง‘ : ์ผ„ํŠธ๊ฐ€ ์ด๊ฒƒ์„ ํ™•์ธํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค : P

Enter๋ฅผ ๋ˆ„๋ฅด๋ฉด ์•ฝ 200ms ๋‚ด์— ํ…Œ์ŠคํŠธ๊ฐ€ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

@nasreddineskandrani ๊ทธ ๋ฐ˜๋Œ€๋กœ ์‹œ๋„ ํ–ˆ์Šต๋‹ˆ๊นŒ? ๋‚ด ๋ง์€, ๋Š๋ฆฐ ์ €์žฅ์†Œ์—์„œ ๋‹น์‹ ์˜ ๊ฒƒ์œผ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ๋ณต์‚ฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๊นŒ? ๊ทธ๋Ÿฌ๋‚˜ ๋ฌธ์ œ๊ฐ€ ๋‚ด๊ฐ€ ๊ฒŒ์‹œ ํ•œ ์ €์žฅ์†Œ์— ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ถ„๋ช…ํžˆ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๋™์ผํ•œ ๋ฌธ์ œ๋ฅผ ๊ฒช๊ณ  ์žˆ์œผ๋ฉฐ ์žฌํ˜„ ๊ฐ€๋Šฅํ•œ ์˜ˆ๋ฅผ ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.

@kentcdodds ํ•œ ๋ฒˆ ๋” ์šฐ๋ฆฌ์˜ ์˜์›…์ด ๋˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@SimeonRolev ๋‚ด ๋ฒค์น˜ ๋งˆํฌ์—์„œ Kent repo์™€ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Kent Repo์— ๋ญ”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋Š๋ฆฐ ์›์ธ์€ => ์™ธ๋ถ€ ๋†๋‹ด์ด ๋” ๋น ๋ฆ…๋‹ˆ๋‹ค.

์ด github ๋ฌธ์ œ๋Š” ๋™์ผํ•œ ์„ฑ๋Šฅ์— ๋„๋‹ฌํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— Jest ์„ฑ๋Šฅ ์ฐฝ๊ณผ macOS / Linux์™€ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๋‚ด ์ƒ๊ฐ์— ๊ทธ๊ฒƒ์„ ์ ˆํ•˜์ง€ ์•Š์•˜๋‹ค. (jest v23์„ ์‚ฌ์šฉํ•˜๋ฉด 2 ๋…„ ์ „๋ณด๋‹ค ํ›จ์”ฌ ๋‚˜์Œ)

์•ˆ๋…•ํ•˜์„ธ์š”, ์—ฌ๊ธฐ์—์„œ๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. Windows ์ปดํ“จํ„ฐ์™€ WSL์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋™์ž‘์„ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœ์ ํŠธ ํŒŒ์ผ์„ WSL์— ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ๋™์ผํ•œ ๋‘ ๊ฐ€์ง€ ๊ธฐ๋ณธ ํ…Œ์ŠคํŠธ์˜ ์‹คํ–‰์ž…๋‹ˆ๋‹ค.
Windows 10 (๋ฒ„์ „ 2004) :
image
WSL 2 (Ubuntu 20.04) :
image

ํ…Œ์ŠคํŠธ๋Š” ๋งค์šฐ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค.
image
image

ํ”„๋กœ์ ํŠธ๋Š” CRA๋กœ ์ƒ์„ฑ๋˜์—ˆ์œผ๋ฏ€๋กœ ์„ค์ •์„ ๋ง์น  ์ˆ˜์žˆ๋Š” ๊ตฌ์„ฑ์ด ์—†์œผ๋ฉฐ Jest ์ธก๋ฉด์—์„œ ์•„๋ฌด๊ฒƒ๋„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
๋™์ผํ•œ ํ…Œ์ŠคํŠธ๊ฐ€ ๊ฑฐ์˜ ์ฆ‰๊ฐ์ ์œผ๋กœ ๋ชจ์นด์—์„œ ์—„์ฒญ๋‚˜๊ฒŒ ๋น ๋ฅด๊ฒŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ๋ฅผ์œ„ํ•œ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์„ ์„ค์ •ํ•˜๋ ค๊ณ ํ•˜๋Š”๋ฐ, Jest๋ฅผ ์ •๋ง๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์ง€๋งŒ, ์ ์  ๋” ๋งŽ์€ ํ…Œ์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ• ์ˆ˜๋ก ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ๊ฐ€ ๋Š๋ฆฌ๊ณ  ๋Š๋ ค์งˆ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ฐ๊ฐ์˜ ํ…Œ์ŠคํŠธ๋Š” 0.8 ์ดˆ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. Windows์—์„œ ํ…Œ์ŠคํŠธ ์‹คํ–‰์„ ์—‰๋ง์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.
๋ฌธ์ œ๋Š” ๋” ์‹ฌํ–ˆ๋‹ค. ํ•œ ๋ฒˆ์˜ ํ…Œ์ŠคํŠธ๋Š” 15 ์ดˆ ์ •๋„ ๊ฑธ๋ฆฌ์ง€ ๋งŒ --runInBand์™€๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์ƒํ™ฉ์ด ์กฐ๊ธˆ ๋‚˜์•„์ง€๋Š” ๊ฒƒ ๊ฐ™์•˜์ง€๋งŒ ๋ชจ์นด ์›Œ์น˜ ๋ชจ๋“œ๊ฐ€ ์ฆ‰๊ฐ์ ์ด๋ผ๋Š” ์ ์„ ๊ฐ์•ˆํ•  ๋•Œ ์—ฌ์ „ํžˆ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

Yarn์€ ๋ฒ„์ „ 1.22.5์ด๊ณ  ๋‹ค๋ฅธ ๋ชจ๋“  npm ์ข…์†์„ฑ (์˜ˆ : react ๋ฐ react-scripts)์€ ์ตœ์‹  ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.

๋ฐ”์ด๋Ÿฌ์Šค ๋ฐฑ์‹  ๋ฐ Windows ๋ฐฉ์–ด๊ธฐ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜์—ฌ ํšจ๊ณผ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ–ˆ์ง€๋งŒ ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋‚ด ํ”„๋กœ์ ํŠธ ํด๋”์— ๋Œ€ํ•œ ์ธ๋ฑ์‹ฑ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜์—ฌ ์•„๋ฌด ์†Œ์šฉ์ด ์—†์Šต๋‹ˆ๋‹ค.

ํŽธ์ง‘ : Enter ํ‚ค๋ฅผ ๋ˆŒ๋Ÿฌ ๋ณด์•˜๊ณ  ํ…Œ์ŠคํŠธ๋Š” WSL๋งŒํผ ๋น ๋ฆ…๋‹ˆ๋‹ค.
image

์ด์ œ ์ •๋ง ํ˜ผ๋ž€ ์Šค๋Ÿฌ์›Œ์š” :)

๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋งค์šฐ ๋Š๋ฆฐ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ๋Š” 0.3 ์ดˆ๊ฐ€ ๊ฑธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ฌด ์ž‘์—…๋„ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์„ ๊ฐ์•ˆํ•  ๋•Œ ๋งค์šฐ ๋งŽ์Šต๋‹ˆ๋‹ค. ์ด ์Šค์œ„ํŠธ๋Š” 0.1 ์ดˆ ์ด๋‚ด์— ์™„๋ฃŒ ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค.

ํŽธ์ง‘ 2 : ํ…Œ์ŠคํŠธ ๋ชจ์Œ์— 100 ๊ฐœ์˜ ํ…Œ์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์„ ๋•Œ Enter ํ‚ค๋ฅผ ๋ˆŒ๋Ÿฌ ์‹คํ–‰ํ•˜๋”๋ผ๋„ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ์•ฝ 44 ์ดˆ๊ฐ€ ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค.
image

๋™์ผํ•œ ํ…Œ์ŠคํŠธ ๋ชจ์Œ์€ WSL์—์„œ ์•ฝ 9-10 ์ดˆ๊ฐ€ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.
image

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰