๐Ÿšค ์„ฑ์žฅ์ผ์ง€ 7.0

์ฑ… ํ–‰๋ณตํ•œ ์ด๊ธฐ์ฃผ์˜์ž(์›จ์ธ ๋‹ค์ด์–ด)์˜ ๋‚ด์šฉ์— ์ž๊ทน๋ฐ›์•„ ์‹œ์ž‘ํ•˜๋Š” ์†Œ๋ฐ•ํ•œ ์„ฑ์žฅ๊ธฐ๋ก

์‚ด์•„์žˆ๋Š” ๊ฝƒ๊ณผ ์ฃฝ์€ ๊ฝƒ์€ ์–ด๋–ป๊ฒŒ ๊ตฌ๋ณ„ํ•˜๋Š”๊ฐ€?
์„ฑ์žฅํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ์‚ด์•„ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.
์ƒ๋ช…์˜ ์œ ์ผํ•œ ์ฆ๊ฑฐ๋Š” ์„ฑ์žฅ์ด๋‹ค!

โš› (7.0)<์™„์ „ ๊ฐœํŽธ> ํŒŒ์ธ๋งŒ ํ•™์Šต๋ฒ•์„ ์•Œ๊ฒŒ ๋œ๋งŒํผ, ์„ฑ์žฅ์ผ์ง€๋Š” ์ •๋ง ๊ทธ ๋‚ ์˜ ํ‚ค์›Œ๋“œ ์ค‘์‹ฌ์œผ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌํ•˜๋„๋ก ํ•œ๋‹ค.

โš›๏ธ ํ‚ค์›Œ๋“œ: ์ง๊ด€์ ์ด๊ณ  ์‰ฝ๊ณ  ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž‘์„ฑ

Recharts

  • Recharts๋Š” React๋ฅผ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ, SVG ๊ธฐ๋ฐ˜์˜ ์ฐจํŠธ๋ฅผ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค.
  • Recharts๋Š” ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ์ฐจํŠธ๋ฅผ ์ง€์›ํ•œ๋‹ค.
  • ๋˜ํ•œ, ResponsiveContainer, ComposedChart ๋“ฑ์˜ api๋ฅผ ํ†ตํ•ด ๋ฐ˜์‘ํ˜• ๋ฐ ๋‹ค์–‘ํ•œ ํ˜•ํƒœ์˜ ์ฐจํŠธ๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

d3๊ฐ€ ์•„๋‹Œ Recharts๋ฅผ ์‚ฌ์šฉํ•œ ์ด์œ ๋Š” ํ™•์žฅ์„ฑ์— ์žˆ์–ด์„œ๋Š” d3๊ฐ€ ๋” ์œ ์—ฐํ•˜๊ณ  ๊ฐ•๋ ฅํ•˜์ง€๋งŒ, Recharts๋Š” ์ด๋ฆ„์ฒ˜๋Ÿผ React๋ฅผ ์œ„ํ•œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์— React์™€์˜ ํ˜ธํ™˜์„ฑ์ด ๋” ์ข‹๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ๋˜ํ•œ, ํ˜„์žฌ ์ง„ํ–‰ํ•˜๋Š” ๋ฏธ์…˜ ํ”„๋กœ์ ํŠธ์—์„œ ๋‚ด๊ฐ€ ๋” ๊นŠ๊ฒŒ ๋ฐฐ์šฐ๊ณ  ์‹ถ์€ ๋ถ€๋ถ„์€ ์ฐจํŠธ๋ฅผ ๊ทธ๋ฆฌ๋Š” ๊ฒƒ๋ณด๋‹ค๋Š” Test code ์ž‘์„ฑ์ด๊ธฐ์— ์ฐจํŠธ๋ฅผ ๊ทธ๋ฆฌ๋Š” ์ž‘์—…์—์„œ ํž˜์„ ๋นผ๊ณ  ์‹ถ์—ˆ๋‹ค. ํ•œํŽธ์œผ๋กœ ๋„ˆ๋ฌด ์ปค์Šคํ…€ํ•˜์ง€ ์•Š์œผ๋ฉด ์–ด๋–ป๊ฒŒ ํ• ๊นŒ ๊ฑฑ์ •ํ–ˆ๋Š”๋ฐ, ์ƒ๊ฐ๋ณด๋‹ค ๋งŽ์€ props๋ฅผ ์ œ๊ณตํ•ด์ฃผ๊ณ  ์žˆ์–ด์„œ ์ปค์Šคํ…€์ด ๊ฐ€๋Šฅํ–ˆ๋‹ค.

4-way-handshake: ์†ก์‹ ์ธก์—์„œ์˜ TIME_WAIT

  • 4-way-handshake๋Š” TCP ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•˜๊ธฐ ์œ„ํ•œ ๊ณผ์ •์ด๋‹ค.
  • 4-way-handshake์—์„œ๋Š” ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ฐ๊ฐ FIN ํŒจํ‚ท์„ ๋ณด๋‚ด๊ณ , ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ฐ๊ฐ ACK ํŒจํ‚ท์„ ๋ณด๋‚ด๋Š” ๊ณผ์ •์ด ์กด์žฌํ•œ๋‹ค.
  • ์•ž์˜ ๊ณผ์ •์€ ์ƒ๋žตํ•˜๊ณ , ์†ก์‹ ์ธก์€ ์ˆ˜์‹ ์ธก์—๊ฒŒ ACK๋ฅผ ๋ฐ›๊ณ  FIN์„ ๋ฐ›์€ ๋’ค์— ACK๋ฅผ ๋ณด๋‚ด๊ณ  TIME_WAIT ์ƒํƒœ๋กœ ๋“ค์–ด๊ฐ„๋‹ค.
  • ์ด๋Š” ์ˆ˜์‹ ์ธก์—์„œ ํ™•์‹คํžˆ ACK๋ฅผ ๋ฐ›๊ณ ์„œ ์†Œ์ผ“ ์—ฐ๊ฒฐ ์ข…๋ฃŒ๋ฅผ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค.

๐Ÿ“ ํšŒ๊ณ 

Recharts๋ฅผ ํ†ตํ•ด์„œ ์ฐจํŠธ๋ฅผ ๊ทธ๋ ค๋ณด์•˜๋‹ค. ์‚ฌ์‹ค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ€์ ธ๋‹ค๊ฐ€ ์“ฐ๋Š” ๊ฑด ๊ณต์‹๋ฌธ์„œ ๋ณด๋ฉด์„œ ์—ด์‹ฌํžˆ ๋”ฐ๋ผ๊ฐ€๋ฉด ๋˜๋Š”๊ฑฐ๋ผโ€ฆ ๊ทธ๋ ‡๊ฒŒ ์–ด๋ ค์šธ ๊ฑด ์—†์—ˆ๋‹ค. ๋‚ด์ผ ๊ฐ ๋ฐ์ดํ„ฐ์˜ ํ•„ํ„ฐ๋ง์„ ์ƒํƒœ๋กœ ๋‘๊ณ  ์ฐจํŠธ์— ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๋ฅผ ๋‹ฌ์•„์„œ ๊ตฌํ˜„ํ•˜๋ คํ•˜๋Š”๋ฐ ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ์ข€๋” ๊น”๋”ํ•˜๊ฒŒ ์ƒํƒœ๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ์„์ง€ ๊ณ ๋ฏผ์ด ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ณธ๊ฒฉ์ ์œผ๋กœ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ๋นก์„ธ๊ฒŒ ์ž‘์„ฑํ•ด๋ณด๋ ค ํ•œ๋‹ค. jest, react-testing-library์—์„œ ๋‚˜์•„๊ฐ€์„œ cypress๊นŒ์ง€ ๋‹ค๋ค„๋ณด์•„๋„ ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.

์ฐธ๊ณ