(์ ) ํด์น๋ฉ์ค ํ๋ก ํธ์๋ ๊ฐ๋ฐ์
(์ ) ๋ผ์ธ ํ์ด๋ธ์ ํ๋ฐํธ์๋ ๊ฐ๋ฐ์
์ผ์ฑ SSAFY, ํ๋ก๊ทธ๋๋จธ์ค ๋ฑ ํ๋ฐํธ์๋ ๊ฐ๋ฐ ๊ฐ์
์น ์ฑ๋ฅ ์ต์ ํ ํ๋ก์ ํธ ๋ฐ ๊ฐ์ ์ ์
๋ง์ดํฌ๋ก์ํํธ์จ์ด 393ํธ(JS ์ฃผ์ ), 392ํธ(๋ธ๋ก์ฒด์ธ ์ฃผ์ ) ๊ธฐ๊ณ
Courses
Reviews
- Complete Guide to Frontend Build Systems - Part.1: Module System
- Complete Guide to Frontend Build Systems - Part.1: Module System
dojin83512273
ยท
Real-world web performance optimization for frontend developers (feat. React) - Part. 2Real-world web performance optimization for frontend developers (feat. React) - Part. 2dyenom21054846
ยท
Real-world web performance optimization for frontend developers (feat. React) - Part. 2Real-world web performance optimization for frontend developers (feat. React) - Part. 2wnwogus12319219
ยท
Real-world web performance optimization for frontend developers (feat. React) - Part. 1Real-world web performance optimization for frontend developers (feat. React) - Part. 1
Posts
Q&A
๋ฒ๋ค๋ฌ ์ดํด ๋ฐ ํ์ต ๋ฐฉํฅ์ ๋ํ ์ง๋ฌธ์ ๋๋ค.
์๋ ํ์ธ์, leeebug ๋.๋ชจ๋ ๊ณต๋ถํด๋ณด๋ฉด ์ข๊ฒ ์ง๋ง, ์ ๊ฐ ์ ํ์ ํ๋ค๋ฉดRollup์ ๋จผ์ ๊ณต๋ถํด๋ณผ ๊ฒ ๊ฐ์ต๋๋ค. ์ด์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.๋ญ๊ฐ ์๋ก ๋ฑ์ฅํ๋ ๋ฒ๋ค๋ฌ๋ผ๋ ๊ฐ๋ ์์๋ ํฌ๊ฒ ๋ค๋ฅด์ง ์์์ฆ, ๋ฒ๋ค๋ง ๊ธฐ๋ฅ์์ ๋ํ ์ผํ ์ฐจ์ด๋ ์๊ฒ ์ง๋ง, ๋์ํ๋ ๋ฐฉ์์์๋ ๋๋์์ดํจ๋ฌผ๋ก , ์ต๊ทผ ๋น๋ ๋๊ตฌ๋ค์ ๋ค์ํ ๊ธฐ๋ฅ๋ค(๋ฒ๋ค๋ง, ํธ๋์คํ์ผ๋ง ๋ฑ)์ ์ข ํฉ์ ์ผ๋ก ๊ฐ์ง๊ณ ์์ด์ ์ ์ฒด์ ์ธ ์ดํด๋ฅผ ํ๋ ค๋ฉด ๋ฒ๋ค๋ฌ ๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ๊ธฐ๋ฅ๋ค์ ๋ํด์๋ ์ดํดํ ํ์๋ ์์๊ฐ์ฅ ์ ํต์ ์ด๊ณ ์ญ์ฌ(?)๊ฐ ๊ธด Webpack์ ๊ณต๋ถํ๋ฉด ์ข๊ธด ํ์ง๋ง, ์์ฆ ๋ฒ๋ค๋ฌ์ ๋นํด์ ๋ง์ด ๋ณต์กํจ๋ฐ๋ผ์ ์ฐ์ ๊ฐ๋จํ Rollup์ ์ค์ฌ์ผ๋ก ๊ณต๋ถํ๊ณ ์ฌ์ ๊ฐ ์๋ค๋ฉด Webpack์ ๊ตฌ์กฐ๋ ๋ณด๋ฉด ์ข์ ๋ฏ๊ฐ์ธ์ ์ผ๋ก๋, Rolldown์ ์์ง ์์ ์ ์ธ ๋ฒ์ ์ด ์๋๋ผ๊ณ ์๊ฐํด์ ์คํ์ ์ธ ๋์ ์ด ์๋๋ฉด ๊ฐ๋จํ ํ ์ดํ๋ก์ ํธ์์๋ง ์ฌ์ฉํด๋ณด๊ณ ์ฐ์ ์ง์ผ๋ณด๋ ๊ฒ์ ์ถ์ฒ๋ฌผ๋ก ์ํฉ์ ๋ฐ๋ผ์๋, ๊ทธ๋ฌ๋๊น ํ์ ์์ Webpack์ ์ฃผ๋ก ์ฌ์ฉํ๊ณ ๊ณ์๋ค๋ฉด Webpack์ ๋จผ์ ๊ณต๋ถํด๋ณด๋ ๊ฒ์ด ์ข๊ฒ ์ต๋๋ค! ๋์์ด ๋์ จ๊ธธ ๋ฐ๋ผ๋ฉฐ ๊ฐ์์ ๊ด์ฌ์ ๊ฐ์ ธ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
- 0
- 2
- 27
Q&A
์์ ํ๋ก์ ํธ ๊ด๋ จ ์ง๋ฌธ์ ๋๋ค.
์๋ ํ์ธ์, ์น์ฒ ๋ ํน์ ์ค์ต ์๋ฃ ๋ชป ์ฐพ์ผ์ จ๋์?์ค์ต ๋ ํฌ์งํ ๋ฆฌ ์ฃผ์๋ ๊ฐ ์น์ ์ ์ ์์์ ๋งํฌ ๊ฑธ๋ ค์์ต๋๋ค.https://github.com/performance-lecture/lecture-3/https://github.com/performance-lecture/lecture-4/
- 0
- 1
- 31
Q&A
bundle analyzer ์ ๋ํ ์ง๋ฌธ์ด ์์ต๋๋ค.
์๋ ํ์ธ์, ์๋ณ์๋ณ๋๊ฐ๋ฅํ ์๋ ์๊ณ , ๋ถ๊ฐ๋ฅํ ์๋ ์์ต๋๋ค...!๊ฐ์์์๋ bundle-analyzer๋ฅผ CLI๋ก ์คํ์ ํ๋๋ฐ์,๊ทธ๋ฌ์ง ์๊ณ webpack์ plugin์ผ๋ก ์ค์ ํ๊ณ ๋น๋ํ๋ฉด ๋ฉ๋๋ค.๊ทธ๋ฌ๋ฉด ๋น๋ํ๋ฉด์ ๊ทธ ๋น๋ ๋ด์ฉ์ ๋ฆฌํฌํธํ๊ธฐ ๋๋ฌธ์ ํ์ผ๋ช ์ด ์ผ์นํฉ๋๋ค. ๊ฐ์์์๋ ํธ์์ CLI๋ฅผ ์ฌ์ฉํด์ ์ฌ์ด์ฆ์ ํ์ด๋ฐ์ผ๋ก ๊ทธ ์ญํ ์ ๊ตฌ๋ถํด์ผ ํฉ๋๋ค.(๋๋ ์ผ๋ถ ์ฝ๋ ๋ด์ฉ์ ๋ณด๊ณ ๊ตฌ๋ถํ ์ ์์ต๋๋ค!) ๋ต๋ณ์ด ๋์๋์ จ๊ธธ ๋ฐ๋ผ๋ฉฐ, ๊ฐ์์ ๊ด์ฌ์ ๊ฐ์ ธ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๐
- 0
- 2
- 65
Q&A
Cannot find module serve ์๋ฌ
์๋ ํ์ธ์, soyeon๋.ํ์ธํด๋ณด๋ serve ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ ๋ฐ์ดํธ ๋๋ฉด์ ๋ด๋ถ ๊ตฌ์กฐ๊ฐ ๋ณ๊ฒฝ๋์ด ์ํฅ์ ์ค ๊ฒ ๊ฐ์ต๋๋ค.ํด๋น ์คํฌ๋ฆฝํธ๋ ๋ฐ๋ก ์์ ํด์ master ๋ธ๋์น์ push ํด๋์ต๋๋ค.๋ค์ pull (๋๋ clone) ๋ฐ์ผ์๋ฉด ๋ฉ๋๋ค!์ ๋ณด ๊ฐ์ฌํฉ๋๋ค. ๐์ฐธ๊ณ ๋ก ์์ธ์ ์์ธํ ์ค๋ช ๋๋ฆฌ๋ฉด,๋ง์ํด์ฃผ์ yarn serve ๋ ๋ค์๊ณผ ๊ฐ์ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํฉ๋๋ค.npm run build && node ./node_modules/serve/bin/serve.js -u -s build์ด ๋ serve ํจํค์ง ๋ด๋ถ์ ํ์ผ์ ์ง์ node๋ก ์คํํ๋๋ก ํด๋์๋๋ฐ, ํ์ผ ๊ตฌ์กฐ๊ฐ ๋ณ๊ฒฝ๋๋ฉด์ ์๋ฌ๊ฐ ๋ฐ์ํ์ต๋๋ค.์๋๊ฒฝ๋ก๋ก ๋์ด ์๋ ์คํฌ๋ฆฝํธ๋ฅผ "npm run build && serve -u -s build" ๋ค์๊ณผ ๊ฐ์ด ์์ ํ์ต๋๋ค.
- 1
- 1
- 64
Q&A
๊ฐ๋ฐํ๊ฒฝ์ ๋ํ ์๋ด
์๋ ํ์ธ์, long๋.ํ์ต์ ๋ถํธํจ์ ๋๋ ค ์ ๋ง ์ฃ์กํฉ๋๋ค.๋ง์ํ์ ๋๋ก ๊ฐ์ ํ๊ฒฝ์ ๋ํ ๋ณด์์ ๋น ๋ฅธ ์์ผ ๋ด์ ํด๋๊ฒ ์ต๋๋ค.๊ทธ๋ฆฌ๊ณ ์ด๋ฏธ์ง ๋ํ ์กฐ์น๋ฅผ ์ทจํด๋ณด๊ฒ ์ต๋๋ค.ํน์๋ ์ ๋๋ ๋ถ๋ถ์ด ์์ด ์ง๋ฌธ์ ์ฌ๋ ค์ฃผ์๋ฉด ๋ฐ๋ก ํด๊ฒฐ์ฑ ์ ์์๋ก๋ผ๋ ๊ณต์ ๋๋ฆฌ๊ฒ ์ต๋๋ค.๋ค์ ํ ๋ฒ ๊ฐ์ ํ๊ฒฝ์ด ์ํํ์ง ์์ ์ ์ฌ๊ณผ๋๋ฆฝ๋๋ค.
- 1
- 2
- 126
Q&A
์ฑ๋ฅ ํญ์์ ์์์๊ฐ์ด ์๋ณด์ ๋๋ค
์๋ ํ์ธ์ qjatjs123123๋.์ต๊ทผ์ ์์ค์ฝ๋์ React ๋ฒ์ ์ ์ ๋ฐ์ดํธํ์ต๋๋ค.๋ฆฌ์กํธ 16์ผ๋ก ๋ง๋ ์ฝ๋์๋ค๋ณด๋ ์ต์ ํ๊ฒฝ๋ค๊ณผ ๋ฒ์ ์ด์๊ฐ ์์ด์์.์ด๋ก ์ธํด ์ปดํฌ๋ํธ์ ๋ํ Timing(์์ ์๊ฐ) ์ ๋ณด๊ฐ ์ฌ๋ผ์ก์ต๋๋ค.Timing ์ ๋ณด์ ๋ํด ์ค๋ช ๋๋ฆฌ๋ฉด, Timing ์น์ ์์๋ User Timing API(performance.mark() ๋ฐ performance.measure()) ๋ฅผ ํตํด ๊ธฐ๋ก๋ ์ ๋ณด๋ฅผ ํ์ํด์ค๋๋ค.(์ฐธ๊ณ : https://developer.chrome.com/docs/devtools/performance/reference?hl=ko#timings)React 16 ๋ฒ์ ์์๋ ์ปดํฌ๋ํธ์ ์คํ ์๊ฐ์ Timing API๋ก ๊ธฐ๋กํ์๋๋ฐ, React 17 ๋ฒ์ ์ดํ๋ก ์ ํ์ฑ ๋ฐ ์ ์ง๋ณด์ ๋ฌธ์ ๋ก ์ธํด ์ ๊ฑฐ๋์์ต๋๋ค.๋ฐ๋ผ์ React 19๋ก ๋ฒ์ ์ ์ ๋ฐ์ดํธํ ์ง๊ธ main ์ฝ๋์์๋ ์ปดํฌ๋ํธ์ ํ์ด๋ฐ ์ ๋ณด๋ฅผ ๋ณผ ์ ์์ต๋๋ค.๋ง์ฝ ์ง์ ๋ณด๊ณ ์ถ๋ค๋ฉด, lecture-1์ a3999d1fa4c2bcb3bed97c92fe9892fe5f42a4f8 ์ด ํด์ ์ปค๋ฐ์ผ๋ก ์ฒดํฌ์์ํ์๊ณ ํ์ธํด๋ณด์ค ์ ์์ต๋๋ค. (๋ฒ์ ์ ๋ฐ์ดํธ ์ ์ปค๋ฐ)๋ต๋ณ์ด ๋์ จ๊ธธ ๋ฐ๋ผ๋ฉฐ, ๊ฐ์์ ๊ด์ฌ์ ๊ฐ์ ธ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! :)
- 0
- 2
- 147
Q&A
layout shift๊ฐ ์์ฃผ ์ฝ๊ฐ ์ผ์ด๋๋ ๋ถ๋ถ์ ๋ํด
์๋ ํ์ธ์, BBB AAA๋.ํ์ธํด๋ณด๋ ํด๋น Layout Shift๋ ์คํฌ๋กค๋ฐ๊ฐ ์๊ธฐ๋ฉด์ ๋ฐ์ํ๋ Layout Shift๋ก ๋ณด์ ๋๋ค.์ด๋ฏธ์ง๋ฅผ ๋ถ๋ฌ์ค๋ฉด ์คํฌ๋กค์ด ์๊ธฐ๋ ๊ทธ ์๊ฐ์ด ๊ธฐ๋ก๋ ๊ฒ์ ๋๋ค.๊ฒฐ๋ก ์ ์ผ๋ก ๋ง์๋๋ฆฌ๋ฉด,Layout Shift๊ฐ ๋ฐ์ํ ๊ฒ์ ๋ง๊ณ , ๊ทธ ์์น๊ฐ ๋๋ฌด ์์(0.00014639456069971026) Lighthouse์์๋ ์ ๋๋ก ํ๊ธฐ๊ฐ ์ ๋ ๊ฒ ๊ฐ์ต๋๋ค.์ง์ ํ์ธํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.Lighthouse๋ก ๊ฒ์ฌ๋ฅผ ํ ๋ค, ์ค๋ฅธ์ชฝ ์ ... ๋ฒํผ์์ JSON์ผ๋ก ๋ค์ด๋ก๋๋ฅผ ๋ฐ์ต๋๋ค.(์ฌ์ง) ๊ทธ ํ, ํด๋น ํ์ผ์ ์ด์ด "cumulative-layout-shift"๋ฅผ ๊ฒ์ํด๋ณด๋ฉด ๋ค์ ์ด๋ฏธ์ง์ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.(์ฌ์ง)์ฆ, ์ค์ ๋ฐ์ดํฐ๋ 0.00014639456069971026 (numericValue) ์ด์ง๋ง, displayValue๋ 0์ผ๋ก ์๋ง ๋ฐ์ฌ๋ฆผ ๋ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค.(์ง์ Lighthouse์์ displayValue๋ฅผ ์ด๋ป๊ฒ ๊ณ์ฐํ๋์ง ํ์ธํด๋ณด์ง ์์์ง๋ง, ์์์ ๋์งธ ์๋ฆฌ๊น์ง ๋ฐ์ฌ๋ฆผํ๋๊ฒ ์๋๊ฐ ์ถ์ต๋๋ค.)๊ทธ๋ผ ๋ต๋ณ์ด ๋์๋์ จ๊ธธ ๋ฐ๋ผ๋ฉฐ, ๊ฐ์์ ๊ด์ฌ์ ๊ฐ์ ธ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! :)
- 0
- 2
- 226
Q&A
3-4) ์ด๋ฏธ์ง ์ฌ์ด์ฆ ์ต์ ํ ๊ณผ์ ์์ img ํ๊ทธ ์๋ ์๋๋ ๋ฌธ์
์๋ ํ์ธ์, ํคํค๋์ด๋ฏธ์ง ์๋ฌ์ ๋ํด์ ์ง๋ฌธ์ ์ฃผ์ จ๋๋ฐ์์ ๊ฐ ํ์ธํด๋ณด๋, picture, source ํ๊ทธ์์์ ์ด๋ฏธ์ง ํด๋ฐฑ์ type ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค.์ฆ, type ๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋จผ์ ์ด๋ค ์ด๋ฏธ์ง(source)๋ฅผ ๋ ๋๋งํ ์ง ํ๋จํ๊ณ ํด๋น ์ด๋ฏธ์ง๋ฅผ ํ์ํฉ๋๋ค.๋ฐ๋ผ์ type="image/webp"๋ผ๋ฉด ์ด๋ฏธ์ง ์ฃผ์์ ์๋ฌ๊ฐ ์๋ ์๋ srcset์ ์ด๋ฏธ์ง๋ฅผ ๋ ๋๋ง ํฉ๋๋ค.์ด๋ ์ด๋ฏธ์ง์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ฉด ๊ทธ๋ฅ ์๋ฐ์ ๋ณด์ฌ์ฃผ๊ณ (์ฌ์ง) ํ๊ทธ์ onerror(onError) ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ ์์ ๋๋ค.์ ๊ฐ์์์๋ srcset ์ "s"๋ฅผ ๋ถ์ฌ์ฃผ๋ ๊ฒ ๋ฟ๋ง ์๋๋ผ type ๋ํ ์ด์ํ ๊ฐ์ผ๋ก ๋ฐ๊ฟ์คฌ๊ธฐ ๋๋ฌธ์ ์ง์ํ์ง ์๋ ์ด๋ฏธ์ง ํ์ ์ผ๋ก ํ๋จํ์ฌ (์ฌ์ง) ํ๊ทธ์ ์ด๋ฏธ์ง๋ฅผ ๋ณด์ฌ์ค ๊ฒ์ ๋๋ค.(์ฆ, source ํ๊ทธ์ ํด๋ฐฑ์ srcset ๊ฐ์ ์๋ฌ ์ ๋ฌด์๋ ๋ฌด๊ดํฉ๋๋ค.)๊ฒฐ๋ก ์ ์ผ๋ก ์ง์ ํด๋ณด์ค ๋, type๊ฐ์ ์ด์ํ ๊ฐ์ผ๋ก ๋ณ๊ฒฝํด์ ํ ์คํธ ํด๋ณด์๊ธธ ๋ฐ๋๋๋ค.๊ฐ์์์ ์ค๋ช ์ด ๋ถ์กฑํ ๋ถ๋ถ์ผ๋ก ํผ๋์ ๋๋ ค ์ฃ์กํฉ๋๋ค. ใ ๋ต๋ณ์ด ๋์๋์ จ๊ธธ ๋ฐ๋ผ๋ฉฐ, ๊ฐ์์ ๊ด์ฌ์ ๊ฐ์ ธ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. :)
- 0
- 2
- 237
Q&A
Material--icons_4.0.0.woff2
์๋ ํ์ธ์, lab ajung ๋.๋ง์ํ์ Material--icons_4.0.0.woff2์ ์ถ์ฒ๊ฐ ์ด๋์ผ๊น์?์ฐพ์๋ดค์ง๋ง, Material icons ์์ ์ ๋ฐ ํํ๋ก ์ ๊ณตํ๋๊ฑด ๋ชป์ฐพ๊ฒ ๋ค์.(https://github.com/google/material-design-icons/tree/master/font)์ฐ์ ์์ด์ฝ์ ์ธ ๋ ํฐํธ๋ก๋ ๊ฑฐ์ ์ฌ์ฉํด๋ณด์ง ์์์ ์์ ๋ชจ๋ฅด๊ฒ ์ง๋ง,๊ณต์ ๊ฐ์ด๋์์ ์ด๋ป๊ฒ ์ต์ ํ๋ฅผ ํ ์ ์๋์ง๋ฅผ ์ฐพ์๋ณด์๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.๊นํ๋ธ ์ด์๋ผ๋๊ฐ ์ฐพ์๋ณด์๋ฉด ์์ง ์์๊น ์๊ฐ๋ฉ๋๋ค.์ ๊ฐ ๋ง์ฝ ์ต์ ํ๋ฅผ ํ๋ค๋ฉด,ํ์ํ ์์ด์ฝ๋ง ์ถ์ถ(subset)ํ์ฌ ์ฌ์ฉ๊ฐ๋ฅํ๋ค๋ฉด ํฐํธํํ๊ฐ ์๋ svgํํ๋ก ์์ ํ์ํ ๊ฒ๋ง ์ฌ์ฉํ๋ ํํ๋ก ๋ณ๊ฒฝpreload ์ ์ฉ ์ด ์ ๋ ๊ณ ๋ คํด๋ณผ ์ ์์ง ์์๊น ์๊ฐ๋ฉ๋๋ค.๊ทธ๋ผ ๋์์ด ๋์ จ๊ธธ ๋ฐ๋ผ๋ฉฐ, ๊ฐ์์ ๊ด์ฌ์ ๊ฐ์ ธ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! :)
- 0
- 1
- 176
Q&A
์ด๋ฏธ์ง CDN ๋ง๋๋ ๋ฐฉ๋ฒ
์๋ ํ์ธ์, ์ ๋๋ฒ๋. ์ด ๊ฐ์์์๋ ์ด๋ฏธ์ง CDN์ ๋ง๋๋ ๋ฒ๋ฒ์ ๋ํด์๋ ๋ฐ๋ก ๋ค๋ฃจ์ง ์์ต๋๋ค ใ ๋ค๋ฅธ ๊ฐ์๋ฅผ ์ฐพ์๋ณด์๊ฑฐ๋ ๋ธ๋ก๊ทธ ๊ธ์ ์ฐพ์๋ณด์๋ฉด ๋์์ด ๋์ค ๊ฒ ๊ฐ์ต๋๋ค.
- 0
- 1
- 402





