그알것 — 그럼에도 알아야 할 것들
홈질문커뮤니티
로그인
그알것 — 그럼에도 알아야 할 것들

Service

  • 홈
  • 소개
  • 질문
  • 커뮤니티

My

  • 내 워크스페이스
  • 저장한 질문
  • 작성한 답변

Policy

  • 이용약관
  • 개인정보처리방침
  • 문의

© 2026 그알것 · What Still Matters

질문 목록JavaScript
JavaScript

클로저에 대해서 설명해주세요

실무3/5
설계1/5
인간1/5
기초5/5

면접관의 질문 의도

스코프 체인이 살아 있다는 정확한 메커니즘을 보는지, 아니면 "내부 함수가 외부 변수에 접근한다" 수준에서 멈추는지를 가르는 질문이다. 비동기·모듈·Hook 같은 실무 패턴으로 연결할 수 있는지가 후속 분기점이다.

큐레이션 답변

학습 자료

클로저는 함수가 선언될 때의 렉시컬 스코프를 기억하고, 그 함수가 생성된 이후에도 그 스코프에 접근할 수 있는 특성이다. 자바스크립트에서 함수가 일급 객체이고 렉시컬 스코프를 따르기 때문에 가능하다. 핵심은 변수 자체가 아니라 변수를 담은 스코프 체인이 살아 있다는 것이고, 그래서 외부 함수가 끝난 뒤에도 내부 함수가 그 변수를 계속 참조한다.

좋은 답변 구조

  1. 01클로저의 정의를 정확하게 짚는다 — 스코프 체인이 살아 있다
  2. 02렉시컬 스코프와 일급 함수가 왜 클로저를 가능하게 하는지 연결한다
  3. 03내부 함수가 외부 함수 종료 후에도 변수에 접근하는 예시로 동작을 보여준다
  4. 04데이터 은닉·비동기 상태 유지·모듈 패턴 같은 실무 활용으로 묶어 마친다

자주 실수하는 포인트

내부 함수를 반환하는 문법 패턴 정도로만 설명하고 왜 그게 가능한지 못 짚는다
함수가 생성된 시점의 스코프 체인을 잡고 있다는 핵심 메커니즘을 빠뜨린다
정의만 말하고 비동기·모듈 같은 실무 활용으로 못 잇는다
stale closure 같은 함정을 모르고 "클로저는 데이터 은닉이다"로 끝낸다

실무 맥락

  • 외부에서 직접 접근할 수 없는 비공개 변수가 필요한 코드
  • 비동기 콜백에서 실행 시점 이후에도 이전 값이 필요한 흐름
  • 필요한 데이터와 함수만 외부에 노출하는 모듈 구현
  • React Hook에서 의존성 배열로 캡처 시점을 명시해야 하는 상황

본인 경험에 녹이는 힌트

useEffect 의존성 배열 때문에 stale closure 버그를 만난 적이 있다면 클로저가 스냅샷이라는 설명으로 연결된다

비동기 콜백에서 이전 값이 계속 살아남게 한 경험이 있다면 스코프 체인 유지 메커니즘을 구체적으로 풀 수 있다

모듈 패턴이나 IIFE로 내부 상태를 감싸본 경험이 있다면 클로저를 캡슐화 도구로 설명할 수 있다

이벤트 핸들러에 갇힌 변수 값 때문에 디버깅한 경험이 있다면 클로저 함정 사례로 활용할 수 있다

커뮤니티 인기 답변

전체 0개

아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.

관련 꼬리 질문

Q1렉시컬 스코프는 무엇이고 동적 스코프와 어떻게 다른가요
Q2useEffect 의존성 배열과 클로저는 어떻게 연결되나요
Q3비동기 콜백에서 stale closure 버그는 왜 생기나요
Q4모듈 패턴에서 클로저가 하는 일을 클래스 캡슐화와 비교하면 어떤가요
아직 답을 쓰지 않았어요.
큐레이션 답변과 다른 사람 답변을 보고, 자기 언어로 답을 정리해보면 학습 효과가 가장 큽니다.
목차
  • 01면접관의 질문 의도
  • 02큐레이션 답변
  • 03좋은 답변 구조
  • 04자주 실수하는 포인트
  • 05실무 맥락
  • 06본인 경험에 녹이는 힌트
  • 07커뮤니티 인기 답변준비중
  • 08관련 꼬리 질문