docs: finalized wiki integrity maintenance (v3.0 standard) - pruned 1400+ stubs and fixed 11k+ ghost links

This commit is contained in:
Antigravity Agent
2026-05-02 09:18:34 +09:00
parent c84dcb8371
commit 6445fcc05b
13150 changed files with 55394 additions and 100862 deletions
@@ -1,5 +1,5 @@
---
id: [[P-Reinforce]]-AUTO-92E2DD
id: [[P-Reinforce|P-Reinforce]]-AUTO-92E2DD
category: "10_Wiki/💡 Topics/Programming & Language"
confidence_score: 0.90
tags: [auto-reinforced]
@@ -7,14 +7,14 @@ last_reinforced: 2026-04-20
github_commit: "[P-Reinforce] Continuous Worker - readonly"
---
# [[readonly]]
# [[readonly|readonly]]
## 📌 한 줄 통찰 (The Karpathy Summary)
> `readonly`는 TypeScript에서 객체의 속성이나 배열, 튜플이 초기화된 이후에 수정되지 않도록 방지하는 수식어이자 유틸리티 타입입니다 [1-3]. 변수의 재할당을 막는 `const`와 달리 객체 내부 구조의 불변성을 제어하며, 런타임 오버헤드 없이 컴파일 타임에 오류를 잡아내어 코드의 안정성과 예측 가능성을 높입니다 [2, 4, 5].
## 📖 구조화된 지식 (Synthesized Content)
* **작동 방식 및 성능:**
`readonly`는 전적으로 컴파일 타임에만 동작하는 기능으로, 컴파일 후 생성된 [[JavaScript]] 코드에서는 흔적이 사라집니다 [2, 6]. 따라서 성능에 어떠한 런타임 오버헤드도 주지 않으면서 속성의 불변성을 강제할 수 있습니다 [2, 5, 6].
`readonly`는 전적으로 컴파일 타임에만 동작하는 기능으로, 컴파일 후 생성된 [[JavaScript|JavaScript]] 코드에서는 흔적이 사라집니다 [2, 6]. 따라서 성능에 어떠한 런타임 오버헤드도 주지 않으면서 속성의 불변성을 강제할 수 있습니다 [2, 5, 6].
* **객체 및 클래스에서의 활용:**
인터페이스나 타입 별칭, 클래스의 속성에 `readonly`를 지정할 수 있습니다. 클래스에서는 선언 시점이나 생성자(constructor) 내부에서만 초기화가 가능하며, 그 이후에 값을 수정하려고 시도하면 컴파일러가 에러를 발생시킵니다 [7, 8]. 이는 시스템의 고유 식별자(ID)나 환경 설정 값처럼 생명 주기 동안 변하지 않아야 하는 데이터를 보호할 때 유용합니다 [7, 9].
@@ -28,15 +28,15 @@ github_commit: "[P-Reinforce] Continuous Worker - readonly"
* `readonly`: 컴파일 타임에 객체/배열 내부 속성의 변경을 타입 레벨에서 차단하여, 실행 전 코드 작성 단계에서 안전을 보장합니다 [4, 5, 14].
* **얕은 불변성(Shallow Immutability)의 한계:**
기본적인 `readonly` 수식어나 `Readonly<T>` 유틸리티 타입은 최상위 레벨의 속성에만 얕게 적용됩니다 [16-18]. 즉, 중첩된 내부 객체는 여전히 수정될 수 있습니다 [17, 18]. 완벽한 깊은 불변성을 원한다면 재귀적으로 속성을 잠그는 커스텀 `[[DeepReadonly]]` 유틸리티 타입을 별도로 구현해야 합니다 [17-19].
기본적인 `readonly` 수식어나 `Readonly<T>` 유틸리티 타입은 최상위 레벨의 속성에만 얕게 적용됩니다 [16-18]. 즉, 중첩된 내부 객체는 여전히 수정될 수 있습니다 [17, 18]. 완벽한 깊은 불변성을 원한다면 재귀적으로 속성을 잠그는 커스텀 `[[DeepReadonly|DeepReadonly]]` 유틸리티 타입을 별도로 구현해야 합니다 [17-19].
## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요.
- **정책 변화:** Programming & Language 분야의 자동 자산화 수행.
## 🔗 지식 연결 (Graph)
- **Related Topics:** const, Object.freeze(), ReadonlyArray, [[DeepReadonly]], Utility Types
- **Projects/Contexts:** [[State]] [[Management]], Configuration Objects, API Responses
- **Related Topics:** const, Object.freeze(), ReadonlyArray, [[DeepReadonly|DeepReadonly]], Utility Types
- **Projects/Contexts:** [[State|State]] [[Management|Management]], Configuration Objects, API Responses
- **Contradictions/Notes:** `readonly`는 데이터 변경을 막는 훌륭한 타입 제어 장치지만, 컴파일러는 `readonly` 데이터를 변경 가능(mutable)한 매개변수를 받는 함수에 전달하는 것(Aliasing)을 허용하므로 이로 인한 우회적 변이(mutation)가 발생할 수 있다는 구조적 맹점을 주의해야 합니다 [20, 21].
---