Skip to content

Next.js 애플리케이션에서 CSS가 시차를 두고 렌더링되는 문제 #36

@portfolio-y0711

Description

@portfolio-y0711

Next.js는 기본적으로 서버 사이드 렌더링을 지원하므로 초기 페이지 로드 시에 서버에서 HTML과 CSS를 생성하고 클라이언트로 전송합니다. 이 과정에서 CSS가 로드되는데 시간이 걸릴 수 있어 사용자가 화면에 먼저 컨텐츠를 볼 때까지 일시적으로 스타일이 적용되지 않는 것처럼 보일 수 있습니다.

이 문제를 해결하기 위해 몇 가지 방법이 있습니다:

  1. Critical CSS: 중요한 부분에 해당하는 CSS를 추출하여 인라인으로 포함시킵니다. 이를 통해 초기 렌더링 시에 필수적인 스타일이 즉시 적용됩니다. styled-jsx@emotion과 같은 라이브러리를 사용하여 컴포넌트 내에 인라인 CSS를 정의할 수 있습니다.

  2. CSS Module 사용: CSS Module을 사용하여 컴포넌트별로 스타일을 모듈화하고, 필요한 CSS만 해당 컴포넌트와 함께 번들링합니다. 이렇게 하면 페이지가 로드될 때 필요한 CSS만 로드되므로 초기 렌더링 속도가 향상됩니다.

  3. 미리 로드(Preloading): <link rel="preload">를 사용하여 초기 페이지 로드 시에 CSS 파일을 미리 로드하도록 지정할 수 있습니다. 이를 통해 브라우저가 CSS를 미리 다운로드하여 사용할 수 있게 됩니다.

  4. 서버 사이드 렌더링 설정 조정: Next.js의 서버 사이드 렌더링 설정을 조정하여 CSS를 최적화할 수 있습니다. 예를 들어, getInitialProps를 사용하여 초기 렌더링 시에 필요한 CSS를 로드하도록 설정할 수 있습니다.

이러한 방법 중 하나 또는 여러 방법을 조합하여 Next.js 애플리케이션에서 CSS 시차 문제를 해결할 수 있습니다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions