패스잇
프론트엔드 개발 · 심화

대규모 웹 애플리케이션에서 Critical Rendering Path(CRP)를 최적화하기 위한 고급 전략에는 어떤 것들이 있으며, 각 전략이 렌더링 성능에 미치는 영향을 구체적인 예시와 함께 설명해주세요. 특히, CSSOM과 DOM 트리의 병합 및 렌더 트리 생성 과정에서 발생하는 병목 현상을 어떻게 식별하고 해결할 수 있을까요?

힌트 · 렌더링 차단 리소스 제거, 비동기 CSS/JS 로딩, 리소스 우선순위 지정, 트리 셰이킹, 코드 분할 등을 고려하며, 개발자 도구의 Performance 탭을 활용한 병목 식별 방법을 포함합니다.

CSSOMDOM 트리렌더 트리병목 현상레이아웃 스래싱

모범답안

네, Critical Rendering Path (CRP) 최적화는 웹 성능에 매우 중요합니다. 몇 가지 고급 전략과 그 영향, 그리고 병목 현상 해결 방법에 대해 말씀드리겠습니다.

우선, 렌더링 차단 리소스를 최소화해야 합니다. CSS는 <head>에 배치하고, 필요 없는 CSS 규칙은 제거하는 트리 셰이킹을 적용합니다. JavaScript는 async 또는 defer 속성을 사용하여 비동기적으로 로딩하여 DOM 파싱을 막지 않도록 합니다.

CSSOM과 DOM 트리가 합쳐져 렌더 트리를 생성하는 과정에서 병목 현상이 발생할 수 있습니다. Chrome 개발자 도구의 Performance 탭을 사용하여 렌더링 시간을 분석하고, 레이아웃 스래싱이 발생하는지 확인합니다. 레이아웃 스래싱은 JavaScript가 스타일을 변경하고 즉시 레이아웃을 다시 계산하도록 강제할 때 발생합니다. 이를 해결하기 위해 스타일 변경을 일괄 처리하거나, requestAnimationFrame을 사용하여 브라우저가 최적화할 수 있도록 합니다.

리소스 우선순위 지정도 중요합니다. preload 또는 preconnect를 사용하여 중요한 리소스를 미리 로딩하면 렌더링 속도를 향상시킬 수 있습니다. 코드 분할을 통해 초기 로딩에 필요한 코드만 로드하고, 나머지는 필요할 때 로딩하는 것도 좋은 방법입니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 웹 성능 최적화 면접 질문

← 웹 성능 최적화 면접 질문 전체 보기