Javascript

  • Published on
    async/await는 Promise then/catch의 문법 설탕으로, await 뒤 코드는 마이크로태스크로 이어져 메인 스레드를 막지 않는다. fetch는 HTTP 4xx/5xx여도 기본은 fulfilled이므로 res.ok를 확인해 throw로 에러를 명시적으로 만들고 try/catch(필요 시 rethrow)로 다룬다.
  • Published on
    Promise는 비동기 작업의 미래 결과를 담는 객체로, 콜백 헬 없이 깔끔한 흐름 제어와 에러 처리가 가능하다. then/catch/finally 체이닝 또는 async/await + try/catch 방식으로 소비하며, 둘 다 내부적으로 같은 동작을 한다. 즉, Promise는 비동기를 ‘예측 가능한 순서’로 관리하게 해주는 핵심 도구다.
  • Published on
    자바스크립트는 싱글 스레드 언어이지만, 브라우저의 Web API·Callback Queue·Microtasks Queue·Event Loop가 함께 동작하면서 마치 여러 작업이 동시에 실행되는 듯한 논블로킹 환경을 만든다. 이 과정에서 이벤트 루프는 콜스택이 비는 순간마다 대기 중인 콜백을 실행시켜, 동시성을 흉내 내는 조율자(orchestrator) 역할을 한다. 결국 비동기 동작의 핵심은 자바스크립트 엔진이 아니라, 브라우저 런타임이 조율하는 실행 순서의 메커니즘에 있다.
  • Published on
    자바스크립트의 비동기 처리는 긴 작업으로 인해 프로그램이 멈추지 않도록 하는 핵심 메커니즘이다. setTimeout이나 addEventListener 같은 함수들은 이벤트 루프를 통해 실행 순서를 효율적으로 조율하며, 이러한 비동기 동작 덕분에 웹은 빠르고 반응성 높은 환경을 유지할 수 있다. 특히 AJAX는 서버와 클라이언트가 페이지 새로고침 없이 데이터를 주고받게 해주며, 이때 사용되는 API는 애플리케이션 간 통신을 가능하게 하는 인터페이스 역할을 한다. 결국 사용자가 웹사이트에 접속하는 과정은 DNS 조회 → TCP/IP 연결 → HTTP 요청과 응답 → 리소스 로드 및 렌더링으로 이어지며, 이 모든 과정 속에서 비동기적 데이터 흐름은 웹의 핵심 동력으로 작동한다.
  • Published on
    생성자 함수는 new 키워드와 함께 호출되어 새로운 객체를 만드는 함수다. new가 실행되면 먼저 빈 객체가 생성되고, 그 객체의 [[Prototype]]이 생성자 함수의 prototype 속성과 연결된다. 이후 함수 내부의 this는 그 새 객체를 가리키며, 프로퍼티가 초기화된다. 마지막으로 함수가 자동으로 그 객체를 반환하면서 인스턴스가 완성된다. 이렇게 생성자 함수와 new 키워드를 통해 만들어진 객체는 생성자 함수의 프로토타입을 부모로 삼아 메서드와 속성을 공유하며, 프로토타입 체인을 따라 상속 구조를 형성한다.