# [[Next.js 환경에서의 UI 컴포넌트 스타일링 및 렌더링 최적화]] ## 📌[[ brief]] Summary [[Next.js]] 환경(특히 App Router 및 [[React Server Components]])에서의 UI 컴포넌트 스타일링은 런타임 오버헤드를 최소화하고 렌더링 성능을 최적화하는 방향으로 진화하고 있습니다 [1]. 과거 널리 쓰이던 런타임 [[CSS-in-JS]]는 서버 컴포넌트(RSC) 호환성 문제로 인해 새로운 접근법이 요구되며, 런타임 비용이 없는 [[Tailwind CSS]]나 정적 CSS 추출 방식이 대안으로 권장됩니다 [2-4]. 성공적인 렌더링 최적화를 위해서는 서버 컴포넌트를 기본으로 활용하고 동적 스타일링이나 상호작용이 필요한 곳에만 클라이언트 컴포넌트를 제한적으로 배치해야 합니다 [5]. ## 📖 Core Content * **[[React [[Server Components]] (RSC)]] 패러다임과 렌더링 최적화:** [[Next.js 15]]의 App Router는 RSC를 핵심 구조로 채택하여, 자바스크립트 번들을 클라이언트에 전송하지 않고 서버에서 HTML을 직접 렌더링합니다 [6, 7]. 성능 최적화를 위해서는 상호작용(상태, 이벤트 핸들러)이 필요한 경우에만 'use client' 디렉티브를 사용하여 클라이언트 컴포넌트를 만들고, 기본적으로는 서버 컴포넌트를 활용하여 자바스크립트 번들 크기를 최소화해야 합니다 [5, 8]. * **런타임 CSS-in-JS의 한계 및 호환성 대응 ([[styled-components]]):** Styled-components나 Emotion 같이 [[React Context]]에 의존하는 런타임 CSS-in-JS 라이브러리는 컨텍스트(Context)를 사용할 수 없는 서버 컴포넌트 환경과 근본적으로 호환되지 않는 문제가 있었습니다 [2, 4, 9]. 이를 해결하기 위해 Next.js 15에서는 `useServerInsertedHTML` 훅을 사용하는 '[[Style Registry]]' 패턴을 도입하여 서버 렌더링 시 CSS 규칙을 수집해 HTML 헤드에 주입할 수 있게 하였습니다 [10]. 나아가 Styled-components v6.3.0 이상부터는 RSC 환경을 자동 감지하여 인라인 `