2026.10.25자바스크립트는 실제로 어떻게 동작하는가Javascript자바스크립트는 실제로 어떻게 동작하는가실행 컨텍스트, 스코프, this, 객체 모델, Promise와 이벤트 루프를 따라가며 ECMAScript와 호스트 런타임이 코드를 처리하는 방식을 살펴본다.
2026.10.14같은 JavaScript인데 환경에 따라 실행 순서가 달라지는 이유Javascript자바스크립트는 실제로 어떻게 동작하는가브라우저의 이벤트 루프를 다시 정리하다가 setImmediate()에 관한 설명을 읽게 되었다. setTimeout(callback, 0)과 비슷하지만, I/O 콜백 안에서는 setImmediate()가 먼저 실행된다는 내용이었다. 처음에는 기존 글에서 이 부분을 빠뜨렸다고 생각했다.…
2026.06.11Promise Resolution ProcedureJavascript자바스크립트는 실제로 어떻게 동작하는가async function에서 Promise를 반환하면 조금 이상한 일이 일어난다. 아래의 코드를 보면 async function은 원래 Promise를 반환하고, 그 안에서 다시 Promise.resolve(1)을 반환했으니 결과가 Promise<Promise<number>>처럼 남아…
2025.12.26descriptorJavascript자바스크립트는 실제로 어떻게 동작하는가#descriptor#defineproperty+2 more categories or tags새로운 기능 개발을 마친 뒤, 여기저기 흩어져 있던 데이터와 유틸리티 로직을 하나의 클래스로 정리하는 리팩터링을 진행했다. 로직을 쪼개거나 책임을 재설계하는 작업은 아니었고, 단순히 구조를 정돈하는 수준이었기 때문에 큰 문제가 생길 것이라 예상하지 않았다. 그러나 dev 환경에서 확인한…
2025.02.13렉시컬 스코프 v 렉시컬 환경Javascript자바스크립트는 실제로 어떻게 동작하는가#lexical-scope#lexical-environment+3 more categories or tags렉시컬 스코프라는 용어를 처음 접했을 때, 나는 이것을 별다른 의심 없이 ‘렉시컬 환경에 따른 스코프 체인’ 정도로 이해했다. 두 개념이 밀접하게 연결되어 있다는 인상 때문이었을 것이다. 그 결과, 모 회사의 면접에서 렉시컬 스코프를 설명해 보라는 질문을 받았을 때 스코프 체인에 대한…
2025.01.31생성자 함수와 prototype으로 이해하는 JS classJavascript자바스크립트는 실제로 어떻게 동작하는가#class#prototype자바스크립트는 프로토타입 기반 언어로, 객체 지향 프로그래밍에서 흔히 사용하는 클래스 상속 모델 대신 프로토타입 체인을 통해 객체 간 상속을 구현한다. 모든 객체는 내부 슬롯에 해당하는 [[Prototype]]을 가지며, 이는 Object.getPrototypeOf() 메서드를 통해 확…
2024.12.13thisJavascript자바스크립트는 실제로 어떻게 동작하는가#decorator#디버깅+1 more categories or tags내가 혼자 개발하고 있는 onef에 댓글 기능을 추가하기로 했다. 댓글 작성 기능을 구현한 뒤 수정 기능이 필요하다는 사실을 깨달았을 때, 처음 든 생각은 “로직은 거의 같고 메서드만 바꾸면 되겠네”였다. 실제로 댓글 작성과 수정은 HTTP 메서드만 post와 put으로 다를 뿐, 요청…
2024.03.28실행 컨텍스트와 브라우저 이벤트 루프Javascript자바스크립트는 실제로 어떻게 동작하는가실행 컨텍스트 자바스크립트 엔진(이하 JSE)은 소스 코드를 실행하기 위해 현재 어떤 코드가 실행 중인지, 식별자를 어느 환경에서 찾아야 하는지, this는 무엇인지 같은 상태를 관리한다. ECMAScript 사양은 이 상태를 실행 컨텍스트(execution context)라는 추상적인…