클래스/└ TIL

<TIL> 211220 배열, defer, 이벤트루프

디벅잉 2021. 12. 20. 22:27
728x90

 

🐣

 

{ C언어 }

배열

내부적으로 2차원 배열도 1차원으로 저장되므로, 포인터를 활용하면 2차원 배열을 1차원처럼 사용할 수 있습니다.

함수의 인자로 배열을 전달할 때는 배열의 크기도 전달하여야 합니다.

함수의 인자로 배열을 넘겨줄 때 const 키워드를 붙여서 원본 배열의 변형을 방지합니다(배열은 기본적으로 포인터).

 

{ JavaScript }

DOMContentLoaded

브라우저가 HTML을 전부 읽어 DOM 트리를 완성하면 발생합니다.

이미지, CSS 등을 기다리지 않습니다.

document.addEventListener("DOMContentLoaded", callback);

브라우저는 HTML을 처리하는 중 <script> 태그를 만나면, DOM 트리 구성을 멈추고 <script> 태그를 실행합니다.

 

beforeunload

사용자가 페이지를 떠나려 할 때 window 객체에서 발생합니다.

 

defer

defer를 적용한 지연 스크립트는 DOM 트리가 준비된 후에 실행됩니다.

DOMContentLoaded 이벤트는 지연 스크립트 실행 후 발생합니다.

 

async

async를 적용한 비동기 스크립트는 독립적으로 처리됩니다.

언뜻 들으면 쓸모없어 보이지만, 방문자 수 카운터나 광고 관련 역할을 하는 서드 파티 스크립트에 유용합니다.

 

이벤트 루프

이벤트 루프는 태스크가 들어오길 기다렸다가 태스크가 들어오면 이를 처리하고, 처리할 태스크가 없을 경우엔 잠듭니다.

자바스크립트 엔진은 매크로태스크 하나를 처리하면 다음 매크로태스크를 처리하기 전에

마이크로태스크 큐에 쌓인 마이크로태스크를 전부 처리합니다.

CPU소모가 많은 매크로태스크의 경우 작업을 쪼개어 중간중간 마이크로태스크가 실행될 수 있도록 합니다.

마이크로태스크 전체가 처리되는 동안에는 UI 변화나 네트워크 핸들링이 일어나지 않습니다.

마이크로태스크가 전부 처리되고 나서 렌더링이나 네트워크 요청등이 실행됩니다.

 

{ Node.js }

성능고려사항 = 요청 숫자 줄이기(브라우저 캐싱) + 콘텐츠 크기 줄이기(무손실/손실 기법)

 

📌

 

https://www.inflearn.com/course/following-c/

 

홍정모의 따라하며 배우는 C언어 - 인프런 | 강의

'따배씨++'의 성원에 힘입어 새롭게 개발된 C 언어로 시작하는 프로그래밍 입문 강의입니다. '따배씨'와 함께 프로그래밍 인생을 업그레이드 해보세요., 프로그래밍 인생, 한 단계 업그레이드!

www.inflearn.com

https://ko.javascript.info/

 

모던 JavaScript 튜토리얼

 

한권으로 끝내는 Node & Express / 이선 브라운 지음 / 한선용 옮김 / 한빛미디어

 

728x90