패스잇
프론트엔드 개발 · 중급

웹 브라우저의 렌더링 과정에서 발생하는 Reflow(Layout)와 Repaint(Paint)의 개념을 설명하고, 이들이 웹 성능에 미치는 영향과 Reflow/Repaint를 최소화하기 위한 개발 실천 방법들을 제시해 주세요.

힌트 · DOM/CSSOM 변경이 렌더링 파이프라인에 미치는 영향, `transform`, `opacity` 속성 활용 등을 설명하세요.

DOM 트리CSSOM 트리렌더 트리박스 모델레이아웃 스래싱

모범답안

네, 말씀하신 Reflow와 Repaint는 웹 브라우저 렌더링 과정에서 중요한 개념입니다.

Reflow는 레이아웃 계산을 다시 하는 과정으로, DOM 구조 변경, 요소의 크기나 위치 변경 등이 발생했을 때 일어납니다. Repaint는 이렇게 변경된 레이아웃을 바탕으로 화면에 다시 그리는 과정입니다.

이 두 과정은 웹 성능에 큰 영향을 미칩니다. 특히 Reflow는 비용이 많이 드는 작업이라 자주 발생하면 웹 페이지의 반응성을 떨어뜨릴 수 있습니다.

Reflow와 Repaint를 최소화하기 위해 몇 가지 방법을 사용할 수 있습니다. 예를 들어, DOM 변경을 최소화하고, transform이나 opacity와 같이 Reflow를 발생시키지 않는 속성을 활용하는 것이 좋습니다. 또한, 스타일 변경을 한 번에 묶어서 적용하거나, 레이아웃 정보에 접근하는 코드를 최소화하여 "레이아웃 스래싱"을 방지하는 것도 중요합니다.

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

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

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

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