스코프 체인이 살아 있다는 정확한 메커니즘을 보는지, 아니면 "내부 함수가 외부 변수에 접근한다" 수준에서 멈추는지를 가르는 질문이다. 비동기·모듈·Hook 같은 실무 패턴으로 연결할 수 있는지가 후속 분기점이다.
클로저는 함수가 선언될 때의 렉시컬 스코프를 기억하고, 그 함수가 생성된 이후에도 그 스코프에 접근할 수 있는 특성이다. 자바스크립트에서 함수가 일급 객체이고 렉시컬 스코프를 따르기 때문에 가능하다. 핵심은 변수 자체가 아니라 변수를 담은 스코프 체인이 살아 있다는 것이고, 그래서 외부 함수가 끝난 뒤에도 내부 함수가 그 변수를 계속 참조한다.
useEffect 의존성 배열 때문에 stale closure 버그를 만난 적이 있다면 클로저가 스냅샷이라는 설명으로 연결된다
비동기 콜백에서 이전 값이 계속 살아남게 한 경험이 있다면 스코프 체인 유지 메커니즘을 구체적으로 풀 수 있다
모듈 패턴이나 IIFE로 내부 상태를 감싸본 경험이 있다면 클로저를 캡슐화 도구로 설명할 수 있다
이벤트 핸들러에 갇힌 변수 값 때문에 디버깅한 경험이 있다면 클로저 함정 사례로 활용할 수 있다
아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.