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

나눔웹 웹 성능 꿀팁

긴 페이지 스크롤이 무거울 때, 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
번호 분류 제목 글쓴이
» 웹 성능 긴 페이지 스크롤이 무거울 때, content-visibility로 렌더링 줄이는 법 new 나눔웹
75 모바일 모바일 100vh 잘림, dvh·svh로 주소창 높이까지 맞추는 법 new 나눔웹
74 마케팅 구글 서치 콘솔 등록 방법, 새 홈페이지 소유권 확인부터 색인 요청까지 new 나눔웹
73 퍼블리싱 CSS :has() 선택자 활용법, 자식 상태에 따라 부모 박스 스타일 바꾸기 new 나눔웹
72 웹 성능 반응형 이미지 srcset 쓰는 법, 모바일에 PC용 큰 사진을 보내지 않으려면 나눔웹
71 퍼블리싱 제목 줄바꿈이 어색할 때, text-wrap: balance로 한 단어만 남는 문제 정리 나눔웹
70 마케팅 robots.txt 작성법, 검색에 안 보여야 할 페이지와 사이트맵 위치 알려주는 순서 나눔웹
69 UI/UX 스켈레톤 로딩 화면 만들기, 빈 화면 대신 회색 자리 표시로 기다림 줄이는 법 나눔웹
68 퍼블리싱 모바일에서 표(table)가 깨질 때, 가로 스크롤로 감싸거나 카드형으로 바꾸는 법 나눔웹
67 웹 성능 gzip 압축 설정법, 홈페이지 HTML·CSS 파일을 작게 보내 로딩 줄이는 순서 나눔웹
66 모바일 아이폰에서 숫자가 파란 전화 링크로 바뀔 때, format-detection으로 막는 법 나눔웹
65 마케팅 사이트맵(sitemap.xml) 만들기, 새 페이지가 검색에 늦게 잡힐 때 작성과 제출법 나눔웹
64 UI/UX FAQ 아코디언 만들기, details와 summary 태그로 스크립트 없이 접고 펴는 법 나눔웹
63 웹 성능 PageSpeed Insights 점수 보는 법, 실사용자 데이터와 실험실 점수가 다를 때 나눔웹
62 UI/UX 404 에러 페이지 만들기, 방문자를 놓치지 않는 구성과 상태 코드 확인법 나눔웹
61 퍼블리싱 카드 목록 반응형 정렬, 미디어쿼리 대신 grid auto-fill과 minmax로 나눔웹
60 마케팅 구글 검색 사이트 이름이 엉뚱하게 나올 때, WebSite 구조화 데이터로 지정하는 법 나눔웹
59 모바일 모바일 가로 스크롤이 생길 때, 화면 밖으로 튀어나온 요소 찾아 고치는 순서 나눔웹
58 웹 성능 외부 폰트가 늦게 뜰 때, preconnect와 dns-prefetch로 연결 시간 줄이는 법 나눔웹
57 퍼블리싱 모달 팝업 만들기, dialog 태그로 ESC 닫기와 배경 클릭 닫기까지 처리하는 법 나눔웹
Board Pagination Prev 1 2 3 4 Next
/ 4
rhwlsghkcocndgus XE2.1.39 STAGE1.5.4