Minimize main-thread work๊ฐ 6.7์ด๋ก, ์ฒซ ํ์ด์ง ์ด์๋ง์ ๋ฉ์ธ์ค๋ ๋๊ฐ ํ ์ผ์ด ๋๋ฌด ๋ง์ด ์ํ์๋ค.
JS ํ์ผ์ด ๋ง๊ณ , ๋ฐ์ดํฐ๋ ์์ฒญ ๋ถ๋ฌ์ค๊ณ ๋ ๋๋ง๋ ๋ง์์ง๋๊น ๊ทธ๋ฐ๊ฑฐ ๊ฐ์๋ค.
๊ทผ๋ฐ ๋๋ ์ปดํฌ๋ํธ๋ ์ ์ชผ๊ฐ๊ณ , use client
๋ ์ต๋ํ ์ค์ด๋ฉด์ ์๋ฒ ์ปดํฌ๋ํธ๋ก ์ ์จ๋จ์ด์ ๋์ด์ ๊ตฌ์กฐ์ ์ผ๋ก ์ชผ๊ฐค ๊ฑด ์์๋ค.
๊ทธ๋์ ๊ฒฐ๊ตญ ๋จ์ ๋ฌธ์ ๋:
์ฒซ ํ์ด์ง์์ ๋๋ฌด ๋ง์ ๊ฑธ ๋ณด์ฌ์ฃผ๊ณ ์์๋ ๊ฒ ๋ฌธ์ ์๋ค.
์ง์ฐ ๋ก๋ฉ์ ๋ง ๊ทธ๋๋ก ์ง์ฐํด์ ๋ก๋ฉํ๋ ๊ฒ์ด๋ค.
ํ์ํ ์์ ์ด ๋ ๋ ๊ทธ๋ ๊ฐ์ ๊ฐ์ฒด(์ปดํฌ๋ํธ)๋ฅผ ๊ฐ์ ธ์ค๋ ๋ฐฉ์์ด๋ผ๊ณ ์ดํดํ๋ฉด ๋๋ค.
์ฒซ ํ์ด์ง์์ ๋ฐ๋ก ๋ณด์ฌ์ฃผ์ง ์์๋ ๋๋ ๊ฒ์ ์ง์ฐ๋ก๋ฉ์ผ๋ก ๋ฉ์ธ์ค๋ ๋์ ๋ถ๋ด์ ์ค์ด๋ ๋ฐฉ๋ฒ
์๋ฅผ ๋ค์ด ๋ด ์ฌ์ดํธ์์๋
Next.js
์์ ๋์ import
ํ ๋ dynamic()
์ ์ฐ๋๋ฐ, ์ด๊ฑด ํด๋ผ์ด์ธํธ ์ปดํฌ๋ํธ์์๋ง ๊ฐ๋ฅํ๋ค.
๊ทธ๋์ ๋๋ DynamicmodalWrapper.tsx
๋ผ๋ ํด๋ผ์ด์ธํธ ์ปดํฌ๋ํธ๋ฅผ ํ๋ ์์ฑํ๋ค.
"use client";
import dynamic from "next/dynamic";
// ๋ชจ๋ฌ ์ปดํฌ๋ํธ ๋์ import, SSR ๋นํ์ฑํ
const LoginSignupModal = dynamic(
() => import("@/components/auth/LoginSignupModal"),
{ ssr: false }
);
export default function DynamicModalWrapper() {
return <LoginSignupModal />;
}
์ฌ๊ธฐ์ ssr: false
๋ ์๋ฒ์ ๋ ๋๋งํ์ง ์๊ณ ๋ธ๋ผ์ฐ์ ์๋ง ๋ ๋๋งํ๊ฒ ๋ค๋ ๋ป์ด๋ค. ์ด ๋ชจ๋ฌ ์ปดํฌ๋ํธ๋ ์ ์ ๊ฐ ๋ฒํผ์ ๋๋ฌ์ ํ์ํ ์๊ฐ์๋ง ๋ถ๋ฌ์ค๊ฒ ๋๋ ๊ฒ!
๋ก๊ทธ์ธ ๋ชจ๋ฌ์ฒ๋ผ ์ธ๊ธฐ๊ธ ์ฌ๋ผ์ด๋๋ dynamic์ผ๋ก ๊ฐ์๋ค.
const PopularStudySlider = dynamic(() => import("./PopularStudySlider"), {
ssr: false,
loading: () => (
<div className="grid grid-cols-1 md:grid-cols-3 ">
{Array.from({ length: 1 }).map((_, i) => (
<PopularCardSkeleton key={i} />
))}
</div>
),
});
์ฒ์์๋ ์ธ๊ธฐ๊ธ๋ ์ง์ฐ๋ก๋ฉ์ ํ๋๊ฒ ๋ง๋์ง ๊ณ ๋ฏผํ๋ค. ์ธ๊ธฐ๊ธ์ ๋น ๋ฅด๊ฒ ๋ณด์ฌ์ฃผ๋๊ฒ ์ข์๊ฑฐ ๊ฐ์์
๊ทผ๋ฐ ์คํ๋ ค ์ง์ฐ๋ก๋ฉ์ ์ ์ฉํ๋๊น ํ์ด์ง๊ฐ ๋ ๋นจ๋ผ์ ธ์ ์ธ๊ธฐ๊ธ์ด ๋ ๋นจ๋ฆฌ ๋ณด์ด๋ ๋๋์ด ๋ค์๋ค.
์๋ง ์ ์ฒด ํ์ด์ง๊ฐ ๋ฌด๊ฑฐ์์ ๋๋ ค์ง๋๊ฒ ์ง์ฐ๋ก๋ฉ์ผ๋ก ์กฐ๊ธ ๋ถ์ฐ๋๋๊น ๋๋จธ์ง๊ฐ ๋ ๋นจ๋ฆฌ ๋ก๋ฉ๋๋๊ฒ ์๋๊น?
์ถ๊ฐ์ ์ผ๋ก loading
์ต์
์ ์ฌ์ฉํด์ ์ค์ผ๋ ํค UI์ ๋ณด์ฌ์ฃผ๋ฉด์ ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์์์ผฐ๋ค.
์ด๋ ๊ฒ ์ธ๊ธฐ๊ธ ์ฌ๋ผ์ด๋ + ๋ก๊ทธ์ธ ๋ชจ๋ฌ์ ์ง์ฐ ๋ก๋ฉ์ผ๋ก ๋ถ๋ฆฌํ๊ณ ๋์ ๋ค์ ์ฑ๋ฅ ์ธก์ ํด๋ดค๋๋โฆ
Minimize main-thread work
6.7์ด โ 5.6์ด๋ก ์ค์ด๋ฆ!! ๐
๊ฐ๋จํ ์ง์ฐ ๋ก๋ฉ์ผ๋ก 1.1์ด๋ ์ค์ด๋ค์ด์ ๋ง์กฑ์ค๋ฌ์ ๋ค.
๋ค์ํธ์์๋ DB ์ต์ ํ์ ์ธ๋ฑ์ค ์ถ๊ฐ ๋ฑ์ผ๋ก ๋ฐฑ์๋ ์๋ต ์๋๋ฅผ ์ค์ธ ๊ณผ์ ์ ์ ๋ฆฌํ ์์ ์๋๋ค.