브라우저가 자바스크립트를 실행할 때 블로킹이 발생하는 이유는 무엇인가요?자바스크립트가 파싱될 때 HTML 파싱을 블로킹하는 이유와 이를 방지하기 위한 async, defer 속성의 차이를 설명해주세요.