230905 호이스팅 | 동기와 비동기

나윤빈·2023년 9월 5일
0

TIL

목록 보기
47/55

Javascript의 호이스팅

Javascript의 호이스팅이란 변수와 함수 선언을 현재 스코프의 최상단으로 끌어올리는 동작을 말한다. 변수 호이스팅의 경우 스코프 맨 위로 끌어올려진다. var로 선언한 변수는 선언과 동시에 초기화되지 않으면 자동으로 undefined로 초기화되고 선언한 변수는 현재 스코프의 최상단으로 끌어올려진다. 반면 let과 const로 선언한 변수는 선언 단계에서 초기화되지 않으며, 선언 위치까지 호이스팅된다. 즉, 변수에 실제로 값을 할당하기 전까지는 undefined가 아니라 초기화 전 상태라고 할 수 있다. 따라서 값을 할당하기 전까지 접근이 불가능하다. 함수 호이스팅의 경우 함수 선언문 전체가 끌어올려진다. 즉, 함수를 선언하기 전에 호출할 수 있다. 다만 변수에 할당된 함수의 경우 변수 호이스팅 규칙에 따른다.

동기와 비동기의 차이

동기 프로그래밍은 작업이 순차적으로 실행되는 방식을 말한다. 한 작업이 시작되면 다른 작업은 대기하고, 해당 작업이 완료될 때까지 실행되지 않는다. 코드는 위에서 아래로 차례대로 실행된다. 비동기 프로그래밍은 작업이 병렬적으로 실행되는 방식이다. 한 작업이 시작되더라도 다른 작업은 기다리지 않고 동시에 실행된다.

비동기 프로그래밍의 필요성

비동기 프로그래밍이 필요한 이유에는 여러가지가 있다. 우선 비동기 프로그래밍은 여러 작업을 병렬로 실행하므로, CPU 및 기타 자원을 효율적으로 활용할 수 있다. 또한 응용 프로그램이 응답성을 유지하고 사용자와 상호작용할 수 있도록 한다. 특히, 웹 애플리케이션에서 서버로부터 데이터를 요청하고 받아올 때 비동기 프로그래밍을 사용하는데, 이를 통해 웹 페이지는 새로고침 없이 동적으로 업데이트할 수 있다. 따라서 비동기 프로그래밍은 웹 및 모바일 애플리케이션 개발에서 필수적인 개념이라고 할 수 있다.

profile
프론트엔드 개발자를 꿈꾸는

0개의 댓글