Organizer 정리 산출물(From_RawData) + 이사 체크리스트 + 인덱스 갱신

- Raw_Data 자동 정리 산출물이 각 도메인 From_RawData/ 로 편입, 00_INDEX 연결 갱신
- 컴퓨터_이사_체크리스트.md 추가 (두뇌-상대 경로 규약 v2.2.304 — 새 컴퓨터에서
  바꿀 절대 경로는 localBrainPath 1개)
- Astra 세션 산출물(에피소드 기억·기능 인벤토리) 갱신

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Antigravity Agent
2026-07-11 21:03:00 +09:00
parent 468322768c
commit 2cc6eff2dd
162 changed files with 15836 additions and 14 deletions
@@ -0,0 +1,99 @@
---
id: scope-chain
title: "Scope Chain"
category: "Frontend"
status: "draft"
verification_status: "conceptual"
canonical_id: ""
aliases:
- "스코프 체인"
- "Scope Chain"
- "유효범위 체인"
- "상위 스코프 참조"
duplicate_of: ""
source_trust_level: "A"
confidence_score: 0.95
created_at: 2026-07-11
updated_at: 2026-07-11
review_reason: ""
merge_history: []
tags: ["research", "context 이해 규칙"]
raw_sources:
- "Execution Context 실행 컨텍스트를 알아야하는 이유? - 넥스트리"
- "JavaScript Execution Context How JS Works Behind the Scenes - freeCodeCamp"
applied_in: []
github_commit: ""
---
# [[Scope Chain]]
## 🎯 한 줄 통찰 (One-line insight)
현재 실행 컨텍스트에서 변수를 찾지 못할 경우, `outerEnvironmentReference`를 통해 상위 스코프를 순차적으로 탐색하여 변수를 식별하는 자바스크립트의 계층적 참조 메커니즘.
## 🧠 핵심 개념 (Core concepts)
* **실행 컨텍스트 (Execution Context):** 코드의 변환과 실행을 담당하는 환경으로, 실행할 코드에 전달할 정보(스코프, 호이스팅, 클로저, this 등)를 담고 있는 객체.
* **Lexical Environment:** 코드 실행 중에 발생하는 동적인 활동을 실시간으로 반영하는 환경으로 `environmentRecord``outerEnvironmentReference`로 구성됨.
* **environmentRecord:** 실행 컨텍스트 내에서 선언된 변수와 함수 선언들의 실제 값을 저장하는 요소.
* **outerEnvironmentReference:** 해당 실행 컨텍스트를 생성한 함수의 외부 환경(상위 스코프)에 대한 참조를 제공하여 스코프 체인을 형성하는 핵심 매개체.
## 🧩 추출된 패턴 (Extracted patterns)
* **변수 탐색 폴백(Fallback) 패턴:** 식별자를 찾을 때 '현재 컨텍스트의 `LexicalEnvironment` 검색' ➔ '부재 시 `outerEnvironmentReference`를 통한 상위 스코프 검색' ➔ '전역 컨텍스트 도달 시까지 반복'의 단계적 탐색 과정을 거친다.
## 📖 세부 내용 (Details)
* 자바스크립트 엔진이 스크립트를 스캔하고 코드를 실행할 때, 코드 실행 환경인 실행 컨텍스트(Execution Context)가 생성된다 [S1, S2].
* 실행 컨텍스트는 크게 `Variable Environment``Lexical Environment`로 구성되며, 각 환경은 다시 `environmentRecord``outerEnvironmentReference`를 포함한다 [S1].
* 코드 실행 중 변수가 호출될 때, 자바스크립트 엔진은 가장 먼저 현재 컨텍스트의 `LexicalEnvironment`(구체적으로 `environmentRecord`) 내부를 검색하여 변수를 찾는다 [S1].
* 만약 현재 컨텍스트 내부에 해당 변수가 선언되어 있지 않다면, `outerEnvironmentReference`를 활용한다. 이는 현재 컨텍스트를 생성한 상위 스코프의 `LexicalEnvironment`를 가리키는 참조값이다 [S1].
* 엔진은 이 `outerEnvironmentReference`가 가리키는 스코프 체인을 따라 올라가며 상위 스코프를 순차적으로 검색한다. 이 과정은 최상단인 전역 컨텍스트(Global Context)의 `LexicalEnvironment`에 도달할 때까지 계속된다 [S1].
* 전역 스코프까지 탐색을 마쳤음에도 해당 변수를 찾지 못할 경우, 최종적으로 `undefined`를 반환하거나 접근 위치에 따라 `ReferenceError`를 발생시킨다 [S1].
* 따라서 함수 내부에서는 자신의 `LexicalEnvironment`에 없는 외부 변수라도 스코프 체인을 통해 참조하여 사용할 수 있으나, 반대로 외부 스코프에서는 내부 스코프의 변수에 접근할 수 없다 (단방향 참조) [S1].
## ⚖️ 모순 및 업데이트 (Contradictions & updates)
* 소스 내에서 상충되는 정보는 확인되지 않음. 변수 탐색 실패 시 반환되는 값에 대해 "결국 해당 변수를 찾지 못하면 undefined를 반환합니다"라는 원칙적인 설명과, 함수 바깥에서 내부 변수를 찾으려 할 때 "바깥 스코프인 전역 스코프의 LexicalEnvironment에는 존재하지 않기 때문에 ReferenceError를 반환합니다"라는 구체적 사례 결과가 함께 언급되어 있으나, 이는 문맥(스코프 위치 및 변수 선언 여부)에 따른 자바스크립트 엔진의 동작 결과로 모순이 아니다.
## 🛠️ 적용 사례 (Applied in summary)
소스에 관련 정보가 부족합니다. (현재 발견된 실제 적용 사례, 파일 경로, Git 커밋 해시 또는 결정 기록이 없습니다.)
## 💻 코드 패턴 (Code patterns)
소스에 코드 예시 없음. (텍스트로만 `petInfo` 함수와 `greeting`, `cat`, `dog` 변수 간의 스코프 참조 관계가 설명되어 있으며, 실행 가능한 구체적 스니펫은 제공되지 않음.)
## ✅ 검증 상태 및 신뢰도
- **상태:** draft
- **검증 단계:** conceptual
- **출처 신뢰도:** A
- **신뢰 점수:** 0.95
- **중복 검사 결과:** 신규 생성 (New discovery)
## 🔗 관련 문서 링크 (Related document links)
### 상위/유사 개념
- [[Execution Context]] — 스코프 체인이 작동하는 기반이 되는 코드 실행 환경 객체
- [[Lexical Environment]] — 스코프 체인의 물리적 구성 요소인 레코드와 외부 참조를 담는 공간
- [[Hoisting]] — 스코프 내 `environmentRecord`에 식별자 정보가 수집되는 과정
- [[Closure]] — 스코프 체인과 `outerEnvironmentReference` 구조에 의해 상위 스코프의 변수 참조가 유지되는 고급 개념
### 심층 후속 질문 (Deeper Research Questions)
- 스코프 체인의 깊이가 깊어질수록 메모리 참조 속도 및 성능에 어떠한 영향을 미치는가?
- 비동기 콜백(Callback)이나 프로미스(Promise)의 실행 시, 스코프 체인과 이벤트 루프(Event Loop)는 어떻게 상호작용하는가?
- Lexical Scope 구조와 런타임에 결정되는 [[this binding]]의 차이점은 무엇인가?
### 실무 적용 맥락 (Practical Application Contexts)
- **Implementation:** 자바스크립트 내 캡슐화 및 프라이빗 상태(Private State) 관리 로직 구현 시 활용.
- **System Design:** 전역 오염을 피하고 모듈의 스코프를 격리하는 스크립트 모듈 아키텍처 설계.
- **Operation / Maintenance:** 콜백 내 변수 참조 에러(`ReferenceError`)나 예상치 못한 클로저 덮어쓰기 버그 추적 및 디버깅.
- **Learning Path:** 자바스크립트 엔진 동작 원리 → 실행 컨텍스트 생성 → 호이스팅 및 스코프 체인 형성 → 클로저 원리 이해.
### 인접 주변 주제 (Adjacent Topics)
- [[this binding]] — 선언 위치가 아닌 호출 방식에 따라 동적으로 바인딩 대상이 결정되는 객체 참조 개념.
## 🔗 지식 그래프 (Knowledge Graph)
- **상위/루트:** [[context 이해 규칙]]
- **관련 개념:** [[Execution Context]], [[Lexical Environment]]
- **참조 맥락:** 자바스크립트 엔진의 변수 참조, 유효범위(스코프) 격리, 그리고 클로저 메커니즘을 이해하고 상태를 관리하는 기반 원리로 참조됨.
## 📚 출처 (Sources)
- [S1] Execution Context 실행 컨텍스트를 알아야하는 이유? - 넥스트리 (https://www.nextree.io/execution-context/)
- [S2] JavaScript Execution Context How JS Works Behind the Scenes - freeCodeCamp (https://www.freecodecamp.org/news/how-javascript-works-behind-the-scene-javascript-execution-context/)
## 📝 변경 이력 (Change history)
- 2026-07-11: Initial draft generated via Datacollector_MAC P-Reinforce engine.