안녕하세요!
오늘도 짧포 시간입니다
면접에 대표적인 질문 두가지를 가지고왔습니다
그럼 같이 가보시죠
호이스팅은 자바스크립트에서 변수 선언과 함수 선언이 해당 스코프의 최상단으로 끌어올려지는 현상을 말합니다
이 과정은 자바스크립트 엔진이 코드를 실행하기 전에 런타임에서 일어납니다.
호이스팅으로 인해 변수나 함수를 선언하기 전에도 해당 요소에 접근할 수 있게 됩니다. 하지만 이렇게 사용하는 것은 일반적으로 권장되지 않으며, 오류를 발생시킬 수 있습니다
let과 const는 호이스팅되지만, Temporal Dead Zone (TDZ)에 의해 선언되기 전에는 참조할 수 없습니다. 이는 변수를 사용하기 전에 선언해야 한다는 규칙을 강화해, 코드의 안정성을 높이는 데 도움이 됩니다
동기(Synchronous): 동기 프로그래밍은 코드가 순차적으로 실행됩니다. 하나의 작업이 완료되기 전까지는 다음 작업이 시작되지 않습니다. 이는 코드의 흐름을 이해하기 쉽지만, 긴 작업이 진행되는 동안 다른 작업이 대기 상태에 머무르기 때문에 효율성이 떨어질 수 있습니다
비동기(Asynchronous): 비동기 프로그래밍은 현재 진행 중인 작업이 완료될 때까지 기다리지 않고, 다음 작업을 바로 시작할 수 있습니다. 예를 들어, 네트워크 요청이나 파일 시스템 작업을 수행할 때 유용합니다. 비동기 작업은 백그라운드에서 실행되며, 완료되면 콜백 함수나 프로미스를 통해 결과를 처리합니다
비동기 프로그래밍은 무거운 작업이나 네트워크 요청과 같이 시간이 많이 소요되는 작업을 처리할 때 중요합니다. 이러한 작업을 동기적으로 처리하면, 사용자 인터페이스가 멈추거나 반응하지 않는 등의 문제가 발생할 수 있습니다.
비동기 방식을 사용하면, 오래 걸리는 작업을 백그라운드에서 처리하고, 그 동안에 사용자는 다른 작업을 계속 진행할 수 있습니다. 이는 사용자 경험을 크게 향상시키며, 전체 애플리케이션의 성능과 반응성을 개선합니다.