[G1-Sync] Manual knowledge update

This commit is contained in:
Antigravity Agent
2026-04-30 22:42:02 +09:00
parent 0bd4f19e38
commit c36c0644a1
4888 changed files with 18470 additions and 18602 deletions
@@ -1,5 +1,5 @@
---
id: P-REINFORCE-AUTO-8C150A
id: [[P-Reinforce]]-AUTO-8C150A
category: "10_Wiki/💡 Topics/Programming & Language"
confidence_score: 0.90
tags: [auto-reinforced]
@@ -23,7 +23,7 @@ github_commit: "[P-Reinforce] Continuous Worker - Structural Typing"
* 이러한 유연함은 매우 편리하지만, 의미적으로 엄격히 구분되어야 하는 동일한 구조의 데이터(예: User ID와 Order ID가 모두 단순 문자열인 경우)를 컴파일러가 구분하지 못하는 '기본 타입에의 집착(Primitive Obsession)' 문제를 야기한다[8].
* 이를 방어하기 위해 개발자들은 런타임에는 존재하지 않지만 컴파일 시점에만 존재하는 고유한 가상의 식별자를 부여하는 브랜디드 타입(Branded Types / Opaque Types) 패턴을 활용하여 구조적 타이핑의 한계를 보완한다[8-10].
* **초과 속성 검사(Excess Property Checking)와의 상호작용**
* **초과 속성 검사([[Excess Property Checking]])와의 상호작용**
* 구조적 타이핑은 추가 속성의 존재를 근본적으로 허용하지만, 개발자의 오타나 예기치 않은 데이터 유입을 막기 위해 TypeScript는 예외적으로 객체 리터럴을 변수에 직접 할당하거나 함수의 인자로 직접 넘길 때 '초과 속성 검사(EPC)'를 발동시킨다[6, 11, 12].
* 그러나 객체를 중간 변수에 먼저 할당한 뒤 전달하는 식의 간접 할당 상황이 되면 EPC가 작동하지 않고, 구조적 타이핑의 "최소 요건 충족" 원칙으로 되돌아가 초과 속성을 그대로 허용하게 된다[13, 14].
* 이와 같은 우회 현상으로 인한 런타임 오류나 초과 속성 유입 문제를 방지하기 위해 `satisfies` 연산자를 활용하면, 구조의 구체성을 잃지 않으면서도 대상 타입과의 구조적 계약을 엄격히 준수하도록 강제할 수 있다[15, 16].
@@ -33,8 +33,8 @@ github_commit: "[P-Reinforce] Continuous Worker - Structural Typing"
- **정책 변화:** Programming & Language 분야의 자동 자산화 수행.
## 🔗 지식 연결 (Graph)
- **Related Topics:** Duck Typing, Nominal Typing, [[Excess Property Checking]], Branded Types, [[satisfies Operator]]
- **Projects/Contexts:** TypeScript Type System
- **Related Topics:** Duck Typing, Nominal Typing, [[Excess Property Checking]], Branded Types, [[satisfies [[Opera]]tor]]
- **Projects/Contexts:** TypeScript Type[[ system]]
- **Contradictions/Notes:** 구조적 타이핑은 기본적으로 대상 객체가 추가적인 속성을 가지는 것을 허용하여 유연한 호환성을 부여하지만[4], 객체 리터럴을 직접 할당할 때는 이러한 유연성 대신 '초과 속성 검사(Excess Property Checking)'가 개입하여 선언되지 않은 속성의 존재를 엄격하게 에러로 처리한다는 상반된 동작 규칙이 공존한다[6, 11, 12].
---