๐ "RAIL", ํ๋ฐํธ์๋ ์ฑ๋ฅ์ ๋ํ ์ค์ํ ์ฌ๊ณ ๋ฐฉ์
2799 ๋จ์ด performancefrontendbeginnersjavascript
๐ ์ถ์ธกํ์ง ๋ง๊ณ ์ธก์ ํ์ธ์!
โ ์ด๊ฒ์ด ์ด ์น์ฌ์ดํธ๊ฐ ๋๋ฆฐ ์ด์ ์ ๋๋ค!! ์์!
โ ์... ๊ทธ๋ฅ ์ธก์ ํ๊ณ ์ปคํผ ๋ง์๋ฉด์
ํ์ง๋ง ์ฑ๋ฅ์ ์ธก์ ํ๊ณ ๋๋ฉด ์ด๋ฐ ์๊ฐ์ ํ๊ฒ ๋ ๊ฒ์ ๋๋ค.
๐ Hey, I measured... but I don't have goal! 1second? 2second? What is criterion??
๐ ์๊ฒ ์ต๋๋ค ๊ธฐ๋ณธ ์ฑ๋ฅ ๊ธฐ์ค์ธ tadaaamRAIL์ ์๋ ค๋๋ฆฌ๊ฒ ์ต๋๋ค.
๐ ๋ฃจ๋น ์จ ๋ ์ผ์ฆ?
๐ ์๋์ค, ๊ทธ๊ฒ๊ณผ ์ ํ ๊ด๋ จ์ด ์์ต๋๋ค. RAIL์ "Response, Animation, Idle, Load"๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค.
์ฝํ ์ธ
๊ธฐ์ค ์๊ฐ
์๋ต
100ms
์๊ธฐ
16ms
๊ฒ์ผ๋ฅธ
50ms
์ง
1000ms
โญ ์๋ต
์ผ๋ถ ์์ ์ ์ฌ์ฉ์๊ฐ ๋ฌด์ธ๊ฐ๋ฅผ ์ ๋ ฅํ ํ 100ms ๋ฏธ๋ง์ผ๋ก ์๋ตํด์ผ ํฉ๋๋ค.
Click! ----- less than 100ms -----> open modal
โญ ์ ๋๋ฉ์ด์
์ ๋๋ฉ์ด์ (์์)์ ์ฌ์ค ์๋ง์ ์ด๋ฏธ์ง๋ค์ ์งํฉ์ฒด์ผ ๋ฟ์ ๋๋ค. ๋ฐ๋ผ์ "1์ด"์ ๋ช ๊ฐ์ ์ด๋ฏธ์ง๊ฐ ์๋์ง ์๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
์ฝํ ์ธ
์ด๋น ์ด๋ฏธ์ง ์
TV
30
์ํ
24
๊ฒ์
60
PC
60
์ด์ ์์ฃผ ์ฌ์ด ์ํ์ ํด๋ด ์๋ค
1s - 60images
โ
16ms - 1image
์ด๊ฒ์ด ์ ๋๋ฉ์ด์ ์ด 16ms ๋ฏธ๋ง์ผ๋ก ๋๋์ผ ํ๋ ์ด์ ์ ๋๋ค.
๊ทธ๋ฐ๋ฐ ์ด 1์ด์ ๋ช ๊ฐ์ ์ด๋ฏธ์ง๊ฐ ์๋์ง ๋จ์๋ฅผ FPS(Frames per second)๋ผ๊ณ ํด์ PC์์ ์ ๋๋ฉ์ด์ ์ 60fps์ ๋๋ค.
โผ ์๋ฅผ ๋ค์ด chartjs-plugin-streaming์ ๊ตฌ์ฑ์๋ "frameRate"๊ฐ ์์ต๋๋ค.
โญ ์ ํด
์ฝํ ์ธ ๋ฅผ ๋ก๋ํ ํ ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฌด ์์ ๋ ์ํํ์ง ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง ์ฌ์ ํ XHR ๋๋ ์ง์ฐ ๋ก๋ ์ด๋ฏธ์ง๋ฅผ ํตํด API์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ์์ ์ ์ํํฉ๋๋ค. ์ด๋ฌํ ์์ ์ 50ms ๋ฏธ๋ง์ด์ด์ผ ํฉ๋๋ค.
๐ click Url!
โ
๐ finish rendering and we see something on browser!
๐ญ wait, Im browser, I need to load images that I didn't on purpose at first
โ
โ (50ms)
โ
๐ญ Ok I've done it! I don't use main thread finally!
๐ ohh I can handle now on browser now!!
โญ ๋ก๋
์น ํ์ด์ง ์ฝํ ์ธ ๋ก๋ฉ ์๊ฐ
I wanna see dev.io! click url!
โ
โ (1 second)
โ
I see dev.io contents on browser and handle something as well!
์ค์ ๋ก ์ฒ์์ ๋ชจ๋ ์ฝํ ์ธ ๋ฅผ ๋ก๋ํ ํ์๋ ์์ต๋๋ค.
์ค์ํ ๊ฒ์ ์ฌ์ฉ์๊ฐ ๋ธ๋ผ์ฐ์ ์์ ๋ณด๋ ์ฝํ ์ธ ๋ฅผ ๋ก๋ํ๋ ๊ฒ์ ๋๋ค.
โ ๋ค์๊ธ "๊ทธ๋ผ ์ด๋ป๊ฒ ์ธก์ ํ ๊น??"
Reference
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(๐ "RAIL", ํ๋ฐํธ์๋ ์ฑ๋ฅ์ ๋ํ ์ค์ํ ์ฌ๊ณ ๋ฐฉ์), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://dev.to/kaziusan/rail-important-way-of-thinking-about-frontend-performance-97iํ ์คํธ๋ฅผ ์์ ๋กญ๊ฒ ๊ณต์ ํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์์ต๋๋ค.ํ์ง๋ง ์ด ๋ฌธ์์ URL์ ์ฐธ์กฐ URL๋ก ๋จ๊ฒจ ๋์ญ์์ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค