[React] React.memo๋กœ ์ตœ์ ํ™”ํ•˜๊ธฐ
728x90

Today, What I learned?

์‚ฌ์‹ค์ƒ ๋ผ๋””์˜ค๋ผ๋Š” ์ฝ˜์†”์€ ๋ผ๋””์˜ค๋ฒ„ํŠผ์— ํ•ด๋‹นํ•˜๋Š” ๊ฒฝ๋ ฅ ๋ถ€๋ถ„ ์ปดํฌ๋„ŒํŠธ์— ๋“ค์–ด๊ฐ€ ์žˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ ,

์ „์ฒด์ ์œผ๋กœ ๋ Œ๋”๋ง์ด ๋˜๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

๋ถ€๋ชจ์ปดํฌ๋„ŒํŠธ์˜ ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์—!...

 

 

์ด๋Ÿฐ ์“ธ๋ฐ์—†๋Š” ๋ Œ๋”๋ง ํšŸ์ˆ˜๋ฅผ ์ค„์ด๊ณ ์ž, React.memo๋ฅผ ์ ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

 

UserTopInfo -> ์ฒดํฌ ์˜์—ญ์„ ๊ฐ์‹ธ๋Š” ์ปดํฌ๋„ŒํŠธ -> ์ฒดํฌ๋ฐ•์Šค/๋ผ๋””์˜ค ๋ฒ„ํŠผ ์ปดํฌ๋„ŒํŠธ ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑ์ด ๋˜์–ด์žˆ์–ด์„œ,

ํด๋ฆญ์˜ ์ฃผ์ฒด๊ฐ€ ๋˜๋Š” ๊ฐ€์žฅ ๋‚ด๋ถ€ ์ปดํฌ๋„ŒํŠธ์ธ ์ฒดํฌ๋ฐ•์Šค์™€ ๋ผ๋””์˜ค ๋ฒ„ํŠผ ์ปดํฌ๋„ŒํŠธ์— memo๋ฅผ ์ ์šฉํ–ˆ๋‹ค.

๋‘˜ ๋‹ค userTopInfo์—์„œ ์ „์—ญ ์ƒํƒœ์ธ userInfo๋ผ๋Š” props๋ฅผ ๊ณตํ†ต์ ์œผ๋กœ ๋ฐ›๊ณ  ์žˆ๋‹ค. (์œ ์ €๊ฐ€ ์ˆ˜์ •ํ•œ ์ •๋ณด์— ๋Œ€ํ•œ ๋ถ€๋ถ„!)

 

 

profiler

์ •๋ณด ์ˆ˜์ •๊ณผ ๊ด€๋ จ๋œ UserInfoTop ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๊ณ„์† ์—…๋ฐ์ดํŠธ๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๋ผ๋””์˜ค ๋ฒ„ํŠผ๊ณผ ์ฒดํฌ๋ฐ•์Šค์— memo๋ฅผ ์ ์šฉํ•œ ํ›„ ๋ Œ๋”๋ง ์†๋„๊ฐ€ 4.3ms์—์„œ 3.5ms๋กœ ๊ฐ์†Œํ•œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

((ํ”„๋กœํŒŒ์ผ๋Ÿฌ๋ฅผ ์ด๋ ‡๊ฒŒ ๋ณด๋Š” ๊ฒƒ์ด ๋งž๋‚˜?))

 

 

React.memo๋ฅผ ์“ธ ํƒ€์ด๋ฐ?

์ด ๋…€์„์„ ์“ธ ํƒ€์ด๋ฐ์ด ๋„๋Œ€์ฒด ์–ธ์ œ์ธ๊ฐ€.. ์ •๋ฆฌ๋„ ํ•ด๋ณด๊ณ  ํ–ˆ์ง€๋งŒ ์˜ ๊ฐ์ด ์•ˆ ์™€์„œ ์œ ํŠœ๋ธŒ ์—ฌํ–‰์„ ๋‹ค๋…€์™”๋‹ค.

 

React.memo๋Š” ์ฃผ๋กœ ์ž์‹ ์ปดํฌ๋„ŒํŠธ์— ์ ์šฉํ•˜๋Š”๋ฐ, props๋ฅผ ์ฒดํฌํ•˜๊ณ  ๋ณ€ํ™”๊ฐ€ ์žˆ์„ ๋•Œ ๋ฆฌ๋ Œ๋”๋ง์„ ํ•œ๋‹ค.

props์˜ ๋ณ€ํ™”์—๋งŒ ์˜์กดํ•œ๋‹ค๋Š” ์ !.. ๊ฑฐ๊ธฐ๋‹ค ๋‚จ์šฉํ–ˆ๋‹ค๊ฐ„ ์บ์‹œ์šฉ๋Ÿ‰์ด ๋งŽ์•„์ง€๊ธฐ ๋•Œ๋ฌธ์— ํ•„์š”ํ•  ๋•Œ๋งŒ ์“ฐ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ๐Ÿ˜‡

 

๊ฐ™์€ props๋กœ ์ž์ฃผ ๋ Œ๋”๋ง์ด ๋˜๊ฑฐ๋‚˜ (์ง€๊ธˆ ๊ฐ™์€ ๊ฒฝ์šฐ)

์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ Œ๋”๋ง ๋  ๋•Œ๋งˆ๋‹ค ๋ณต์žกํ•œ ๋กœ์ง์ด ์ฒ˜๋ฆฌ๋˜๋Š” ๊ฒฝ์šฐ ์ฐฐ๋–ก๊ฐ™์ด ์“ธ ์ˆ˜ ์žˆ๋‹ค.

 

 

 

๋ Œ๋”๋ง ์ตœ์ ํ™”.. ๊ฐˆ ๊ธธ์ด ๋ฉ€๋‹ค!

728x90