defer, preload 등)만 알맞게 배치해도 웹사이트의 체감 로딩 속도를 극적으로 끌어올릴 수 있습니다.
로딩 최적화는 텅 빈 창고에 물건(파일)들을 순서대로 지능적으로 배달시키는 과정과 같습니다.
defer 속성을 JS 태그에 붙여주면 "화면 뼈대부터 먼저 싹 그리고 나서 코드를 실행해!" 라고 지시하여 유저가 하얀 화면만 보고 답답해하는 일을 막아줍니다.preload는 "이건 첫 화면에 무조건 나오니까 묻지도 따지지도 말고 당장 가져와!" 라며 우선순위를 최상으로 끌어올리는 VIP 새치기 티켓입니다.
| 태그명 | 주요 속성 | 설명 및 효과 |
|---|---|---|
<link> |
rel="preload" |
현재 페이지 첫 화면에서 당장 필요한 핵심 폰트나 히어로 이미지를 최우선으로 다운로드(새치기) 시킵니다. |
<link> |
rel="prefetch" |
다음 페이지에서 쓰일 확률이 높은 자원(JSON, 다음 이미지 등)을 브라우저가 한가할 때 몰래 미리 다운로드 해둡니다. |
<script> |
defer |
브라우저가 HTML을 다 읽고 DOM 트리를 완성할 때까지 JS 실행을 뒤로 미루어 화면 렌더링이 막히는 것을 방지합니다. (가장 많이 씀) |
<script> |
async |
구글 애널리틱스처럼 순서와 상관없이 독립적으로 동작하는 스크립트를 다운로드 즉시 병렬로 실행시킵니다. |