3.9 KiB
3.9 KiB
id, title, category, status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, tags, raw_sources, last_reinforced, github_commit, inferred_by, tech_stack
| id | title | category | status | canonical_id | aliases | duplicate_of | source_trust_level | confidence_score | tags | raw_sources | last_reinforced | github_commit | inferred_by | tech_stack | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| wiki-2026-0508-determinism-in-computing | Determinism in Computing | 10_Wiki/Topics | needs_review | self |
|
none | A | 1.0 |
|
2026-04-26 | pending | Claude Opus 4.7 (auto-normalize 2026-05-08) |
|
Determinism in Computing (계산의 결정론)
📌 한 줄 통찰 (The Karpathy Summary)
"동일한 입력과 초기 상태가 주어지면, 언제 어디서나 반드시 동일한 결과를 보장하라" — 시스템의 내부 상태와 연산 과정에서 무작위성을 배제하여, 프로그램의 실행 결과가 100% 예측 가능하고 재현 가능하도록 설계하는 원칙.
📖 구조화된 지식 (Synthesized Content)
- 추출된 패턴: 부동 소수점 연산 오차, 멀티스레딩의 비결정적 실행 순서, 네트워크 지연 등 결과를 뒤흔들 수 있는 변수들을 제어하여 시스템의 일관성을 확보하는 설계 패턴.
- 핵심 요소:
- Fixed-point Arithmetic: 부동 소수점 오차로 인한 결과 차이를 방지하기 위해 정수 기반 연산 사용.
- Deterministic Lockstep: 멀티플레이어 환경에서 모든 클라이언트가 동일한 타임라인에서 동일한 연산을 수행하도록 동기화.
- Seeded Randomness: 난수 생성 시 항상 동일한 시드(Seed)를 사용하여 무작위 패턴을 재현 가능하게 함.
- No Side Effects: 함수가 외부 상태를 변경하지 않고 입력값에 의해서만 결과가 결정되도록 함 (순수 함수).
- 의의: 디버깅 용이성, 멀티플레이어 게임의 동기화, 과학 시뮬레이션의 신뢰성 확보에 필수적.
⚠️ 모순 및 업데이트 (Contradictions & Updates)
- 과거 데이터와의 충돌: 단순히 '작동'하는 것에 집중하던 방식에서, 분산 시스템과 복잡한 시뮬레이션이 늘어남에 따라 '재현 가능성'이 소프트웨어 품질의 핵심 지표로 부상.
- 정책 변화: Skybound 프로젝트는 리플레이 시스템과 멀티플레이 동기화를 위해 모든 물리 연산과 확률 이벤트를 결정론적으로 설계하며, 부동 소수점 오차 누적을 방지하는 알고리즘을 적용함.
🔗 지식 연결 (Graph)
- Time-Step-Logic-in-Games, Physics-Engine, Distributed-Computing, Simulation-Principles
- Raw Source: 10_Wiki/Topics/AI/Determinism-in-Computing.md
🤖 LLM 활용 힌트 (How to Use This Knowledge)
언제 이 지식을 쓰는가:
- (TODO)
언제 쓰면 안 되는가:
- (TODO)
🧪 검증 상태 (Validation)
- 정보 상태: needs_review
- 출처 신뢰도: A
- 검토 이유: (P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)
🧬 중복 검사 (Duplicate Check)
- 기존 유사 문서: (TODO: 인덱서 클러스터 리포트 참조)
- 처리 방식: UPDATE (자동 정규화)
- 처리 이유: Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
🕓 변경 이력 (Changelog)
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|---|---|---|---|
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
💻 코드 패턴 (Code Patterns)
패턴 1: (TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)
# TODO
🤔 의사결정 기준 (Decision Criteria)
선택 A를 써야 할 때:
- (TODO)
선택 B를 써야 할 때:
- (TODO)
기본값:
(TODO)
❌ 안티패턴 (Anti-Patterns)
- [안티패턴]: (TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)