먼저, 두 속성 모두 스크립트를 비동기적으로 로드한다는 공통점이 있습니다. 하지만 실행 시점에서 중요한 차이가 있습니다.
async 속성
async 속성에는 다음과 같은 특징들이 존재합니다.
스크립트를 비동기적으로 다운로드합니다.
다운로드가 완료되면 즉시 실행됩니다.
HTML 파싱과 병렬로 진행되지만, 스크립트 실행 시 HTML 파싱이 잠시 중단됩니다.
여러 async 스크립트가 있을 경우, 다운로드가 완료되는 순서대로 실행됩니다.
defer 속성
defer 속성에는 다음과 같은 특징들이 존재합니다.
스크립트를 비동기적으로 다운로드합니다.
HTML 문서 파싱이 완전히 끝난 후에 실행됩니다.
DOMContentLoaded 이벤트 발생 직전에 실행됩니다.
여러 defer 스크립트가 있을 경우, HTML에 작성된 순서대로 실행됩니다.
따라서, 실행 순서가 중요한 스크립트나 메인 어플리케이션의 로직을 담고 있는 스크립트의 경우 defer를 사용하고, 독립적으로 실행되는 스크립트(ex. Google Analytics)의 경우 async를 사용하는 것이 적절합니다.
이러한 차이를 이해하고 적절히 활용하면 웹 페이지의 로딩 성능을 최적화하는 데 큰 도움이 됩니다.
LIST
'4차산업혁명의 일꾼 > 개발문답' 카테고리의 다른 글
공유 락과 배타 락에 대해서 설명해주세요. (0) | 2025.03.24 |
---|---|
동기와 비동기의 차이점은 무엇인가요? (0) | 2025.03.21 |
TCP 3-way handshake에 대해서 설명해주세요. (0) | 2025.03.20 |
동기 방식으로 외부 서비스를 호출할 때 외부 서비스 장애가 나면 어떻게 조치할 수 있나요? (0) | 2025.03.19 |
자바스크립트 함수에 대해서 아는대로 설명해주세요 (0) | 2025.03.19 |