실무에 바로 적용할 수 있는 웹 제작 꿀팁 및 유용한 자료실 공간입니다.
나눔웹이 제공하는 핵심 노하우와 마케팅 인사이트를 자유롭게 활용해 보십시오.

나눔웹 웹 성능 꿀팁

긴 페이지 스크롤이 무거울 때, content-visibility로 렌더링 줄이는 법

긴 페이지 스크롤이 무거울 때는 상품 목록, FAQ, 포트폴리오처럼 섹션이 많은 페이지에서 자주 나옵니다. 화면 밖에 있는 카드까지 처음부터 전부 그리느라 첫 화면이 늦게 뜨고, 스크롤도 버벅입니다.
CSS content-visibility: auto를 섹션 단위로 걸면, 브라우저가 화면 밖 내용은 그리지 않다가 가까워졌을 때 렌더링합니다. 자바스크립트 없이 적용할 수 있어 유지관리가 편합니다.

💡 이미지를 lazy만 해도 충분하지 않나요?

이미지 지연 로딩은 파일 다운로드만 미룹니다. 카드 레이아웃, 글자 줄바꿈, 그림자 같은 그리기 작업은 그대로 남습니다. 섹션이 수십 개면 그 비용이 쌓여 첫 페인트와 스크롤이 무거워집니다. content-visibility는 그 렌더링 자체를 화면 근처까지 미루는 쪽입니다.

1. 섹션에 auto를 걸고 높이도 예약하기

긴 목록의 각 카드·섹션 래퍼에 content-visibility: auto를 줍니다. 다만 화면 밖일 때는 안쪽 높이를 모르므로, 스크롤바가 출렁일 수 있습니다. 그래서 contain-intrinsic-size로 대략 높이를 예약합니다. auto 500px처럼 쓰면, 한 번 그려진 뒤에는 실제 높이를 기억해 두는 브라우저가 많습니다.

/* 긴 목록의 각 섹션·카드 */
.section {
  content-visibility: auto;
  contain-intrinsic-size: auto 500px;
}

높이 추정값은 실제 섹션 평균에 가깝게 맞추면 스크롤 점프가 줄어듭니다. 카드가 작으면 300px, 후기가 길면 700px처럼 페이지 성격에 맞게 조정하세요. 첫 화면(히어로·상단 메뉴)에는 걸지 않는 편이 안전합니다. 바로 보여야 하는 영역까지 미루면 오히려 어색해집니다.

2. 어디에 쓰고, 어디에 쓰면 안 되는지

고객사에서 효과가 잘 나던 곳은 반복되는 큰 블록입니다. 포트폴리오 그리드, FAQ 묶음, 블로그 목록, 시공 사례 갤러리처럼 구조가 비슷한 섹션이 여러 개일 때입니다. 반대로 한 페이지에 섹션이 서너 개뿐이거나, 안의 높이가 들쭉날쭉한 인터랙션 영역에는 이득이 작거나 스크롤이 어색할 수 있습니다.

적용추천이유
목록·FAQ 섹션권장화면 밖 그리기 비용이 큼
첫 화면 히어로비권장바로 보여야 함
고정 헤더·팝업비권장항상 렌더 필요

3. 지원 범위와 실무에서 확인할 점

크롬·엣지 85+, 파이어폭스 125+, 사파리 18+에서 쓸 수 있습니다. 지원하지 않는 브라우저는 속성을 무시하므로 레이아웃이 깨지지는 않습니다. 다만 사파리에서는 섹션을 아주 잘게 나눈 초장문 페이지에서 스크롤이 덜 매끄럽다는 보고가 있어, 적용 뒤에는 아이폰 사파리로 빠르게 훑어 보는 편을 권합니다.

/* 검색·앵커로 바로 점프할 섹션 */
.section {
  content-visibility: auto;
  contain-intrinsic-size: auto 500px;
  /* 고정 헤더 높이만큼 여유 */
  scroll-margin-top: 80px;
}

접근성 측면에서는 화면 밖이어도 DOM과 접근성 트리에는 남습니다. 그래서 스크린 리더가 내용을 못 읽는 문제는 보통 없습니다. 적용 후 확인은 간단합니다. 개발자 도구 Performance에서 첫 로딩 구간의 렌더링 시간을 비교하고, 실제 폰에서 스크롤바 점프와 앵커 링크(#section) 이동이 자연스러운지만 보면 됩니다.

"화면 밖까지 미리 그릴 필요는 없습니다."

나눔웹은 목록·사례가 많은 페이지에서 첫 화면과 스크롤 체감을 같이 점검하며, 필요한 구간에만 렌더링 최적화를 넣습니다.


List of Articles
번호 분류 제목 글쓴이
89 퍼블리싱 다크 모드 CSS 대응법, 폰을 어둡게 했더니 입력창만 하얗게 뜰 때 new 나눔웹
88 웹 성능 뒤로 가기 하면 페이지가 처음부터 다시 뜰 때, bfcache 막는 원인 찾는 법 나눔웹
87 마케팅 LocalBusiness 구조화 데이터 작성법, 구글에 상호·주소·영업시간 정확히 알리기 나눔웹
86 UI/UX 링크 밑줄이 글자에 붙어 답답할 때, text-underline-offset으로 다듬는 법 나눔웹
85 모바일 모바일 키보드가 입력창을 가릴 때, visualViewport로 화면 맞추는 법 나눔웹
84 웹 성능 사용하지 않는 CSS 줄이기, 크롬 Coverage 탭으로 안 쓰는 코드 찾는 법 나눔웹
83 마케팅 GA4 문의 전환 설정법, 감사 페이지 도달로 실제 문의 수 세는 순서 나눔웹
82 UI/UX 고정 헤더에 제목이 가려질 때, scroll-margin-top으로 앵커 맞추는 법 나눔웹
81 퍼블리싱 CSS 컨테이너 쿼리 쓰는 법, 화면이 아니라 카드 폭에 맞춰 반응하기 나눔웹
80 UI/UX 폼 에러가 입력 전에 뜨는 문제, :user-invalid로 고치는 법 나눔웹
79 모바일 모바일 브라우저 상단바 색 맞추기, theme-color 메타 태그 쓰는 법 나눔웹
78 마케팅 문의 완료 페이지 noindex 설정법, 검색에 잡히지 않게 막는 순서 나눔웹
77 UI/UX 문의란이 내용만큼 늘어나게, CSS field-sizing으로 맞추는 법 나눔웹
» 웹 성능 긴 페이지 스크롤이 무거울 때, content-visibility로 렌더링 줄이는 법 나눔웹
75 모바일 모바일 100vh 잘림, dvh·svh로 주소창 높이까지 맞추는 법 나눔웹
74 마케팅 구글 서치 콘솔 등록 방법, 새 홈페이지 소유권 확인부터 색인 요청까지 나눔웹
73 퍼블리싱 CSS :has() 선택자 활용법, 자식 상태에 따라 부모 박스 스타일 바꾸기 나눔웹
72 웹 성능 반응형 이미지 srcset 쓰는 법, 모바일에 PC용 큰 사진을 보내지 않으려면 나눔웹
71 퍼블리싱 제목 줄바꿈이 어색할 때, text-wrap: balance로 한 단어만 남는 문제 정리 나눔웹
70 마케팅 robots.txt 작성법, 검색에 안 보여야 할 페이지와 사이트맵 위치 알려주는 순서 나눔웹
Board Pagination Prev 1 2 3 4 5 Next
/ 5
rhwlsghkcocndgus XE2.1.39 STAGE1.5.4