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

나눔웹 웹 성능 꿀팁

스크립트 때문에 홈페이지 첫 화면이 늦게 뜰 때, async와 defer 고르는 기준

홈페이지 첫 화면이 하얗게 잠깐 멈췄다가 뜬다면, head에 들어간 script 태그가 화면 그리기를 막고 있는지부터 보시는 게 좋습니다.
대부분은 defer나 async 속성 하나로 개선되지만, 둘을 잘못 고르면 슬라이더나 메뉴가 동작하지 않는 문제가 생깁니다.

💡 속성 하나로 왜 속도가 달라질까요?

브라우저는 HTML을 위에서부터 읽다가 일반 script 태그를 만나면 파일을 받고 실행할 때까지 그 아래 내용을 그리지 않습니다. 채팅 상담 위젯, 분석 태그, 광고 픽셀, jQuery 플러그인이 head에 줄줄이 있으면 그만큼 첫 화면이 늦어집니다. 유지보수 의뢰로 들어오는 사이트를 보면 이런 태그가 열 개 넘게 쌓여 있는 경우도 드물지 않습니다.

1. async와 defer, 실행 시점이 다릅니다

두 속성 모두 파일은 HTML을 읽는 동안 함께 내려받습니다. 차이는 언제, 어떤 순서로 실행하느냐입니다.

구분실행 시점실행 순서
속성 없음만나는 즉시 (화면 멈춤)적은 순서
deferHTML을 다 읽은 뒤적은 순서 보장
async다운로드가 끝나는 즉시보장 안 됨

2. 서로 의존하는 파일은 defer

jQuery를 먼저 불러오고 그 위에서 동작하는 슬라이더 플러그인처럼 순서가 중요한 파일은 defer가 맞습니다. 여기에 async를 붙이면 플러그인이 jQuery보다 먼저 실행되는 순간이 생겨, 새로고침할 때마다 될 때도 있고 안 될 때도 있는 골치 아픈 오류가 됩니다.

<!-- head 안에서 그냥 불러오면 화면 그리기가 멈춥니다 -->
<script src="/js/jquery.min.js"></script>
<script src="/js/slider.js"></script>

<!-- defer : HTML을 다 읽은 뒤, 적은 순서대로 실행 -->
<script src="/js/jquery.min.js" defer></script>
<script src="/js/slider.js" defer></script>

3. 혼자 동작하는 외부 태그는 async

구글 애널리틱스, 네이버 분석, 광고 픽셀처럼 다른 코드와 엮이지 않는 태그는 async로 두면 됩니다. 대부분의 업체가 제공하는 설치 코드에 이미 async가 붙어 있으니, 복사할 때 빠뜨리지 않았는지만 확인하시면 됩니다.

<!-- 다른 코드와 상관없는 분석·광고 태그는 async -->
<script async
  src="https://www.googletagmanager.com/gtag/js?id=G-XXXX">
</script>

4. 적용 전에 꼭 확인할 점

  • 본문 중간에 document.write를 쓰는 오래된 코드는 defer·async와 함께 쓰면 안 됩니다.
  • HTML 안에 직접 적은 인라인 스크립트에는 두 속성이 적용되지 않습니다. 이 코드가 jQuery를 쓴다면 함께 정리해야 합니다.
  • type="module" 스크립트는 따로 적지 않아도 defer처럼 동작합니다.
  • 바꾼 뒤에는 메뉴, 슬라이더, 팝업, 문의 폼을 PC와 모바일에서 한 번씩 눌러 보세요.

"빠른 첫 화면은 큰 공사보다 태그 정리에서 시작되는 경우가 많습니다."

나눔웹은 유지보수 점검 때 head 안의 스크립트를 하나씩 확인해,
기능은 그대로 두고 화면이 먼저 보이도록 순서를 다듬습니다.


List of Articles
번호 분류 제목 글쓴이
43 퍼블리싱 이미지 아래 몇 px 여백이 생길 때, vertical-align으로 없애는 법 new 나눔웹
» 웹 성능 스크립트 때문에 홈페이지 첫 화면이 늦게 뜰 때, async와 defer 고르는 기준 new 나눔웹
41 마케팅 검색 결과에 파비콘이 안 나올 때, favicon 크기와 link 태그 점검 순서 나눔웹
40 UI/UX 모바일 버튼이 잘 안 눌린다면? 터치 영역 44px 기준과 padding으로 넓히는 법 나눔웹
39 모바일 모바일 hover 색상이 눌린 채 남을 때, @media (hover)로 해결하기 나눔웹
38 퍼블리싱 position: sticky가 안 먹힐 때, 부모 overflow부터 확인해야 하는 이유 나눔웹
37 웹 성능 메인 배경 동영상 때문에 홈페이지가 느릴 때, 용량 줄이기와 video 태그 설정 나눔웹
36 마케팅 검색 결과 설명이 엉뚱하게 나올 때, title과 meta description 쓰는 법 나눔웹
35 퍼블리싱 썸네일 이미지 찌그러짐, object-fit과 aspect-ratio로 비율 맞추는 법 나눔웹
34 모바일 모바일 문의 폼 자동완성이 안 뜬다면? autocomplete 값과 인증번호 자동 입력 나눔웹
33 UI/UX 버튼 클릭 테두리(outline), 지우지 말고 :focus-visible로 정리하는 법 나눔웹
32 퍼블리싱 flex 레이아웃이 모바일에서 옆으로 삐져나올 때, min-width: 0이 필요한 이유 나눔웹
31 웹 성능 메인 배너 LCP가 느리다면? 첫 화면 이미지는 lazy 대신 fetchpriority로 나눔웹
30 마케팅 네이버 서치어드바이저 등록 순서, 새 홈페이지가 검색에 안 나올 때 점검할 4가지 나눔웹
29 웹 성능 글씨가 안 보이다가 갑자기 뜬다면? '웹 폰트 로딩' 1초 단축하는 마법 나눔웹
28 웹 성능 구글 SEO 점수 폭발! 이미지 로딩 속도 3배 높이는 '단 1줄'의 마법 나눔웹
27 마케팅 카톡에 우리 회사 링크 보낼 때 뜨는 '회색 빈 박스' 없애는 필수 세팅 (OG 태그) 나눔웹
26 마케팅 '제출하기' 버튼은 그만! 클릭률 200% 높이는 마법의 단어 (CTA) 나눔웹
25 마케팅 돈 버는 마케터의 비밀! 유입 출처를 추적하는 마법의 꼬리표 'UTM' 나눔웹
24 퍼블리싱 촌스러운 '파일 선택' 버튼, 복잡한 꼼수 없이 예쁘게 디자인하기 나눔웹
Board Pagination Prev 1 2 3 Next
/ 3
rhwlsghkcocndgus XE2.1.39 STAGE1.5.4