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

나눔웹 웹 성능 꿀팁

긴 페이지 스크롤이 무거울 때, 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
번호 분류 제목 글쓴이
76 웹 성능 홈페이지 로딩 속도를 3배 높이는 '이미지 최적화' 실무 가이드 나눔웹
75 퍼블리싱 CSS 변수로 유지보수와 테마 기능을 한 번에! (CSS Custom Properties) 나눔웹
74 마케팅 카카오톡 링크 썸네일의 비밀! 클릭률을 높이는 '오픈 그래프(OG)' 세팅법 나눔웹
73 모바일 모바일 꽉 찬 화면 하단 짤림 현상! '100vh'의 함정과 완벽 해결법 나눔웹
72 웹 성능 홈페이지 첫 화면 글자 깜빡임(투명 현상) 1초 만에 해결하는 법 나눔웹
71 퍼블리싱 스마트폰에서 로고가 흐리게 보인다고요? 'SVG' 포맷이 정답입니다. 나눔웹
70 웹 성능 클릭 실수 유발하는 '화면 덜컹거림(CLS)', 단 한 줄로 해결하는 법 나눔웹
69 모바일 고객의 이탈을 막는 1초 디테일, '모바일 맞춤형 키보드' 세팅법 나눔웹
68 UI/UX 모바일에서 버튼 누를 때 생기는 촌스러운 '회색 박스' 없애는 법 나눔웹
67 UI/UX 레이아웃을 망치는 긴 글, 예쁘게 '...'으로 자르는 마법의 CSS 나눔웹
66 UI/UX 상단 메뉴에 제목이 가려진다고요? '부드러운 스크롤' 마법의 2줄 나눔웹
65 모바일 아이폰에서 입력창 누를 때 화면 '자동 확대'되는 현상 막는 법 나눔웹
64 퍼블리싱 지저분한 모바일 스크롤바, 기능은 남기고 쏙 숨기는 마법의 CSS 나눔웹
63 모바일 모바일 웹을 진짜 '앱(App)'처럼! 이미지 꾹 누를 때 뜨는 팝업 막기 나눔웹
62 UI/UX 애플(Apple) 사이트처럼 고급스러운 '반투명 유리' 메뉴 만드는 법 나눔웹
61 퍼블리싱 무거운 플러그인 NO! 넷플릭스처럼 쫀득한 '가로 스와이프' CSS로 뚝딱 만들기 나눔웹
60 UI/UX 1%의 디테일이 브랜딩을 완성합니다! '텍스트 드래그 색상' 바꾸기 나눔웹
59 UI/UX 투박한 파란색 체크박스는 그만! 단 1줄로 우리 회사 컬러 입히기 나눔웹
58 모바일 하단 고정 버튼이 아이폰 '검은 줄'에 겹친다면? (Safe Area 대응법) 나눔웹
57 모바일 앗, 실수로 새로고침! 튕기는 모바일 화면 꽉 잡는 법 (Overscroll) 나눔웹
Board Pagination Prev 1 2 3 4 Next
/ 4
rhwlsghkcocndgus XE2.1.39 STAGE1.5.4