JavaScript 심화: 클로저, 프로토타입 등 '면접 단골' 개념 완벽 정리
JavaScript 심화: 클로저, 프로토타입 등 '면접 단골' 개념 완벽 정리 프론트엔드부터 백엔드까지, JavaScript 는 이제 IT 업계에서 선택이 아닌 필수가 되었습니다. 단순한 문법 학습을 넘어, 클로저(Closure) , 프로토타입(Prototype) , **실행 컨텍스트(Execution Context)**와 같은 심화 개념을 깊이 이해하는 것은 주니어와 시니어 개발자를 가르는 기준점이 됩니다. 특히 기술 면접에서 이 개념들은 지원자의 언어에 대한 깊은 이해도를 측정하는 단골 질문 으로 등장합니다. 이 글에서는 취업과 커리어 성장에 직결되는 이 핵심 심화 개념들을 '면접에서 자신 있게 설명할 수 있도록' 완벽하게 정리해 드리겠습니다. 1. 클로저(Closure): 함수가 환경을 기억하는 특별한 능력 클로저 는 '함수가 선언될 당시의 렉시컬 환경(Lexical Environment)을 기억하여, 함수가 외부로 호출된 이후에도 그 환경에 접근할 수 있는 현상'을 말합니다. 말만 들으면 어렵지만, 핵심은 **'데이터 은닉(Data Hiding)'**과 **'상태 유지(State Persistence)'**입니다. 예를 들어, 반복적으로 숫자를 증가시키는 카운터 함수를 만들 때, count 변수를 전역이 아닌 클로저 내부에 두면, 외부에서 변수에 직접 접근하여 임의로 값을 바꿀 수 없게 됩니다. 이는 캡슐화 를 구현하는 가장 대표적인 JavaScript 패턴이며, 면접에서 반드시 실제 코드 예시와 함께 설명할 수 있어야 합니다. 2. 프로토타입(Prototype): JavaScript 객체지향의 근간 Java나 C++처럼 클래스 기반의 언어와 달리, JavaScript는 프로토타입 기반 의 객체지향 언어입니다. 모든 JavaScript 객체는 자신의 부모 객체 역할을 하는 프로토타입 객체 를 가지며, 이 연결을 따라 상위 객체의 속성이나 메서드를 빌려 쓸 수 있는데, 이를 **...