From f4e731b11532da835d84a625d05aa3c11e199f18 Mon Sep 17 00:00:00 2001 From: yesung Date: Mon, 20 Apr 2026 14:26:57 +0900 Subject: [PATCH] Initial Commit: Reinforced Knowledge Wiki v1.0 - Pure Origin --- AI & Biology/Artificial Life (ALife).md | 25 +++++++ AI & Ethics/Algorithmic Bias in Art.md | 25 +++++++ AI & Ethics/Algorithmic Decision Making.md | 25 +++++++ .../Artificial-Intelligence-Explainability.md | 25 +++++++ AI & Games/AlphaZero Strategy.md | 25 +++++++ ...Drift (개념 드리프트, 모델 지식의 부패).md | 32 ++++++++ AI & Narrative/AI-Driven Narrative Systems.md | 25 +++++++ AI & Psychology/Affective Computing.md | 25 +++++++ AI & Tools/AI Connect LLM Tool.md | 39 ++++++++++ AI/20k skinned instances demo.md | 39 ++++++++++ AI/AI Safety (AI 안전).md | 25 +++++++ AI/AI 거버넌스 정책(AI Usage Policy).md | 42 +++++++++++ AI/AI 생성 코드 검증(AI Code Assurance).md | 39 ++++++++++ AI/AI 에이전트 (AI Agent).md | 25 +++++++ ...드 리뷰 및 보안 취약점 점검(DevSecOps).md | 40 ++++++++++ AI/AI 코드 리뷰.md | 33 +++++++++ ...열 맡기기_ - 정적 분석 툴 (ESLint Prettier)).md | 44 +++++++++++ ... 모델링 및 상태 머신(State Machine) 설계.md | 40 ++++++++++ AI/A_B-Testing-Platforms.md | 25 +++++++ AI/Accessibility-Compliance-Audit.md | 25 +++++++ AI/Adaptive Compute (적응형 계산량 조절).md | 25 +++++++ AI/Advanced-Interface-Design.md | 25 +++++++ AI/Adversarial Code Stylometry.md | 34 +++++++++ AI/Algorithmic-Biology.md | 25 +++++++ AI/Algorithmic-Game-Theory.md | 25 +++++++ AI/Ambient-Declarations.md | 25 +++++++ AI/Amdahls Law (암달의 법칙).md | 25 +++++++ AI/Artificial-Intelligence-in-Games.md | 25 +++++++ AI/Artificial-Intelligence.md | 25 +++++++ ...sm Spectrum Disorder (ASD) Intervention.md | 25 +++++++ AI/Automated-Game-Testing.md | 25 +++++++ AI/Automated-Map-Generation.md | 25 +++++++ AI/Automated-Reasoning.md | 25 +++++++ AI/Automated-Refactoring-Tools.md | 25 +++++++ AI/Automated-Theorem-Proving.md | 25 +++++++ AI/Automated_Mapping.md | 29 ++++++++ AI/Autonomous Vehicle Path Planning.md | 25 +++++++ AI/Autonomous-Polling-Wait-Automation.md | 35 +++++++++ AI/Autonomous-Vehicle-Path-Planning.md | 25 +++++++ AI/Axify.md | 33 +++++++++ AI/Azure DevOps.md | 35 +++++++++ AI/Baseline Project.md | 35 +++++++++ AI/Bayesian Inference.md | 25 +++++++ AI/Behavioral Finance.md | 25 +++++++ AI/Behavioral-Economics.md | 25 +++++++ AI/Bellman Equation.md | 25 +++++++ AI/Best SAST Tools in 2026.md | 46 ++++++++++++ AI/Best-of-N Sampling (최적 샘플링).md | 25 +++++++ AI/BioShock (2007).md | 25 +++++++ AI/BioShock-Critique.md | 25 +++++++ AI/Bioenergetics.md | 25 +++++++ AI/Bioinformatics-Structure-Prediction.md | 25 +++++++ AI/Biomechanics-of-Injury.md | 25 +++++++ AI/Biometrics.md | 25 +++++++ AI/Bounded Contexts.md | 30 ++++++++ AI/Bounded Rationality.md | 25 +++++++ ...nded-Contexts-and-Interface-Segregation.md | 25 +++++++ ...rain-Derived Neurotrophic Factor (BDNF).md | 25 +++++++ AI/Branded-Types-for-Nominal-Typing.md | 25 +++++++ AI/Branded-Types.md | 25 +++++++ ...rnout Prevention in Professional Gaming.md | 25 +++++++ AI/CI_CD 및 Pull Request 자동화 리뷰.md | 33 +++++++++ AI/CI_CD 파이프라인 및 IDE 통합 보안.md | 32 ++++++++ AI/CI_CD.md | 33 +++++++++ AI/CPTED.md | 25 +++++++ AI/CV_Synthesis.md | 29 ++++++++ ...등의 프로그램 바이너리 작성자 식별 연구.md | 39 ++++++++++ AI/Call Stack.md | 30 ++++++++ AI/Central-Pattern-Generators.md | 25 +++++++ AI/CesiumJS.md | 34 +++++++++ AI/Chain-of-Thought (CoT 사고 사슬).md | 25 +++++++ AI/Chrome DevTools Memory Profiling.md | 43 +++++++++++ ...ome DevTools 메모리 분석 및 성능 최적화.md | 30 ++++++++ ...ols 메모리 프로파일링 및 힙 스냅샷 분석.md | 54 ++++++++++++++ AI/Chrome DevTools 메모리 프로파일링.md | 33 +++++++++ AI/Chrome DevTools.md | 50 +++++++++++++ AI/Chrome 브라우저 렌더링 성능.md | 42 +++++++++++ AI/Chronic-Pain-Management-Protocols.md | 25 +++++++ AI/Circuit Discovery (회로 발견).md | 25 +++++++ AI/Circular Economy Transitions.md | 25 +++++++ AI/Circular-Economy.md | 25 +++++++ AI/Clean-Architecture-Implementation.md | 25 +++++++ AI/Clean-Architecture-TypeScript.md | 25 +++++++ AI/Climate Change Mitigation Frameworks.md | 25 +++++++ AI/Clinical-Kinesiology-Assessment.md | 25 +++++++ AI/Code Review.md | 40 ++++++++++ AI/Cognitive Biases.md | 25 +++++++ AI/Cognitive Computing.md | 25 +++++++ AI/Cognitive Neuroscience of Flow.md | 25 +++++++ AI/Cognitive Psychology.md | 25 +++++++ AI/Cognitive Reserve Theory.md | 25 +++++++ ... Training Software (eg Aim Lab_KovaaKs).md | 25 +++++++ AI/Cognitive-Evaluation-Theory.md | 25 +++++++ AI/Cognitive-Therapy-in-CBT.md | 25 +++++++ AI/Combinatorial Game Theory.md | 25 +++++++ AI/Combinatorial-Optimization.md | 25 +++++++ AI/CompCert-C-Compiler.md | 25 +++++++ AI/Complexity Theory.md | 25 +++++++ AI/Computational Creativity.md | 25 +++++++ ... Neuroscience of Reinforcement Learning.md | 25 +++++++ AI/Computational-Creativity.md | 25 +++++++ AI/Computer Vision.md | 25 +++++++ AI/Computer-Aided-Design (CAD).md | 25 +++++++ AI/Computer_Vision.md | 29 ++++++++ AI/Concept Drift (개념 드리프트).md | 25 +++++++ AI/Connect AI 기술 문서 및 사용 설명서.md | 25 +++++++ ... AI 시스템 아키텍처 및 데이터 흐름 분석.md | 25 +++++++ AI/Constitutional AI (헌법 AI).md | 25 +++++++ AI/Constraint Satisfaction Problems (CSP).md | 25 +++++++ AI/Constraint-Satisfaction-Problems.md | 25 +++++++ AI/Continuous-Discovery.md | 25 +++++++ AI/Control Systems Engineering.md | 25 +++++++ AI/Control-Theory.md | 25 +++++++ AI/Conways On Numbers and Games.md | 25 +++++++ AI/Corgea.md | 34 +++++++++ AI/Corporate-LMS-Training.md | 25 +++++++ AI/Creativity Research.md | 25 +++++++ AI/Credit Assignment Problem.md | 25 +++++++ AI/Custom-ESLint-Rules-Development.md | 25 +++++++ AI/Customer-Journey-Mapping.md | 25 +++++++ AI/Cybernetics.md | 25 +++++++ AI/DPO (Direct Preference Optimization).md | 25 +++++++ AI/Data Distillation (데이터 증류).md | 25 +++++++ AI/Data-Augmentation-for-Medical-Imaging.md | 25 +++++++ AI/Data-Science-in-UX.md | 25 +++++++ AI/Data-Transfer-Object-Design.md | 25 +++++++ AI/Dead Space (Series).md | 25 +++++++ AI/Deceptive Alignment (기만적 정렬).md | 25 +++++++ AI/Decision Theory.md | 25 +++++++ AI/Declaration Files (dts).md | 25 +++++++ AI/Declaration-Files.md | 25 +++++++ AI/Deep Q-Networks (DQN).md | 25 +++++++ AI/Deep-Convolutional-GANs.md | 25 +++++++ AI/DeepCode AI.md | 37 ++++++++++ AI/Deepfake-Detection-Research.md | 25 +++++++ AI/Default Mode Network (DMN).md | 25 +++++++ AI/DefinitelyTyped.md | 25 +++++++ AI/Degrees-of-Freedom.md | 25 +++++++ AI/Deliberate-Practice.md | 25 +++++++ AI/Denavit-Hartenberg-Parameters.md | 25 +++++++ AI/Dependency-Graph-Analysis.md | 25 +++++++ AI/Dependency-Injection.md | 25 +++++++ AI/Dependency-Inversion-Principle.md | 25 +++++++ AI/DevOps-and-UX-Convergence.md | 25 +++++++ AI/DevSecOps.md | 32 ++++++++ AI/Diffusion-Models.md | 25 +++++++ AI/Digital Intellectual Property Rights.md | 25 +++++++ AI/Digital Thread Integration.md | 25 +++++++ AI/Digital-Twin-Technology.md | 25 +++++++ AI/Diminishing Returns (한계 수익 체감).md | 25 +++++++ AI/Directed-Acyclic-Graph-Build-Systems.md | 25 +++++++ ...ted-Acyclic-Graph-Dependency-Management.md | 25 +++++++ AI/Discriminated-Unions-for-Error-Handling.md | 25 +++++++ AI/Discriminated-Unions-for-State-Modeling.md | 25 +++++++ AI/Discriminated-Unions.md | 25 +++++++ AI/Dissipative Structures.md | 25 +++++++ AI/Distributed-System-Type-Safety.md | 25 +++++++ AI/Domain Objects.md | 35 +++++++++ AI/Domain-Driven Design (DDD) Type Safety.md | 25 +++++++ ...omain-Driven Design (DDD) in TypeScript.md | 25 +++++++ ...omain-Driven-Design (DDD) in TypeScript.md | 25 +++++++ AI/Domain-Driven-Design (DDD).md | 25 +++++++ ...omain-Driven-Design-(DDD)-in-TypeScript.md | 25 +++++++ AI/Domain-Driven-Design-(DDD).md | 25 +++++++ AI/Domain-Driven-Design-Bounded-Context.md | 25 +++++++ AI/Domain-Driven-Design-Interface-Modeling.md | 25 +++++++ AI/Domain-Driven-Design-in-TypeScript.md | 25 +++++++ AI/Domain-Driven-Design-with-TypeScript.md | 25 +++++++ AI/Domain-Driven-Design.md | 25 +++++++ AI/Dopaminergic Reward System.md | 25 +++++++ AI/Dopaminergic Reward Systems.md | 25 +++++++ AI/Drama Management Systems.md | 25 +++++++ AI/Dynamic Difficulty Adjustment (DDA).md | 25 +++++++ AI/Dynamic Few-Shot (동적 퓨샷 선택 전략).md | 25 +++++++ AI/E-commerce-Catalog-Management.md | 25 +++++++ AI/E-commerce-Optimization.md | 25 +++++++ AI/ESLint-Static-Analysis.md | 25 +++++++ AI/EU-Web-Accessibility-Directive.md | 25 +++++++ AI/EVE Online (Spreadsheet Economy).md | 25 +++++++ AI/Ecology and Ecosystem Modeling.md | 25 +++++++ AI/Elite-Sport-Science-Protocols.md | 25 +++++++ AI/Elite-Strength-and-Conditioning.md | 25 +++++++ AI/Embodied Cognition.md | 25 +++++++ ...lly Intelligent Tutoring Systems (EITS).md | 25 +++++++ AI/Encapsulation-and-Information-Hiding.md | 25 +++++++ AI/Encapsulation-of-Domain-Invariants.md | 25 +++++++ AI/Encapsulation-via-Access-Modifiers.md | 25 +++++++ AI/Endurance-Athletics-Cognition.md | 25 +++++++ AI/Enterprise-Design-Systems.md | 25 +++++++ AI/Enterprise-Resource-Planning-Systems.md | 25 +++++++ AI/Enterprise-Scale-Monorepo-Management.md | 25 +++++++ AI/Enterprise-Software-Architecture.md | 25 +++++++ AI/Enterprise-Software-Engineering.md | 25 +++++++ AI/Europeana.md | 25 +++++++ AI/Evolutionary Biology.md | 25 +++++++ AI/Evolutionary Computation.md | 25 +++++++ AI/Evolutionary-Biology.md | 25 +++++++ AI/Evolutionary-Computation.md | 25 +++++++ AI/Excess-Property-Checking.md | 25 +++++++ AI/Executive Dysfunction.md | 25 +++++++ AI/Executive-Function-Deficit.md | 25 +++++++ AI/Exercise-Physiology.md | 25 +++++++ AI/Exhaustiveness-Checking.md | 25 +++++++ AI/Expected Utility Theory.md | 25 +++++++ AI/Expo 2025 Osaka.md | 33 +++++++++ AI/Feature Clamping (피처 고정).md | 25 +++++++ AI/Feedback-Control-Systems.md | 25 +++++++ AI/Finite-Element-Analysis.md | 25 +++++++ AI/Firefox.md | 47 ++++++++++++ AI/First Input Delay (FID).md | 33 +++++++++ AI/Fixed Time Step vs Variable Time Step.md | 25 +++++++ AI/Flow State.md | 25 +++++++ AI/Flow-State.md | 25 +++++++ AI/Functional-Programming-in-TypeScript.md | 25 +++++++ AI/GPU.md | 33 +++++++++ ...PO (Group Relative Policy Optimization).md | 25 +++++++ AI/Gacha Mechanics Analysis.md | 25 +++++++ AI/Gait-Analysis-Laboratory.md | 25 +++++++ AI/Gait-Analysis-Methodologies.md | 25 +++++++ AI/Game Balance Theory.md | 25 +++++++ AI/Game Economy Modeling.md | 25 +++++++ ...ame Engine Architecture (Jason Gregory).md | 25 +++++++ AI/Game Engine Architecture.md | 25 +++++++ AI/Game-Design-Ontology.md | 25 +++++++ AI/Game-Design-Theory.md | 25 +++++++ AI/Game-Ontology-for-PCG.md | 25 +++++++ AI/Gamification Theory.md | 25 +++++++ ...dversarial Networks (GANs) in Fine Arts.md | 25 +++++++ AI/Generative-Adversarial-Networks.md | 25 +++++++ AI/Generics-and-Polymorphism.md | 25 +++++++ AI/Geographic-Information-Systems (GIS).md | 25 +++++++ AI/Geriatric-Medicine.md | 25 +++++++ AI/GitLab CI.md | 34 +++++++++ AI/Goal Misgeneralization (목표 오일반화).md | 25 +++++++ AI/Graph-Coloring-Problem.md | 25 +++++++ AI/Graph-Theory.md | 25 +++++++ AI/GraphQL-Code-Generator.md | 25 +++++++ AI/GraphRAG (그래프 기반 검색 증강 생성).md | 25 +++++++ AI/Grit.md | 25 +++++++ ...rowth Mindset Intervention in Education.md | 25 +++++++ AI/Growth-Mindset.md | 25 +++++++ AI/Guilty-Gear-Xrd-Rendering-Pipeline.md | 25 +++++++ AI/HANDOVER.md | 25 +++++++ AI/HBO Prestige Television.md | 25 +++++++ AI/HHH (Helpful Harmless Honest).md | 25 +++++++ AI/Hardware-Verification.md | 25 +++++++ AI/Health Informatics (mHealth).md | 25 +++++++ AI/Heap Snapshot(힙 스냅샷).md | 30 ++++++++ AI/Hebbian Theory.md | 25 +++++++ AI/High-Cohesion-Low-Coupling.md | 25 +++++++ AI/High-Frequency Trading Models.md | 25 +++++++ ...ormance Training Programs (Tier 1 Orgs).md | 25 +++++++ AI/High-Performance-Coaching.md | 25 +++++++ AI/High-Performance-Sports-Science.md | 25 +++++++ AI/Homeostasis.md | 25 +++++++ AI/Human-Computer-Interaction.md | 25 +++++++ AI/Hyperinflation in Closed-Loop Systems.md | 25 +++++++ AI/IEEE P36521.md | 25 +++++++ AI/Immersive Sim Design.md | 25 +++++++ AI/Immersive Sims (eg Deus Ex Dishonored).md | 25 +++++++ AI/Immersive Sims (eg Deus Ex Thief).md | 25 +++++++ AI/Immersive-Sim-Genre.md | 25 +++++++ AI/Immutability-Patterns.md | 25 +++++++ AI/In-Context Learning (ICL 문맥 내 학습).md | 25 +++++++ AI/Incremental-Computation.md | 25 +++++++ AI/Indoor Wayfinding for Smart Cities.md | 25 +++++++ AI/Industrial Metaverse.md | 25 +++++++ AI/Industrial-Automation.md | 25 +++++++ AI/Injury-Prevention-Protocols.md | 25 +++++++ AI/InstancedMesh2 library.md | 37 ++++++++++ AI/Interaction to Next Paint (INP).md | 48 ++++++++++++ AI/Interface Segregation Principle.md | 25 +++++++ AI/Interface-Segregation-Principle-in-TS.md | 25 +++++++ AI/Interop 2026.md | 32 ++++++++ AI/Interpolation and Extrapolation.md | 25 +++++++ AI/InversifyJS.md | 25 +++++++ AI/Irrational Games.md | 25 +++++++ AI/Itô Calculus.md | 25 +++++++ AI/J-curve S-curve (AI 발전의 동학).md | 25 +++++++ AI/JSON-Schema.md | 25 +++++++ AI/Jailbreaking (탈옥).md | 25 +++++++ AI/Jenkins.md | 32 ++++++++ AI/KTO (Kahneman-Tversky Optimization).md | 25 +++++++ AI/Ken Levine-Design-Philosophy.md | 25 +++++++ AI/Keyof-Operator.md | 25 +++++++ AI/Kinematic-Modeling.md | 25 +++++++ AI/Knowledge-Representation-in-AI.md | 25 +++++++ AI/LLM Alignment (LLM 정렬).md | 25 +++++++ AI/LLM Hallucination (언어 모델 환각).md | 25 +++++++ AI/LLM.md | 37 ++++++++++ AI/LOD.md | 33 +++++++++ AI/Language-Acquisition-Apps.md | 25 +++++++ ...Scale-Enterprise-Frontend-Architectures.md | 25 +++++++ AI/Large-Scale-Knowledge-Integration.md | 25 +++++++ AI/Large-scale-Frontend-Architecture.md | 25 +++++++ AI/Large-scale-TypeScript-Monorepos.md | 25 +++++++ AI/Largest Contentful Paint (LCP).md | 38 ++++++++++ AI/Lerna-Legacy-Management.md | 25 +++++++ AI/Level Design Architecture.md | 25 +++++++ AI/Level Design Automation.md | 25 +++++++ AI/Level of Detail (LOD).md | 35 +++++++++ AI/Level-Design-Automation.md | 25 +++++++ ...resentation Hypothesis (선형 표현 가설).md | 25 +++++++ AI/Live Service Game Design.md | 25 +++++++ AI/LiveOps Management.md | 25 +++++++ AI/LoRA (Low-Rank Adaptation).md | 25 +++++++ AI/Locus of Control.md | 25 +++++++ AI/Locus-of-Control.md | 25 +++++++ AI/Long Animation Frames API.md | 32 ++++++++ AI/Long Tasks.md | 39 ++++++++++ AI/Ludology-vs-Narratology.md | 25 +++++++ AI/MDA-P-Framework.md | 25 +++++++ AI/MMORPG Economic Management.md | 25 +++++++ AI/Machine Learning in Game Design.md | 25 +++++++ AI/Machine-Learning-Animation.md | 25 +++++++ AI/Main Thread.md | 32 ++++++++ AI/Market Regulation.md | 25 +++++++ ...c Interpretability (기계적 해석 가능성).md | 25 +++++++ AI/Mesocortical Pathway.md | 25 +++++++ AI/Metabolic Efficiency.md | 25 +++++++ AI/Metabolic-Flexibility.md | 25 +++++++ AI/Metabolic-Resource-Allocation.md | 25 +++++++ AI/Metro Exodus.md | 25 +++++++ ...oservices-Architecture-Bounded-Contexts.md | 25 +++++++ AI/Microservices-Architecture-Type-Safety.md | 25 +++++++ AI/Microservices-Communication-Patterns.md | 25 +++++++ AI/Mipmap.md | 33 +++++++++ AI/Mobile-App-Development.md | 25 +++++++ AI/Model Collapse (모델 붕괴 현상).md | 25 +++++++ AI/Model Context Protocol (MCP).md | 32 ++++++++ AI/Model Predictive Control (MPC).md | 25 +++++++ AI/Model Spec (모델 스펙 AI 행동 명세서).md | 25 +++++++ AI/Module Augmentation.md | 25 +++++++ AI/Module-Augmentation.md | 25 +++++++ AI/Module-Boundary-Enforcement.md | 25 +++++++ AI/Monetary Policy in Virtual Worlds.md | 25 +++++++ AI/Monetary Policy.md | 25 +++++++ AI/Monosemanticity (일의성).md | 25 +++++++ ...ti-Agent Debate (에이전트 간 토론 전략).md | 25 +++++++ ...lti-Agent System (다중 에이전트 시스템).md | 25 +++++++ AI/Multi-Hop Reasoning (다중 홉 추론).md | 25 +++++++ AI/Multimodal Sentiment Analysis.md | 25 +++++++ ... Language Processing (NLP) in Narrative.md | 25 +++++++ AI/Natural-Language-Processing.md | 25 +++++++ AI/Naughty Dog Development.md | 25 +++++++ AI/NestJS-Architecture.md | 25 +++++++ ...rk Synchronization in Multiplayer Games.md | 25 +++++++ AI/Neural-Symbolic-Integration.md | 25 +++++++ AI/Neuro-Symbolic-AI.md | 25 +++++++ AI/Neurobiology-of-Reward.md | 25 +++++++ AI/Neurodevelopmental Disorders.md | 25 +++++++ AI/Neuroeconomics.md | 25 +++++++ AI/Neuroergonomics.md | 25 +++++++ AI/Neuromuscular-Adaptation.md | 25 +++++++ AI/Neuromuscular-Control.md | 25 +++++++ ...pharmacology of Substance Use Disorders.md | 25 +++++++ AI/Neuroplasticity in Addiction.md | 25 +++++++ AI/Neuroplasticity in Motor Learning.md | 25 +++++++ AI/Neuroplasticity-in-Motor-Learning.md | 25 +++++++ AI/Neuroprosthetics-Development.md | 25 +++++++ AI/Neuropsychiatric Disorders.md | 25 +++++++ AI/Neuropsychology.md | 25 +++++++ AI/Neurorehabilitation after Stroke.md | 25 +++++++ AI/Neurorehabilitation-Post-Stroke.md | 25 +++++++ ... Sky (Large-scale planetary generation).md | 25 +++++++ AI/No Mans Sky.md | 25 +++++++ AI/Nodejs 메모리 누수 분석.md | 41 +++++++++++ AI/Nodejs 프로덕션 메모리 누수 진단.md | 50 +++++++++++++ AI/Nodejs 프로덕션 메모리 문제 해결.md | 30 ++++++++ AI/Nodejs 프로덕션 메모리 병목 분석.md | 53 ++++++++++++++ AI/Nodejs-Global-Namespace-Augmentation.md | 25 +++++++ AI/Nominal-Typing-in-TypeScript.md | 25 +++++++ ...hotorealistic-Rendering-in-Level-Design.md | 25 +++++++ AI/Nuclear Deterrence Models.md | 25 +++++++ AI/Nutritional-Biochemistry.md | 25 +++++++ ...WA vs CWA (개방 세계 vs 폐쇄 세계 가정).md | 25 +++++++ AI/Object Pooling (가비지 컬렉션 최적화).md | 25 +++++++ AI/Object-Oriented-Design-Patterns.md | 25 +++++++ AI/Objectivism.md | 25 +++++++ AI/Occupational-Therapy.md | 25 +++++++ AI/Okami-Ink-Wash-Aesthetics.md | 25 +++++++ AI/Olympic-Training-Cycles.md | 25 +++++++ AI/Olympic-Training-Models.md | 25 +++++++ AI/Olympic-Training-Protocols.md | 25 +++++++ AI/Ontology-Driven-Relevancy-Filtering.md | 35 +++++++++ AI/Ontology-Engineering.md | 25 +++++++ AI/Ontology-Guided Knowledge Extraction.md | 25 +++++++ AI/Opaque-Types.md | 25 +++++++ AI/Open-Access-Movement.md | 25 +++++++ AI/Operations-Research.md | 25 +++++++ AI/Organizational Psychology.md | 25 +++++++ AI/Outer Alignment vs Inner Alignment.md | 25 +++++++ AI/PCGML-Frameworks.md | 25 +++++++ AI/PEFT (Parameter-Efficient Fine-Tuning).md | 25 +++++++ AI/PRM (Process Reward Model).md | 25 +++++++ AI/PageSpeed Insights.md | 32 ++++++++ AI/Papers Please (Bureaucratic Simulation).md | 25 +++++++ AI/Papers-Please.md | 25 +++++++ AI/Pedestrian-Modeling.md | 25 +++++++ AI/Perceptual-Motor-Skills.md | 25 +++++++ AI/Performance Management Systems.md | 25 +++++++ AI/Performance Psychology.md | 25 +++++++ AI/Periodization-Theory.md | 25 +++++++ AI/Personalization-Engines.md | 25 +++++++ AI/Persuasive Games.md | 25 +++++++ AI/Phase Transition (위상 변이).md | 25 +++++++ AI/Phyllotaxis-Modeling.md | 25 +++++++ AI/Physics-Based-Simulation.md | 25 +++++++ AI/Platform Economics.md | 25 +++++++ AI/Play-to-Earn (P2E) Economies.md | 25 +++++++ AI/Player-Agency.md | 25 +++++++ AI/PolicyIQ.md | 32 ++++++++ AI/Positive-Education.md | 25 +++++++ AI/Post-structuralism.md | 25 +++++++ AI/Precision Medicine Training.md | 25 +++++++ AI/Predictive Maintenance (PdM).md | 25 +++++++ AI/Predictive-Modeling.md | 25 +++++++ AI/Predictive-Urban-Modeling.md | 25 +++++++ AI/Prefrontal Cortex Dysfunction.md | 25 +++++++ AI/Prefrontal-Cortex-Dysfunction.md | 25 +++++++ ...obability Theory (Stochastic Processes).md | 25 +++++++ AI/Probability Theory.md | 25 +++++++ ...ural Content Generation (PCG) Balancing.md | 25 +++++++ AI/Procedural Content Generation (PCG).md | 25 +++++++ ...Generation via Machine Learning (PCGML).md | 25 +++++++ AI/Procedural Content Generation.md | 25 +++++++ AI/Procedural Rhetoric.md | 25 +++++++ AI/Procedural-Content-Generation (PCG).md | 25 +++++++ ...Content-Generation-via-Machine-Learning.md | 25 +++++++ AI/Procedural-Content-Generation.md | 25 +++++++ AI/Procedural-Texture-Generation.md | 25 +++++++ AI/Process Supervision (과정 감독).md | 25 +++++++ AI/Product-Types.md | 25 +++++++ AI/Prompt Injection (프롬프트 주입 공격).md | 25 +++++++ AI/Prospect Theory.md | 25 +++++++ AI/Prosthetic-Design-Optimization.md | 25 +++++++ AI/Psychophysiology.md | 25 +++++++ AI/Pull Request (PR) 워크플로우.md | 33 +++++++++ AI/Pull Request (PR).md | 37 ++++++++++ AI/Quality Gates.md | 33 +++++++++ AI/Quantitative-Usability-Testing.md | 25 +++++++ AI/RAG (검색 증강 생성).md | 25 +++++++ AI/RLAIF (AI 피드백 기반 강화학습).md | 25 +++++++ AI/RLHF (인간 피드백 기반 강화학습).md | 25 +++++++ AI/RL_Neuroscience.md | 29 ++++++++ AI/ReAct (Reasoning Acting).md | 25 +++++++ AI/Real-Time-Game-Engines.md | 25 +++++++ AI/Redux-Reducers-Design.md | 25 +++++++ AI/Redux-State-Management.md | 25 +++++++ AI/Regenerative Design.md | 25 +++++++ AI/Regenerative-Design.md | 25 +++++++ AI/Rehabilitative-Medicine.md | 25 +++++++ AI/Reinforcement Learning (RL).md | 25 +++++++ ...ment Learning for Automated Playtesting.md | 25 +++++++ AI/Reinforcement Learning in Economics.md | 25 +++++++ AI/Reinforcement Learning.md | 25 +++++++ AI/Reinforcement Schedules.md | 25 +++++++ AI/Resilience Science.md | 25 +++++++ AI/Resilience-Engineering.md | 25 +++++++ AI/Retainers(유지 경로).md | 40 ++++++++++ AI/Retaining Path.md | 39 ++++++++++ AI/Retrograde-Games.md | 25 +++++++ AI/Reward Hacking (보상 해킹).md | 25 +++++++ AI/Reward Prediction Error.md | 25 +++++++ AI/Risk Management in Finance.md | 25 +++++++ AI/Robotic Manipulation Control.md | 25 +++++++ AI/Robotic-Prosthetics-Control-Systems.md | 25 +++++++ AI/Robustness (강건성).md | 25 +++++++ ...T (Static Application Security Testing).md | 34 +++++++++ AI/SAST (정적 애플리케이션 보안 테스트).md | 40 ++++++++++ AI/SAST (정적 애플리케이션 보안 테스팅).md | 37 ++++++++++ AI/SAST.md | 30 ++++++++ AI/SDLC (소프트웨어 개발 수명 주기).md | 33 +++++++++ AI/SFT (Supervised Fine-Tuning).md | 25 +++++++ AI/SHACL (Shapes Constraint Language).md | 25 +++++++ AI/STEM Laboratory Virtualization.md | 25 +++++++ AI/Scaffolding (Instructional Technique).md | 25 +++++++ AI/Scheduling-and-Timetabling.md | 25 +++++++ AI/Section-508-Compliance.md | 25 +++++++ AI/Segmentsai.md | 33 +++++++++ AI/Self-Consistency (자기 일관성 디코딩).md | 25 +++++++ AI/Self-Organized Criticality.md | 25 +++++++ AI/Self-Play (자기 대결 기반 강화학습).md | 25 +++++++ AI/Self-Regulation.md | 25 +++++++ AI/Semantic Grounding Provenance.md | 25 +++++++ AI/Semgrep Assistant.md | 41 +++++++++++ AI/Serious Games.md | 25 +++++++ AI/Service-Design-Blueprinting.md | 25 +++++++ AI/Shannon-Entropy.md | 25 +++++++ ...ty (as a model of systemic interaction).md | 25 +++++++ AI/Simulated History.md | 25 +++++++ AI/Simulator Sickness Questionnaire (SSQ).md | 36 +++++++++ AI/Single-Source-of-Truth.md | 25 +++++++ AI/Singularity (기술적 특이점).md | 25 +++++++ ...조 및 의존성 분석 (Dependency Mapping).md | 25 +++++++ ...ocol 데이터 및 제어 흐름 (Control Flow).md | 25 +++++++ AI/Skybound Protocol 코드리뷰.md | 37 ++++++++++ ...r Labs 등 종합 애플리케이션 보안 플랫폼.md | 33 +++++++++ AI/Social Constructivism.md | 25 +++++++ AI/Social Systems Theory.md | 25 +++++++ AI/Soft Navigation.md | 32 ++++++++ AI/SonarQube.md | 33 +++++++++ AI/Sparse Autoencoder (SAE).md | 25 +++++++ AI/Spatial UI.md | 25 +++++++ AI/Specification Gaming (명세 우회).md | 25 +++++++ AI/Sports Neuroscience.md | 25 +++++++ AI/Sports-Medicine-Rehabilitation.md | 25 +++++++ AI/Sports-Performance-Optimization.md | 25 +++++++ AI/Sports-Psychology.md | 25 +++++++ AI/Sports-Science-Training.md | 25 +++++++ AI/Sprague-Grundy Theorem.md | 25 +++++++ ...tic Application Security Testing (SAST).md | 34 +++++++++ AI/Static-Analysis-in-JavaScript-Ecosystem.md | 25 +++++++ AI/Static-Analysis-in-JavaScript.md | 25 +++++++ AI/Static-Analysis-in-Software-Engineering.md | 25 +++++++ AI/Static-Analysis-of-Interfaces.md | 25 +++++++ AI/Stochastic Processes.md | 25 +++++++ AI/Stochastic-Games.md | 25 +++++++ AI/Sum-Types.md | 25 +++++++ AI/Superposition (중첩).md | 25 +++++++ AI/Supply-Chain-Management.md | 25 +++++++ AI/Surreal Numbers.md | 25 +++++++ AI/Survival Horror Genre.md | 25 +++++++ AI/Sustainable Development Goals (SDGs).md | 25 +++++++ AI/Sustainable-Development-Goals (SDGs).md | 25 +++++++ AI/Sycophancy (LLM 아첨 문제).md | 25 +++++++ AI/Symbolic-Logic.md | 25 +++++++ AI/Synaptic Plasticity.md | 25 +++++++ AI/SynthID (구글 AI 식별 기술).md | 25 +++++++ AI/Synthetic Data (합성 데이터).md | 25 +++++++ AI/System Prompt (시스템 프롬프트).md | 25 +++++++ AI/Systemic-Cohesion.md | 25 +++++++ AI/Systems Thinking in Management.md | 25 +++++++ AI/Systems Thinking.md | 25 +++++++ AI/Taxonomy-and-Ontology.md | 25 +++++++ AI/Temporal Difference Learning.md | 25 +++++++ ...mpute Scaling (추론 시간 계산 스케일링).md | 25 +++++++ AI/Texture-Synthesis.md | 25 +++++++ AI/The Immersive Sim Taxonomy Debate.md | 25 +++++++ AI/The Last of Us Series.md | 25 +++++++ AI/The Overwatch League Case Study.md | 25 +++++++ AI/The Science of Well-Being (Yale).md | 25 +++++++ AI/The-Collapse-of-Utopian-Ideologies.md | 25 +++++++ AI/Themework-Integration.md | 25 +++++++ AI/Threejs WebGL 렌더링 최적화.md | 47 ++++++++++++ AI/Threejs WebGPURenderer.md | 37 ++++++++++ AI/Threejs 성능 최적화.md | 49 +++++++++++++ AI/Time Series Analysis.md | 25 +++++++ AI/Time to Interactive (TTI).md | 30 ++++++++ AI/Tokenomics.md | 25 +++++++ AI/Topology-of-Strategy-Spaces.md | 25 +++++++ AI/Trajectory-Planning.md | 25 +++++++ AI/Transhumanism.md | 25 +++++++ AI/Transient Hypofrontality.md | 25 +++++++ AI/Transient-Hypofrontality.md | 25 +++++++ AI/Transit-Oriented-Development (TOD).md | 25 +++++++ AI/Tree-of-Thought (ToT 사고 트리).md | 25 +++++++ AI/Type Definition Files (DefinitelyTyped).md | 25 +++++++ AI/Type-Composition-via-Intersection-Types.md | 25 +++++++ AI/Type-Guards.md | 25 +++++++ AI/Type-Inference.md | 25 +++++++ AI/Type-Intersection.md | 25 +++++++ AI/Type-Safety-in-Distributed-Systems.md | 25 +++++++ AI/Type-Safety-in-Domain-Driven-Design.md | 25 +++++++ AI/Type-Safety-in-Generics.md | 25 +++++++ AI/Type-Soundness.md | 25 +++++++ AI/Type-Theory.md | 25 +++++++ AI/Type-Unification.md | 25 +++++++ AI/TypeScript Compiler (tsc).md | 25 +++++++ ...peScript Declaration Files (dts) Design.md | 25 +++++++ AI/TypeScript Interface Design.md | 25 +++++++ AI/TypeScript Type System Design.md | 25 +++++++ AI/TypeScript-Advanced-Type-System-Design.md | 25 +++++++ AI/TypeScript-Compiler-API-Integration.md | 25 +++++++ AI/TypeScript-Domain-Driven-Design.md | 25 +++++++ AI/TypeScript-Interface-Design.md | 25 +++++++ AI/TypeScript-Type-System-Architecture.md | 25 +++++++ AI/TypeScript-Type-System-Design.md | 25 +++++++ AI/TypeScript-Type-System-Interface-Design.md | 25 +++++++ AI/TypeScript-Type-System.md | 25 +++++++ AI/UX-Design-and-Engagement.md | 25 +++++++ AI/UX-Research-Methodologies.md | 25 +++++++ AI/Ubiquitous Computing Paradigm.md | 25 +++++++ AI/Ubiquitous Computing.md | 25 +++++++ AI/Ubiquitous-Computing.md | 25 +++++++ AI/Ubiquitous-Language-Encoding.md | 25 +++++++ AI/Union-Types-vs-Overloading.md | 25 +++++++ AI/Universal-Design-Principles.md | 25 +++++++ AI/Urban Resilience Strategies.md | 25 +++++++ AI/Urban-Planning.md | 25 +++++++ AI/Utility Theory.md | 25 +++++++ AI/VIA Institute on Character.md | 25 +++++++ AI/Value Object Pattern.md | 25 +++++++ AI/Value-Objects.md | 25 +++++++ AI/Variational-Autoencoders.md | 25 +++++++ AI/Visual Positioning Systems (VPS).md | 25 +++++++ ...A-Accessible-Rich-Internet-Applications.md | 25 +++++++ AI/Wang-Tiles.md | 25 +++++++ AI/Watermarking (AI 워터마킹).md | 25 +++++++ AI/Wavefunction-Collapse-Algorithm.md | 25 +++++++ AI/Web Performance Optimization.md | 47 ++++++++++++ ...b-Content-Accessibility-Guidelines-WCAG.md | 25 +++++++ AI/WebSplatter (3D Gaussian Splatting).md | 40 ++++++++++ AI/Wellbeing-Science.md | 25 +++++++ AI/Width-Subtyping.md | 25 +++++++ AI/Wikidata.md | 25 +++++++ AI/Work-Engagement-Models.md | 25 +++++++ AI/World of Warcraft (Gold Sink Mechanics).md | 25 +++++++ ...리_ - 관심사의 분리 (Separation of Concerns).md | 48 ++++++++++++ AI/agargaro의 오픈 소스 라이브러리.md | 44 +++++++++++ AI/clinicjs.md | 33 +++++++++ AI/e스포츠 인지 상태 및 성과 위험 평가.md | 40 ++++++++++ AI/가상화 (Virtualization).md | 25 +++++++ AI/강화학습 (Reinforcement Learning).md | 25 +++++++ AI/공급망 공격 (Supply Chain Attack).md | 40 ++++++++++ AI/대규모 React 프론트엔드 최적화.md | 25 +++++++ ...인 주도 설계 (Domain-Driven Design DDD).md | 40 ++++++++++ ...민 보상 체계 (Dopaminergic Reward System).md | 25 +++++++ AI/디자인 시스템 (Design Systems).md | 25 +++++++ ...비스 아키텍처 (Microservices Architecture).md | 46 ++++++++++++ AI/벡터 데이터베이스 (Vector Database).md | 25 +++++++ AI/보존 경로(Retaining Path).md | 33 +++++++++ AI/보편적 언어 (Ubiquitous Language).md | 32 ++++++++ ...리 누수 탐지(Browser Memory Leak Detection).md | 40 ++++++++++ ... 도메인 모델링 (Business Domain Modeling).md | 39 ++++++++++ AI/빌보드 임포스터(Billboard Impostors).md | 32 ++++++++ AI/상태 관리 최적화 (Zustand Jotai Valtio).md | 48 ++++++++++++ ...플라이 체인 보안 (Supply Chain Security).md | 39 ++++++++++ AI/소프트웨어 개발 수명 주기 (SDLC).md | 33 +++++++++ AI/스캐빈저(Scavenger).md | 30 ++++++++ AI/시뮬레이터 멀미 설문지(SSQ).md | 42 +++++++++++ ...미 설문지(Simulator Sickness Questionnaire).md | 36 +++++++++ AI/애그리거트 (Aggregates).md | 32 ++++++++ AI/양자화 (Quantization).md | 25 +++++++ AI/에듀테크 기반 게이미피케이션 전략.md | 25 +++++++ AI/연합 학습 (Associative Learning).md | 25 +++++++ ...5 호쿠사이 인스톨레이션(Hokusai installation).md | 32 ++++++++ AI/온톨로지 (Ontology).md | 25 +++++++ AI/온톨로지 지식 베이스.md | 25 +++++++ AI/유비쿼터스 언어 (Ubiquitous Language).md | 32 ++++++++ AI/인간-컴퓨터 상호작용 (HCI).md | 25 +++++++ AI/인공지능 상호작용 (HAI).md | 25 +++++++ AI/인적 자원 관리(HRM) 전략 수립.md | 25 +++++++ AI/인지 행동 치료 (CBT).md | 25 +++++++ AI/인지행동치료(CBT).md | 25 +++++++ AI/인터랙티브 스토리텔링 연구.md | 25 +++++++ AI/정적 애플리케이션 보안 테스트 (SAST).md | 34 +++++++++ AI/정적 애플리케이션 보안 테스트(SAST).md | 48 ++++++++++++ AI/지식 베이스 (Knowledge Base).md | 25 +++++++ AI/직렬화(Serialization) 및 병목 현상.md | 25 +++++++ AI/창발 능력 (Emergent Abilities).md | 25 +++++++ AI/카산드라(Cassandra).md | 38 ++++++++++ AI/코드 리뷰(Code Review).md | 40 ++++++++++ AI/풀 리퀘스트 워크플로우.md | 33 +++++++++ AI/풀 리퀘스트(PR) 기반 보안 검토.md | 33 +++++++++ AI/프론트엔드 및 Nodejs 개발 워크플로우.md | 43 +++++++++++ ...이브리드 코드 리뷰 (Hybrid Code Review).md | 44 +++++++++++ AI/하이브리드 코드 리뷰.md | 50 +++++++++++++ AI/할당 실패(Allocation Failure).md | 37 ++++++++++ AI/함수 호출 (Function Calling).md | 25 +++++++ AI/힙 스냅샷(Heap Snapshot).md | 47 ++++++++++++ Automation & Industry/3D Web-based HMI.md | 34 +++++++++ Automation/IoT.md | 29 ++++++++ Automation/SCADA.md | 29 ++++++++ Coding/AST_Traversal.md | 29 ++++++++ Coding/CST.md | 29 ++++++++ Coding/Formatting.md | 29 ++++++++ Coding/Parser.md | 29 ++++++++ Communication & Tech/Algorithmic Rhetoric.md | 25 +++++++ Computational Theory & Math/Graph Theory.md | 33 +++++++++ .../Information Theory.md | 32 ++++++++ .../Algebraic-Data-Types.md | 25 +++++++ ...ity-for-Ontarians-with-Disabilities-Act.md | 25 +++++++ ... 모델링 (State Modeling and API Responses).md | 40 ++++++++++ .../AST-Manipulation-Techniques.md | 25 +++++++ .../Abstract-Syntax-Tree-Transformation.md | 25 +++++++ .../Abstract-Syntax-Tree-Traversal.md | 25 +++++++ Design & Experience/Accessibility (A11y).md | 25 +++++++ .../Accessibility-Compliance-WCAG.md | 25 +++++++ Design & Experience/Additive-Type-Logic.md | 25 +++++++ .../Affective User Interfaces (AUI).md | 25 +++++++ Design & Experience/Agency-in-Game-Design.md | 25 +++++++ ...unication Protocol (에이전트 통신 규약).md | 25 +++++++ Design & Experience/Agile-UX-Integration.md | 25 +++++++ .../Americans-with-Disabilities-Act-ADA.md | 25 +++++++ .../Apple Human Interface Guidelines.md | 25 +++++++ Design & Experience/Arkane-Studios.md | 25 +++++++ Design & Experience/Assignability-Rules.md | 25 +++++++ .../Assistive-Technology-Interoperability.md | 25 +++++++ Design & Experience/Atomic Design Pattern.md | 33 +++++++++ Design & Experience/Auction-Theory.md | 25 +++++++ .../Augmented Reality (AR) Interfaces.md | 25 +++++++ .../Automated-Client-Generation.md | 25 +++++++ Design & Experience/Bay 12 Games.md | 25 +++++++ Design & Experience/Bazel.md | 25 +++++++ ... Home (Domestic Narrative Architecture).md | 25 +++++++ .../Borderlands-Art-Direction.md | 25 +++++++ .../Boundary-Layer-Validation.md | 25 +++++++ .../Branded Types in TypeScript.md | 25 +++++++ Design & Experience/Buck2.md | 25 +++++++ .../Causal Loop Diagramming.md | 25 +++++++ .../Choice Architecture in Digital UX.md | 25 +++++++ .../Chrome User Experience Report (CrUX).md | 40 ++++++++++ Design & Experience/Code Formatting.md | 40 ++++++++++ .../Cognitive Aging Research.md | 25 +++++++ Design & Experience/Cognitive Dissonance.md | 25 +++++++ Design & Experience/Cognitive-Flexibility.md | 25 +++++++ Design & Experience/Cognitive-Psychology.md | 25 +++++++ .../Complexity Science in Economics.md | 25 +++++++ .../Computation-Caching-Strategies.md | 25 +++++++ Design & Experience/Computational Thinking.md | 25 +++++++ .../Computational-Fluid-Dynamics.md | 25 +++++++ Design & Experience/Conditional-Types.md | 25 +++++++ Design & Experience/Content-Strategy.md | 25 +++++++ .../Contract-Driven-Development.md | 25 +++++++ .../Contract-First-Development.md | 25 +++++++ Design & Experience/Contract-Testing.md | 25 +++++++ .../Contravariance-and-Covariance.md | 25 +++++++ .../Creativity-and-Cognitive-Complexity.md | 25 +++++++ Design & Experience/Critical Design.md | 25 +++++++ Design & Experience/Cryptoeconomics.md | 25 +++++++ ...Dark Souls (Environmental Storytelling).md | 25 +++++++ Design & Experience/Data-Sanitization.md | 25 +++++++ Design & Experience/Declaration Merging.md | 25 +++++++ Design & Experience/Declaration-Merging.md | 25 +++++++ Design & Experience/Depth-Subtyping.md | 25 +++++++ Design & Experience/Design-Thinking.md | 25 +++++++ Design & Experience/Design-Tokens.md | 25 +++++++ Design & Experience/Diegetic UI.md | 25 +++++++ Design & Experience/Diegetic-Interface.md | 25 +++++++ Design & Experience/Digital Humanities.md | 25 +++++++ .../Digital Twin Interfaces.md | 25 +++++++ .../Digital-Heritage-Preservation.md | 25 +++++++ Design & Experience/Digital-Humanities.md | 25 +++++++ .../Digital-Transformation-Strategy.md | 25 +++++++ Design & Experience/Divergent-Thinking.md | 25 +++++++ Design & Experience/Duck-Typing.md | 25 +++++++ Design & Experience/Dwarf Fortress.md | 25 +++++++ .../E-commerce-Conversion-Optimization.md | 25 +++++++ Design & Experience/ESL Pro Tour.md | 25 +++++++ .../ESLint-Plugin-TypeScript.md | 25 +++++++ .../Edge-Detection-Algorithms.md | 25 +++++++ ...Pedagogy (Zone of Proximal Development).md | 25 +++++++ Design & Experience/Educational-Psychology.md | 25 +++++++ Design & Experience/Electromyography.md | 25 +++++++ .../Environmental Storyability.md | 25 +++++++ .../Environmental Storytelling.md | 25 +++++++ .../Environmental-Storytelling.md | 25 +++++++ Design & Experience/Ergodic Literature.md | 25 +++++++ Design & Experience/Ergodic-Literature.md | 25 +++++++ Design & Experience/Executive Function.md | 25 +++++++ .../Exhaustiveness-Checking-with-Never.md | 25 +++++++ .../FSD (Feature-Sliced Design).md | 37 ++++++++++ .../Fallout (Pip-Boy Mechanic).md | 25 +++++++ Design & Experience/Feature-Sliced Design.md | 36 +++++++++ Design & Experience/Flow-Sensitive-Typing.md | 25 +++++++ .../Formalism vs Structuralism.md | 25 +++++++ Design & Experience/Formalist Criticism.md | 25 +++++++ .../Game Studies (Game Studies Journal).md | 25 +++++++ Design & Experience/Game Systems Design.md | 25 +++++++ Design & Experience/Game-Level-Design.md | 25 +++++++ .../Game-Studies-Academic-Discourse.md | 25 +++++++ Design & Experience/Game-Studies-Journal.md | 25 +++++++ .../Gamification in Pedagogy.md | 25 +++++++ Design & Experience/Gamification-Mechanics.md | 25 +++++++ Design & Experience/GitHub Actions.md | 34 +++++++++ Design & Experience/Global Augmentation.md | 25 +++++++ .../Grammar-based-Synthesis.md | 25 +++++++ .../HUD-less Design Paradigms.md | 25 +++++++ .../Haptic Feedback Technology.md | 25 +++++++ ...erarchical Reinforcement Learning (HRL).md | 25 +++++++ .../High-Performance-Human-Factors.md | 25 +++++++ .../Human-Computer Interaction (HCI).md | 25 +++++++ .../Human-Computer-Interaction (HCI).md | 25 +++++++ .../Human-Machine Interface (HMI) Design.md | 25 +++++++ .../Human-Robot Interaction (HRI).md | 25 +++++++ .../Human-Robot-Interaction.md | 25 +++++++ Design & Experience/Hypertextuality.md | 25 +++++++ Design & Experience/ISO 9241 표준.md | 25 +++++++ Design & Experience/Immersive Analytics.md | 25 +++++++ .../Incremental-Compilation.md | 25 +++++++ .../Information-Architecture.md | 25 +++++++ Design & Experience/Inquiry-Based Learning.md | 25 +++++++ .../Interface Segregation Principle (ISP).md | 33 +++++++++ .../Interface-Extension-vs-Augmentation.md | 25 +++++++ Design & Experience/Interface-Extension.md | 25 +++++++ Design & Experience/Interface-Merging.md | 25 +++++++ ...ace-Segregation-Principle-in-TypeScript.md | 25 +++++++ .../Interface-Segregation-Principle.md | 25 +++++++ .../Interoperability Standards.md | 25 +++++++ ...tersection-Types-vs-Interface-Extension.md | 25 +++++++ Design & Experience/Inverse-Kinematics.md | 25 +++++++ Design & Experience/JSON-Schema-Validation.md | 25 +++++++ Design & Experience/K-12-EdTech.md | 25 +++++++ Design & Experience/Kinetics.md | 25 +++++++ .../Knowledge-Graph-Construction.md | 25 +++++++ ...(League of Legends Championship Series).md | 25 +++++++ Design & Experience/Lean-UX.md | 25 +++++++ Design & Experience/Level Design Theory.md | 25 +++++++ Design & Experience/Level-Design-Theory.md | 25 +++++++ Design & Experience/Linguistics.md | 25 +++++++ Design & Experience/Linked-Data-Principles.md | 25 +++++++ .../Liskov-Substitution-Principle.md | 25 +++++++ .../Ludo-Narrative-Dissonance.md | 25 +++++++ .../Ludo-narrative Dissonance.md | 25 +++++++ .../Ludonarrative-Dissonance.md | 25 +++++++ Design & Experience/Mapped-Types.md | 25 +++++++ Design & Experience/Material Design System.md | 25 +++++++ Design & Experience/Material Design.md | 25 +++++++ Design & Experience/Material-Design.md | 25 +++++++ .../Mechanism Design in Auctions.md | 25 +++++++ Design & Experience/Mechanism Design.md | 25 +++++++ Design & Experience/Mechanism-Design.md | 25 +++++++ .../Micro-Frontend-Architecture.md | 25 +++++++ Design & Experience/Mobile-App-Onboarding.md | 25 +++++++ .../Module Resolution Algorithm.md | 25 +++++++ .../Module-Augmentation-Patterns.md | 25 +++++++ .../Module-Resolution-Strategy.md | 25 +++++++ .../Monorepo-Architecture-Design.md | 25 +++++++ Design & Experience/Monorepo-Architecture.md | 25 +++++++ .../Monorepo-Dependency-Graph-Analysis.md | 25 +++++++ .../Monte Carlo Tree Search (MCTS).md | 25 +++++++ Design & Experience/Motor-Learning-Theory.md | 25 +++++++ Design & Experience/Motor-Learning.md | 25 +++++++ Design & Experience/Narrative Design.md | 25 +++++++ Design & Experience/Narrative Intelligence.md | 25 +++++++ Design & Experience/Nash Equilibrium.md | 25 +++++++ Design & Experience/Nash-Equilibrium.md | 25 +++++++ Design & Experience/Ninja-Build-System.md | 25 +++++++ .../Nodejs-Backend-Architecture.md | 25 +++++++ Design & Experience/Nominal Typing.md | 25 +++++++ .../Nominal-Typing-via-Branded-Types.md | 25 +++++++ .../Nominal-Typing-vs-Structural-Typing.md | 25 +++++++ .../Nominal-vs-Structural-Typing.md | 25 +++++++ Design & Experience/Non-Diegetic UI.md | 25 +++++++ Design & Experience/Nx-Build-System.md | 25 +++++++ .../Object-Literal-Assignment.md | 25 +++++++ .../Object-Oriented-Interface-Design.md | 25 +++++++ .../Occupational-Ergonomics.md | 25 +++++++ Design & Experience/OpenAPI-Specification.md | 25 +++++++ .../Optimal-Experience-Research.md | 25 +++++++ .../Organizational Learning Culture.md | 25 +++++++ .../Organizational-Innovation-Management.md | 25 +++++++ .../Orthopedic-Implant-Validation.md | 25 +++++++ Design & Experience/Player Agency.md | 25 +++++++ Design & Experience/Player-Autonomy.md | 25 +++++++ .../Political-Philosophy-in-Games.md | 25 +++++++ .../Product-Analytics-Infrastructure.md | 25 +++++++ .../Protocol-Buffers-TypeScript.md | 25 +++++++ Design & Experience/Public Policy Design.md | 25 +++++++ .../Quantum-Computing-Simulations.md | 25 +++++++ ...리 엔진 스냅샷(Snapshot) 기반 상태 복원.md | 25 +++++++ .../React Native 게임 최적화 (JSI Hermes).md | 25 +++++++ .../React Performance Optimization.md | 41 +++++++++++ ...eact 상태 관리 (React State Management).md | 39 ++++++++++ .../React 상태 관리 및 API 응답 처리.md | 34 +++++++++ .../React 컴포넌트 Props 검증.md | 35 +++++++++ Design & Experience/Redstone Engineering.md | 25 +++++++ .../Redux 등 상태 관리 (State Management).md | 32 ++++++++ .../Redux 스타일 리듀서 및 액션 관리.md | 32 ++++++++ Design & Experience/Redux-Reducers.md | 25 +++++++ .../Redux-Toolkit-Architecture.md | 25 +++++++ .../Reinforcement Learning Reward Shaping.md | 25 +++++++ Design & Experience/Roguelike Subgenre.md | 25 +++++++ Design & Experience/SeL4-Microkernel.md | 25 +++++++ .../Self-Determination Theory.md | 25 +++++++ .../Self-Determination-Theory.md | 25 +++++++ Design & Experience/Service-Design.md | 25 +++++++ Design & Experience/SimCity-Series.md | 25 +++++++ .../Single-Responsibility-Principle.md | 25 +++++++ .../Single-Source-of-Truth-Principle.md | 25 +++++++ .../Smithsonian-Digital-Repository.md | 25 +++++++ Design & Experience/Snyk Open Source.md | 32 ++++++++ Design & Experience/Social Learning Theory.md | 25 +++++++ .../Socially Assistive Robotics (SAR).md | 25 +++++++ ...tware Architecture API Contract Design.md | 25 +++++++ .../Software-Contract-Enforcement.md | 25 +++++++ .../Software-Product-Management.md | 25 +++++++ Design & Experience/Spatial Cognition.md | 25 +++++++ Design & Experience/Spatial Computing.md | 25 +++++++ .../State-Machine-Implementation.md | 25 +++++++ .../Static Type Checking Systems.md | 25 +++++++ .../Static-Program-Analysis.md | 25 +++++++ Design & Experience/Structural Type System.md | 25 +++++++ Design & Experience/Structural-Subtyping.md | 25 +++++++ Design & Experience/Structural-Type-System.md | 25 +++++++ .../Structural-Typing-Analysis.md | 25 +++++++ .../Structural-Typing-Compatibility.md | 25 +++++++ .../Structural-Typing-Mechanics.md | 25 +++++++ .../Structural-Typing-Mechanisms.md | 25 +++++++ .../Structural-Typing-System.md | 25 +++++++ .../Structural-Typing-and-Compatibility.md | 25 +++++++ .../Structural-Typing-vs-Nominal-Typing.md | 25 +++++++ Design & Experience/Structural-Typing.md | 25 +++++++ .../Structural-vs-Nominal-Typing-in-TS.md | 25 +++++++ .../Structural-vs-Nominal-Typing.md | 25 +++++++ Design & Experience/Subtyping-Relations.md | 25 +++++++ Design & Experience/Subtyping-Rules.md | 25 +++++++ Design & Experience/Subtyping-and-Variance.md | 25 +++++++ Design & Experience/Systemic Design.md | 25 +++++++ Design & Experience/Systemic Game Design.md | 25 +++++++ Design & Experience/Systemic-Design.md | 25 +++++++ Design & Experience/Systems-Thinking.md | 25 +++++++ Design & Experience/Template-Literal-Types.md | 25 +++++++ .../The Emergence Theory in Game Design.md | 25 +++++++ ... (Resource Scarcity and Character Bond).md | 25 +++++++ Design & Experience/Topological-Sorting.md | 25 +++++++ Design & Experience/Touchpoint-Analysis.md | 25 +++++++ .../Tree Shaking (번들 크기 최적화).md | 42 +++++++++++ .../Turborepo-Orchestration.md | 25 +++++++ Design & Experience/Type Alias.md | 32 ++++++++ Design & Experience/Type Branding.md | 25 +++++++ Design & Experience/Type Declaration.md | 33 +++++++++ Design & Experience/Type-Aware-Linting.md | 25 +++++++ .../Type-Compatibility-Rules.md | 25 +++++++ .../Type-Compatibility-and-Subtyping.md | 25 +++++++ Design & Experience/Type-Compatibility.md | 25 +++++++ .../Type-Composition-via-Intersections.md | 25 +++++++ .../Type-Driven-Development.md | 25 +++++++ .../Type-Erasure-and-Runtime-Behavior.md | 25 +++++++ .../Type-Guards-and-Narrowing.md | 25 +++++++ Design & Experience/Type-Narrowing.md | 25 +++++++ Design & Experience/Type-Safe-API-Design.md | 25 +++++++ ...Type-Safety-and-Exhaustiveness-Checking.md | 25 +++++++ Design & Experience/Type-Safety.md | 25 +++++++ .../Type-Variance-in-TypeScript.md | 25 +++++++ .../TypeScript Compiler API.md | 25 +++++++ ...peScript Type System (Interface Design).md | 25 +++++++ .../TypeScript 라이브러리 타입 확장.md | 33 +++++++++ ...인터페이스 및 시스템 보호 아키텍처 설계.md | 40 ++++++++++ .../TypeScript 컴파일러 캐싱 최적화.md | 32 ++++++++ .../TypeScript-Compiler-API-Design.md | 25 +++++++ .../TypeScript-Compiler-API.md | 25 +++++++ .../TypeScript-Compiler-Architecture.md | 25 +++++++ .../TypeScript-Language-Service-API.md | 25 +++++++ .../TypeScript-Project-References.md | 25 +++++++ .../TypeScript의 안전한 인터페이스 설계.md | 46 ++++++++++++ ...peScript의 인터페이스 및 객체 타입 설계.md | 47 ++++++++++++ Design & Experience/UX-Gamification.md | 34 +++++++++ .../UX_UI in Interactive Media.md | 25 +++++++ .../Unified-User-Experience.md | 25 +++++++ Design & Experience/Union-Types.md | 25 +++++++ Design & Experience/Urban-Morphology.md | 25 +++++++ .../Urban-Planning-Simulations.md | 25 +++++++ .../User Experience (UX) Design.md | 25 +++++++ .../User Experience (UX) in Game Design.md | 25 +++++++ Design & Experience/User-Experience-Design.md | 25 +++++++ ... (Covariance Contravariance Invariance).md | 25 +++++++ ...-(Covariance-Contravariance-Invariance).md | 25 +++++++ .../Variance-Covariance-Contravariance.md | 25 +++++++ Design & Experience/Video Game Design.md | 25 +++++++ .../Visual-Hierarchy-in-Game-Design.md | 25 +++++++ .../Von Neumann-Morgenstern Axioms.md | 25 +++++++ .../W3C-Semantic-Web-Standards.md | 25 +++++++ Design & Experience/Wayfinding-Design.md | 25 +++++++ Design & Experience/Wicked-Problems.md | 25 +++++++ .../Width-and-Depth-Subtyping.md | 25 +++++++ Design & Experience/Zod-Runtime-Validation.md | 25 +++++++ Design & Experience/Zod-Schema-Validation.md | 25 +++++++ .../eSports Performance Psychology.md | 25 +++++++ Design & Experience/가상 DOM (Virtual DOM).md | 40 ++++++++++ .../계층형 아키텍처 (Layered Architecture).md | 41 +++++++++++ ...용 시스템을 위한 React 기반 게임 엔진 아키텍처.md | 25 +++++++ .../교육 심리학에서의 보상 설계.md | 25 +++++++ Design & Experience/교육학의 모델링 전략.md | 25 +++++++ .../뇌과학 기반 중독 재활 프로그램.md | 25 +++++++ ...규모 프론트엔드 웹 프로젝트 폴더 구조화.md | 43 +++++++++++ ...데이터 지향 설계 (Data-Oriented Design).md | 25 +++++++ Design & Experience/도메인 주도 설계 (DDD).md | 34 +++++++++ Design & Experience/도메인 주도 설계(DDD).md | 36 +++++++++ Design & Experience/도파민 보상 체계.md | 25 +++++++ .../라이브러리 타입 선언 (dts) 확장.md | 37 ++++++++++ .../마이크로 프론트엔드 (Micro Frontends).md | 30 ++++++++ .../맞춤형 개별화 학습 설계.md | 25 +++++++ .../모바일 앱 및 웹 인터페이스 설계.md | 25 +++++++ Design & Experience/몰입감 (Presence).md | 40 ++++++++++ .../바운디드 컨텍스트 (Bounded Context).md | 33 +++++++++ ...응형 윈도우 리사이즈(Resize) 이벤트 처리.md | 40 ++++++++++ ...기 데이터 패칭 (Async Operations Pattern).md | 32 ++++++++ .../사용성 공학 (Usability Engineering).md | 25 +++++++ .../사용자 경험 (UX) 디자인.md | 25 +++++++ Design & Experience/사용자 경험 (UX).md | 25 +++++++ .../사용자 경험 디자인 (UX Design).md | 25 +++++++ ...사회 인지 이론(Social Cognitive Theory).md | 25 +++++++ .../상태 관리 최적화 (Zustand Valtio).md | 25 +++++++ .../상태 관리(State Management).md | 32 ++++++++ ...e Machine) 모델링 및 Redux 액션_리듀서 설계.md | 34 +++++++++ .../상태 모델링 (State Modeling).md | 34 +++++++++ .../선언 병합(Declaration Merging).md | 33 +++++++++ ...소프트웨어 시스템 설계 및 아키텍처 구축.md | 42 +++++++++++ ...간 데이터 대시보드 레이아웃 조절 시스템.md | 42 +++++++++++ Design & Experience/아보(Bobo) 인형 실험.md | 25 +++++++ Design & Experience/엔티티 (Entities).md | 40 ++++++++++ ...)] [행동 경제학] [교육 심리학의 행동주의 모델.md | 25 +++++++ .../의존성 규칙 (Dependency Rule).md | 40 ++++++++++ ...간 요인 공학 (Human Factors Engineering).md | 25 +++++++ Design & Experience/인지 부조화 이론.md | 25 +++++++ .../인지 부하 이론(Cognitive Load Theory).md | 25 +++++++ .../인지 심리학 (Cognitive Psychology).md | 25 +++++++ ... 평가 이론 (Cognitive Evaluation Theory).md | 25 +++++++ Design & Experience/인터페이스 (Interface).md | 30 ++++++++ ... 분리 원칙 (Interface Segregation Principle).md | 35 +++++++++ .../자기 효능감 (Self-Efficacy).md | 25 +++++++ .../자기 효능감(Self-Efficacy).md | 25 +++++++ .../자기조절학습(Self-Regulated Learning).md | 25 +++++++ .../재조정 (Reconciliation).md | 47 ++++++++++++ Design & Experience/조직 시민 행동 (OCB).md | 25 +++++++ .../조직 행동론의 성과급 체계 분석.md | 25 +++++++ .../중독 의학 및 정신 병리학.md | 25 +++++++ Design & Experience/중독 재활 프로그램.md | 25 +++++++ ..._ - TypeScript 타입 시스템 (인터페이스 설계).md | 43 +++++++++++ .../치타 사람 이미지 프롬프트.md | 34 +++++++++ ...포넌트 기반 웹 프레임워크 아키텍처 설계.md | 38 ++++++++++ .../클린 아키텍처 (Clean Architecture).md | 47 ++++++++++++ .../클린 아키텍처(Clean Architecture).md | 48 ++++++++++++ Design & Experience/클린 아키텍처.md | 47 ++++++++++++ .../타입 가드 (Type Guards).md | 41 +++++++++++ Design & Experience/타입 별칭 (Type Alias).md | 42 +++++++++++ .../테스트 용이성 (Testability).md | 34 +++++++++ .../프론트엔드 컴포넌트 구조화.md | 33 +++++++++ .../프론트엔드 컴포넌트 설계.md | 44 +++++++++++ ...어 경험 디자인 (Player Experience Design).md | 25 +++++++ .../행동 치료 및 인지 행동 치료 (CBT).md | 25 +++++++ .../현대 웹 애플리케이션 설계.md | 34 +++++++++ Design & Web Performance/Core Web Vitals.md | 31 ++++++++ Design/Accessibility.md | 29 ++++++++ Design/Cognitive_Load.md | 29 ++++++++ Design/CrUX.md | 29 ++++++++ Design/HCI.md | 29 ++++++++ Design/Inclusive_Design.md | 29 ++++++++ .../Algorithmic Mechanism Design.md | 25 +++++++ Economics & Algorithms/Auction Theory.md | 25 +++++++ Education & AI/Adaptive-Learning-Systems.md | 25 +++++++ Education/Adaptive_Learning.md | 29 ++++++++ .../Quantitative Finance.md | 30 ++++++++ .../Web Worker (웹 워커).md | 30 ++++++++ Game Design & Math/Algorithmic Game Theory.md | 25 +++++++ Game Design/ARG-Alternate-Reality-Games.md | 25 +++++++ Game Design/Agency and Player Autonomy.md | 25 +++++++ ...ine (Full LootPlayer-Driven Production).md | 25 +++++++ Game Design/Arkane Studios.md | 25 +++++++ Game Design/Cyber-Physical Systems (CPS).md | 25 +++++++ Game Design/Elite-Athletic-Development.md | 25 +++++++ .../Post-Modernist Literature in Gaming.md | 25 +++++++ Game Design/Quantum-Game-Theory.md | 25 +++++++ .../Roguelike Procedural Generation.md | 25 +++++++ Game Design/Systems Biology.md | 25 +++++++ Game Design/인문학적 게임 비평 및 서사학.md | 25 +++++++ General Knowledge/2026-04-15.md | 25 +++++++ General Knowledge/Blog_Content_Rules.md | 25 +++++++ General Knowledge/Blog_Title_Rules.md | 25 +++++++ .../Brand-Identity-Management.md | 25 +++++++ .../Code Splitting Lazy Loading.md | 25 +++++++ General Knowledge/Description-Logics.md | 25 +++++++ General Knowledge/Dopamine Signaling.md | 25 +++++++ General Knowledge/Markov-Random-Fields.md | 25 +++++++ General Knowledge/Metaverse Aesthetics.md | 25 +++++++ .../Model-Free RL vs Model-Based RL.md | 25 +++++++ .../Motion-Capture-Retargeting.md | 25 +++++++ General Knowledge/Mycological Horror.md | 25 +++++++ .../OffscreenCanvas (멀티스레딩).md | 25 +++++++ General Knowledge/README.md | 25 +++++++ ...안 이슈와 Cross-Origin Isolation 설정법.md | 40 ++++++++++ General Knowledge/Variance-Rules.md | 25 +++++++ .../마크-스위프-컴팩트(Mark-Sweep-Compact).md | 40 ++++++++++ General Knowledge/무제.md | 25 +++++++ .../이벤트 포워딩(Event Forwarding).md | 25 +++++++ General Knowledge/환영합니다.md | 25 +++++++ .../3D Gaussian Splatting (3DGS).md | 37 ++++++++++ ...E (Almost Native Graphics Layer Engine).md | 33 +++++++++ Graphics & Performance/ANGLE.md | 33 +++++++++ .../Agency-Narrative Integration.md | 25 +++++++ Graphics & Performance/Alpha Blending.md | 32 ++++++++ .../Apple-Human-Interface-Guidelines.md | 25 +++++++ .../Augmented Reality (AR).md | 25 +++++++ .../Augmented Reality Navigation Systems.md | 25 +++++++ .../Autonomous Vehicle Perception.md | 25 +++++++ Graphics & Performance/BIM 모델 렌더링.md | 43 +++++++++++ Graphics & Performance/BIM 모델 시뮬레이션.md | 37 ++++++++++ Graphics & Performance/BVH.md | 33 +++++++++ Graphics & Performance/Babylonjs.md | 41 +++++++++++ ...chedMesh 및 InstancedMesh 성능 벤치마크.md | 43 +++++++++++ Graphics & Performance/BatchedMesh.md | 42 +++++++++++ Graphics & Performance/Batching.md | 38 ++++++++++ ...avioral Economics in Digital Ecosystems.md | 25 +++++++ .../Behavioral Economics.md | 25 +++++++ .../Bio-mechanical-Modeling.md | 25 +++++++ Graphics & Performance/Bioregionalism.md | 25 +++++++ .../Bounding Volume Hierarchy (BVH).md | 33 +++++++++ Graphics & Performance/Buffer Allocation.md | 34 +++++++++ Graphics & Performance/BufferAttribute.md | 33 +++++++++ Graphics & Performance/BufferGeometry.md | 33 +++++++++ Graphics & Performance/CPU Bottleneck.md | 33 +++++++++ Graphics & Performance/CPU Overhead.md | 37 ++++++++++ .../Cel-Shading-Techniques.md | 25 +++++++ Graphics & Performance/Cellular Automata.md | 25 +++++++ Graphics & Performance/Cesium.md | 34 +++++++++ Graphics & Performance/Chrome (Blink_Dawn).md | 32 ++++++++ Graphics & Performance/Chrome WebGPU 구현.md | 37 ++++++++++ .../Chrome _ Blink WebGPU Implementation.md | 43 +++++++++++ Graphics & Performance/Chrome.md | 34 +++++++++ .../Chromium WebGPU Implementation.md | 32 ++++++++ .../Cognitive Load Theory.md | 25 +++++++ .../Cognitive-Load-Theory.md | 25 +++++++ .../Collaborative Learning Environments.md | 25 +++++++ .../Competitive Esports Ecosystems.md | 25 +++++++ Graphics & Performance/Complexity-Theory.md | 25 +++++++ .../Computational Ecology.md | 25 +++++++ .../Computational Geometry.md | 30 ++++++++ Graphics & Performance/Compute Shader.md | 34 +++++++++ Graphics & Performance/Compute Shaders.md | 34 +++++++++ .../Computer-Vision-Synthesis.md | 25 +++++++ Graphics & Performance/Creative Process.md | 25 +++++++ Graphics & Performance/Critical-Play.md | 25 +++++++ .../Cultural-Heritage-Informatics.md | 25 +++++++ Graphics & Performance/CyArk.md | 25 +++++++ Graphics & Performance/Cybertext Theory.md | 25 +++++++ Graphics & Performance/DBpedia.md | 25 +++++++ Graphics & Performance/Data Array Textures.md | 33 +++++++++ .../Digital Sandbox Theory.md | 25 +++++++ .../Digital Twin Visualization.md | 25 +++++++ Graphics & Performance/Direct3D.md | 32 ++++++++ .../Drama-Management-Systems.md | 25 +++++++ Graphics & Performance/Draw Call.md | 39 ++++++++++ Graphics & Performance/Dual-Track-Agile.md | 25 +++++++ ...ication] [FinTech Engagement Strategies.md | 25 +++++++ Graphics & Performance/Dynamic Assessment.md | 25 +++++++ .../Dynamical Systems Theory.md | 25 +++++++ .../EXT_disjoint_timer_query.md | 30 ++++++++ Graphics & Performance/Ecosystem-Modeling.md | 25 +++++++ .../EdTech (Gamified Learning).md | 25 +++++++ .../Educational-Gamification.md | 25 +++++++ .../Embodied Cognition in Virtual Reality.md | 25 +++++++ .../Employee Engagement Systems.md | 25 +++++++ .../Epidemiological Forecasting.md | 25 +++++++ .../Epidemiological Modeling.md | 25 +++++++ .../Expressjs-Type-Extensions.md | 25 +++++++ Graphics & Performance/FXAA.md | 30 ++++++++ Graphics & Performance/Fill Rate.md | 32 ++++++++ Graphics & Performance/Flow State Theory.md | 25 +++++++ Graphics & Performance/Formal-Grammar.md | 25 +++++++ .../Formalism-vs-Structuralism.md | 25 +++++++ .../Formalist Game Design.md | 25 +++++++ Graphics & Performance/Fragment Shading.md | 33 +++++++++ Graphics & Performance/Fragment-bound.md | 35 +++++++++ Graphics & Performance/Frustum Culling.md | 39 ++++++++++ Graphics & Performance/GPU Resources.md | 33 +++++++++ .../GPU for the Web Community Group.md | 35 +++++++++ .../GPU-driven Rendering.md | 32 ++++++++ Graphics & Performance/GPURenderBundles.md | 32 ++++++++ ...라인의 미세 지연(Micro-latency) 측정 사례.md | 48 ++++++++++++ .../Game Studies (Academic Discipline).md | 25 +++++++ .../Game Theory (Economics).md | 25 +++++++ .../Game Theory and Market Equilibrium.md | 25 +++++++ Graphics & Performance/Game Theory.md | 25 +++++++ Graphics & Performance/Gamification-Design.md | 25 +++++++ Graphics & Performance/Garbage Collection.md | 33 +++++++++ Graphics & Performance/Geometry Merging.md | 40 ++++++++++ .../Graph Theory in Level Design.md | 25 +++++++ ...ead-Mounted Display) 기반 엑서게임 환경.md | 33 +++++++++ Graphics & Performance/HTML5 Canvas.md | 30 ++++++++ .../High Resolution Time.md | 33 +++++++++ .../Human-Centered Design.md | 25 +++++++ .../Human-Computer-Interaction-HCI.md | 25 +++++++ Graphics & Performance/IFCjs (Fragment).md | 42 +++++++++++ Graphics & Performance/ISO 9241 Standards.md | 25 +++++++ .../Immersive Educational Simulations.md | 25 +++++++ Graphics & Performance/Indirect Draw.md | 37 ++++++++++ .../InstancedMesh (드로우 콜 최적화).md | 33 +++++++++ Graphics & Performance/InstancedMesh2.md | 40 ++++++++++ Graphics & Performance/Instancing.md | 37 ++++++++++ .../Instructional Systems Design (ISD).md | 25 +++++++ .../Instructional-Design.md | 25 +++++++ .../Interactive Storytelling.md | 25 +++++++ .../Interactive-Storytelling.md | 25 +++++++ .../Internet of Things (IoT) Telemetry.md | 25 +++++++ .../Intrinsic Motivation.md | 25 +++++++ Graphics & Performance/JavaScript.md | 32 ++++++++ Graphics & Performance/Knowledge-Graphs.md | 25 +++++++ .../Looking-Glass-Studios.md | 25 +++++++ ...ot Box Regulation (EU_China Compliance).md | 25 +++++++ Graphics & Performance/Ludology.md | 25 +++++++ Graphics & Performance/MDA Framework.md | 25 +++++++ Graphics & Performance/MDA-Framework.md | 25 +++++++ .../Markov Decision Process (MDP).md | 25 +++++++ .../Markov Decision Processes.md | 25 +++++++ .../Mathematical Game Theory.md | 25 +++++++ Graphics & Performance/Measure Theory.md | 25 +++++++ ...Memory Leak Prevention 메모리 누수 방지.md | 49 +++++++++++++ Graphics & Performance/Memory Leaks.md | 34 +++++++++ Graphics & Performance/Memory Management.md | 34 +++++++++ .../MeshStandardMaterial 조명 연산.md | 35 +++++++++ .../Meta Quest_Horizon OS.md | 25 +++++++ Graphics & Performance/Metal.md | 33 +++++++++ .../Metaverse Architecture.md | 25 +++++++ Graphics & Performance/Micro-latency.md | 30 ++++++++ Graphics & Performance/Minecraft.md | 25 +++++++ .../Minecraft_ Education Edition.md | 25 +++++++ .../Mobile Gaming Monetization Strategies.md | 25 +++++++ .../Multi-threaded Architecture.md | 40 ++++++++++ ...ropulsion-Laboratory-Software-Standards.md | 25 +++++++ Graphics & Performance/NVIDIA Omniverse.md | 25 +++++++ .../Narrative-Branching-Models.md | 25 +++++++ Graphics & Performance/Narratology.md | 25 +++++++ Graphics & Performance/Needle Engine.md | 34 +++++++++ Graphics & Performance/Object Pooling.md | 34 +++++++++ .../OffscreenCanvas Safari 제약 사항.md | 35 +++++++++ ...creenCanvas 기반 멀티스레드 렌더링 구현.md | 25 +++++++ Graphics & Performance/OffscreenCanvas.md | 39 ++++++++++ .../Open Metaverse Framework.md | 25 +++++++ .../Open-World Design Paradigms.md | 25 +++++++ Graphics & Performance/OpenGL ES 20.md | 32 ++++++++ Graphics & Performance/OpenGL ES.md | 33 +++++++++ Graphics & Performance/Opera.md | 33 +++++++++ .../Operant Conditioning.md | 25 +++++++ Graphics & Performance/PBR.md | 37 ++++++++++ Graphics & Performance/Perlin Noise.md | 25 +++++++ .../Physics Engine Integration.md | 25 +++++++ Graphics & Performance/Positive Psychology.md | 25 +++++++ Graphics & Performance/Positive-Psychology.md | 25 +++++++ .../Post-Acute-Care-Models.md | 25 +++++++ Graphics & Performance/Post-humanism.md | 25 +++++++ .../Probabilistic-Graphical-Models.md | 25 +++++++ .../Problem-Solving-Theory.md | 25 +++++++ .../Procedural-Animation.md | 25 +++++++ .../R3F 3D 게임 환경의 메모리 관리.md | 25 +++++++ Graphics & Performance/RDF와 OWL.md | 25 +++++++ Graphics & Performance/Radix Sort.md | 33 +++++++++ Graphics & Performance/Raycaster.md | 33 +++++++++ Graphics & Performance/Raycasting.md | 43 +++++++++++ ...ompiler의 Threejs 런타임 성능 개선 원리.md | 37 ++++++++++ .../React Three Fiber (R3F).md | 33 +++++++++ ... Fiber 자산 최적화 (Asset Optimization).md | 50 +++++++++++++ ...e Fiber에서 Rapier 물리 엔진 최적화하기.md | 39 ++++++++++ .../React 기반 게임 엔진 아키텍처.md | 25 +++++++ ...React 동시성 기능 (Concurrent Features).md | 25 +++++++ .../Redux-Reducer-Pattern.md | 25 +++++++ Graphics & Performance/Revit glTF Export.md | 32 ++++++++ Graphics & Performance/Revit 모델 렌더링.md | 34 +++++++++ .../Robotics-Control-Systems.md | 25 +++++++ .../Role-Playing-Games (RPGs).md | 25 +++++++ Graphics & Performance/Rowhammer attack.md | 32 ++++++++ Graphics & Performance/Rowhammer.md | 32 ++++++++ Graphics & Performance/SLA-Definition.md | 25 +++++++ .../SaaS-Retention-Strategies.md | 25 +++++++ Graphics & Performance/Sandbox-Simulation.md | 25 +++++++ ...d Procedural Content Generation (SBPCG).md | 25 +++++++ ...ntic Versioning (SemVer) in Type Safety.md | 25 +++++++ .../Semantic-Web-Technologies.md | 25 +++++++ Graphics & Performance/Semantic-Web.md | 25 +++++++ Graphics & Performance/Semiotics in Media.md | 25 +++++++ Graphics & Performance/Sensor Fusion.md | 25 +++++++ .../Service-Dominant-Logic.md | 25 +++++++ Graphics & Performance/SharedArrayBuffer.md | 30 ++++++++ .../Simulations of Social Systems.md | 25 +++++++ ...taneous Localization and Mapping (SLAM).md | 25 +++++++ Graphics & Performance/SkinnedMesh.md | 42 +++++++++++ ...d Protocol 기술 메뉴얼 및 개발자 가이드.md | 25 +++++++ .../Smart City Digital Twins.md | 25 +++++++ .../Smart-City-Frameworks.md | 25 +++++++ Graphics & Performance/Sorting.md | 42 +++++++++++ .../Spatial Partitioning.md | 33 +++++++++ .../Special Education Interventions.md | 25 +++++++ .../Spectre and Meltdown.md | 40 ++++++++++ Graphics & Performance/Speculative Biology.md | 25 +++++++ Graphics & Performance/Spring Framework.md | 38 ++++++++++ Graphics & Performance/Structuralism.md | 25 +++++++ Graphics & Performance/Surgical-Robotics.md | 25 +++++++ .../Systemic-Design-Frameworks.md | 25 +++++++ Graphics & Performance/Systems Theory.md | 25 +++++++ Graphics & Performance/TLB design.md | 36 +++++++++ .../TSL (Three Shader Language).md | 34 +++++++++ Graphics & Performance/Temporal-Logic.md | 25 +++++++ Graphics & Performance/Texture Compression.md | 39 ++++++++++ Graphics & Performance/The Rapture Setting.md | 25 +++++++ .../The-Space-Syntax-Laboratory.md | 25 +++++++ .../Three Shader Language (TSL).md | 33 +++++++++ .../Three.js 렌더링 최적화.md | 29 ++++++++ .../Threejs WebGL Rendering Optimization.md | 51 +++++++++++++ .../Threejs WebGPU 파티클 예제.md | 33 +++++++++ ...Threejs 대규모 렌더링 최적화 파이프라인.md | 35 +++++++++ .../Threejs 렌더링 성능 최적화.md | 46 ++++++++++++ .../Threejs 렌더링 최적화.md | 34 +++++++++ .../Threejs 모바일 렌더링 최적화.md | 49 +++++++++++++ .../Threejs 자원 해제 (Dispose).md | 25 +++++++ Graphics & Performance/Threejs.md | 39 ++++++++++ .../Timestamp Quantization.md | 32 ++++++++ .../Timestamp Queries Quantization.md | 32 ++++++++ Graphics & Performance/Timestamp Queries.md | 39 ++++++++++ Graphics & Performance/Turtle-Graphics.md | 25 +++++++ Graphics & Performance/TypedArray.md | 32 ++++++++ .../USD - Universal Scene Description.md | 25 +++++++ Graphics & Performance/UV Offset.md | 32 ++++++++ .../UX Design Gamification.md | 25 +++++++ .../UX-Design-Architecture.md | 25 +++++++ Graphics & Performance/Unity.md | 44 +++++++++++ .../Urban-Resilience-Planning.md | 25 +++++++ Graphics & Performance/User-Story-Mapping.md | 25 +++++++ Graphics & Performance/Utsubo.md | 37 ++++++++++ Graphics & Performance/VIA-Classification.md | 25 +++++++ .../VR 엑서게임 (VR Exergaming).md | 33 +++++++++ Graphics & Performance/Varying Variables.md | 33 +++++++++ Graphics & Performance/Vertex Shader.md | 32 ++++++++ .../Virtual Reality (VR) Storytelling.md | 25 +++++++ .../Voxel-based Rendering.md | 25 +++++++ Graphics & Performance/Vulkan.md | 35 +++++++++ Graphics & Performance/WEBGL_multi_draw.md | 39 ++++++++++ Graphics & Performance/Waves of Connection.md | 30 ++++++++ Graphics & Performance/WebAssembly.md | 34 +++++++++ Graphics & Performance/WebGL 20.md | 33 +++++++++ Graphics & Performance/WebGL API.md | 37 ++++++++++ Graphics & Performance/WebGL Optimization.md | 35 +++++++++ .../WebGL 모바일 GPU 성능 관리.md | 39 ++++++++++ Graphics & Performance/WebGL.md | 35 +++++++++ Graphics & Performance/WebGL2.md | 35 +++++++++ .../WebGLRenderingContext.md | 32 ++++++++ .../WebGPU Compute Shader.md | 33 +++++++++ .../WebGPU Compute Shaders.md | 34 +++++++++ .../WebGPU Performance Profiling.md | 40 ++++++++++ .../WebGPU Timestamp Queries.md | 30 ++++++++ .../WebGPU _ WebGL Timing API Security.md | 33 +++++++++ .../WebGPU 대규모 건설 뷰어.md | 35 +++++++++ Graphics & Performance/WebGPU.md | 37 ++++++++++ ...inning Ways for your Mathematical Plays.md | 25 +++++++ Graphics & Performance/Wonderland Engine.md | 33 +++++++++ Graphics & Performance/XState-Library.md | 25 +++++++ Graphics & Performance/instancedArray.md | 33 +++++++++ Graphics & Performance/three-mesh-bvh.md | 33 +++++++++ .../threejs Issue _30352.md | 30 ++++++++ Graphics & Performance/가상현실(VR).md | 33 +++++++++ .../고성능 3D WebGL 게임 렌더링 엔진.md | 25 +++++++ .../고성능 멀티스레드 React 앱 아키텍처.md | 42 +++++++++++ .../교육 심리학 및 교수법 설계.md | 25 +++++++ .../기업 문화 진단 및 개선.md | 25 +++++++ .../대규모 3D 건축 모델(BIM) 시각화.md | 33 +++++++++ .../대규모 건설 뷰어(Construction Viewers).md | 32 ++++++++ .../대규모 건축물 및 지형 뷰어(BIM).md | 33 +++++++++ .../대규모 파티클 시스템 최적화.md | 39 ++++++++++ Graphics & Performance/마이크로 프론트엔드.md | 34 +++++++++ .../만성 질환 행동 수정 개입.md | 25 +++++++ ...령형 직접 조작 (Imperative Manipulation).md | 25 +++++++ .../모바일 기반 WebGL 애플리케이션 개발.md | 47 ++++++++++++ .../브라우저 그래픽 렌더링 백엔드.md | 30 ++++++++ .../서비스 디자인 (Service Design).md | 25 +++++++ .../셰이더 정밀도 (Mediump_Highp).md | 32 ++++++++ .../스토리지 텍스처(Storage Textures).md | 31 ++++++++ .../실시간 렌더링 파이프라인.md | 30 ++++++++ .../실시간 물리 및 유체 시뮬레이션.md | 33 +++++++++ .../실시간 물리 시뮬레이션 동기화.md | 25 +++++++ .../웹 브라우저 그래픽 API 호환성.md | 33 +++++++++ .../입자 시스템(Particle Systems).md | 33 +++++++++ .../조직 행동론의 직무 몰입 연구.md | 25 +++++++ .../컴퓨트 셰이더(Compute Shaders).md | 42 +++++++++++ .../프래그먼트 바운드(Fragment-bound).md | 33 +++++++++ .../프래그먼트 셰이딩(Fragment Shading).md | 39 ++++++++++ .../헤드 마운트 디스플레이(HMD).md | 32 ++++++++ .../헤드마운트 디스플레이 (HMD).md | 33 +++++++++ Graphics/3D_Gaussian_Splatting.md | 29 ++++++++ Graphics/3D_Web_HMI.md | 29 ++++++++ Graphics/Digital_Twin.md | 29 ++++++++ Graphics/Predictive_Maintenance.md | 29 ++++++++ Graphics/VPS_NeRF.md | 29 ++++++++ .../ACL-Injury-Prevention-Protocols.md | 25 +++++++ Health & Science/Arthrokinematics.md | 25 +++++++ Health & Science/Athletic Peak Performance.md | 25 +++++++ Health & Science/Biomedical-Engineering.md | 29 ++++++++ Health/ACL_Prevention.md | 29 ++++++++ Infrastructure & Automation/Edge Computing.md | 33 +++++++++ Memory & Systems/Allocation Timeline.md | 35 +++++++++ .../Apple Vision Pro Ecosystem.md | 25 +++++++ Metaverse/Architecture.md | 29 ++++++++ Metaverse/Spatial_Computing.md | 29 ++++++++ .../Aerospace Flight Simulation.md | 25 +++++++ Programming & Formal Methods/Type Theory.md | 30 ++++++++ .../API 응답 및 에러 핸들링 아키텍처.md | 37 ++++++++++ .../AST (추상 구문 트리).md | 33 +++++++++ .../AST(Abstract Syntax Tree).md | 37 ++++++++++ .../Abstract Syntax Tree (AST).md | 37 ++++++++++ .../Advanced-Design-Patterns-in-TypeScript.md | 25 +++++++ ...ne (Full Loot_Player-Driven Production).md | 25 +++++++ .../Algebraic-Data-Types-in-TypeScript.md | 25 +++++++ .../Allocation Timeline(할당 타임라인).md | 30 ++++++++ Programming & Language/Ambient Contexts.md | 25 +++++++ .../Ambient Declarations.md | 25 +++++++ .../AppSec (애플리케이션 보안).md | 33 +++++++++ .../Assignability-Relation.md | 25 +++++++ .../Athletic-Performance-Optimization.md | 25 +++++++ .../Authorship Attribution.md | 39 ++++++++++ .../Autotelic Personality.md | 25 +++++++ .../Autotelic-Personality.md | 25 +++++++ .../BM25 알고리즘 (Best Match 25).md | 25 +++++++ ...서게임 연구(Beat Saber Exergaming Study).md | 39 ++++++++++ Programming & Language/Beat Saber.md | 32 ++++++++ ...게임 후유증 연구(VR Exergaming Aftereffects).md | 49 +++++++++++++ .../Biomechanical-Analysis.md | 25 +++++++ Programming & Language/Biomechanics.md | 25 +++++++ Programming & Language/Black-box Testing.md | 30 ++++++++ Programming & Language/Blink.md | 34 +++++++++ Programming & Language/Branch Prediction.md | 33 +++++++++ .../Branchless Security Checks.md | 39 ++++++++++ Programming & Language/Branded Types.md | 49 +++++++++++++ .../Browser Security Mitigations.md | 42 +++++++++++ Programming & Language/CAD 렌더링 최적화.md | 35 +++++++++ ...택 반응 시간 과제(CANTAB 5-choice RTI).md | 34 +++++++++ Programming & Language/CI_CD Pipeline.md | 34 +++++++++ .../CI_CD 파이프라인 (CI_CD Pipelines).md | 33 +++++++++ .../CI_CD 파이프라인 자동화.md | 33 +++++++++ .../CI_CD 파이프라인 통합 및 Git 훅(Hooks).md | 40 ++++++++++ Programming & Language/CI_CD 파이프라인.md | 33 +++++++++ .../CST (구체 구문 트리).md | 37 ++++++++++ .../Cache Side-Channel Attack.md | 35 +++++++++ Programming & Language/Cache miss rates.md | 33 +++++++++ .../Causal Tracing (인과적 추적).md | 25 +++++++ Programming & Language/Cellular-Automata.md | 25 +++++++ Programming & Language/Chaos Theory.md | 25 +++++++ Programming & Language/Chaos-Theory.md | 25 +++++++ Programming & Language/Cheneys Algorithm.md | 40 ++++++++++ .../Chrome DevTools Memory Panel.md | 42 +++++++++++ .../Chrome DevTools(크롬 개발자 도구).md | 36 +++++++++ .../Chrome V8 Heap Analysis.md | 45 ++++++++++++ ...Chrome 렌더러 프로세스 V8 샌드박스 보안.md | 30 ++++++++ Programming & Language/Chromium.md | 32 ++++++++ Programming & Language/Clean as You Code.md | 30 ++++++++ Programming & Language/Code Minification.md | 33 +++++++++ Programming & Language/Code Obfuscation.md | 33 +++++++++ ... Lazy Loading (코드 분할 및 지연 로딩).md | 42 +++++++++++ .../Code Stylometry (코드 문체론).md | 37 ++++++++++ Programming & Language/Codemod-Engineering.md | 25 +++++++ .../Complex Adaptive Systems.md | 25 +++++++ .../Complex-Adaptive-Systems.md | 25 +++++++ .../Concrete Syntax Tree (CST).md | 33 +++++++++ Programming & Language/Conscientiousness.md | 25 +++++++ .../Continuous Integration (CI).md | 33 +++++++++ .../Control-Flow-Analysis.md | 25 +++++++ .../Cosmos 플랫폼 (Netflix).md | 36 +++++++++ .../Covariance-and-Contravariance.md | 25 +++++++ .../Cumulative Layout Shift (CLS).md | 42 +++++++++++ Programming & Language/Cybertext.md | 25 +++++++ .../Cypher 질의 언어 (Neo4j).md | 25 +++++++ .../DAST (동적 애플리케이션 보안 테스트).md | 33 +++++++++ .../DOM 요소 조작 및 타입 좁히기.md | 43 +++++++++++ Programming & Language/DOM 요소 조작.md | 35 +++++++++ Programming & Language/DeepReadonly.md | 32 ++++++++ ...efinitelyTyped and Ambient Declarations.md | 25 +++++++ Programming & Language/Depth Pre-Pass.md | 35 +++++++++ .../Description Logic (기술 논리).md | 25 +++++++ .../Deterministic Algorithms.md | 25 +++++++ .../Discriminated Unions.md | 40 ++++++++++ .../Disentanglement (개념 분리).md | 25 +++++++ .../Draw Call Optimization.md | 36 +++++++++ .../Dublin Core Metadata Initiative.md | 25 +++++++ .../Dwarf Fortress (Simulation-heavy PCG).md | 25 +++++++ Programming & Language/Dwarf-Fortress.md | 25 +++++++ Programming & Language/ESLint.md | 40 ++++++++++ Programming & Language/Early-Z.md | 32 ++++++++ Programming & Language/Edge Bleeding.md | 32 ++++++++ .../Effect TS 및 ts-brand 라이브러리 활용.md | 38 ++++++++++ Programming & Language/Effect TS.md | 32 ++++++++ .../Electron V8 Memory Cage.md | 34 +++++++++ Programming & Language/Electron.md | 32 ++++++++ .../Emergent Gameplay Theory.md | 25 +++++++ Programming & Language/Emergent Gameplay.md | 25 +++++++ Programming & Language/Emergent Systems.md | 25 +++++++ Programming & Language/Emergent-Gameplay.md | 25 +++++++ .../Entity Component System (ECS).md | 25 +++++++ .../Epigenetics of Neuroplasticity.md | 25 +++++++ .../Escape Hatch (탈출구).md | 32 ++++++++ .../Excess Property Checking.md | 37 ++++++++++ Programming & Language/Exergaming.md | 33 +++++++++ .../Facade Pattern (퍼사드 패턴).md | 40 ++++++++++ .../Feature Ablation (피처 제거).md | 25 +++++++ .../Federated SPARQL (연합 질의).md | 25 +++++++ Programming & Language/Figma.md | 34 +++++++++ .../Finite-State-Machines-in-TypeScript.md | 25 +++++++ Programming & Language/Flame Chart.md | 32 ++++++++ Programming & Language/Flow Theory.md | 25 +++++++ Programming & Language/Flow-Theory.md | 25 +++++++ Programming & Language/Fractal-Geometry.md | 25 +++++++ .../Function-Overloading.md | 25 +++++++ .../Function-Signature-Compatibility.md | 25 +++++++ Programming & Language/Fuzzing.md | 33 +++++++++ Programming & Language/GC Root.md | 32 ++++++++ .../GQL (Graph Query Language ISO 표준).md | 25 +++++++ .../Game Studies (Digital Media Theory).md | 25 +++++++ .../Game Studies (Ludology vs Narratology).md | 25 +++++++ Programming & Language/Game Studies.md | 25 +++++++ .../Garbage Collection (GC) 최적화.md | 33 +++++++++ .../Garbage Collection (GC).md | 30 ++++++++ .../Garbage Collection(가비지 컬렉션).md | 51 +++++++++++++ .../Generational Hypothesis.md | 34 +++++++++ Programming & Language/Git Hooks.md | 45 ++++++++++++ ...t Hook을 이용한 CI_CD 자동화 파이프라인.md | 41 +++++++++++ ...mmit 훅을 활용한 개발 워크플로우 자동화.md | 34 +++++++++ .../Global Network Positioning (GNP).md | 34 +++++++++ Programming & Language/Google Chrome.md | 40 ++++++++++ .../Google Code Jam Dataset.md | 39 ++++++++++ Programming & Language/Google Lighthouse.md | 32 ++++++++ Programming & Language/Graph-Grammars.md | 25 +++++++ .../Grokking (그로킹 지연 일반화).md | 25 +++++++ ...리즘 (Hierarchical Navigable Small World).md | 25 +++++++ Programming & Language/HTC Vive Pro HMD.md | 32 ++++++++ Programming & Language/Heap Snapshot.md | 42 +++++++++++ Programming & Language/Husky lint-staged.md | 30 ++++++++ Programming & Language/Husky.md | 36 +++++++++ Programming & Language/IBM 가비지 컬렉션.md | 42 +++++++++++ Programming & Language/IFCjs.md | 36 +++++++++ Programming & Language/Immersive Sim Genre.md | 25 +++++++ Programming & Language/Incremental Marking.md | 40 ++++++++++ Programming & Language/Index Masking.md | 32 ++++++++ .../Industry 40_Smart Manufacturing.md | 25 +++++++ .../InstancedMesh Performance Bottlenecks.md | 46 ++++++++++++ .../InstancedMesh 동적 버퍼 확장.md | 37 ++++++++++ ... 시 드로우 콜 최적화의 한계점 사례 연구.md | 46 ++++++++++++ .../InstancedMesh 최적화.md | 46 ++++++++++++ Programming & Language/InstancedMesh.md | 38 ++++++++++ .../Integrated Gradients (통합 그래디언트).md | 25 +++++++ .../Interactive Fiction (IF).md | 25 +++++++ .../Interactive Narrative.md | 25 +++++++ .../Interactive-Fiction-Tradition.md | 25 +++++++ Programming & Language/Interop 2025.md | 32 ++++++++ .../Intrinsic-Motivation.md | 25 +++++++ .../Inventory Management Example.md | 32 ++++++++ Programming & Language/Isovist-Analysis.md | 25 +++++++ Programming & Language/JPEG XL.md | 41 +++++++++++ .../Jacobian-Matrix-Analysis.md | 25 +++++++ ...모리 관리(JavaScript Memory Management).md | 48 ++++++++++++ Programming & Language/JavaScriptCore.md | 33 +++++++++ Programming & Language/Joern.md | 33 +++++++++ Programming & Language/Kinematics.md | 25 +++++++ Programming & Language/L-Systems.md | 25 +++++++ .../L-systems in Biology.md | 25 +++++++ ...abeled Property Graph (LPG 속성 그래프).md | 25 +++++++ Programming & Language/Latiotech Report.md | 35 +++++++++ Programming & Language/Lighthouse.md | 30 ++++++++ .../Linked Open Data (LOD).md | 25 +++++++ .../Live Streaming Monetization.md | 25 +++++++ .../Logit Lens (로짓 렌즈).md | 25 +++++++ .../Long-Term Potentiation (LTP).md | 25 +++++++ .../Looking Glass Studios.md | 25 +++++++ .../Ludology vs Narratology Debate.md | 25 +++++++ .../Ludology vs Narratology.md | 25 +++++++ .../Ludonarrative Dissonance.md | 25 +++++++ .../Ludonarrative Resonance.md | 25 +++++++ Programming & Language/MMORPG Ecosystems.md | 25 +++++++ .../MVC (Model-View-Controller).md | 41 +++++++++++ Programming & Language/Major GC.md | 42 +++++++++++ .../Mark-Sweep-Compact 알고리즘.md | 35 +++++++++ .../Mark-Sweep-Compact(메이저 GC).md | 47 ++++++++++++ Programming & Language/Mark-Sweep-Compact.md | 41 +++++++++++ Programming & Language/Mark-Sweep.md | 44 +++++++++++ Programming & Language/Mechanobiology.md | 25 +++++++ Programming & Language/Meltdown.md | 30 ++++++++ .../Memory Leak(메모리 누수).md | 32 ++++++++ Programming & Language/Memory Leak.md | 30 ++++++++ .../Mesa-Optimization (메사 최적화).md | 25 +++++++ .../Microsoft Edge DevTools.md | 37 ++++++++++ Programming & Language/Model-Checking.md | 25 +++++++ ...Monorepo(Turborepo 등) 환경의 린트 관리.md | 40 ++++++++++ Programming & Language/Monorepo.md | 33 +++++++++ Programming & Language/Multi-Agent-Systems.md | 25 +++++++ Programming & Language/NPM Ecosystem.md | 25 +++++++ .../Netflix 마이크로서비스 전환.md | 41 +++++++++++ .../Network Coordinate Systems.md | 45 ++++++++++++ Programming & Language/Network Science.md | 25 +++++++ Programming & Language/New Media Theory.md | 25 +++++++ .../New Space(Young Generation).md | 40 ++++++++++ Programming & Language/New Space.md | 30 ++++++++ .../Nodejs Memory Management.md | 49 +++++++++++++ .../Nodejs Memory Tuning.md | 45 ++++++++++++ .../Nodejs Production Monitoring.md | 38 ++++++++++ .../Nodejs 메모리 최적화.md | 49 +++++++++++++ Programming & Language/Nodejs 메모리 튜닝.md | 52 +++++++++++++ Programming & Language/Nodejs 성능 디버깅.md | 48 ++++++++++++ .../Nodejs 성능 최적화 및 디버깅.md | 42 +++++++++++ ...Nodejs 프로세스 모니터링 및 메모리 분석.md | 52 +++++++++++++ Programming & Language/Nodejs.md | 34 +++++++++ Programming & Language/Nominal-Subtyping.md | 25 +++++++ Programming & Language/Nominal-Typing.md | 25 +++++++ .../Non-null Assertion Operator.md | 32 ++++++++ ...NotebookLM-Automated-Authentication-CLI.md | 34 +++++++++ .../Object Pooling (오브젝트 풀링).md | 46 ++++++++++++ .../Objective Distillation (목표 증류).md | 25 +++++++ Programming & Language/Occlusion Culling.md | 30 ++++++++ ...eb Worker를 활용한 메인 스레드 병목 해결.md | 42 +++++++++++ Programming & Language/Oilpan.md | 33 +++++++++ .../Old Space (구 세대 공간).md | 40 ++++++++++ .../Old Space(Old Generation).md | 39 ++++++++++ Programming & Language/Old Space.md | 36 +++++++++ Programming & Language/Opaque Types.md | 30 ++++++++ .../Operations-Management.md | 25 +++++++ .../Organizational Behavior.md | 25 +++++++ .../Organizational-Behavior.md | 25 +++++++ .../Organizational-Psychology.md | 25 +++++++ Programming & Language/Orinoco GC.md | 30 ++++++++ .../Orinoco 가비지 컬렉터.md | 42 +++++++++++ Programming & Language/Orinoco 프로젝트.md | 34 +++++++++ .../Orinoco(V8 GC 프로젝트).md | 30 ++++++++ Programming & Language/Orinoco.md | 33 +++++++++ Programming & Language/Overdraw.md | 37 ++++++++++ .../Page Experience Algorithm.md | 33 +++++++++ .../PageRank (페이지랭크 알고리즘).md | 25 +++++++ ...rs Please (Mechanics as Moral Argument).md | 25 +++++++ Programming & Language/Parse dont validate.md | 33 +++++++++ Programming & Language/Performance Panel.md | 46 ++++++++++++ Programming & Language/Pointer Compression.md | 40 ++++++++++ Programming & Language/Pointer Poisoning.md | 33 +++++++++ .../Post-Apocalyptic Fiction.md | 25 +++++++ .../Post-Surgical-Orthopedic-Recovery.md | 25 +++++++ Programming & Language/Prettier.md | 39 ++++++++++ Programming & Language/Procedural-Rhetoric.md | 25 +++++++ Programming & Language/Proprioception.md | 25 +++++++ .../RDF-star (RDF 확장 사양).md | 25 +++++++ .../RRF (Reciprocal Rank Fusion).md | 25 +++++++ .../Reachability Analysis.md | 36 +++++++++ Programming & Language/React 19 Compiler.md | 36 +++++++++ .../React 게임 엔진 아키텍처.md | 25 +++++++ .../React 및 Nextjs 개발 환경.md | 39 ++++++++++ .../React 재조정 (Reconciliation) 최적화.md | 51 +++++++++++++ .../React 컴포넌트 Props 전달 및 상태 관리.md | 43 +++++++++++ Programming & Language/Readonly Type.md | 39 ++++++++++ .../Readonly 유틸리티 타입.md | 42 +++++++++++ .../Real User Monitoring (RUM).md | 41 +++++++++++ Programming & Language/Render State.md | 35 +++++++++ Programming & Language/Result Type.md | 32 ++++++++ .../Reward Shaping (보상 설계).md | 25 +++++++ .../Robotic-Manipulator-Dynamics.md | 25 +++++++ .../Robust-GitHub-Sync-Pipeline.md | 36 +++++++++ .../Runtime-Type-Validation.md | 25 +++++++ .../SCA (소프트웨어 구성 분석).md | 33 +++++++++ .../SOLID 원칙 (SOLID Principles).md | 46 ++++++++++++ Programming & Language/SOLID 원칙.md | 40 ++++++++++ .../SPA 라우트 전환 성능 최적화.md | 36 +++++++++ .../SPARQL (RDF 그래프 질의 언어).md | 25 +++++++ .../SaaS-Product-Management.md | 25 +++++++ ...mulations (eg Minecraft Dwarf Fortress).md | 25 +++++++ Programming & Language/Santa Fe Institute.md | 25 +++++++ .../Satisfiability-Problem-(SAT).md | 25 +++++++ Programming & Language/Satisfies Operator.md | 38 ++++++++++ Programming & Language/Scavenge.md | 33 +++++++++ Programming & Language/Scavenger 알고리즘.md | 34 +++++++++ Programming & Language/Scavenger(Minor GC).md | 30 ++++++++ .../Scavenger(마이너 GC).md | 37 ++++++++++ Programming & Language/Scheduler API.md | 32 ++++++++ .../Schema-Driven-Development.md | 25 +++++++ Programming & Language/Schemaorg.md | 25 +++++++ .../Sensorimotor-Integration.md | 25 +++++++ Programming & Language/Server Architecture.md | 30 ++++++++ ...redArrayBuffer vs postMessage 성능 차이.md | 49 +++++++++++++ .../SharedArrayBuffer 동시성 문제 해결법.md | 38 ++++++++++ ...ffer 보안 이슈와 Cross-Origin Isolation.md | 40 ++++++++++ ...yBuffer 보안을 위한 COOP COEP 헤더 설정.md | 40 ++++++++++ ...위한 Cross-Origin Isolation 서버 헤더 설정.md | 43 +++++++++++ ...fer로 스레드 간 메모리 공유 효율 높이기.md | 37 ++++++++++ ...aredArrayBuffer와 Atomics 구체적 활용법.md | 72 ++++++++++++++++++ Programming & Language/Side-channel Attack.md | 33 +++++++++ .../Side-channel attacks.md | 38 ++++++++++ Programming & Language/Signal Processing.md | 25 +++++++ Programming & Language/Simulation Theory.md | 25 +++++++ .../Single Page Applications (SPA).md | 33 +++++++++ ...col 개발자 확장 가이드 및 아키텍처 리뷰.md | 25 +++++++ ...col 시스템 아키텍처 및 데이터 흐름 분석.md | 25 +++++++ Programming & Language/Spatial-Syntax.md | 25 +++++++ Programming & Language/Spectre.md | 33 +++++++++ .../Speculative Execution.md | 33 +++++++++ .../Static-Type-Inference.md | 25 +++++++ .../Statistical Mechanics.md | 25 +++++++ Programming & Language/Stop-the-world.md | 43 +++++++++++ Programming & Language/Structural Typing.md | 43 +++++++++++ Programming & Language/StyleCounsel.md | 39 ++++++++++ Programming & Language/Submodules.md | 34 +++++++++ Programming & Language/Synthetic Testing.md | 36 +++++++++ Programming & Language/System Dynamics.md | 25 +++++++ Programming & Language/Systems Dynamics.md | 25 +++++++ Programming & Language/TeamCity.md | 33 +++++++++ Programming & Language/Texture Atlas.md | 40 ++++++++++ .../Throttling Debouncing.md | 37 ++++++++++ Programming & Language/Timing Attack.md | 35 +++++++++ .../Timing Attacks (Spectre_Meltdown).md | 30 ++++++++ Programming & Language/Timing Attacks.md | 33 +++++++++ .../To-Space와 From-Space.md | 37 ++++++++++ ...반 외부 연동사 플러그인 개발 생태계 구축.md | 34 +++++++++ .../Toss Front SDK의 Facade 패턴 적용 사례.md | 43 +++++++++++ ...사드(Facade) 패턴 설계와 인터페이스 전략.md | 30 ++++++++ .../Turborepo 기반 모노레포 워크플로우.md | 34 +++++++++ Programming & Language/Turborepo 환경 구성.md | 34 +++++++++ Programming & Language/Turborepo.md | 32 ++++++++ ... 다중 애플리케이션 및 라이브러리 통합 관리.md | 40 ++++++++++ Programming & Language/Type Casting.md | 33 +++++++++ Programming & Language/Type Inference.md | 25 +++++++ Programming & Language/Type Narrowing.md | 43 +++++++++++ Programming & Language/Type Predicates.md | 25 +++++++ Programming & Language/Type-Assertion.md | 25 +++++++ Programming & Language/Type-Erasure.md | 25 +++++++ .../Type-Inference-Algorithms.md | 25 +++++++ .../Type-Narrowing-Mechanisms.md | 25 +++++++ ...ype-Narrowing-and-Control-Flow-Analysis.md | 25 +++++++ .../Type-Narrowing-and-Guards.md | 25 +++++++ Programming & Language/Type-Predicates.md | 25 +++++++ ...Error Handling Exhaustiveness Checking.md | 33 +++++++++ Programming & Language/TypeScript 49.md | 33 +++++++++ .../TypeScript API Development.md | 43 +++++++++++ .../TypeScript Advanced Type System.md | 35 +++++++++ ...eScript Utility Types (Record Readonly).md | 40 ++++++++++ ...pt 타입 시스템 (TypeScript Type System).md | 34 +++++++++ ...ypeScript 타입 시스템 (인터페이스 설계).md | 25 +++++++ ...peScript 타입 시스템 및 인터페이스 설계.md | 43 +++++++++++ ... 시스템 아키텍처 및 도메인 기반 설계(DDD).md | 46 ++++++++++++ ...템을 활용한 내부 로직 보호 및 데이터 검증.md | 43 +++++++++++ .../TypeScript-Language-Service.md | 25 +++++++ ...ript의 제어 흐름 분석 및 상태 관리 패턴.md | 43 +++++++++++ .../UNESCO-Memory-of-the-World.md | 25 +++++++ Programming & Language/Union Types.md | 34 +++++++++ .../Urban Planning Simulation.md | 25 +++++++ .../V8 Engine Heap Management.md | 44 +++++++++++ Programming & Language/V8 Engine.md | 45 ++++++++++++ .../V8 Heap Architecture.md | 47 ++++++++++++ ...ipt Engine 메모리 관리 및 가비지 컬렉션.md | 30 ++++++++ .../V8 JavaScript Engine.md | 38 ++++++++++ Programming & Language/V8 JavaScript 엔진.md | 46 ++++++++++++ Programming & Language/V8 Memory Cage.md | 30 ++++++++ .../V8 가비지 컬렉션(Garbage Collection).md | 49 +++++++++++++ .../V8 메모리 케이지(V8 Memory Cage).md | 36 +++++++++ Programming & Language/V8 엔진 (V8 Engine).md | 45 ++++++++++++ Programming & Language/V8 엔진 메모리 구조.md | 30 ++++++++ .../V8 엔진 힙 아키텍처 및 로그 분석.md | 45 ++++++++++++ ... 힙 아키텍처(V8 Engine Heap Architecture).md | 30 ++++++++ Programming & Language/V8 엔진 힙 아키텍처.md | 47 ++++++++++++ Programming & Language/V8 엔진(V8 Engine).md | 35 +++++++++ ... 메모리 관리 아키텍처 및 Orinoco 프로젝트.md | 47 ++++++++++++ .../V8 자바스크립트 엔진.md | 46 ++++++++++++ .../V8 힙 공간(V8 Heap Spaces).md | 54 ++++++++++++++ Programming & Language/V8 힙(Heap).md | 45 ++++++++++++ Programming & Language/VR Sickness.md | 33 +++++++++ .../VR 멀미 (VR Sickness).md | 35 +++++++++ .../VR 멀미(VR sickness).md | 42 +++++++++++ .../Variable Ratio Reinforcement.md | 25 +++++++ .../Variance-Covariance-and-Contravariance.md | 25 +++++++ .../Variance-in-TypeScript.md | 25 +++++++ .../Vergence-Accommodation Conflicts.md | 33 +++++++++ ...제 고부하 병렬 처리 구현체 (실패_성공 포함).md | 30 ++++++++ Programming & Language/Web3 Infrastructure.md | 25 +++++++ .../WebKit Security Mitigations.md | 37 ++++++++++ Programming & Language/WebKit.md | 36 +++++++++ Programming & Language/Write Barrier.md | 32 ++++++++ .../Zod 런타임 유효성 검사 통합.md | 37 ++++++++++ ... 브랜디드 타입을 결합한 런타임 데이터 검증.md | 34 +++++++++ Programming & Language/Zod.md | 33 +++++++++ .../Zod를 활용한 런타임 데이터 파싱.md | 40 ++++++++++ .../Zustand-Based-Mission-Persistence.md | 37 ++++++++++ Programming & Language/as const Assertion.md | 32 ++++++++ Programming & Language/as const.md | 40 ++++++++++ ...ffer를 결합한 멀티스레드 고성능 아키텍처.md | 40 ++++++++++ ...CS와 SharedArrayBuffer의 실제 코드 통합.md | 73 +++++++++++++++++++ .../eslint-config-prettier.md | 43 +++++++++++ .../eslint-plugin-prettier.md | 38 ++++++++++ Programming & Language/lint-staged.md | 43 +++++++++++ .../never 타입(never type).md | 34 +++++++++ Programming & Language/never 타입.md | 33 +++++++++ Programming & Language/readonly 수식어.md | 44 +++++++++++ Programming & Language/readonly.md | 45 ++++++++++++ Programming & Language/satisfies Keyword.md | 35 +++++++++ Programming & Language/satisfies 연산자.md | 35 +++++++++ Programming & Language/ts-brand.md | 32 ++++++++ Programming & Language/ts-pattern.md | 32 ++++++++ .../useEffect 클린업(Cleanup).md | 35 +++++++++ .../가비지 컬렉션 (Garbage Collection).md | 46 ++++++++++++ .../가비지 컬렉션(Garbage Collection).md | 30 ++++++++ .../가비지 컬렉터(Garbage Collector).md | 42 +++++++++++ .../가상현실 멀미 (VR Sickness).md | 36 +++++++++ .../가상현실 멀미(VR Sickness).md | 40 ++++++++++ ...효과 연구(Virtual Reality Aftereffects Study).md | 33 +++++++++ ... 후유증 연구(VR Exergaming Aftereffects Study).md | 38 ++++++++++ ...(Virtual reality exergaming aftereffects research).md | 34 +++++++++ ...상현실 엑서게임(Exergaming) 후유증 연구.md | 30 ++++++++ ...실 후유증 (Virtual Reality Aftereffects).md | 40 ++++++++++ .../가상현실 후유증(VR Aftereffects).md | 40 ++++++++++ ...게임 인지 사후 효과 분석(CANTAB 5-choice RTI).md | 34 +++++++++ .../가상현실(VR) 자전거 시뮬레이터.md | 36 +++++++++ .../감각 통합(Sensory integration).md | 33 +++++++++ Programming & Language/강화 계획.md | 25 +++++++ ...화 학습(Reinforcement Learning) 알고리즘.md | 25 +++++++ Programming & Language/개발자 경험(DX).md | 34 +++++++++ .../객체 지향 소프트웨어 아키텍처 설계.md | 33 +++++++++ .../객체 지향 프로그래밍 (OOP).md | 33 +++++++++ ... 프로그래밍 (Object-Oriented Programming).md | 33 +++++++++ .../객체 지향 프로그래밍(OOP).md | 33 +++++++++ Programming & Language/건강 심리학.md | 25 +++++++ Programming & Language/건강 행동 변화 모델.md | 25 +++++++ .../게임 디자인 이론 및 구조론.md | 25 +++++++ ...임 디자인의 보상 루프(Reward Loop) 설계.md | 25 +++++++ Programming & Language/게임 루프 설계.md | 25 +++++++ Programming & Language/게임 행동 심리학.md | 25 +++++++ ...학(Ludology) vs 서사학(Narratology) 논쟁.md | 25 +++++++ .../견고한 도메인 모델 및 API 계약 설계.md | 35 +++++++++ .../결정 속도(Decision Speed).md | 30 ++++++++ Programming & Language/결합도 (Coupling).md | 46 ++++++++++++ .../경고 피로 (Alert Fatigue).md | 38 ++++++++++ .../계층화 아키텍처 (Layered Architecture).md | 38 ++++++++++ Programming & Language/고전적 조건 형성.md | 25 +++++++ .../공존 질환 (Comorbidity).md | 25 +++++++ ...잉 속성 체크 (Excess Property Checking).md | 33 +++++++++ Programming & Language/과잉 속성 체크(EPC).md | 40 ++++++++++ ...잉 속성 체크(Excess Property Checking).md | 32 ++++++++ ... 정당화 효과 (Overjustification Effect).md | 25 +++++++ ...심사의 분리 (Separation of Concerns SoC).md | 43 +++++++++++ .../관심사의 분리 (Separation of Concerns).md | 45 ++++++++++++ Programming & Language/관심사의 분리 (SoC).md | 45 ++++++++++++ .../관심사의 분리(Separation of Concerns).md | 43 +++++++++++ Programming & Language/관심사의 분리(SoC).md | 44 +++++++++++ .../관점 지향 프로그래밍 (AOP).md | 39 ++++++++++ .../관점 지향 프로그래밍(AOP).md | 45 ++++++++++++ .../광범위한 신경과학적 연합 기제.md | 25 +++++++ .../교육 심리학에서의 학습 동기 유도.md | 25 +++++++ .../교육 심리학에서의 학습 동기 유발.md | 25 +++++++ .../교집합 타입 (Intersection Types).md | 33 +++++++++ .../교집합 타입(Intersection Type).md | 44 +++++++++++ .../구조적 타이핑 (Structural Typing).md | 41 +++++++++++ .../구조적 타이핑(Structural Typing).md | 43 +++++++++++ Programming & Language/구조적 타이핑.md | 32 ++++++++ ...본 타입에의 집착 (Primitive Obsession).md | 41 +++++++++++ ...기본 타입에의 집착(Primitive Obsession).md | 37 ++++++++++ .../깊이 지각 (Depth Perception).md | 32 ++++++++ .../깊이 지각(Depth perception).md | 34 +++++++++ .../내재적 동기 (Intrinsic Motivation).md | 25 +++++++ .../내재적 동기 vs 외재적 동기.md | 25 +++++++ .../네버 타입 (never type).md | 43 +++++++++++ ...릭스 (Netflix) 마이크로서비스 도입 사례.md | 30 ++++++++ ...딩 파이프라인 (Netflix Video Encoding Pipeline).md | 41 +++++++++++ ... 코스모스 플랫폼 (Netflix Cosmos Platform).md | 40 ++++++++++ ...플릭스 코스모스 플랫폼 (Netflix Cosmos).md | 39 ++++++++++ ...x)의 마이크로서비스 및 코스모스 플랫폼 전환.md | 46 ++++++++++++ ...의 코스모스 플랫폼 및 마이크로서비스 전환.md | 44 +++++++++++ .../뇌 가소성 (Neuroplasticity).md | 25 +++++++ ...절 충돌(Vergence-accommodation conflicts).md | 33 +++++++++ .../느슨한 결합 (Loose Coupling).md | 42 +++++++++++ .../단일 책임 원칙 (SRP).md | 34 +++++++++ ...임 원칙 (Single Responsibility Principle).md | 42 +++++++++++ Programming & Language/단일 책임 원칙(SRP).md | 36 +++++++++ ...모 TypeScript 애플리케이션 아키텍처 설계.md | 41 +++++++++++ ... TypeScript 프로젝트의 컴파일 성능 최적화.md | 32 ++++++++ .../대규모 데이터 렌더링 및 가상화 최적화.md | 49 +++++++++++++ .../대규모 로그 뷰어 및 데이터 테이블 구현.md | 25 +++++++ ...포(Turborepo) 환경에서의 린트 오케스트레이션.md | 34 +++++++++ .../대규모 애플리케이션 개발.md | 46 ++++++++++++ .../대규모 웹 그래픽스 프로젝트.md | 44 +++++++++++ ... 애플리케이션의 조직 및 기술적 확장성 확보.md | 42 +++++++++++ .../대규모 인스턴스 렌더링 및 투명도 처리.md | 30 ++++++++ .../덕 타이핑 (Duck Typing).md | 30 ++++++++ .../덕 타이핑(Duck Typing).md | 32 ++++++++ ... (DevSecOps) 환경에서의 지속적인 보안 검사.md | 43 +++++++++++ .../데이터 거버넌스 (Data Governance).md | 37 ++++++++++ ...달 가능성 분석 (Reachability Analysis).md | 36 +++++++++ ...메인 기반 설계 (DDD) 및 데이터 오염 방지.md | 40 ++++++++++ .../도메인 기반 설계 (DDD).md | 33 +++++++++ .../도메인 기반 설계(DDD).md | 34 +++++++++ .../도메인 기반 설계(DDD)의 데이터 검증.md | 32 ++++++++ .../도메인 기반 설계(DDD)의 식별자 분리.md | 37 ++++++++++ ...기강화 상담(Motivational Interviewing).md | 25 +++++++ ...진적 마킹(Concurrent Incremental Marking).md | 40 ++++++++++ .../동작 속도(Movement Speed).md | 32 ++++++++ .../동적 애플리케이션 보안 테스트(DAST).md | 33 +++++++++ .../디지털 미학(Digital Aesthetics).md | 25 +++++++ .../라이브러리 및 확장 가능한 코드베이스.md | 34 +++++++++ .../런타임 상태 검증(Runtime Validation).md | 33 +++++++++ ...내러티브 부조화(Ludonarrative Dissonance).md | 25 +++++++ Programming & Language/리로디드(Reloaded).md | 32 ++++++++ .../리터럴 타입 (Literal Types).md | 38 ++++++++++ Programming & Language/린터 (Linter).md | 37 ++++++++++ .../마이너 가비지 컬렉션(Minor GC).md | 41 +++++++++++ .../마이크로서비스 아키텍처 (MSA).md | 53 ++++++++++++++ .../마이크로서비스 아키텍처.md | 44 +++++++++++ .../마크-스위프(Mark-Sweep).md | 30 ++++++++ .../마크-스윕(Mark-Sweep).md | 36 +++++++++ .../마크-컴팩트(Mark-Compact).md | 40 ++++++++++ ... 디스플레이(HMD) 환경의 시각적 후유증 연구.md | 32 ++++++++ .../머리 착용 디스플레이(HMD) 시각 연구.md | 34 +++++++++ .../메모리 누수(Memory Leak).md | 30 ++++++++ .../메모리 누수(Memory Leaks).md | 41 +++++++++++ .../메모리 단편화(Fragmentation).md | 35 +++++++++ ... 파편화 방지 및 객체 풀링 (Object Pooling).md | 25 +++++++ .../명목적 타이핑 (Nominal Typing).md | 37 ++++++++++ .../명목적 타이핑(Nominal Typing).md | 33 +++++++++ .../모노레포(Monorepo) 기반 구성 중앙화.md | 38 ++++++++++ .../모노레포(Monorepo) 설정 중앙화.md | 46 ++++++++++++ .../모노레포(Monorepo) 아키텍처 설정.md | 42 +++++++++++ ...리식 아키텍처 (Monolithic Architecture).md | 33 +++++++++ .../모듈러 통합 건설 (MiC).md | 34 +++++++++ .../모듈화 및 아키텍처 경계 설정.md | 40 ++++++++++ Programming & Language/몰입 (Flow Theory).md | 25 +++++++ .../미디어 폭력과 공격성 연구.md | 25 +++++++ .../반응 시간(Reaction Time).md | 32 ++++++++ ...(Data Transformation between Backend and Frontend).md | 34 +++++++++ .../번아웃 및 직무 스트레스.md | 25 +++++++ .../범이론적 모델(Transtheoretical Model).md | 25 +++++++ ...상 예측 오류 (Reward Prediction Error).md | 25 +++++++ .../보조 공학 (Assistive Technology).md | 25 +++++++ ...즈니스 도메인 (금융 헬스케어 이커머스 등).md | 40 ++++++++++ .../불변성 (Immutability).md | 43 +++++++++++ .../불변성(Immutability).md | 39 ++++++++++ .../불필요한 리렌더링 방지.md | 46 ++++++++++++ ...브라우저 DOM 누수 탐지 및 렌더링 최적화.md | 44 +++++++++++ .../브라우저 메모리 관리 및 최적화.md | 40 ++++++++++ ... 메모리 할당 시점별 힙(Heap) 동작 상세 로그.md | 40 ++++++++++ .../브라우저 및 Nodejs 메모리 튜닝.md | 40 ++++++++++ .../브랜디드 타입 (Branded Types).md | 46 ++++++++++++ .../브랜디드 타입(Branded Types).md | 48 ++++++++++++ Programming & Language/브랜디드 타입.md | 39 ++++++++++ ... 후유증 평가(Beat Saber Exergaming Aftereffects).md | 33 +++++++++ ...트 세이버(Beat Saber) VR 엑서게임 연구.md | 43 +++++++++++ .../비트 세이버(Beat Saber) 실험.md | 34 +++++++++ .../비트 세이버(Beat Saber) 엑서게임 연구.md | 34 +++++++++ .../비트 세이버(Beat Saber).md | 32 ++++++++ ...Beat Saber_ An Investigation of Virtual Reality Aftereffects).md | 33 +++++++++ Programming & Language/사회 학습 이론.md | 25 +++++++ Programming & Language/사회학습이론.md | 25 +++++++ ...링(State Management and API Response Modeling).md | 34 +++++++++ .../상태 머신(State Machine) 설계.md | 33 +++++++++ .../새로운 공간(New Space).md | 30 ++++++++ Programming & Language/생물학적 학습 이론.md | 25 +++++++ .../서드파티 라이브러리 및 API 연동.md | 40 ++++++++++ .../서버리스 컴퓨팅(Serverless Computing).md | 33 +++++++++ .../선언 병합 (Declaration Merging).md | 30 ++++++++ Programming & Language/선언 파일(dts).md | 35 +++++++++ ...블 설계(Configuration Objects and Lookup Tables).md | 42 +++++++++++ .../성장 마인드셋 (Growth Mindset).md | 25 +++++++ .../성장 마인드셋(Growth Mindset).md | 25 +++++++ .../세대 가설(Generational Hypothesis).md | 41 +++++++++++ .../세대별 가설(Generational Hypothesis).md | 35 +++++++++ .../소프트웨어 구성 분석(SCA).md | 33 +++++++++ .../소프트웨어 아키텍처 베스트 프랙티스.md | 43 +++++++++++ .../소프트웨어 아키텍처 설계.md | 41 +++++++++++ .../수동 코드 리뷰 (Manual Code Review).md | 55 ++++++++++++++ Programming & Language/수동 코드 리뷰.md | 43 +++++++++++ ...절 불일치(Vergence-Accommodation Conflict).md | 33 +++++++++ .../순차적 게이트 아키텍처.md | 30 ++++++++ .../스캐빈저(Scavenger) _ 마이너 GC.md | 34 +++++++++ .../스택 트레이스(Stack trace).md | 33 +++++++++ ...랭글러 피그 패턴(Strangler Fig Pattern).md | 34 +++++++++ .../스파게티 코드 (Spaghetti Code).md | 32 ++++++++ ...티파이 자율적 분대 모델 (Spotify Squad).md | 33 +++++++++ ...크로 프론트엔드 (Spotify Squads and Micro Frontends).md | 42 +++++++++++ .../스포티파이 자율적 분대 모델.md | 32 ++++++++ ...y)의 스쿼드 모델 및 마이크로 프론트엔드 도입.md | 44 +++++++++++ Programming & Language/습관 교정 프로그램.md | 25 +++++++ .../시각 및 인지적 후유증 연구.md | 40 ++++++++++ ...-전정 갈등 (Visual-Vestibular Conflict).md | 31 ++++++++ ...정 감각 충돌(Visual-Vestibular Conflict).md | 32 ++++++++ ...각-전정 충돌(Visual-vestibular conflict).md | 33 +++++++++ .../시맨틱 웹 (Semantic Web).md | 25 +++++++ .../시스템 다이내믹스 (System Dynamics).md | 25 +++++++ .../시프트 레프트 (Shift-Left).md | 32 ++++++++ .../시프트 레프트(Shift-Left).md | 33 +++++++++ ...별 가능한 유니온 (Discriminated Unions).md | 33 +++++++++ ...별 가능한 유니온(Discriminated Unions).md | 30 ++++++++ Programming & Language/식별 가능한 유니온.md | 33 +++++++++ .../신경 가소성 (Neuroplasticity).md | 25 +++++++ Programming & Language/실재감(Presence).md | 33 +++++++++ .../심리적 계약 (Psychological Contract).md | 25 +++++++ .../심리적 안전감 (Psychological Safety).md | 25 +++++++ .../쓰기 장벽(Write Barrier).md | 37 ++++++++++ .../안구 운동 기능 (Oculomotor Functions).md | 33 +++++++++ .../안구 운동 기능(Oculomotor functions).md | 41 +++++++++++ .../안구 운동 증상(Oculomotor Symptoms).md | 33 +++++++++ ...TypeScript 데이터 모델링 및 설정 관리 구축.md | 40 ++++++++++ .../안전한 소프트웨어 개발 수명주기(SSDLC).md | 33 +++++++++ ...수 없는 외부 데이터 검증 (unknown types).md | 37 ++++++++++ .../애자일 방법론 (Agile Methodology).md | 25 +++++++ .../약한 타입 검사(Weak Type Detection).md | 32 ++++++++ .../약한 타입 탐지 (Weak Type Detection).md | 32 ++++++++ .../양가감정(Ambivalence).md | 25 +++++++ .../에르고딕 문학(Ergodic Literature).md | 25 +++++++ .../에일리어싱 (Aliasing).md | 37 ++++++++++ .../엑서게임(Exergaming).md | 35 +++++++++ .../엔터프라이즈 소프트웨어 개발.md | 43 +++++++++++ .../엔터프라이즈 소프트웨어 시스템 설계.md | 48 ++++++++++++ ...프라이즈 애플리케이션 및 점진적 리팩토링.md | 33 +++++++++ .../엔터프라이즈 애플리케이션 설계.md | 45 ++++++++++++ .../오래된 공간(Old Space).md | 34 +++++++++ .../오리노코(Orinoco GC).md | 35 +++++++++ .../오리노코(Orinoco) 프로젝트.md | 35 +++++++++ .../오버드로우(Overdraw).md | 32 ++++++++ .../오탐 (False Positive).md | 37 ++++++++++ ...픈소스 컴포넌트 (Open Source Components).md | 34 +++++++++ .../완전성 검사 (Exhaustiveness Checking).md | 33 +++++++++ .../완전성 검사(Exhaustiveness Checking).md | 33 +++++++++ .../외부 API 데이터 및 설정 파일 처리.md | 35 +++++++++ .../외부 API 데이터의 런타임 검증 후 처리.md | 33 +++++++++ .../외부 라이브러리 API 설계.md | 40 ++++++++++ .../웹 애플리케이션의 3계층 구조.md | 50 +++++++++++++ .../웹 워커 이벤트 포워딩 Event Forwarding.md | 69 ++++++++++++++++++ ...워커 이벤트 포워딩 통신 지연 최소화 방법.md | 37 ++++++++++ .../웹 프론트엔드 성능 최적화.md | 37 ++++++++++ ... 통합 이론 (Organismic Integration Theory).md | 25 +++++++ .../유능감 및 자율성 욕구.md | 25 +++++++ .../유니언 타입 식별 및 상태 분기 처리.md | 40 ++++++++++ .../유니온 타입 (Union Types).md | 30 ++++++++ .../유니온 타입(Union Types).md | 39 ++++++++++ .../유스케이스 (Use Cases).md | 33 +++++++++ Programming & Language/응집도 (Cohesion).md | 43 +++++++++++ ...응집도와 결합도 (Cohesion and Coupling).md | 46 ++++++++++++ Programming & Language/응집도와 결합도.md | 42 +++++++++++ .../의사결정 속도(Decision Speed).md | 35 +++++++++ .../의존성 역전 (Dependency Inversion).md | 33 +++++++++ .../의존성 역전 원칙 (DIP).md | 37 ++++++++++ ... 원칙 (Dependency Inversion Principle DIP).md | 35 +++++++++ ...역전 원칙 (Dependency Inversion Principle).md | 39 ++++++++++ Programming & Language/의존성 주입 (DI).md | 40 ++++++++++ .../의존성 주입 (Dependency Injection).md | 38 ++++++++++ Programming & Language/의존성 주입(DI).md | 37 ++++++++++ .../이동 속도(Movement Speed).md | 34 +++++++++ ... 기반 아키텍처 (Event-Driven Architecture).md | 40 ++++++++++ .../이전 세대(Old Generation_Space).md | 45 ++++++++++++ .../이커머스의 실시간 재고 관리.md | 34 +++++++++ .../인문학적 게임 비평 및 서사학12.md | 25 +++++++ Programming & Language/임베딩 (Embedding).md | 25 +++++++ .../임상 심리학의 변화 동기 치료.md | 25 +++++++ .../자기결정성 이론 (SDT).md | 25 +++++++ ...결정성 이론 (Self-Determination Theory).md | 25 +++++++ Programming & Language/자동화된 코드 리뷰.md | 47 ++++++++++++ Programming & Language/자바 가상 머신(JVM).md | 33 +++++++++ .../자율성 지지 (Autonomy Support).md | 25 +++++++ .../자폐 스펙트럼 장애(ASD) 중재.md | 25 +++++++ ... 실행되는 실시간 데이터 대시보드 최적화.md | 48 ++++++++++++ .../재귀적 불변성 (DeepReadonly).md | 33 +++++++++ .../전두엽 기능 저하 (Hypofrontality).md | 25 +++++++ .../절차적 수사학(Procedural Rhetoric).md | 25 +++++++ .../점진적 마킹(Incremental marking).md | 40 ++++++++++ ... 조건 형성 (Emotional Classical Conditioning).md | 25 +++++++ .../정신 의학적 진단 체계 (DSM-5_ICD-11).md | 25 +++++++ .../정적 분석(Static Analysis).md | 46 ++++++++++++ .../제어 흐름 분석 (Control Flow Analysis).md | 32 ++++++++ ...조작적 조건 형성 (Operant Conditioning).md | 25 +++++++ Programming & Language/조작적 조건 형성.md | 25 +++++++ Programming & Language/조작적 조건형성.md | 25 +++++++ ... 불일치 (Vergence-Accommodation Conflict).md | 32 ++++++++ ...주 불일치(Vergence-Accommodation Conflict).md | 33 +++++++++ .../조직 개발(OD) 프로그램 설계.md | 25 +++++++ Programming & Language/조직 행동 관리(OBM).md | 25 +++++++ .../조직 행동론 및 직무 만족도 연구.md | 25 +++++++ .../중뇌-변연계 경로 (Mesolimbic Pathway).md | 25 +++++++ .../지식 그래프 (Knowledge Graph).md | 25 +++++++ ...무 특성 모델 (Job Characteristics Model).md | 25 +++++++ Programming & Language/집합론 (Set Theory).md | 45 ++++++++++++ Programming & Language/집합론(Set Theory).md | 35 +++++++++ .../철벽 수비대 인터페이스 설계 전략.md | 35 +++++++++ ... 타입 시스템과 견고한 인터페이스 설계의 정수.md | 43 +++++++++++ ...과 속성 검사 (Excess Property Checking).md | 41 +++++++++++ ...초과 속성 검사 (Excess Property Checks).md | 39 ++++++++++ .../추론 엔진 (Semantic Reasoner).md | 25 +++++++ Programming & Language/추상 구문 트리(AST).md | 32 ++++++++ Programming & Language/추상화(Abstraction).md | 39 ++++++++++ Programming & Language/추상화.md | 37 ++++++++++ .../카오스 몽키(Chaos Monkey).md | 33 +++++++++ .../커뮤니티 탐지 (Community Detection).md | 25 +++++++ .../코드 리뷰 (Code Review).md | 34 +++++++++ ...자 인식)에 미치는 영향을 평가하는 기계 학습 모델 분류 연구.md | 43 +++++++++++ .../코드 스타일로메트리 (Code Stylometry).md | 34 +++++++++ .../코드 축소 (Code minification).md | 33 +++++++++ .../코드 포매팅 (Code formatting).md | 39 ++++++++++ ...동화 (Code Quality Management and Automation).md | 33 +++++++++ Programming & Language/코스모스(Cosmos).md | 44 +++++++++++ Programming & Language/클로저(Closures).md | 33 +++++++++ ... 계측(Allocation instrumentation on timeline).md | 35 +++++++++ .../타입 가드 (Type Predicates).md | 33 +++++++++ .../타입 가드(Type Guards).md | 33 +++++++++ .../타입 단언 (Type Assertions).md | 40 ++++++++++ .../타입 단언(Type Assertion).md | 37 ++++++++++ .../타입 단언(Type Assertions).md | 33 +++++++++ .../타입 서술어 (Type Predicates).md | 40 ++++++++++ .../타입 서술어(Type Predicates).md | 37 ++++++++++ .../타입 안전성 (Type Safety).md | 33 +++++++++ ... 정의가 부족한 서드파티 라이브러리 연동.md | 40 ++++++++++ .../타입 조건자(Type Predicates).md | 33 +++++++++ .../타입 좁히기 (Type Narrowing).md | 42 +++++++++++ .../타입 좁히기(Type Narrowing).md | 37 ++++++++++ .../타입 캐스팅 (Type Casting).md | 40 ++++++++++ ...입스크립트 상태 관리 및 분기 처리 설계.md | 43 +++++++++++ Programming & Language/타파스(Tapas).md | 32 ++++++++ .../토스(Toss) Front SDK 퍼사드 패턴 적용.md | 40 ++++++++++ Programming & Language/토스(Toss) SDK 설계.md | 36 +++++++++ ...플레이스 결제 단말기 외부 연동 SDK 개발.md | 35 +++++++++ .../팀 단위 코드 품질 및 컨벤션 유지.md | 43 +++++++++++ .../포인터 압축(Pointer Compression).md | 33 +++++++++ ...절 갈등 (Vergence-Accommodation Conflict).md | 32 ++++++++ ... 불일치(Vergence-Accommodation Conflicts).md | 32 ++++++++ ...절 불일치(Vergence-accommodation conflict).md | 33 +++++++++ ...절 충돌(Vergence-accommodation conflict).md | 30 ++++++++ ...엔드 및 모노레포(Monorepo) 개발 환경 설정.md | 48 ++++++++++++ .../핀테크의 실시간 사기 탐지.md | 32 ++++++++ .../하이브리드 검색 (Hybrid Search).md | 25 +++++++ .../할당 타임라인(Allocation Timeline).md | 43 +++++++++++ .../행동 경제학의 인센티브 구조 설계.md | 25 +++++++ .../행동 경제학의 학습 이론.md | 25 +++++++ Programming & Language/행동 수정 기법.md | 25 +++++++ .../행동주의 심리학 (Behaviorism).md | 25 +++++++ Programming & Language/행동주의 심리학.md | 25 +++++++ ...어의 민감 데이터(PII_PCI) 보안 규제 준수.md | 30 ++++++++ .../회복탄력성 (Resilience).md | 25 +++++++ .../힙 메모리(Heap Memory).md | 44 +++++++++++ .../힙 스냅샷 (Heap Snapshots).md | 43 +++++++++++ Programming & Memory/ArrayBuffer.md | 30 ++++++++ .../AST-based-Static-Analysis.md | 25 +++++++ Programming & Web/ASPNET Core.md | 32 ++++++++ .../ABA(Applied Behavior Analysis).md | 25 +++++++ .../Addiction Neuroscience.md | 25 +++++++ Psychology & Behavior/Agent-Based Modeling.md | 25 +++++++ Psychology & Behavior/Agent-Based-Modeling.md | 25 +++++++ .../Amygdala Hyperactivity.md | 25 +++++++ ...상의 역효과 (Overjustification Effect).md | 25 +++++++ .../Functional Behavior Analysis (FBA).md | 31 ++++++++ Psychology/ABA.md | 29 ++++++++ Psychology/Addiction_Neuroscience.md | 29 ++++++++ Psychology/Behavioral_Economics.md | 29 ++++++++ Psychology/Dopamine.md | 29 ++++++++ Psychology/Neuroplasticity.md | 29 ++++++++ Psychology/Nudge_Theory.md | 29 ++++++++ Psychology/Operant_Conditioning.md | 29 ++++++++ .../Adversarial Attack (적대적 공격).md | 25 +++++++ Security & Reliability/OWASP Top 10.md | 31 ++++++++ .../Formal-Methods-in-Software-Engineering.md | 25 +++++++ .../Agent-Based Modeling (ABM).md | 25 +++++++ Sociology & Tech/Algorithmic Governance.md | 25 +++++++ Sociology & Tech/Algorithmic-Governance.md | 25 +++++++ .../API-Contract-Definition.md | 25 +++++++ .../API-First Architecture.md | 42 +++++++++++ Software Architecture/API-First-Design.md | 25 +++++++ ...iving Simulation] [Robotic Manipulation.md | 25 +++++++ .../Architectural-Constraint-Enforcement.md | 25 +++++++ .../Deterministic Lockstep Architecture.md | 25 +++++++ .../Domain-Driven Design (DDD).md | 30 ++++++++ .../Hello Games Development Lifecycle.md | 25 +++++++ .../Microservices-Architecture.md | 33 +++++++++ Software Architecture/Nudge Theory.md | 25 +++++++ .../Sports Management Theory.md | 25 +++++++ ...tling Debouncing (스로틀링과 디바운싱).md | 25 +++++++ .../Amazon-AWS-Formal-Verification.md | 25 +++++++ .../Distributed-Systems-Engineering.md | 30 ++++++++ .../Digital Twins.md | 30 ++++++++ System Design & Modeling/Event Storming.md | 32 ++++++++ Systemic Modeling & Fun/Game Design Theory.md | 32 ++++++++ .../Analyze runtime performance.md | 51 +++++++++++++ 2141 files changed, 63988 insertions(+) create mode 100644 AI & Biology/Artificial Life (ALife).md create mode 100644 AI & Ethics/Algorithmic Bias in Art.md create mode 100644 AI & Ethics/Algorithmic Decision Making.md create mode 100644 AI & Ethics/Artificial-Intelligence-Explainability.md create mode 100644 AI & Games/AlphaZero Strategy.md create mode 100644 AI & ML MLOps/Concept Drift (개념 드리프트, 모델 지식의 부패).md create mode 100644 AI & Narrative/AI-Driven Narrative Systems.md create mode 100644 AI & Psychology/Affective Computing.md create mode 100644 AI & Tools/AI Connect LLM Tool.md create mode 100644 AI/20k skinned instances demo.md create mode 100644 AI/AI Safety (AI 안전).md create mode 100644 AI/AI 거버넌스 정책(AI Usage Policy).md create mode 100644 AI/AI 생성 코드 검증(AI Code Assurance).md create mode 100644 AI/AI 에이전트 (AI Agent).md create mode 100644 AI/AI 코드 리뷰 및 보안 취약점 점검(DevSecOps).md create mode 100644 AI/AI 코드 리뷰.md create mode 100644 AI/AI와 기계에게 검열 맡기기_ - 정적 분석 툴 (ESLint Prettier)).md create mode 100644 AI/API 응답 모델링 및 상태 머신(State Machine) 설계.md create mode 100644 AI/A_B-Testing-Platforms.md create mode 100644 AI/Accessibility-Compliance-Audit.md create mode 100644 AI/Adaptive Compute (적응형 계산량 조절).md create mode 100644 AI/Advanced-Interface-Design.md create mode 100644 AI/Adversarial Code Stylometry.md create mode 100644 AI/Algorithmic-Biology.md create mode 100644 AI/Algorithmic-Game-Theory.md create mode 100644 AI/Ambient-Declarations.md create mode 100644 AI/Amdahls Law (암달의 법칙).md create mode 100644 AI/Artificial-Intelligence-in-Games.md create mode 100644 AI/Artificial-Intelligence.md create mode 100644 AI/Autism Spectrum Disorder (ASD) Intervention.md create mode 100644 AI/Automated-Game-Testing.md create mode 100644 AI/Automated-Map-Generation.md create mode 100644 AI/Automated-Reasoning.md create mode 100644 AI/Automated-Refactoring-Tools.md create mode 100644 AI/Automated-Theorem-Proving.md create mode 100644 AI/Automated_Mapping.md create mode 100644 AI/Autonomous Vehicle Path Planning.md create mode 100644 AI/Autonomous-Polling-Wait-Automation.md create mode 100644 AI/Autonomous-Vehicle-Path-Planning.md create mode 100644 AI/Axify.md create mode 100644 AI/Azure DevOps.md create mode 100644 AI/Baseline Project.md create mode 100644 AI/Bayesian Inference.md create mode 100644 AI/Behavioral Finance.md create mode 100644 AI/Behavioral-Economics.md create mode 100644 AI/Bellman Equation.md create mode 100644 AI/Best SAST Tools in 2026.md create mode 100644 AI/Best-of-N Sampling (최적 샘플링).md create mode 100644 AI/BioShock (2007).md create mode 100644 AI/BioShock-Critique.md create mode 100644 AI/Bioenergetics.md create mode 100644 AI/Bioinformatics-Structure-Prediction.md create mode 100644 AI/Biomechanics-of-Injury.md create mode 100644 AI/Biometrics.md create mode 100644 AI/Bounded Contexts.md create mode 100644 AI/Bounded Rationality.md create mode 100644 AI/Bounded-Contexts-and-Interface-Segregation.md create mode 100644 AI/Brain-Derived Neurotrophic Factor (BDNF).md create mode 100644 AI/Branded-Types-for-Nominal-Typing.md create mode 100644 AI/Branded-Types.md create mode 100644 AI/Burnout Prevention in Professional Gaming.md create mode 100644 AI/CI_CD 및 Pull Request 자동화 리뷰.md create mode 100644 AI/CI_CD 파이프라인 및 IDE 통합 보안.md create mode 100644 AI/CI_CD.md create mode 100644 AI/CPTED.md create mode 100644 AI/CV_Synthesis.md create mode 100644 AI/Caliskan-Islam 등의 프로그램 바이너리 작성자 식별 연구.md create mode 100644 AI/Call Stack.md create mode 100644 AI/Central-Pattern-Generators.md create mode 100644 AI/CesiumJS.md create mode 100644 AI/Chain-of-Thought (CoT 사고 사슬).md create mode 100644 AI/Chrome DevTools Memory Profiling.md create mode 100644 AI/Chrome DevTools 메모리 분석 및 성능 최적화.md create mode 100644 AI/Chrome DevTools 메모리 프로파일링 및 힙 스냅샷 분석.md create mode 100644 AI/Chrome DevTools 메모리 프로파일링.md create mode 100644 AI/Chrome DevTools.md create mode 100644 AI/Chrome 브라우저 렌더링 성능.md create mode 100644 AI/Chronic-Pain-Management-Protocols.md create mode 100644 AI/Circuit Discovery (회로 발견).md create mode 100644 AI/Circular Economy Transitions.md create mode 100644 AI/Circular-Economy.md create mode 100644 AI/Clean-Architecture-Implementation.md create mode 100644 AI/Clean-Architecture-TypeScript.md create mode 100644 AI/Climate Change Mitigation Frameworks.md create mode 100644 AI/Clinical-Kinesiology-Assessment.md create mode 100644 AI/Code Review.md create mode 100644 AI/Cognitive Biases.md create mode 100644 AI/Cognitive Computing.md create mode 100644 AI/Cognitive Neuroscience of Flow.md create mode 100644 AI/Cognitive Psychology.md create mode 100644 AI/Cognitive Reserve Theory.md create mode 100644 AI/Cognitive Training Software (eg Aim Lab_KovaaKs).md create mode 100644 AI/Cognitive-Evaluation-Theory.md create mode 100644 AI/Cognitive-Therapy-in-CBT.md create mode 100644 AI/Combinatorial Game Theory.md create mode 100644 AI/Combinatorial-Optimization.md create mode 100644 AI/CompCert-C-Compiler.md create mode 100644 AI/Complexity Theory.md create mode 100644 AI/Computational Creativity.md create mode 100644 AI/Computational Neuroscience of Reinforcement Learning.md create mode 100644 AI/Computational-Creativity.md create mode 100644 AI/Computer Vision.md create mode 100644 AI/Computer-Aided-Design (CAD).md create mode 100644 AI/Computer_Vision.md create mode 100644 AI/Concept Drift (개념 드리프트).md create mode 100644 AI/Connect AI 기술 문서 및 사용 설명서.md create mode 100644 AI/Connect AI 시스템 아키텍처 및 데이터 흐름 분석.md create mode 100644 AI/Constitutional AI (헌법 AI).md create mode 100644 AI/Constraint Satisfaction Problems (CSP).md create mode 100644 AI/Constraint-Satisfaction-Problems.md create mode 100644 AI/Continuous-Discovery.md create mode 100644 AI/Control Systems Engineering.md create mode 100644 AI/Control-Theory.md create mode 100644 AI/Conways On Numbers and Games.md create mode 100644 AI/Corgea.md create mode 100644 AI/Corporate-LMS-Training.md create mode 100644 AI/Creativity Research.md create mode 100644 AI/Credit Assignment Problem.md create mode 100644 AI/Custom-ESLint-Rules-Development.md create mode 100644 AI/Customer-Journey-Mapping.md create mode 100644 AI/Cybernetics.md create mode 100644 AI/DPO (Direct Preference Optimization).md create mode 100644 AI/Data Distillation (데이터 증류).md create mode 100644 AI/Data-Augmentation-for-Medical-Imaging.md create mode 100644 AI/Data-Science-in-UX.md create mode 100644 AI/Data-Transfer-Object-Design.md create mode 100644 AI/Dead Space (Series).md create mode 100644 AI/Deceptive Alignment (기만적 정렬).md create mode 100644 AI/Decision Theory.md create mode 100644 AI/Declaration Files (dts).md create mode 100644 AI/Declaration-Files.md create mode 100644 AI/Deep Q-Networks (DQN).md create mode 100644 AI/Deep-Convolutional-GANs.md create mode 100644 AI/DeepCode AI.md create mode 100644 AI/Deepfake-Detection-Research.md create mode 100644 AI/Default Mode Network (DMN).md create mode 100644 AI/DefinitelyTyped.md create mode 100644 AI/Degrees-of-Freedom.md create mode 100644 AI/Deliberate-Practice.md create mode 100644 AI/Denavit-Hartenberg-Parameters.md create mode 100644 AI/Dependency-Graph-Analysis.md create mode 100644 AI/Dependency-Injection.md create mode 100644 AI/Dependency-Inversion-Principle.md create mode 100644 AI/DevOps-and-UX-Convergence.md create mode 100644 AI/DevSecOps.md create mode 100644 AI/Diffusion-Models.md create mode 100644 AI/Digital Intellectual Property Rights.md create mode 100644 AI/Digital Thread Integration.md create mode 100644 AI/Digital-Twin-Technology.md create mode 100644 AI/Diminishing Returns (한계 수익 체감).md create mode 100644 AI/Directed-Acyclic-Graph-Build-Systems.md create mode 100644 AI/Directed-Acyclic-Graph-Dependency-Management.md create mode 100644 AI/Discriminated-Unions-for-Error-Handling.md create mode 100644 AI/Discriminated-Unions-for-State-Modeling.md create mode 100644 AI/Discriminated-Unions.md create mode 100644 AI/Dissipative Structures.md create mode 100644 AI/Distributed-System-Type-Safety.md create mode 100644 AI/Domain Objects.md create mode 100644 AI/Domain-Driven Design (DDD) Type Safety.md create mode 100644 AI/Domain-Driven Design (DDD) in TypeScript.md create mode 100644 AI/Domain-Driven-Design (DDD) in TypeScript.md create mode 100644 AI/Domain-Driven-Design (DDD).md create mode 100644 AI/Domain-Driven-Design-(DDD)-in-TypeScript.md create mode 100644 AI/Domain-Driven-Design-(DDD).md create mode 100644 AI/Domain-Driven-Design-Bounded-Context.md create mode 100644 AI/Domain-Driven-Design-Interface-Modeling.md create mode 100644 AI/Domain-Driven-Design-in-TypeScript.md create mode 100644 AI/Domain-Driven-Design-with-TypeScript.md create mode 100644 AI/Domain-Driven-Design.md create mode 100644 AI/Dopaminergic Reward System.md create mode 100644 AI/Dopaminergic Reward Systems.md create mode 100644 AI/Drama Management Systems.md create mode 100644 AI/Dynamic Difficulty Adjustment (DDA).md create mode 100644 AI/Dynamic Few-Shot (동적 퓨샷 선택 전략).md create mode 100644 AI/E-commerce-Catalog-Management.md create mode 100644 AI/E-commerce-Optimization.md create mode 100644 AI/ESLint-Static-Analysis.md create mode 100644 AI/EU-Web-Accessibility-Directive.md create mode 100644 AI/EVE Online (Spreadsheet Economy).md create mode 100644 AI/Ecology and Ecosystem Modeling.md create mode 100644 AI/Elite-Sport-Science-Protocols.md create mode 100644 AI/Elite-Strength-and-Conditioning.md create mode 100644 AI/Embodied Cognition.md create mode 100644 AI/Emotionally Intelligent Tutoring Systems (EITS).md create mode 100644 AI/Encapsulation-and-Information-Hiding.md create mode 100644 AI/Encapsulation-of-Domain-Invariants.md create mode 100644 AI/Encapsulation-via-Access-Modifiers.md create mode 100644 AI/Endurance-Athletics-Cognition.md create mode 100644 AI/Enterprise-Design-Systems.md create mode 100644 AI/Enterprise-Resource-Planning-Systems.md create mode 100644 AI/Enterprise-Scale-Monorepo-Management.md create mode 100644 AI/Enterprise-Software-Architecture.md create mode 100644 AI/Enterprise-Software-Engineering.md create mode 100644 AI/Europeana.md create mode 100644 AI/Evolutionary Biology.md create mode 100644 AI/Evolutionary Computation.md create mode 100644 AI/Evolutionary-Biology.md create mode 100644 AI/Evolutionary-Computation.md create mode 100644 AI/Excess-Property-Checking.md create mode 100644 AI/Executive Dysfunction.md create mode 100644 AI/Executive-Function-Deficit.md create mode 100644 AI/Exercise-Physiology.md create mode 100644 AI/Exhaustiveness-Checking.md create mode 100644 AI/Expected Utility Theory.md create mode 100644 AI/Expo 2025 Osaka.md create mode 100644 AI/Feature Clamping (피처 고정).md create mode 100644 AI/Feedback-Control-Systems.md create mode 100644 AI/Finite-Element-Analysis.md create mode 100644 AI/Firefox.md create mode 100644 AI/First Input Delay (FID).md create mode 100644 AI/Fixed Time Step vs Variable Time Step.md create mode 100644 AI/Flow State.md create mode 100644 AI/Flow-State.md create mode 100644 AI/Functional-Programming-in-TypeScript.md create mode 100644 AI/GPU.md create mode 100644 AI/GRPO (Group Relative Policy Optimization).md create mode 100644 AI/Gacha Mechanics Analysis.md create mode 100644 AI/Gait-Analysis-Laboratory.md create mode 100644 AI/Gait-Analysis-Methodologies.md create mode 100644 AI/Game Balance Theory.md create mode 100644 AI/Game Economy Modeling.md create mode 100644 AI/Game Engine Architecture (Jason Gregory).md create mode 100644 AI/Game Engine Architecture.md create mode 100644 AI/Game-Design-Ontology.md create mode 100644 AI/Game-Design-Theory.md create mode 100644 AI/Game-Ontology-for-PCG.md create mode 100644 AI/Gamification Theory.md create mode 100644 AI/Generative Adversarial Networks (GANs) in Fine Arts.md create mode 100644 AI/Generative-Adversarial-Networks.md create mode 100644 AI/Generics-and-Polymorphism.md create mode 100644 AI/Geographic-Information-Systems (GIS).md create mode 100644 AI/Geriatric-Medicine.md create mode 100644 AI/GitLab CI.md create mode 100644 AI/Goal Misgeneralization (목표 오일반화).md create mode 100644 AI/Graph-Coloring-Problem.md create mode 100644 AI/Graph-Theory.md create mode 100644 AI/GraphQL-Code-Generator.md create mode 100644 AI/GraphRAG (그래프 기반 검색 증강 생성).md create mode 100644 AI/Grit.md create mode 100644 AI/Growth Mindset Intervention in Education.md create mode 100644 AI/Growth-Mindset.md create mode 100644 AI/Guilty-Gear-Xrd-Rendering-Pipeline.md create mode 100644 AI/HANDOVER.md create mode 100644 AI/HBO Prestige Television.md create mode 100644 AI/HHH (Helpful Harmless Honest).md create mode 100644 AI/Hardware-Verification.md create mode 100644 AI/Health Informatics (mHealth).md create mode 100644 AI/Heap Snapshot(힙 스냅샷).md create mode 100644 AI/Hebbian Theory.md create mode 100644 AI/High-Cohesion-Low-Coupling.md create mode 100644 AI/High-Frequency Trading Models.md create mode 100644 AI/High-Performance Training Programs (Tier 1 Orgs).md create mode 100644 AI/High-Performance-Coaching.md create mode 100644 AI/High-Performance-Sports-Science.md create mode 100644 AI/Homeostasis.md create mode 100644 AI/Human-Computer-Interaction.md create mode 100644 AI/Hyperinflation in Closed-Loop Systems.md create mode 100644 AI/IEEE P36521.md create mode 100644 AI/Immersive Sim Design.md create mode 100644 AI/Immersive Sims (eg Deus Ex Dishonored).md create mode 100644 AI/Immersive Sims (eg Deus Ex Thief).md create mode 100644 AI/Immersive-Sim-Genre.md create mode 100644 AI/Immutability-Patterns.md create mode 100644 AI/In-Context Learning (ICL 문맥 내 학습).md create mode 100644 AI/Incremental-Computation.md create mode 100644 AI/Indoor Wayfinding for Smart Cities.md create mode 100644 AI/Industrial Metaverse.md create mode 100644 AI/Industrial-Automation.md create mode 100644 AI/Injury-Prevention-Protocols.md create mode 100644 AI/InstancedMesh2 library.md create mode 100644 AI/Interaction to Next Paint (INP).md create mode 100644 AI/Interface Segregation Principle.md create mode 100644 AI/Interface-Segregation-Principle-in-TS.md create mode 100644 AI/Interop 2026.md create mode 100644 AI/Interpolation and Extrapolation.md create mode 100644 AI/InversifyJS.md create mode 100644 AI/Irrational Games.md create mode 100644 AI/Itô Calculus.md create mode 100644 AI/J-curve S-curve (AI 발전의 동학).md create mode 100644 AI/JSON-Schema.md create mode 100644 AI/Jailbreaking (탈옥).md create mode 100644 AI/Jenkins.md create mode 100644 AI/KTO (Kahneman-Tversky Optimization).md create mode 100644 AI/Ken Levine-Design-Philosophy.md create mode 100644 AI/Keyof-Operator.md create mode 100644 AI/Kinematic-Modeling.md create mode 100644 AI/Knowledge-Representation-in-AI.md create mode 100644 AI/LLM Alignment (LLM 정렬).md create mode 100644 AI/LLM Hallucination (언어 모델 환각).md create mode 100644 AI/LLM.md create mode 100644 AI/LOD.md create mode 100644 AI/Language-Acquisition-Apps.md create mode 100644 AI/Large-Scale-Enterprise-Frontend-Architectures.md create mode 100644 AI/Large-Scale-Knowledge-Integration.md create mode 100644 AI/Large-scale-Frontend-Architecture.md create mode 100644 AI/Large-scale-TypeScript-Monorepos.md create mode 100644 AI/Largest Contentful Paint (LCP).md create mode 100644 AI/Lerna-Legacy-Management.md create mode 100644 AI/Level Design Architecture.md create mode 100644 AI/Level Design Automation.md create mode 100644 AI/Level of Detail (LOD).md create mode 100644 AI/Level-Design-Automation.md create mode 100644 AI/Linear Representation Hypothesis (선형 표현 가설).md create mode 100644 AI/Live Service Game Design.md create mode 100644 AI/LiveOps Management.md create mode 100644 AI/LoRA (Low-Rank Adaptation).md create mode 100644 AI/Locus of Control.md create mode 100644 AI/Locus-of-Control.md create mode 100644 AI/Long Animation Frames API.md create mode 100644 AI/Long Tasks.md create mode 100644 AI/Ludology-vs-Narratology.md create mode 100644 AI/MDA-P-Framework.md create mode 100644 AI/MMORPG Economic Management.md create mode 100644 AI/Machine Learning in Game Design.md create mode 100644 AI/Machine-Learning-Animation.md create mode 100644 AI/Main Thread.md create mode 100644 AI/Market Regulation.md create mode 100644 AI/Mechanistic Interpretability (기계적 해석 가능성).md create mode 100644 AI/Mesocortical Pathway.md create mode 100644 AI/Metabolic Efficiency.md create mode 100644 AI/Metabolic-Flexibility.md create mode 100644 AI/Metabolic-Resource-Allocation.md create mode 100644 AI/Metro Exodus.md create mode 100644 AI/Microservices-Architecture-Bounded-Contexts.md create mode 100644 AI/Microservices-Architecture-Type-Safety.md create mode 100644 AI/Microservices-Communication-Patterns.md create mode 100644 AI/Mipmap.md create mode 100644 AI/Mobile-App-Development.md create mode 100644 AI/Model Collapse (모델 붕괴 현상).md create mode 100644 AI/Model Context Protocol (MCP).md create mode 100644 AI/Model Predictive Control (MPC).md create mode 100644 AI/Model Spec (모델 스펙 AI 행동 명세서).md create mode 100644 AI/Module Augmentation.md create mode 100644 AI/Module-Augmentation.md create mode 100644 AI/Module-Boundary-Enforcement.md create mode 100644 AI/Monetary Policy in Virtual Worlds.md create mode 100644 AI/Monetary Policy.md create mode 100644 AI/Monosemanticity (일의성).md create mode 100644 AI/Multi-Agent Debate (에이전트 간 토론 전략).md create mode 100644 AI/Multi-Agent System (다중 에이전트 시스템).md create mode 100644 AI/Multi-Hop Reasoning (다중 홉 추론).md create mode 100644 AI/Multimodal Sentiment Analysis.md create mode 100644 AI/Natural Language Processing (NLP) in Narrative.md create mode 100644 AI/Natural-Language-Processing.md create mode 100644 AI/Naughty Dog Development.md create mode 100644 AI/NestJS-Architecture.md create mode 100644 AI/Network Synchronization in Multiplayer Games.md create mode 100644 AI/Neural-Symbolic-Integration.md create mode 100644 AI/Neuro-Symbolic-AI.md create mode 100644 AI/Neurobiology-of-Reward.md create mode 100644 AI/Neurodevelopmental Disorders.md create mode 100644 AI/Neuroeconomics.md create mode 100644 AI/Neuroergonomics.md create mode 100644 AI/Neuromuscular-Adaptation.md create mode 100644 AI/Neuromuscular-Control.md create mode 100644 AI/Neuropharmacology of Substance Use Disorders.md create mode 100644 AI/Neuroplasticity in Addiction.md create mode 100644 AI/Neuroplasticity in Motor Learning.md create mode 100644 AI/Neuroplasticity-in-Motor-Learning.md create mode 100644 AI/Neuroprosthetics-Development.md create mode 100644 AI/Neuropsychiatric Disorders.md create mode 100644 AI/Neuropsychology.md create mode 100644 AI/Neurorehabilitation after Stroke.md create mode 100644 AI/Neurorehabilitation-Post-Stroke.md create mode 100644 AI/No Mans Sky (Large-scale planetary generation).md create mode 100644 AI/No Mans Sky.md create mode 100644 AI/Nodejs 메모리 누수 분석.md create mode 100644 AI/Nodejs 프로덕션 메모리 누수 진단.md create mode 100644 AI/Nodejs 프로덕션 메모리 문제 해결.md create mode 100644 AI/Nodejs 프로덕션 메모리 병목 분석.md create mode 100644 AI/Nodejs-Global-Namespace-Augmentation.md create mode 100644 AI/Nominal-Typing-in-TypeScript.md create mode 100644 AI/Non-Photorealistic-Rendering-in-Level-Design.md create mode 100644 AI/Nuclear Deterrence Models.md create mode 100644 AI/Nutritional-Biochemistry.md create mode 100644 AI/OWA vs CWA (개방 세계 vs 폐쇄 세계 가정).md create mode 100644 AI/Object Pooling (가비지 컬렉션 최적화).md create mode 100644 AI/Object-Oriented-Design-Patterns.md create mode 100644 AI/Objectivism.md create mode 100644 AI/Occupational-Therapy.md create mode 100644 AI/Okami-Ink-Wash-Aesthetics.md create mode 100644 AI/Olympic-Training-Cycles.md create mode 100644 AI/Olympic-Training-Models.md create mode 100644 AI/Olympic-Training-Protocols.md create mode 100644 AI/Ontology-Driven-Relevancy-Filtering.md create mode 100644 AI/Ontology-Engineering.md create mode 100644 AI/Ontology-Guided Knowledge Extraction.md create mode 100644 AI/Opaque-Types.md create mode 100644 AI/Open-Access-Movement.md create mode 100644 AI/Operations-Research.md create mode 100644 AI/Organizational Psychology.md create mode 100644 AI/Outer Alignment vs Inner Alignment.md create mode 100644 AI/PCGML-Frameworks.md create mode 100644 AI/PEFT (Parameter-Efficient Fine-Tuning).md create mode 100644 AI/PRM (Process Reward Model).md create mode 100644 AI/PageSpeed Insights.md create mode 100644 AI/Papers Please (Bureaucratic Simulation).md create mode 100644 AI/Papers-Please.md create mode 100644 AI/Pedestrian-Modeling.md create mode 100644 AI/Perceptual-Motor-Skills.md create mode 100644 AI/Performance Management Systems.md create mode 100644 AI/Performance Psychology.md create mode 100644 AI/Periodization-Theory.md create mode 100644 AI/Personalization-Engines.md create mode 100644 AI/Persuasive Games.md create mode 100644 AI/Phase Transition (위상 변이).md create mode 100644 AI/Phyllotaxis-Modeling.md create mode 100644 AI/Physics-Based-Simulation.md create mode 100644 AI/Platform Economics.md create mode 100644 AI/Play-to-Earn (P2E) Economies.md create mode 100644 AI/Player-Agency.md create mode 100644 AI/PolicyIQ.md create mode 100644 AI/Positive-Education.md create mode 100644 AI/Post-structuralism.md create mode 100644 AI/Precision Medicine Training.md create mode 100644 AI/Predictive Maintenance (PdM).md create mode 100644 AI/Predictive-Modeling.md create mode 100644 AI/Predictive-Urban-Modeling.md create mode 100644 AI/Prefrontal Cortex Dysfunction.md create mode 100644 AI/Prefrontal-Cortex-Dysfunction.md create mode 100644 AI/Probability Theory (Stochastic Processes).md create mode 100644 AI/Probability Theory.md create mode 100644 AI/Procedural Content Generation (PCG) Balancing.md create mode 100644 AI/Procedural Content Generation (PCG).md create mode 100644 AI/Procedural Content Generation via Machine Learning (PCGML).md create mode 100644 AI/Procedural Content Generation.md create mode 100644 AI/Procedural Rhetoric.md create mode 100644 AI/Procedural-Content-Generation (PCG).md create mode 100644 AI/Procedural-Content-Generation-via-Machine-Learning.md create mode 100644 AI/Procedural-Content-Generation.md create mode 100644 AI/Procedural-Texture-Generation.md create mode 100644 AI/Process Supervision (과정 감독).md create mode 100644 AI/Product-Types.md create mode 100644 AI/Prompt Injection (프롬프트 주입 공격).md create mode 100644 AI/Prospect Theory.md create mode 100644 AI/Prosthetic-Design-Optimization.md create mode 100644 AI/Psychophysiology.md create mode 100644 AI/Pull Request (PR) 워크플로우.md create mode 100644 AI/Pull Request (PR).md create mode 100644 AI/Quality Gates.md create mode 100644 AI/Quantitative-Usability-Testing.md create mode 100644 AI/RAG (검색 증강 생성).md create mode 100644 AI/RLAIF (AI 피드백 기반 강화학습).md create mode 100644 AI/RLHF (인간 피드백 기반 강화학습).md create mode 100644 AI/RL_Neuroscience.md create mode 100644 AI/ReAct (Reasoning Acting).md create mode 100644 AI/Real-Time-Game-Engines.md create mode 100644 AI/Redux-Reducers-Design.md create mode 100644 AI/Redux-State-Management.md create mode 100644 AI/Regenerative Design.md create mode 100644 AI/Regenerative-Design.md create mode 100644 AI/Rehabilitative-Medicine.md create mode 100644 AI/Reinforcement Learning (RL).md create mode 100644 AI/Reinforcement Learning for Automated Playtesting.md create mode 100644 AI/Reinforcement Learning in Economics.md create mode 100644 AI/Reinforcement Learning.md create mode 100644 AI/Reinforcement Schedules.md create mode 100644 AI/Resilience Science.md create mode 100644 AI/Resilience-Engineering.md create mode 100644 AI/Retainers(유지 경로).md create mode 100644 AI/Retaining Path.md create mode 100644 AI/Retrograde-Games.md create mode 100644 AI/Reward Hacking (보상 해킹).md create mode 100644 AI/Reward Prediction Error.md create mode 100644 AI/Risk Management in Finance.md create mode 100644 AI/Robotic Manipulation Control.md create mode 100644 AI/Robotic-Prosthetics-Control-Systems.md create mode 100644 AI/Robustness (강건성).md create mode 100644 AI/SAST (Static Application Security Testing).md create mode 100644 AI/SAST (정적 애플리케이션 보안 테스트).md create mode 100644 AI/SAST (정적 애플리케이션 보안 테스팅).md create mode 100644 AI/SAST.md create mode 100644 AI/SDLC (소프트웨어 개발 수명 주기).md create mode 100644 AI/SFT (Supervised Fine-Tuning).md create mode 100644 AI/SHACL (Shapes Constraint Language).md create mode 100644 AI/STEM Laboratory Virtualization.md create mode 100644 AI/Scaffolding (Instructional Technique).md create mode 100644 AI/Scheduling-and-Timetabling.md create mode 100644 AI/Section-508-Compliance.md create mode 100644 AI/Segmentsai.md create mode 100644 AI/Self-Consistency (자기 일관성 디코딩).md create mode 100644 AI/Self-Organized Criticality.md create mode 100644 AI/Self-Play (자기 대결 기반 강화학습).md create mode 100644 AI/Self-Regulation.md create mode 100644 AI/Semantic Grounding Provenance.md create mode 100644 AI/Semgrep Assistant.md create mode 100644 AI/Serious Games.md create mode 100644 AI/Service-Design-Blueprinting.md create mode 100644 AI/Shannon-Entropy.md create mode 100644 AI/SimCity (as a model of systemic interaction).md create mode 100644 AI/Simulated History.md create mode 100644 AI/Simulator Sickness Questionnaire (SSQ).md create mode 100644 AI/Single-Source-of-Truth.md create mode 100644 AI/Singularity (기술적 특이점).md create mode 100644 AI/Skybound Protocol 구조 및 의존성 분석 (Dependency Mapping).md create mode 100644 AI/Skybound Protocol 데이터 및 제어 흐름 (Control Flow).md create mode 100644 AI/Skybound Protocol 코드리뷰.md create mode 100644 AI/Snyk Checkmarx Endor Labs 등 종합 애플리케이션 보안 플랫폼.md create mode 100644 AI/Social Constructivism.md create mode 100644 AI/Social Systems Theory.md create mode 100644 AI/Soft Navigation.md create mode 100644 AI/SonarQube.md create mode 100644 AI/Sparse Autoencoder (SAE).md create mode 100644 AI/Spatial UI.md create mode 100644 AI/Specification Gaming (명세 우회).md create mode 100644 AI/Sports Neuroscience.md create mode 100644 AI/Sports-Medicine-Rehabilitation.md create mode 100644 AI/Sports-Performance-Optimization.md create mode 100644 AI/Sports-Psychology.md create mode 100644 AI/Sports-Science-Training.md create mode 100644 AI/Sprague-Grundy Theorem.md create mode 100644 AI/Static Application Security Testing (SAST).md create mode 100644 AI/Static-Analysis-in-JavaScript-Ecosystem.md create mode 100644 AI/Static-Analysis-in-JavaScript.md create mode 100644 AI/Static-Analysis-in-Software-Engineering.md create mode 100644 AI/Static-Analysis-of-Interfaces.md create mode 100644 AI/Stochastic Processes.md create mode 100644 AI/Stochastic-Games.md create mode 100644 AI/Sum-Types.md create mode 100644 AI/Superposition (중첩).md create mode 100644 AI/Supply-Chain-Management.md create mode 100644 AI/Surreal Numbers.md create mode 100644 AI/Survival Horror Genre.md create mode 100644 AI/Sustainable Development Goals (SDGs).md create mode 100644 AI/Sustainable-Development-Goals (SDGs).md create mode 100644 AI/Sycophancy (LLM 아첨 문제).md create mode 100644 AI/Symbolic-Logic.md create mode 100644 AI/Synaptic Plasticity.md create mode 100644 AI/SynthID (구글 AI 식별 기술).md create mode 100644 AI/Synthetic Data (합성 데이터).md create mode 100644 AI/System Prompt (시스템 프롬프트).md create mode 100644 AI/Systemic-Cohesion.md create mode 100644 AI/Systems Thinking in Management.md create mode 100644 AI/Systems Thinking.md create mode 100644 AI/Taxonomy-and-Ontology.md create mode 100644 AI/Temporal Difference Learning.md create mode 100644 AI/Test-Time Compute Scaling (추론 시간 계산 스케일링).md create mode 100644 AI/Texture-Synthesis.md create mode 100644 AI/The Immersive Sim Taxonomy Debate.md create mode 100644 AI/The Last of Us Series.md create mode 100644 AI/The Overwatch League Case Study.md create mode 100644 AI/The Science of Well-Being (Yale).md create mode 100644 AI/The-Collapse-of-Utopian-Ideologies.md create mode 100644 AI/Themework-Integration.md create mode 100644 AI/Threejs WebGL 렌더링 최적화.md create mode 100644 AI/Threejs WebGPURenderer.md create mode 100644 AI/Threejs 성능 최적화.md create mode 100644 AI/Time Series Analysis.md create mode 100644 AI/Time to Interactive (TTI).md create mode 100644 AI/Tokenomics.md create mode 100644 AI/Topology-of-Strategy-Spaces.md create mode 100644 AI/Trajectory-Planning.md create mode 100644 AI/Transhumanism.md create mode 100644 AI/Transient Hypofrontality.md create mode 100644 AI/Transient-Hypofrontality.md create mode 100644 AI/Transit-Oriented-Development (TOD).md create mode 100644 AI/Tree-of-Thought (ToT 사고 트리).md create mode 100644 AI/Type Definition Files (DefinitelyTyped).md create mode 100644 AI/Type-Composition-via-Intersection-Types.md create mode 100644 AI/Type-Guards.md create mode 100644 AI/Type-Inference.md create mode 100644 AI/Type-Intersection.md create mode 100644 AI/Type-Safety-in-Distributed-Systems.md create mode 100644 AI/Type-Safety-in-Domain-Driven-Design.md create mode 100644 AI/Type-Safety-in-Generics.md create mode 100644 AI/Type-Soundness.md create mode 100644 AI/Type-Theory.md create mode 100644 AI/Type-Unification.md create mode 100644 AI/TypeScript Compiler (tsc).md create mode 100644 AI/TypeScript Declaration Files (dts) Design.md create mode 100644 AI/TypeScript Interface Design.md create mode 100644 AI/TypeScript Type System Design.md create mode 100644 AI/TypeScript-Advanced-Type-System-Design.md create mode 100644 AI/TypeScript-Compiler-API-Integration.md create mode 100644 AI/TypeScript-Domain-Driven-Design.md create mode 100644 AI/TypeScript-Interface-Design.md create mode 100644 AI/TypeScript-Type-System-Architecture.md create mode 100644 AI/TypeScript-Type-System-Design.md create mode 100644 AI/TypeScript-Type-System-Interface-Design.md create mode 100644 AI/TypeScript-Type-System.md create mode 100644 AI/UX-Design-and-Engagement.md create mode 100644 AI/UX-Research-Methodologies.md create mode 100644 AI/Ubiquitous Computing Paradigm.md create mode 100644 AI/Ubiquitous Computing.md create mode 100644 AI/Ubiquitous-Computing.md create mode 100644 AI/Ubiquitous-Language-Encoding.md create mode 100644 AI/Union-Types-vs-Overloading.md create mode 100644 AI/Universal-Design-Principles.md create mode 100644 AI/Urban Resilience Strategies.md create mode 100644 AI/Urban-Planning.md create mode 100644 AI/Utility Theory.md create mode 100644 AI/VIA Institute on Character.md create mode 100644 AI/Value Object Pattern.md create mode 100644 AI/Value-Objects.md create mode 100644 AI/Variational-Autoencoders.md create mode 100644 AI/Visual Positioning Systems (VPS).md create mode 100644 AI/WAI-ARIA-Accessible-Rich-Internet-Applications.md create mode 100644 AI/Wang-Tiles.md create mode 100644 AI/Watermarking (AI 워터마킹).md create mode 100644 AI/Wavefunction-Collapse-Algorithm.md create mode 100644 AI/Web Performance Optimization.md create mode 100644 AI/Web-Content-Accessibility-Guidelines-WCAG.md create mode 100644 AI/WebSplatter (3D Gaussian Splatting).md create mode 100644 AI/Wellbeing-Science.md create mode 100644 AI/Width-Subtyping.md create mode 100644 AI/Wikidata.md create mode 100644 AI/Work-Engagement-Models.md create mode 100644 AI/World of Warcraft (Gold Sink Mechanics).md create mode 100644 AI/_뇌와 팔다리의 분리_ - 관심사의 분리 (Separation of Concerns).md create mode 100644 AI/agargaro의 오픈 소스 라이브러리.md create mode 100644 AI/clinicjs.md create mode 100644 AI/e스포츠 인지 상태 및 성과 위험 평가.md create mode 100644 AI/가상화 (Virtualization).md create mode 100644 AI/강화학습 (Reinforcement Learning).md create mode 100644 AI/공급망 공격 (Supply Chain Attack).md create mode 100644 AI/대규모 React 프론트엔드 최적화.md create mode 100644 AI/도메인 주도 설계 (Domain-Driven Design DDD).md create mode 100644 AI/도파민 보상 체계 (Dopaminergic Reward System).md create mode 100644 AI/디자인 시스템 (Design Systems).md create mode 100644 AI/마이크로서비스 아키텍처 (Microservices Architecture).md create mode 100644 AI/벡터 데이터베이스 (Vector Database).md create mode 100644 AI/보존 경로(Retaining Path).md create mode 100644 AI/보편적 언어 (Ubiquitous Language).md create mode 100644 AI/브라우저 메모리 누수 탐지(Browser Memory Leak Detection).md create mode 100644 AI/비즈니스 도메인 모델링 (Business Domain Modeling).md create mode 100644 AI/빌보드 임포스터(Billboard Impostors).md create mode 100644 AI/상태 관리 최적화 (Zustand Jotai Valtio).md create mode 100644 AI/서플라이 체인 보안 (Supply Chain Security).md create mode 100644 AI/소프트웨어 개발 수명 주기 (SDLC).md create mode 100644 AI/스캐빈저(Scavenger).md create mode 100644 AI/시뮬레이터 멀미 설문지(SSQ).md create mode 100644 AI/시뮬레이터 멀미 설문지(Simulator Sickness Questionnaire).md create mode 100644 AI/애그리거트 (Aggregates).md create mode 100644 AI/양자화 (Quantization).md create mode 100644 AI/에듀테크 기반 게이미피케이션 전략.md create mode 100644 AI/연합 학습 (Associative Learning).md create mode 100644 AI/오사카 엑스포 2025 호쿠사이 인스톨레이션(Hokusai installation).md create mode 100644 AI/온톨로지 (Ontology).md create mode 100644 AI/온톨로지 지식 베이스.md create mode 100644 AI/유비쿼터스 언어 (Ubiquitous Language).md create mode 100644 AI/인간-컴퓨터 상호작용 (HCI).md create mode 100644 AI/인공지능 상호작용 (HAI).md create mode 100644 AI/인적 자원 관리(HRM) 전략 수립.md create mode 100644 AI/인지 행동 치료 (CBT).md create mode 100644 AI/인지행동치료(CBT).md create mode 100644 AI/인터랙티브 스토리텔링 연구.md create mode 100644 AI/정적 애플리케이션 보안 테스트 (SAST).md create mode 100644 AI/정적 애플리케이션 보안 테스트(SAST).md create mode 100644 AI/지식 베이스 (Knowledge Base).md create mode 100644 AI/직렬화(Serialization) 및 병목 현상.md create mode 100644 AI/창발 능력 (Emergent Abilities).md create mode 100644 AI/카산드라(Cassandra).md create mode 100644 AI/코드 리뷰(Code Review).md create mode 100644 AI/풀 리퀘스트 워크플로우.md create mode 100644 AI/풀 리퀘스트(PR) 기반 보안 검토.md create mode 100644 AI/프론트엔드 및 Nodejs 개발 워크플로우.md create mode 100644 AI/하이브리드 코드 리뷰 (Hybrid Code Review).md create mode 100644 AI/하이브리드 코드 리뷰.md create mode 100644 AI/할당 실패(Allocation Failure).md create mode 100644 AI/함수 호출 (Function Calling).md create mode 100644 AI/힙 스냅샷(Heap Snapshot).md create mode 100644 Automation & Industry/3D Web-based HMI.md create mode 100644 Automation/IoT.md create mode 100644 Automation/SCADA.md create mode 100644 Coding/AST_Traversal.md create mode 100644 Coding/CST.md create mode 100644 Coding/Formatting.md create mode 100644 Coding/Parser.md create mode 100644 Communication & Tech/Algorithmic Rhetoric.md create mode 100644 Computational Theory & Math/Graph Theory.md create mode 100644 Computational Theory & Math/Information Theory.md create mode 100644 Computer Science & Math/Algebraic-Data-Types.md create mode 100644 Design & Experience/AODA-Accessibility-for-Ontarians-with-Disabilities-Act.md create mode 100644 Design & Experience/API 응답 및 상태 모델링 (State Modeling and API Responses).md create mode 100644 Design & Experience/AST-Manipulation-Techniques.md create mode 100644 Design & Experience/Abstract-Syntax-Tree-Transformation.md create mode 100644 Design & Experience/Abstract-Syntax-Tree-Traversal.md create mode 100644 Design & Experience/Accessibility (A11y).md create mode 100644 Design & Experience/Accessibility-Compliance-WCAG.md create mode 100644 Design & Experience/Additive-Type-Logic.md create mode 100644 Design & Experience/Affective User Interfaces (AUI).md create mode 100644 Design & Experience/Agency-in-Game-Design.md create mode 100644 Design & Experience/Agent Communication Protocol (에이전트 통신 규약).md create mode 100644 Design & Experience/Agile-UX-Integration.md create mode 100644 Design & Experience/Americans-with-Disabilities-Act-ADA.md create mode 100644 Design & Experience/Apple Human Interface Guidelines.md create mode 100644 Design & Experience/Arkane-Studios.md create mode 100644 Design & Experience/Assignability-Rules.md create mode 100644 Design & Experience/Assistive-Technology-Interoperability.md create mode 100644 Design & Experience/Atomic Design Pattern.md create mode 100644 Design & Experience/Auction-Theory.md create mode 100644 Design & Experience/Augmented Reality (AR) Interfaces.md create mode 100644 Design & Experience/Automated-Client-Generation.md create mode 100644 Design & Experience/Bay 12 Games.md create mode 100644 Design & Experience/Bazel.md create mode 100644 Design & Experience/BioShock (Rapture)] [Dark Souls (Environmental Lore)] [Gone Home (Domestic Narrative Architecture).md create mode 100644 Design & Experience/Borderlands-Art-Direction.md create mode 100644 Design & Experience/Boundary-Layer-Validation.md create mode 100644 Design & Experience/Branded Types in TypeScript.md create mode 100644 Design & Experience/Buck2.md create mode 100644 Design & Experience/Causal Loop Diagramming.md create mode 100644 Design & Experience/Choice Architecture in Digital UX.md create mode 100644 Design & Experience/Chrome User Experience Report (CrUX).md create mode 100644 Design & Experience/Code Formatting.md create mode 100644 Design & Experience/Cognitive Aging Research.md create mode 100644 Design & Experience/Cognitive Dissonance.md create mode 100644 Design & Experience/Cognitive-Flexibility.md create mode 100644 Design & Experience/Cognitive-Psychology.md create mode 100644 Design & Experience/Complexity Science in Economics.md create mode 100644 Design & Experience/Computation-Caching-Strategies.md create mode 100644 Design & Experience/Computational Thinking.md create mode 100644 Design & Experience/Computational-Fluid-Dynamics.md create mode 100644 Design & Experience/Conditional-Types.md create mode 100644 Design & Experience/Content-Strategy.md create mode 100644 Design & Experience/Contract-Driven-Development.md create mode 100644 Design & Experience/Contract-First-Development.md create mode 100644 Design & Experience/Contract-Testing.md create mode 100644 Design & Experience/Contravariance-and-Covariance.md create mode 100644 Design & Experience/Creativity-and-Cognitive-Complexity.md create mode 100644 Design & Experience/Critical Design.md create mode 100644 Design & Experience/Cryptoeconomics.md create mode 100644 Design & Experience/Dark Souls (Environmental Storytelling).md create mode 100644 Design & Experience/Data-Sanitization.md create mode 100644 Design & Experience/Declaration Merging.md create mode 100644 Design & Experience/Declaration-Merging.md create mode 100644 Design & Experience/Depth-Subtyping.md create mode 100644 Design & Experience/Design-Thinking.md create mode 100644 Design & Experience/Design-Tokens.md create mode 100644 Design & Experience/Diegetic UI.md create mode 100644 Design & Experience/Diegetic-Interface.md create mode 100644 Design & Experience/Digital Humanities.md create mode 100644 Design & Experience/Digital Twin Interfaces.md create mode 100644 Design & Experience/Digital-Heritage-Preservation.md create mode 100644 Design & Experience/Digital-Humanities.md create mode 100644 Design & Experience/Digital-Transformation-Strategy.md create mode 100644 Design & Experience/Divergent-Thinking.md create mode 100644 Design & Experience/Duck-Typing.md create mode 100644 Design & Experience/Dwarf Fortress.md create mode 100644 Design & Experience/E-commerce-Conversion-Optimization.md create mode 100644 Design & Experience/ESL Pro Tour.md create mode 100644 Design & Experience/ESLint-Plugin-TypeScript.md create mode 100644 Design & Experience/Edge-Detection-Algorithms.md create mode 100644 Design & Experience/Educational Pedagogy (Zone of Proximal Development).md create mode 100644 Design & Experience/Educational-Psychology.md create mode 100644 Design & Experience/Electromyography.md create mode 100644 Design & Experience/Environmental Storyability.md create mode 100644 Design & Experience/Environmental Storytelling.md create mode 100644 Design & Experience/Environmental-Storytelling.md create mode 100644 Design & Experience/Ergodic Literature.md create mode 100644 Design & Experience/Ergodic-Literature.md create mode 100644 Design & Experience/Executive Function.md create mode 100644 Design & Experience/Exhaustiveness-Checking-with-Never.md create mode 100644 Design & Experience/FSD (Feature-Sliced Design).md create mode 100644 Design & Experience/Fallout (Pip-Boy Mechanic).md create mode 100644 Design & Experience/Feature-Sliced Design.md create mode 100644 Design & Experience/Flow-Sensitive-Typing.md create mode 100644 Design & Experience/Formalism vs Structuralism.md create mode 100644 Design & Experience/Formalist Criticism.md create mode 100644 Design & Experience/Game Studies (Game Studies Journal).md create mode 100644 Design & Experience/Game Systems Design.md create mode 100644 Design & Experience/Game-Level-Design.md create mode 100644 Design & Experience/Game-Studies-Academic-Discourse.md create mode 100644 Design & Experience/Game-Studies-Journal.md create mode 100644 Design & Experience/Gamification in Pedagogy.md create mode 100644 Design & Experience/Gamification-Mechanics.md create mode 100644 Design & Experience/GitHub Actions.md create mode 100644 Design & Experience/Global Augmentation.md create mode 100644 Design & Experience/Grammar-based-Synthesis.md create mode 100644 Design & Experience/HUD-less Design Paradigms.md create mode 100644 Design & Experience/Haptic Feedback Technology.md create mode 100644 Design & Experience/Hierarchical Reinforcement Learning (HRL).md create mode 100644 Design & Experience/High-Performance-Human-Factors.md create mode 100644 Design & Experience/Human-Computer Interaction (HCI).md create mode 100644 Design & Experience/Human-Computer-Interaction (HCI).md create mode 100644 Design & Experience/Human-Machine Interface (HMI) Design.md create mode 100644 Design & Experience/Human-Robot Interaction (HRI).md create mode 100644 Design & Experience/Human-Robot-Interaction.md create mode 100644 Design & Experience/Hypertextuality.md create mode 100644 Design & Experience/ISO 9241 표준.md create mode 100644 Design & Experience/Immersive Analytics.md create mode 100644 Design & Experience/Incremental-Compilation.md create mode 100644 Design & Experience/Information-Architecture.md create mode 100644 Design & Experience/Inquiry-Based Learning.md create mode 100644 Design & Experience/Interface Segregation Principle (ISP).md create mode 100644 Design & Experience/Interface-Extension-vs-Augmentation.md create mode 100644 Design & Experience/Interface-Extension.md create mode 100644 Design & Experience/Interface-Merging.md create mode 100644 Design & Experience/Interface-Segregation-Principle-in-TypeScript.md create mode 100644 Design & Experience/Interface-Segregation-Principle.md create mode 100644 Design & Experience/Interoperability Standards.md create mode 100644 Design & Experience/Intersection-Types-vs-Interface-Extension.md create mode 100644 Design & Experience/Inverse-Kinematics.md create mode 100644 Design & Experience/JSON-Schema-Validation.md create mode 100644 Design & Experience/K-12-EdTech.md create mode 100644 Design & Experience/Kinetics.md create mode 100644 Design & Experience/Knowledge-Graph-Construction.md create mode 100644 Design & Experience/LCS (League of Legends Championship Series).md create mode 100644 Design & Experience/Lean-UX.md create mode 100644 Design & Experience/Level Design Theory.md create mode 100644 Design & Experience/Level-Design-Theory.md create mode 100644 Design & Experience/Linguistics.md create mode 100644 Design & Experience/Linked-Data-Principles.md create mode 100644 Design & Experience/Liskov-Substitution-Principle.md create mode 100644 Design & Experience/Ludo-Narrative-Dissonance.md create mode 100644 Design & Experience/Ludo-narrative Dissonance.md create mode 100644 Design & Experience/Ludonarrative-Dissonance.md create mode 100644 Design & Experience/Mapped-Types.md create mode 100644 Design & Experience/Material Design System.md create mode 100644 Design & Experience/Material Design.md create mode 100644 Design & Experience/Material-Design.md create mode 100644 Design & Experience/Mechanism Design in Auctions.md create mode 100644 Design & Experience/Mechanism Design.md create mode 100644 Design & Experience/Mechanism-Design.md create mode 100644 Design & Experience/Micro-Frontend-Architecture.md create mode 100644 Design & Experience/Mobile-App-Onboarding.md create mode 100644 Design & Experience/Module Resolution Algorithm.md create mode 100644 Design & Experience/Module-Augmentation-Patterns.md create mode 100644 Design & Experience/Module-Resolution-Strategy.md create mode 100644 Design & Experience/Monorepo-Architecture-Design.md create mode 100644 Design & Experience/Monorepo-Architecture.md create mode 100644 Design & Experience/Monorepo-Dependency-Graph-Analysis.md create mode 100644 Design & Experience/Monte Carlo Tree Search (MCTS).md create mode 100644 Design & Experience/Motor-Learning-Theory.md create mode 100644 Design & Experience/Motor-Learning.md create mode 100644 Design & Experience/Narrative Design.md create mode 100644 Design & Experience/Narrative Intelligence.md create mode 100644 Design & Experience/Nash Equilibrium.md create mode 100644 Design & Experience/Nash-Equilibrium.md create mode 100644 Design & Experience/Ninja-Build-System.md create mode 100644 Design & Experience/Nodejs-Backend-Architecture.md create mode 100644 Design & Experience/Nominal Typing.md create mode 100644 Design & Experience/Nominal-Typing-via-Branded-Types.md create mode 100644 Design & Experience/Nominal-Typing-vs-Structural-Typing.md create mode 100644 Design & Experience/Nominal-vs-Structural-Typing.md create mode 100644 Design & Experience/Non-Diegetic UI.md create mode 100644 Design & Experience/Nx-Build-System.md create mode 100644 Design & Experience/Object-Literal-Assignment.md create mode 100644 Design & Experience/Object-Oriented-Interface-Design.md create mode 100644 Design & Experience/Occupational-Ergonomics.md create mode 100644 Design & Experience/OpenAPI-Specification.md create mode 100644 Design & Experience/Optimal-Experience-Research.md create mode 100644 Design & Experience/Organizational Learning Culture.md create mode 100644 Design & Experience/Organizational-Innovation-Management.md create mode 100644 Design & Experience/Orthopedic-Implant-Validation.md create mode 100644 Design & Experience/Player Agency.md create mode 100644 Design & Experience/Player-Autonomy.md create mode 100644 Design & Experience/Political-Philosophy-in-Games.md create mode 100644 Design & Experience/Product-Analytics-Infrastructure.md create mode 100644 Design & Experience/Protocol-Buffers-TypeScript.md create mode 100644 Design & Experience/Public Policy Design.md create mode 100644 Design & Experience/Quantum-Computing-Simulations.md create mode 100644 Design & Experience/Rapier 물리 엔진 스냅샷(Snapshot) 기반 상태 복원.md create mode 100644 Design & Experience/React Native 게임 최적화 (JSI Hermes).md create mode 100644 Design & Experience/React Performance Optimization.md create mode 100644 Design & Experience/React 상태 관리 (React State Management).md create mode 100644 Design & Experience/React 상태 관리 및 API 응답 처리.md create mode 100644 Design & Experience/React 컴포넌트 Props 검증.md create mode 100644 Design & Experience/Redstone Engineering.md create mode 100644 Design & Experience/Redux 등 상태 관리 (State Management).md create mode 100644 Design & Experience/Redux 스타일 리듀서 및 액션 관리.md create mode 100644 Design & Experience/Redux-Reducers.md create mode 100644 Design & Experience/Redux-Toolkit-Architecture.md create mode 100644 Design & Experience/Reinforcement Learning Reward Shaping.md create mode 100644 Design & Experience/Roguelike Subgenre.md create mode 100644 Design & Experience/SeL4-Microkernel.md create mode 100644 Design & Experience/Self-Determination Theory.md create mode 100644 Design & Experience/Self-Determination-Theory.md create mode 100644 Design & Experience/Service-Design.md create mode 100644 Design & Experience/SimCity-Series.md create mode 100644 Design & Experience/Single-Responsibility-Principle.md create mode 100644 Design & Experience/Single-Source-of-Truth-Principle.md create mode 100644 Design & Experience/Smithsonian-Digital-Repository.md create mode 100644 Design & Experience/Snyk Open Source.md create mode 100644 Design & Experience/Social Learning Theory.md create mode 100644 Design & Experience/Socially Assistive Robotics (SAR).md create mode 100644 Design & Experience/Software Architecture API Contract Design.md create mode 100644 Design & Experience/Software-Contract-Enforcement.md create mode 100644 Design & Experience/Software-Product-Management.md create mode 100644 Design & Experience/Spatial Cognition.md create mode 100644 Design & Experience/Spatial Computing.md create mode 100644 Design & Experience/State-Machine-Implementation.md create mode 100644 Design & Experience/Static Type Checking Systems.md create mode 100644 Design & Experience/Static-Program-Analysis.md create mode 100644 Design & Experience/Structural Type System.md create mode 100644 Design & Experience/Structural-Subtyping.md create mode 100644 Design & Experience/Structural-Type-System.md create mode 100644 Design & Experience/Structural-Typing-Analysis.md create mode 100644 Design & Experience/Structural-Typing-Compatibility.md create mode 100644 Design & Experience/Structural-Typing-Mechanics.md create mode 100644 Design & Experience/Structural-Typing-Mechanisms.md create mode 100644 Design & Experience/Structural-Typing-System.md create mode 100644 Design & Experience/Structural-Typing-and-Compatibility.md create mode 100644 Design & Experience/Structural-Typing-vs-Nominal-Typing.md create mode 100644 Design & Experience/Structural-Typing.md create mode 100644 Design & Experience/Structural-vs-Nominal-Typing-in-TS.md create mode 100644 Design & Experience/Structural-vs-Nominal-Typing.md create mode 100644 Design & Experience/Subtyping-Relations.md create mode 100644 Design & Experience/Subtyping-Rules.md create mode 100644 Design & Experience/Subtyping-and-Variance.md create mode 100644 Design & Experience/Systemic Design.md create mode 100644 Design & Experience/Systemic Game Design.md create mode 100644 Design & Experience/Systemic-Design.md create mode 100644 Design & Experience/Systems-Thinking.md create mode 100644 Design & Experience/Template-Literal-Types.md create mode 100644 Design & Experience/The Emergence Theory in Game Design.md create mode 100644 Design & Experience/The Last of Us (Resource Scarcity and Character Bond).md create mode 100644 Design & Experience/Topological-Sorting.md create mode 100644 Design & Experience/Touchpoint-Analysis.md create mode 100644 Design & Experience/Tree Shaking (번들 크기 최적화).md create mode 100644 Design & Experience/Turborepo-Orchestration.md create mode 100644 Design & Experience/Type Alias.md create mode 100644 Design & Experience/Type Branding.md create mode 100644 Design & Experience/Type Declaration.md create mode 100644 Design & Experience/Type-Aware-Linting.md create mode 100644 Design & Experience/Type-Compatibility-Rules.md create mode 100644 Design & Experience/Type-Compatibility-and-Subtyping.md create mode 100644 Design & Experience/Type-Compatibility.md create mode 100644 Design & Experience/Type-Composition-via-Intersections.md create mode 100644 Design & Experience/Type-Driven-Development.md create mode 100644 Design & Experience/Type-Erasure-and-Runtime-Behavior.md create mode 100644 Design & Experience/Type-Guards-and-Narrowing.md create mode 100644 Design & Experience/Type-Narrowing.md create mode 100644 Design & Experience/Type-Safe-API-Design.md create mode 100644 Design & Experience/Type-Safety-and-Exhaustiveness-Checking.md create mode 100644 Design & Experience/Type-Safety.md create mode 100644 Design & Experience/Type-Variance-in-TypeScript.md create mode 100644 Design & Experience/TypeScript Compiler API.md create mode 100644 Design & Experience/TypeScript Type System (Interface Design).md create mode 100644 Design & Experience/TypeScript 라이브러리 타입 확장.md create mode 100644 Design & Experience/TypeScript 인터페이스 및 시스템 보호 아키텍처 설계.md create mode 100644 Design & Experience/TypeScript 컴파일러 캐싱 최적화.md create mode 100644 Design & Experience/TypeScript-Compiler-API-Design.md create mode 100644 Design & Experience/TypeScript-Compiler-API.md create mode 100644 Design & Experience/TypeScript-Compiler-Architecture.md create mode 100644 Design & Experience/TypeScript-Language-Service-API.md create mode 100644 Design & Experience/TypeScript-Project-References.md create mode 100644 Design & Experience/TypeScript의 안전한 인터페이스 설계.md create mode 100644 Design & Experience/TypeScript의 인터페이스 및 객체 타입 설계.md create mode 100644 Design & Experience/UX-Gamification.md create mode 100644 Design & Experience/UX_UI in Interactive Media.md create mode 100644 Design & Experience/Unified-User-Experience.md create mode 100644 Design & Experience/Union-Types.md create mode 100644 Design & Experience/Urban-Morphology.md create mode 100644 Design & Experience/Urban-Planning-Simulations.md create mode 100644 Design & Experience/User Experience (UX) Design.md create mode 100644 Design & Experience/User Experience (UX) in Game Design.md create mode 100644 Design & Experience/User-Experience-Design.md create mode 100644 Design & Experience/Variance (Covariance Contravariance Invariance).md create mode 100644 Design & Experience/Variance-(Covariance-Contravariance-Invariance).md create mode 100644 Design & Experience/Variance-Covariance-Contravariance.md create mode 100644 Design & Experience/Video Game Design.md create mode 100644 Design & Experience/Visual-Hierarchy-in-Game-Design.md create mode 100644 Design & Experience/Von Neumann-Morgenstern Axioms.md create mode 100644 Design & Experience/W3C-Semantic-Web-Standards.md create mode 100644 Design & Experience/Wayfinding-Design.md create mode 100644 Design & Experience/Wicked-Problems.md create mode 100644 Design & Experience/Width-and-Depth-Subtyping.md create mode 100644 Design & Experience/Zod-Runtime-Validation.md create mode 100644 Design & Experience/Zod-Schema-Validation.md create mode 100644 Design & Experience/eSports Performance Psychology.md create mode 100644 Design & Experience/가상 DOM (Virtual DOM).md create mode 100644 Design & Experience/계층형 아키텍처 (Layered Architecture).md create mode 100644 Design & Experience/고성능 실시간 상호작용 시스템을 위한 React 기반 게임 엔진 아키텍처.md create mode 100644 Design & Experience/교육 심리학에서의 보상 설계.md create mode 100644 Design & Experience/교육학의 모델링 전략.md create mode 100644 Design & Experience/뇌과학 기반 중독 재활 프로그램.md create mode 100644 Design & Experience/대규모 프론트엔드 웹 프로젝트 폴더 구조화.md create mode 100644 Design & Experience/데이터 지향 설계 (Data-Oriented Design).md create mode 100644 Design & Experience/도메인 주도 설계 (DDD).md create mode 100644 Design & Experience/도메인 주도 설계(DDD).md create mode 100644 Design & Experience/도파민 보상 체계.md create mode 100644 Design & Experience/라이브러리 타입 선언 (dts) 확장.md create mode 100644 Design & Experience/마이크로 프론트엔드 (Micro Frontends).md create mode 100644 Design & Experience/맞춤형 개별화 학습 설계.md create mode 100644 Design & Experience/모바일 앱 및 웹 인터페이스 설계.md create mode 100644 Design & Experience/몰입감 (Presence).md create mode 100644 Design & Experience/바운디드 컨텍스트 (Bounded Context).md create mode 100644 Design & Experience/반응형 윈도우 리사이즈(Resize) 이벤트 처리.md create mode 100644 Design & Experience/비동기 데이터 패칭 (Async Operations Pattern).md create mode 100644 Design & Experience/사용성 공학 (Usability Engineering).md create mode 100644 Design & Experience/사용자 경험 (UX) 디자인.md create mode 100644 Design & Experience/사용자 경험 (UX).md create mode 100644 Design & Experience/사용자 경험 디자인 (UX Design).md create mode 100644 Design & Experience/사회 인지 이론(Social Cognitive Theory).md create mode 100644 Design & Experience/상태 관리 최적화 (Zustand Valtio).md create mode 100644 Design & Experience/상태 관리(State Management).md create mode 100644 Design & Experience/상태 머신 (State Machine) 모델링 및 Redux 액션_리듀서 설계.md create mode 100644 Design & Experience/상태 모델링 (State Modeling).md create mode 100644 Design & Experience/선언 병합(Declaration Merging).md create mode 100644 Design & Experience/소프트웨어 시스템 설계 및 아키텍처 구축.md create mode 100644 Design & Experience/실시간 데이터 대시보드 레이아웃 조절 시스템.md create mode 100644 Design & Experience/아보(Bobo) 인형 실험.md create mode 100644 Design & Experience/엔티티 (Entities).md create mode 100644 Design & Experience/응용 행동 분석(ABA)] [행동 경제학] [교육 심리학의 행동주의 모델.md create mode 100644 Design & Experience/의존성 규칙 (Dependency Rule).md create mode 100644 Design & Experience/인간 요인 공학 (Human Factors Engineering).md create mode 100644 Design & Experience/인지 부조화 이론.md create mode 100644 Design & Experience/인지 부하 이론(Cognitive Load Theory).md create mode 100644 Design & Experience/인지 심리학 (Cognitive Psychology).md create mode 100644 Design & Experience/인지 평가 이론 (Cognitive Evaluation Theory).md create mode 100644 Design & Experience/인터페이스 (Interface).md create mode 100644 Design & Experience/인터페이스 분리 원칙 (Interface Segregation Principle).md create mode 100644 Design & Experience/자기 효능감 (Self-Efficacy).md create mode 100644 Design & Experience/자기 효능감(Self-Efficacy).md create mode 100644 Design & Experience/자기조절학습(Self-Regulated Learning).md create mode 100644 Design & Experience/재조정 (Reconciliation).md create mode 100644 Design & Experience/조직 시민 행동 (OCB).md create mode 100644 Design & Experience/조직 행동론의 성과급 체계 분석.md create mode 100644 Design & Experience/중독 의학 및 정신 병리학.md create mode 100644 Design & Experience/중독 재활 프로그램.md create mode 100644 Design & Experience/철벽 수비대_ - TypeScript 타입 시스템 (인터페이스 설계).md create mode 100644 Design & Experience/치타 사람 이미지 프롬프트.md create mode 100644 Design & Experience/컴포넌트 기반 웹 프레임워크 아키텍처 설계.md create mode 100644 Design & Experience/클린 아키텍처 (Clean Architecture).md create mode 100644 Design & Experience/클린 아키텍처(Clean Architecture).md create mode 100644 Design & Experience/클린 아키텍처.md create mode 100644 Design & Experience/타입 가드 (Type Guards).md create mode 100644 Design & Experience/타입 별칭 (Type Alias).md create mode 100644 Design & Experience/테스트 용이성 (Testability).md create mode 100644 Design & Experience/프론트엔드 컴포넌트 구조화.md create mode 100644 Design & Experience/프론트엔드 컴포넌트 설계.md create mode 100644 Design & Experience/플레이어 경험 디자인 (Player Experience Design).md create mode 100644 Design & Experience/행동 치료 및 인지 행동 치료 (CBT).md create mode 100644 Design & Experience/현대 웹 애플리케이션 설계.md create mode 100644 Design & Web Performance/Core Web Vitals.md create mode 100644 Design/Accessibility.md create mode 100644 Design/Cognitive_Load.md create mode 100644 Design/CrUX.md create mode 100644 Design/HCI.md create mode 100644 Design/Inclusive_Design.md create mode 100644 Economics & Algorithms/Algorithmic Mechanism Design.md create mode 100644 Economics & Algorithms/Auction Theory.md create mode 100644 Education & AI/Adaptive-Learning-Systems.md create mode 100644 Education/Adaptive_Learning.md create mode 100644 Financial Modeling & Math/Quantitative Finance.md create mode 100644 Frontend & Concurrency/Web Worker (웹 워커).md create mode 100644 Game Design & Math/Algorithmic Game Theory.md create mode 100644 Game Design/ARG-Alternate-Reality-Games.md create mode 100644 Game Design/Agency and Player Autonomy.md create mode 100644 Game Design/Albion Online (Full LootPlayer-Driven Production).md create mode 100644 Game Design/Arkane Studios.md create mode 100644 Game Design/Cyber-Physical Systems (CPS).md create mode 100644 Game Design/Elite-Athletic-Development.md create mode 100644 Game Design/Post-Modernist Literature in Gaming.md create mode 100644 Game Design/Quantum-Game-Theory.md create mode 100644 Game Design/Roguelike Procedural Generation.md create mode 100644 Game Design/Systems Biology.md create mode 100644 Game Design/인문학적 게임 비평 및 서사학.md create mode 100644 General Knowledge/2026-04-15.md create mode 100644 General Knowledge/Blog_Content_Rules.md create mode 100644 General Knowledge/Blog_Title_Rules.md create mode 100644 General Knowledge/Brand-Identity-Management.md create mode 100644 General Knowledge/Code Splitting Lazy Loading.md create mode 100644 General Knowledge/Description-Logics.md create mode 100644 General Knowledge/Dopamine Signaling.md create mode 100644 General Knowledge/Markov-Random-Fields.md create mode 100644 General Knowledge/Metaverse Aesthetics.md create mode 100644 General Knowledge/Model-Free RL vs Model-Based RL.md create mode 100644 General Knowledge/Motion-Capture-Retargeting.md create mode 100644 General Knowledge/Mycological Horror.md create mode 100644 General Knowledge/OffscreenCanvas (멀티스레딩).md create mode 100644 General Knowledge/README.md create mode 100644 General Knowledge/SharedArrayBuffer 보안 이슈와 Cross-Origin Isolation 설정법.md create mode 100644 General Knowledge/Variance-Rules.md create mode 100644 General Knowledge/마크-스위프-컴팩트(Mark-Sweep-Compact).md create mode 100644 General Knowledge/무제.md create mode 100644 General Knowledge/이벤트 포워딩(Event Forwarding).md create mode 100644 General Knowledge/환영합니다.md create mode 100644 Graphics & Performance/3D Gaussian Splatting (3DGS).md create mode 100644 Graphics & Performance/ANGLE (Almost Native Graphics Layer Engine).md create mode 100644 Graphics & Performance/ANGLE.md create mode 100644 Graphics & Performance/Agency-Narrative Integration.md create mode 100644 Graphics & Performance/Alpha Blending.md create mode 100644 Graphics & Performance/Apple-Human-Interface-Guidelines.md create mode 100644 Graphics & Performance/Augmented Reality (AR).md create mode 100644 Graphics & Performance/Augmented Reality Navigation Systems.md create mode 100644 Graphics & Performance/Autonomous Vehicle Perception.md create mode 100644 Graphics & Performance/BIM 모델 렌더링.md create mode 100644 Graphics & Performance/BIM 모델 시뮬레이션.md create mode 100644 Graphics & Performance/BVH.md create mode 100644 Graphics & Performance/Babylonjs.md create mode 100644 Graphics & Performance/BatchedMesh 및 InstancedMesh 성능 벤치마크.md create mode 100644 Graphics & Performance/BatchedMesh.md create mode 100644 Graphics & Performance/Batching.md create mode 100644 Graphics & Performance/Behavioral Economics in Digital Ecosystems.md create mode 100644 Graphics & Performance/Behavioral Economics.md create mode 100644 Graphics & Performance/Bio-mechanical-Modeling.md create mode 100644 Graphics & Performance/Bioregionalism.md create mode 100644 Graphics & Performance/Bounding Volume Hierarchy (BVH).md create mode 100644 Graphics & Performance/Buffer Allocation.md create mode 100644 Graphics & Performance/BufferAttribute.md create mode 100644 Graphics & Performance/BufferGeometry.md create mode 100644 Graphics & Performance/CPU Bottleneck.md create mode 100644 Graphics & Performance/CPU Overhead.md create mode 100644 Graphics & Performance/Cel-Shading-Techniques.md create mode 100644 Graphics & Performance/Cellular Automata.md create mode 100644 Graphics & Performance/Cesium.md create mode 100644 Graphics & Performance/Chrome (Blink_Dawn).md create mode 100644 Graphics & Performance/Chrome WebGPU 구현.md create mode 100644 Graphics & Performance/Chrome _ Blink WebGPU Implementation.md create mode 100644 Graphics & Performance/Chrome.md create mode 100644 Graphics & Performance/Chromium WebGPU Implementation.md create mode 100644 Graphics & Performance/Cognitive Load Theory.md create mode 100644 Graphics & Performance/Cognitive-Load-Theory.md create mode 100644 Graphics & Performance/Collaborative Learning Environments.md create mode 100644 Graphics & Performance/Competitive Esports Ecosystems.md create mode 100644 Graphics & Performance/Complexity-Theory.md create mode 100644 Graphics & Performance/Computational Ecology.md create mode 100644 Graphics & Performance/Computational Geometry.md create mode 100644 Graphics & Performance/Compute Shader.md create mode 100644 Graphics & Performance/Compute Shaders.md create mode 100644 Graphics & Performance/Computer-Vision-Synthesis.md create mode 100644 Graphics & Performance/Creative Process.md create mode 100644 Graphics & Performance/Critical-Play.md create mode 100644 Graphics & Performance/Cultural-Heritage-Informatics.md create mode 100644 Graphics & Performance/CyArk.md create mode 100644 Graphics & Performance/Cybertext Theory.md create mode 100644 Graphics & Performance/DBpedia.md create mode 100644 Graphics & Performance/Data Array Textures.md create mode 100644 Graphics & Performance/Digital Sandbox Theory.md create mode 100644 Graphics & Performance/Digital Twin Visualization.md create mode 100644 Graphics & Performance/Direct3D.md create mode 100644 Graphics & Performance/Drama-Management-Systems.md create mode 100644 Graphics & Performance/Draw Call.md create mode 100644 Graphics & Performance/Dual-Track-Agile.md create mode 100644 Graphics & Performance/Duolingo (Language Learning)] [Fitness Tracking Apps (Strava_Fitbit)] [EdTech Gamification] [FinTech Engagement Strategies.md create mode 100644 Graphics & Performance/Dynamic Assessment.md create mode 100644 Graphics & Performance/Dynamical Systems Theory.md create mode 100644 Graphics & Performance/EXT_disjoint_timer_query.md create mode 100644 Graphics & Performance/Ecosystem-Modeling.md create mode 100644 Graphics & Performance/EdTech (Gamified Learning).md create mode 100644 Graphics & Performance/Educational-Gamification.md create mode 100644 Graphics & Performance/Embodied Cognition in Virtual Reality.md create mode 100644 Graphics & Performance/Employee Engagement Systems.md create mode 100644 Graphics & Performance/Epidemiological Forecasting.md create mode 100644 Graphics & Performance/Epidemiological Modeling.md create mode 100644 Graphics & Performance/Expressjs-Type-Extensions.md create mode 100644 Graphics & Performance/FXAA.md create mode 100644 Graphics & Performance/Fill Rate.md create mode 100644 Graphics & Performance/Flow State Theory.md create mode 100644 Graphics & Performance/Formal-Grammar.md create mode 100644 Graphics & Performance/Formalism-vs-Structuralism.md create mode 100644 Graphics & Performance/Formalist Game Design.md create mode 100644 Graphics & Performance/Fragment Shading.md create mode 100644 Graphics & Performance/Fragment-bound.md create mode 100644 Graphics & Performance/Frustum Culling.md create mode 100644 Graphics & Performance/GPU Resources.md create mode 100644 Graphics & Performance/GPU for the Web Community Group.md create mode 100644 Graphics & Performance/GPU-driven Rendering.md create mode 100644 Graphics & Performance/GPURenderBundles.md create mode 100644 Graphics & Performance/GPU_WebGL 파이프라인의 미세 지연(Micro-latency) 측정 사례.md create mode 100644 Graphics & Performance/Game Studies (Academic Discipline).md create mode 100644 Graphics & Performance/Game Theory (Economics).md create mode 100644 Graphics & Performance/Game Theory and Market Equilibrium.md create mode 100644 Graphics & Performance/Game Theory.md create mode 100644 Graphics & Performance/Gamification-Design.md create mode 100644 Graphics & Performance/Garbage Collection.md create mode 100644 Graphics & Performance/Geometry Merging.md create mode 100644 Graphics & Performance/Graph Theory in Level Design.md create mode 100644 Graphics & Performance/HMD(Head-Mounted Display) 기반 엑서게임 환경.md create mode 100644 Graphics & Performance/HTML5 Canvas.md create mode 100644 Graphics & Performance/High Resolution Time.md create mode 100644 Graphics & Performance/Human-Centered Design.md create mode 100644 Graphics & Performance/Human-Computer-Interaction-HCI.md create mode 100644 Graphics & Performance/IFCjs (Fragment).md create mode 100644 Graphics & Performance/ISO 9241 Standards.md create mode 100644 Graphics & Performance/Immersive Educational Simulations.md create mode 100644 Graphics & Performance/Indirect Draw.md create mode 100644 Graphics & Performance/InstancedMesh (드로우 콜 최적화).md create mode 100644 Graphics & Performance/InstancedMesh2.md create mode 100644 Graphics & Performance/Instancing.md create mode 100644 Graphics & Performance/Instructional Systems Design (ISD).md create mode 100644 Graphics & Performance/Instructional-Design.md create mode 100644 Graphics & Performance/Interactive Storytelling.md create mode 100644 Graphics & Performance/Interactive-Storytelling.md create mode 100644 Graphics & Performance/Internet of Things (IoT) Telemetry.md create mode 100644 Graphics & Performance/Intrinsic Motivation.md create mode 100644 Graphics & Performance/JavaScript.md create mode 100644 Graphics & Performance/Knowledge-Graphs.md create mode 100644 Graphics & Performance/Looking-Glass-Studios.md create mode 100644 Graphics & Performance/Loot Box Regulation (EU_China Compliance).md create mode 100644 Graphics & Performance/Ludology.md create mode 100644 Graphics & Performance/MDA Framework.md create mode 100644 Graphics & Performance/MDA-Framework.md create mode 100644 Graphics & Performance/Markov Decision Process (MDP).md create mode 100644 Graphics & Performance/Markov Decision Processes.md create mode 100644 Graphics & Performance/Mathematical Game Theory.md create mode 100644 Graphics & Performance/Measure Theory.md create mode 100644 Graphics & Performance/Memory Leak Prevention 메모리 누수 방지.md create mode 100644 Graphics & Performance/Memory Leaks.md create mode 100644 Graphics & Performance/Memory Management.md create mode 100644 Graphics & Performance/MeshStandardMaterial 조명 연산.md create mode 100644 Graphics & Performance/Meta Quest_Horizon OS.md create mode 100644 Graphics & Performance/Metal.md create mode 100644 Graphics & Performance/Metaverse Architecture.md create mode 100644 Graphics & Performance/Micro-latency.md create mode 100644 Graphics & Performance/Minecraft.md create mode 100644 Graphics & Performance/Minecraft_ Education Edition.md create mode 100644 Graphics & Performance/Mobile Gaming Monetization Strategies.md create mode 100644 Graphics & Performance/Multi-threaded Architecture.md create mode 100644 Graphics & Performance/NASA-Jet-Propulsion-Laboratory-Software-Standards.md create mode 100644 Graphics & Performance/NVIDIA Omniverse.md create mode 100644 Graphics & Performance/Narrative-Branching-Models.md create mode 100644 Graphics & Performance/Narratology.md create mode 100644 Graphics & Performance/Needle Engine.md create mode 100644 Graphics & Performance/Object Pooling.md create mode 100644 Graphics & Performance/OffscreenCanvas Safari 제약 사항.md create mode 100644 Graphics & Performance/OffscreenCanvas 기반 멀티스레드 렌더링 구현.md create mode 100644 Graphics & Performance/OffscreenCanvas.md create mode 100644 Graphics & Performance/Open Metaverse Framework.md create mode 100644 Graphics & Performance/Open-World Design Paradigms.md create mode 100644 Graphics & Performance/OpenGL ES 20.md create mode 100644 Graphics & Performance/OpenGL ES.md create mode 100644 Graphics & Performance/Opera.md create mode 100644 Graphics & Performance/Operant Conditioning.md create mode 100644 Graphics & Performance/PBR.md create mode 100644 Graphics & Performance/Perlin Noise.md create mode 100644 Graphics & Performance/Physics Engine Integration.md create mode 100644 Graphics & Performance/Positive Psychology.md create mode 100644 Graphics & Performance/Positive-Psychology.md create mode 100644 Graphics & Performance/Post-Acute-Care-Models.md create mode 100644 Graphics & Performance/Post-humanism.md create mode 100644 Graphics & Performance/Probabilistic-Graphical-Models.md create mode 100644 Graphics & Performance/Problem-Solving-Theory.md create mode 100644 Graphics & Performance/Procedural-Animation.md create mode 100644 Graphics & Performance/R3F 3D 게임 환경의 메모리 관리.md create mode 100644 Graphics & Performance/RDF와 OWL.md create mode 100644 Graphics & Performance/Radix Sort.md create mode 100644 Graphics & Performance/Raycaster.md create mode 100644 Graphics & Performance/Raycasting.md create mode 100644 Graphics & Performance/React 19 Compiler의 Threejs 런타임 성능 개선 원리.md create mode 100644 Graphics & Performance/React Three Fiber (R3F).md create mode 100644 Graphics & Performance/React Three Fiber 자산 최적화 (Asset Optimization).md create mode 100644 Graphics & Performance/React Three Fiber에서 Rapier 물리 엔진 최적화하기.md create mode 100644 Graphics & Performance/React 기반 게임 엔진 아키텍처.md create mode 100644 Graphics & Performance/React 동시성 기능 (Concurrent Features).md create mode 100644 Graphics & Performance/Redux-Reducer-Pattern.md create mode 100644 Graphics & Performance/Revit glTF Export.md create mode 100644 Graphics & Performance/Revit 모델 렌더링.md create mode 100644 Graphics & Performance/Robotics-Control-Systems.md create mode 100644 Graphics & Performance/Role-Playing-Games (RPGs).md create mode 100644 Graphics & Performance/Rowhammer attack.md create mode 100644 Graphics & Performance/Rowhammer.md create mode 100644 Graphics & Performance/SLA-Definition.md create mode 100644 Graphics & Performance/SaaS-Retention-Strategies.md create mode 100644 Graphics & Performance/Sandbox-Simulation.md create mode 100644 Graphics & Performance/Search-Based Procedural Content Generation (SBPCG).md create mode 100644 Graphics & Performance/Semantic Versioning (SemVer) in Type Safety.md create mode 100644 Graphics & Performance/Semantic-Web-Technologies.md create mode 100644 Graphics & Performance/Semantic-Web.md create mode 100644 Graphics & Performance/Semiotics in Media.md create mode 100644 Graphics & Performance/Sensor Fusion.md create mode 100644 Graphics & Performance/Service-Dominant-Logic.md create mode 100644 Graphics & Performance/SharedArrayBuffer.md create mode 100644 Graphics & Performance/Simulations of Social Systems.md create mode 100644 Graphics & Performance/Simultaneous Localization and Mapping (SLAM).md create mode 100644 Graphics & Performance/SkinnedMesh.md create mode 100644 Graphics & Performance/Skybound Protocol 기술 메뉴얼 및 개발자 가이드.md create mode 100644 Graphics & Performance/Smart City Digital Twins.md create mode 100644 Graphics & Performance/Smart-City-Frameworks.md create mode 100644 Graphics & Performance/Sorting.md create mode 100644 Graphics & Performance/Spatial Partitioning.md create mode 100644 Graphics & Performance/Special Education Interventions.md create mode 100644 Graphics & Performance/Spectre and Meltdown.md create mode 100644 Graphics & Performance/Speculative Biology.md create mode 100644 Graphics & Performance/Spring Framework.md create mode 100644 Graphics & Performance/Structuralism.md create mode 100644 Graphics & Performance/Surgical-Robotics.md create mode 100644 Graphics & Performance/Systemic-Design-Frameworks.md create mode 100644 Graphics & Performance/Systems Theory.md create mode 100644 Graphics & Performance/TLB design.md create mode 100644 Graphics & Performance/TSL (Three Shader Language).md create mode 100644 Graphics & Performance/Temporal-Logic.md create mode 100644 Graphics & Performance/Texture Compression.md create mode 100644 Graphics & Performance/The Rapture Setting.md create mode 100644 Graphics & Performance/The-Space-Syntax-Laboratory.md create mode 100644 Graphics & Performance/Three Shader Language (TSL).md create mode 100644 Graphics & Performance/Three.js 렌더링 최적화.md create mode 100644 Graphics & Performance/Threejs WebGL Rendering Optimization.md create mode 100644 Graphics & Performance/Threejs WebGPU 파티클 예제.md create mode 100644 Graphics & Performance/Threejs 대규모 렌더링 최적화 파이프라인.md create mode 100644 Graphics & Performance/Threejs 렌더링 성능 최적화.md create mode 100644 Graphics & Performance/Threejs 렌더링 최적화.md create mode 100644 Graphics & Performance/Threejs 모바일 렌더링 최적화.md create mode 100644 Graphics & Performance/Threejs 자원 해제 (Dispose).md create mode 100644 Graphics & Performance/Threejs.md create mode 100644 Graphics & Performance/Timestamp Quantization.md create mode 100644 Graphics & Performance/Timestamp Queries Quantization.md create mode 100644 Graphics & Performance/Timestamp Queries.md create mode 100644 Graphics & Performance/Turtle-Graphics.md create mode 100644 Graphics & Performance/TypedArray.md create mode 100644 Graphics & Performance/USD - Universal Scene Description.md create mode 100644 Graphics & Performance/UV Offset.md create mode 100644 Graphics & Performance/UX Design Gamification.md create mode 100644 Graphics & Performance/UX-Design-Architecture.md create mode 100644 Graphics & Performance/Unity.md create mode 100644 Graphics & Performance/Urban-Resilience-Planning.md create mode 100644 Graphics & Performance/User-Story-Mapping.md create mode 100644 Graphics & Performance/Utsubo.md create mode 100644 Graphics & Performance/VIA-Classification.md create mode 100644 Graphics & Performance/VR 엑서게임 (VR Exergaming).md create mode 100644 Graphics & Performance/Varying Variables.md create mode 100644 Graphics & Performance/Vertex Shader.md create mode 100644 Graphics & Performance/Virtual Reality (VR) Storytelling.md create mode 100644 Graphics & Performance/Voxel-based Rendering.md create mode 100644 Graphics & Performance/Vulkan.md create mode 100644 Graphics & Performance/WEBGL_multi_draw.md create mode 100644 Graphics & Performance/Waves of Connection.md create mode 100644 Graphics & Performance/WebAssembly.md create mode 100644 Graphics & Performance/WebGL 20.md create mode 100644 Graphics & Performance/WebGL API.md create mode 100644 Graphics & Performance/WebGL Optimization.md create mode 100644 Graphics & Performance/WebGL 모바일 GPU 성능 관리.md create mode 100644 Graphics & Performance/WebGL.md create mode 100644 Graphics & Performance/WebGL2.md create mode 100644 Graphics & Performance/WebGLRenderingContext.md create mode 100644 Graphics & Performance/WebGPU Compute Shader.md create mode 100644 Graphics & Performance/WebGPU Compute Shaders.md create mode 100644 Graphics & Performance/WebGPU Performance Profiling.md create mode 100644 Graphics & Performance/WebGPU Timestamp Queries.md create mode 100644 Graphics & Performance/WebGPU _ WebGL Timing API Security.md create mode 100644 Graphics & Performance/WebGPU 대규모 건설 뷰어.md create mode 100644 Graphics & Performance/WebGPU.md create mode 100644 Graphics & Performance/Winning Ways for your Mathematical Plays.md create mode 100644 Graphics & Performance/Wonderland Engine.md create mode 100644 Graphics & Performance/XState-Library.md create mode 100644 Graphics & Performance/instancedArray.md create mode 100644 Graphics & Performance/three-mesh-bvh.md create mode 100644 Graphics & Performance/threejs Issue _30352.md create mode 100644 Graphics & Performance/가상현실(VR).md create mode 100644 Graphics & Performance/고성능 3D WebGL 게임 렌더링 엔진.md create mode 100644 Graphics & Performance/고성능 멀티스레드 React 앱 아키텍처.md create mode 100644 Graphics & Performance/교육 심리학 및 교수법 설계.md create mode 100644 Graphics & Performance/기업 문화 진단 및 개선.md create mode 100644 Graphics & Performance/대규모 3D 건축 모델(BIM) 시각화.md create mode 100644 Graphics & Performance/대규모 건설 뷰어(Construction Viewers).md create mode 100644 Graphics & Performance/대규모 건축물 및 지형 뷰어(BIM).md create mode 100644 Graphics & Performance/대규모 파티클 시스템 최적화.md create mode 100644 Graphics & Performance/마이크로 프론트엔드.md create mode 100644 Graphics & Performance/만성 질환 행동 수정 개입.md create mode 100644 Graphics & Performance/명령형 직접 조작 (Imperative Manipulation).md create mode 100644 Graphics & Performance/모바일 기반 WebGL 애플리케이션 개발.md create mode 100644 Graphics & Performance/브라우저 그래픽 렌더링 백엔드.md create mode 100644 Graphics & Performance/서비스 디자인 (Service Design).md create mode 100644 Graphics & Performance/셰이더 정밀도 (Mediump_Highp).md create mode 100644 Graphics & Performance/스토리지 텍스처(Storage Textures).md create mode 100644 Graphics & Performance/실시간 렌더링 파이프라인.md create mode 100644 Graphics & Performance/실시간 물리 및 유체 시뮬레이션.md create mode 100644 Graphics & Performance/실시간 물리 시뮬레이션 동기화.md create mode 100644 Graphics & Performance/웹 브라우저 그래픽 API 호환성.md create mode 100644 Graphics & Performance/입자 시스템(Particle Systems).md create mode 100644 Graphics & Performance/조직 행동론의 직무 몰입 연구.md create mode 100644 Graphics & Performance/컴퓨트 셰이더(Compute Shaders).md create mode 100644 Graphics & Performance/프래그먼트 바운드(Fragment-bound).md create mode 100644 Graphics & Performance/프래그먼트 셰이딩(Fragment Shading).md create mode 100644 Graphics & Performance/헤드 마운트 디스플레이(HMD).md create mode 100644 Graphics & Performance/헤드마운트 디스플레이 (HMD).md create mode 100644 Graphics/3D_Gaussian_Splatting.md create mode 100644 Graphics/3D_Web_HMI.md create mode 100644 Graphics/Digital_Twin.md create mode 100644 Graphics/Predictive_Maintenance.md create mode 100644 Graphics/VPS_NeRF.md create mode 100644 Health & Science/ACL-Injury-Prevention-Protocols.md create mode 100644 Health & Science/Arthrokinematics.md create mode 100644 Health & Science/Athletic Peak Performance.md create mode 100644 Health & Science/Biomedical-Engineering.md create mode 100644 Health/ACL_Prevention.md create mode 100644 Infrastructure & Automation/Edge Computing.md create mode 100644 Memory & Systems/Allocation Timeline.md create mode 100644 Metaverse & Devices/Apple Vision Pro Ecosystem.md create mode 100644 Metaverse/Architecture.md create mode 100644 Metaverse/Spatial_Computing.md create mode 100644 Physics & Simulation/Aerospace Flight Simulation.md create mode 100644 Programming & Formal Methods/Type Theory.md create mode 100644 Programming & Language/API 응답 및 에러 핸들링 아키텍처.md create mode 100644 Programming & Language/AST (추상 구문 트리).md create mode 100644 Programming & Language/AST(Abstract Syntax Tree).md create mode 100644 Programming & Language/Abstract Syntax Tree (AST).md create mode 100644 Programming & Language/Advanced-Design-Patterns-in-TypeScript.md create mode 100644 Programming & Language/Albion Online (Full Loot_Player-Driven Production).md create mode 100644 Programming & Language/Algebraic-Data-Types-in-TypeScript.md create mode 100644 Programming & Language/Allocation Timeline(할당 타임라인).md create mode 100644 Programming & Language/Ambient Contexts.md create mode 100644 Programming & Language/Ambient Declarations.md create mode 100644 Programming & Language/AppSec (애플리케이션 보안).md create mode 100644 Programming & Language/Assignability-Relation.md create mode 100644 Programming & Language/Athletic-Performance-Optimization.md create mode 100644 Programming & Language/Authorship Attribution.md create mode 100644 Programming & Language/Autotelic Personality.md create mode 100644 Programming & Language/Autotelic-Personality.md create mode 100644 Programming & Language/BM25 알고리즘 (Best Match 25).md create mode 100644 Programming & Language/Beat Saber 엑서게임 연구(Beat Saber Exergaming Study).md create mode 100644 Programming & Language/Beat Saber.md create mode 100644 Programming & Language/Beat Saber를 활용한 VR 엑서게임 후유증 연구(VR Exergaming Aftereffects).md create mode 100644 Programming & Language/Biomechanical-Analysis.md create mode 100644 Programming & Language/Biomechanics.md create mode 100644 Programming & Language/Black-box Testing.md create mode 100644 Programming & Language/Blink.md create mode 100644 Programming & Language/Branch Prediction.md create mode 100644 Programming & Language/Branchless Security Checks.md create mode 100644 Programming & Language/Branded Types.md create mode 100644 Programming & Language/Browser Security Mitigations.md create mode 100644 Programming & Language/CAD 렌더링 최적화.md create mode 100644 Programming & Language/CANTAB 5-선택 반응 시간 과제(CANTAB 5-choice RTI).md create mode 100644 Programming & Language/CI_CD Pipeline.md create mode 100644 Programming & Language/CI_CD 파이프라인 (CI_CD Pipelines).md create mode 100644 Programming & Language/CI_CD 파이프라인 자동화.md create mode 100644 Programming & Language/CI_CD 파이프라인 통합 및 Git 훅(Hooks).md create mode 100644 Programming & Language/CI_CD 파이프라인.md create mode 100644 Programming & Language/CST (구체 구문 트리).md create mode 100644 Programming & Language/Cache Side-Channel Attack.md create mode 100644 Programming & Language/Cache miss rates.md create mode 100644 Programming & Language/Causal Tracing (인과적 추적).md create mode 100644 Programming & Language/Cellular-Automata.md create mode 100644 Programming & Language/Chaos Theory.md create mode 100644 Programming & Language/Chaos-Theory.md create mode 100644 Programming & Language/Cheneys Algorithm.md create mode 100644 Programming & Language/Chrome DevTools Memory Panel.md create mode 100644 Programming & Language/Chrome DevTools(크롬 개발자 도구).md create mode 100644 Programming & Language/Chrome V8 Heap Analysis.md create mode 100644 Programming & Language/Chrome 렌더러 프로세스 V8 샌드박스 보안.md create mode 100644 Programming & Language/Chromium.md create mode 100644 Programming & Language/Clean as You Code.md create mode 100644 Programming & Language/Code Minification.md create mode 100644 Programming & Language/Code Obfuscation.md create mode 100644 Programming & Language/Code Splitting Lazy Loading (코드 분할 및 지연 로딩).md create mode 100644 Programming & Language/Code Stylometry (코드 문체론).md create mode 100644 Programming & Language/Codemod-Engineering.md create mode 100644 Programming & Language/Complex Adaptive Systems.md create mode 100644 Programming & Language/Complex-Adaptive-Systems.md create mode 100644 Programming & Language/Concrete Syntax Tree (CST).md create mode 100644 Programming & Language/Conscientiousness.md create mode 100644 Programming & Language/Continuous Integration (CI).md create mode 100644 Programming & Language/Control-Flow-Analysis.md create mode 100644 Programming & Language/Cosmos 플랫폼 (Netflix).md create mode 100644 Programming & Language/Covariance-and-Contravariance.md create mode 100644 Programming & Language/Cumulative Layout Shift (CLS).md create mode 100644 Programming & Language/Cybertext.md create mode 100644 Programming & Language/Cypher 질의 언어 (Neo4j).md create mode 100644 Programming & Language/DAST (동적 애플리케이션 보안 테스트).md create mode 100644 Programming & Language/DOM 요소 조작 및 타입 좁히기.md create mode 100644 Programming & Language/DOM 요소 조작.md create mode 100644 Programming & Language/DeepReadonly.md create mode 100644 Programming & Language/DefinitelyTyped and Ambient Declarations.md create mode 100644 Programming & Language/Depth Pre-Pass.md create mode 100644 Programming & Language/Description Logic (기술 논리).md create mode 100644 Programming & Language/Deterministic Algorithms.md create mode 100644 Programming & Language/Discriminated Unions.md create mode 100644 Programming & Language/Disentanglement (개념 분리).md create mode 100644 Programming & Language/Draw Call Optimization.md create mode 100644 Programming & Language/Dublin Core Metadata Initiative.md create mode 100644 Programming & Language/Dwarf Fortress (Simulation-heavy PCG).md create mode 100644 Programming & Language/Dwarf-Fortress.md create mode 100644 Programming & Language/ESLint.md create mode 100644 Programming & Language/Early-Z.md create mode 100644 Programming & Language/Edge Bleeding.md create mode 100644 Programming & Language/Effect TS 및 ts-brand 라이브러리 활용.md create mode 100644 Programming & Language/Effect TS.md create mode 100644 Programming & Language/Electron V8 Memory Cage.md create mode 100644 Programming & Language/Electron.md create mode 100644 Programming & Language/Emergent Gameplay Theory.md create mode 100644 Programming & Language/Emergent Gameplay.md create mode 100644 Programming & Language/Emergent Systems.md create mode 100644 Programming & Language/Emergent-Gameplay.md create mode 100644 Programming & Language/Entity Component System (ECS).md create mode 100644 Programming & Language/Epigenetics of Neuroplasticity.md create mode 100644 Programming & Language/Escape Hatch (탈출구).md create mode 100644 Programming & Language/Excess Property Checking.md create mode 100644 Programming & Language/Exergaming.md create mode 100644 Programming & Language/Facade Pattern (퍼사드 패턴).md create mode 100644 Programming & Language/Feature Ablation (피처 제거).md create mode 100644 Programming & Language/Federated SPARQL (연합 질의).md create mode 100644 Programming & Language/Figma.md create mode 100644 Programming & Language/Finite-State-Machines-in-TypeScript.md create mode 100644 Programming & Language/Flame Chart.md create mode 100644 Programming & Language/Flow Theory.md create mode 100644 Programming & Language/Flow-Theory.md create mode 100644 Programming & Language/Fractal-Geometry.md create mode 100644 Programming & Language/Function-Overloading.md create mode 100644 Programming & Language/Function-Signature-Compatibility.md create mode 100644 Programming & Language/Fuzzing.md create mode 100644 Programming & Language/GC Root.md create mode 100644 Programming & Language/GQL (Graph Query Language ISO 표준).md create mode 100644 Programming & Language/Game Studies (Digital Media Theory).md create mode 100644 Programming & Language/Game Studies (Ludology vs Narratology).md create mode 100644 Programming & Language/Game Studies.md create mode 100644 Programming & Language/Garbage Collection (GC) 최적화.md create mode 100644 Programming & Language/Garbage Collection (GC).md create mode 100644 Programming & Language/Garbage Collection(가비지 컬렉션).md create mode 100644 Programming & Language/Generational Hypothesis.md create mode 100644 Programming & Language/Git Hooks.md create mode 100644 Programming & Language/Git Hook을 이용한 CI_CD 자동화 파이프라인.md create mode 100644 Programming & Language/Git Pre-commit 훅을 활용한 개발 워크플로우 자동화.md create mode 100644 Programming & Language/Global Network Positioning (GNP).md create mode 100644 Programming & Language/Google Chrome.md create mode 100644 Programming & Language/Google Code Jam Dataset.md create mode 100644 Programming & Language/Google Lighthouse.md create mode 100644 Programming & Language/Graph-Grammars.md create mode 100644 Programming & Language/Grokking (그로킹 지연 일반화).md create mode 100644 Programming & Language/HNSW 알고리즘 (Hierarchical Navigable Small World).md create mode 100644 Programming & Language/HTC Vive Pro HMD.md create mode 100644 Programming & Language/Heap Snapshot.md create mode 100644 Programming & Language/Husky lint-staged.md create mode 100644 Programming & Language/Husky.md create mode 100644 Programming & Language/IBM 가비지 컬렉션.md create mode 100644 Programming & Language/IFCjs.md create mode 100644 Programming & Language/Immersive Sim Genre.md create mode 100644 Programming & Language/Incremental Marking.md create mode 100644 Programming & Language/Index Masking.md create mode 100644 Programming & Language/Industry 40_Smart Manufacturing.md create mode 100644 Programming & Language/InstancedMesh Performance Bottlenecks.md create mode 100644 Programming & Language/InstancedMesh 동적 버퍼 확장.md create mode 100644 Programming & Language/InstancedMesh 사용 시 드로우 콜 최적화의 한계점 사례 연구.md create mode 100644 Programming & Language/InstancedMesh 최적화.md create mode 100644 Programming & Language/InstancedMesh.md create mode 100644 Programming & Language/Integrated Gradients (통합 그래디언트).md create mode 100644 Programming & Language/Interactive Fiction (IF).md create mode 100644 Programming & Language/Interactive Narrative.md create mode 100644 Programming & Language/Interactive-Fiction-Tradition.md create mode 100644 Programming & Language/Interop 2025.md create mode 100644 Programming & Language/Intrinsic-Motivation.md create mode 100644 Programming & Language/Inventory Management Example.md create mode 100644 Programming & Language/Isovist-Analysis.md create mode 100644 Programming & Language/JPEG XL.md create mode 100644 Programming & Language/Jacobian-Matrix-Analysis.md create mode 100644 Programming & Language/JavaScript 메모리 관리(JavaScript Memory Management).md create mode 100644 Programming & Language/JavaScriptCore.md create mode 100644 Programming & Language/Joern.md create mode 100644 Programming & Language/Kinematics.md create mode 100644 Programming & Language/L-Systems.md create mode 100644 Programming & Language/L-systems in Biology.md create mode 100644 Programming & Language/Labeled Property Graph (LPG 속성 그래프).md create mode 100644 Programming & Language/Latiotech Report.md create mode 100644 Programming & Language/Lighthouse.md create mode 100644 Programming & Language/Linked Open Data (LOD).md create mode 100644 Programming & Language/Live Streaming Monetization.md create mode 100644 Programming & Language/Logit Lens (로짓 렌즈).md create mode 100644 Programming & Language/Long-Term Potentiation (LTP).md create mode 100644 Programming & Language/Looking Glass Studios.md create mode 100644 Programming & Language/Ludology vs Narratology Debate.md create mode 100644 Programming & Language/Ludology vs Narratology.md create mode 100644 Programming & Language/Ludonarrative Dissonance.md create mode 100644 Programming & Language/Ludonarrative Resonance.md create mode 100644 Programming & Language/MMORPG Ecosystems.md create mode 100644 Programming & Language/MVC (Model-View-Controller).md create mode 100644 Programming & Language/Major GC.md create mode 100644 Programming & Language/Mark-Sweep-Compact 알고리즘.md create mode 100644 Programming & Language/Mark-Sweep-Compact(메이저 GC).md create mode 100644 Programming & Language/Mark-Sweep-Compact.md create mode 100644 Programming & Language/Mark-Sweep.md create mode 100644 Programming & Language/Mechanobiology.md create mode 100644 Programming & Language/Meltdown.md create mode 100644 Programming & Language/Memory Leak(메모리 누수).md create mode 100644 Programming & Language/Memory Leak.md create mode 100644 Programming & Language/Mesa-Optimization (메사 최적화).md create mode 100644 Programming & Language/Microsoft Edge DevTools.md create mode 100644 Programming & Language/Model-Checking.md create mode 100644 Programming & Language/Monorepo(Turborepo 등) 환경의 린트 관리.md create mode 100644 Programming & Language/Monorepo.md create mode 100644 Programming & Language/Multi-Agent-Systems.md create mode 100644 Programming & Language/NPM Ecosystem.md create mode 100644 Programming & Language/Netflix 마이크로서비스 전환.md create mode 100644 Programming & Language/Network Coordinate Systems.md create mode 100644 Programming & Language/Network Science.md create mode 100644 Programming & Language/New Media Theory.md create mode 100644 Programming & Language/New Space(Young Generation).md create mode 100644 Programming & Language/New Space.md create mode 100644 Programming & Language/Nodejs Memory Management.md create mode 100644 Programming & Language/Nodejs Memory Tuning.md create mode 100644 Programming & Language/Nodejs Production Monitoring.md create mode 100644 Programming & Language/Nodejs 메모리 최적화.md create mode 100644 Programming & Language/Nodejs 메모리 튜닝.md create mode 100644 Programming & Language/Nodejs 성능 디버깅.md create mode 100644 Programming & Language/Nodejs 성능 최적화 및 디버깅.md create mode 100644 Programming & Language/Nodejs 프로세스 모니터링 및 메모리 분석.md create mode 100644 Programming & Language/Nodejs.md create mode 100644 Programming & Language/Nominal-Subtyping.md create mode 100644 Programming & Language/Nominal-Typing.md create mode 100644 Programming & Language/Non-null Assertion Operator.md create mode 100644 Programming & Language/NotebookLM-Automated-Authentication-CLI.md create mode 100644 Programming & Language/Object Pooling (오브젝트 풀링).md create mode 100644 Programming & Language/Objective Distillation (목표 증류).md create mode 100644 Programming & Language/Occlusion Culling.md create mode 100644 Programming & Language/OffscreenCanvas와 Web Worker를 활용한 메인 스레드 병목 해결.md create mode 100644 Programming & Language/Oilpan.md create mode 100644 Programming & Language/Old Space (구 세대 공간).md create mode 100644 Programming & Language/Old Space(Old Generation).md create mode 100644 Programming & Language/Old Space.md create mode 100644 Programming & Language/Opaque Types.md create mode 100644 Programming & Language/Operations-Management.md create mode 100644 Programming & Language/Organizational Behavior.md create mode 100644 Programming & Language/Organizational-Behavior.md create mode 100644 Programming & Language/Organizational-Psychology.md create mode 100644 Programming & Language/Orinoco GC.md create mode 100644 Programming & Language/Orinoco 가비지 컬렉터.md create mode 100644 Programming & Language/Orinoco 프로젝트.md create mode 100644 Programming & Language/Orinoco(V8 GC 프로젝트).md create mode 100644 Programming & Language/Orinoco.md create mode 100644 Programming & Language/Overdraw.md create mode 100644 Programming & Language/Page Experience Algorithm.md create mode 100644 Programming & Language/PageRank (페이지랭크 알고리즘).md create mode 100644 Programming & Language/Papers Please (Mechanics as Moral Argument).md create mode 100644 Programming & Language/Parse dont validate.md create mode 100644 Programming & Language/Performance Panel.md create mode 100644 Programming & Language/Pointer Compression.md create mode 100644 Programming & Language/Pointer Poisoning.md create mode 100644 Programming & Language/Post-Apocalyptic Fiction.md create mode 100644 Programming & Language/Post-Surgical-Orthopedic-Recovery.md create mode 100644 Programming & Language/Prettier.md create mode 100644 Programming & Language/Procedural-Rhetoric.md create mode 100644 Programming & Language/Proprioception.md create mode 100644 Programming & Language/RDF-star (RDF 확장 사양).md create mode 100644 Programming & Language/RRF (Reciprocal Rank Fusion).md create mode 100644 Programming & Language/Reachability Analysis.md create mode 100644 Programming & Language/React 19 Compiler.md create mode 100644 Programming & Language/React 게임 엔진 아키텍처.md create mode 100644 Programming & Language/React 및 Nextjs 개발 환경.md create mode 100644 Programming & Language/React 재조정 (Reconciliation) 최적화.md create mode 100644 Programming & Language/React 컴포넌트 Props 전달 및 상태 관리.md create mode 100644 Programming & Language/Readonly Type.md create mode 100644 Programming & Language/Readonly 유틸리티 타입.md create mode 100644 Programming & Language/Real User Monitoring (RUM).md create mode 100644 Programming & Language/Render State.md create mode 100644 Programming & Language/Result Type.md create mode 100644 Programming & Language/Reward Shaping (보상 설계).md create mode 100644 Programming & Language/Robotic-Manipulator-Dynamics.md create mode 100644 Programming & Language/Robust-GitHub-Sync-Pipeline.md create mode 100644 Programming & Language/Runtime-Type-Validation.md create mode 100644 Programming & Language/SCA (소프트웨어 구성 분석).md create mode 100644 Programming & Language/SOLID 원칙 (SOLID Principles).md create mode 100644 Programming & Language/SOLID 원칙.md create mode 100644 Programming & Language/SPA 라우트 전환 성능 최적화.md create mode 100644 Programming & Language/SPARQL (RDF 그래프 질의 언어).md create mode 100644 Programming & Language/SaaS-Product-Management.md create mode 100644 Programming & Language/Sandbox Simulations (eg Minecraft Dwarf Fortress).md create mode 100644 Programming & Language/Santa Fe Institute.md create mode 100644 Programming & Language/Satisfiability-Problem-(SAT).md create mode 100644 Programming & Language/Satisfies Operator.md create mode 100644 Programming & Language/Scavenge.md create mode 100644 Programming & Language/Scavenger 알고리즘.md create mode 100644 Programming & Language/Scavenger(Minor GC).md create mode 100644 Programming & Language/Scavenger(마이너 GC).md create mode 100644 Programming & Language/Scheduler API.md create mode 100644 Programming & Language/Schema-Driven-Development.md create mode 100644 Programming & Language/Schemaorg.md create mode 100644 Programming & Language/Sensorimotor-Integration.md create mode 100644 Programming & Language/Server Architecture.md create mode 100644 Programming & Language/SharedArrayBuffer vs postMessage 성능 차이.md create mode 100644 Programming & Language/SharedArrayBuffer 동시성 문제 해결법.md create mode 100644 Programming & Language/SharedArrayBuffer 보안 이슈와 Cross-Origin Isolation.md create mode 100644 Programming & Language/SharedArrayBuffer 보안을 위한 COOP COEP 헤더 설정.md create mode 100644 Programming & Language/SharedArrayBuffer 보안을 위한 Cross-Origin Isolation 서버 헤더 설정.md create mode 100644 Programming & Language/SharedArrayBuffer로 스레드 간 메모리 공유 효율 높이기.md create mode 100644 Programming & Language/SharedArrayBuffer와 Atomics 구체적 활용법.md create mode 100644 Programming & Language/Side-channel Attack.md create mode 100644 Programming & Language/Side-channel attacks.md create mode 100644 Programming & Language/Signal Processing.md create mode 100644 Programming & Language/Simulation Theory.md create mode 100644 Programming & Language/Single Page Applications (SPA).md create mode 100644 Programming & Language/Skybound Protocol 개발자 확장 가이드 및 아키텍처 리뷰.md create mode 100644 Programming & Language/Skybound Protocol 시스템 아키텍처 및 데이터 흐름 분석.md create mode 100644 Programming & Language/Spatial-Syntax.md create mode 100644 Programming & Language/Spectre.md create mode 100644 Programming & Language/Speculative Execution.md create mode 100644 Programming & Language/Static-Type-Inference.md create mode 100644 Programming & Language/Statistical Mechanics.md create mode 100644 Programming & Language/Stop-the-world.md create mode 100644 Programming & Language/Structural Typing.md create mode 100644 Programming & Language/StyleCounsel.md create mode 100644 Programming & Language/Submodules.md create mode 100644 Programming & Language/Synthetic Testing.md create mode 100644 Programming & Language/System Dynamics.md create mode 100644 Programming & Language/Systems Dynamics.md create mode 100644 Programming & Language/TeamCity.md create mode 100644 Programming & Language/Texture Atlas.md create mode 100644 Programming & Language/Throttling Debouncing.md create mode 100644 Programming & Language/Timing Attack.md create mode 100644 Programming & Language/Timing Attacks (Spectre_Meltdown).md create mode 100644 Programming & Language/Timing Attacks.md create mode 100644 Programming & Language/To-Space와 From-Space.md create mode 100644 Programming & Language/Toss Front SDK 기반 외부 연동사 플러그인 개발 생태계 구축.md create mode 100644 Programming & Language/Toss Front SDK의 Facade 패턴 적용 사례.md create mode 100644 Programming & Language/Toss SDK의 퍼사드(Facade) 패턴 설계와 인터페이스 전략.md create mode 100644 Programming & Language/Turborepo 기반 모노레포 워크플로우.md create mode 100644 Programming & Language/Turborepo 환경 구성.md create mode 100644 Programming & Language/Turborepo.md create mode 100644 Programming & Language/Turborepo를 활용한 다중 애플리케이션 및 라이브러리 통합 관리.md create mode 100644 Programming & Language/Type Casting.md create mode 100644 Programming & Language/Type Inference.md create mode 100644 Programming & Language/Type Narrowing.md create mode 100644 Programming & Language/Type Predicates.md create mode 100644 Programming & Language/Type-Assertion.md create mode 100644 Programming & Language/Type-Erasure.md create mode 100644 Programming & Language/Type-Inference-Algorithms.md create mode 100644 Programming & Language/Type-Narrowing-Mechanisms.md create mode 100644 Programming & Language/Type-Narrowing-and-Control-Flow-Analysis.md create mode 100644 Programming & Language/Type-Narrowing-and-Guards.md create mode 100644 Programming & Language/Type-Predicates.md create mode 100644 Programming & Language/Type-safe Error Handling Exhaustiveness Checking.md create mode 100644 Programming & Language/TypeScript 49.md create mode 100644 Programming & Language/TypeScript API Development.md create mode 100644 Programming & Language/TypeScript Advanced Type System.md create mode 100644 Programming & Language/TypeScript Utility Types (Record Readonly).md create mode 100644 Programming & Language/TypeScript 타입 시스템 (TypeScript Type System).md create mode 100644 Programming & Language/TypeScript 타입 시스템 (인터페이스 설계).md create mode 100644 Programming & Language/TypeScript 타입 시스템 및 인터페이스 설계.md create mode 100644 Programming & Language/TypeScript 타입 시스템 아키텍처 및 도메인 기반 설계(DDD).md create mode 100644 Programming & Language/TypeScript 타입 시스템을 활용한 내부 로직 보호 및 데이터 검증.md create mode 100644 Programming & Language/TypeScript-Language-Service.md create mode 100644 Programming & Language/TypeScript의 제어 흐름 분석 및 상태 관리 패턴.md create mode 100644 Programming & Language/UNESCO-Memory-of-the-World.md create mode 100644 Programming & Language/Union Types.md create mode 100644 Programming & Language/Urban Planning Simulation.md create mode 100644 Programming & Language/V8 Engine Heap Management.md create mode 100644 Programming & Language/V8 Engine.md create mode 100644 Programming & Language/V8 Heap Architecture.md create mode 100644 Programming & Language/V8 JavaScript Engine 메모리 관리 및 가비지 컬렉션.md create mode 100644 Programming & Language/V8 JavaScript Engine.md create mode 100644 Programming & Language/V8 JavaScript 엔진.md create mode 100644 Programming & Language/V8 Memory Cage.md create mode 100644 Programming & Language/V8 가비지 컬렉션(Garbage Collection).md create mode 100644 Programming & Language/V8 메모리 케이지(V8 Memory Cage).md create mode 100644 Programming & Language/V8 엔진 (V8 Engine).md create mode 100644 Programming & Language/V8 엔진 메모리 구조.md create mode 100644 Programming & Language/V8 엔진 힙 아키텍처 및 로그 분석.md create mode 100644 Programming & Language/V8 엔진 힙 아키텍처(V8 Engine Heap Architecture).md create mode 100644 Programming & Language/V8 엔진 힙 아키텍처.md create mode 100644 Programming & Language/V8 엔진(V8 Engine).md create mode 100644 Programming & Language/V8 엔진의 메모리 관리 아키텍처 및 Orinoco 프로젝트.md create mode 100644 Programming & Language/V8 자바스크립트 엔진.md create mode 100644 Programming & Language/V8 힙 공간(V8 Heap Spaces).md create mode 100644 Programming & Language/V8 힙(Heap).md create mode 100644 Programming & Language/VR Sickness.md create mode 100644 Programming & Language/VR 멀미 (VR Sickness).md create mode 100644 Programming & Language/VR 멀미(VR sickness).md create mode 100644 Programming & Language/Variable Ratio Reinforcement.md create mode 100644 Programming & Language/Variance-Covariance-and-Contravariance.md create mode 100644 Programming & Language/Variance-in-TypeScript.md create mode 100644 Programming & Language/Vergence-Accommodation Conflicts.md create mode 100644 Programming & Language/Web Worker와 SharedArrayBuffer를 이용한 실제 고부하 병렬 처리 구현체 (실패_성공 포함).md create mode 100644 Programming & Language/Web3 Infrastructure.md create mode 100644 Programming & Language/WebKit Security Mitigations.md create mode 100644 Programming & Language/WebKit.md create mode 100644 Programming & Language/Write Barrier.md create mode 100644 Programming & Language/Zod 런타임 유효성 검사 통합.md create mode 100644 Programming & Language/Zod 파싱과 브랜디드 타입을 결합한 런타임 데이터 검증.md create mode 100644 Programming & Language/Zod.md create mode 100644 Programming & Language/Zod를 활용한 런타임 데이터 파싱.md create mode 100644 Programming & Language/Zustand-Based-Mission-Persistence.md create mode 100644 Programming & Language/as const Assertion.md create mode 100644 Programming & Language/as const.md create mode 100644 Programming & Language/bitECS와 SharedArrayBuffer를 결합한 멀티스레드 고성능 아키텍처.md create mode 100644 Programming & Language/bitECS와 SharedArrayBuffer의 실제 코드 통합.md create mode 100644 Programming & Language/eslint-config-prettier.md create mode 100644 Programming & Language/eslint-plugin-prettier.md create mode 100644 Programming & Language/lint-staged.md create mode 100644 Programming & Language/never 타입(never type).md create mode 100644 Programming & Language/never 타입.md create mode 100644 Programming & Language/readonly 수식어.md create mode 100644 Programming & Language/readonly.md create mode 100644 Programming & Language/satisfies Keyword.md create mode 100644 Programming & Language/satisfies 연산자.md create mode 100644 Programming & Language/ts-brand.md create mode 100644 Programming & Language/ts-pattern.md create mode 100644 Programming & Language/useEffect 클린업(Cleanup).md create mode 100644 Programming & Language/가비지 컬렉션 (Garbage Collection).md create mode 100644 Programming & Language/가비지 컬렉션(Garbage Collection).md create mode 100644 Programming & Language/가비지 컬렉터(Garbage Collector).md create mode 100644 Programming & Language/가상현실 멀미 (VR Sickness).md create mode 100644 Programming & Language/가상현실 멀미(VR Sickness).md create mode 100644 Programming & Language/가상현실 사후 효과 연구(Virtual Reality Aftereffects Study).md create mode 100644 Programming & Language/가상현실 엑서게임 후유증 연구(VR Exergaming Aftereffects Study).md create mode 100644 Programming & Language/가상현실 엑서게임 후유증 연구(Virtual reality exergaming aftereffects research).md create mode 100644 Programming & Language/가상현실 엑서게임(Exergaming) 후유증 연구.md create mode 100644 Programming & Language/가상현실 후유증 (Virtual Reality Aftereffects).md create mode 100644 Programming & Language/가상현실 후유증(VR Aftereffects).md create mode 100644 Programming & Language/가상현실(VR) 엑서게임 인지 사후 효과 분석(CANTAB 5-choice RTI).md create mode 100644 Programming & Language/가상현실(VR) 자전거 시뮬레이터.md create mode 100644 Programming & Language/감각 통합(Sensory integration).md create mode 100644 Programming & Language/강화 계획.md create mode 100644 Programming & Language/강화 학습(Reinforcement Learning) 알고리즘.md create mode 100644 Programming & Language/개발자 경험(DX).md create mode 100644 Programming & Language/객체 지향 소프트웨어 아키텍처 설계.md create mode 100644 Programming & Language/객체 지향 프로그래밍 (OOP).md create mode 100644 Programming & Language/객체 지향 프로그래밍 (Object-Oriented Programming).md create mode 100644 Programming & Language/객체 지향 프로그래밍(OOP).md create mode 100644 Programming & Language/건강 심리학.md create mode 100644 Programming & Language/건강 행동 변화 모델.md create mode 100644 Programming & Language/게임 디자인 이론 및 구조론.md create mode 100644 Programming & Language/게임 디자인의 보상 루프(Reward Loop) 설계.md create mode 100644 Programming & Language/게임 루프 설계.md create mode 100644 Programming & Language/게임 행동 심리학.md create mode 100644 Programming & Language/게임학(Ludology) vs 서사학(Narratology) 논쟁.md create mode 100644 Programming & Language/견고한 도메인 모델 및 API 계약 설계.md create mode 100644 Programming & Language/결정 속도(Decision Speed).md create mode 100644 Programming & Language/결합도 (Coupling).md create mode 100644 Programming & Language/경고 피로 (Alert Fatigue).md create mode 100644 Programming & Language/계층화 아키텍처 (Layered Architecture).md create mode 100644 Programming & Language/고전적 조건 형성.md create mode 100644 Programming & Language/공존 질환 (Comorbidity).md create mode 100644 Programming & Language/과잉 속성 체크 (Excess Property Checking).md create mode 100644 Programming & Language/과잉 속성 체크(EPC).md create mode 100644 Programming & Language/과잉 속성 체크(Excess Property Checking).md create mode 100644 Programming & Language/과잉 정당화 효과 (Overjustification Effect).md create mode 100644 Programming & Language/관심사의 분리 (Separation of Concerns SoC).md create mode 100644 Programming & Language/관심사의 분리 (Separation of Concerns).md create mode 100644 Programming & Language/관심사의 분리 (SoC).md create mode 100644 Programming & Language/관심사의 분리(Separation of Concerns).md create mode 100644 Programming & Language/관심사의 분리(SoC).md create mode 100644 Programming & Language/관점 지향 프로그래밍 (AOP).md create mode 100644 Programming & Language/관점 지향 프로그래밍(AOP).md create mode 100644 Programming & Language/광범위한 신경과학적 연합 기제.md create mode 100644 Programming & Language/교육 심리학에서의 학습 동기 유도.md create mode 100644 Programming & Language/교육 심리학에서의 학습 동기 유발.md create mode 100644 Programming & Language/교집합 타입 (Intersection Types).md create mode 100644 Programming & Language/교집합 타입(Intersection Type).md create mode 100644 Programming & Language/구조적 타이핑 (Structural Typing).md create mode 100644 Programming & Language/구조적 타이핑(Structural Typing).md create mode 100644 Programming & Language/구조적 타이핑.md create mode 100644 Programming & Language/기본 타입에의 집착 (Primitive Obsession).md create mode 100644 Programming & Language/기본 타입에의 집착(Primitive Obsession).md create mode 100644 Programming & Language/깊이 지각 (Depth Perception).md create mode 100644 Programming & Language/깊이 지각(Depth perception).md create mode 100644 Programming & Language/내재적 동기 (Intrinsic Motivation).md create mode 100644 Programming & Language/내재적 동기 vs 외재적 동기.md create mode 100644 Programming & Language/네버 타입 (never type).md create mode 100644 Programming & Language/넷플릭스 (Netflix) 마이크로서비스 도입 사례.md create mode 100644 Programming & Language/넷플릭스 비디오 인코딩 파이프라인 (Netflix Video Encoding Pipeline).md create mode 100644 Programming & Language/넷플릭스 코스모스 플랫폼 (Netflix Cosmos Platform).md create mode 100644 Programming & Language/넷플릭스 코스모스 플랫폼 (Netflix Cosmos).md create mode 100644 Programming & Language/넷플릭스(Netflix)의 마이크로서비스 및 코스모스 플랫폼 전환.md create mode 100644 Programming & Language/넷플릭스의 코스모스 플랫폼 및 마이크로서비스 전환.md create mode 100644 Programming & Language/뇌 가소성 (Neuroplasticity).md create mode 100644 Programming & Language/눈모음-조절 충돌(Vergence-accommodation conflicts).md create mode 100644 Programming & Language/느슨한 결합 (Loose Coupling).md create mode 100644 Programming & Language/단일 책임 원칙 (SRP).md create mode 100644 Programming & Language/단일 책임 원칙 (Single Responsibility Principle).md create mode 100644 Programming & Language/단일 책임 원칙(SRP).md create mode 100644 Programming & Language/대규모 TypeScript 애플리케이션 아키텍처 설계.md create mode 100644 Programming & Language/대규모 TypeScript 프로젝트의 컴파일 성능 최적화.md create mode 100644 Programming & Language/대규모 데이터 렌더링 및 가상화 최적화.md create mode 100644 Programming & Language/대규모 로그 뷰어 및 데이터 테이블 구현.md create mode 100644 Programming & Language/대규모 모노레포(Turborepo) 환경에서의 린트 오케스트레이션.md create mode 100644 Programming & Language/대규모 애플리케이션 개발.md create mode 100644 Programming & Language/대규모 웹 그래픽스 프로젝트.md create mode 100644 Programming & Language/대규모 웹 애플리케이션의 조직 및 기술적 확장성 확보.md create mode 100644 Programming & Language/대규모 인스턴스 렌더링 및 투명도 처리.md create mode 100644 Programming & Language/덕 타이핑 (Duck Typing).md create mode 100644 Programming & Language/덕 타이핑(Duck Typing).md create mode 100644 Programming & Language/데브섹옵스 (DevSecOps) 환경에서의 지속적인 보안 검사.md create mode 100644 Programming & Language/데이터 거버넌스 (Data Governance).md create mode 100644 Programming & Language/도달 가능성 분석 (Reachability Analysis).md create mode 100644 Programming & Language/도메인 기반 설계 (DDD) 및 데이터 오염 방지.md create mode 100644 Programming & Language/도메인 기반 설계 (DDD).md create mode 100644 Programming & Language/도메인 기반 설계(DDD).md create mode 100644 Programming & Language/도메인 기반 설계(DDD)의 데이터 검증.md create mode 100644 Programming & Language/도메인 기반 설계(DDD)의 식별자 분리.md create mode 100644 Programming & Language/동기강화 상담(Motivational Interviewing).md create mode 100644 Programming & Language/동시성 및 점진적 마킹(Concurrent Incremental Marking).md create mode 100644 Programming & Language/동작 속도(Movement Speed).md create mode 100644 Programming & Language/동적 애플리케이션 보안 테스트(DAST).md create mode 100644 Programming & Language/디지털 미학(Digital Aesthetics).md create mode 100644 Programming & Language/라이브러리 및 확장 가능한 코드베이스.md create mode 100644 Programming & Language/런타임 상태 검증(Runtime Validation).md create mode 100644 Programming & Language/루도-내러티브 부조화(Ludonarrative Dissonance).md create mode 100644 Programming & Language/리로디드(Reloaded).md create mode 100644 Programming & Language/리터럴 타입 (Literal Types).md create mode 100644 Programming & Language/린터 (Linter).md create mode 100644 Programming & Language/마이너 가비지 컬렉션(Minor GC).md create mode 100644 Programming & Language/마이크로서비스 아키텍처 (MSA).md create mode 100644 Programming & Language/마이크로서비스 아키텍처.md create mode 100644 Programming & Language/마크-스위프(Mark-Sweep).md create mode 100644 Programming & Language/마크-스윕(Mark-Sweep).md create mode 100644 Programming & Language/마크-컴팩트(Mark-Compact).md create mode 100644 Programming & Language/머리 장착형 디스플레이(HMD) 환경의 시각적 후유증 연구.md create mode 100644 Programming & Language/머리 착용 디스플레이(HMD) 시각 연구.md create mode 100644 Programming & Language/메모리 누수(Memory Leak).md create mode 100644 Programming & Language/메모리 누수(Memory Leaks).md create mode 100644 Programming & Language/메모리 단편화(Fragmentation).md create mode 100644 Programming & Language/메모리 파편화 방지 및 객체 풀링 (Object Pooling).md create mode 100644 Programming & Language/명목적 타이핑 (Nominal Typing).md create mode 100644 Programming & Language/명목적 타이핑(Nominal Typing).md create mode 100644 Programming & Language/모노레포(Monorepo) 기반 구성 중앙화.md create mode 100644 Programming & Language/모노레포(Monorepo) 설정 중앙화.md create mode 100644 Programming & Language/모노레포(Monorepo) 아키텍처 설정.md create mode 100644 Programming & Language/모놀리식 아키텍처 (Monolithic Architecture).md create mode 100644 Programming & Language/모듈러 통합 건설 (MiC).md create mode 100644 Programming & Language/모듈화 및 아키텍처 경계 설정.md create mode 100644 Programming & Language/몰입 (Flow Theory).md create mode 100644 Programming & Language/미디어 폭력과 공격성 연구.md create mode 100644 Programming & Language/반응 시간(Reaction Time).md create mode 100644 Programming & Language/백엔드-프론트엔드 데이터 변환(Data Transformation between Backend and Frontend).md create mode 100644 Programming & Language/번아웃 및 직무 스트레스.md create mode 100644 Programming & Language/범이론적 모델(Transtheoretical Model).md create mode 100644 Programming & Language/보상 예측 오류 (Reward Prediction Error).md create mode 100644 Programming & Language/보조 공학 (Assistive Technology).md create mode 100644 Programming & Language/복잡한 비즈니스 도메인 (금융 헬스케어 이커머스 등).md create mode 100644 Programming & Language/불변성 (Immutability).md create mode 100644 Programming & Language/불변성(Immutability).md create mode 100644 Programming & Language/불필요한 리렌더링 방지.md create mode 100644 Programming & Language/브라우저 DOM 누수 탐지 및 렌더링 최적화.md create mode 100644 Programming & Language/브라우저 메모리 관리 및 최적화.md create mode 100644 Programming & Language/브라우저 메모리 할당 시점별 힙(Heap) 동작 상세 로그.md create mode 100644 Programming & Language/브라우저 및 Nodejs 메모리 튜닝.md create mode 100644 Programming & Language/브랜디드 타입 (Branded Types).md create mode 100644 Programming & Language/브랜디드 타입(Branded Types).md create mode 100644 Programming & Language/브랜디드 타입.md create mode 100644 Programming & Language/비트 세이버 엑서게임 후유증 평가(Beat Saber Exergaming Aftereffects).md create mode 100644 Programming & Language/비트 세이버(Beat Saber) VR 엑서게임 연구.md create mode 100644 Programming & Language/비트 세이버(Beat Saber) 실험.md create mode 100644 Programming & Language/비트 세이버(Beat Saber) 엑서게임 연구.md create mode 100644 Programming & Language/비트 세이버(Beat Saber).md create mode 100644 Programming & Language/비트 세이버를 활용한 가상현실 엑서게임 후유증 연구(Exergaming With Beat Saber_ An Investigation of Virtual Reality Aftereffects).md create mode 100644 Programming & Language/사회 학습 이론.md create mode 100644 Programming & Language/사회학습이론.md create mode 100644 Programming & Language/상태 관리 및 API 응답 모델링(State Management and API Response Modeling).md create mode 100644 Programming & Language/상태 머신(State Machine) 설계.md create mode 100644 Programming & Language/새로운 공간(New Space).md create mode 100644 Programming & Language/생물학적 학습 이론.md create mode 100644 Programming & Language/서드파티 라이브러리 및 API 연동.md create mode 100644 Programming & Language/서버리스 컴퓨팅(Serverless Computing).md create mode 100644 Programming & Language/선언 병합 (Declaration Merging).md create mode 100644 Programming & Language/선언 파일(dts).md create mode 100644 Programming & Language/설정 객체 및 룩업 테이블 설계(Configuration Objects and Lookup Tables).md create mode 100644 Programming & Language/성장 마인드셋 (Growth Mindset).md create mode 100644 Programming & Language/성장 마인드셋(Growth Mindset).md create mode 100644 Programming & Language/세대 가설(Generational Hypothesis).md create mode 100644 Programming & Language/세대별 가설(Generational Hypothesis).md create mode 100644 Programming & Language/소프트웨어 구성 분석(SCA).md create mode 100644 Programming & Language/소프트웨어 아키텍처 베스트 프랙티스.md create mode 100644 Programming & Language/소프트웨어 아키텍처 설계.md create mode 100644 Programming & Language/수동 코드 리뷰 (Manual Code Review).md create mode 100644 Programming & Language/수동 코드 리뷰.md create mode 100644 Programming & Language/수렴-조절 불일치(Vergence-Accommodation Conflict).md create mode 100644 Programming & Language/순차적 게이트 아키텍처.md create mode 100644 Programming & Language/스캐빈저(Scavenger) _ 마이너 GC.md create mode 100644 Programming & Language/스택 트레이스(Stack trace).md create mode 100644 Programming & Language/스트랭글러 피그 패턴(Strangler Fig Pattern).md create mode 100644 Programming & Language/스파게티 코드 (Spaghetti Code).md create mode 100644 Programming & Language/스포티파이 자율적 분대 모델 (Spotify Squad).md create mode 100644 Programming & Language/스포티파이 자율적 분대 모델 및 마이크로 프론트엔드 (Spotify Squads and Micro Frontends).md create mode 100644 Programming & Language/스포티파이 자율적 분대 모델.md create mode 100644 Programming & Language/스포티파이(Spotify)의 스쿼드 모델 및 마이크로 프론트엔드 도입.md create mode 100644 Programming & Language/습관 교정 프로그램.md create mode 100644 Programming & Language/시각 및 인지적 후유증 연구.md create mode 100644 Programming & Language/시각-전정 갈등 (Visual-Vestibular Conflict).md create mode 100644 Programming & Language/시각-전정 감각 충돌(Visual-Vestibular Conflict).md create mode 100644 Programming & Language/시각-전정 충돌(Visual-vestibular conflict).md create mode 100644 Programming & Language/시맨틱 웹 (Semantic Web).md create mode 100644 Programming & Language/시스템 다이내믹스 (System Dynamics).md create mode 100644 Programming & Language/시프트 레프트 (Shift-Left).md create mode 100644 Programming & Language/시프트 레프트(Shift-Left).md create mode 100644 Programming & Language/식별 가능한 유니온 (Discriminated Unions).md create mode 100644 Programming & Language/식별 가능한 유니온(Discriminated Unions).md create mode 100644 Programming & Language/식별 가능한 유니온.md create mode 100644 Programming & Language/신경 가소성 (Neuroplasticity).md create mode 100644 Programming & Language/실재감(Presence).md create mode 100644 Programming & Language/심리적 계약 (Psychological Contract).md create mode 100644 Programming & Language/심리적 안전감 (Psychological Safety).md create mode 100644 Programming & Language/쓰기 장벽(Write Barrier).md create mode 100644 Programming & Language/안구 운동 기능 (Oculomotor Functions).md create mode 100644 Programming & Language/안구 운동 기능(Oculomotor functions).md create mode 100644 Programming & Language/안구 운동 증상(Oculomotor Symptoms).md create mode 100644 Programming & Language/안전한 TypeScript 데이터 모델링 및 설정 관리 구축.md create mode 100644 Programming & Language/안전한 소프트웨어 개발 수명주기(SSDLC).md create mode 100644 Programming & Language/알 수 없는 외부 데이터 검증 (unknown types).md create mode 100644 Programming & Language/애자일 방법론 (Agile Methodology).md create mode 100644 Programming & Language/약한 타입 검사(Weak Type Detection).md create mode 100644 Programming & Language/약한 타입 탐지 (Weak Type Detection).md create mode 100644 Programming & Language/양가감정(Ambivalence).md create mode 100644 Programming & Language/에르고딕 문학(Ergodic Literature).md create mode 100644 Programming & Language/에일리어싱 (Aliasing).md create mode 100644 Programming & Language/엑서게임(Exergaming).md create mode 100644 Programming & Language/엔터프라이즈 소프트웨어 개발.md create mode 100644 Programming & Language/엔터프라이즈 소프트웨어 시스템 설계.md create mode 100644 Programming & Language/엔터프라이즈 애플리케이션 및 점진적 리팩토링.md create mode 100644 Programming & Language/엔터프라이즈 애플리케이션 설계.md create mode 100644 Programming & Language/오래된 공간(Old Space).md create mode 100644 Programming & Language/오리노코(Orinoco GC).md create mode 100644 Programming & Language/오리노코(Orinoco) 프로젝트.md create mode 100644 Programming & Language/오버드로우(Overdraw).md create mode 100644 Programming & Language/오탐 (False Positive).md create mode 100644 Programming & Language/오픈소스 컴포넌트 (Open Source Components).md create mode 100644 Programming & Language/완전성 검사 (Exhaustiveness Checking).md create mode 100644 Programming & Language/완전성 검사(Exhaustiveness Checking).md create mode 100644 Programming & Language/외부 API 데이터 및 설정 파일 처리.md create mode 100644 Programming & Language/외부 API 데이터의 런타임 검증 후 처리.md create mode 100644 Programming & Language/외부 라이브러리 API 설계.md create mode 100644 Programming & Language/웹 애플리케이션의 3계층 구조.md create mode 100644 Programming & Language/웹 워커 이벤트 포워딩 Event Forwarding.md create mode 100644 Programming & Language/웹 워커 이벤트 포워딩 통신 지연 최소화 방법.md create mode 100644 Programming & Language/웹 프론트엔드 성능 최적화.md create mode 100644 Programming & Language/유기적 통합 이론 (Organismic Integration Theory).md create mode 100644 Programming & Language/유능감 및 자율성 욕구.md create mode 100644 Programming & Language/유니언 타입 식별 및 상태 분기 처리.md create mode 100644 Programming & Language/유니온 타입 (Union Types).md create mode 100644 Programming & Language/유니온 타입(Union Types).md create mode 100644 Programming & Language/유스케이스 (Use Cases).md create mode 100644 Programming & Language/응집도 (Cohesion).md create mode 100644 Programming & Language/응집도와 결합도 (Cohesion and Coupling).md create mode 100644 Programming & Language/응집도와 결합도.md create mode 100644 Programming & Language/의사결정 속도(Decision Speed).md create mode 100644 Programming & Language/의존성 역전 (Dependency Inversion).md create mode 100644 Programming & Language/의존성 역전 원칙 (DIP).md create mode 100644 Programming & Language/의존성 역전 원칙 (Dependency Inversion Principle DIP).md create mode 100644 Programming & Language/의존성 역전 원칙 (Dependency Inversion Principle).md create mode 100644 Programming & Language/의존성 주입 (DI).md create mode 100644 Programming & Language/의존성 주입 (Dependency Injection).md create mode 100644 Programming & Language/의존성 주입(DI).md create mode 100644 Programming & Language/이동 속도(Movement Speed).md create mode 100644 Programming & Language/이벤트 기반 아키텍처 (Event-Driven Architecture).md create mode 100644 Programming & Language/이전 세대(Old Generation_Space).md create mode 100644 Programming & Language/이커머스의 실시간 재고 관리.md create mode 100644 Programming & Language/인문학적 게임 비평 및 서사학12.md create mode 100644 Programming & Language/임베딩 (Embedding).md create mode 100644 Programming & Language/임상 심리학의 변화 동기 치료.md create mode 100644 Programming & Language/자기결정성 이론 (SDT).md create mode 100644 Programming & Language/자기결정성 이론 (Self-Determination Theory).md create mode 100644 Programming & Language/자동화된 코드 리뷰.md create mode 100644 Programming & Language/자바 가상 머신(JVM).md create mode 100644 Programming & Language/자율성 지지 (Autonomy Support).md create mode 100644 Programming & Language/자폐 스펙트럼 장애(ASD) 중재.md create mode 100644 Programming & Language/장기 실행되는 실시간 데이터 대시보드 최적화.md create mode 100644 Programming & Language/재귀적 불변성 (DeepReadonly).md create mode 100644 Programming & Language/전두엽 기능 저하 (Hypofrontality).md create mode 100644 Programming & Language/절차적 수사학(Procedural Rhetoric).md create mode 100644 Programming & Language/점진적 마킹(Incremental marking).md create mode 100644 Programming & Language/정서적 고전적 조건 형성 (Emotional Classical Conditioning).md create mode 100644 Programming & Language/정신 의학적 진단 체계 (DSM-5_ICD-11).md create mode 100644 Programming & Language/정적 분석(Static Analysis).md create mode 100644 Programming & Language/제어 흐름 분석 (Control Flow Analysis).md create mode 100644 Programming & Language/조작적 조건 형성 (Operant Conditioning).md create mode 100644 Programming & Language/조작적 조건 형성.md create mode 100644 Programming & Language/조작적 조건형성.md create mode 100644 Programming & Language/조절-폭주 불일치 (Vergence-Accommodation Conflict).md create mode 100644 Programming & Language/조절-폭주 불일치(Vergence-Accommodation Conflict).md create mode 100644 Programming & Language/조직 개발(OD) 프로그램 설계.md create mode 100644 Programming & Language/조직 행동 관리(OBM).md create mode 100644 Programming & Language/조직 행동론 및 직무 만족도 연구.md create mode 100644 Programming & Language/중뇌-변연계 경로 (Mesolimbic Pathway).md create mode 100644 Programming & Language/지식 그래프 (Knowledge Graph).md create mode 100644 Programming & Language/직무 특성 모델 (Job Characteristics Model).md create mode 100644 Programming & Language/집합론 (Set Theory).md create mode 100644 Programming & Language/집합론(Set Theory).md create mode 100644 Programming & Language/철벽 수비대 인터페이스 설계 전략.md create mode 100644 Programming & Language/철벽 수비대_ TypeScript 타입 시스템과 견고한 인터페이스 설계의 정수.md create mode 100644 Programming & Language/초과 속성 검사 (Excess Property Checking).md create mode 100644 Programming & Language/초과 속성 검사 (Excess Property Checks).md create mode 100644 Programming & Language/추론 엔진 (Semantic Reasoner).md create mode 100644 Programming & Language/추상 구문 트리(AST).md create mode 100644 Programming & Language/추상화(Abstraction).md create mode 100644 Programming & Language/추상화.md create mode 100644 Programming & Language/카오스 몽키(Chaos Monkey).md create mode 100644 Programming & Language/커뮤니티 탐지 (Community Detection).md create mode 100644 Programming & Language/코드 리뷰 (Code Review).md create mode 100644 Programming & Language/코드 서식 지정과 축소가 코드 스타일로메트리(작성자 인식)에 미치는 영향을 평가하는 기계 학습 모델 분류 연구.md create mode 100644 Programming & Language/코드 스타일로메트리 (Code Stylometry).md create mode 100644 Programming & Language/코드 축소 (Code minification).md create mode 100644 Programming & Language/코드 포매팅 (Code formatting).md create mode 100644 Programming & Language/코드 품질 관리 및 자동화 (Code Quality Management and Automation).md create mode 100644 Programming & Language/코스모스(Cosmos).md create mode 100644 Programming & Language/클로저(Closures).md create mode 100644 Programming & Language/타임라인 할당 계측(Allocation instrumentation on timeline).md create mode 100644 Programming & Language/타입 가드 (Type Predicates).md create mode 100644 Programming & Language/타입 가드(Type Guards).md create mode 100644 Programming & Language/타입 단언 (Type Assertions).md create mode 100644 Programming & Language/타입 단언(Type Assertion).md create mode 100644 Programming & Language/타입 단언(Type Assertions).md create mode 100644 Programming & Language/타입 서술어 (Type Predicates).md create mode 100644 Programming & Language/타입 서술어(Type Predicates).md create mode 100644 Programming & Language/타입 안전성 (Type Safety).md create mode 100644 Programming & Language/타입 정의가 부족한 서드파티 라이브러리 연동.md create mode 100644 Programming & Language/타입 조건자(Type Predicates).md create mode 100644 Programming & Language/타입 좁히기 (Type Narrowing).md create mode 100644 Programming & Language/타입 좁히기(Type Narrowing).md create mode 100644 Programming & Language/타입 캐스팅 (Type Casting).md create mode 100644 Programming & Language/타입스크립트 상태 관리 및 분기 처리 설계.md create mode 100644 Programming & Language/타파스(Tapas).md create mode 100644 Programming & Language/토스(Toss) Front SDK 퍼사드 패턴 적용.md create mode 100644 Programming & Language/토스(Toss) SDK 설계.md create mode 100644 Programming & Language/토스플레이스 결제 단말기 외부 연동 SDK 개발.md create mode 100644 Programming & Language/팀 단위 코드 품질 및 컨벤션 유지.md create mode 100644 Programming & Language/포인터 압축(Pointer Compression).md create mode 100644 Programming & Language/폭주-조절 갈등 (Vergence-Accommodation Conflict).md create mode 100644 Programming & Language/폭주-조절 불일치(Vergence-Accommodation Conflicts).md create mode 100644 Programming & Language/폭주-조절 불일치(Vergence-accommodation conflict).md create mode 100644 Programming & Language/폭주-조절 충돌(Vergence-accommodation conflict).md create mode 100644 Programming & Language/프론트엔드 및 모노레포(Monorepo) 개발 환경 설정.md create mode 100644 Programming & Language/핀테크의 실시간 사기 탐지.md create mode 100644 Programming & Language/하이브리드 검색 (Hybrid Search).md create mode 100644 Programming & Language/할당 타임라인(Allocation Timeline).md create mode 100644 Programming & Language/행동 경제학의 인센티브 구조 설계.md create mode 100644 Programming & Language/행동 경제학의 학습 이론.md create mode 100644 Programming & Language/행동 수정 기법.md create mode 100644 Programming & Language/행동주의 심리학 (Behaviorism).md create mode 100644 Programming & Language/행동주의 심리학.md create mode 100644 Programming & Language/헬스케어의 민감 데이터(PII_PCI) 보안 규제 준수.md create mode 100644 Programming & Language/회복탄력성 (Resilience).md create mode 100644 Programming & Language/힙 메모리(Heap Memory).md create mode 100644 Programming & Language/힙 스냅샷 (Heap Snapshots).md create mode 100644 Programming & Memory/ArrayBuffer.md create mode 100644 Programming & Tools/AST-based-Static-Analysis.md create mode 100644 Programming & Web/ASPNET Core.md create mode 100644 Psychology & Behavior/ABA(Applied Behavior Analysis).md create mode 100644 Psychology & Behavior/Addiction Neuroscience.md create mode 100644 Psychology & Behavior/Agent-Based Modeling.md create mode 100644 Psychology & Behavior/Agent-Based-Modeling.md create mode 100644 Psychology & Behavior/Amygdala Hyperactivity.md create mode 100644 Psychology & Behavior/보상의 역효과 (Overjustification Effect).md create mode 100644 Psychology & Education/Functional Behavior Analysis (FBA).md create mode 100644 Psychology/ABA.md create mode 100644 Psychology/Addiction_Neuroscience.md create mode 100644 Psychology/Behavioral_Economics.md create mode 100644 Psychology/Dopamine.md create mode 100644 Psychology/Neuroplasticity.md create mode 100644 Psychology/Nudge_Theory.md create mode 100644 Psychology/Operant_Conditioning.md create mode 100644 Security & AI/Adversarial Attack (적대적 공격).md create mode 100644 Security & Reliability/OWASP Top 10.md create mode 100644 Security/Formal-Methods-in-Software-Engineering.md create mode 100644 Simulation & Math/Agent-Based Modeling (ABM).md create mode 100644 Sociology & Tech/Algorithmic Governance.md create mode 100644 Sociology & Tech/Algorithmic-Governance.md create mode 100644 Software Architecture/API-Contract-Definition.md create mode 100644 Software Architecture/API-First Architecture.md create mode 100644 Software Architecture/API-First-Design.md create mode 100644 Software Architecture/AlphaGo (Monte Carlo Tree Search RL)] [Autonomous Driving Simulation] [Robotic Manipulation.md create mode 100644 Software Architecture/Architectural-Constraint-Enforcement.md create mode 100644 Software Architecture/Deterministic Lockstep Architecture.md create mode 100644 Software Architecture/Domain-Driven Design (DDD).md create mode 100644 Software Architecture/Hello Games Development Lifecycle.md create mode 100644 Software Architecture/Microservices-Architecture.md create mode 100644 Software Architecture/Nudge Theory.md create mode 100644 Software Architecture/Sports Management Theory.md create mode 100644 Software Architecture/Throttling Debouncing (스로틀링과 디바운싱).md create mode 100644 Software Reliability/Amazon-AWS-Formal-Verification.md create mode 100644 System Architecture & Reliability/Distributed-Systems-Engineering.md create mode 100644 System Architecture & Simulation/Digital Twins.md create mode 100644 System Design & Modeling/Event Storming.md create mode 100644 Systemic Modeling & Fun/Game Design Theory.md create mode 100644 Web & Performance/Analyze runtime performance.md diff --git a/AI & Biology/Artificial Life (ALife).md b/AI & Biology/Artificial Life (ALife).md new file mode 100644 index 00000000..ea68a000 --- /dev/null +++ b/AI & Biology/Artificial Life (ALife).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-7C3E9E +category: "[[10_Wiki/💡 Topics/AI & Biology]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Mega Batch 2 - Wikified Artificial Life (ALife)" +--- + +# [[Artificial Life (ALife)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 작업 중 + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중 + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 지식 자산화 및 기존 네트워크 연동 단계. +- **정책 변화:** AI & Biology 카테고리의 전문성 확보 및 링크 밀도 최적화. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Artificial Life (ALife).md]] +--- diff --git a/AI & Ethics/Algorithmic Bias in Art.md b/AI & Ethics/Algorithmic Bias in Art.md new file mode 100644 index 00000000..d45c0b7d --- /dev/null +++ b/AI & Ethics/Algorithmic Bias in Art.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-DEC2D9 +category: "[[10_Wiki/💡 Topics/AI & Ethics]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Batch 11 - Wikified Algorithmic Bias in Art" +--- + +# [[Algorithmic Bias in Art]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 작업 중 + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중 + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 신규 지식 카테고리화 및 연결성 강화. +- **정책 변화:** AI & Ethics 분야의 지식 자산 보호 및 네트워크 확장. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Algorithmic Bias in Art.md]] +--- diff --git a/AI & Ethics/Algorithmic Decision Making.md b/AI & Ethics/Algorithmic Decision Making.md new file mode 100644 index 00000000..4c83e582 --- /dev/null +++ b/AI & Ethics/Algorithmic Decision Making.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-E80494 +category: "[[10_Wiki/💡 Topics/AI & Ethics]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Batch 11 - Wikified Algorithmic Decision Making" +--- + +# [[Algorithmic Decision Making]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 작업 중 + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중 + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 신규 지식 카테고리화 및 연결성 강화. +- **정책 변화:** AI & Ethics 분야의 지식 자산 보호 및 네트워크 확장. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Algorithmic Decision Making.md]] +--- diff --git a/AI & Ethics/Artificial-Intelligence-Explainability.md b/AI & Ethics/Artificial-Intelligence-Explainability.md new file mode 100644 index 00000000..c4e361d0 --- /dev/null +++ b/AI & Ethics/Artificial-Intelligence-Explainability.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-935E0A +category: "[[10_Wiki/💡 Topics/AI & Ethics]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Mega Batch 2 - Wikified Artificial-Intelligence-Explainability" +--- + +# [[Artificial-Intelligence-Explainability]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 작업 중 + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중 + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 지식 자산화 및 기존 네트워크 연동 단계. +- **정책 변화:** AI & Ethics 카테고리의 전문성 확보 및 링크 밀도 최적화. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Artificial-Intelligence-Explainability.md]] +--- diff --git a/AI & Games/AlphaZero Strategy.md b/AI & Games/AlphaZero Strategy.md new file mode 100644 index 00000000..06feed44 --- /dev/null +++ b/AI & Games/AlphaZero Strategy.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-5267ED +category: "[[10_Wiki/💡 Topics/AI & Games]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Mega Batch - Wikified AlphaZero Strategy" +--- + +# [[AlphaZero Strategy]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 핵심 요약 작업 진행 중 + +## 📖 구조화된 지식 (Synthesized Content) +본문 상세 구성 진행 중 + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 지식 자산화 및 기존 네트워크 연동 단계. +- **정책 변화:** AI & Games 카테고리의 전문성 확보 및 링크 밀도 최적화. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/AlphaZero Strategy.md]] +--- diff --git a/AI & ML MLOps/Concept Drift (개념 드리프트, 모델 지식의 부패).md b/AI & ML MLOps/Concept Drift (개념 드리프트, 모델 지식의 부패).md new file mode 100644 index 00000000..d9244c6d --- /dev/null +++ b/AI & ML MLOps/Concept Drift (개념 드리프트, 모델 지식의 부패).md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AI-047 +category: "[[10_Wiki/💡 Topics/AI & ML MLOps]]" +confidence_score: 0.96 +tags: [ai, machine learning, mlops, data science] +last_reinforced: 2026-06-XX +github_commit: "[P-Reinforce] Processed Concept Drift (개념 드리프트)." +--- + +# [[Concept Drift (개념 드리프트)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 시간이 지남에 따라 데이터의 통계적 특성이나 생성 메커니즘 자체가 변화하여, 이전에 학습된 AI 모델의 예측 정확도와 신뢰도가 점진적으로 떨어지는 현상이다. + +## 📖 구조화된 지식 (Synthesized Content) +- **정의:** 머신러닝 시스템이 배포되고 운영되는 환경에서 발생하는 데이터 분포의 변화를 의미한다. 이는 단순한 '데이터 부족' 이상의 근본적인 모델 성능 저하 문제다. +- **유형 및 원인:** + 1. **Covariate Shift (공변량 드리프트):** 입력 데이터 $P(X)$가 변하는 경우. (예: 특정 계절에만 발생하는 트래픽 패턴 변화). + 2. **Concept Drift (개념 드리프트):** 실제 데이터 생성 과정 자체가 변하여, 같은 입력 $X$에 대한 레이블 $Y$의 조건부 확률 $P(Y|X)$가 변하는 경우. (예: 사용자의 구매 행동 패턴이 시대에 따라 근본적으로 변화). +- **탐지 및 대응:** + 1. **모니터링:** 모델 예측 결과와 실제 데이터 분포 간의 KL Divergence, JS Divergence 등을 주기적으로 측정하여 이상 징후를 포착한다. + 2. **재학습 (Retraining):** 드리프트가 감지되면 최신 데이터를 반영하여 모델을 재학습하거나(Online Learning), 모델 자체를 업데이트해야 한다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 개념 드리프트는 '일회성 문제'가 아니라, AI/MLOps 운영의 *지속적인* 관리 영역임을 인식해야 하며, 이를 위한 자동화 파이프라인(Monitoring Pipeline) 구축이 필수적이다. +- **정책 변화:** 최근에는 설명 가능한 AI (XAI) 기법을 결합하여, 모델이 왜 성능 저하를 겪고 있는지 '어떤 개념'에서 벗어났는지 진단하는 것이 중요해지고 있다. + +## 🔗 지식 연결 (Graph) +- Parent: [[Model Collapse (모델 붕괴 현상)]] +- Related: [[MLOps]] , [[Data Science in UX]] , [[Continuous Monitoring]] +- Raw Source: [[00_Raw/Concept Drift (개념 드리프트).md]] +--- \ No newline at end of file diff --git a/AI & Narrative/AI-Driven Narrative Systems.md b/AI & Narrative/AI-Driven Narrative Systems.md new file mode 100644 index 00000000..639fdde5 --- /dev/null +++ b/AI & Narrative/AI-Driven Narrative Systems.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-8DB819 +category: "[[10_Wiki/💡 Topics/AI & Narrative]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Batch 10 - Wikified AI-Driven Narrative Systems" +--- + +# [[AI-Driven Narrative Systems]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 핵심 내용 요약 예정 + +## 📖 구조화된 지식 (Synthesized Content) +세부 본문 내용 구성 예정 + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 신규 지식 유입에 따른 기존 지식과의 정합성 검증 단계. +- **정책 변화:** AI & Narrative 분야의 체계적 지식 자산화 진행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/AI-Driven Narrative Systems.md]] +--- diff --git a/AI & Psychology/Affective Computing.md b/AI & Psychology/Affective Computing.md new file mode 100644 index 00000000..86f6f21c --- /dev/null +++ b/AI & Psychology/Affective Computing.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-E4FCEF +category: "[[10_Wiki/💡 Topics/AI & Psychology]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Batch 10 - Wikified Affective Computing" +--- + +# [[Affective Computing]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 핵심 내용 요약 예정 + +## 📖 구조화된 지식 (Synthesized Content) +세부 본문 내용 구성 예정 + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 신규 지식 유입에 따른 기존 지식과의 정합성 검증 단계. +- **정책 변화:** AI & Psychology 분야의 체계적 지식 자산화 진행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Affective Computing.md]] +--- diff --git a/AI & Tools/AI Connect LLM Tool.md b/AI & Tools/AI Connect LLM Tool.md new file mode 100644 index 00000000..a2eb2126 --- /dev/null +++ b/AI & Tools/AI Connect LLM Tool.md @@ -0,0 +1,39 @@ +--- +id: P-REINFORCE-92F236 +category: "[[10_Wiki/💡 Topics/AI & Tools]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Batch 10 - Wikified AI Connect LLM Tool" +--- + +# [[AI Connect LLM Tool]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> **Connect AI**는 100% 로컬 및 오프라인 환경에서 작동하는 VS Code 전용 프리미엄 AI 코딩 에이전트입니다. 외부 서버 연결 없이 사용자의 하드웨어(Ollama/LM Studio)를 직접 활용하여 파일 생성, 편집, 터미널 명령 실행 및 개인 지식 기반(Second Brain) 연동을 지원합니다. + +## 📖 구조화된 지식 (Synthesized Content) + + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 신규 지식 유입에 따른 기존 지식과의 정합성 검증 단계. +- **정책 변화:** AI & Tools 분야의 체계적 지식 자산화 진행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Ollama]], [[LM Studio]], [[VS Code Extension Development]], [[Agentic AI]] +- **Projects/Contexts:** [[Connect-AI-Lab]], [[EZERAI Infrastructure]] +- **Contradictions/Notes:** + - **통합 구조:** 현재 프로젝트는 모든 로직(UI, 통신, 에이전트)이 `extension.ts` 하나에 집중된 모놀리식 구조를 가지고 있어, 향후 대규모 기능 추가 시 모듈화가 권장됩니다. + - **보안:** 모든 작업이 로컬에서 이루어지므로 기업 보안 환경에 매우 적합하나, `run_command` 실행 시 사용자의 최종 확인 절차가 보완될 필요가 있습니다. + +--- + +*Last updated: 2026-04-14* + +--- + +# 🕵️ 프로젝트 코드 리뷰 리포트 + +`/Volumes/Data/project/Antigravity/local_module/resource` 프로젝트에 대한 상세 코드 리뷰 결과입니다. +- Raw Source: [[00_Raw/2026-04-20/AI Connect LLM Tool.md]] +--- diff --git a/AI/20k skinned instances demo.md b/AI/20k skinned instances demo.md new file mode 100644 index 00000000..98468692 --- /dev/null +++ b/AI/20k skinned instances demo.md @@ -0,0 +1,39 @@ +--- +id: P-REINFORCE-AUTO-EB3F3C +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 20k skinned instances demo" +--- + +# [[20k skinned instances demo]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> '20k skinned instances demo'는 Three.js 기반의 오픈 소스 라이브러리인 InstancedMesh2를 활용하여 20,000개의 개별적인 스킨드 인스턴스(Skinned instances)를 동시에 렌더링하는 성능 최적화 데모입니다 [1, 2]. 이 데모는 모바일 기기에서도 3,000개의 인스턴스를 원활하게 구동할 수 있도록 설계되었습니다 [2]. 프러스텀 컬링, 거리 기반 애니메이션 프레임 조절, 다중 LOD(Level of Detail) 생성 등 다양한 최적화 기법을 적용하여 단 5번의 드로우 콜만으로 렌더링을 처리하는 것이 특징입니다 [2, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +이 데모는 제작자(agargaro)가 개발한 `instancedMesh2` 라이브러리를 기반으로 하며, 대규모 스킨드 메쉬를 렌더링하기 위해 다음과 같은 세부 최적화 기술들을 사용했습니다 [2]. + +* **프러스텀 컬링 및 시야 기반 업데이트 (Frustum Culling & View-based Updates):** + 기본적인 프러스텀 컬링을 적용하여 카메라 시야(Frustum) 내에 존재하는 인스턴스들에 대해서만 뼈대(Bones) 연산을 업데이트합니다 [2]. +* **동적 애니메이션 프레임 제어:** + 카메라와 각 인스턴스 간의 거리를 계산하여 애니메이션 FPS를 0에서 60 사이로 개별 설정함으로써 불필요한 연산을 줄입니다 [2]. +* **LOD(Level of Detail)의 적극적 활용:** + `meshoptimizer`를 활용해 5단계의 기하학적 LOD를 생성했습니다 [2]. 거리가 먼 인스턴스에 대해서는 일부 뼈대 계산을 생략하며, 각 LOD마다 1개의 드로우 콜(Draw Call)만 발생시켜 총 5개의 드로우 콜만으로 렌더링을 완료합니다 [2, 3]. 또한, 그림자(Shadows) 렌더링 시에도 LOD를 관리할 수 있도록 구성되어 있습니다 [4]. +* **개별 애니메이션 지원:** + 단일 인스턴스들의 복제본들이 모두 동일한 애니메이션과 포즈를 공유하는 것이 아니라, 각 인스턴스마다 서로 다른 애니메이션을 가집니다 [5, 6]. 이 데모에서는 하나의 애니메이션 믹서(Mixer)를 사용했지만, 필요에 따라 인스턴스별로 믹서를 생성할 수도 있습니다 [6]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[InstancedMesh2]], [[Frustum Culling]], [[Level of Detail (LOD)]], [[Skinned Mesh]], [[Draw Call]] +- **Projects/Contexts:** [[three.js]] +- **Contradictions/Notes:** 본 텍스처(Bone texture)의 부분 업데이트(Partial texture updates) 기능은 PC 환경에서 60FPS를 달성하는 데 도움이 될 수 있는 최적화 기법이지만, 모바일 기기와 파이어폭스(Mozilla Firefox) 브라우저에서는 이중 버퍼링(Double buffering) 부재로 인해 오히려 속도가 느려지는 문제가 있어 본 데모에서는 비활성화된 상태로 제공되었습니다 [2, 7]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/20k skinned instances demo.md]] +--- diff --git a/AI/AI Safety (AI 안전).md b/AI/AI Safety (AI 안전).md new file mode 100644 index 00000000..ed459347 --- /dev/null +++ b/AI/AI Safety (AI 안전).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-2BB419 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - AI Safety (AI 안전)" +--- + +# [[AI Safety (AI 안전)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/AI Safety (AI 안전).md]] +--- diff --git a/AI/AI 거버넌스 정책(AI Usage Policy).md b/AI/AI 거버넌스 정책(AI Usage Policy).md new file mode 100644 index 00000000..113acb81 --- /dev/null +++ b/AI/AI 거버넌스 정책(AI Usage Policy).md @@ -0,0 +1,42 @@ +--- +id: P-REINFORCE-AUTO-0C244E +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - AI 거버넌스 정책(AI Usage Policy)" +--- + +# [[AI 거버넌스 정책(AI Usage Policy)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +* **도입의 필요성 및 기대 효과** + * 공식적인 정책 가이드라인이 부재할 경우, 직원들의 무분별한 AI 도구 사용으로 인해 민감한 고객 데이터 및 독점 소스 코드 노출, 컴플라이언스 위반(GDPR, CCPA, HIPAA 등), 그리고 심각한 거버넌스 결함이 발생할 수 있습니다 [2, 3, 6-8]. + * 또한 여러 AI 도구에 대한 개별 구독으로 발생하는 '섀도우 IT(shadow IT)' 비용을 통제하고, 일관성 없는 AI 결과물로 인한 코드 품질 저하와 기술 부채를 방지하기 위해 필수적입니다 [9, 10]. + +* **핵심 구성 요소** + * **사용 범위 및 승인된 도구 (Scope & Approved Tools):** 정책이 적용되는 대상(직원, 파트너 등)을 명확히 정의하고, 보호 장치가 있는 기업용 승인 도구와 사용이 금지된 퍼블릭 앱을 구분하여 허용 및 금지되는 사용 사례를 구체적으로 나열해야 합니다 [11-14]. + * **데이터 프라이버시 및 보안 (Data Privacy & Security):** 기밀 비즈니스 정보, PII(개인식별정보), 지적 재산 등을 써드파티 퍼블릭 AI 시스템에 입력하는 것을 엄격히 금지하고, 민감한 데이터의 처리 규칙을 명시해야 합니다 [11, 12, 15]. + * **인간의 개입 및 품질 기준 (Human-in-the-Loop):** AI가 생성한 결과물(특히 소스 코드나 외부 커뮤니케이션)은 독립적으로 운영되거나 맹목적으로 수용되어서는 안 되며, 정확성과 공정성을 확인하기 위해 반드시 인간 개발자나 적격한 검토자의 검증 및 승인을 거쳐야 합니다 [11, 14, 16, 17]. + +* **실행 및 관리 전략** + * **다기능적 소유권 (Cross-Functional Ownership):** 성공적인 정책 정착을 위해서는 IT(기술 통제 및 승인 도구 구성), 법무(위험 노출 및 규정 준수 검토), HR(AI 도입 프레임워크 및 직원 교육), 비즈니스 리더(워크플로우 검증) 등 조직 전반에 걸친 명확한 책임 분담이 요구됩니다 [18, 19]. + * **글로벌 표준 정렬:** 진화하는 규제에 대비하여 ISO 42001(AI 거버넌스 경영 시스템) 및 NIST AI RMF(위험 관리 프레임워크)와 같은 국제적으로 인정된 표준에 정책을 맞추는 것이 유리합니다 [20, 21]. + * **지속적인 모니터링 및 업데이트:** AI 기술은 빠르게 변화하므로, 정책을 한 번 작성하고 끝내는 것이 아니라 정기적으로(예: 분기별) 검토하고 업데이트해야 하며 임직원을 위한 지속적인 피드백 채널 및 역할별 교육을 제공해야 합니다 [22-25]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Human-in-the-loop]], [[데이터 프라이버시(Data Privacy)]], [[ISO 42001]], [[NIST AI RMF]] +- **Projects/Contexts:** [[조직 내 안전한 AI 도입 및 기업 거버넌스(Enterprise AI Adoption and Governance)]] +- **Contradictions/Notes:** 소스에 따르면 AI 정책 문서는 초기에 IT나 법무 부서 단독으로 작성하고 소유하기 쉬우나, 이러한 방식은 병목 현상을 유발할 수 있으며 실제 성공적인 장기 정착을 위해서는 직원과의 관계 및 변경 관리 전문성을 갖춘 HR 부서를 비롯한 교차 기능적인 소유권(Cross-functional ownership)이 필수적이라고 강조합니다 [18, 19, 26]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/AI 거버넌스 정책(AI Usage Policy).md]] +--- diff --git a/AI/AI 생성 코드 검증(AI Code Assurance).md b/AI/AI 생성 코드 검증(AI Code Assurance).md new file mode 100644 index 00000000..e5ba6e97 --- /dev/null +++ b/AI/AI 생성 코드 검증(AI Code Assurance).md @@ -0,0 +1,39 @@ +--- +id: P-REINFORCE-AUTO-254BE9 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - AI 생성 코드 검증(AI Code Assurance)" +--- + +# [[AI 생성 코드 검증(AI Code Assurance)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> AI Code Assurance(AI 생성 코드 검증)는 AI가 생성하거나 지원한 코드로 인해 발생할 수 있는 고유한 품질 및 보안 위험을 해결하기 위해 설계된 워크플로우이자 검증 프로세스입니다 [1]. 이를 통해 조직은 AI가 작성한 코드가 프로덕션 환경에 배포되기 전에 엄격한 보안, 신뢰성 및 품질 표준을 충족하는지 확인할 수 있습니다 [1, 2]. 주로 정적 애플리케이션 보안 테스트(SAST)와 자동화된 코드 리뷰를 활용하여 결함과 취약점을 조기에 식별하고 일관된 표준을 강제합니다 [2, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **목적 및 필요성** + AI 어시스턴트가 생성한 코드는 스타일과 품질 측면에서 매우 일관성이 없고 변동성이 클 수 있습니다 [4, 5]. AI Code Assurance의 목적은 전체 소프트웨어 개발 수명 주기(SDLC)에서 AI 생성 코드의 비율이 증가하더라도 인간이 작성한 코드와 동일한 품질 게이트(Quality Gate) 표준을 적용하여, 유지보수성과 보안에 대한 일관된 규칙을 강제하는 것입니다 [1, 5]. + +- **주요 기능 및 작동 방식** + - **AI 코드 감지 및 추적:** 시스템은 프로젝트 내에 AI 생성 코드가 존재함을 자동으로 감지하거나 개발자가 직접 태그를 지정할 수 있게 합니다 [3]. 이를 통해 명확한 라벨링과 배지를 부여하여 AI 코드의 관리, 유지보수 및 규정 준수 모니터링을 간소화합니다 [3]. + - **정적 코드 분석(SAST) 적용:** 결정론적(deterministic)이고 독립적인 코드 검증 방식인 정적 코드 분석과 오염 분석(Taint Analysis)을 사용하여 코드를 스캔합니다 [4, 6]. 이를 통해 보안 취약점, 유출된 비밀 정보, 코드 냄새(Code smells), 논리적 결함 및 성능 위험을 풀 리퀘스트(Pull Request) 단계에서 조기에 표면화합니다 [4, 6, 7]. + - **워크플로우 및 에이전트 통합:** IDE부터 CI/CD 파이프라인에 이르기까지 기존 개발 워크플로우에 원활하게 통합됩니다 [6, 8]. 특히, MCP(Model Context Protocol)를 통해 Cursor, Claude Code, Windsurf와 같은 AI 코딩 에이전트와 직접 연결되어, 코드가 생성되는 실시간 대화 흐름 속에서 보안 핫스팟 분석 및 피드백을 제공합니다 [4, 8, 9]. + +- **기대 효과** + 위험도가 가장 높은 문제를 자동으로 강조 표시하여 코드 리뷰어의 피로도를 크게 줄여주며, 배포 주기를 단축합니다 [4]. 또한 조직은 PCI, OWASP, CWE와 같은 널리 통용되는 규정 준수 및 보안 표준을 충족하면서 신뢰성 있게 AI 기여(contribution)를 수용할 수 있습니다 [10, 11]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Static Application Security Testing (SAST)]], [[Model Context Protocol (MCP)]], [[Automated Code Review]] +- **Projects/Contexts:** [[SonarQube Server]], [[SonarQube Cloud]] +- **Contradictions/Notes:** 소스에 따르면 AI 어시스턴트가 생성하는 코드는 본질적으로 일관성이 없고 예측하기 어려울 수 있지만, 이에 적용되는 정적 코드 분석 기술은 '결정론적(deterministic)'이므로 AI 코드의 불확실성을 극복하고 신뢰할 수 있는 독립적인 검증을 제공할 수 있다고 강조합니다 [4]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/AI 생성 코드 검증(AI Code Assurance).md]] +--- diff --git a/AI/AI 에이전트 (AI Agent).md b/AI/AI 에이전트 (AI Agent).md new file mode 100644 index 00000000..25e274b0 --- /dev/null +++ b/AI/AI 에이전트 (AI Agent).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-CA155B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - AI 에이전트 (AI Agent)" +--- + +# [[AI 에이전트 (AI Agent)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/AI 에이전트 (AI Agent).md]] +--- diff --git a/AI/AI 코드 리뷰 및 보안 취약점 점검(DevSecOps).md b/AI/AI 코드 리뷰 및 보안 취약점 점검(DevSecOps).md new file mode 100644 index 00000000..2100bee7 --- /dev/null +++ b/AI/AI 코드 리뷰 및 보안 취약점 점검(DevSecOps).md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-4DB2F8 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - AI 코드 리뷰 및 보안 취약점 점검(DevSecOps)" +--- + +# [[AI 코드 리뷰 및 보안 취약점 점검(DevSecOps)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> AI 코드 리뷰 및 보안 취약점 점검(DevSecOps)은 소프트웨어 개발 수명 주기(SDLC)의 초기 단계에 AI 기반의 자동화된 정적 분석(SAST)과 인간의 수동 리뷰를 결합하여 코드의 품질과 보안을 선제적으로 확보하는 프로세스입니다 [1, 2]. 개발자는 IDE 내부나 CI/CD 파이프라인의 Pull Request(PR) 단계에서 실시간으로 버그, 로직 결함, 보안 취약점(예: 인젝션, 민감 정보 노출)을 식별하고 수정할 수 있습니다 [3-6]. 결과적으로 기계적이고 반복적인 코드 스타일 검사 및 패턴 기반 취약점 탐지는 AI에 위임하고, 인간은 아키텍처 결정이나 도메인 종속적인 비즈니스 로직을 검토하는 '하이브리드' 방식을 통해 개발 속도와 보안성의 균형을 맞춥니다 [2, 7, 8]. + +## 📖 구조화된 지식 (Synthesized Content) +* **하이브리드 코드 리뷰 모델의 부상** + 2025년 기준 가장 이상적이고 안전한 코드 리뷰 방식은 자동화 도구와 인간의 통찰력을 결합한 하이브리드 모델입니다 [2]. 자동화된 리뷰 도구는 수천 줄의 코드를 단 몇 분 만에 스캔하여 문법 오류, 알려진 보안 취약점 패턴, 코드 스타일 위반 등을 일관성 있게 찾아냅니다 [6, 9]. 하지만 이러한 도구들은 시스템의 의도나 비즈니스 로직을 이해하는 데 한계가 있습니다 [10]. 따라서 자동화 스캔을 1차 방어선으로 사용하여 일상적인 문제를 해결하고, 고위험 아키텍처, 인증 로직, 교차 서비스 통신 및 비즈니스 규칙 검증과 같은 복잡한 판단은 숙련된 개발자의 수동 리뷰를 통해 진행해야 합니다 [11-14]. + +* **AI 기반 정적 애플리케이션 보안 테스트(SAST)** + 전통적인 SAST 도구는 규칙과 패턴 매칭에 의존하여 높은 오탐률(False Positive)과 알림 피로도를 유발했습니다 [10, 15, 16]. 그러나 Snyk Code, Corgea, GitHub Advanced Security와 같은 최신 AI 네이티브 SAST 도구들은 머신러닝과 대규모 언어 모델(LLM)을 결합하여 코드의 문맥(Semantic)을 파악합니다 [17-20]. 이 도구들은 오염 분석(Taint analysis)과 도달 가능성(Reachability)을 분석해 파일 간 데이터를 추적하며 실제 악용 가능한 위협만을 효과적으로 필터링합니다 [19, 21, 22]. 또한 Copilot Autofix나 DeepCode AI Fix처럼 발견된 취약점에 대해 검증된 수정안(Remediation)을 PR 단계에서 자동으로 제안하여 리뷰 시간을 대폭 단축시킵니다 [23-25]. + +* **시프트 레프트(Shift-Left)와 파이프라인 자동화** + DevSecOps의 핵심은 소프트웨어 병합 및 배포 전에 보안 및 품질 문제를 원천 차단하는 시프트 레프트 전략입니다 [1, 26]. Husky와 lint-staged 등의 도구를 활용해 Git 사전 커밋(Pre-commit) 훅을 설정하면, 변경된 파일에 대해서만 ESLint(로직/품질)와 Prettier(포맷팅)를 강제 적용할 수 있습니다 [27-29]. 이후 CI/CD 파이프라인 내에 SAST 및 소프트웨어 구성 분석(SCA) 도구를 통합하여 임계치 이상의 치명적 취약점이 포함된 코드는 메인 브랜치로 병합되지 못하도록 '품질 게이트' 역할을 수행하게 합니다 [30, 31]. + +* **자동화의 한계 및 AI 거버넌스 정책** + 강력한 자동화 도구라 할지라도 맹신은 위험합니다. 연구에 따르면 SAST 및 자동화 도구는 실제 취약점의 약 22%를 감지하지 못하며 [32, 33], 개발자들이 자동화 시스템의 '녹색 체크마크'만 보고 코드를 제대로 이해하지 않은 채 통과시키는 '녹색 체크마크 증후군(Green Check Mark Syndrome)'과 같은 인지적 나태함을 유발할 수 있습니다 [34, 35]. 기업은 승인되지 않은 퍼블릭 AI 모델에 독점 소스 코드나 고객 데이터가 유출되지 않도록 명확한 AI 사용 정책(AUP)을 수립해야 합니다 [36-38]. 또한 AI가 생성하거나 수정한 코드라도 최종적으로는 반드시 인간 엔지니어의 엄격한 수동 리뷰를 거쳐 이해와 책임을 보장하는 'Human-in-the-Loop' 원칙을 준수해야 합니다 [38, 39]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[정적 애플리케이션 보안 테스트(SAST)]], [[시프트 레프트(Shift-Left)]], [[하이브리드 코드 리뷰]] +- **Projects/Contexts:** [[CI/CD 파이프라인 통합 및 Git 훅(Hooks)]] +- **Contradictions/Notes:** 자동화 도구를 적극적으로 옹호하는 입장에서는 AI 기반 코드 리뷰와 수정안 자동 생성 기능이 개발자의 업무를 크게 대체하고 생산성을 극대화한다고 주장하지만, 보안 전문가 및 실제 성능 벤치마크 결과(Augment Code 등)에 따르면 자동화 도구는 여전히 30~60%의 오탐률을 보이며 실제 취약점의 약 22%를 놓치는 근본적 사각지대가 존재하므로, 아키텍처 설계와 비즈니스 로직에는 기계가 아닌 인간의 수동 판단이 필수 불가결하다고 반박합니다. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/AI 코드 리뷰 및 보안 취약점 점검(DevSecOps).md]] +--- diff --git a/AI/AI 코드 리뷰.md b/AI/AI 코드 리뷰.md new file mode 100644 index 00000000..1418edb5 --- /dev/null +++ b/AI/AI 코드 리뷰.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-76F9E4 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - AI 코드 리뷰" +--- + +# [[AI 코드 리뷰]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> AI 코드 리뷰는 인공지능 에이전트나 머신러닝(ML) 기반의 정적 분석 도구(SAST)를 활용하여 소스 코드의 결함, 보안 취약점, 스타일 위반 및 로직 오류를 식별하는 자동화 프로세스입니다 [1-3]. IDE, CI/CD 파이프라인, 풀 리퀘스트(PR) 등 개발 워크플로우에 통합되어 개발자에게 실시간에 가까운 피드백과 자동 수정(Auto-fix) 제안을 제공합니다 [2, 4-8]. 이를 통해 코드 리뷰의 대기 시간을 줄이고 일관된 품질 표준을 강제할 수 있지만, 아키텍처 의도나 비즈니스 로직의 문맥을 깊이 이해하는 데는 한계가 있어 인간 검토자와의 하이브리드 접근 방식이 필수적으로 요구됩니다 [5, 9-12]. + +## 📖 구조화된 지식 (Synthesized Content) +- **작동 방식 및 주요 기술**: 기존의 규칙 기반 정적 분석에 머신러닝(ML), 대규모 언어 모델(LLM) 등을 결합하여 코드의 문맥, 데이터 흐름(Data flow), 오염 추적(Taint analysis) 등을 시맨틱하게 분석합니다 [4, 13-18]. +- **주요 이점**: 대규모 코드베이스를 단 몇 초에서 몇 분 안에 스캔하여 보안 취약점과 버그를 조기에 발견합니다 [19, 20]. 시니어 검토자의 큐(Queue)에서 저위험군 코멘트를 제거하여 PR 검토 주기를 최대 40%까지 단축시키며, 결과적으로 인간 검토자가 아키텍처 설계와 비즈니스 로직에 집중할 수 있도록 돕습니다 [5, 11, 19]. +- **한계점 및 위험성**: AI는 코드의 전반적인 아키텍처 의도나 비즈니스 로직을 완벽히 이해하지 못하는 '문맥 맹점(Context Blindness)'을 지닙니다 [12, 21, 22]. 또한, 오탐지(False Positives)를 발생시키거나 환각(Hallucination)에 의한 잘못된 수정안을 제안할 위험이 존재하며, 검토자가 AI를 맹신하여 비판적 사고가 저하되는 '녹색 체크 표시 증후군(Green Check Mark Syndrome)'을 초래할 수 있습니다 [12, 23-25]. +- **하이브리드 리뷰 모델 및 거버넌스**: 2025년 이후의 현대 소프트웨어 개발에서는 AI 자동화 리뷰와 인간의 수동 리뷰를 결합한 '하이브리드(Hybrid) 리뷰'가 모범 사례로 꼽힙니다 [9-11, 26-28]. 일반적인 취약점 패턴이나 문법 등 기계적인 검증은 AI 도구에 맡기고, 도메인 특화 비즈니스 로직이나 교차 서비스 영향도 평가는 인간이 담당해야 합니다 [28, 29]. 아울러 지적 재산(IP) 유출 방지와 보안을 위해 "인간 개입(Human-in-the-Loop)"을 의무화하는 명확한 AI 사용 정책(Governance) 수립이 필수적입니다 [30-34]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[SAST]], [[풀 리퀘스트(Pull Request)]], [[DevSecOps]] +- **Projects/Contexts:** [[SonarQube]], [[Snyk Code]], [[GitHub Advanced Security]], [[Corgea]] +- **Contradictions/Notes:** AI 코드 리뷰 도구의 도입만으로는 배포 성능이나 품질이 보장되지 않는다는 점에 유의해야 합니다. 맹목적인 도구 도입과 높은 AI 사용률에도 불구하고 실제 PR 처리 시간이나 재작업 비율은 개선되지 않을 수 있으므로, 결과(DORA 지표 등)에 기반한 관리가 중요합니다 [35-37]. 또한 일부 AI 네이티브 도구들은 오탐률을 혁신적으로 줄였다고 주장하지만(예: Corgea 5% 미만, Veracode 1.1% 미만), 근본적으로 어떠한 도구도 오탐을 완벽히 제거할 수는 없으므로 인간의 검토와 검증 과정이 반드시 수반되어야 합니다 [38-40]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/AI 코드 리뷰.md]] +--- diff --git a/AI/AI와 기계에게 검열 맡기기_ - 정적 분석 툴 (ESLint Prettier)).md b/AI/AI와 기계에게 검열 맡기기_ - 정적 분석 툴 (ESLint Prettier)).md new file mode 100644 index 00000000..1b011d53 --- /dev/null +++ b/AI/AI와 기계에게 검열 맡기기_ - 정적 분석 툴 (ESLint Prettier)).md @@ -0,0 +1,44 @@ +--- +id: P-REINFORCE-AUTO-37563B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - AI와 기계에게 검열 맡기기_ - 정적 분석 툴 (ESLint Prettier))" +--- + +# [[AI와 기계에게 검열 맡기기_ - 정적 분석 툴 (ESLint Prettier))]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 현대 소프트웨어 개발에서는 주관적이고 반복적인 코드 평가 작업을 ESLint, Prettier와 같은 결정론적 도구와 AI 기반 에이전트(기계)에게 위임하여 코드를 자동으로 '검열'하는 구조를 갖추고 있습니다 [1]. Linter인 ESLint는 추상 구문 트리(AST)를 분석해 문법적 오류와 잠재적 버그를 식별하며, Formatter인 Prettier는 줄 바꿈이나 들여쓰기 등 시각적 일관성을 강제합니다 [2]. 나아가 단순한 패턴 매칭을 넘어 LLM 기반의 AI 정적 분석 도구(SAST)를 도입함으로써 문맥을 이해하고 복잡한 취약점을 분석하는 '에이전트적 거버넌스'로 진화하고 있습니다 [3, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +* **결정론적 거버넌스의 기반 (ESLint & Prettier)** + * **ESLint (결정론적 Linter):** 소스 코드를 추상 구문 트리(AST)로 변환해 순회하면서 사용되지 않는 변수, 섀도잉 현상 등 논리적 버그와 의심스러운 구조를 식별하고 팀의 모범 사례를 강제합니다 [2, 5, 6]. + * **Prettier (의견이 반영된 Formatter):** 코드의 로직에는 관여하지 않고 들여쓰기, 따옴표 일관성, 줄 바꿈 등 텍스트의 시각적 형태를 일관되게 재작성하여 코드 가독성을 높입니다 [2, 6, 7]. + * **규칙 충돌 및 통합:** ESLint에도 포맷팅 스타일 규칙이 포함되어 있어 Prettier와 충돌할 수 있습니다. 이를 방지하기 위해 `eslint-config-prettier`를 사용하여 충돌하는 ESLint 규칙을 비활성화하고, `eslint-plugin-prettier`를 통해 Prettier를 ESLint의 규칙처럼 동작시키는 방식이 권장됩니다 [8-11]. + +* **자동화 검열의 오케스트레이션 (Husky & lint-staged)** + * 이러한 검열 도구들은 `Husky`와 `lint-staged`를 활용해 Git의 'pre-commit' 단계에서 강제적으로 실행됩니다 [12-14]. 저장소 전체가 아닌 변경된 파일(staged files)에만 검열 에이전트를 실행시켜 검사 시간을 수 초 내로 단축하고, 품질 미달 코드가 저장소에 병합되는 것을 선제적으로 차단합니다 [13-15]. + +* **AI를 활용한 시맨틱 지능과 에이전트적 거버넌스** + * 전통적인 Linter는 파일 내 패턴 매칭에 그쳐 문맥을 파악하지 못하는 한계(Context-blind)가 있습니다 [3, 16]. 이를 극복하기 위해 Snyk Code, SonarQube 등 AI 기반 정적 분석(SAST) 도구가 도입되고 있습니다 [3, 17, 18]. + * 수백만 개의 커밋을 학습한 AI 모델은 오염 분석(Taint Analysis) 및 도달 가능성 분석을 수행하여 파일 경계를 넘나드는 복잡한 취약점을 파악하고 안전한 코드 수정을 제안합니다 [19, 20]. + +* **기계 검열의 심리사회적 영향 및 한계** + * 기계에 코드 검열을 맡기면 사소한 스타일 논쟁을 없애고 개발자의 인지 부하를 줄여 비즈니스 로직 해결에 몰입(Flow)할 수 있게 돕습니다 [21, 22]. + * 하지만 자동화에 과도하게 의존할 경우, 개발자의 비판적 사고 근육이 퇴화하고 자동화 도구의 검사만 통과하면 된다고 여기는 '녹색 체크마크 증후군(Green Check Mark Syndrome)'을 유발할 수 있습니다 [23, 24]. 또한 AI 도구 역시 전체 취약점의 약 22%를 놓치는 사각지대가 존재하므로, 아키텍처 설계와 도메인 비즈니스 로직 등 고위험 검토에는 여전히 인간의 판단(Human-in-the-loop)이 필수적입니다 [24-26]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[SAST (정적 애플리케이션 보안 테스트)]], [[AST (추상 구문 트리)]], [[Husky & lint-staged]] +- **Projects/Contexts:** [[Git Pre-commit 훅을 활용한 개발 워크플로우 자동화]], [[AI 코드 리뷰 및 보안 취약점 점검(DevSecOps)]] +- **Contradictions/Notes:** 소스는 기계 주도의 검열이 개발 생산성과 코드 품질을 높인다고 긍정적으로 평가하면서도, 동시에 AI 모델이 실제 취약점의 일부를 놓치고 개발자의 비판적 사고를 약화시켜 표면적 문제 해결에 집착하는 '녹색 체크마크 증후군'을 초래할 수 있다는 역설적 한계를 분명히 지적합니다 [23, 24, 26]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/AI와 기계에게 검열 맡기기_ - 정적 분석 툴 (ESLint & Prettier)).md]] +--- diff --git a/AI/API 응답 모델링 및 상태 머신(State Machine) 설계.md b/AI/API 응답 모델링 및 상태 머신(State Machine) 설계.md new file mode 100644 index 00000000..a8a14092 --- /dev/null +++ b/AI/API 응답 모델링 및 상태 머신(State Machine) 설계.md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-9FD5CF +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - API 응답 모델링 및 상태 머신(State Machine) 설계" +--- + +# [[API 응답 모델링 및 상태 머신(State Machine) 설계]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> TypeScript에서 API 응답과 상태 머신을 설계할 때는 식별 가능한 유니온(Discriminated Unions) 패턴이 핵심적으로 활용된다 [1, 2]. 이 패턴은 공통 판별자(Discriminant) 속성을 통해 데이터의 다양한 상태를 구분하며, 유효하지 않은 상태가 코드에 표현되는 것을 원천적으로 차단한다 [1, 3, 4]. 결과적으로 네트워크 요청의 다양한 결과나 복잡한 UI 상태 전이를 컴파일 단계에서 안전하게 모델링하고 관리할 수 있도록 보장한다 [2, 5, 6]. + +## 📖 구조화된 지식 (Synthesized Content) +- **상태 머신(State Machine) 패턴 모델링**: + 애플리케이션 내의 복잡한 상태(예: `Idle`, `Fetching`, `Success`, `Failure`, `Retry` 등)는 식별 가능한 유니온을 통해 상태 머신으로 완벽하게 모델링할 수 있다 [2]. 이 방식은 폼 제출 워크플로우(예: `validating`, `submitting`, `success`, `error`)나 비동기 작업 패턴을 명확히 정의하는 데 뛰어나며, 호환되지 않는 잘못된 상태들의 조합이 발생하는 것을 원천적으로 불가능(Impossible)하게 만든다 [3, 5]. + +- **API 응답 데이터 구조화**: + API 응답은 성공, 실패, 대기 등 여러 형태를 취할 수 있으므로 식별 가능한 유니온을 통해 구조화하는 것이 효과적이다 [2]. 예를 들어, `NetworkState`라는 유니온 타입 내에 `NetworkLoadingState`, `NetworkFailedState`, `NetworkSuccessState`를 정의하고 `state`라는 리터럴 필드를 공유 판별자로 설계할 수 있다 [6]. 컴파일러는 이 판별자를 바탕으로 `code`나 `response`와 같은 고유 페이로드(Payload) 속성에 안전하게 접근하도록 타입을 좁혀준다(Narrowing) [6, 7]. + +- **완전성 검사(Exhaustiveness Checking) 적용**: + 상태 머신과 API 응답을 분기 처리할 때 `switch` 문과 `never` 타입을 활용하면, 개발자가 실수로 누락한 상태나 새롭게 추가된 API 응답 형태가 있을 경우 TypeScript 컴파일러가 에러를 발생시킨다 [3, 7-9]. 이는 모든 분기 및 상태가 빠짐없이 처리되도록 강제하는 강력한 안전장치가 되어 런타임 버그를 방지한다 [10-12]. + +- **외부 데이터 런타임 검증과의 결합**: + 외부 API에서 전달받은 응답은 TypeScript의 컴파일 타임 시스템만으로는 런타임에서의 완벽한 안전성을 보장할 수 없다 [12, 13]. 따라서 Zod와 같은 런타임 검증 라이브러리와 식별 가능한 유니온을 결합하여 사용하면, 예기치 않은 형태의 API 데이터로 인해 상태 머신이 망가지는 것을 방어할 수 있다 [12, 13]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[식별 가능한 유니온(Discriminated Unions)]], [[완전성 검사(Exhaustiveness Checking)]], [[타입 좁히기(Type Narrowing)]] +- **Projects/Contexts:** [[비동기 데이터 패칭(Async Data Fetching)]], [[상태 머신 기반 UI 폼 및 라우터 관리]] +- **Contradictions/Notes:** API 응답 데이터를 변환할 때 타입 캐스팅(`as`)을 사용하면 잉여 속성이 존재하거나 형태가 잘못되어도 컴파일러가 이를 조용히 허용하여 안전성이 떨어질 수 있다. 따라서 엄격한 타입 계약을 강제하기 위해서는 `as` 대신 `satisfies` 키워드를 활용하는 것이 권장된다 [14, 15]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/API 응답 모델링 및 상태 머신(State Machine) 설계.md]] +--- diff --git a/AI/A_B-Testing-Platforms.md b/AI/A_B-Testing-Platforms.md new file mode 100644 index 00000000..c3d56332 --- /dev/null +++ b/AI/A_B-Testing-Platforms.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-1151FA +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - A_B-Testing-Platforms" +--- + +# [[A_B-Testing-Platforms]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/A_B-Testing-Platforms.md]] +--- diff --git a/AI/Accessibility-Compliance-Audit.md b/AI/Accessibility-Compliance-Audit.md new file mode 100644 index 00000000..a8364e9b --- /dev/null +++ b/AI/Accessibility-Compliance-Audit.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-EA31B2 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Accessibility-Compliance-Audit" +--- + +# [[Accessibility-Compliance-Audit]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Accessibility-Compliance-Audit.md]] +--- diff --git a/AI/Adaptive Compute (적응형 계산량 조절).md b/AI/Adaptive Compute (적응형 계산량 조절).md new file mode 100644 index 00000000..bafebcf4 --- /dev/null +++ b/AI/Adaptive Compute (적응형 계산량 조절).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D19FE3 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Adaptive Compute (적응형 계산량 조절)" +--- + +# [[Adaptive Compute (적응형 계산량 조절)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Adaptive Compute (적응형 계산량 조절).md]] +--- diff --git a/AI/Advanced-Interface-Design.md b/AI/Advanced-Interface-Design.md new file mode 100644 index 00000000..93cca8f6 --- /dev/null +++ b/AI/Advanced-Interface-Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D1E81B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Advanced-Interface-Design" +--- + +# [[Advanced-Interface-Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Advanced-Interface-Design.md]] +--- diff --git a/AI/Adversarial Code Stylometry.md b/AI/Adversarial Code Stylometry.md new file mode 100644 index 00000000..eabe6319 --- /dev/null +++ b/AI/Adversarial Code Stylometry.md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-36585B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Adversarial Code Stylometry" +--- + +# [[Adversarial Code Stylometry]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Adversarial Code Stylometry(적대적 코드 문체론)는 프로그래머가 코드 문체 분석(Code Stylometry) 시스템의 추적을 우회하여 자신의 익명성을 보호하기 위해 의도적으로 코드를 변형하는 기법입니다 [1-3]. 주로 자신의 고유한 코딩 스타일을 숨기는 난독화(obfuscation)와 다른 프로그래머의 스타일을 흉내 내는 모방(mimicry) 기술을 사용합니다 [2-4]. 이는 감시와 검열에 맞서 프라이버시 향상 도구를 개발하는 오픈소스 기여자들이 신원 노출로 인한 탄압을 피하기 위한 핵심적인 방어 수단으로 연구되고 있습니다 [5-7]. + +## 📖 구조화된 지식 (Synthesized Content) +* **배경 및 필요성:** 인터넷 검열과 감시가 강화됨에 따라 프라이버시 향상 기술이나 검열 우회 도구를 개발하는 오픈소스 개발자들이 국가나 기관의 표적이 되는 사례가 늘고 있습니다 [5, 6, 8]. 코드 작성자의 코딩 스타일을 분석해 신원을 파악하는 소스 코드 문체론(Source Code Stylometry)은 이러한 개발자들에게 심각한 위협이 되며, 이에 대항하여 익명성을 유지할 수 있는 적대적 방어 기법이 필요해졌습니다 [7]. +* **공격 기법 (난독화 및 모방):** 적대적 코드 문체론은 크게 두 가지 접근법을 취합니다. 첫째는 자신의 식별 가능한 코딩 스타일을 모호하게 만드는 '난독화(obfuscation / masking)'이고, 둘째는 다른 특정 작가로 기계 학습 모델을 속이기 위해 의도적으로 대상의 스타일을 흉내 내는 '모방(mimicry / forgery)' 공격입니다 [2-4, 9]. +* **기존 문체 분석 시스템의 취약성:** 최첨단 소스 코드 문체 분석 시스템조차도 적대적 수정에 취약한 것으로 나타났습니다 [3, 9]. 변수 이름, 매크로, 리터럴, API 호출 등 국소적인 정보(local changes)나 표면적인 형식 변경만으로도 분류기(classifier)를 속여 다른 사람으로 오분류하게 만드는 것이 가능합니다 [10, 11]. +* **방어 지원 도구 (StyleCounsel):** 개발자가 다른 이의 스타일을 모방하고 자신의 스타일을 난독화할 수 있도록 돕는 `StyleCounsel`과 같은 시스템이 개발되었습니다 [2, 12]. 이 도구는 랜덤 포레스트(Random Forest)와 같은 기계 학습 모델의 의사 결정 트리를 분석하여, 오분류를 유도할 수 있는 구체적이고 최소한의 코드 변경 사항(예: 특정 구문의 사용 빈도 조절 등)을 사용자에게 추천합니다 [2, 13, 14]. +* **코드 포매팅을 통한 프라이버시 보호막:** Prettier나 Black 등과 같은 결정론적 코드 포매터(Formatter) 및 최소화(Minification) 도구를 적용하는 것만으로도 작성자 인식 정확도를 크게 떨어뜨릴 수 있습니다 [15, 16]. 연구에 따르면 코드 포매팅 적용 시 식별 정확도가 68%에서 53%로 하락하며, 최소화를 거치면 50%까지 떨어져 코드 문체론 분석에 대한 실질적인 프라이버시 보호막(Privacy shield) 역할을 수행합니다 [17-19]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Code Stylometry]], [[Obfuscation]], [[Mimicry Attack]], [[StyleCounsel]] +- **Projects/Contexts:** [[오픈소스 기여자 익명성 보장]], [[검열 우회 및 프라이버시 보호 도구 개발]] +- **Contradictions/Notes:** Caliskan-Islam 등의 기존 연구에서는 'Stunnix'와 같은 상용 난독화 도구를 사용해도 분류기의 식별 정확도가 거의 떨어지지 않는다고 보고했습니다. 그러나 Simko 등의 적대적 연구에서는 실험 참가자들이 표면적인 수준의 변수명 교체나 국소적인 구조 변경 등 간단한 조작을 가하는 것만으로도 기계 학습 모델을 성공적으로 속일 수 있음을 입증하며 기존 분류 시스템의 취약성과 한계를 지적했습니다 [11, 20]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Adversarial Code Stylometry.md]] +--- diff --git a/AI/Algorithmic-Biology.md b/AI/Algorithmic-Biology.md new file mode 100644 index 00000000..d1aeb177 --- /dev/null +++ b/AI/Algorithmic-Biology.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-37F130 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Algorithmic-Biology" +--- + +# [[Algorithmic-Biology]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Algorithmic-Biology.md]] +--- diff --git a/AI/Algorithmic-Game-Theory.md b/AI/Algorithmic-Game-Theory.md new file mode 100644 index 00000000..10dab570 --- /dev/null +++ b/AI/Algorithmic-Game-Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6BF52C +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Algorithmic-Game-Theory" +--- + +# [[Algorithmic-Game-Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Algorithmic-Game-Theory.md]] +--- diff --git a/AI/Ambient-Declarations.md b/AI/Ambient-Declarations.md new file mode 100644 index 00000000..6743dbbf --- /dev/null +++ b/AI/Ambient-Declarations.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-956995 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Ambient-Declarations" +--- + +# [[Ambient-Declarations]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Ambient-Declarations.md]] +--- diff --git a/AI/Amdahls Law (암달의 법칙).md b/AI/Amdahls Law (암달의 법칙).md new file mode 100644 index 00000000..38b69a8b --- /dev/null +++ b/AI/Amdahls Law (암달의 법칙).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9C64B9 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Amdahls Law (암달의 법칙)" +--- + +# [[Amdahls Law (암달의 법칙)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Amdahl's Law (암달의 법칙).md]] +--- diff --git a/AI/Artificial-Intelligence-in-Games.md b/AI/Artificial-Intelligence-in-Games.md new file mode 100644 index 00000000..116055fd --- /dev/null +++ b/AI/Artificial-Intelligence-in-Games.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-281D7C +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Artificial-Intelligence-in-Games" +--- + +# [[Artificial-Intelligence-in-Games]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Artificial-Intelligence-in-Games.md]] +--- diff --git a/AI/Artificial-Intelligence.md b/AI/Artificial-Intelligence.md new file mode 100644 index 00000000..d3c264ec --- /dev/null +++ b/AI/Artificial-Intelligence.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-497BEF +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Artificial-Intelligence" +--- + +# [[Artificial-Intelligence]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Artificial-Intelligence.md]] +--- diff --git a/AI/Autism Spectrum Disorder (ASD) Intervention.md b/AI/Autism Spectrum Disorder (ASD) Intervention.md new file mode 100644 index 00000000..16b8730c --- /dev/null +++ b/AI/Autism Spectrum Disorder (ASD) Intervention.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-7DCE25 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Autism Spectrum Disorder (ASD) Intervention" +--- + +# [[Autism Spectrum Disorder (ASD) Intervention]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Autism Spectrum Disorder (ASD) Intervention.md]] +--- diff --git a/AI/Automated-Game-Testing.md b/AI/Automated-Game-Testing.md new file mode 100644 index 00000000..2e3e012c --- /dev/null +++ b/AI/Automated-Game-Testing.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-79D258 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Automated-Game-Testing" +--- + +# [[Automated-Game-Testing]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Automated-Game-Testing.md]] +--- diff --git a/AI/Automated-Map-Generation.md b/AI/Automated-Map-Generation.md new file mode 100644 index 00000000..11073524 --- /dev/null +++ b/AI/Automated-Map-Generation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-77D78F +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Automated-Map-Generation" +--- + +# [[Automated-Map-Generation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Automated-Map-Generation.md]] +--- diff --git a/AI/Automated-Reasoning.md b/AI/Automated-Reasoning.md new file mode 100644 index 00000000..dac71956 --- /dev/null +++ b/AI/Automated-Reasoning.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-3A9338 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Automated-Reasoning" +--- + +# [[Automated-Reasoning]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Automated-Reasoning.md]] +--- diff --git a/AI/Automated-Refactoring-Tools.md b/AI/Automated-Refactoring-Tools.md new file mode 100644 index 00000000..425f29ec --- /dev/null +++ b/AI/Automated-Refactoring-Tools.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-051F56 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Automated-Refactoring-Tools" +--- + +# [[Automated-Refactoring-Tools]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Automated-Refactoring-Tools.md]] +--- diff --git a/AI/Automated-Theorem-Proving.md b/AI/Automated-Theorem-Proving.md new file mode 100644 index 00000000..ca8044d6 --- /dev/null +++ b/AI/Automated-Theorem-Proving.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-ABEDDE +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Automated-Theorem-Proving" +--- + +# [[Automated-Theorem-Proving]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Automated-Theorem-Proving.md]] +--- diff --git a/AI/Automated_Mapping.md b/AI/Automated_Mapping.md new file mode 100644 index 00000000..fc8bdd4a --- /dev/null +++ b/AI/Automated_Mapping.md @@ -0,0 +1,29 @@ +--- +id: P-REINFORCE-AI-004 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.91 +tags: [ai, slam, mapping, autonomous] +last_reinforced: 2026-04-20 +github_commit: "batch-reinforce-05" +--- + +# [[Automated Mapping & SLAM]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 미지의 공간을 탐사함과 동시에 자신의 위치를 파악하여 정밀한 지도를 그려내는 자율 주행의 눈과 지능. + +## 📖 구조화된 지식 (Synthesized Content) +- **추출된 패턴:** LiDAR/카메라 데이터 퓨전을 통해 특징을 추출하고, 루프 폐쇄(Loop Closure)를 통해 지도 정합의 오차를 보정하며 전역 일관성을 확보하는 패턴. +- **세부 내용:** + - 4단계 매핑 파이프라인: 데이터 획득 -> 특징 추출 -> 위상 구조 생성 -> 전역 최적화. + - 번들 조정(Bundle Adjustment)을 통한 그래프 기반 최적화 기법 적용. + - 고정밀(HD) 지도 자동 생성 및 실시간 업데이트 로직. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 수동 지도 제작 방식에서 센서 기반의 완전 자율 매핑 시스템으로의 패러다임 변화. +- **정책 변화:** 지식 구조(w2) 관점에서 자율 주행 에이전트의 '공간 지능' 핵심 요소로 정의. + +## 🔗 지식 연결 (Graph) +- **Parent:** [[10_Wiki/💡 Topics/AI]] +- **Related:** [[Computer_Vision]], [[VPS_NeRF]], [[Spatial-Computing]] +- **Raw Source:** [[00_Raw/2026-04-20/Automated-Map-Generation.md]] diff --git a/AI/Autonomous Vehicle Path Planning.md b/AI/Autonomous Vehicle Path Planning.md new file mode 100644 index 00000000..061163c6 --- /dev/null +++ b/AI/Autonomous Vehicle Path Planning.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-831796 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Autonomous Vehicle Path Planning" +--- + +# [[Autonomous Vehicle Path Planning]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Autonomous Vehicle Path Planning.md]] +--- diff --git a/AI/Autonomous-Polling-Wait-Automation.md b/AI/Autonomous-Polling-Wait-Automation.md new file mode 100644 index 00000000..91179239 --- /dev/null +++ b/AI/Autonomous-Polling-Wait-Automation.md @@ -0,0 +1,35 @@ +--- +id: P-REINFORCE-AUTO-9B8C6B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Autonomous-Polling-Wait-Automation" +--- + +# [[Autonomous-Polling-Wait-Automation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Deep Research 작업의 완료를 에이전트가 스스로 감지하고, "가져오기" 버튼을 누를 필요 없이 즉시 데이터를 수집하는 지능형 대기 시스템입니다. 10초 단위의 상태 폴링(Polling)을 통해 NotebookLM의 작업 상태를 모니터링하며, 완료 시점에 즉각적으로 다음 단계(Synthesis)로 전이됩니다. + +## 📖 구조화된 지식 (Synthesized Content) +NotebookLM의 'Deep Research' 기능은 대규모 데이터를 처리하므로 평균 3~10분의 시간이 소요됩니다. 이전 버전에서는 사용자가 브라우저를 모니터링하다가 수동으로 '합성하기' 버튼을 눌러야 루프가 이어졌으나, 이를 다음과 같이 자동화했습니다. + +1. **State Polling Interface**: `research_status` API를 호출하여 작업의 진행 상태를 JSON 형태로 실시간 수집합니다. +2. **Hybrid Wait Strategy**: + - **Auto Mode**: 최대 10분(60회 폴링) 동안 'completed' 상태를 추적하며, 감지 즉시 `research_import`를 실행합니다. + - **Manual Fallback**: 만약 10분이 지나도 완료되지 않거나 네트워크 오류가 발생하면, 시스템은 중단되지 않고 다시 '수동 대기' 모드로 전환되어 사용자의 판단을 기다립니다. +3. **Promise-Level Sync**: JavaScript의 비동기 제어 구조(Async/Await)를 활용하여, 폴링 루프가 도는 동안 엔진의 메인 루프를 안전하게 일시 정지(Suspend) 시킵니다. + +이 자동화로 인해 에이전트는 진정한 의미의 '잠들지 않는 연구원'이 되었으며, 대규모 지식 수집 시 사용자의 피로도를 획기적으로 낮추었습니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[NotebookLM-Automated-Authentication-CLI]], [[Autonomous-Loop-State-Machine]] +- **Projects/Contexts:** [[P-Reinforce-Agent-v2.6]] +- **Contradictions/Notes:** 너무 잦은 폴링은 API 할당량(Quota) 이슈를 유발할 수 있으므로 10초 간격이 권장됩니다. +- Raw Source: [[00_Raw/2026-04-20/Autonomous-Polling-Wait-Automation.md]] +--- diff --git a/AI/Autonomous-Vehicle-Path-Planning.md b/AI/Autonomous-Vehicle-Path-Planning.md new file mode 100644 index 00000000..630bae3f --- /dev/null +++ b/AI/Autonomous-Vehicle-Path-Planning.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-405EC6 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Autonomous-Vehicle-Path-Planning" +--- + +# [[Autonomous-Vehicle-Path-Planning]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Autonomous-Vehicle-Path-Planning.md]] +--- diff --git a/AI/Axify.md b/AI/Axify.md new file mode 100644 index 00000000..7a3221c1 --- /dev/null +++ b/AI/Axify.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-FB7EF7 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Axify" +--- + +# [[Axify]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Axify는 엔지니어링 리더와 소프트웨어 개발 팀의 생산성 및 배포 성과를 측정하고 최적화하도록 돕는 플랫폼입니다 [1-3]. DORA 지표, 가치 흐름 매핑(VSM), 개발자 생산성 등 다양한 소프트웨어 엔지니어링 지표를 실시간으로 추적 및 시각화합니다 [2, 4]. 특히 AI 기반 코드 리뷰 도구 등 새로운 기술의 도입이 개발 주기와 실제 배포 결과에 미치는 영향을 객관적인 데이터로 비교하고 분석하는 기능을 제공합니다 [5, 6]. + +## 📖 구조화된 지식 (Synthesized Content) +- **소프트웨어 딜리버리 및 지표 추적:** Axify는 DORA 지표 대시보드, 소프트웨어 엔지니어링 지표 추적, 목표 설정 및 진행률 보고 기능을 제공합니다 [2, 7]. 또한 가치 흐름 매핑(Value Stream Mapping)을 통해 전체 소프트웨어 개발 과정의 시각적 지도를 제공하여 배포 효율성을 높입니다 [2, 4]. +- **Axify Intelligence:** 엔지니어링 리더를 위한 AI 의사결정 파트너 기능입니다 [1, 2]. 범용 LLM과 달리 조직의 실제 저장소, 파이프라인, 과거 장애 기록 등 실제 전송 데이터를 기반으로 분석을 수행합니다 [8]. 지표가 변동된 원인을 설명하고 구체적인 워크플로우 조정 방안을 추천하며, 챗봇 인터페이스를 통해 사용자가 직접 질문하고 권장 조치를 적용할 수 있습니다 [8]. +- **AI 도입 영향(AI Impact) 측정:** AI 리뷰 에이전트와 같은 도구 도입 시, 단순한 사용량 지표(가짜 지표)가 아니라 팀 단위의 실제 PR(Pull Request) 주기 시간, 최초 리뷰까지의 시간, AI 지원 커밋 비율, 제안 수락률 등의 실질적 행동 변화를 추적합니다 [9-11]. 나아가 PR 데이터와 배포 데이터를 연결하여 배포 빈도 및 변경 리드 타임(Lead time for changes)이 AI 도입 전후로 어떻게 달라졌는지 명확한 추세 분석을 가능하게 합니다 [10, 12]. +- **통합성 및 활용 사례:** Slack, Microsoft Teams, Jira, Azure DevOps, GitHub, GitLab 등 개발팀이 널리 사용하는 기존 도구들과 원활하게 통합됩니다 [7]. Axify를 도입한 BDC는 최대 51%의 배포 속도 향상을, Newforma는 22배 많은 배포 성과를 달성한 사례가 있습니다 [13]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Axify Intelligence]], [[DORA Metrics]], [[Value Stream Mapping]] +- **Projects/Contexts:** [[AI Adoption and Impact Measurement]], [[Developer Productivity Tracking]] +- **Contradictions/Notes:** 소스 내에서 상충되는 의견은 발견되지 않았습니다. 다만 Axify는 새로운 AI 리뷰 도구를 단순히 설치하거나 제안 횟수 자체를 세는 것(Vanity metrics)만으로는 배포 개선을 증명할 수 없다고 지적하며, 실제 성과(DORA 지표 등)로 이어지는지 측정하는 것의 중요성을 강조합니다 [5, 9, 14]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Axify.md]] +--- diff --git a/AI/Azure DevOps.md b/AI/Azure DevOps.md new file mode 100644 index 00000000..ef56a839 --- /dev/null +++ b/AI/Azure DevOps.md @@ -0,0 +1,35 @@ +--- +id: P-REINFORCE-AUTO-6BDC0C +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Azure DevOps" +--- + +# [[Azure DevOps]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 소스에 관련 정보가 부족합니다. 주어진 소스에서는 Azure DevOps 자체에 대한 구체적인 정의나 기능에 대한 설명이 없으며, 단지 다른 소프트웨어 분석 및 관리 도구들이 연동을 지원하는 여러 개발 플랫폼 중 하나로만 간략히 언급되어 있습니다 [1, 2]. + +## 📖 구조화된 지식 (Synthesized Content) +소스에 관련 정보가 부족합니다. + +제공된 소스에서 파악할 수 있는 Azure DevOps에 대한 단편적인 정보는 다음과 같습니다: +* **도구 통합(Integrations) 플랫폼으로서의 활용:** + * AI 코드 리뷰 및 코드 품질/보안 검증 도구인 **SonarQube**는 개발자의 워크플로우를 지원하기 위해 GitHub, Bitbucket, GitLab 등과 함께 Azure DevOps와의 통합을 제공합니다 [1]. + * 소프트웨어 엔지니어링 팀의 DORA 지표 측정 및 생산성 분석 도구인 **Axify** 또한 Slack, Microsoft Teams, Jira 등의 도구와 더불어 Azure DevOps와의 연동을 지원합니다 [2]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[SonarQube]], [[Axify]] +- **Projects/Contexts:** 외부 AI 코드 리뷰 도구 및 엔지니어링 생산성 분석 대시보드와의 파트너십 및 시스템 통합(Integration) 맥락 환경 [1, 2] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Azure DevOps.md]] +--- diff --git a/AI/Baseline Project.md b/AI/Baseline Project.md new file mode 100644 index 00000000..e4bd1ebb --- /dev/null +++ b/AI/Baseline Project.md @@ -0,0 +1,35 @@ +--- +id: P-REINFORCE-AUTO-E3E3EF +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Baseline Project" +--- + +# [[Baseline Project]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Baseline Project는 Chrome, Edge, Firefox, Safari 등 주요 웹 브라우저에서 최소 30개월 이상 지속적으로 지원된 '널리 사용 가능한 브라우저 API(widely available browser APIs)'를 정의하는 프로젝트입니다 [1]. 이 프로젝트는 특정 웹 플랫폼 기능이 언제부터 모든 주요 브라우저에서 안전하게 사용될 수 있는지에 대한 타임라인을 제공하여 개발자들을 돕습니다 [1]. 브라우저의 네이티브 지원이 확대되어 베이스라인 기능이 늘어나면, 대체용 JavaScript 사용량이 줄어들어 결과적으로 웹 성능이 향상되는 이점이 있습니다 [2]. + +## 📖 구조화된 지식 (Synthesized Content) +- **정의 및 기준:** Baseline Project는 Chrome, Edge, Firefox, Safari 브라우저 모두에서 최소 30개월 동안 지원된 브라우저 API 기능들을 묶어 '널리 사용 가능한(widely available)' 기능으로 정의합니다 [1]. +- **성능 측정과 타임라인:** 지원되는 API 중 일부는 비교적 최근에 추가된 것일 수 있으며, Rick Viscomi가 만든 웹사이트를 통해 다양한 기능들이 언제 베이스라인으로 편입되었거나 될 예정인지 보여주는 타임라인을 확인할 수 있습니다 [1]. 예를 들어, Safari가 2023년에 '리소스 크기 측정(Measuring resources size)'과 '서버 타이밍 수집(Collecting server timings)' 기능 지원을 개선함에 따라, 해당 기능들은 2025년 9월을 기점으로 베이스라인이 되었습니다 [1, 2]. +- **주요 편입 기능 및 향후 예정:** + - 컨테이너 쿼리(container queries), CompressionStream API, MathML 렌더링 기능은 2025년부터 널리 사용 가능한 베이스라인으로 편입되었습니다 [2]. + - 이미지 포맷인 AVIF는 2026년 7월에 널리 사용 가능한 상태가 될 것이며, 리소스 로딩 우선순위를 정하는 `fetchpriority` 속성은 2027년 4월에 베이스라인에 편입될 예정입니다 [3]. +- **웹 성능에 미치는 영향:** 새로운 기능들이 네이티브 웹 플랫폼에서 널리 지원되어 베이스라인 수준에 도달하면, 이를 구현하기 위해 필요했던 JavaScript 코드의 양이 줄어들게 되어 결과적으로 더 나은 웹 성능을 제공할 수 있게 됩니다 [2]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Browser APIs]], [[Web Performance]] +- **Projects/Contexts:** [[Web Platform Features]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Baseline Project.md]] +--- diff --git a/AI/Bayesian Inference.md b/AI/Bayesian Inference.md new file mode 100644 index 00000000..314b0ba3 --- /dev/null +++ b/AI/Bayesian Inference.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5875AD +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Bayesian Inference" +--- + +# [[Bayesian Inference]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Bayesian Inference.md]] +--- diff --git a/AI/Behavioral Finance.md b/AI/Behavioral Finance.md new file mode 100644 index 00000000..72a2e354 --- /dev/null +++ b/AI/Behavioral Finance.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A72BA3 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Behavioral Finance" +--- + +# [[Behavioral Finance]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Behavioral Finance.md]] +--- diff --git a/AI/Behavioral-Economics.md b/AI/Behavioral-Economics.md new file mode 100644 index 00000000..dd16919c --- /dev/null +++ b/AI/Behavioral-Economics.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9A5386 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Behavioral-Economics" +--- + +# [[Behavioral-Economics]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Behavioral-Economics.md]] +--- diff --git a/AI/Bellman Equation.md b/AI/Bellman Equation.md new file mode 100644 index 00000000..4b368bf7 --- /dev/null +++ b/AI/Bellman Equation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-019B9B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Bellman Equation" +--- + +# [[Bellman Equation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Bellman Equation.md]] +--- diff --git a/AI/Best SAST Tools in 2026.md b/AI/Best SAST Tools in 2026.md new file mode 100644 index 00000000..afebe426 --- /dev/null +++ b/AI/Best SAST Tools in 2026.md @@ -0,0 +1,46 @@ +--- +id: P-REINFORCE-AUTO-A622AB +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Best SAST Tools in 2026" +--- + +# [[Best SAST Tools in 2026]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 2026년 최고의 SAST(정적 애플리케이션 보안 테스트) 도구들은 기존의 단순 패턴 매칭 방식을 넘어 AI 및 머신러닝(ML)을 분석 엔진과 결합하여 탐지 정확도와 개발자 경험을 극대화하고 있습니다 [1, 2]. 이 도구들은 소스 코드가 실행되기 전 정지 상태에서 코드를 분석하여 보안 취약점과 비즈니스 로직 오류를 조기에 발견하고, 검증된 수정 코드(Auto-fix)를 자동으로 제안합니다 [2, 3]. 개발 환경(IDE), Pull Request(PR), CI/CD 파이프라인에 매끄럽게 통합되어 보안 점검을 개발 초기 단계로 이동시키는 '시프트 레프트(Shift-left)' 접근법을 실현하는 것이 핵심 특징입니다 [1, 3, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +**전통적 SAST와 AI 기반 SAST의 진화** +전통적인 SAST는 규칙과 패턴, 데이터 흐름 분석에 의존하지만, 최신 SAST 도구들은 AI와 LLM(대형 언어 모델)을 도입하여 세 가지 측면에서 진화했습니다 [2]. 첫째, 패턴이 아닌 코드의 문맥과 논리를 파악해 비즈니스 로직 결함을 탐지합니다 [2]. 둘째, 탐지된 결과들을 그룹화하고 설명하여 노이즈를 필터링(Triage)합니다 [2]. 셋째, AI가 수정안을 생성하고 일부 플랫폼에서는 이를 PR에 도달하기 전에 검증하여 안전한 조치(Remediation)를 가능하게 합니다 [2]. + +**2026년 주요 SAST 도구 비교** +* **Corgea:** 스캔 엔진의 핵심에 LLM을 사용하여 문맥과 로직을 이해하는 AI 네이티브(AI-native) 플랫폼입니다 [5]. 5% 미만의 낮은 오탐률(False Positive)과 검증된 AI 수정 기능을 제공하며, 비즈니스 로직 결함 발견에 특화되어 있습니다 [6-8]. +* **Checkmarx:** 복잡한 거버넌스를 가진 대기업에 적합한 AI 보조(AI-assisted) 플랫폼입니다 [9]. AI Query Builder를 통해 조직 고유의 패턴을 자연어로 커스터마이징할 수 있으며 IDE 내 자동 복구 기능을 지원합니다 [6, 10]. +* **Snyk Code:** 수천만 개의 커밋을 학습한 DeepCode AI를 기반으로 심볼릭 추론과 ML을 결합한 하이브리드 도구입니다 [11, 12]. 매우 빠른 IDE 실시간 스캔과 패치에 대한 재테스트를 거치는 자동 수정(Agent Fix) 기능을 제공합니다 [6, 11, 12]. +* **Semgrep:** 매우 빠른 스캔 속도를 지닌 패턴 매칭 규칙 기반 도구에 AI 어시스턴트를 결합했습니다 [13]. AI를 활용해 최대 98%에 달하는 노이즈를 필터링하고 PR 내에서 수정 안내를 제공합니다 [6, 13]. +* **Veracode:** 100개 이상의 언어를 지원하며 정확도와 규정 준수를 중시합니다 [6, 14]. 자체 복구 데이터베이스에 RAG(검색 증강 생성)를 결합하여 결함당 최대 5개의 패치를 생성하고 1.1% 미만의 극히 낮은 오탐률을 자랑합니다 [14, 15]. +* **GitHub Advanced Security:** CodeQL을 이용한 시맨틱 분석과 Copilot Autofix를 결합하여 GitHub 워크플로우에 매끄럽게 통합됩니다 [16]. 탐지된 알림의 90%에 대해 코드를 제안하지만, 맞춤형 튜닝이 없으면 노이즈가 발생할 수 있습니다 [6, 16, 17]. +* **Fortify (OpenText):** 20년간 축적된 SAST 취약점 데이터베이스를 바탕으로 예측 모델과 LLM(Fortify Aviator)을 결합하여 컨텍스트화된 코드 수정을 제공합니다 [6, 18, 19]. +* **Qwiet AI (Harness):** 코드 속성 그래프(CPG) 분석과 LLM 기반 자동 수정(AutoFix)을 조합하여 빠른 스캔 속도와 도달 가능성 기반의 위험도 필터링을 제공합니다 [6, 20]. +* **SonarQube:** 30개 이상의 언어를 지원하는 광범위한 코드 품질 및 보안 통합 플랫폼입니다 [6, 21]. 정밀하게 튜닝된 규칙 기반 탐지에 LLM을 이용한 AI CodeFix를 더하여 이슈 수정을 돕습니다 [22]. +* **Endor Labs:** 소프트웨어 구성 분석(SCA)과 SAST를 통합하여, 종속성 문제와 자사 코드 간의 함수 수준 도달 가능성(Reachability)을 심층 분석하고 경고 피로를 줄이는 데 특화되어 있습니다 [6, 23, 24]. + +**올바른 SAST 도구 선정 기준** +단순한 기능 목록보다 조직의 병목 현상을 파악하는 것이 중요합니다 [25]. 노이즈가 문제라면 필터링이 강력한 도구(Semgrep, Veracode 등)를, 수정 속도가 느리다면 검증된 자동 수정 기능이 있는 도구(Corgea, Snyk 등)를 선택해야 합니다 [25]. 또한 AI가 생성한 패치가 개발자에게 적용되기 전에 재테스트나 품질 게이트를 거치는지 확인하여 '안전한 수정 인체공학'을 보장하는 것이 필수적입니다 [26]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Static Application Security Testing (SAST)]], [[Artificial Intelligence (AI)]], [[Shift-left]], [[Dynamic Application Security Testing (DAST)]], [[False Positives]] +- **Projects/Contexts:** [[소프트웨어 개발 수명 주기(SDLC)]], [[지속적 통합 및 배포(CI/CD)]], [[Pull Request (PR) 워크플로우]] +- **Contradictions/Notes:** 전통적인 패턴 기반 SAST는 복잡한 비즈니스 로직 및 인증 플로우의 결함을 찾는 데 한계가 있는 반면, 분석 엔진 자체에 LLM을 탑재한 AI-native 도구(예: Corgea)는 이를 포착하는 데 더 효과적입니다 [27]. 하지만, AI 기반의 빠른 자동 수정(Auto-fix)이 검증이나 가드레일 없이 제공될 경우 오히려 "빠르고 잘못된 수정"을 낳아 더 큰 문제를 유발할 수 있으므로, 벤더사의 패치 재테스트 지원 여부가 매우 중요하게 다루어집니다 [12, 15, 26]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Best SAST Tools in 2026.md]] +--- diff --git a/AI/Best-of-N Sampling (최적 샘플링).md b/AI/Best-of-N Sampling (최적 샘플링).md new file mode 100644 index 00000000..0688a7be --- /dev/null +++ b/AI/Best-of-N Sampling (최적 샘플링).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-F28615 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Best-of-N Sampling (최적 샘플링)" +--- + +# [[Best-of-N Sampling (최적 샘플링)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Best-of-N Sampling (최적 샘플링).md]] +--- diff --git a/AI/BioShock (2007).md b/AI/BioShock (2007).md new file mode 100644 index 00000000..97beb80c --- /dev/null +++ b/AI/BioShock (2007).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-422DE2 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - BioShock (2007)" +--- + +# [[BioShock (2007)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/BioShock (2007).md]] +--- diff --git a/AI/BioShock-Critique.md b/AI/BioShock-Critique.md new file mode 100644 index 00000000..979b887e --- /dev/null +++ b/AI/BioShock-Critique.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-3BB6D4 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - BioShock-Critique" +--- + +# [[BioShock-Critique]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/BioShock-Critique.md]] +--- diff --git a/AI/Bioenergetics.md b/AI/Bioenergetics.md new file mode 100644 index 00000000..779ce760 --- /dev/null +++ b/AI/Bioenergetics.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-DD3FFE +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Bioenergetics" +--- + +# [[Bioenergetics]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Bioenergetics.md]] +--- diff --git a/AI/Bioinformatics-Structure-Prediction.md b/AI/Bioinformatics-Structure-Prediction.md new file mode 100644 index 00000000..50cc8179 --- /dev/null +++ b/AI/Bioinformatics-Structure-Prediction.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-230A20 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Bioinformatics-Structure-Prediction" +--- + +# [[Bioinformatics-Structure-Prediction]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Bioinformatics-Structure-Prediction.md]] +--- diff --git a/AI/Biomechanics-of-Injury.md b/AI/Biomechanics-of-Injury.md new file mode 100644 index 00000000..03445cef --- /dev/null +++ b/AI/Biomechanics-of-Injury.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-928880 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Biomechanics-of-Injury" +--- + +# [[Biomechanics-of-Injury]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Biomechanics-of-Injury.md]] +--- diff --git a/AI/Biometrics.md b/AI/Biometrics.md new file mode 100644 index 00000000..9ee93c40 --- /dev/null +++ b/AI/Biometrics.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-90C871 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Biometrics" +--- + +# [[Biometrics]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Biometrics.md]] +--- diff --git a/AI/Bounded Contexts.md b/AI/Bounded Contexts.md new file mode 100644 index 00000000..dfb67dc4 --- /dev/null +++ b/AI/Bounded Contexts.md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-61D79F +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Bounded Contexts" +--- + +# [[Bounded Contexts]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Bounded Contexts는 도메인 주도 설계(Domain-Driven Design, DDD)에서 크고 복잡한 비즈니스 도메인을 작고 관리하기 쉬운 하위 도메인으로 분할한 것을 의미합니다 [1, 2]. 각 컨텍스트는 자신만의 독립적인 모델과 보편적 언어(Ubiquitous Language)를 가집니다 [1, 2]. 이를 통해 도메인 모델을 순수하고 명확하게 집중된 상태로 유지할 수 있습니다 [1]. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Domain-Driven Design (DDD)]], [[Ubiquitous Language]], [[Microservices Architecture]], [[Subdomains]] +- **Projects/Contexts:** [[모놀리식 아키텍처에서의 마이그레이션]], [[소프트웨어 아키텍처 설계]] +- **Contradictions/Notes:** 소스 간의 모순은 없으며, 모두 Bounded Contexts를 복잡성을 줄이고 시스템을 독립적인 모듈로 나누는 데 필수적인 DDD의 핵심 개념으로 일관되게 설명하고 있습니다. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Bounded Contexts.md]] +--- diff --git a/AI/Bounded Rationality.md b/AI/Bounded Rationality.md new file mode 100644 index 00000000..562e2f5b --- /dev/null +++ b/AI/Bounded Rationality.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-016A0B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Bounded Rationality" +--- + +# [[Bounded Rationality]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Bounded Rationality.md]] +--- diff --git a/AI/Bounded-Contexts-and-Interface-Segregation.md b/AI/Bounded-Contexts-and-Interface-Segregation.md new file mode 100644 index 00000000..022f7d7c --- /dev/null +++ b/AI/Bounded-Contexts-and-Interface-Segregation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-02AF46 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Bounded-Contexts-and-Interface-Segregation" +--- + +# [[Bounded-Contexts-and-Interface-Segregation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Bounded-Contexts-and-Interface-Segregation.md]] +--- diff --git a/AI/Brain-Derived Neurotrophic Factor (BDNF).md b/AI/Brain-Derived Neurotrophic Factor (BDNF).md new file mode 100644 index 00000000..6447bb5d --- /dev/null +++ b/AI/Brain-Derived Neurotrophic Factor (BDNF).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9F6F1B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Brain-Derived Neurotrophic Factor (BDNF)" +--- + +# [[Brain-Derived Neurotrophic Factor (BDNF)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Brain-Derived Neurotrophic Factor (BDNF).md]] +--- diff --git a/AI/Branded-Types-for-Nominal-Typing.md b/AI/Branded-Types-for-Nominal-Typing.md new file mode 100644 index 00000000..ca91a377 --- /dev/null +++ b/AI/Branded-Types-for-Nominal-Typing.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6DAFA5 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Branded-Types-for-Nominal-Typing" +--- + +# [[Branded-Types-for-Nominal-Typing]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Branded-Types-for-Nominal-Typing.md]] +--- diff --git a/AI/Branded-Types.md b/AI/Branded-Types.md new file mode 100644 index 00000000..c85af48d --- /dev/null +++ b/AI/Branded-Types.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6FD185 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Branded-Types" +--- + +# [[Branded-Types]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Branded-Types.md]] +--- diff --git a/AI/Burnout Prevention in Professional Gaming.md b/AI/Burnout Prevention in Professional Gaming.md new file mode 100644 index 00000000..5dc94cf1 --- /dev/null +++ b/AI/Burnout Prevention in Professional Gaming.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-68BEC5 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Burnout Prevention in Professional Gaming" +--- + +# [[Burnout Prevention in Professional Gaming]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Burnout Prevention in Professional Gaming.md]] +--- diff --git a/AI/CI_CD 및 Pull Request 자동화 리뷰.md b/AI/CI_CD 및 Pull Request 자동화 리뷰.md new file mode 100644 index 00000000..7aaa50da --- /dev/null +++ b/AI/CI_CD 및 Pull Request 자동화 리뷰.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-877DCA +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - CI_CD 및 Pull Request 자동화 리뷰" +--- + +# [[CI_CD 및 Pull Request 자동화 리뷰]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> CI/CD 및 Pull Request(PR) 자동화 리뷰는 소프트웨어 개발 수명 주기(SDLC)에서 코드 병합 이전에 정적 분석 도구(SAST), 린터(Linter), AI 코드 리뷰 봇 등을 활용하여 취약점, 버그, 스타일 위반을 자동으로 검사하는 과정입니다 [1, 2]. 이를 통해 빠른 피드백 루프를 형성하고, 일관된 코드 품질 기준을 강제하며, CI/CD 파이프라인 내에서 품질 게이트(Quality Gate) 역할을 수행하여 인간 리뷰어의 피로도를 줄이고 보안과 품질을 극대화합니다 [3-6]. + +## 📖 구조화된 지식 (Synthesized Content) +* **파이프라인 통합 및 품질 게이트 (Quality Gates):** SonarQube, Snyk, CodeQL과 같은 자동화 분석 도구는 CI/CD 파이프라인 및 PR 워크플로우에 직접 통합됩니다 [1, 7-9]. PR이 생성되거나 코드가 푸시될 때 자동으로 검사를 실행하며, 사전 정의된 품질 게이트 규칙이나 심각도 임계값에 따라 PR 병합을 차단하거나 빌드를 실패하게 만들어 불량 코드가 프로덕션 환경에 도달하는 것을 원천적으로 방지합니다 [5, 10, 11]. +* **Pre-commit 단계의 선제적 자동화 (Husky & lint-staged):** CI 파이프라인 이전에 로컬 개발 환경에서 문제를 잡기 위해 Husky와 lint-staged를 주로 결합하여 사용합니다 [12, 13]. Husky는 `pre-commit`과 같은 Git 훅(Git hooks)을 중앙에서 관리하고, lint-staged는 변경되어 커밋 대기 중인 파일(staged files)에 대해서만 ESLint(정적 분석 및 린팅)와 Prettier(코드 포매팅)를 빠르게 실행합니다 [14-17]. 이를 통해 오류가 없거나 스타일 규칙을 준수한 코드만 커밋되도록 강제합니다 [16, 18]. +* **AI 기반 PR 자동 리뷰:** 최근의 자동화 리뷰 생태계는 생성형 AI와 머신러닝을 활용하여 PR 요약, 보안 취약점 식별, 자동 수정(Auto-fix) 코드 제안 기능을 PR 스레드 내에 직접 제공합니다 [19-21]. CodeRabbit, PR-Agent, Snyk Code, GitHub Copilot 등은 팀의 표준을 강제하며 개발자에게 실시간에 가까운 인라인 피드백을 제공하여 PR 주기 시간과 최초 리뷰 대기 시간(Time to first review)을 크게 단축시킵니다 [4, 22-25]. +* **수동 리뷰와의 하이브리드 병행 (Hybrid Approach):** 자동화된 리뷰는 구문 오류, 코드 스멜(Code smells), 널리 알려진 보안 결함 등을 빠르고 일관되게 검출하는 데 탁월하지만, 코드의 근본적인 의도나 비즈니스 로직, 아키텍처 맥락을 이해하는 데에는 한계가 존재합니다 [26-28]. 따라서 CI/CD 및 Git 훅을 통한 자동화 도구로 1차적인 기계적 검증을 처리하고, 인간 리뷰어는 아키텍처 설계, 보안 문맥, 비즈니스 로직 검증에 집중하는 '하이브리드 코드 리뷰'가 현재의 가장 이상적인 모범 사례로 꼽힙니다 [6, 11, 29, 30]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Static Application Security Testing (SAST)]], [[Git Hooks]], [[AI Code Review]] +- **Projects/Contexts:** [[CI/CD Pipelines]], [[DevSecOps]] +- **Contradictions/Notes:** 소스들은 자동화된 리뷰 도구가 매우 빠르고 일관적이지만 인간 리뷰어를 완전히 대체할 수는 없다고 주장합니다. 자동화 도구나 AI 봇은 문맥 맹점(Context Blindness)이 있어 아키텍처 설계나 비즈니스 로직을 온전히 이해하지 못하므로, 기계가 루틴한 검사를 담당하고 사람은 고차원적인 판단을 내리는 하이브리드 방식이 필수적이라고 강조합니다 [28, 31, 32]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/CI_CD 및 Pull Request 자동화 리뷰.md]] +--- diff --git a/AI/CI_CD 파이프라인 및 IDE 통합 보안.md b/AI/CI_CD 파이프라인 및 IDE 통합 보안.md new file mode 100644 index 00000000..a5e28903 --- /dev/null +++ b/AI/CI_CD 파이프라인 및 IDE 통합 보안.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-F8BCE8 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - CI_CD 파이프라인 및 IDE 통합 보안" +--- + +# [[CI_CD 파이프라인 및 IDE 통합 보안]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> CI/CD 파이프라인 및 IDE 통합 보안은 소프트웨어 개발 프로세스 전반에 걸쳐 코드의 품질과 보안을 유지하기 위한 핵심 접근법입니다 [1], [2]. 개발자가 코드를 작성하는 IDE 환경과 코드가 병합 및 배포되는 CI/CD 워크플로우에 정적 분석(SAST) 및 자동화된 보안 검사 도구를 내장하여 실시간 피드백을 제공합니다 [3], [4]. 이를 통해 개발자는 코드의 결함과 취약점을 조기에 식별하고 수정할 수 있어 안전하고 효율적인 소프트웨어 개발 수명 주기(SDLC)를 확보할 수 있습니다 [5], [6]. + +## 📖 구조화된 지식 (Synthesized Content) +* **IDE 내 실시간 보안 검사:** SonarQube for IDE나 Snyk Code와 같은 플러그인은 Visual Studio, VS Code, JetBrains, Eclipse 등의 개발 환경에 직접 내장되어 작동합니다 [7], [8], [9]. 개발자가 코드를 작성하는 즉시 실시간으로 구문, 로직 및 보안 결함을 분석하여 즉각적인 피드백과 자동화된 수정 제안을 제공합니다 [7], [10]. 이를 통해 코드가 버전 관리 시스템에 커밋되기 전, 가장 이른 단계에서 보안 위험을 식별하고 제거할 수 있습니다 [11], [12]. +* **CI/CD 파이프라인 자동화 및 게이팅(Gating):** 코드가 풀 리퀘스트(Pull Request)나 브랜치에 푸시되어 빌드될 때, CI/CD 워크플로우 내에서 보안 스캔이 자동으로 실행됩니다 [5], [13], [9]. 조직은 심각도 임계값(Severity thresholds)이나 품질 게이트(Quality gates)를 설정하여, 기준을 충족하지 못하는 결함이나 보안 취약점이 발견되면 빌드를 실패하게 하거나 풀 리퀘스트 병합을 차단할 수 있습니다 [2], [14], [15], [16]. 이는 GitHub Actions, GitLab, Jenkins 등 다양한 DevOps 도구 체인과 긴밀하게 통합되어 이루어집니다 [4], [17], [15]. +* **시프트 레프트(Shift-Left) 및 규정 준수 강제:** IDE와 CI/CD 전반에 걸친 보안 통합은 취약점을 개발 과정의 초기에 발견하여 수정하는 '시프트 레프트' 보안 전략을 실현합니다 [11], [18]. 프로덕션 환경에 도달하기 전에 선제적으로 문제를 해결하므로 릴리스 이후 발생하는 결함을 수정하는 비용과 시간을 절감합니다 [6]. 또한, PCI, OWASP, CWE, STIG 등 주요 보안 및 규정 준수 표준을 조직 전체의 리포지토리와 팀에 일관되게 적용하고 강제할 수 있도록 지원합니다 [19], [20], [21], [22]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[SAST(정적 애플리케이션 보안 테스트)]], [[Shift-left(시프트 레프트)]], [[SDLC(소프트웨어 개발 수명 주기)]] +- **Projects/Contexts:** [[SonarQube]], [[Snyk Code]], [[DevSecOps]] +- **Contradictions/Notes:** 소스 내용 중 이 주제에 대한 명시적인 모순이나 반대 의견은 존재하지 않습니다. 모든 소스가 조기 발견(Shift-left)의 효율성 및 통합의 필요성에 동의하고 있습니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/CI_CD 파이프라인 및 IDE 통합 보안.md]] +--- diff --git a/AI/CI_CD.md b/AI/CI_CD.md new file mode 100644 index 00000000..e8c5077f --- /dev/null +++ b/AI/CI_CD.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-CFCF20 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - CI_CD" +--- + +# [[CI_CD]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> CI/CD(Continuous Integration / Continuous Delivery)는 소프트웨어 개발 라이프사이클(SDLC) 전반에 걸쳐 코드의 빌드, 테스트, 병합 및 배포 과정을 자동화하는 워크플로우 파이프라인입니다 [1-3]. 주로 정적 애플리케이션 보안 테스트(SAST) 및 AI 코드 리뷰 도구와 결합하여 코드 결함과 보안 취약점을 프로덕션 배포 전에 조기에 발견하고 차단하는 역할을 합니다 [4-6]. 이를 통해 개발 팀은 품질 저하 없이 일관되고 빠른 소프트웨어 릴리스 주기를 유지할 수 있습니다 [7-9]. + +## 📖 구조화된 지식 (Synthesized Content) +* **자동화된 품질 및 보안 스캔 통합:** CI/CD 파이프라인은 SonarQube, Snyk, Qodana와 같은 정적 코드 분석(SAST) 도구 및 AI 기반 코드 리뷰 도구가 실행되는 주요 환경입니다 [2, 6, 10, 11]. 개발 환경에서 코드가 푸시되거나 풀 리퀘스트(PR)가 생성되면 파이프라인 내에서 스캔이 자동으로 트리거되어, 잠재적 버그, 보안 취약점, 유지보수성 문제 등을 찾아냅니다 [3, 12-14]. +* **품질 게이트(Quality Gate)를 통한 정책 시행:** 파이프라인 내부에는 특정 심각도 임계값(threshold)을 초과하는 결함이나 보안 취약점이 발견될 경우 빌드를 중단시키거나 코드 병합을 차단하는 품질 게이트가 존재합니다 [2, 13, 15, 16]. 이러한 장치는 불량 코드가 프로덕션 환경에 도달하는 것을 방지하는 강력한 가드레일 역할을 수행합니다 [14, 17, 18]. +* **신속한 피드백 루프와 성능 요구사항:** CI/CD에 스캔을 통합함으로써 개발자는 취약점에 대한 즉각적이고 시의적절한 피드백을 실시간에 가깝게 받을 수 있습니다 [7, 18, 19]. 하지만, 도구가 전체 코드베이스를 너무 오래 검사하여 파이프라인의 속도를 저하시키는 것은 큰 병목 현상을 유발할 수 있습니다 [9, 20]. 따라서 변경된 파일만 점검하거나 스캔 속도가 빠른 도구를 사용하여 CI/CD 파이프라인의 속도를 저해하지 않는 것이 중요합니다 [15, 21, 22]. +* **하이브리드 코드 리뷰 워크플로우의 기반:** CI/CD 파이프라인 내에서의 자동화된 검사(구문 오류, 스타일 위반, 알려진 취약점 등)는 개발 초기에 기계적인 오류를 신속히 잡아내므로, 이후 인간 리뷰어가 복잡한 아키텍처나 비즈니스 로직 검토에 온전히 집중할 수 있도록 돕는 다층적(Hybrid) 코드 리뷰 프로세스의 핵심 기반으로 작용합니다 [14, 16, 23]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[SAST]], [[Quality Gate]], [[Pull Request]], [[Automated Code Review]] +- **Projects/Contexts:** 보안 스캔을 개발 워크플로우에 통합하기 위해 자주 사용되는 [[SonarQube Cloud]], [[Snyk Code]], [[Qodana]], [[GitHub Actions]] 기반 파이프라인 환경. +- **Contradictions/Notes:** 소스 문헌들은 CI/CD를 통한 자동화 검사가 빠르고 일관된 피드백을 제공하여 보안을 크게 향상시킨다고 주장하지만 [8], 자동화 도구는 비즈니스 로직이나 코드의 의도(Context)를 완전히 이해하지 못해 오탐(False Positive)을 유발할 수 있는 한계가 있으므로 파이프라인 자동화에만 의존해서는 안 되며 반드시 수동 리뷰와 결합해야 한다고 조언합니다 [14, 24, 25]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/CI_CD.md]] +--- diff --git a/AI/CPTED.md b/AI/CPTED.md new file mode 100644 index 00000000..7f789558 --- /dev/null +++ b/AI/CPTED.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9984E9 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - CPTED" +--- + +# [[CPTED]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/CPTED.md]] +--- diff --git a/AI/CV_Synthesis.md b/AI/CV_Synthesis.md new file mode 100644 index 00000000..4680510f --- /dev/null +++ b/AI/CV_Synthesis.md @@ -0,0 +1,29 @@ +--- +id: P-REINFORCE-AI-002 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.95 +tags: [ai, graphics, nerf, synthesis] +last_reinforced: 2026-04-20 +github_commit: "batch-reinforce-03" +--- + +# [[Computer Vision Synthesis]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 정적 이미지 분석을 넘어 새로운 시점과 현실적인 영상을 생성해내는 '창조적 비전'의 영역. + +## 📖 구조화된 지식 (Synthesized Content) +- **추출된 패턴:** NeRF(Neural Radiance Fields)와 같은 미분 가능한 렌더링 기법을 통해 2D 이미지로부터 3D 씬을 재구성하고 합성하는 패턴. +- **세부 내용:** + - View Synthesis: 다른 각도에서 본 물체나 풍경을 사실적으로 생성. + - Generative Models: GAN 및 Diffusion 모델을 활용한 고해상도 이미지 합성. + - 3DGS(Gaussian Splatting)와의 기술적 접점 및 실시간성 확보. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 단순 텍스처 매핑 기반 모델링에서 신경망 보간(Interpolation) 기반 합성으로의 전환. +- **정책 변화:** 성능(w1) 대비 품질의 균형점을 NeRF 계열 지식 중심으로 재편. + +## 🔗 지식 연결 (Graph) +- **Parent:** [[10_Wiki/💡 Topics/AI]] +- **Related:** [[NeRF]], [[3D_Gaussian_Splatting]], [[Generative-AI]] +- **Raw Source:** [[00_Raw/2026-04-20/Computer-Vision-Synthesis.md]] diff --git a/AI/Caliskan-Islam 등의 프로그램 바이너리 작성자 식별 연구.md b/AI/Caliskan-Islam 등의 프로그램 바이너리 작성자 식별 연구.md new file mode 100644 index 00000000..61426348 --- /dev/null +++ b/AI/Caliskan-Islam 등의 프로그램 바이너리 작성자 식별 연구.md @@ -0,0 +1,39 @@ +--- +id: P-REINFORCE-AUTO-0C1C8B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Caliskan-Islam 등의 프로그램 바이너리 작성자 식별 연구" +--- + +# [[Caliskan-Islam 등의 프로그램 바이너리 작성자 식별 연구]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +* **특징 추출 (Feature Extraction):** + 이 연구는 하이브리드 방식을 취하여 다양한 수준에서 프로그램의 특징을 추출했습니다. Netwide 및 Radare2 역어셈블러를 통해 어셈블리 코드 n-그램, 제어 흐름 그래프(CFG) 블록 유니그램 및 바이그램을 추출했습니다 [1, 2]. 또한 IDA Pro와 Hex-Rays 역컴파일러로 얻은 코드에서 단어 유니그램 및 라이브러리/내부 함수 이름을 추출하고, Joern 파서를 이용해 구문 분석을 수행하여 노드 유형 유니그램 같은 AST 기반의 특징도 활용했습니다 [1, 2]. +* **특징 차원 축소 (Feature Reduction):** + 초기에는 750,000개라는 방대하고 희소성(sparse)이 높은 특징 세트가 생성되었습니다. 랜덤 포레스트 훈련에 있어 희소성이 문제가 되자, 저자들은 이전 소스 코드 스타일로메트리 연구에서처럼 정보 이득(Information gain)을 기반으로 한 특징 선택 기법을 적용했습니다 [2]. 이를 통해 특징 차원을 2,000개 미만으로 줄였으며, 그 결과 분류 성공률이 30%에서 90%로 대폭 향상되었습니다 [2]. +* **통제된 환경에서의 식별 성능 (Google Code Jam 데이터):** + 구글 코드 잼의 C++ 제출 코드를 바탕으로 동일한 9개 문제를 푼 프로그래머 100명의 데이터를 평가했습니다. 500개의 트리로 구성된 랜덤 포레스트 분류기를 사용하여 9겹 교차 검증(9-fold cross-validation)을 진행한 결과, 축소된 특징 세트로 89.8%의 정확도를 달성했습니다 [2, 3]. 겹치지 않는 다른 100명 그룹에 적용했을 때도 92.8%의 정확도를 보였으며, 작성자 수를 600명으로 확대했을 때도 78.1%라는 비교적 높은 정확도를 유지했습니다 [3]. +* **야생(In the wild) 환경에서의 식별 성능 (GitHub 데이터):** + 실제 오픈소스 환경에서의 식별 가능성을 확인하기 위해 단일 기여자로 이루어진 GitHub의 C/C++ 저장소를 대상으로 테스트했습니다 [3, 4]. 복사된 코드나 라이브러리의 노이즈를 수작업으로 필터링한 후, 파일 수가 6~15개인 50명의 프로그래머 집단을 대상으로 실험했을 때 60.1%의 정확도를 기록했습니다 [3, 4]. +* **컴파일 최적화 및 난독화의 영향:** + 최적화 레벨 3을 적용한 컴파일 환경에서는 100명의 작성자를 대상으로 한 정확도가 85.7%로 다소 감소했으며, 심볼(Symbol) 정보를 완전히 제거한 경우에는 정확도가 23%나 급락했습니다 [3]. 그러나 Obfuscator-LLVM과 같은 도구를 통한 전문적인 난독화를 적용했을 때는 정확도 하락 폭이 단 3.6%에 불과하여, 작성자의 특정 코딩 스타일 패턴이 강력하게 유지됨을 확인했습니다 [3]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Code Stylometry]], [[Random Forest]], [[Abstract Syntax Tree (AST)]], [[Control Flow Graph (CFG)]] +- **Projects/Contexts:** [[Google Code Jam]], [[GitHub]] +- **Contradictions/Notes:** 소스 [2, 3]에 따르면, 초기 75만 개의 특징을 그대로 머신러닝에 투입했을 때는 성능이 30%에 그쳤으나, 정보 이득(Information gain)을 사용하여 특징을 2,000개 미만으로 대폭 줄였음에도 불구하고 정확도가 90% 근방으로 상승하는 반직관적인 결과를 보였습니다. 또한 심볼 정보 제거는 23%의 뚜렷한 성능 저하를 일으켰으나, 본격적인 소스 코드 난독화(Obfuscator-LLVM)는 식별 성능을 겨우 3.6%만 낮췄다는 흥미로운 점을 발견했습니다 [3]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Caliskan-Islam 등의 프로그램 바이너리 작성자 식별 연구.md]] +--- diff --git a/AI/Call Stack.md b/AI/Call Stack.md new file mode 100644 index 00000000..fa4eed17 --- /dev/null +++ b/AI/Call Stack.md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-081DEE +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Call Stack" +--- + +# [[Call Stack]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 콜 스택(Call Stack)은 Chrome DevTools의 성능(Performance) 분석 패널에서 페이지 실행 중 호출된 함수들의 계층 구조와 연쇄적인 실행 순서를 나타내는 요소입니다 [1-3]. 플레임 차트(Flame chart)나 Call Tree와 같은 시각적 도구를 통해 어떤 상위 이벤트가 하위 이벤트를 발생시켰는지 그 인과 관계를 보여줍니다 [1, 3, 4]. 이를 통해 개발자는 런타임 성능을 저하시키는 가장 무거운 스택이나 불필요한 자바스크립트 함수 호출 과정을 추적할 수 있습니다 [2, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Chrome DevTools]], [[Flame Chart]], [[Performance Panel]] +- **Projects/Contexts:** [[Analyze runtime performance]] +- **Contradictions/Notes:** 소스에 제공된 콜 스택 관련 내용은 일반적인 프로그래밍 이론보다는 전적으로 Chrome DevTools의 런타임 성능 분석(Performance panel) 맥락에서만 설명되어 있습니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Call Stack.md]] +--- diff --git a/AI/Central-Pattern-Generators.md b/AI/Central-Pattern-Generators.md new file mode 100644 index 00000000..cb7e15b1 --- /dev/null +++ b/AI/Central-Pattern-Generators.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-FC5C34 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Central-Pattern-Generators" +--- + +# [[Central-Pattern-Generators]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Central-Pattern-Generators.md]] +--- diff --git a/AI/CesiumJS.md b/AI/CesiumJS.md new file mode 100644 index 00000000..07d94958 --- /dev/null +++ b/AI/CesiumJS.md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-39CDC5 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - CesiumJS" +--- + +# [[CesiumJS]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> CesiumJS는 웹을 위한 오픈 소스 3D 시각화 엔진으로, 주로 대규모 지형 공간 데이터의 시각화를 선도하는 기술입니다 [1, 2]. 3D 타일(3D Tiles), 지형(terrain), 위성 이미지 등 방대한 양의 3D 콘텐츠를 스트리밍하고 렌더링하는 데 활용됩니다 [1, 2]. 지표면에서 우주 공간에 이르는 거대한 가상 세계를 효율적으로 처리하기 위해 z-파이팅(z-fighting)을 방지하는 다중 절두체(multiple frustums) 및 명시적 렌더링(explicit rendering)과 같은 독자적인 WebGL 렌더링 파이프라인을 구축하고 있습니다 [3, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +- **렌더링 파이프라인 및 다중 절두체 (Multiple Frustums):** CesiumJS는 다양한 광원을 처리하는 씬이 드물기 때문에 전통적인 포워드 셰이딩(forward-shading) 파이프라인을 사용합니다 [4]. 특히 거대한 가시거리를 지원하면서 멀리 있는 객체 간의 z-파이팅(z-fighting) 아티팩트를 피하기 위해 뷰 볼륨을 여러 개의 절두체로 분할하여 관리하는 독특한 방식을 사용합니다 [3, 4]. 가장 먼 절두체부터 시작하여 매번 깊이 버퍼를 지우면서 순차적으로 명령을 실행합니다 [5]. +- **Scene.render와 Primitive 관리:** 프레임 렌더링의 핵심인 `Scene.render`는 애니메이션, 업데이트, 렌더링의 파이프라인을 관리합니다 [4, 6]. 업데이트 단계에서 씬의 기본 요소(Primitive, 예: 지형과 이미지를 처리하는 Globe 엔진)들이 WebGL 리소스를 생성하거나 업데이트하고, `DrawCommand` 객체 목록을 반환합니다 [7, 8]. 이 중 가시성 테스트를 통과한 '잠재적 가시 집합(Potentially Visible Set)'만이 파이프라인을 따라 렌더링됩니다 [8]. +- **투명도 처리 (OIT) 및 정렬:** 절두체 내에서 불투명(opaque) 명령을 먼저 실행한 후 반투명(translucent) 명령을 실행합니다 [5]. 하드웨어가 부동 소수점 텍스처를 지원하는 경우, 순서 비의존 투명도([[Order-Independent Transparency (OIT)]]) 기법을 적용하여 겹치는 반투명 객체의 시각적 품질을 높이고 CPU 정렬 오버헤드를 방지합니다 [5]. +- **명시적 렌더링 (Explicit Rendering / requestRenderMode):** 지속적으로 프레임을 렌더링하는 대신, 성능을 최적화하기 위해 `requestRenderMode` 기능을 지원합니다 [9]. 이 모드가 활성화되면 카메라 이동, 시뮬레이션 시간 변경, 또는 새로운 데이터(3D 타일 등)가 로드될 때만 명시적으로 새 프레임을 렌더링합니다 [9, 10]. 이를 통해 유휴 상태(idle)에서 CPU 사용률을 25.1%에서 3.0% 수준으로 크게 절약할 수 있습니다 [10, 11]. +- **가우시안 스플래팅(Gaussian Splatting) 이슈:** 최근 가우시안 스플랫 렌더링 시 대규모 데이터셋 처리 과정에서 여러 프레임에 걸친 깊이 정렬 수행 중 프로미스 간섭(promise interference)으로 인한 WebGL 오류와 미세 지연(micro-stuttering) 현상이 보고된 바 있습니다 [12-14]. 여러 개의 프로미스 체인이 중첩되면서 정렬 결과를 오염시켜 모델이 깜빡이거나 사라지는 문제를 유발합니다 [12, 14]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGL]], [[3D Tiles]], [[Order-Independent Transparency (OIT)]], [[Gaussian Splatting]], [[Multiple Frustums]] +- **Projects/Contexts:** [[Geospatial Visualization]], [[requestRenderMode]] +- **Contradictions/Notes:** 소스에 따르면, Cesium팀은 엔진을 지속적으로 최적화하고 있음에도 불구하고 OIT 및 지형 깊이 버퍼를 위한 전체 화면 패스(fullscreen passes) 기능이 추가되면서 채우기 속도(fillrate)가 제한된 환경에서는 구버전(예: 1.1)에 비해 최신 버전(예: 1.10)의 평균 프레임 속도(FPS)가 오히려 감소하는 사례가 보고되기도 했습니다 [15, 16]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/CesiumJS.md]] +--- diff --git a/AI/Chain-of-Thought (CoT 사고 사슬).md b/AI/Chain-of-Thought (CoT 사고 사슬).md new file mode 100644 index 00000000..35e3193e --- /dev/null +++ b/AI/Chain-of-Thought (CoT 사고 사슬).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-550B46 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Chain-of-Thought (CoT 사고 사슬)" +--- + +# [[Chain-of-Thought (CoT 사고 사슬)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Chain-of-Thought (CoT, 사고 사슬).md]] +--- diff --git a/AI/Chrome DevTools Memory Profiling.md b/AI/Chrome DevTools Memory Profiling.md new file mode 100644 index 00000000..16163032 --- /dev/null +++ b/AI/Chrome DevTools Memory Profiling.md @@ -0,0 +1,43 @@ +--- +id: P-REINFORCE-AUTO-B1B522 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Chrome DevTools Memory Profiling" +--- + +# [[Chrome DevTools Memory Profiling]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Chrome DevTools Memory Profiling은 JavaScript 애플리케이션 및 브라우저에서 발생하는 메모리 누수를 감지하고 분석하기 위한 분석 도구 모음입니다 [1, 2]. 주로 DevTools의 Memory 패널을 통해 제공되며, 객체의 메모리 할당 시점, 유지(Retaining) 경로, 가비지 컬렉션 여부를 시각적으로 추적하여 정상적으로 정리되지 않은 객체를 식별합니다 [3-6]. 이를 통해 개발자는 메모리 힙(Heap) 상태를 정밀하게 분석하고 메모리 부족 현상이나 성능 저하를 유발하는 코드의 근본 원인을 파악할 수 있습니다 [7-9]. + +## 📖 구조화된 지식 (Synthesized Content) +* **핵심 프로파일링 도구 (Memory Panel Tools):** + * **Heap Snapshot (힙 스냅샷):** 특정 시점의 전체 메모리 객체 그래프를 캡처하는 도구입니다 [3, 10]. 의심되는 작업 전, 작업 중, 작업 후의 세 번의 스냅샷을 찍어 비교하는 '3-스냅샷 기법(three-snapshot technique)'을 통해 일회성 할당을 필터링하고 실제 누수 후보를 안정적으로 식별할 수 있습니다 [7, 11]. 제공되는 뷰(View)에는 생성자별로 객체를 묶어 크기를 보여주는 Summary, 두 스냅샷 간의 차이를 보여주는 Comparison, 애플리케이션 구조를 조감도로 보여주는 Containment, 메모리 할당의 파이 차트를 보여주는 Statistics 등이 있습니다 [9]. + * **Allocation instrumentation on timeline (타임라인의 할당 계측):** 일정 기간 동안의 모든 메모리 할당을 스택 트레이스와 함께 기록하며, 최소 50ms 간격으로 스냅샷을 주기적으로 캡처합니다 [3, 12, 13]. 타임라인에서 파란색 막대는 기록 종료 시점까지 여전히 살아있는 객체(누수 후보)를 의미하며, 회색 막대는 할당 후 이미 가비지 컬렉션된 객체를 의미합니다 [3, 4, 14, 15]. + * **Allocation sampling (할당 샘플링):** 전체 할당 추적보다 오버헤드가 적은 통계적 샘플링 방법으로, 프로덕션 환경의 프로파일링에 적합합니다 [16]. + +* **주요 지표 및 분석 개념:** + * **Shallow Size vs. Retained Size:** 'Shallow size'는 객체 자체가 독립적으로 차지하는 메모리 크기(일반적으로 문자열이나 배열이 큼)이며, 'Retained size'는 해당 객체를 삭제하여 참조가 끊어졌을 때 가비지 컬렉터를 통해 확보할 수 있는 총 메모리 크기를 의미합니다 [17]. + * **Retainers (유지 경로):** 특정 객체를 메모리에 살아있게 만들어 가비지 컬렉션을 방해하는 참조 체인을 보여줍니다 [3, 6]. 개발자는 이 트리를 확인하여 어떤 참조가 메모리 누수를 유발하는지 파악할 수 있습니다 [8, 18]. + * **객체 ID (Object ID):** 객체 이름 뒤에 붙는 `@` 기호와 숫자는 고유 ID로, 가비지 컬렉션 과정에서 객체가 이동하더라도 변하지 않아 여러 스냅샷에 걸쳐 특정 객체의 상태를 정확하게 추적 및 비교할 수 있게 해줍니다 [12, 19, 20]. + +* **프로파일링을 통해 식별되는 주요 메모리 누수 패턴:** + * 문서(DOM)에서는 제거되었으나 자바스크립트 변수, Map/Set, 또는 클로저 등에 의해 여전히 참조되고 있는 분리된 DOM 노드(Detached DOM nodes) [16, 21, 22]. + * 생명 주기에 맞게 제거되지 않고 반복적으로 쌓이는 이벤트 리스너(Event listener accumulation) 및 잊혀진 타이머나 옵저버(Forgotten timers and observers) [23, 24]. + * 여러 클로저가 스코프를 공유할 때, 큰 데이터를 캡처한 변수를 다른 클로저의 수명 때문에 메모리에서 해제하지 못하는 클로저 스코프 보존(Closure scope retention) [23]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Heap Snapshot]], [[Allocation Timeline]], [[Garbage Collection]], [[Retaining Path]], [[Shallow Size and Retained Size]] +- **Projects/Contexts:** [[V8 Engine Memory Management]], [[Browser Memory Leak Detection]] +- **Contradictions/Notes:** 소스 간의 직접적인 모순은 없습니다. 다만, 실무적 주의사항으로 `console.log`가 평가된 객체에 대한 참조를 계속 유지하여 가짜 양성(false positive)의 메모리 누수를 표시할 수 있으므로, 메모리 누수 조사 중에는 콘솔을 지우거나 큰 객체 기록을 피해야 한다고 경고하고 있습니다 [21, 25]. 또한 코드의 난독화(Minified code) 때문에 Retainer 체인을 읽기 어려울 수 있으므로, 의미 있는 함수/변수 명을 보려면 소스 맵(Source maps)을 활성화해야 합니다 [25]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Chrome DevTools Memory Profiling.md]] +--- diff --git a/AI/Chrome DevTools 메모리 분석 및 성능 최적화.md b/AI/Chrome DevTools 메모리 분석 및 성능 최적화.md new file mode 100644 index 00000000..e1ad3672 --- /dev/null +++ b/AI/Chrome DevTools 메모리 분석 및 성능 최적화.md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-9DC3E3 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Chrome DevTools 메모리 분석 및 성능 최적화" +--- + +# [[Chrome DevTools 메모리 분석 및 성능 최적화]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Chrome DevTools는 웹 및 Node.js 애플리케이션의 메모리 누수를 감지하고 성능을 최적화하기 위한 강력한 메모리 분석 도구를 제공한다 [1, 2]. 핵심 기능으로는 특정 시점의 메모리 상태를 캡처하는 힙 스냅샷(Heap snapshot), 시간에 따른 객체 할당을 추적하는 할당 타임라인(Allocation timeline), 그리고 통계적 샘플링 방식의 할당 샘플링(Allocation sampling)이 있다 [3, 4]. 개발자는 이러한 도구를 사용하여 가비지 컬렉션(GC) 이후에도 메모리에 남아있는 객체와 그 참조 경로(Retaining path)를 식별함으로써, 메모리 누수와 성능 저하의 근본 원인을 파악하고 코드를 최적화할 수 있다 [1, 3, 5, 6]. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[가비지 컬렉션(Garbage Collection)]], [[V8 JavaScript Engine]], [[힙 메모리(Heap Memory)]], [[메모리 누수(Memory Leak)]], [[Retainers(유지 경로)]] +- **Projects/Contexts:** [[Node.js 프로덕션 메모리 병목 분석]], [[SPA 라우트 전환 성능 최적화]] +- **Contradictions/Notes:** DevTools의 콘솔(Console)에 `console.log`를 통해 출력된 객체는 콘솔에 의해 지속적으로 참조가 유지되므로 가비지 컬렉션의 대상이 되지 않는다. 따라서 메모리 누수를 정확히 조사할 때는 대형 객체의 로깅을 피하거나 콘솔을 비워야 한다 [18]. 더불어, 원시 데이터인 숫자(Number)와 같은 비문자열 값은 캡처되지 않으며, 원시 힙 데이터에는 수많은 V8 내부 객체도 포함되어 있어 분석 시 "Constructor" 필터를 적용해 애플리케이션 객체에만 집중하는 것이 좋다 [9, 18]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Chrome DevTools 메모리 분석 및 성능 최적화.md]] +--- diff --git a/AI/Chrome DevTools 메모리 프로파일링 및 힙 스냅샷 분석.md b/AI/Chrome DevTools 메모리 프로파일링 및 힙 스냅샷 분석.md new file mode 100644 index 00000000..b8d226d8 --- /dev/null +++ b/AI/Chrome DevTools 메모리 프로파일링 및 힙 스냅샷 분석.md @@ -0,0 +1,54 @@ +--- +id: P-REINFORCE-AUTO-EF52CE +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Chrome DevTools 메모리 프로파일링 및 힙 스냅샷 분석" +--- + +# [[Chrome DevTools 메모리 프로파일링 및 힙 스냅샷 분석]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Chrome DevTools의 메모리 프로파일링 및 힙 스냅샷 분석은 웹 애플리케이션 및 Node.js 환경에서 발생하는 메모리 누수를 찾아내고 객체의 보존 상태를 파악하는 데 사용되는 핵심 디버깅 기법입니다. 메모리 패널은 전체 객체 그래프를 캡처하는 힙 스냅샷, 시간에 따른 할당을 추적하는 타임라인 계측, 그리고 프로덕션에 적합한 샘플링 도구를 제공합니다. 개발자는 이러한 도구와 객체의 참조 체인(Retaining path)을 분석하여 가비지 컬렉터(GC)에 의해 해제되어야 할 객체가 왜 메모리에 남아있는지 근본 원인을 파악할 수 있습니다. + +## 📖 구조화된 지식 (Synthesized Content) +- **DevTools 메모리 패널의 핵심 도구** + Chrome DevTools의 Memory 패널은 주로 세 가지 분석 도구를 제공합니다. + 1. **Heap snapshot (힙 스냅샷):** 특정 시점의 전체 객체 그래프를 캡처합니다 [1]. + 2. **Allocation instrumentation on timeline (타임라인에 할당 계측):** 특정 기간 동안의 모든 메모리 할당과 스택 트레이스를 기록합니다 [1]. 기록을 시작하면 50ms마다 힙 스냅샷을 주기적으로 캡처하고 기록이 끝날 때 최종 스냅샷을 생성합니다 [2, 3]. + 3. **Allocation sampling (할당 샘플링):** 전체 계측을 수행하는 대신 통계적 샘플링을 사용하여 오버헤드가 적기 때문에 프로덕션 환경의 프로파일링에 적합합니다 [4]. + +- **힙 스냅샷 뷰(View)의 종류와 활용** + 캡처한 힙 스냅샷은 목적에 맞게 여러 가지 뷰를 통해 분석할 수 있습니다 [5]. + - **Summary(요약) 뷰:** 객체를 생성자(Constructor) 이름으로 그룹화하여 보여줍니다 [5, 6]. 각 객체가 점유하는 자체 메모리인 '얕은 크기(Shallow size)'와, 해당 객체가 삭제될 때 해제될 수 있는 최대 메모리 크기인 '보존된 크기(Retained size)'를 확인할 수 있습니다 [7]. + - **Comparison(비교) 뷰:** 두 개 이상의 스냅샷 간의 차이를 보여줍니다. 특정 작업 전후의 스냅샷을 비교하여 메모리 누수의 존재와 원인을 확인하는 데 유용합니다 [5, 8]. + - **Containment(포함) 뷰:** 애플리케이션 객체 구조를 조감(Bird's eye view)할 수 있으며, DOMWindow 객체, GC 루트(GC roots), 네이티브 객체를 통해 글로벌 네임스페이스에서 참조되는 객체를 분석할 수 있습니다 [5, 9, 10]. + +- **타임라인 할당 분석을 통한 누수 추적** + 타임라인을 이용한 할당 계측 시, 상단에 나타나는 막대의 높이는 할당된 객체의 크기를 의미하며 막대의 색상은 객체의 생존 여부를 나타냅니다 [11, 12]. + - **파란색 막대:** 타임라인 기록이 끝날 때까지 여전히 살아있는(Live) 객체를 의미하며, 이 객체들이 메모리 누수 후보가 될 수 있습니다 [1, 11-13]. + - **회색 막대:** 타임라인 동안 할당되었으나 이후 가비지 컬렉션(GC)에 의해 수집된 객체를 의미합니다 [1, 11-13]. + 타임라인에서 파란색 막대를 확대(Zoom in)한 뒤 'Retainers(보유자)' 패널을 확인하면, 해당 객체가 수집되지 못하고 계속 살아있게 만드는 참조 체인을 파악할 수 있습니다 [14-16]. + +- **메모리 누수 탐지 전략: 3단계 스냅샷 기법(Three-snapshot technique)** + 메모리 누수를 감지하는 가장 신뢰할 수 있는 방법은 3단계 스냅샷 기법입니다. 먼저 기준이 되는 스냅샷 1을 찍고, 누수가 의심되는 작업(예: 모달 열기/닫기 등)을 수행한 뒤 스냅샷 2를 찍습니다. 그다음 동일한 작업을 다시 반복하고 스냅샷 3을 캡처합니다. 이후 스냅샷 2와 3을 비교하여, 스냅샷 1과 2 사이에서 할당되었지만 스냅샷 3에서도 여전히 살아있는 객체를 찾음으로써 일회성 할당(False positives)을 걸러내고 실제 누수 후보를 특정할 수 있습니다 [17]. + +- **분석 시 주의사항(Gotchas)** + - 힙 스냅샷에는 애플리케이션의 객체뿐만 아니라 `(compiled code)`, `(concatenated string)`, `InternalNode` 등 수많은 V8 내부 객체들이 포함되므로, 의미 있는 객체에 집중하려면 생성자(Constructor) 필터링을 사용하는 것이 좋습니다 [18-22]. + - 난독화된(Minified) 코드에서는 변수나 함수 이름이 제대로 보이지 않으므로, 의미 있는 Retainer 트리를 확인하려면 DevTools에서 소스 맵(Source maps)을 사용해야 합니다 [18]. + - 개발자 도구 콘솔에서 `console.log`로 출력된 객체는 계속해서 참조가 유지되므로 누수 조사 시에는 콘솔을 비우거나 대용량 객체 로깅을 피해야 합니다 [18]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[메모리 누수(Memory Leaks)]], [[가비지 컬렉션(Garbage Collection)]], [[V8 엔진 메모리 구조]], [[객체 참조 체인(Retainers)]] +- **Projects/Contexts:** [[Node.js 프로덕션 메모리 문제 해결]], [[웹 프론트엔드 성능 최적화]] +- **Contradictions/Notes:** 단순히 메모리 그래프가 상승한다고 해서 모두 우발적인 메모리 누수인 것은 아닙니다. 애플리케이션의 캐시(Caches)나 실행 취소 기록(Undo histories) 등은 의도적으로 데이터를 보존하도록 설계되었으므로, 이러한 '의도된 보존'과 '우발적인 보존(누수)'을 명확하게 구분해야 합니다 [18]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Chrome DevTools 메모리 프로파일링 및 힙 스냅샷 분석.md]] +--- diff --git a/AI/Chrome DevTools 메모리 프로파일링.md b/AI/Chrome DevTools 메모리 프로파일링.md new file mode 100644 index 00000000..56bd3dca --- /dev/null +++ b/AI/Chrome DevTools 메모리 프로파일링.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-8471ED +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Chrome DevTools 메모리 프로파일링" +--- + +# [[Chrome DevTools 메모리 프로파일링]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Chrome DevTools 메모리 프로파일링은 개발자가 힙(Heap) 스냅샷을 캡처하고 시간에 따른 메모리 할당을 추적하여 브라우저 환경에서 발생하는 메모리 누수를 감지하고 분석하는 과정입니다 [1-4]. 이는 JavaScript 객체와 DOM 노드의 메모리 분포를 보여주며, 가비지 컬렉션(GC) 이후에도 불필요하게 남아있는 객체의 참조 경로(Retaining Path)를 시각적으로 파악할 수 있도록 돕습니다 [1, 4-6]. 이를 통해 브라우저 메모리 할당 시점별 힙의 상세한 동작과 메모리 보존(Retention) 원인을 명확히 식별할 수 있습니다 [2, 7]. + +## 📖 구조화된 지식 (Synthesized Content) +* **힙 스냅샷(Heap Snapshot)과 3-스냅샷 기법:** 힙 스냅샷은 특정 시점의 전체 객체 그래프를 캡처하는 도구입니다 [2, 3]. 메모리 누수 탐지에서 가장 신뢰할 수 있는 방법은 '3-스냅샷 기법'으로, 기준 스냅샷을 찍고 누수가 의심되는 작업을 수행한 뒤 두 번째 스냅샷을 찍고, 작업을 반복한 후 세 번째 스냅샷을 찍는 방식입니다 [8]. 이를 통해 일회성 메모리 할당을 필터링하고 실제 누수 후보를 찾아낼 수 있습니다 [8]. 스냅샷은 생성자별로 객체를 그룹화하는 'Summary' 뷰, 두 스냅샷 간의 차이를 보여주는 'Comparison' 뷰, 전역 네임스페이스에 참조된 객체의 구조를 파악하는 'Containment' 뷰 등을 제공합니다 [9]. +* **타임라인의 할당 계측(Allocation instrumentation on timeline):** 이 도구는 힙 프로파일러의 상세 스냅샷 정보와 타임라인 패널의 점진적인 업데이트 추적 기능을 결합한 것입니다 [10, 11]. 특정 기간 동안 발생한 모든 메모리 할당을 스택 트레이스와 함께 최소 50ms마다 주기적으로 기록합니다 [2, 12, 13]. 타임라인 상의 막대 높이는 할당된 객체의 크기를 의미하며, 파란색 막대는 타임라인 종료 시점까지 살아있는 객체를, 회색 막대는 할당 후 가비지 컬렉션(GC)된 객체를 나타냅니다 [5, 14, 15]. +* **할당 샘플링(Allocation sampling):** 모든 할당을 추적하는 타임라인 계측 방식에 비해 시스템 오버헤드가 없기 때문에, 운영(Production) 환경의 프로파일링에 적합한 가벼운 통계적 샘플링 방식입니다 [16]. +* **보존 경로(Retainers)와 고유 객체 식별자:** 메모리 패널 하단의 'Retainers' 섹션은 GC 루트(Root)에서부터 특정 객체를 계속 살아있게 유지하는 참조 체인을 역순으로 보여주어 메모리 누수의 근본 원인을 추적할 수 있게 합니다 [2, 7, 17]. 또한, 각 객체에는 가비지 컬렉션 과정에서 객체의 물리적 위치가 이동하더라도 여러 스냅샷 간에 동일하게 유지되는 고유 ID(`@` 기호 뒤의 숫자)가 부여되어 정밀한 개별 객체 단위의 비교 분석이 가능합니다 [12, 13, 18, 19]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[힙 스냅샷(Heap Snapshot)]], [[타임라인 할당 계측(Allocation instrumentation on timeline)]], [[가비지 컬렉션(Garbage Collection)]], [[보존 경로(Retaining Path)]] +- **Projects/Contexts:** [[V8 JavaScript Engine 메모리 관리 및 가비지 컬렉션]], [[브라우저 메모리 누수 탐지(Browser Memory Leak Detection)]] +- **Contradictions/Notes:** 소스의 메모리 누수 분석 시 주의사항에 따르면, DevTools 콘솔에서의 `console.log` 출력은 로깅된 객체에 대한 참조를 계속 유지하므로 실제로는 누수가 아니더라도 가비지 컬렉션이 되지 않아 조사 과정에서 혼선을 줄 수 있습니다 [20]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Chrome DevTools 메모리 프로파일링.md]] +--- diff --git a/AI/Chrome DevTools.md b/AI/Chrome DevTools.md new file mode 100644 index 00000000..de08af47 --- /dev/null +++ b/AI/Chrome DevTools.md @@ -0,0 +1,50 @@ +--- +id: P-REINFORCE-AUTO-6965B5 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Chrome DevTools" +--- + +# [[Chrome DevTools]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Chrome DevTools는 웹 성능 분석 및 메모리 누수 진단을 수행할 수 있는 브라우저 내장 개발자 도구이다 [1]. 이 도구의 메모리(Memory) 패널은 힙 스냅샷 캡처와 할당 타임라인 기록 기능을 제공하여 객체의 참조 상태와 메모리 상태를 추적할 수 있도록 돕는다 [1-3]. 개발자는 이를 통해 가비지 컬렉션(GC) 이후에도 살아남아 메모리를 점유하고 있는 객체들을 식별하고 분석할 수 있다 [4-6]. + +## 📖 구조화된 지식 (Synthesized Content) +* **메모리 패널(Memory Panel)의 핵심 기능:** + Chrome DevTools의 메모리 패널은 주로 세 가지 진단 도구를 제공한다 [1]. + * **힙 스냅샷(Heap snapshot):** 특정 시점의 완전한 객체 그래프를 캡처하여 생성자(Constructor)별 객체, 유지된 크기(Retained Size), 참조 트리 등을 보여준다 [1, 7, 8]. + * **타임라인 할당 계측(Allocation instrumentation on timeline):** 특정 기간 내의 모든 메모리 할당을 시간 순으로 스택 트레이스와 함께 기록한다 [1, 5, 9]. + * **할당 샘플링(Allocation sampling):** 통계적 샘플링을 사용하여 가벼운 오버헤드로 메모리 할당을 추적하며 프로덕션 환경 분석에 적합하다 [10]. + +* **힙 스냅샷 분석 뷰(Heap Snapshot Views):** + 스냅샷 데이터는 목적에 따라 여러 가지 뷰(View)로 분석할 수 있다 [11]. + * **Summary view:** 생성자 이름 및 소스 기준으로 객체를 그룹화하여 타입별 메모리 사용량 및 DOM 누수를 추적한다 [7, 11]. + * **Comparison view:** 두 개 이상의 스냅샷을 비교하여 특정 작업 전후로 해제된 메모리와 추가/삭제된 객체의 델타를 확인해 누수 여부를 파악한다 [11-13]. + * **Containment view:** 전역 네임스페이스(window)나 클로저 내에서 참조되는 객체의 전체적인 구조를 로우 레벨에서 보여준다 [11, 13]. + * **Statistics:** 메모리 할당을 코드, 문자열, 배열 등의 범주로 나누어 파이 차트로 시각화한다 [11]. + * **Retainers 패널:** 선택한 객체를 계속 살아있게 만드는 참조 체인(Retaining path)을 표시하여, 해당 객체가 가비지 컬렉션 되지 않는 이유를 확인하고 불필요한 참조를 코드에서 제거할 수 있게 돕는다 [1, 14-16]. + +* **할당 타임라인 시각화:** + 타임라인 보고서는 힙 프로파일러의 스냅샷 정보와 타임라인 패널의 점진적 업데이트 기능을 결합한 것이다 [5, 9]. 메모리 할당 과정은 최대 50ms 빈도로 기록되며 막대그래프로 표시된다 [2, 17]. 파란색 막대는 타임라인 기록이 끝날 때까지 여전히 살아있는 객체를 의미하며 메모리 누수 후보군이 되고, 회색 막대는 할당 후 가비지 컬렉터에 의해 정상적으로 수집된 객체를 의미한다 [18-21]. + +* **메모리 누수 진단 시 유의사항:** + * DevTools 콘솔에 로깅(`console.log`)된 객체들은 콘솔 도구 자체에 의해 도달 가능한 상태로 유지되므로, 메모리 누수를 조사할 때는 콘솔을 지우거나 대형 객체 로깅을 피해야 한다 [22]. + * 축소된(Minified) 코드는 Retainer 체인을 알아보기 어렵게 만들므로, 소스 맵(Source maps)을 활용해 원래의 변수 및 함수 이름을 복원해야 정확한 분석이 가능하다 [22]. + * 문서(DOM)에서 제거되었음에도 불구하고 JavaScript 클로저나 Map/Set 엔트리에 의해 참조되어 남아 있는 분리된 DOM 노드(Detached DOM nodes)를 필터링하여 찾을 수 있다 [10, 23]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Heap Snapshot]], [[Allocation Timeline]], [[Garbage Collection]], [[Memory Leak]] +- **Projects/Contexts:** [[Browser Memory Leak Detection]] +- **Contradictions/Notes:** 가비지 컬렉션 과정에서 객체들이 이동할 수 있으므로 객체의 주소를 직접 추적하는 것은 의미가 없다. 대신 DevTools는 `@` 기호 뒤에 여러 스냅샷 간 유지되는 고유 식별자(Object ID)를 부여하여 정확하게 힙 상태와 객체를 비교할 수 있도록 한다 [2, 17, 24]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Chrome DevTools.md]] +--- diff --git a/AI/Chrome 브라우저 렌더링 성능.md b/AI/Chrome 브라우저 렌더링 성능.md new file mode 100644 index 00000000..252f4029 --- /dev/null +++ b/AI/Chrome 브라우저 렌더링 성능.md @@ -0,0 +1,42 @@ +--- +id: P-REINFORCE-AUTO-EC1033 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Chrome 브라우저 렌더링 성능" +--- + +# [[Chrome 브라우저 렌더링 성능]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +소스에 Chrome의 핵심 렌더링 파이프라인(HTML/CSS 파싱, Layout, Paint, Composite 등)에 대한 관련 정보가 부족합니다. 단, 제공된 소스에서는 JavaScript 엔진(V8)의 메모리 관리 동작이 렌더링 및 화면 표시 성능에 미치는 영향을 다음과 같이 구체적으로 설명하고 있습니다. + +* **가비지 컬렉션(GC)과 렌더링 지연(Jank):** + V8과 같은 엔진에서 메모리를 관리하는 가비지 컬렉션 프로세스가 비효율적으로 실행될 경우, 길고 예측 불가능한 실행 일시 정지(Pause)가 발생할 수 있습니다 [1]. 이러한 일시 정지는 메인 스레드의 작업을 차단하여 상호작용이 많은 시스템이나 애니메이션의 렌더링 지연(Janky pages) 및 대기 시간(Latency) 저하 문제를 초래합니다 [2-4]. + +* **Orinoco 프로젝트와 메인 스레드 부하 감소:** + V8은 메인 스레드의 부담을 줄이기 위해 병렬(Parallel), 점진적(Incremental), 동시(Concurrent) 기법을 활용하는 Orinoco 가비지 컬렉터를 도입했습니다 [3, 5-8]. 백그라운드 작업으로 GC 부하를 분산시킴으로써 메인 스레드가 JavaScript 실행 및 렌더링을 자유롭게 처리할 수 있게 되어 애니메이션, 스크롤 및 사용자 상호작용이 훨씬 매끄러워졌으며 무거운 WebGL 게임 등에서의 일시 정지 시간을 최대 50% 단축했습니다 [9]. + +* **유휴 시간 가비지 컬렉션(Idle-time GC)을 통한 프레임 최적화:** + Chrome은 초당 60프레임(FPS)을 렌더링하기 위해 각 프레임당 약 16.6ms의 시간을 갖습니다 [10]. 애니메이션 및 렌더링 작업이 예상보다 일찍 완료될 경우, Chrome은 다음 프레임이 시작되기 전 남은 '유휴 시간(Idle time)'을 활용하여 백그라운드에서 GC 작업을 선제적으로 수행합니다 [9-11]. 이를 통해 메인 렌더링 작업의 중단을 방지하면서도 효과적으로 메모리를 관리할 수 있습니다. + +* **백그라운드 파싱(Background Parsing):** + 페이지가 로드되는 동안 V8 엔진은 백그라운드 파싱을 활용하여 스크립트를 처리합니다. 파싱 완료 즉시 사용된 임시 메모리(Zone)를 해제함으로써 메모리 소비를 줄여, 전반적인 브라우저 리소스 효율성과 렌더링 준비 속도 향상에 기여합니다 [12]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[가비지 컬렉션 (Garbage Collection)]], [[Orinoco]], [[유휴 시간 GC (Idle-time GC)]] +- **Projects/Contexts:** [[V8 JavaScript Engine]], [[Blink Renderer]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. 제공된 문서는 전적으로 V8 메모리 관리, 힙 구조, 메모리 누수 분석 등 JavaScript 엔진 단의 최적화에 집중되어 있습니다. 따라서 Chrome 렌더링 파이프라인(DOM 트리, CSSOM, 컴포지팅 등) 또는 Core Web Vitals(LCP, CLS, INP)의 구체적 동작 원리에 대한 정보는 소스에 포함되어 있지 않아 기술하지 못했습니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Chrome 브라우저 렌더링 성능.md]] +--- diff --git a/AI/Chronic-Pain-Management-Protocols.md b/AI/Chronic-Pain-Management-Protocols.md new file mode 100644 index 00000000..132a2275 --- /dev/null +++ b/AI/Chronic-Pain-Management-Protocols.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-87CE94 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Chronic-Pain-Management-Protocols" +--- + +# [[Chronic-Pain-Management-Protocols]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Chronic-Pain-Management-Protocols.md]] +--- diff --git a/AI/Circuit Discovery (회로 발견).md b/AI/Circuit Discovery (회로 발견).md new file mode 100644 index 00000000..cca40c82 --- /dev/null +++ b/AI/Circuit Discovery (회로 발견).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-0A3374 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Circuit Discovery (회로 발견)" +--- + +# [[Circuit Discovery (회로 발견)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Circuit Discovery (회로 발견).md]] +--- diff --git a/AI/Circular Economy Transitions.md b/AI/Circular Economy Transitions.md new file mode 100644 index 00000000..fe924d5e --- /dev/null +++ b/AI/Circular Economy Transitions.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-544952 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Circular Economy Transitions" +--- + +# [[Circular Economy Transitions]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Circular Economy Transitions.md]] +--- diff --git a/AI/Circular-Economy.md b/AI/Circular-Economy.md new file mode 100644 index 00000000..0f8a53ac --- /dev/null +++ b/AI/Circular-Economy.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-480BFD +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Circular-Economy" +--- + +# [[Circular-Economy]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Circular-Economy.md]] +--- diff --git a/AI/Clean-Architecture-Implementation.md b/AI/Clean-Architecture-Implementation.md new file mode 100644 index 00000000..6d265927 --- /dev/null +++ b/AI/Clean-Architecture-Implementation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B131E0 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Clean-Architecture-Implementation" +--- + +# [[Clean-Architecture-Implementation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Clean-Architecture-Implementation.md]] +--- diff --git a/AI/Clean-Architecture-TypeScript.md b/AI/Clean-Architecture-TypeScript.md new file mode 100644 index 00000000..9d075a40 --- /dev/null +++ b/AI/Clean-Architecture-TypeScript.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-3B1D45 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Clean-Architecture-TypeScript" +--- + +# [[Clean-Architecture-TypeScript]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Clean-Architecture-TypeScript.md]] +--- diff --git a/AI/Climate Change Mitigation Frameworks.md b/AI/Climate Change Mitigation Frameworks.md new file mode 100644 index 00000000..8d6e3db4 --- /dev/null +++ b/AI/Climate Change Mitigation Frameworks.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-2E8F10 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Climate Change Mitigation Frameworks" +--- + +# [[Climate Change Mitigation Frameworks]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Climate Change Mitigation Frameworks.md]] +--- diff --git a/AI/Clinical-Kinesiology-Assessment.md b/AI/Clinical-Kinesiology-Assessment.md new file mode 100644 index 00000000..d1d7c2d7 --- /dev/null +++ b/AI/Clinical-Kinesiology-Assessment.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9DE738 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Clinical-Kinesiology-Assessment" +--- + +# [[Clinical-Kinesiology-Assessment]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Clinical-Kinesiology-Assessment.md]] +--- diff --git a/AI/Code Review.md b/AI/Code Review.md new file mode 100644 index 00000000..3705fbc5 --- /dev/null +++ b/AI/Code Review.md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-8EC3C3 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Code Review" +--- + +# [[Code Review]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 코드 리뷰(Code Review)는 소프트웨어의 전반적인 코드 건강 상태를 개선하고 품질 및 보안을 보장하기 위해 소스 코드를 검사하는 과정입니다 [1-3]. 이는 인간 개발자가 직접 수행하는 수동 리뷰(Manual Code Review)와 정적 분석(SAST) 및 AI 도구를 활용하는 자동화된 리뷰(Automated Code Review)로 나뉩니다 [4, 5]. 최신 소프트웨어 개발 환경에서는 자동화 도구의 속도와 인간의 문맥 이해 능력을 결합하여 일관성과 보안성을 극대화하는 하이브리드 접근법이 필수적인 모범 사례로 권장됩니다 [5-8]. + +## 📖 구조화된 지식 (Synthesized Content) +* **수동 코드 리뷰 (Manual Code Review):** + 개발자가 주로 풀 리퀘스트(PR)를 통해 코드를 한 줄씩 읽고 논의하는 인간 주도의 검사 방식입니다 [4, 9]. 도구가 파악할 수 없는 아키텍처의 의도, 비즈니스 로직, 복잡한 설계 결함을 찾아내는 데 탁월하며, 팀원 간의 지식 공유와 멘토링을 촉진하여 코드 가독성을 높입니다 [5, 6, 10, 11]. 구글의 코드 리뷰 표준에 따르면, 완벽한 코드를 추구하기보다는 시스템의 전반적인 코드 상태가 확실히 개선되는 방향(지속적 개선)을 기준으로 승인을 진행해야 합니다 [12, 13]. 하지만 수동 리뷰는 시간이 많이 소요되고 비용이 높으며, 리뷰어의 피로도나 편향에 의한 인적 오류가 발생할 수 있다는 단점이 있습니다 [14, 15]. + +* **자동화된 코드 리뷰 (Automated Code Review):** + 린터(Linter), 포매터(Formatter), SAST, AI 기반 리뷰 봇 등의 도구를 사용하여 코드를 실행하지 않고 정적으로 분석하는 방식입니다 [4, 16]. ESLint, Prettier, SonarQube, Snyk 등의 도구를 통해 구문 오류, 스타일 위반, 일반적인 보안 취약점(예: SQL 인젝션, XSS 등)을 대규모 코드베이스에서 빠르고 일관되게 찾아냅니다 [17-20]. 하지만 비즈니스 로직과 설계의 복잡한 의도를 이해하지 못하는 문맥의 맹점(Context Blindness)이 존재하며, 설정된 규칙에만 의존하기 때문에 잦은 오탐(False Positive)을 발생시켜 개발자의 피로도를 높일 수 있다는 한계가 있습니다 [21, 22]. + +* **하이브리드 리뷰 워크플로우 (Hybrid Approach):** + 2025년 기준 가장 이상적인 방식은 자동화와 인간의 통찰력을 계층화하여 결합하는 것입니다 [5, 23]. CI/CD 파이프라인이나 Git 훅(예: Husky, lint-staged)을 통해 기본 구문 검사와 정형화된 보안 결함, 스타일 교정은 자동화 도구가 코드 커밋 및 PR 단계에서 우선적으로 차단합니다 [24, 25]. 이후 인간 리뷰어는 도구가 정리한 코드를 바탕으로 아키텍처 설계, 보안 문맥, 서비스 간의 교차 영향도와 같은 고차원적인 판단에만 집중할 수 있습니다 [23, 25, 26]. + +* **AI 기반 코드 리뷰 도구의 진화:** + 최근에는 GitHub Copilot, Snyk Code, DeepCode 등 대규모 언어 모델(LLM)과 머신러닝 기반의 분석 도구들이 코드 리뷰에 적극 도입되고 있습니다 [27-29]. AI는 코드의 문맥을 어느 정도 해석하고, 데이터 흐름을 추적하여 오탐률을 줄이며, 리뷰 과정에서 자동으로 코드를 수정해 주는 제안(Auto-fix)을 통해 리뷰 주기를 크게 단축시킵니다 [28, 30, 31]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Manual Code Review]], [[Automated Code Review]], [[SAST]], [[Linting]], [[Prettier]], [[Husky]] +- **Projects/Contexts:** [[CI/CD Pipelines]], [[SDLC]], [[Pull Request]] +- **Contradictions/Notes:** 소스에 따르면 자동화된 리뷰 도구는 코드 검사 속도와 일관성을 극대화하지만, 비즈니스 로직과 아키텍처적 맥락을 이해하지 못해 실제 취약점의 약 22%를 놓치거나 오탐(False Positive)을 대량으로 양산할 수 있습니다 [22, 32]. 따라서 자동화 도구 단독으로는 완벽한 보안과 품질을 보장할 수 없으며, 복잡하고 위험도가 높은 코드는 반드시 인간 리뷰어의 수동 평가가 동반되어야 한다고 강조합니다 [5, 26, 33]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Code Review.md]] +--- diff --git a/AI/Cognitive Biases.md b/AI/Cognitive Biases.md new file mode 100644 index 00000000..583bc52d --- /dev/null +++ b/AI/Cognitive Biases.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-FEA140 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Cognitive Biases" +--- + +# [[Cognitive Biases]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Cognitive Biases.md]] +--- diff --git a/AI/Cognitive Computing.md b/AI/Cognitive Computing.md new file mode 100644 index 00000000..3bea5e45 --- /dev/null +++ b/AI/Cognitive Computing.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E7BBAB +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Cognitive Computing" +--- + +# [[Cognitive Computing]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Cognitive Computing.md]] +--- diff --git a/AI/Cognitive Neuroscience of Flow.md b/AI/Cognitive Neuroscience of Flow.md new file mode 100644 index 00000000..a470949b --- /dev/null +++ b/AI/Cognitive Neuroscience of Flow.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-785635 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Cognitive Neuroscience of Flow" +--- + +# [[Cognitive Neuroscience of Flow]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Cognitive Neuroscience of Flow.md]] +--- diff --git a/AI/Cognitive Psychology.md b/AI/Cognitive Psychology.md new file mode 100644 index 00000000..297547cf --- /dev/null +++ b/AI/Cognitive Psychology.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-2E9AA2 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Cognitive Psychology" +--- + +# [[Cognitive Psychology]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Cognitive Psychology.md]] +--- diff --git a/AI/Cognitive Reserve Theory.md b/AI/Cognitive Reserve Theory.md new file mode 100644 index 00000000..f6037a6d --- /dev/null +++ b/AI/Cognitive Reserve Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-01307D +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Cognitive Reserve Theory" +--- + +# [[Cognitive Reserve Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Cognitive Reserve Theory.md]] +--- diff --git a/AI/Cognitive Training Software (eg Aim Lab_KovaaKs).md b/AI/Cognitive Training Software (eg Aim Lab_KovaaKs).md new file mode 100644 index 00000000..aa9a8084 --- /dev/null +++ b/AI/Cognitive Training Software (eg Aim Lab_KovaaKs).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9F2CFC +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Cognitive Training Software (eg Aim Lab_KovaaKs)" +--- + +# [[Cognitive Training Software (eg Aim Lab_KovaaKs)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Cognitive Training Software (e.g., Aim Lab_KovaaK's).md]] +--- diff --git a/AI/Cognitive-Evaluation-Theory.md b/AI/Cognitive-Evaluation-Theory.md new file mode 100644 index 00000000..6202459a --- /dev/null +++ b/AI/Cognitive-Evaluation-Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-192E25 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Cognitive-Evaluation-Theory" +--- + +# [[Cognitive-Evaluation-Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Cognitive-Evaluation-Theory.md]] +--- diff --git a/AI/Cognitive-Therapy-in-CBT.md b/AI/Cognitive-Therapy-in-CBT.md new file mode 100644 index 00000000..531cb950 --- /dev/null +++ b/AI/Cognitive-Therapy-in-CBT.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-364B53 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Cognitive-Therapy-in-CBT" +--- + +# [[Cognitive-Therapy-in-CBT]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Cognitive-Therapy-in-CBT.md]] +--- diff --git a/AI/Combinatorial Game Theory.md b/AI/Combinatorial Game Theory.md new file mode 100644 index 00000000..0c617c2f --- /dev/null +++ b/AI/Combinatorial Game Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D52D87 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Combinatorial Game Theory" +--- + +# [[Combinatorial Game Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Combinatorial Game Theory.md]] +--- diff --git a/AI/Combinatorial-Optimization.md b/AI/Combinatorial-Optimization.md new file mode 100644 index 00000000..35821a4a --- /dev/null +++ b/AI/Combinatorial-Optimization.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-06C1FB +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Combinatorial-Optimization" +--- + +# [[Combinatorial-Optimization]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Combinatorial-Optimization.md]] +--- diff --git a/AI/CompCert-C-Compiler.md b/AI/CompCert-C-Compiler.md new file mode 100644 index 00000000..8472b0e9 --- /dev/null +++ b/AI/CompCert-C-Compiler.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-4D22EB +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - CompCert-C-Compiler" +--- + +# [[CompCert-C-Compiler]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/CompCert-C-Compiler.md]] +--- diff --git a/AI/Complexity Theory.md b/AI/Complexity Theory.md new file mode 100644 index 00000000..aec28e98 --- /dev/null +++ b/AI/Complexity Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-C7076A +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Complexity Theory" +--- + +# [[Complexity Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Complexity Theory.md]] +--- diff --git a/AI/Computational Creativity.md b/AI/Computational Creativity.md new file mode 100644 index 00000000..51340817 --- /dev/null +++ b/AI/Computational Creativity.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E2FD01 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Computational Creativity" +--- + +# [[Computational Creativity]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Computational Creativity.md]] +--- diff --git a/AI/Computational Neuroscience of Reinforcement Learning.md b/AI/Computational Neuroscience of Reinforcement Learning.md new file mode 100644 index 00000000..d2f398e0 --- /dev/null +++ b/AI/Computational Neuroscience of Reinforcement Learning.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-457C50 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Computational Neuroscience of Reinforcement Learning" +--- + +# [[Computational Neuroscience of Reinforcement Learning]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Computational Neuroscience of Reinforcement Learning.md]] +--- diff --git a/AI/Computational-Creativity.md b/AI/Computational-Creativity.md new file mode 100644 index 00000000..427780d3 --- /dev/null +++ b/AI/Computational-Creativity.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-90667E +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Computational-Creativity" +--- + +# [[Computational-Creativity]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Computational-Creativity.md]] +--- diff --git a/AI/Computer Vision.md b/AI/Computer Vision.md new file mode 100644 index 00000000..d087c555 --- /dev/null +++ b/AI/Computer Vision.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-4D80EC +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Computer Vision" +--- + +# [[Computer Vision]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Computer Vision.md]] +--- diff --git a/AI/Computer-Aided-Design (CAD).md b/AI/Computer-Aided-Design (CAD).md new file mode 100644 index 00000000..e4ef2ac1 --- /dev/null +++ b/AI/Computer-Aided-Design (CAD).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-518851 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Computer-Aided-Design (CAD)" +--- + +# [[Computer-Aided-Design (CAD)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Computer-Aided-Design (CAD).md]] +--- diff --git a/AI/Computer_Vision.md b/AI/Computer_Vision.md new file mode 100644 index 00000000..503fe54e --- /dev/null +++ b/AI/Computer_Vision.md @@ -0,0 +1,29 @@ +--- +id: P-REINFORCE-AI-001 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.97 +tags: [ai, computer-vision, cnn, transformer] +last_reinforced: 2026-04-20 +github_commit: "batch-reinforce-03" +--- + +# [[Computer Vision]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 디지털 이미지와 비디오에서 고차원적인 의미를 추출하여 기계가 세상을 '보고' '이해하게' 만드는 AI의 감각 기관. + +## 📖 구조화된 지식 (Synthesized Content) +- **추출된 패턴:** 이미지 픽셀에서 특징(Feature)을 추출하고 이를 계층적으로 구조화하여 객체를 인식하는 비전 처리 패턴. +- **세부 내용:** + - CNN(합성곱 신경망)에서 ViT(비전 트랜스포머)로의 아키텍처 진화. + - 이미지 분류, 객체 탐지, 세그멘테이션 등 핵심 태스크 Taxonomy 정의. + - 실시간 객체 추적 및 공간 이해를 위한 딥러닝 기법 통합. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 기하학적 매칭 중심의 전통적 CV에서 데이터 기반의 신경망 학습 모델로 패러다임 완전 전환. +- **정책 변화:** 기술적 정확도(w1)와 윤리적 프라이버시 보호의 가중치 균형 조절. + +## 🔗 지식 연결 (Graph) +- **Parent:** [[10_Wiki/💡 Topics/AI]] +- **Related:** [[CV_Synthesis]], [[Object-Detection]], [[CNN]] +- **Raw Source:** [[00_Raw/2026-04-20/Computer Vision.md]] diff --git a/AI/Concept Drift (개념 드리프트).md b/AI/Concept Drift (개념 드리프트).md new file mode 100644 index 00000000..ecddf505 --- /dev/null +++ b/AI/Concept Drift (개념 드리프트).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-63C90D +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Concept Drift (개념 드리프트)" +--- + +# [[Concept Drift (개념 드리프트)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Concept Drift (개념 드리프트).md]] +--- diff --git a/AI/Connect AI 기술 문서 및 사용 설명서.md b/AI/Connect AI 기술 문서 및 사용 설명서.md new file mode 100644 index 00000000..bf563d14 --- /dev/null +++ b/AI/Connect AI 기술 문서 및 사용 설명서.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D1D238 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Connect AI 기술 문서 및 사용 설명서" +--- + +# [[Connect AI 기술 문서 및 사용 설명서]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Connect AI 기술 문서 및 사용 설명서.md]] +--- diff --git a/AI/Connect AI 시스템 아키텍처 및 데이터 흐름 분석.md b/AI/Connect AI 시스템 아키텍처 및 데이터 흐름 분석.md new file mode 100644 index 00000000..612aad98 --- /dev/null +++ b/AI/Connect AI 시스템 아키텍처 및 데이터 흐름 분석.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-3841AD +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Connect AI 시스템 아키텍처 및 데이터 흐름 분석" +--- + +# [[Connect AI 시스템 아키텍처 및 데이터 흐름 분석]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Connect AI 시스템 아키텍처 및 데이터 흐름 분석.md]] +--- diff --git a/AI/Constitutional AI (헌법 AI).md b/AI/Constitutional AI (헌법 AI).md new file mode 100644 index 00000000..39f11a2d --- /dev/null +++ b/AI/Constitutional AI (헌법 AI).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-938CE2 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Constitutional AI (헌법 AI)" +--- + +# [[Constitutional AI (헌법 AI)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Constitutional AI (헌법 AI).md]] +--- diff --git a/AI/Constraint Satisfaction Problems (CSP).md b/AI/Constraint Satisfaction Problems (CSP).md new file mode 100644 index 00000000..99a95409 --- /dev/null +++ b/AI/Constraint Satisfaction Problems (CSP).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-075C49 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Constraint Satisfaction Problems (CSP)" +--- + +# [[Constraint Satisfaction Problems (CSP)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Constraint Satisfaction Problems (CSP).md]] +--- diff --git a/AI/Constraint-Satisfaction-Problems.md b/AI/Constraint-Satisfaction-Problems.md new file mode 100644 index 00000000..98fd2db3 --- /dev/null +++ b/AI/Constraint-Satisfaction-Problems.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-BE1BD5 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Constraint-Satisfaction-Problems" +--- + +# [[Constraint-Satisfaction-Problems]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Constraint-Satisfaction-Problems.md]] +--- diff --git a/AI/Continuous-Discovery.md b/AI/Continuous-Discovery.md new file mode 100644 index 00000000..d38db15f --- /dev/null +++ b/AI/Continuous-Discovery.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-8E53F2 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Continuous-Discovery" +--- + +# [[Continuous-Discovery]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Continuous-Discovery.md]] +--- diff --git a/AI/Control Systems Engineering.md b/AI/Control Systems Engineering.md new file mode 100644 index 00000000..f2ac1e18 --- /dev/null +++ b/AI/Control Systems Engineering.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5DA236 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Control Systems Engineering" +--- + +# [[Control Systems Engineering]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Control Systems Engineering.md]] +--- diff --git a/AI/Control-Theory.md b/AI/Control-Theory.md new file mode 100644 index 00000000..e8118f80 --- /dev/null +++ b/AI/Control-Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-35251E +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Control-Theory" +--- + +# [[Control-Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Control-Theory.md]] +--- diff --git a/AI/Conways On Numbers and Games.md b/AI/Conways On Numbers and Games.md new file mode 100644 index 00000000..3e6033d6 --- /dev/null +++ b/AI/Conways On Numbers and Games.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6026CC +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Conways On Numbers and Games" +--- + +# [[Conways On Numbers and Games]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Conway's On Numbers and Games.md]] +--- diff --git a/AI/Corgea.md b/AI/Corgea.md new file mode 100644 index 00000000..a059f4d2 --- /dev/null +++ b/AI/Corgea.md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-DA5E03 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Corgea" +--- + +# [[Corgea]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Corgea는 대형 언어 모델(LLM)을 사후 스캔 분류가 아닌 핵심 스캐닝 엔진의 일부로 직접 활용하는 AI 네이티브 정적 애플리케이션 보안 테스트(SAST) 플랫폼입니다 [1]. 패턴 기반 스캐너가 놓치기 쉬운 복잡한 비즈니스 로직 결함을 깊이 있게 이해하고, 5% 미만의 낮은 오탐지율(False Positive rate)을 달성하여 기존 SAST 도구의 노이즈 문제를 해결합니다 [1-4]. 20개 이상의 언어를 지원하며, 검증된 AI 자동 수정(Auto-fix) 기능을 개발자의 작업 흐름(IDE 및 PR) 내에 직접 제공하는 것이 특징입니다 [2, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **AI 네이티브 탐지 및 문맥 이해**: Corgea는 LLM을 스캐닝 과정에 활용하여 코드의 문맥과 의도를 파악합니다. 이를 통해 단순한 패턴 매칭만으로는 찾기 힘든 비즈니스 로직 취약점(예: 손상된 인증 시스템 등)을 탐지할 수 있습니다 [3, 5]. 이러한 접근 방식은 오탐지율을 5% 미만으로 크게 낮추는 데 기여합니다 [2, 4]. +- **PolicyIQ를 통한 맞춤형 문맥화**: 팀이 자연어를 사용하여 비즈니스 및 환경적 맥락을 제공할 수 있도록 하는 PolicyIQ 기능을 지원합니다 [3]. 스캐너는 이 컨텍스트를 활용하여 탐지 정확도를 개선하고 보다 적절한 수정안을 생성합니다 [3]. +- **도달 가능성 분석(Reachability Analysis)**: SAST 도달 가능성 분석을 수행하여 엔드포인트를 확인하고, 취약한 함수로 이어지는 콜 그래프(Call graph)를 생성하여 해당 취약점이 실제로 도달하여 악용될 수 있는지를 판별합니다 [3]. +- **워크플로우 통합 및 자동 수정**: Corgea는 IDE 및 Pull Request(PR) 단계에서 AI가 생성하고 검증한 수정안을 제공하여, 개발자가 평소 작업하는 흐름 내에서 직접 문제를 해결할 수 있도록 돕습니다 [2, 3]. 독립적인 Latio.tech 보고서에서 시중 최고의 자동 수정 도구로 평가받은 바 있습니다 [3]. +- **잠재적 한계점**: 시장 진입이 비교적 최근에 이루어졌기 때문에 Latio.tech 보고서 외에는 독립적인 벤치마킹 데이터가 아직 부족하다는 점이 한계로 꼽힙니다 [6]. 또한, AI를 통해 오탐지를 크게 줄이기는 하지만 완벽하게 제거할 수는 없으며, 기존의 확고한 레거시 벤더들에 비해 기업 내 도입 설득이 더 어려울 수 있습니다 [6]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[SAST]], [[LLM]], [[PolicyIQ]], [[Reachability Analysis]] +- **Projects/Contexts:** [[Latio.tech Report]], [[Best SAST Tools in 2026]] +- **Contradictions/Notes:** 독립적인 평가(Latio.tech)에서 최고의 자동 수정 도구로 극찬을 받았으나, 신생 플랫폼인 탓에 다양한 객관적 벤치마킹 자료가 아직 부족하다는 점이 동시에 지적되고 있습니다 [3, 6]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Corgea.md]] +--- diff --git a/AI/Corporate-LMS-Training.md b/AI/Corporate-LMS-Training.md new file mode 100644 index 00000000..a3555e87 --- /dev/null +++ b/AI/Corporate-LMS-Training.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-51DD02 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Corporate-LMS-Training" +--- + +# [[Corporate-LMS-Training]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Corporate-LMS-Training.md]] +--- diff --git a/AI/Creativity Research.md b/AI/Creativity Research.md new file mode 100644 index 00000000..64a5f756 --- /dev/null +++ b/AI/Creativity Research.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-3C4B46 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Creativity Research" +--- + +# [[Creativity Research]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Creativity Research.md]] +--- diff --git a/AI/Credit Assignment Problem.md b/AI/Credit Assignment Problem.md new file mode 100644 index 00000000..c05018ab --- /dev/null +++ b/AI/Credit Assignment Problem.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-55E155 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Credit Assignment Problem" +--- + +# [[Credit Assignment Problem]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Credit Assignment Problem.md]] +--- diff --git a/AI/Custom-ESLint-Rules-Development.md b/AI/Custom-ESLint-Rules-Development.md new file mode 100644 index 00000000..7efab2e7 --- /dev/null +++ b/AI/Custom-ESLint-Rules-Development.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-4AB505 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Custom-ESLint-Rules-Development" +--- + +# [[Custom-ESLint-Rules-Development]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Custom-ESLint-Rules-Development.md]] +--- diff --git a/AI/Customer-Journey-Mapping.md b/AI/Customer-Journey-Mapping.md new file mode 100644 index 00000000..97721ea2 --- /dev/null +++ b/AI/Customer-Journey-Mapping.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-47D82D +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Customer-Journey-Mapping" +--- + +# [[Customer-Journey-Mapping]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Customer-Journey-Mapping.md]] +--- diff --git a/AI/Cybernetics.md b/AI/Cybernetics.md new file mode 100644 index 00000000..735ee1a0 --- /dev/null +++ b/AI/Cybernetics.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-F6EC43 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Cybernetics" +--- + +# [[Cybernetics]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Cybernetics.md]] +--- diff --git a/AI/DPO (Direct Preference Optimization).md b/AI/DPO (Direct Preference Optimization).md new file mode 100644 index 00000000..457257da --- /dev/null +++ b/AI/DPO (Direct Preference Optimization).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D43239 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - DPO (Direct Preference Optimization)" +--- + +# [[DPO (Direct Preference Optimization)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/DPO (Direct Preference Optimization).md]] +--- diff --git a/AI/Data Distillation (데이터 증류).md b/AI/Data Distillation (데이터 증류).md new file mode 100644 index 00000000..1ea9bbb8 --- /dev/null +++ b/AI/Data Distillation (데이터 증류).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-2EC269 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Data Distillation (데이터 증류)" +--- + +# [[Data Distillation (데이터 증류)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Data Distillation (데이터 증류).md]] +--- diff --git a/AI/Data-Augmentation-for-Medical-Imaging.md b/AI/Data-Augmentation-for-Medical-Imaging.md new file mode 100644 index 00000000..91aecaf2 --- /dev/null +++ b/AI/Data-Augmentation-for-Medical-Imaging.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-258909 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Data-Augmentation-for-Medical-Imaging" +--- + +# [[Data-Augmentation-for-Medical-Imaging]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Data-Augmentation-for-Medical-Imaging.md]] +--- diff --git a/AI/Data-Science-in-UX.md b/AI/Data-Science-in-UX.md new file mode 100644 index 00000000..af17dfec --- /dev/null +++ b/AI/Data-Science-in-UX.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-235CC7 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Data-Science-in-UX" +--- + +# [[Data-Science-in-UX]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Data-Science-in-UX.md]] +--- diff --git a/AI/Data-Transfer-Object-Design.md b/AI/Data-Transfer-Object-Design.md new file mode 100644 index 00000000..c4ae231a --- /dev/null +++ b/AI/Data-Transfer-Object-Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-21E554 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Data-Transfer-Object-Design" +--- + +# [[Data-Transfer-Object-Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Data-Transfer-Object-Design.md]] +--- diff --git a/AI/Dead Space (Series).md b/AI/Dead Space (Series).md new file mode 100644 index 00000000..afd55743 --- /dev/null +++ b/AI/Dead Space (Series).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-989941 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Dead Space (Series)" +--- + +# [[Dead Space (Series)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Dead Space (Series).md]] +--- diff --git a/AI/Deceptive Alignment (기만적 정렬).md b/AI/Deceptive Alignment (기만적 정렬).md new file mode 100644 index 00000000..edc172c7 --- /dev/null +++ b/AI/Deceptive Alignment (기만적 정렬).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-EB9E46 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Deceptive Alignment (기만적 정렬)" +--- + +# [[Deceptive Alignment (기만적 정렬)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Deceptive Alignment (기만적 정렬).md]] +--- diff --git a/AI/Decision Theory.md b/AI/Decision Theory.md new file mode 100644 index 00000000..32c46eac --- /dev/null +++ b/AI/Decision Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B8B3FB +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Decision Theory" +--- + +# [[Decision Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Decision Theory.md]] +--- diff --git a/AI/Declaration Files (dts).md b/AI/Declaration Files (dts).md new file mode 100644 index 00000000..dd1ea1d1 --- /dev/null +++ b/AI/Declaration Files (dts).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D2F3A4 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Declaration Files (dts)" +--- + +# [[Declaration Files (dts)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Declaration Files (.d.ts).md]] +--- diff --git a/AI/Declaration-Files.md b/AI/Declaration-Files.md new file mode 100644 index 00000000..1b7e9c35 --- /dev/null +++ b/AI/Declaration-Files.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-2150D3 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Declaration-Files" +--- + +# [[Declaration-Files]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Declaration-Files.md]] +--- diff --git a/AI/Deep Q-Networks (DQN).md b/AI/Deep Q-Networks (DQN).md new file mode 100644 index 00000000..a054c788 --- /dev/null +++ b/AI/Deep Q-Networks (DQN).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-704527 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Deep Q-Networks (DQN)" +--- + +# [[Deep Q-Networks (DQN)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Deep Q-Networks (DQN).md]] +--- diff --git a/AI/Deep-Convolutional-GANs.md b/AI/Deep-Convolutional-GANs.md new file mode 100644 index 00000000..3113d5e5 --- /dev/null +++ b/AI/Deep-Convolutional-GANs.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-84A34B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Deep-Convolutional-GANs" +--- + +# [[Deep-Convolutional-GANs]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Deep-Convolutional-GANs.md]] +--- diff --git a/AI/DeepCode AI.md b/AI/DeepCode AI.md new file mode 100644 index 00000000..76aa8cda --- /dev/null +++ b/AI/DeepCode AI.md @@ -0,0 +1,37 @@ +--- +id: P-REINFORCE-AUTO-A75F29 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - DeepCode AI" +--- + +# [[DeepCode AI]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> DeepCode AI는 수백만 개의 오픈소스 코드 커밋을 학습하여 취약점을 탐지하고 수정 사항을 제안하는 머신러닝(ML) 기반의 목적 맞춤형 보안 AI 엔진입니다 [1-3]. 2020년 보안 기업 Snyk이 스위스 AI 스타트업인 DeepCode를 인수하여 자사의 정적 애플리케이션 보안 테스트(SAST) 도구인 Snyk Code의 핵심 인텔리전스 계층으로 통합했습니다 [1, 2, 4]. 이 엔진은 단순한 규칙 기반 패턴 매칭을 넘어 기호적 AI(Symbolic AI)와 신경망을 결합하여 코드의 의미(semantics)와 데이터 흐름을 깊이 있게 이해합니다 [4, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +- **엔진의 작동 방식 및 분석 기법** + DeepCode AI 엔진은 코드를 텍스트로 생성하는 일반적인 대형 언어 모델(LLM) 방식이 아니라, 기호적 추론(symbolic reasoning)과 신경망을 결합해 코드의 의미론적 표현(semantic representation)을 구축합니다 [1, 5]. 2,500만 개 이상의 데이터 흐름 사례와 19개 이상의 프로그래밍 언어를 지원하며, 파일 간 데이터 흐름(interfile dataflow analysis)을 추적하여 여러 파일이나 모듈의 경계를 넘나드는 복잡한 취약점을 파악합니다 [4, 6, 7]. 고정된 패턴이 아닌 코드의 의도를 이해하므로 대규모 변종 탐지(variant detection)에 매우 뛰어납니다 [6, 8]. + +- **딥코드 AI 픽스(DeepCode AI Fix)를 통한 자동 수정** + 이 엔진의 가장 눈에 띄는 기능 중 하나는 취약점 발견 시 해결 방안을 제안하는 'DeepCode AI Fix'입니다 [9]. 일반적인 LLM 생성 수정안과 달리, DeepCode AI Fix는 실제 오픈소스 프로젝트에서 개발자들이 해당 취약점을 해결했던 검증된 패턴들을 특별히 학습했습니다 [9]. 이를 통해 가짜 정보(Hallucination) 위험을 줄이고 보다 신뢰할 수 있으며 문맥에 알맞은 수정안을 제시합니다 [7, 9]. + +- **낮은 오탐률(False Positive Rate)과 개발자 친화성** + 수많은 실제 오픈소스 커밋의 취약점 패턴과 그에 대응하는 수정 데이터를 학습했기 때문에, 단순히 의심스러워 보이는 코드와 실제로 악용 가능한 코드를 정확히 식별합니다 [3, 10]. 그 결과, 기존의 전통적인 규칙 기반 SAST 도구들을 사용할 때 흔히 겪는 수많은 오탐(False Positives)과 노이즈를 크게 줄일 수 있습니다 [5, 10]. 또한 스캔 속도가 매우 빨라 IDE 내에서 개발 워크플로우를 방해하지 않고 실시간으로 실행될 수 있습니다 [2]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Snyk Code]], [[SAST (Static Application Security Testing)]], [[Symbolic AI]], [[Machine Learning]] +- **Projects/Contexts:** [[Snyk 플랫폼을 통한 IDE 및 CI/CD 파이프라인 통합 보안 검토 프로젝트]] +- **Contradictions/Notes:** DeepCode AI가 자동으로 취약점을 감지하고 수정안을 제시하지만, 일부 결과는 여전히 수동 검증이 필요하며 분석의 깊이는 언어에 따라 다를 수 있다는 점이 지적됩니다 [6]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/DeepCode AI.md]] +--- diff --git a/AI/Deepfake-Detection-Research.md b/AI/Deepfake-Detection-Research.md new file mode 100644 index 00000000..e8ec59a9 --- /dev/null +++ b/AI/Deepfake-Detection-Research.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-DD74C9 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Deepfake-Detection-Research" +--- + +# [[Deepfake-Detection-Research]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Deepfake-Detection-Research.md]] +--- diff --git a/AI/Default Mode Network (DMN).md b/AI/Default Mode Network (DMN).md new file mode 100644 index 00000000..8221a382 --- /dev/null +++ b/AI/Default Mode Network (DMN).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B914F1 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Default Mode Network (DMN)" +--- + +# [[Default Mode Network (DMN)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Default Mode Network (DMN).md]] +--- diff --git a/AI/DefinitelyTyped.md b/AI/DefinitelyTyped.md new file mode 100644 index 00000000..eb6ff2f5 --- /dev/null +++ b/AI/DefinitelyTyped.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-4BB90C +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - DefinitelyTyped" +--- + +# [[DefinitelyTyped]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/DefinitelyTyped.md]] +--- diff --git a/AI/Degrees-of-Freedom.md b/AI/Degrees-of-Freedom.md new file mode 100644 index 00000000..01cf2a91 --- /dev/null +++ b/AI/Degrees-of-Freedom.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B68509 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Degrees-of-Freedom" +--- + +# [[Degrees-of-Freedom]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Degrees-of-Freedom.md]] +--- diff --git a/AI/Deliberate-Practice.md b/AI/Deliberate-Practice.md new file mode 100644 index 00000000..f0850acd --- /dev/null +++ b/AI/Deliberate-Practice.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-EE5EE5 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Deliberate-Practice" +--- + +# [[Deliberate-Practice]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Deliberate-Practice.md]] +--- diff --git a/AI/Denavit-Hartenberg-Parameters.md b/AI/Denavit-Hartenberg-Parameters.md new file mode 100644 index 00000000..78b6dc26 --- /dev/null +++ b/AI/Denavit-Hartenberg-Parameters.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B3CEC1 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Denavit-Hartenberg-Parameters" +--- + +# [[Denavit-Hartenberg-Parameters]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Denavit-Hartenberg-Parameters.md]] +--- diff --git a/AI/Dependency-Graph-Analysis.md b/AI/Dependency-Graph-Analysis.md new file mode 100644 index 00000000..c19c1a08 --- /dev/null +++ b/AI/Dependency-Graph-Analysis.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-597DF8 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Dependency-Graph-Analysis" +--- + +# [[Dependency-Graph-Analysis]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Dependency-Graph-Analysis.md]] +--- diff --git a/AI/Dependency-Injection.md b/AI/Dependency-Injection.md new file mode 100644 index 00000000..019b1bd6 --- /dev/null +++ b/AI/Dependency-Injection.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D3C51B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Dependency-Injection" +--- + +# [[Dependency-Injection]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Dependency-Injection.md]] +--- diff --git a/AI/Dependency-Inversion-Principle.md b/AI/Dependency-Inversion-Principle.md new file mode 100644 index 00000000..a340143b --- /dev/null +++ b/AI/Dependency-Inversion-Principle.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-4C0291 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Dependency-Inversion-Principle" +--- + +# [[Dependency-Inversion-Principle]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Dependency-Inversion-Principle.md]] +--- diff --git a/AI/DevOps-and-UX-Convergence.md b/AI/DevOps-and-UX-Convergence.md new file mode 100644 index 00000000..e7575bec --- /dev/null +++ b/AI/DevOps-and-UX-Convergence.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9EB8EA +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - DevOps-and-UX-Convergence" +--- + +# [[DevOps-and-UX-Convergence]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/DevOps-and-UX-Convergence.md]] +--- diff --git a/AI/DevSecOps.md b/AI/DevSecOps.md new file mode 100644 index 00000000..421de756 --- /dev/null +++ b/AI/DevSecOps.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-89C666 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - DevSecOps" +--- + +# [[DevSecOps]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> DevSecOps는 소프트웨어 개발 수명 주기(SDLC) 전반에 걸쳐 보안을 통합하는 방법론입니다 [1]. 핵심적인 접근 방식은 보안 점검을 개발 초기 단계로 앞당기는 '시프트 레프트(Shift-left)' 전략입니다 [2]. 기존 개발 워크플로우를 늦추지 않으면서도 CI/CD 파이프라인이나 개발 환경(IDE)에 코드 검사 도구 및 AI 자동화를 도입하여 보안 위협을 조기에 탐지하고 대응하는 것을 목표로 합니다 [2, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +* **시프트 레프트(Shift-Left) 전략:** DevSecOps의 핵심은 개발 프로세스의 가장 이른 시점에 취약점을 발견하고 조치하는 '시프트 레프트'에 있습니다 [2]. 지속적 통합 및 지속적 배포(CI/CD) 파이프라인이나 개발자의 IDE 환경에 정적 애플리케이션 보안 테스트(SAST) 도구와 코드 체커를 구현하는 것이 DevSecOps의 가장 널리 인정받는 모범 사례입니다 [2, 4]. +* **AI 및 자동화의 결합:** 최신 DevSecOps 환경은 AI와 자동화를 도입하여 복잡한 보안 과제를 해결하고 있습니다 [3]. AI 기반 보안 분석 도구는 코드의 문맥과 데이터 흐름을 추적하여 패턴 기반 도구가 놓치기 쉬운 취약점을 찾아내며, 자동 수정(Auto-fix) 기능을 통해 스캔부터 수정까지의 주기를 최적화하고 시간을 절약하도록 돕습니다 [5-7]. +* **원활한 워크플로우 통합:** 성공적인 DevSecOps를 구축하려면 개발자의 일상적인 작업 환경에 보안 도구가 매끄럽게 통합되어야 합니다 [4]. 실시간 또는 풀 리퀘스트(PR) 단계에서 소스 코드를 분석하여 코딩 실수, 아키텍처 결함, 보안 취약점이 운영 환경에 배포되기 전에 조기 피드백을 제공합니다 [2, 8]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[SDLC]], [[Shift-Left]], [[SAST]], [[CI/CD]] +- **Projects/Contexts:** [[Snyk]], [[GitHub Advanced Security]], [[SonarQube]] 등 코드 품질 및 보안 분석 도구들을 개발 워크플로우(IDE, 리포지토리, CI/CD)에 연동하여 실시간 보안 피드백을 제공하는 방식으로 구성됩니다 [1, 2, 9]. +- **Contradictions/Notes:** DevSecOps 워크플로우에서 자동화된 검사는 필수적이지만, AI나 스캐너 도구는 비즈니스 로직이나 의도를 파악하지 못하는 맹점(Context Blindness)을 가지고 있습니다 [10]. 따라서 자동화 도구가 일상적이고 반복적인 취약점을 빠르게 잡아내고, 인간 리뷰어가 아키텍처와 복잡한 보안 컨텍스트에 집중하는 '하이브리드(Hybrid)' 접근법이 가장 이상적인 모델로 권장됩니다 [11, 12]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/DevSecOps.md]] +--- diff --git a/AI/Diffusion-Models.md b/AI/Diffusion-Models.md new file mode 100644 index 00000000..b39bd05c --- /dev/null +++ b/AI/Diffusion-Models.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-7C0B06 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Diffusion-Models" +--- + +# [[Diffusion-Models]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Diffusion-Models.md]] +--- diff --git a/AI/Digital Intellectual Property Rights.md b/AI/Digital Intellectual Property Rights.md new file mode 100644 index 00000000..813bb828 --- /dev/null +++ b/AI/Digital Intellectual Property Rights.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-384956 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Digital Intellectual Property Rights" +--- + +# [[Digital Intellectual Property Rights]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Digital Intellectual Property Rights.md]] +--- diff --git a/AI/Digital Thread Integration.md b/AI/Digital Thread Integration.md new file mode 100644 index 00000000..e2eb8ea3 --- /dev/null +++ b/AI/Digital Thread Integration.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A9FF14 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Digital Thread Integration" +--- + +# [[Digital Thread Integration]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Digital Thread Integration.md]] +--- diff --git a/AI/Digital-Twin-Technology.md b/AI/Digital-Twin-Technology.md new file mode 100644 index 00000000..da61cc32 --- /dev/null +++ b/AI/Digital-Twin-Technology.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D08215 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Digital-Twin-Technology" +--- + +# [[Digital-Twin-Technology]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Digital-Twin-Technology.md]] +--- diff --git a/AI/Diminishing Returns (한계 수익 체감).md b/AI/Diminishing Returns (한계 수익 체감).md new file mode 100644 index 00000000..87b4d51f --- /dev/null +++ b/AI/Diminishing Returns (한계 수익 체감).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-26A63C +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Diminishing Returns (한계 수익 체감)" +--- + +# [[Diminishing Returns (한계 수익 체감)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Diminishing Returns (한계 수익 체감).md]] +--- diff --git a/AI/Directed-Acyclic-Graph-Build-Systems.md b/AI/Directed-Acyclic-Graph-Build-Systems.md new file mode 100644 index 00000000..32c53ced --- /dev/null +++ b/AI/Directed-Acyclic-Graph-Build-Systems.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B5202A +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Directed-Acyclic-Graph-Build-Systems" +--- + +# [[Directed-Acyclic-Graph-Build-Systems]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Directed-Acyclic-Graph-Build-Systems.md]] +--- diff --git a/AI/Directed-Acyclic-Graph-Dependency-Management.md b/AI/Directed-Acyclic-Graph-Dependency-Management.md new file mode 100644 index 00000000..bd4db462 --- /dev/null +++ b/AI/Directed-Acyclic-Graph-Dependency-Management.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5577CF +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Directed-Acyclic-Graph-Dependency-Management" +--- + +# [[Directed-Acyclic-Graph-Dependency-Management]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Directed-Acyclic-Graph-Dependency-Management.md]] +--- diff --git a/AI/Discriminated-Unions-for-Error-Handling.md b/AI/Discriminated-Unions-for-Error-Handling.md new file mode 100644 index 00000000..993d78da --- /dev/null +++ b/AI/Discriminated-Unions-for-Error-Handling.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-F4914A +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Discriminated-Unions-for-Error-Handling" +--- + +# [[Discriminated-Unions-for-Error-Handling]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Discriminated-Unions-for-Error-Handling.md]] +--- diff --git a/AI/Discriminated-Unions-for-State-Modeling.md b/AI/Discriminated-Unions-for-State-Modeling.md new file mode 100644 index 00000000..df9e09d0 --- /dev/null +++ b/AI/Discriminated-Unions-for-State-Modeling.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-326E8C +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Discriminated-Unions-for-State-Modeling" +--- + +# [[Discriminated-Unions-for-State-Modeling]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Discriminated-Unions-for-State-Modeling.md]] +--- diff --git a/AI/Discriminated-Unions.md b/AI/Discriminated-Unions.md new file mode 100644 index 00000000..f75978cd --- /dev/null +++ b/AI/Discriminated-Unions.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-1AAB27 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Discriminated-Unions" +--- + +# [[Discriminated-Unions]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Discriminated-Unions.md]] +--- diff --git a/AI/Dissipative Structures.md b/AI/Dissipative Structures.md new file mode 100644 index 00000000..c011afd1 --- /dev/null +++ b/AI/Dissipative Structures.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-25ABE0 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Dissipative Structures" +--- + +# [[Dissipative Structures]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Dissipative Structures.md]] +--- diff --git a/AI/Distributed-System-Type-Safety.md b/AI/Distributed-System-Type-Safety.md new file mode 100644 index 00000000..4426efde --- /dev/null +++ b/AI/Distributed-System-Type-Safety.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-1E4141 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Distributed-System-Type-Safety" +--- + +# [[Distributed-System-Type-Safety]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Distributed-System-Type-Safety.md]] +--- diff --git a/AI/Domain Objects.md b/AI/Domain Objects.md new file mode 100644 index 00000000..13ed12cb --- /dev/null +++ b/AI/Domain Objects.md @@ -0,0 +1,35 @@ +--- +id: P-REINFORCE-AUTO-17D3D3 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Domain Objects" +--- + +# [[Domain Objects]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 도메인 객체(Domain Objects)는 비즈니스 개념을 표현하고 전사적인 비즈니스 규칙과 데이터 구조를 캡슐화하는 핵심 객체입니다 [1, 2]. 소프트웨어 아키텍처의 가장 중심부에 위치하며 프레임워크나 사용자 인터페이스(UI), 데이터베이스 등 외부 계층에 전혀 의존하지 않고 독립적으로 존재합니다 [1, 3]. 복잡한 비즈니스 로직을 명확하게 모델링하고 시스템의 근본적인 뼈대를 형성하는 데 필수적인 역할을 합니다 [1, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +* **비즈니스 개념의 직접적 표현:** + 도메인 객체는 소프트웨어가 해결하고자 하는 비즈니스 개념 자체를 코드로 표현합니다 [2]. 예를 들어, 쇼핑 애플리케이션에서는 사용자 정보나 상품 정보를 나타내는 `Product` 클래스가 도메인 객체의 역할을 수행하게 됩니다 [2]. +* **클린 아키텍처(Clean Architecture)에서의 중심 역할:** + 클린 아키텍처에서 도메인 객체는 시스템의 심장부인 '엔티티(Entities)' 또는 '도메인 계층'에 위치합니다 [1, 3]. 이들은 다른 외부 에이전시나 프레임워크, UI의 변화로부터 완벽하게 격리되어 순수한 엔터프라이즈 비즈니스 규칙만을 포함합니다 [1, 3]. +* **도메인 주도 설계(DDD)와 애그리게이트(Aggregates):** + 도메인 주도 설계에서 도메인 객체들은 단일 단위로 취급될 수 있는 객체들의 무리인 '애그리게이트'로 묶이게 됩니다 [5]. 예를 들어 '주문(Order)'이라는 애그리게이트는 '주문 내역(OrderLineItem)'이라는 도메인 객체들을 포함할 수 있습니다 [5]. 이때 애그리게이트의 루트(root)는 클러스터 전체의 일관성을 보장하여 트랜잭션 관리를 단순하게 만들어 줍니다 [5]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Domain-Driven Design]], [[Clean Architecture]], [[Entities]], [[Aggregates]] +- **Projects/Contexts:** [[쇼핑 애플리케이션 도메인 모델]] +- **Contradictions/Notes:** 소스 내에서 도메인 객체에 대한 모순이나 상반된 주장은 존재하지 않으며, 일관되게 시스템의 핵심 비즈니스 로직을 캡슐화하고 외부 의존성으로부터 철저히 분리되어야 하는 대상으로 강조됩니다 [1-3]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Domain Objects.md]] +--- diff --git a/AI/Domain-Driven Design (DDD) Type Safety.md b/AI/Domain-Driven Design (DDD) Type Safety.md new file mode 100644 index 00000000..55d61020 --- /dev/null +++ b/AI/Domain-Driven Design (DDD) Type Safety.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-BE347F +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Domain-Driven Design (DDD) Type Safety" +--- + +# [[Domain-Driven Design (DDD) Type Safety]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Domain-Driven Design (DDD) Type Safety.md]] +--- diff --git a/AI/Domain-Driven Design (DDD) in TypeScript.md b/AI/Domain-Driven Design (DDD) in TypeScript.md new file mode 100644 index 00000000..f7641527 --- /dev/null +++ b/AI/Domain-Driven Design (DDD) in TypeScript.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-F89598 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Domain-Driven Design (DDD) in TypeScript" +--- + +# [[Domain-Driven Design (DDD) in TypeScript]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Domain-Driven Design (DDD) in TypeScript.md]] +--- diff --git a/AI/Domain-Driven-Design (DDD) in TypeScript.md b/AI/Domain-Driven-Design (DDD) in TypeScript.md new file mode 100644 index 00000000..ce74c7d6 --- /dev/null +++ b/AI/Domain-Driven-Design (DDD) in TypeScript.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D7AB12 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Domain-Driven-Design (DDD) in TypeScript" +--- + +# [[Domain-Driven-Design (DDD) in TypeScript]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Domain-Driven-Design (DDD) in TypeScript.md]] +--- diff --git a/AI/Domain-Driven-Design (DDD).md b/AI/Domain-Driven-Design (DDD).md new file mode 100644 index 00000000..8bef2790 --- /dev/null +++ b/AI/Domain-Driven-Design (DDD).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-7AB40D +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Domain-Driven-Design (DDD)" +--- + +# [[Domain-Driven-Design (DDD)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Domain-Driven-Design (DDD).md]] +--- diff --git a/AI/Domain-Driven-Design-(DDD)-in-TypeScript.md b/AI/Domain-Driven-Design-(DDD)-in-TypeScript.md new file mode 100644 index 00000000..aadbe9a8 --- /dev/null +++ b/AI/Domain-Driven-Design-(DDD)-in-TypeScript.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-13548A +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Domain-Driven-Design-(DDD)-in-TypeScript" +--- + +# [[Domain-Driven-Design-(DDD)-in-TypeScript]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Domain-Driven-Design-(DDD)-in-TypeScript.md]] +--- diff --git a/AI/Domain-Driven-Design-(DDD).md b/AI/Domain-Driven-Design-(DDD).md new file mode 100644 index 00000000..7a59df16 --- /dev/null +++ b/AI/Domain-Driven-Design-(DDD).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-C360C0 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Domain-Driven-Design-(DDD)" +--- + +# [[Domain-Driven-Design-(DDD)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Domain-Driven-Design-(DDD).md]] +--- diff --git a/AI/Domain-Driven-Design-Bounded-Context.md b/AI/Domain-Driven-Design-Bounded-Context.md new file mode 100644 index 00000000..396e23d4 --- /dev/null +++ b/AI/Domain-Driven-Design-Bounded-Context.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-551739 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Domain-Driven-Design-Bounded-Context" +--- + +# [[Domain-Driven-Design-Bounded-Context]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Domain-Driven-Design-Bounded-Context.md]] +--- diff --git a/AI/Domain-Driven-Design-Interface-Modeling.md b/AI/Domain-Driven-Design-Interface-Modeling.md new file mode 100644 index 00000000..f16e4017 --- /dev/null +++ b/AI/Domain-Driven-Design-Interface-Modeling.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-BE83DE +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Domain-Driven-Design-Interface-Modeling" +--- + +# [[Domain-Driven-Design-Interface-Modeling]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Domain-Driven-Design-Interface-Modeling.md]] +--- diff --git a/AI/Domain-Driven-Design-in-TypeScript.md b/AI/Domain-Driven-Design-in-TypeScript.md new file mode 100644 index 00000000..cc2f20ca --- /dev/null +++ b/AI/Domain-Driven-Design-in-TypeScript.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-21D02B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Domain-Driven-Design-in-TypeScript" +--- + +# [[Domain-Driven-Design-in-TypeScript]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Domain-Driven-Design-in-TypeScript.md]] +--- diff --git a/AI/Domain-Driven-Design-with-TypeScript.md b/AI/Domain-Driven-Design-with-TypeScript.md new file mode 100644 index 00000000..9de9cabf --- /dev/null +++ b/AI/Domain-Driven-Design-with-TypeScript.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-7451F4 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Domain-Driven-Design-with-TypeScript" +--- + +# [[Domain-Driven-Design-with-TypeScript]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Domain-Driven-Design-with-TypeScript.md]] +--- diff --git a/AI/Domain-Driven-Design.md b/AI/Domain-Driven-Design.md new file mode 100644 index 00000000..8dcd7d05 --- /dev/null +++ b/AI/Domain-Driven-Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-CD0693 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Domain-Driven-Design" +--- + +# [[Domain-Driven-Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Domain-Driven-Design.md]] +--- diff --git a/AI/Dopaminergic Reward System.md b/AI/Dopaminergic Reward System.md new file mode 100644 index 00000000..0c1d78b6 --- /dev/null +++ b/AI/Dopaminergic Reward System.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-1CE0DE +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Dopaminergic Reward System" +--- + +# [[Dopaminergic Reward System]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Dopaminergic Reward System.md]] +--- diff --git a/AI/Dopaminergic Reward Systems.md b/AI/Dopaminergic Reward Systems.md new file mode 100644 index 00000000..f7d5dcaf --- /dev/null +++ b/AI/Dopaminergic Reward Systems.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-73B204 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Dopaminergic Reward Systems" +--- + +# [[Dopaminergic Reward Systems]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Dopaminergic Reward Systems.md]] +--- diff --git a/AI/Drama Management Systems.md b/AI/Drama Management Systems.md new file mode 100644 index 00000000..e52f97df --- /dev/null +++ b/AI/Drama Management Systems.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-893F79 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Drama Management Systems" +--- + +# [[Drama Management Systems]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Drama Management Systems.md]] +--- diff --git a/AI/Dynamic Difficulty Adjustment (DDA).md b/AI/Dynamic Difficulty Adjustment (DDA).md new file mode 100644 index 00000000..b0414b78 --- /dev/null +++ b/AI/Dynamic Difficulty Adjustment (DDA).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-478A4A +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Dynamic Difficulty Adjustment (DDA)" +--- + +# [[Dynamic Difficulty Adjustment (DDA)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Dynamic Difficulty Adjustment (DDA).md]] +--- diff --git a/AI/Dynamic Few-Shot (동적 퓨샷 선택 전략).md b/AI/Dynamic Few-Shot (동적 퓨샷 선택 전략).md new file mode 100644 index 00000000..b736565e --- /dev/null +++ b/AI/Dynamic Few-Shot (동적 퓨샷 선택 전략).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6118B8 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Dynamic Few-Shot (동적 퓨샷 선택 전략)" +--- + +# [[Dynamic Few-Shot (동적 퓨샷 선택 전략)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Dynamic Few-Shot (동적 퓨샷 선택 전략).md]] +--- diff --git a/AI/E-commerce-Catalog-Management.md b/AI/E-commerce-Catalog-Management.md new file mode 100644 index 00000000..312a7986 --- /dev/null +++ b/AI/E-commerce-Catalog-Management.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D52EF5 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - E-commerce-Catalog-Management" +--- + +# [[E-commerce-Catalog-Management]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/E-commerce-Catalog-Management.md]] +--- diff --git a/AI/E-commerce-Optimization.md b/AI/E-commerce-Optimization.md new file mode 100644 index 00000000..d2917674 --- /dev/null +++ b/AI/E-commerce-Optimization.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5FD532 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - E-commerce-Optimization" +--- + +# [[E-commerce-Optimization]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/E-commerce-Optimization.md]] +--- diff --git a/AI/ESLint-Static-Analysis.md b/AI/ESLint-Static-Analysis.md new file mode 100644 index 00000000..f8f6e462 --- /dev/null +++ b/AI/ESLint-Static-Analysis.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-2B78F8 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - ESLint-Static-Analysis" +--- + +# [[ESLint-Static-Analysis]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/ESLint-Static-Analysis.md]] +--- diff --git a/AI/EU-Web-Accessibility-Directive.md b/AI/EU-Web-Accessibility-Directive.md new file mode 100644 index 00000000..01912af8 --- /dev/null +++ b/AI/EU-Web-Accessibility-Directive.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-94ECB4 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - EU-Web-Accessibility-Directive" +--- + +# [[EU-Web-Accessibility-Directive]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/EU-Web-Accessibility-Directive.md]] +--- diff --git a/AI/EVE Online (Spreadsheet Economy).md b/AI/EVE Online (Spreadsheet Economy).md new file mode 100644 index 00000000..04580c58 --- /dev/null +++ b/AI/EVE Online (Spreadsheet Economy).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-442180 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - EVE Online (Spreadsheet Economy)" +--- + +# [[EVE Online (Spreadsheet Economy)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/EVE Online (Spreadsheet Economy).md]] +--- diff --git a/AI/Ecology and Ecosystem Modeling.md b/AI/Ecology and Ecosystem Modeling.md new file mode 100644 index 00000000..4e2897eb --- /dev/null +++ b/AI/Ecology and Ecosystem Modeling.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-ED335C +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Ecology and Ecosystem Modeling" +--- + +# [[Ecology and Ecosystem Modeling]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Ecology and Ecosystem Modeling.md]] +--- diff --git a/AI/Elite-Sport-Science-Protocols.md b/AI/Elite-Sport-Science-Protocols.md new file mode 100644 index 00000000..43841ac5 --- /dev/null +++ b/AI/Elite-Sport-Science-Protocols.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-04186E +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Elite-Sport-Science-Protocols" +--- + +# [[Elite-Sport-Science-Protocols]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Elite-Sport-Science-Protocols.md]] +--- diff --git a/AI/Elite-Strength-and-Conditioning.md b/AI/Elite-Strength-and-Conditioning.md new file mode 100644 index 00000000..435a0daa --- /dev/null +++ b/AI/Elite-Strength-and-Conditioning.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-4094F7 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Elite-Strength-and-Conditioning" +--- + +# [[Elite-Strength-and-Conditioning]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Elite-Strength-and-Conditioning.md]] +--- diff --git a/AI/Embodied Cognition.md b/AI/Embodied Cognition.md new file mode 100644 index 00000000..3fb2cd12 --- /dev/null +++ b/AI/Embodied Cognition.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D43081 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Embodied Cognition" +--- + +# [[Embodied Cognition]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Embodied Cognition.md]] +--- diff --git a/AI/Emotionally Intelligent Tutoring Systems (EITS).md b/AI/Emotionally Intelligent Tutoring Systems (EITS).md new file mode 100644 index 00000000..f96c40e2 --- /dev/null +++ b/AI/Emotionally Intelligent Tutoring Systems (EITS).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A7735A +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Emotionally Intelligent Tutoring Systems (EITS)" +--- + +# [[Emotionally Intelligent Tutoring Systems (EITS)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Emotionally Intelligent Tutoring Systems (EITS).md]] +--- diff --git a/AI/Encapsulation-and-Information-Hiding.md b/AI/Encapsulation-and-Information-Hiding.md new file mode 100644 index 00000000..4472271c --- /dev/null +++ b/AI/Encapsulation-and-Information-Hiding.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-3AFE91 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Encapsulation-and-Information-Hiding" +--- + +# [[Encapsulation-and-Information-Hiding]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Encapsulation-and-Information-Hiding.md]] +--- diff --git a/AI/Encapsulation-of-Domain-Invariants.md b/AI/Encapsulation-of-Domain-Invariants.md new file mode 100644 index 00000000..8cebb644 --- /dev/null +++ b/AI/Encapsulation-of-Domain-Invariants.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-3F0BE1 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Encapsulation-of-Domain-Invariants" +--- + +# [[Encapsulation-of-Domain-Invariants]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Encapsulation-of-Domain-Invariants.md]] +--- diff --git a/AI/Encapsulation-via-Access-Modifiers.md b/AI/Encapsulation-via-Access-Modifiers.md new file mode 100644 index 00000000..926aef5b --- /dev/null +++ b/AI/Encapsulation-via-Access-Modifiers.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E8605B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Encapsulation-via-Access-Modifiers" +--- + +# [[Encapsulation-via-Access-Modifiers]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Encapsulation-via-Access-Modifiers.md]] +--- diff --git a/AI/Endurance-Athletics-Cognition.md b/AI/Endurance-Athletics-Cognition.md new file mode 100644 index 00000000..a4e3fa36 --- /dev/null +++ b/AI/Endurance-Athletics-Cognition.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-BC701A +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Endurance-Athletics-Cognition" +--- + +# [[Endurance-Athletics-Cognition]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Endurance-Athletics-Cognition.md]] +--- diff --git a/AI/Enterprise-Design-Systems.md b/AI/Enterprise-Design-Systems.md new file mode 100644 index 00000000..d6e7f7ba --- /dev/null +++ b/AI/Enterprise-Design-Systems.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-84FEDE +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Enterprise-Design-Systems" +--- + +# [[Enterprise-Design-Systems]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Enterprise-Design-Systems.md]] +--- diff --git a/AI/Enterprise-Resource-Planning-Systems.md b/AI/Enterprise-Resource-Planning-Systems.md new file mode 100644 index 00000000..276cee10 --- /dev/null +++ b/AI/Enterprise-Resource-Planning-Systems.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-DDC6E0 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Enterprise-Resource-Planning-Systems" +--- + +# [[Enterprise-Resource-Planning-Systems]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Enterprise-Resource-Planning-Systems.md]] +--- diff --git a/AI/Enterprise-Scale-Monorepo-Management.md b/AI/Enterprise-Scale-Monorepo-Management.md new file mode 100644 index 00000000..d3fec48f --- /dev/null +++ b/AI/Enterprise-Scale-Monorepo-Management.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-372DAD +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Enterprise-Scale-Monorepo-Management" +--- + +# [[Enterprise-Scale-Monorepo-Management]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Enterprise-Scale-Monorepo-Management.md]] +--- diff --git a/AI/Enterprise-Software-Architecture.md b/AI/Enterprise-Software-Architecture.md new file mode 100644 index 00000000..611813bf --- /dev/null +++ b/AI/Enterprise-Software-Architecture.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-4727C5 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Enterprise-Software-Architecture" +--- + +# [[Enterprise-Software-Architecture]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Enterprise-Software-Architecture.md]] +--- diff --git a/AI/Enterprise-Software-Engineering.md b/AI/Enterprise-Software-Engineering.md new file mode 100644 index 00000000..c41814f1 --- /dev/null +++ b/AI/Enterprise-Software-Engineering.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-EA62A1 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Enterprise-Software-Engineering" +--- + +# [[Enterprise-Software-Engineering]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Enterprise-Software-Engineering.md]] +--- diff --git a/AI/Europeana.md b/AI/Europeana.md new file mode 100644 index 00000000..c1804dd8 --- /dev/null +++ b/AI/Europeana.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-683994 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Europeana" +--- + +# [[Europeana]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Europeana.md]] +--- diff --git a/AI/Evolutionary Biology.md b/AI/Evolutionary Biology.md new file mode 100644 index 00000000..2b610815 --- /dev/null +++ b/AI/Evolutionary Biology.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-926B28 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Evolutionary Biology" +--- + +# [[Evolutionary Biology]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Evolutionary Biology.md]] +--- diff --git a/AI/Evolutionary Computation.md b/AI/Evolutionary Computation.md new file mode 100644 index 00000000..e066d475 --- /dev/null +++ b/AI/Evolutionary Computation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-2D52C6 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Evolutionary Computation" +--- + +# [[Evolutionary Computation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Evolutionary Computation.md]] +--- diff --git a/AI/Evolutionary-Biology.md b/AI/Evolutionary-Biology.md new file mode 100644 index 00000000..1fa67ec4 --- /dev/null +++ b/AI/Evolutionary-Biology.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-29AB70 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Evolutionary-Biology" +--- + +# [[Evolutionary-Biology]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Evolutionary-Biology.md]] +--- diff --git a/AI/Evolutionary-Computation.md b/AI/Evolutionary-Computation.md new file mode 100644 index 00000000..57ef5767 --- /dev/null +++ b/AI/Evolutionary-Computation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-314A2B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Evolutionary-Computation" +--- + +# [[Evolutionary-Computation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Evolutionary-Computation.md]] +--- diff --git a/AI/Excess-Property-Checking.md b/AI/Excess-Property-Checking.md new file mode 100644 index 00000000..56c9e1f6 --- /dev/null +++ b/AI/Excess-Property-Checking.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E8C633 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Excess-Property-Checking" +--- + +# [[Excess-Property-Checking]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Excess-Property-Checking.md]] +--- diff --git a/AI/Executive Dysfunction.md b/AI/Executive Dysfunction.md new file mode 100644 index 00000000..3e2be4d2 --- /dev/null +++ b/AI/Executive Dysfunction.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-DDD1CE +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Executive Dysfunction" +--- + +# [[Executive Dysfunction]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Executive Dysfunction.md]] +--- diff --git a/AI/Executive-Function-Deficit.md b/AI/Executive-Function-Deficit.md new file mode 100644 index 00000000..690ac61d --- /dev/null +++ b/AI/Executive-Function-Deficit.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-598E63 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Executive-Function-Deficit" +--- + +# [[Executive-Function-Deficit]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Executive-Function-Deficit.md]] +--- diff --git a/AI/Exercise-Physiology.md b/AI/Exercise-Physiology.md new file mode 100644 index 00000000..c50382a3 --- /dev/null +++ b/AI/Exercise-Physiology.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-415D41 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Exercise-Physiology" +--- + +# [[Exercise-Physiology]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Exercise-Physiology.md]] +--- diff --git a/AI/Exhaustiveness-Checking.md b/AI/Exhaustiveness-Checking.md new file mode 100644 index 00000000..8ff2d694 --- /dev/null +++ b/AI/Exhaustiveness-Checking.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D4B087 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Exhaustiveness-Checking" +--- + +# [[Exhaustiveness-Checking]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Exhaustiveness-Checking.md]] +--- diff --git a/AI/Expected Utility Theory.md b/AI/Expected Utility Theory.md new file mode 100644 index 00000000..fdb89c2d --- /dev/null +++ b/AI/Expected Utility Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-289250 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Expected Utility Theory" +--- + +# [[Expected Utility Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Expected Utility Theory.md]] +--- diff --git a/AI/Expo 2025 Osaka.md b/AI/Expo 2025 Osaka.md new file mode 100644 index 00000000..c76162f2 --- /dev/null +++ b/AI/Expo 2025 Osaka.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-AE03AD +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Expo 2025 Osaka" +--- + +# [[Expo 2025 Osaka]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Expo 2025 Osaka는 고성능 WebGPU 및 Three.js 기술을 활용한 최첨단 3D 인터랙티브 경험이 전시된 행사입니다 [1-3]. 이곳에서는 100만 개의 파티클을 활용한 유체 시뮬레이션 설치물이 대형 4K 디스플레이에서 눈에 띄는 지연 없이 실시간으로 구동되었습니다 [2, 3]. 이 엑스포는 기존 아키텍처에 비해 WebGPU가 가져온 컴퓨팅 성능의 막대한 향상을 실증하는 주요 무대가 되었습니다 [1, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **고성능 기술 실증 사례:** Expo 2025 Osaka는 수많은 드로우 콜이나 연산 집약적인 효과가 필요한 환경에서 WebGPU가 제공하는 막대한 성능 향상을 실제 프로덕션 수준에서 입증한 주요 사례로 언급됩니다 [1]. +- **주요 전시물 (Waves of Connection / Hokusai installation):** 인터랙티브 크리에이티브 스튜디오인 Utsubo는 이 행사에서 "Hokusai installation" (또는 "Waves of Connection")이라는 설치 미술을 선보였습니다 [2, 3]. +- **기술적 성과:** 해당 설치물은 98인치 4K 디스플레이 상에서 100만 개(1M)의 파티클로 구성된 유체 시뮬레이션을 실시간으로 렌더링하는 데 성공했습니다 [2, 3]. 특히 눈에 띄는 지연(lag) 현상 없이 다수의 인원을 동시에 추적(multi-person body tracking)하는 고도의 기술적 성과를 달성했습니다 [3]. +- **정보의 한계:** 제공된 데이터는 WebGPU 성능 최적화를 설명하기 위한 특정 설치물 사례에만 집중되어 있어, 엑스포 행사의 전체 규모나 다른 목적 등에 대해서는 소스에 관련 정보가 부족합니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGPU]], [[Three.js]], [[Particle System]] +- **Projects/Contexts:** [[Utsubo]], [[Hokusai installation]], [[Waves of Connection]] +- **Contradictions/Notes:** 주어진 소스는 엑스포 내 특정 디지털 설치물(Utsubo의 유체 시뮬레이션)에 대한 기술적 성과만을 다루고 있으며, 엑스포 행사 전반에 대한 내용은 소스에 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Expo 2025 Osaka.md]] +--- diff --git a/AI/Feature Clamping (피처 고정).md b/AI/Feature Clamping (피처 고정).md new file mode 100644 index 00000000..870a0a55 --- /dev/null +++ b/AI/Feature Clamping (피처 고정).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E1B41C +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Feature Clamping (피처 고정)" +--- + +# [[Feature Clamping (피처 고정)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Feature Clamping (피처 고정).md]] +--- diff --git a/AI/Feedback-Control-Systems.md b/AI/Feedback-Control-Systems.md new file mode 100644 index 00000000..8ff06242 --- /dev/null +++ b/AI/Feedback-Control-Systems.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B4B48F +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Feedback-Control-Systems" +--- + +# [[Feedback-Control-Systems]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Feedback-Control-Systems.md]] +--- diff --git a/AI/Finite-Element-Analysis.md b/AI/Finite-Element-Analysis.md new file mode 100644 index 00000000..29ed83d6 --- /dev/null +++ b/AI/Finite-Element-Analysis.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-31D804 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Finite-Element-Analysis" +--- + +# [[Finite-Element-Analysis]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Finite-Element-Analysis.md]] +--- diff --git a/AI/Firefox.md b/AI/Firefox.md new file mode 100644 index 00000000..f045c8eb --- /dev/null +++ b/AI/Firefox.md @@ -0,0 +1,47 @@ +--- +id: P-REINFORCE-AUTO-7265C7 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Firefox" +--- + +# [[Firefox]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +**웹 성능 및 네트워크 최적화** +* Firefox는 Interop 2025 프로젝트의 일환으로 Largest Contentful Paint(LCP) 및 Interaction to Next Paint(INP) 지표 지원 작업을 시작했으며, 2025년 10월 배포된 버전 144부터 INP를 정식 지원하고 있습니다 [1]. +* Time to First Byte(TTFB) 점수를 측정할 때 Firefox는 기존부터 early hint 응답 데이터를 포함하여 계산해왔으며, 2025년 2월 Chrome 역시 이 방식을 따르도록 변경되었습니다 [2]. +* 리소스의 사전 로딩을 위한 추측 규칙(Speculation Rules) 프로토타입을 작업 중이며 [3], 재방문 시 다운로드 크기를 줄일 수 있는 압축 딕셔너리(Compression Dictionaries) 지원도 활발히 개발하고 있습니다 [4]. + +**이미지 포맷 지원** +* 과거 Mozilla는 저수준 언어로 작성된 복잡한 디코더가 일으킬 수 있는 보안 위험을 우려하여 JPEG XL 도입을 꺼렸습니다 [5]. 그러나 2024년 9월 Google과 Rust 기반 디코더에 대해 논의한 후 입장을 선회했습니다 [5]. + +**WebGL 지원 및 프로파일링** +* 보안상의 이유로 듀얼 GPU를 사용하는 Mac 시스템에서는 WebGL 컨텍스트를 생성하기 전에 반드시 개별(Discrete) GPU로 전환하여 머물도록 강제합니다 [6]. GPU가 블랙리스트에 오르더라도 `WebGLRenderingContext` 객체 자체는 존재합니다 [7]. +* 개발자가 WebGL 성능을 분석할 때 `about:config`에서 `layers.acceleration.draw-fps`를 활성화하여 FPS 카운터를 표시할 수 있습니다 [8]. +* Vsync를 비활성화하려면 `layout.frame_rate`를 0으로, `layers.offmainthreadcomposition.frame-rate`를 1000으로 설정하고, ANGLE을 우회하여 네이티브 OpenGL을 테스트하려면 `webgl.prefer-native-gl`을 활성화할 수 있습니다 [9, 10]. +* 다만, 보안을 이유로 `EXT_disjoint_timer_query` 확장은 지원이 중단되었으며, `EXT_disjoint_timer_query_webgl2`가 작동하지 않거나 브라우저 탭을 다운시키는 버그가 보고된 바 있습니다 [11-14]. + +**WebGPU 생태계와 안정성** +* Firefox는 버전 141부터 Windows 플랫폼에 한정하여 WebGPU 지원을 도입하기 시작했습니다 [15]. +* Firefox의 렌더링 엔진인 Gecko는 WebGPU 타임스탬프 쿼리(timestamp queries) 지원에 대해 긍정적인 입장을 냈습니다 [16, 17]. +* 하지만 현재 Firefox 내 WebGPU 생태계는 일부 하드웨어에서 여전히 불안정한 상태입니다. 특정 기기(예: Lenovo MX350)에서는 실행 시 "WebGPU is disabled by blocklist"라는 오류와 함께 차단되며, Intel NUC와 같은 환경에서는 타임스탬프 쿼리가 비정상적으로 긴 프레임 시간을 보고하는 버그가 존재합니다 [18]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGPU]], [[WebGL]], [[Interaction to Next Paint (INP)]], [[JPEG XL]] +- **Projects/Contexts:** [[Interop 2025]] +- **Contradictions/Notes:** 소스에 따르면 Firefox는 보안 문제를 이유로 WebGL의 타이머 쿼리(`EXT_disjoint_timer_query`) 기능을 지원하지 않았으나 [12, 14], WebGPU의 타임스탬프 쿼리 기능에 대해서는 긍정적인 도입 의사를 보였습니다 [16, 17]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Firefox.md]] +--- diff --git a/AI/First Input Delay (FID).md b/AI/First Input Delay (FID).md new file mode 100644 index 00000000..e0ca40fd --- /dev/null +++ b/AI/First Input Delay (FID).md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-DD1BE6 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - First Input Delay (FID)" +--- + +# [[First Input Delay (FID)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> First Input Delay(FID)는 사용자가 웹페이지에서 첫 상호작용을 시도할 때, 브라우저가 해당 이벤트를 처리하기 시작할 때까지 걸리는 지연 시간을 측정하는 지표이다 [1]. 이 지표는 이벤트 핸들러가 시작되기 전까지의 지연 시간만을 측정하며, 이후의 렌더링 지연이나 후속 상호작용은 고려하지 않는 한계가 있었다 [2]. 이러한 단점을 보완하기 위해 2024년 구글(Google)은 코어 웹 바이탈(Core Web Vitals)의 공식 상호작용 측정 지표를 FID에서 Interaction to Next Paint (INP)로 전면 대체하였다 [3, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +- **FID의 발생 원인:** 사용자가 웹페이지가 준비되었다고 생각하여 클릭 등의 이벤트를 발생시켰을 때, 브라우저가 자바스크립트를 다운로드하거나 파싱 및 실행하느라 백그라운드 작업이 바쁜 상태라면 입력 지연이 발생하게 되며 FID는 바로 이 시간을 측정한다 [1]. +- **측정 방식의 한계:** FID는 페이지 방문 중 발생하는 여러 상호작용 중에서 오직 '첫 번째 상호작용(first interaction)'의 지연 시간만을 측정한다 [2]. 이벤트 핸들러가 시작되기 직전까지의 대기 시간만을 평가하기 때문에, 실제 이벤트가 처리되는 시간(processing time)이나 화면에 결과를 렌더링하는 데 걸리는 프레젠테이션 지연(presentation delay)을 무시한다는 명확한 한계가 존재했다 [2, 5]. +- **타 지표와의 연관성:** 크롬 라이트하우스(Chrome Lighthouse) 등에서 측정하는 Time to Interactive (TTI) 지표는 페이지가 완전히 상호작용 가능해질 때까지의 시간을 뜻하는데, 이 TTI는 First Input Delay (FID)뿐만 아니라 Largest Contentful Paint (LCP)와 같은 요소를 포함하여 산출된다 [6, 7]. +- **INP(Interaction to Next Paint)로의 진화:** 첫 상호작용만을 측정하던 FID 방식으로는 사용자 경험(UX)을 완벽하게 반영하기 어려웠다 [5]. 이에 구글은 2024년에 FID를 폐기하고, 페이지에 머무는 동안 발생하는 모든 상호작용(클릭, 탭, 키보드 입력 등)의 전체 지연 시간을 종합적으로 평가하는 INP 지표를 코어 웹 바이탈에 새롭게 도입하였다 [2, 3, 5]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Interaction to Next Paint (INP)]], [[Core Web Vitals]], [[Time to Interactive (TTI)]] +- **Projects/Contexts:** [[Google Page Experience]], [[Chrome User Experience Report (CrUX)]] +- **Contradictions/Notes:** 한때 구글 코어 웹 바이탈의 핵심 반응성 지표로 사용되었으나, 단일 상호작용만 측정하는 결함이 인정되어 2024년을 기점으로 공식 지표의 지위를 잃고 INP로 완전히 대체되었다 [3, 4]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/First Input Delay (FID).md]] +--- diff --git a/AI/Fixed Time Step vs Variable Time Step.md b/AI/Fixed Time Step vs Variable Time Step.md new file mode 100644 index 00000000..21506c57 --- /dev/null +++ b/AI/Fixed Time Step vs Variable Time Step.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5FB60B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Fixed Time Step vs Variable Time Step" +--- + +# [[Fixed Time Step vs Variable Time Step]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Fixed Time Step vs Variable Time Step.md]] +--- diff --git a/AI/Flow State.md b/AI/Flow State.md new file mode 100644 index 00000000..de6cc2b0 --- /dev/null +++ b/AI/Flow State.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E89B44 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Flow State" +--- + +# [[Flow State]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Flow State.md]] +--- diff --git a/AI/Flow-State.md b/AI/Flow-State.md new file mode 100644 index 00000000..06e3bb44 --- /dev/null +++ b/AI/Flow-State.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-364080 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Flow-State" +--- + +# [[Flow-State]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Flow-State.md]] +--- diff --git a/AI/Functional-Programming-in-TypeScript.md b/AI/Functional-Programming-in-TypeScript.md new file mode 100644 index 00000000..960d59d4 --- /dev/null +++ b/AI/Functional-Programming-in-TypeScript.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-80BECB +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Functional-Programming-in-TypeScript" +--- + +# [[Functional-Programming-in-TypeScript]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Functional-Programming-in-TypeScript.md]] +--- diff --git a/AI/GPU.md b/AI/GPU.md new file mode 100644 index 00000000..f00631b5 --- /dev/null +++ b/AI/GPU.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-DD4F11 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - GPU" +--- + +# [[GPU]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> GPU(Graphics Processing Unit)는 실시간 3D 그래픽 렌더링과 병렬 연산 처리에 최적화된 하드웨어 장치이다 [1]. 최신 GPU는 수천 개의 프로세싱 코어를 갖추고 있어 그래픽 렌더링뿐만 아니라 물리 시뮬레이션, AI 추론 등 범용적인 병렬 작업에 뛰어난 성능을 발휘한다 [2, 3]. 웹 환경에서는 WebGL 및 WebGPU와 같은 그래픽 API를 통해 제어되며, 셰이더(Shader) 프로그램을 하드웨어 수준에서 매우 빠른 속도로 실행하여 시각적 결과물을 만들어낸다 [1, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +* **웹 그래픽 파이프라인에서의 역할:** GPU는 WebGL이나 WebGPU API를 통해 전달된 셰이더 프로그램을 실행하여 HTML5 브라우저의 화면(``)에 3D 장면을 렌더링한다 [1, 4]. 렌더링 속도를 극대화하기 위해서는 애플리케이션 코드가 실행되는 환경과 GPU 간의 컨텍스트 스위칭(Context Switching) 및 통신을 최소화해야 하며, 가급적 렌더링에 필요한 모든 데이터를 GPU 메모리에 한 번만 복사하는 것이 이상적이다 [5-8]. +* **GPU 바운드(GPU Bound)와 CPU 병목 현상:** 성능 분석 시 렌더링 지연의 원인이 CPU인지 GPU인지 파악하는 것이 중요하다 [9, 10]. 복잡한 프래그먼트 셰이더 연산이나 과도한 드로우 콜(Draw Call)이 발생할 경우, CPU는 유휴 상태임에도 GPU가 지속적으로 작동하며 한계에 부딪히는 'GPU 바운드' 현상이 발생한다 [11]. 반대로, 단일 스레드로 명령을 전송하는 WebGL 아키텍처 하에서는 최신 GPU가 초당 수백만 개의 폴리곤을 처리할 수 있음에도 불구하고 CPU가 명령을 충분히 빨리 전달하지 못해 GPU가 유휴 상태로 대기하는 CPU 병목 현상이 발생하기도 한다 [2, 12]. +* **컴퓨트 셰이더를 통한 범용 병렬 처리(GPGPU):** 과거 WebGL은 GPU의 사용을 그래픽 렌더링에만 국한시켰으나, WebGPU는 컴퓨트 셰이더(Compute Shaders)를 도입하여 GPU를 범용 병렬 프로세서로 변모시켰다 [2, 3]. GPU의 SIMT(Single-Instruction-Multiple-Thread) 아키텍처를 활용하면 수십만 개의 파티클 시스템, 유체 시뮬레이션, 데이터 정렬, 기계학습 기반의 거대 언어 모델(LLM) 추론 등의 방대한 연산을 CPU 개입 없이 GPU 내부에서 직접 병렬로 처리할 수 있다 [3, 13-15]. +* **성능 및 전력 효율 극대화:** GPU 주도형(GPU-driven) 렌더링 방식을 도입하여 오클루전 컬링, 물리 시뮬레이션 등의 핵심 로직을 GPU로 옮기면 CPU와 GPU 간의 데이터 왕복 횟수 및 동기화 오버헤드를 크게 줄일 수 있다 [16, 17]. 이는 명령 생성에 따른 CPU 부하를 감소시켜 전력 소비와 발열을 낮추며, 특히 모바일 기기에서 열에 의한 스로틀링(Thermal Throttling)을 방지하여 일관된 프레임 속도와 렌더링 성능을 유지하도록 돕는다 [17-19]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGL]], [[WebGPU]], [[Compute Shader]], [[CPU]] +- **Projects/Contexts:** [[WebSplatter]], [[Three.js]], [[CesiumJS]] +- **Contradictions/Notes:** 과거 WebGL 생태계에서는 구조적 한계로 인해 물리 연산이나 정렬 작업을 CPU에서 처리해야 했고 이로 인해 GPU가 자주 유휴 상태(Idle)에 머무는 비효율이 존재했다. 그러나 WebGPU의 등장으로 컴퓨트 셰이더 기반의 연산이 가능해지면서, 렌더링과 연산 모두를 GPU에서 병렬 처리하여 GPU의 하드웨어 능력을 온전히 활용할 수 있게 되었다 [2, 3, 12, 20]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/GPU.md]] +--- diff --git a/AI/GRPO (Group Relative Policy Optimization).md b/AI/GRPO (Group Relative Policy Optimization).md new file mode 100644 index 00000000..9058702b --- /dev/null +++ b/AI/GRPO (Group Relative Policy Optimization).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-1312F9 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - GRPO (Group Relative Policy Optimization)" +--- + +# [[GRPO (Group Relative Policy Optimization)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/GRPO (Group Relative Policy Optimization).md]] +--- diff --git a/AI/Gacha Mechanics Analysis.md b/AI/Gacha Mechanics Analysis.md new file mode 100644 index 00000000..91c15a67 --- /dev/null +++ b/AI/Gacha Mechanics Analysis.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-F5E08D +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Gacha Mechanics Analysis" +--- + +# [[Gacha Mechanics Analysis]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Gacha Mechanics Analysis.md]] +--- diff --git a/AI/Gait-Analysis-Laboratory.md b/AI/Gait-Analysis-Laboratory.md new file mode 100644 index 00000000..cacab3c5 --- /dev/null +++ b/AI/Gait-Analysis-Laboratory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-3390EF +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Gait-Analysis-Laboratory" +--- + +# [[Gait-Analysis-Laboratory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Gait-Analysis-Laboratory.md]] +--- diff --git a/AI/Gait-Analysis-Methodologies.md b/AI/Gait-Analysis-Methodologies.md new file mode 100644 index 00000000..e6399682 --- /dev/null +++ b/AI/Gait-Analysis-Methodologies.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-ECB110 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Gait-Analysis-Methodologies" +--- + +# [[Gait-Analysis-Methodologies]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Gait-Analysis-Methodologies.md]] +--- diff --git a/AI/Game Balance Theory.md b/AI/Game Balance Theory.md new file mode 100644 index 00000000..f4b69677 --- /dev/null +++ b/AI/Game Balance Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-FE4B62 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Game Balance Theory" +--- + +# [[Game Balance Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Game Balance Theory.md]] +--- diff --git a/AI/Game Economy Modeling.md b/AI/Game Economy Modeling.md new file mode 100644 index 00000000..1bda3a09 --- /dev/null +++ b/AI/Game Economy Modeling.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-80302B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Game Economy Modeling" +--- + +# [[Game Economy Modeling]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Game Economy Modeling.md]] +--- diff --git a/AI/Game Engine Architecture (Jason Gregory).md b/AI/Game Engine Architecture (Jason Gregory).md new file mode 100644 index 00000000..b1f1c45e --- /dev/null +++ b/AI/Game Engine Architecture (Jason Gregory).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5CDF1A +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Game Engine Architecture (Jason Gregory)" +--- + +# [[Game Engine Architecture (Jason Gregory)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Game Engine Architecture (Jason Gregory).md]] +--- diff --git a/AI/Game Engine Architecture.md b/AI/Game Engine Architecture.md new file mode 100644 index 00000000..e411e03e --- /dev/null +++ b/AI/Game Engine Architecture.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-BD4476 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Game Engine Architecture" +--- + +# [[Game Engine Architecture]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Game Engine Architecture.md]] +--- diff --git a/AI/Game-Design-Ontology.md b/AI/Game-Design-Ontology.md new file mode 100644 index 00000000..2bfb53c1 --- /dev/null +++ b/AI/Game-Design-Ontology.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-DCD5C6 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Game-Design-Ontology" +--- + +# [[Game-Design-Ontology]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Game-Design-Ontology.md]] +--- diff --git a/AI/Game-Design-Theory.md b/AI/Game-Design-Theory.md new file mode 100644 index 00000000..366589f5 --- /dev/null +++ b/AI/Game-Design-Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-25F5B7 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Game-Design-Theory" +--- + +# [[Game-Design-Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Game-Design-Theory.md]] +--- diff --git a/AI/Game-Ontology-for-PCG.md b/AI/Game-Ontology-for-PCG.md new file mode 100644 index 00000000..2f00f9fa --- /dev/null +++ b/AI/Game-Ontology-for-PCG.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D042FF +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Game-Ontology-for-PCG" +--- + +# [[Game-Ontology-for-PCG]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Game-Ontology-for-PCG.md]] +--- diff --git a/AI/Gamification Theory.md b/AI/Gamification Theory.md new file mode 100644 index 00000000..7c04375b --- /dev/null +++ b/AI/Gamification Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-2DF448 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Gamification Theory" +--- + +# [[Gamification Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Gamification Theory.md]] +--- diff --git a/AI/Generative Adversarial Networks (GANs) in Fine Arts.md b/AI/Generative Adversarial Networks (GANs) in Fine Arts.md new file mode 100644 index 00000000..30077d7f --- /dev/null +++ b/AI/Generative Adversarial Networks (GANs) in Fine Arts.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B61BB5 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Generative Adversarial Networks (GANs) in Fine Arts" +--- + +# [[Generative Adversarial Networks (GANs) in Fine Arts]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Generative Adversarial Networks (GANs) in Fine Arts.md]] +--- diff --git a/AI/Generative-Adversarial-Networks.md b/AI/Generative-Adversarial-Networks.md new file mode 100644 index 00000000..7834b4d7 --- /dev/null +++ b/AI/Generative-Adversarial-Networks.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B87DE0 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Generative-Adversarial-Networks" +--- + +# [[Generative-Adversarial-Networks]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Generative-Adversarial-Networks.md]] +--- diff --git a/AI/Generics-and-Polymorphism.md b/AI/Generics-and-Polymorphism.md new file mode 100644 index 00000000..f9480826 --- /dev/null +++ b/AI/Generics-and-Polymorphism.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E65F53 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Generics-and-Polymorphism" +--- + +# [[Generics-and-Polymorphism]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Generics-and-Polymorphism.md]] +--- diff --git a/AI/Geographic-Information-Systems (GIS).md b/AI/Geographic-Information-Systems (GIS).md new file mode 100644 index 00000000..d009d8d2 --- /dev/null +++ b/AI/Geographic-Information-Systems (GIS).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-395A13 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Geographic-Information-Systems (GIS)" +--- + +# [[Geographic-Information-Systems (GIS)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Geographic-Information-Systems (GIS).md]] +--- diff --git a/AI/Geriatric-Medicine.md b/AI/Geriatric-Medicine.md new file mode 100644 index 00000000..6624c18c --- /dev/null +++ b/AI/Geriatric-Medicine.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-88176E +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Geriatric-Medicine" +--- + +# [[Geriatric-Medicine]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Geriatric-Medicine.md]] +--- diff --git a/AI/GitLab CI.md b/AI/GitLab CI.md new file mode 100644 index 00000000..d7772e59 --- /dev/null +++ b/AI/GitLab CI.md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-0DF208 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - GitLab CI" +--- + +# [[GitLab CI]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 소스에 관련 정보가 부족합니다. 제공된 소스에서 GitLab CI 자체의 아키텍처나 구체적인 기능에 대한 직접적인 설명은 없으며, 주로 Snyk Code나 SonarQube와 같은 정적 애플리케이션 보안 테스트(SAST) 및 AI 코드 리뷰 도구들이 원활하게 연동되는 대표적인 CI/CD 파이프라인 플랫폼 중 하나로만 간략히 언급됩니다 [1, 2]. + +## 📖 구조화된 지식 (Synthesized Content) +소스에 관련 정보가 부족합니다. 하지만 제공된 문서 내에서 외부 보안 및 분석 도구와의 연동 맥락을 통해 다음과 같은 제한적인 역할을 확인할 수 있습니다. + +* **보안 및 코드 리뷰 도구와의 원활한 통합:** GitLab CI는 SonarQube, Snyk Code, Axify, CodeAnt AI 및 다양한 풀 리퀘스트 리뷰 봇(Pull Request Review Bots) 등과 통합(Integration)되어 사용되는 주요 개발 플랫폼입니다 [1, 3-6]. +* **CI/CD 파이프라인 내 보안 스캔:** Snyk Code와 같은 도구는 GitLab CI 파이프라인에 통합되어 풀 리퀘스트(Pull request)가 발생할 때마다 변경된 파일을 스캔합니다 [2]. 발견된 취약점은 인라인 주석으로 게시되며, 심각한 취약점이 감지될 경우 코드 병합을 차단하도록 설정할 수 있습니다 [2]. +* **풀 리퀘스트(PR) 및 가드레일 환경:** 개발자들은 GitLab의 풀 리퀘스트 환경을 통해 수동으로 코드를 검토하거나, AI 및 머신러닝 기반의 리뷰 봇을 연동하여 팀의 코드 표준을 강제하고 구조화된 코멘트를 생성하는 자동화된 가드레일을 구축합니다 [5, 7, 8]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[CI/CD 파이프라인]], [[SAST (정적 애플리케이션 보안 테스트)]] +- **Projects/Contexts:** [[Snyk Code 파이프라인 통합]], [[SonarQube 개발 워크플로우 연동]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. GitLab CI만의 독자적인 기능이나 설정 방법에 대한 구체적인 내용은 소스에 존재하지 않으며, GitHub이나 Bitbucket 등과 함께 서드파티 보안/분석 도구가 지원하는 환경 목록으로만 등장합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/GitLab CI.md]] +--- diff --git a/AI/Goal Misgeneralization (목표 오일반화).md b/AI/Goal Misgeneralization (목표 오일반화).md new file mode 100644 index 00000000..ee53e944 --- /dev/null +++ b/AI/Goal Misgeneralization (목표 오일반화).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-85A1A5 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Goal Misgeneralization (목표 오일반화)" +--- + +# [[Goal Misgeneralization (목표 오일반화)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Goal Misgeneralization (목표 오일반화).md]] +--- diff --git a/AI/Graph-Coloring-Problem.md b/AI/Graph-Coloring-Problem.md new file mode 100644 index 00000000..fc6b4b08 --- /dev/null +++ b/AI/Graph-Coloring-Problem.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-108994 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Graph-Coloring-Problem" +--- + +# [[Graph-Coloring-Problem]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Graph-Coloring-Problem.md]] +--- diff --git a/AI/Graph-Theory.md b/AI/Graph-Theory.md new file mode 100644 index 00000000..ff20564a --- /dev/null +++ b/AI/Graph-Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-961E9B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Graph-Theory" +--- + +# [[Graph-Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Graph-Theory.md]] +--- diff --git a/AI/GraphQL-Code-Generator.md b/AI/GraphQL-Code-Generator.md new file mode 100644 index 00000000..146b908a --- /dev/null +++ b/AI/GraphQL-Code-Generator.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-CFA98F +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - GraphQL-Code-Generator" +--- + +# [[GraphQL-Code-Generator]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/GraphQL-Code-Generator.md]] +--- diff --git a/AI/GraphRAG (그래프 기반 검색 증강 생성).md b/AI/GraphRAG (그래프 기반 검색 증강 생성).md new file mode 100644 index 00000000..621244d5 --- /dev/null +++ b/AI/GraphRAG (그래프 기반 검색 증강 생성).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-54AA1C +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - GraphRAG (그래프 기반 검색 증강 생성)" +--- + +# [[GraphRAG (그래프 기반 검색 증강 생성)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/GraphRAG (그래프 기반 검색 증강 생성).md]] +--- diff --git a/AI/Grit.md b/AI/Grit.md new file mode 100644 index 00000000..9a0a4236 --- /dev/null +++ b/AI/Grit.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-53ED1B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Grit" +--- + +# [[Grit]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Grit.md]] +--- diff --git a/AI/Growth Mindset Intervention in Education.md b/AI/Growth Mindset Intervention in Education.md new file mode 100644 index 00000000..743c6681 --- /dev/null +++ b/AI/Growth Mindset Intervention in Education.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D9A336 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Growth Mindset Intervention in Education" +--- + +# [[Growth Mindset Intervention in Education]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Growth Mindset Intervention in Education.md]] +--- diff --git a/AI/Growth-Mindset.md b/AI/Growth-Mindset.md new file mode 100644 index 00000000..f863e494 --- /dev/null +++ b/AI/Growth-Mindset.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-73BBE5 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Growth-Mindset" +--- + +# [[Growth-Mindset]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Growth-Mindset.md]] +--- diff --git a/AI/Guilty-Gear-Xrd-Rendering-Pipeline.md b/AI/Guilty-Gear-Xrd-Rendering-Pipeline.md new file mode 100644 index 00000000..4d46159e --- /dev/null +++ b/AI/Guilty-Gear-Xrd-Rendering-Pipeline.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-44CE35 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Guilty-Gear-Xrd-Rendering-Pipeline" +--- + +# [[Guilty-Gear-Xrd-Rendering-Pipeline]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Guilty-Gear-Xrd-Rendering-Pipeline.md]] +--- diff --git a/AI/HANDOVER.md b/AI/HANDOVER.md new file mode 100644 index 00000000..01d32516 --- /dev/null +++ b/AI/HANDOVER.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5DA4F4 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - HANDOVER" +--- + +# [[HANDOVER]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/HANDOVER.md]] +--- diff --git a/AI/HBO Prestige Television.md b/AI/HBO Prestige Television.md new file mode 100644 index 00000000..4fb8cd81 --- /dev/null +++ b/AI/HBO Prestige Television.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-4ED001 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - HBO Prestige Television" +--- + +# [[HBO Prestige Television]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/HBO Prestige Television.md]] +--- diff --git a/AI/HHH (Helpful Harmless Honest).md b/AI/HHH (Helpful Harmless Honest).md new file mode 100644 index 00000000..9ac6c971 --- /dev/null +++ b/AI/HHH (Helpful Harmless Honest).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-11A9D4 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - HHH (Helpful Harmless Honest)" +--- + +# [[HHH (Helpful Harmless Honest)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/HHH (Helpful, Harmless, Honest).md]] +--- diff --git a/AI/Hardware-Verification.md b/AI/Hardware-Verification.md new file mode 100644 index 00000000..f76490c0 --- /dev/null +++ b/AI/Hardware-Verification.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-70F7A4 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Hardware-Verification" +--- + +# [[Hardware-Verification]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Hardware-Verification.md]] +--- diff --git a/AI/Health Informatics (mHealth).md b/AI/Health Informatics (mHealth).md new file mode 100644 index 00000000..5a5e5da0 --- /dev/null +++ b/AI/Health Informatics (mHealth).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A9629D +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Health Informatics (mHealth)" +--- + +# [[Health Informatics (mHealth)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Health Informatics (mHealth).md]] +--- diff --git a/AI/Heap Snapshot(힙 스냅샷).md b/AI/Heap Snapshot(힙 스냅샷).md new file mode 100644 index 00000000..a3fac0ac --- /dev/null +++ b/AI/Heap Snapshot(힙 스냅샷).md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-7C13B9 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Heap Snapshot(힙 스냅샷)" +--- + +# [[Heap Snapshot(힙 스냅샷)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> **Heap Snapshot(힙 스냅샷)**은 특정 시점에 애플리케이션의 전체 객체 그래프와 힙 메모리 상태를 캡처한 데이터이다 [1, 2]. 주로 불필요하게 남아있는 객체의 유지 경로(Retaining path)를 식별하여 메모리 누수를 탐지하고 분석하기 위해 사용된다 [2, 3]. Chrome DevTools나 IntelliJ IDEA 같은 도구를 통해 생성할 수 있으며, 여러 스냅샷을 비교함으로써 메모리 할당 패턴과 가비지 컬렉션 이후의 잔존 메모리를 파악할 수 있다 [1, 4-6]. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Memory Leak (메모리 누수)]], [[Garbage Collection (가비지 컬렉션)]], [[Retained Size vs Shallow Size]], [[Closure Variable Retention]] +- **Projects/Contexts:** [[Chrome DevTools Memory Panel]], [[V8 JavaScript Engine]], [[Node.js Production Monitoring]] +- **Contradictions/Notes:** 미니파이(Minified)된 프로덕션 코드에서는 식별자 이름이 변형되어 Retainer 체인을 알아보기 어렵기 때문에, DevTools에 소스 맵(Source maps)을 연결하거나 처음부터 함수에 명시적으로 이름을 지정(Named functions)하는 것이 분석에 훨씬 유리하다 [19, 25]. 또한, 스냅샷에서 메모리가 증가했다고 해서 모두 누수인 것은 아니며, 캐시나 Undo 히스토리처럼 의도적으로 메모리를 유지하는 "의도된 보존(Intentional retention)"과 실제 누수를 구별해야 한다 [19]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Heap Snapshot(힙 스냅샷).md]] +--- diff --git a/AI/Hebbian Theory.md b/AI/Hebbian Theory.md new file mode 100644 index 00000000..947ba24b --- /dev/null +++ b/AI/Hebbian Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D8B3D2 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Hebbian Theory" +--- + +# [[Hebbian Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Hebbian Theory.md]] +--- diff --git a/AI/High-Cohesion-Low-Coupling.md b/AI/High-Cohesion-Low-Coupling.md new file mode 100644 index 00000000..862af89d --- /dev/null +++ b/AI/High-Cohesion-Low-Coupling.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A143BE +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - High-Cohesion-Low-Coupling" +--- + +# [[High-Cohesion-Low-Coupling]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/High-Cohesion-Low-Coupling.md]] +--- diff --git a/AI/High-Frequency Trading Models.md b/AI/High-Frequency Trading Models.md new file mode 100644 index 00000000..8b180f54 --- /dev/null +++ b/AI/High-Frequency Trading Models.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6E0050 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - High-Frequency Trading Models" +--- + +# [[High-Frequency Trading Models]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/High-Frequency Trading Models.md]] +--- diff --git a/AI/High-Performance Training Programs (Tier 1 Orgs).md b/AI/High-Performance Training Programs (Tier 1 Orgs).md new file mode 100644 index 00000000..a9cb4f03 --- /dev/null +++ b/AI/High-Performance Training Programs (Tier 1 Orgs).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-30B011 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - High-Performance Training Programs (Tier 1 Orgs)" +--- + +# [[High-Performance Training Programs (Tier 1 Orgs)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/High-Performance Training Programs (Tier 1 Orgs).md]] +--- diff --git a/AI/High-Performance-Coaching.md b/AI/High-Performance-Coaching.md new file mode 100644 index 00000000..6fc865e3 --- /dev/null +++ b/AI/High-Performance-Coaching.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-FF879B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - High-Performance-Coaching" +--- + +# [[High-Performance-Coaching]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/High-Performance-Coaching.md]] +--- diff --git a/AI/High-Performance-Sports-Science.md b/AI/High-Performance-Sports-Science.md new file mode 100644 index 00000000..ca4857da --- /dev/null +++ b/AI/High-Performance-Sports-Science.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D74500 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - High-Performance-Sports-Science" +--- + +# [[High-Performance-Sports-Science]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/High-Performance-Sports-Science.md]] +--- diff --git a/AI/Homeostasis.md b/AI/Homeostasis.md new file mode 100644 index 00000000..b06eddc9 --- /dev/null +++ b/AI/Homeostasis.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D75E8D +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Homeostasis" +--- + +# [[Homeostasis]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Homeostasis.md]] +--- diff --git a/AI/Human-Computer-Interaction.md b/AI/Human-Computer-Interaction.md new file mode 100644 index 00000000..0652dc80 --- /dev/null +++ b/AI/Human-Computer-Interaction.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-3ED48D +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Human-Computer-Interaction" +--- + +# [[Human-Computer-Interaction]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Human-Computer-Interaction.md]] +--- diff --git a/AI/Hyperinflation in Closed-Loop Systems.md b/AI/Hyperinflation in Closed-Loop Systems.md new file mode 100644 index 00000000..75b2932d --- /dev/null +++ b/AI/Hyperinflation in Closed-Loop Systems.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-01FD40 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Hyperinflation in Closed-Loop Systems" +--- + +# [[Hyperinflation in Closed-Loop Systems]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Hyperinflation in Closed-Loop Systems.md]] +--- diff --git a/AI/IEEE P36521.md b/AI/IEEE P36521.md new file mode 100644 index 00000000..7ccfc2bc --- /dev/null +++ b/AI/IEEE P36521.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5A9960 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - IEEE P36521" +--- + +# [[IEEE P36521]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/IEEE P3652.1.md]] +--- diff --git a/AI/Immersive Sim Design.md b/AI/Immersive Sim Design.md new file mode 100644 index 00000000..8c18ab92 --- /dev/null +++ b/AI/Immersive Sim Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A1E36D +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Immersive Sim Design" +--- + +# [[Immersive Sim Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Immersive Sim Design.md]] +--- diff --git a/AI/Immersive Sims (eg Deus Ex Dishonored).md b/AI/Immersive Sims (eg Deus Ex Dishonored).md new file mode 100644 index 00000000..5c64c6ee --- /dev/null +++ b/AI/Immersive Sims (eg Deus Ex Dishonored).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-F70063 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Immersive Sims (eg Deus Ex Dishonored)" +--- + +# [[Immersive Sims (eg Deus Ex Dishonored)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Immersive Sims (e.g., Deus Ex, Dishonored).md]] +--- diff --git a/AI/Immersive Sims (eg Deus Ex Thief).md b/AI/Immersive Sims (eg Deus Ex Thief).md new file mode 100644 index 00000000..c3d12af2 --- /dev/null +++ b/AI/Immersive Sims (eg Deus Ex Thief).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B11AD8 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Immersive Sims (eg Deus Ex Thief)" +--- + +# [[Immersive Sims (eg Deus Ex Thief)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Immersive Sims (e.g., Deus Ex, Thief).md]] +--- diff --git a/AI/Immersive-Sim-Genre.md b/AI/Immersive-Sim-Genre.md new file mode 100644 index 00000000..9e30a75b --- /dev/null +++ b/AI/Immersive-Sim-Genre.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-F89165 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Immersive-Sim-Genre" +--- + +# [[Immersive-Sim-Genre]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Immersive-Sim-Genre.md]] +--- diff --git a/AI/Immutability-Patterns.md b/AI/Immutability-Patterns.md new file mode 100644 index 00000000..a4a3a999 --- /dev/null +++ b/AI/Immutability-Patterns.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-0F93B3 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Immutability-Patterns" +--- + +# [[Immutability-Patterns]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Immutability-Patterns.md]] +--- diff --git a/AI/In-Context Learning (ICL 문맥 내 학습).md b/AI/In-Context Learning (ICL 문맥 내 학습).md new file mode 100644 index 00000000..6cc4acab --- /dev/null +++ b/AI/In-Context Learning (ICL 문맥 내 학습).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-0A8DD5 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - In-Context Learning (ICL 문맥 내 학습)" +--- + +# [[In-Context Learning (ICL 문맥 내 학습)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/In-Context Learning (ICL, 문맥 내 학습).md]] +--- diff --git a/AI/Incremental-Computation.md b/AI/Incremental-Computation.md new file mode 100644 index 00000000..41c0cadb --- /dev/null +++ b/AI/Incremental-Computation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6A40F8 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Incremental-Computation" +--- + +# [[Incremental-Computation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Incremental-Computation.md]] +--- diff --git a/AI/Indoor Wayfinding for Smart Cities.md b/AI/Indoor Wayfinding for Smart Cities.md new file mode 100644 index 00000000..d5a35407 --- /dev/null +++ b/AI/Indoor Wayfinding for Smart Cities.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-FA7892 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Indoor Wayfinding for Smart Cities" +--- + +# [[Indoor Wayfinding for Smart Cities]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Indoor Wayfinding for Smart Cities.md]] +--- diff --git a/AI/Industrial Metaverse.md b/AI/Industrial Metaverse.md new file mode 100644 index 00000000..a88b8819 --- /dev/null +++ b/AI/Industrial Metaverse.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-ED0741 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Industrial Metaverse" +--- + +# [[Industrial Metaverse]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Industrial Metaverse.md]] +--- diff --git a/AI/Industrial-Automation.md b/AI/Industrial-Automation.md new file mode 100644 index 00000000..4f4ddb6c --- /dev/null +++ b/AI/Industrial-Automation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-879F81 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Industrial-Automation" +--- + +# [[Industrial-Automation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Industrial-Automation.md]] +--- diff --git a/AI/Injury-Prevention-Protocols.md b/AI/Injury-Prevention-Protocols.md new file mode 100644 index 00000000..7bbbfae3 --- /dev/null +++ b/AI/Injury-Prevention-Protocols.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-F84241 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Injury-Prevention-Protocols" +--- + +# [[Injury-Prevention-Protocols]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Injury-Prevention-Protocols.md]] +--- diff --git a/AI/InstancedMesh2 library.md b/AI/InstancedMesh2 library.md new file mode 100644 index 00000000..fbf16012 --- /dev/null +++ b/AI/InstancedMesh2 library.md @@ -0,0 +1,37 @@ +--- +id: P-REINFORCE-AUTO-F5A361 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - InstancedMesh2 library" +--- + +# [[InstancedMesh2 library]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> InstancedMesh2는 Three.js의 공식 InstancedMesh가 가진 한계를 극복하고 대규모 객체 렌더링을 최적화하기 위해 agargaro가 개발한 오픈 소스 확장 라이브러리입니다. 이 라이브러리는 개별 인스턴스 단위의 절두체 컬링(Frustum culling), 정렬(Sorting), 가시성 관리(Visibility management), LOD(Level of Detail), BVH를 활용한 빠른 레이캐스팅 및 스키닝(Skinning) 기능을 제공합니다 [1-3]. 특히 수만 개의 스킨드 메시나 개별 애니메이션을 가진 객체들을 최소한의 드로우 콜로 렌더링할 수 있도록 설계되어 높은 프레임 레이트 유지를 돕습니다 [1, 4, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +* **효율적인 데이터 구조와 참조 방식 (Indirection):** + InstancedMesh2는 렌더링할 인스턴스 인덱스를 관리하기 위해 `InstancedBufferAttribute`를 통한 간접 참조(Indirection) 방식을 사용합니다 [6]. 이를 통해 GPU로 데이터를 전송하기 전 속성 버퍼 전체를 재정렬할 필요 없이, 선택적 렌더링과 효율적인 컬링 및 정렬을 수행할 수 있습니다 [6]. +* **데이터 텍스처와 객체 핸들링 개선:** + 인스턴스 변환 행렬과 데이터를 저장하기 위해 부분 업데이트(Partial updates)를 지원하는 `SquareDataTexture`를 활용합니다 [1, 6]. 또한 전체 인스턴스 개수에 맞춰 `Object3D`와 유사한 프록시 객체를 생성하므로, 사용자가 배열에서 직접 행렬을 추출하지 않고도 위치, 회전, 크기 등의 연산을 쉽게 처리할 수 있습니다 [7]. 객체를 숨길 때(가시성 관리)는 캐시 미스(Cache miss)를 방지하기 위해 해당 행렬을 배열의 끝으로 이동시키는 방식을 적용합니다 [7]. +* **스키닝(Skinning) 및 애니메이션 최적화:** + 각각의 인스턴스가 서로 다른 애니메이션과 포즈를 가질 수 있습니다 [8]. 카메라 절두체 내에 위치한 인스턴스의 뼈대(Bones)만 업데이트하며, 카메라와의 거리에 따라 각 인스턴스의 애니메이션 FPS(0~60)를 조절할 수 있습니다 [1]. 또한 먼 거리에 있는 인스턴스는 불필요한 뼈대 계산을 생략하고 텍스처 업데이트의 렌더링 부하를 줄일 수 있습니다 [1]. +* **LOD 및 레이캐스팅 연동:** + `meshoptimizer`와 연계하여 지오메트리 LOD를 관리하며, 그림자에 대한 LOD 제어도 가능합니다 [1, 9]. 또한 Three.js 생태계의 `three-mesh-bvh`를 통합하여 수많은 인스턴스에 대해서도 빠르고 정확한 공간 인덱스(Spatial index) 기반 레이캐스팅과 절두체 컬링을 지원합니다 [2, 10]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[InstancedMesh]], [[Frustum Culling]], [[Level of Detail (LOD)]], [[Skinned Mesh]], [[BVH (Bounding Volume Hierarchy)]] +- **Projects/Contexts:** [[Three.js]] +- **Contradictions/Notes:** 라이브러리 내에서 지원하는 `SquareDataTexture`의 뼈대 텍스처 부분 업데이트(Partial texture updates) 기능은 모바일 기기 및 Mozilla Firefox 브라우저 환경에서 속도가 느리게 작동할 수 있어, 특정 하드웨어나 브라우저에서는 이를 비활성화(또는 이중 버퍼링 구현 필요)해야 성능을 유지할 수 있습니다 [1, 11]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/InstancedMesh2 library.md]] +--- diff --git a/AI/Interaction to Next Paint (INP).md b/AI/Interaction to Next Paint (INP).md new file mode 100644 index 00000000..dd6971da --- /dev/null +++ b/AI/Interaction to Next Paint (INP).md @@ -0,0 +1,48 @@ +--- +id: P-REINFORCE-AUTO-1BE349 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Interaction to Next Paint (INP)" +--- + +# [[Interaction to Next Paint (INP)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> INP(Interaction to Next Paint)는 웹 페이지의 전반적인 상호작용성(Interactivity)과 응답성(Responsiveness)을 측정하기 위해 2024년 Google이 공식 도입한 Core Web Vitals 지표입니다 [1-3]. 첫 번째 상호작용만 측정하던 기존의 FID(First Input Delay)와 달리, 페이지 방문 기간 동안 발생하는 모든 상호작용(클릭, 탭, 키 누름 등)의 전체 지연 시간을 측정하여 실제 사용자 경험을 더 정확하게 반영합니다 [4-6]. 사용자의 작업에 대해 즉각적인 시각적 피드백을 제공하는 것을 목표로 하며, 200밀리초(ms) 이하의 지연 시간을 기록해야 '좋음(Good)'으로 평가받을 수 있습니다 [5, 7]. + +## 📖 구조화된 지식 (Synthesized Content) +* **도입 배경 및 영향:** + INP는 2024년에 기존 Core Web Vitals 지표였던 First Input Delay (FID)를 공식적으로 대체했습니다 [1, 2]. FID가 첫 번째 상호작용의 이벤트 핸들러 시작 전 지연 시간만을 측정했던 반면, INP는 페이지 전체 수명 동안 발생하는 모든 상호작용을 추적하고 렌더링 지연까지 포함하여 측정합니다 [4-6]. 이 엄격해진 기준 변화로 인해 2024년 2월, 모바일 웹사이트들의 Core Web Vitals 통과율이 크게 하락하는 현상이 관찰되기도 했습니다 [1]. + +* **측정 및 산출 방식:** + INP는 75백분위수(75th percentile)의 방문 데이터를 기준으로 계산됩니다 [8]. 페이지 내 상호작용이 50개 이하인 경우 가장 긴 상호작용 지연 시간을 INP로 간주하며, 상호작용이 50개를 초과할 경우 이상치(Outlier)의 영향을 줄이기 위해 50개 그룹당 가장 지연 시간이 긴 1개를 제외한 나머지 중 최댓값을 사용합니다 [8]. + * **평가 임계값:** 200ms 이하는 '좋음(Good)', 200ms 초과 500ms 이하는 '개선 필요(Needs improvement)', 500ms 초과는 '나쁨(Poor)'으로 분류됩니다 [5]. + * **브라우저 지원:** Chrome뿐만 아니라 Interop 2025 프로젝트를 통해 Firefox(버전 144부터 지원)와 Safari에서도 INP 측정 지표 구현 작업이 시작되었습니다 [9]. + +* **지연 시간의 세부 구성 요소 (Sub-parts):** + 사용자 상호작용의 전체 대기 시간은 크게 3단계로 나뉘며, Chrome DevTools를 통해 이 세부 정보(INP breakdown)를 확인할 수 있습니다 [4, 5, 10]. + 1. **입력 지연 (Input delay):** 이벤트가 감지된 시점부터 이벤트 핸들러가 실행되기 전까지의 시간 [4, 5]. + 2. **처리 시간 (Processing duration):** 이벤트 핸들러 코드가 실제로 실행되는 시간 [4]. 성능 병목이 가장 자주 발생하는 구간입니다 [10]. + 3. **표시 지연 (Presentation delay):** 사용자 작업 이후 다음 프레임을 화면에 렌더링(페인트)할 때까지 걸리는 시간 [4]. + +* **최적화 전략:** + INP를 최적화하기 위해서는 브라우저의 메인 스레드(Main thread) 차단을 최소화해야 합니다. 이를 위해 긴 작업(Long tasks)을 비동기 청크로 분할하고, 핵심 이벤트 핸들러의 우선순위를 높이며, 불필요한 JavaScript 지연 로드(Lazy load) 및 수동 이벤트 리스너(Passive event listeners) 사용, 레이아웃 스래싱(Layout thrashing) 감소 등의 전략이 필요합니다 [11-14]. Chrome DevTools의 성능 패널에 통합된 Long Animation Frames API를 활용하면 상호작용을 지연시키는 특정 스크립트와 그 원인을 직관적으로 파악할 수 있습니다 [15, 16]. + +* **특수 측정 사례 (텍스트 강조 표시):** + 웹 페이지에서 텍스트를 드래그하여 강조 표시(Highlighting)하는 행위도 일반적으로 INP 점수에 영향을 주는 사용자 상호작용으로 간주됩니다 [17]. 다만, 2025년 초 Chrome의 업데이트를 통해 사용자가 창의 가장자리에 도달하여 스크롤이 트리거되는 텍스트 강조 표시 상황에서는 INP 점수가 증가하지 않도록 측정 방식이 조정되었습니다 [17]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Core Web Vitals]], [[First Input Delay (FID)]], [[Long Animation Frames API]] +- **Projects/Contexts:** [[Chrome User Experience Report (CrUX)]], [[Chrome DevTools]], [[Interop 2025]] +- **Contradictions/Notes:** 초기 측정 방식에서는 모든 텍스트 강조 표시가 INP에 영향을 주었으나, 2025년 초 Chrome의 업데이트로 인해 스크롤을 동반하는 텍스트 강조 표시는 예외적으로 INP 지연 시간에 합산되지 않도록 변경되었습니다 [17]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Interaction to Next Paint (INP).md]] +--- diff --git a/AI/Interface Segregation Principle.md b/AI/Interface Segregation Principle.md new file mode 100644 index 00000000..25db9f4d --- /dev/null +++ b/AI/Interface Segregation Principle.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6A25D0 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Interface Segregation Principle" +--- + +# [[Interface Segregation Principle]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Interface Segregation Principle.md]] +--- diff --git a/AI/Interface-Segregation-Principle-in-TS.md b/AI/Interface-Segregation-Principle-in-TS.md new file mode 100644 index 00000000..7f867bc2 --- /dev/null +++ b/AI/Interface-Segregation-Principle-in-TS.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D46100 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Interface-Segregation-Principle-in-TS" +--- + +# [[Interface-Segregation-Principle-in-TS]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Interface-Segregation-Principle-in-TS.md]] +--- diff --git a/AI/Interop 2026.md b/AI/Interop 2026.md new file mode 100644 index 00000000..40fb29f5 --- /dev/null +++ b/AI/Interop 2026.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-36D047 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Interop 2026" +--- + +# [[Interop 2026]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Interop 2026은 웹 브라우저 간 코어 웹 바이탈(Core Web Vitals) 지원을 표준화하기 위한 후속 프로젝트로 언급된 제안입니다 [1]. 특히 파이어폭스(Firefox)나 사파리(Safari) 등에서 아직 지원이 계획되지 않은 누적 레이아웃 이동(Cumulative Layout Shift, CLS) 지표를 포함하기 위한 목적으로 제안되고 있습니다 [1]. + +## 📖 구조화된 지식 (Synthesized Content) +- **코어 웹 바이탈의 크로스 브라우저 지원 배경:** 2020년 구글이 발표한 코어 웹 바이탈은 오랫동안 크롬(Chrome) 전용 지표로 사용되었습니다 [1, 2]. 이 상황은 Interop 2025 프로젝트를 통해 파이어폭스와 사파리가 LCP(Largest Contentful Paint) 및 INP(Interaction to Next Paint) 지표 구현 작업을 시작하면서 변화하기 시작했습니다 [1]. +- **Interop 2026의 제안 사항:** 현재 진행 중인 브라우저 표준화 작업에는 누적 레이아웃 이동(CLS) 지표에 대한 지원이 계획되어 있지 않습니다 [1]. 이를 해결하기 위해 CLS 지표 지원을 Interop 2026에 포함시키자는 제안(proposal)이 나와 있는 상태입니다 [1]. +- **정보의 한계:** 소스에 관련 정보가 부족합니다. Interop 2026 프로젝트의 전체 범위, 구체적인 일정, CLS 외에 추가로 논의되는 웹 성능 지표 등에 대한 상세한 내용은 제공된 소스에 존재하지 않습니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Core Web Vitals]], [[Cumulative Layout Shift]], [[Interop 2025]] +- **Projects/Contexts:** [[크로스 브라우저 코어 웹 바이탈 지원 (Cross-browser support for Core Web Vitals)]] +- **Contradictions/Notes:** 소스 내에서 Interop 2026은 확정된 프로젝트가 아니라 CLS 지표를 향후에 지원하기 위해 고려 중인 '제안' 단계로만 매우 짧게 언급되어 있습니다 [1]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Interop 2026.md]] +--- diff --git a/AI/Interpolation and Extrapolation.md b/AI/Interpolation and Extrapolation.md new file mode 100644 index 00000000..74fdb579 --- /dev/null +++ b/AI/Interpolation and Extrapolation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-C3D464 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Interpolation and Extrapolation" +--- + +# [[Interpolation and Extrapolation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Interpolation and Extrapolation.md]] +--- diff --git a/AI/InversifyJS.md b/AI/InversifyJS.md new file mode 100644 index 00000000..265e6032 --- /dev/null +++ b/AI/InversifyJS.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-020B35 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - InversifyJS" +--- + +# [[InversifyJS]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/InversifyJS.md]] +--- diff --git a/AI/Irrational Games.md b/AI/Irrational Games.md new file mode 100644 index 00000000..7a13e8c6 --- /dev/null +++ b/AI/Irrational Games.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-8F0A9E +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Irrational Games" +--- + +# [[Irrational Games]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Irrational Games.md]] +--- diff --git a/AI/Itô Calculus.md b/AI/Itô Calculus.md new file mode 100644 index 00000000..afa98168 --- /dev/null +++ b/AI/Itô Calculus.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D65DD9 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Itô Calculus" +--- + +# [[Itô Calculus]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Itô Calculus.md]] +--- diff --git a/AI/J-curve S-curve (AI 발전의 동학).md b/AI/J-curve S-curve (AI 발전의 동학).md new file mode 100644 index 00000000..7f1bbded --- /dev/null +++ b/AI/J-curve S-curve (AI 발전의 동학).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-25FEC6 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - J-curve S-curve (AI 발전의 동학)" +--- + +# [[J-curve S-curve (AI 발전의 동학)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/J-curve & S-curve (AI 발전의 동학).md]] +--- diff --git a/AI/JSON-Schema.md b/AI/JSON-Schema.md new file mode 100644 index 00000000..3210abfd --- /dev/null +++ b/AI/JSON-Schema.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-CF1F59 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - JSON-Schema" +--- + +# [[JSON-Schema]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/JSON-Schema.md]] +--- diff --git a/AI/Jailbreaking (탈옥).md b/AI/Jailbreaking (탈옥).md new file mode 100644 index 00000000..4955b91d --- /dev/null +++ b/AI/Jailbreaking (탈옥).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-C6F5E9 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Jailbreaking (탈옥)" +--- + +# [[Jailbreaking (탈옥)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Jailbreaking (탈옥).md]] +--- diff --git a/AI/Jenkins.md b/AI/Jenkins.md new file mode 100644 index 00000000..c5bcd1bd --- /dev/null +++ b/AI/Jenkins.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-937A74 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Jenkins" +--- + +# [[Jenkins]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +* **SonarQube와의 통합을 통한 품질 검사 자동화:** Jenkins는 SonarQube와 원활하게 통합될 수 있는 다양한 개발 도구 중 하나입니다 [1]. Jenkins와 같은 CI/CD 파이프라인에 SonarQube를 연동함으로써 개발자는 AI가 생성한 코드 등을 포함한 소스 코드에 대해 즉각적인 피드백을 받을 수 있습니다 [1, 2]. 이는 자동화된 품질 검사를 일상적인 개발 활동의 핵심 구성 요소로 유지하게 해줍니다 [2]. +* **Endor Labs 통합:** Jenkins는 소프트웨어 공급망 보안 플랫폼인 Endor Labs 시스템과 연동 가능한 통합(Integrations) 도구로도 활용됩니다 [3]. +* **정보 부족:** Jenkins의 아키텍처, 역사, 구체적인 기능 및 내부 메커니즘 등 루트 주제를 깊이 이해하는 데 필요한 상세 내용에 대해서는 소스에 관련 정보가 부족합니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[SonarQube]], [[CI/CD Pipelines]], [[Endor Labs]] +- **Projects/Contexts:** [[Automated Code Review]], [[Software Supply Chain Security]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. 소스 문헌들은 Jenkins의 단독적인 기능이나 특성을 설명하지 않으며, 오직 다른 코드 분석/보안 도구(SonarQube, Endor Labs)가 연동할 수 있는 CI/CD 플랫폼의 예시로만 언급하고 있습니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Jenkins.md]] +--- diff --git a/AI/KTO (Kahneman-Tversky Optimization).md b/AI/KTO (Kahneman-Tversky Optimization).md new file mode 100644 index 00000000..6b3f793b --- /dev/null +++ b/AI/KTO (Kahneman-Tversky Optimization).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-085B91 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - KTO (Kahneman-Tversky Optimization)" +--- + +# [[KTO (Kahneman-Tversky Optimization)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/KTO (Kahneman-Tversky Optimization).md]] +--- diff --git a/AI/Ken Levine-Design-Philosophy.md b/AI/Ken Levine-Design-Philosophy.md new file mode 100644 index 00000000..2fe2f556 --- /dev/null +++ b/AI/Ken Levine-Design-Philosophy.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-DE50FF +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Ken Levine-Design-Philosophy" +--- + +# [[Ken Levine-Design-Philosophy]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Ken Levine-Design-Philosophy.md]] +--- diff --git a/AI/Keyof-Operator.md b/AI/Keyof-Operator.md new file mode 100644 index 00000000..663515f1 --- /dev/null +++ b/AI/Keyof-Operator.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D5D6DC +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Keyof-Operator" +--- + +# [[Keyof-Operator]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Keyof-Operator.md]] +--- diff --git a/AI/Kinematic-Modeling.md b/AI/Kinematic-Modeling.md new file mode 100644 index 00000000..8ba31616 --- /dev/null +++ b/AI/Kinematic-Modeling.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-47456C +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Kinematic-Modeling" +--- + +# [[Kinematic-Modeling]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Kinematic-Modeling.md]] +--- diff --git a/AI/Knowledge-Representation-in-AI.md b/AI/Knowledge-Representation-in-AI.md new file mode 100644 index 00000000..1c7c05a2 --- /dev/null +++ b/AI/Knowledge-Representation-in-AI.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-F03CAF +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Knowledge-Representation-in-AI" +--- + +# [[Knowledge-Representation-in-AI]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Knowledge-Representation-in-AI.md]] +--- diff --git a/AI/LLM Alignment (LLM 정렬).md b/AI/LLM Alignment (LLM 정렬).md new file mode 100644 index 00000000..da75e1fd --- /dev/null +++ b/AI/LLM Alignment (LLM 정렬).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E3A7CD +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - LLM Alignment (LLM 정렬)" +--- + +# [[LLM Alignment (LLM 정렬)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/LLM Alignment (LLM 정렬).md]] +--- diff --git a/AI/LLM Hallucination (언어 모델 환각).md b/AI/LLM Hallucination (언어 모델 환각).md new file mode 100644 index 00000000..f5717e5c --- /dev/null +++ b/AI/LLM Hallucination (언어 모델 환각).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-3DFBCC +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - LLM Hallucination (언어 모델 환각)" +--- + +# [[LLM Hallucination (언어 모델 환각)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/LLM Hallucination (언어 모델 환각).md]] +--- diff --git a/AI/LLM.md b/AI/LLM.md new file mode 100644 index 00000000..3aae01a2 --- /dev/null +++ b/AI/LLM.md @@ -0,0 +1,37 @@ +--- +id: P-REINFORCE-AUTO-D415E3 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - LLM" +--- + +# [[LLM]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> LLM(대규모 언어 모델)은 코드의 문맥과 의미를 이해하고, 인간이 놓칠 수 있는 복잡한 패턴을 감지하며 더욱 정교한 피드백을 제공하는 데 활용되는 인공지능 기술입니다 [1, 2]. 기존의 단순 규칙 기반 정적 분석 도구와 달리, LLM은 코드 컨텍스트와 비즈니스 로직의 결함을 파악하고 맥락에 맞는 자동 수정(AutoFix) 제안을 생성하는 데 강력한 성능을 보여줍니다 [3-5]. 현대 소프트웨어 개발 환경에서 LLM은 코드 복잡도 분석, 보안 취약점 탐지, 그리고 상용구(boilerplate) 코드 작성 등의 작업에 폭넓게 도입되어 개발자의 전반적인 생산성을 향상시키고 있습니다 [2, 6, 7]. + +## 📖 구조화된 지식 (Synthesized Content) +* **정적 분석(SAST) 및 자동 수정에서의 활용** + AI-native SAST 플랫폼(예: Corgea, Fortify Aviator 등)은 핵심 스캐닝 엔진에 LLM을 직접 결합하여, 단순한 문자열 패턴 매칭을 넘어 코드의 문맥과 의도를 깊이 있게 파악합니다 [4, 8]. 이를 통해 기존의 패턴 기반 스캐너들이 놓치기 쉬운 복잡한 비즈니스 로직의 결함과 인증 관련 문제 등을 효과적으로 찾아낼 수 있습니다 [3]. 또한, 탐지된 보안 문제나 코드 스멜(Code smells)에 대해 LLM을 활용하여 실제 코드 베이스에 적용 가능한 자동 수정(AutoFix) 패치를 생성 및 제안합니다 [5, 9]. + +* **코드 복잡도 분석 및 버그 예측 모델** + LLM은 제어 흐름이나 순환 복잡도(Cyclomatic Complexity)를 직접 수치로 계산하지는 않지만, 조건문, 루프, 예외 처리 구조 및 코드 블록의 중첩 수준 등을 해석하여 복잡도와 유사한 패턴을 인지해냅니다 [7]. 이를 기반으로 자연어 기반의 구체적인 리팩토링 권장 사항을 개발자에게 제시할 수 있습니다 [10]. 또한 사전 학습된 LLM을 버그 예측에 도입할 경우, 복잡한 피처 엔지니어링 없이도 코드의 의미 자체를 이해하여 기존 머신러닝 기반 분류 모델보다 훨씬 높은 정확도로 잠재적 버그와 구성 논리 오류를 예측할 수 있는 가능성을 제공합니다 [2, 11]. + +* **개발자 생산성 향상과 내재된 한계점** + 개발자들은 LLM을 사용하여 반복적인 상용구(boilerplate) 코드를 신속하게 자동 생성하거나, 익숙하지 않은 프로그래밍 언어 및 프레임워크의 구조를 빠르게 파악함으로써 초기 작업 속도와 생산성을 획기적으로 높일 수 있습니다 [6, 12, 13]. 그러나 LLM은 여러 저장소(cross-repository)에 걸친 광범위한 문맥이나 깊이 얽힌 레거시 코드베이스를 완벽히 이해하는 데에는 명확한 한계를 보입니다 [14, 15]. 따라서 LLM이 생성한 코드는 환각(Hallucination)으로 인한 잘못된 함수 사용이나 보안 취약점을 포함할 위험성이 있으므로, 자동 생성된 패치나 코드는 반드시 품질 게이트(Quality gates) 검증과 인간의 꼼꼼한 리뷰 절차를 병행해야 합니다 [16-18]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[SAST]], [[Static Analysis]], [[AI Code Review]] +- **Projects/Contexts:** [[Corgea]], [[GitHub Copilot]], [[Snyk Code]], [[DeepCode AI]] +- **Contradictions/Notes:** 대다수의 개발자들은 LLM이 반복적인 상용구 코드 작성을 줄여주고 낯선 도메인에서의 작업 효율을 크게 향상시킨다고 긍정적으로 평가하지만 [6, 13, 19], 반대로 대규모의 복잡한 레거시 코드베이스나 이전에 해결된 적 없는 새로운 문제(Frontier)에서는 LLM의 효과가 무의미해지며, 잦은 환각(Hallucination)이나 미세한 오류로 인해 오히려 심각한 디버깅 시간을 낭비하게 만든다고 강력히 반대(또는 경계)하는 의견도 존재합니다 [14, 20-22]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/LLM.md]] +--- diff --git a/AI/LOD.md b/AI/LOD.md new file mode 100644 index 00000000..1fdc6ae3 --- /dev/null +++ b/AI/LOD.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-D34DEB +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - LOD" +--- + +# [[LOD]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> LOD(Level of Detail)는 카메라와의 거리에 따라 고해상도(High-poly) 모델을 저해상도(Low-poly) 버전으로 동적으로 교체하여 렌더링 성능을 향상시키는 기법이다 [1, 2]. 대규모 3D 씬에서 먼 거리에 있는 객체의 기하학적 복잡도를 극적으로 낮추거나 단순한 평면(Impostor)으로 대체하여 불필요한 GPU 연산을 방지한다 [2, 3]. 이 시스템을 적절히 활용하면 프레임 속도 안정화에 기여하고 전체 씬의 폴리곤 수 및 GPU 처리량을 획기적으로 줄일 수 있다 [1, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +- **LOD의 작동 원리 및 성능 이점:** 렌더링 엔진은 매 프레임마다 카메라와 객체 간의 거리를 측정하여 미리 정의된 적절한 LOD 수준으로 모델을 자동 전환한다 [5]. 일반적으로 가장 가까운 뷰(예: 50,000 폴리곤), 중간 거리, 원거리, 극단적 원거리(500 폴리곤 임포스터) 등 3~5단계의 LOD를 구성하는 방식이 사용된다 [5, 6]. 이 동적 스위칭은 GPU 프래그먼트 처리를 60~75% 절감하고 평균 폴리곤 수를 60~80% 감소시켜 프레임 속도를 크게 높인다 [4, 5]. +- **Instancing과의 결합 및 스킨드 메쉬 최적화:** 기본적으로 지오메트리 LOD는 각 LOD 단계별로 별도의 인스턴스 스택을 구성하지 않는 한 인스턴싱(Instancing)과 함께 사용하기 까다롭다 [7]. 그러나 `InstancedMesh2`와 같은 확장 라이브러리를 사용하면 개별 인스턴스에 대해서도 LOD 관리가 가능하다 [8, 9]. 애니메이션이 적용된 스킨드 메쉬(Skinned Mesh)의 경우, 기하학적 폴리곤뿐만 아니라 뼈대(Bone) 연산까지 LOD 단계에 맞춰 줄이고 관련 텍스처 크기(예: 32x32에서 8x8 해상도로 축소)를 대폭 삭감함으로써 렌더링 부하를 최소화할 수 있다 [10-12]. +- **팝핑(Popping) 현상 극복 및 CAD 렌더링 적용:** 단계별로 모델을 교체하는 이산형(Discrete) LOD 시스템은 전환 시 모델이 튀어 보이는 '팝핑' 현상이 발생할 수 있으며, 이는 정밀한 시각화가 필요한 CAD 환경에서는 부적합할 수 있다 [13]. 이를 해결하기 위해 동적으로 폴리곤을 단순화하는 연속적 LOD(Continuous LOD) 기법이나, 디더(Dither) 패턴을 활용해 두 단계의 LOD 모델을 겹쳐서 렌더링하여 부드럽게 전환하는 '디더링된 LOD 블렌드(Dithered LOD Blend)' 기술이 사용되기도 한다 [14]. +- **사용 시 주의사항 및 병목 해결의 순서:** 런타임에 동적으로 단순화된 지오메트리를 생성하여 LOD로 할당하는 방식은 엔진에 과도한 오버헤드를 유발하여 오히려 렌더링 성능을 악화시킬 수 있다 [15-17]. 따라서 모델 익스포트 단계에서 정적인 여러 LOD 단계를 미리 생성해 두는(Pre-created) 방식이 효과적이다 [18]. 또한, LOD는 애플리케이션이 드로우 콜(Draw call) 병목이 아닌 삼각형 처리 수(Triangle count) 한계에 도달했을 때 마지막 수단으로 고려해야 하는 최적화 기법이다 [17, 19, 20]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Frustum Culling]], [[Billboard impostors]], [[InstancedMesh]], [[Draw Calls]], [[Mipmaps]] +- **Projects/Contexts:** [[Three.js]], [[React Three Fiber]] (Drei 라이브러리의 `` 컴포넌트 [1]), [[InstancedMesh2]], [[CAD Rendering]] +- **Contradictions/Notes:** 소스에 따르면 LOD는 거리에 따라 렌더링 부하를 줄여주는 강력한 툴이지만, 런타임에 지오메트리 버전을 동적으로 연산하여 생성하려는 시도는 오히려 큰 성능 저하를 초래할 수 있으므로 상황(정적 자산 중심)에 맞게 적용해야 한다고 지적한다 [16-18]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/LOD.md]] +--- diff --git a/AI/Language-Acquisition-Apps.md b/AI/Language-Acquisition-Apps.md new file mode 100644 index 00000000..dd8ed69d --- /dev/null +++ b/AI/Language-Acquisition-Apps.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6239D3 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Language-Acquisition-Apps" +--- + +# [[Language-Acquisition-Apps]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Language-Acquisition-Apps.md]] +--- diff --git a/AI/Large-Scale-Enterprise-Frontend-Architectures.md b/AI/Large-Scale-Enterprise-Frontend-Architectures.md new file mode 100644 index 00000000..bdf8d42a --- /dev/null +++ b/AI/Large-Scale-Enterprise-Frontend-Architectures.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-69DDE6 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Large-Scale-Enterprise-Frontend-Architectures" +--- + +# [[Large-Scale-Enterprise-Frontend-Architectures]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Large-Scale-Enterprise-Frontend-Architectures.md]] +--- diff --git a/AI/Large-Scale-Knowledge-Integration.md b/AI/Large-Scale-Knowledge-Integration.md new file mode 100644 index 00000000..c56c0fba --- /dev/null +++ b/AI/Large-Scale-Knowledge-Integration.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E04C5A +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Large-Scale-Knowledge-Integration" +--- + +# [[Large-Scale-Knowledge-Integration]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Large-Scale-Knowledge-Integration.md]] +--- diff --git a/AI/Large-scale-Frontend-Architecture.md b/AI/Large-scale-Frontend-Architecture.md new file mode 100644 index 00000000..b689d7b5 --- /dev/null +++ b/AI/Large-scale-Frontend-Architecture.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-06FE72 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Large-scale-Frontend-Architecture" +--- + +# [[Large-scale-Frontend-Architecture]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Large-scale-Frontend-Architecture.md]] +--- diff --git a/AI/Large-scale-TypeScript-Monorepos.md b/AI/Large-scale-TypeScript-Monorepos.md new file mode 100644 index 00000000..3f3c1e1c --- /dev/null +++ b/AI/Large-scale-TypeScript-Monorepos.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-EE05DB +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Large-scale-TypeScript-Monorepos" +--- + +# [[Large-scale-TypeScript-Monorepos]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Large-scale-TypeScript-Monorepos.md]] +--- diff --git a/AI/Largest Contentful Paint (LCP).md b/AI/Largest Contentful Paint (LCP).md new file mode 100644 index 00000000..3a9ea31d --- /dev/null +++ b/AI/Largest Contentful Paint (LCP).md @@ -0,0 +1,38 @@ +--- +id: P-REINFORCE-AUTO-C57B92 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Largest Contentful Paint (LCP)" +--- + +# [[Largest Contentful Paint (LCP)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> LCP(Largest Contentful Paint)는 웹 페이지의 로딩 성능을 측정하는 구글의 핵심 웹 바이탈(Core Web Vitals) 지표 중 하나로, 브라우저가 화면에 가장 큰 콘텐츠를 렌더링하는 데 걸리는 시간을 의미합니다 [1, 2]. 이는 사용자가 페이지의 주요 콘텐츠를 볼 수 있게 되는 시점을 나타내는 대리 지표로 사용됩니다 [2]. 구글은 좋은 사용자 경험을 위해 LCP를 2.5초 미만으로 유지할 것을 권장하며, 4.0초를 초과하면 불량한 것으로 간주합니다 [3, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +* **LCP의 역할 및 측정 기준:** + LCP는 초기 시각적 응답 속도를 측정하며, 페이지 로드 시 가장 넓은 픽셀 영역을 차지하는 텍스트나 이미지 요소의 렌더링 완료 시점을 기준으로 합니다 [2, 5]. 데스크톱 및 모바일 환경의 실제 사용자 데이터를 기반으로 한 Chrome User Experience Report(CrUX)에서 75백분위수 방문자의 경험을 기준으로 평가됩니다 [6, 7]. +* **성능 최적화 및 디버깅:** + LCP를 개선하기 위해서는 서버 응답 시간 최적화, 사전 연결(preconnect), 주요 리소스 사전 로드(preload), 렌더링을 차단하는 CSS/JS의 감소가 필요합니다 [8]. 특히 LCP에 영향을 미치는 주요 이미지에는 `fetchpriority='high'` 속성을 부여하여 로딩 우선순위를 높이는 것이 권장됩니다 [9]. 개발자는 Chrome DevTools의 'Performance' 패널과 'Live metrics' 화면을 통해 로컬 및 실제 필드 데이터의 LCP를 실시간으로 확인하고, 지표에 영향을 미치는 LCP 요소를 직접 추적할 수 있습니다 [6, 9-11]. +* **최근 측정 및 지표 업데이트 (2025년 기준):** + * **LCP Subparts:** 2025년 2월부터 CrUX는 LCP를 구성하는 하위 요소(subparts) 데이터를 제공하여, 느린 서버 응답인지, 이미지 다운로드 지연인지 등 LCP 지연 원인을 세분화하여 파악할 수 있게 되었습니다 [12]. 이 하위 요소 데이터는 가장 큰 콘텐츠 요소가 이미지인 방문에 한해 적용됩니다 [13]. + * **Cross-origin 이미지 측정 개선:** 기존에 Chrome은 `Timing-Allow-Origin` 응답 헤더가 없는 크로스 오리진 이미지의 경우 이미지가 화면에 표시되기 전 다운로드된 시간만 보고했으나, 2025년 2월부터 실제 렌더링 시간을 정확히 반영하도록 측정 방식을 변경했습니다 [14]. + * **렌더링 시간의 세분화:** Chrome은 LCP 페인트 타이밍을 브라우저 렌더링이 완료된 시간(`paintTime`)과 실제 픽셀이 화면에 나타난 시간(`presentationTime`)으로 세분화하여 보고하기 시작했습니다 [15]. + * **브라우저 지원 확대 및 Soft Navigation:** Interop 2025 프로젝트를 통해 기존에 Chrome에 국한되었던 LCP 지표가 Firefox 및 Safari(Technology Preview 버전)에서도 지원되기 시작했습니다 [16]. 또한 현재 LCP는 초기 네비게이션 시에만 로드 시간을 측정하지만, 2025년 8월 Chrome은 SPA(Single-Page Application)와 같은 Soft Navigation 환경에서도 LCP 로드 시간을 측정하기 위한 새로운 Origin Trial을 시작했습니다 [17]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Core Web Vitals]], [[Chrome User Experience Report (CrUX)]], [[Interaction to Next Paint (INP)]], [[Cumulative Layout Shift (CLS)]], [[Soft Navigation]] +- **Projects/Contexts:** [[Interop 2025]], [[Chrome DevTools]], [[Lighthouse]] +- **Contradictions/Notes:** 소스에 따르면 현재 LCP 지표는 웹 사이트의 초기 네비게이션(initial navigation)에 대한 로드 시간만을 측정하기 때문에, URL 변경 시 전체 새로고침이 일어나지 않는 Soft Navigation 기반의 단일 페이지 애플리케이션(SPA) 운영자와 개발자에게는 성능 분석에 상당한 사각지대가 발생한다는 한계가 지적됩니다 [17]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Largest Contentful Paint (LCP).md]] +--- diff --git a/AI/Lerna-Legacy-Management.md b/AI/Lerna-Legacy-Management.md new file mode 100644 index 00000000..40550359 --- /dev/null +++ b/AI/Lerna-Legacy-Management.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-0CDF64 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Lerna-Legacy-Management" +--- + +# [[Lerna-Legacy-Management]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Lerna-Legacy-Management.md]] +--- diff --git a/AI/Level Design Architecture.md b/AI/Level Design Architecture.md new file mode 100644 index 00000000..fdf64fe0 --- /dev/null +++ b/AI/Level Design Architecture.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E822FE +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Level Design Architecture" +--- + +# [[Level Design Architecture]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Level Design Architecture.md]] +--- diff --git a/AI/Level Design Automation.md b/AI/Level Design Automation.md new file mode 100644 index 00000000..fa042bad --- /dev/null +++ b/AI/Level Design Automation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-1A2A10 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Level Design Automation" +--- + +# [[Level Design Automation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Level Design Automation.md]] +--- diff --git a/AI/Level of Detail (LOD).md b/AI/Level of Detail (LOD).md new file mode 100644 index 00000000..3e2cb83b --- /dev/null +++ b/AI/Level of Detail (LOD).md @@ -0,0 +1,35 @@ +--- +id: P-REINFORCE-AUTO-B9CF3B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Level of Detail (LOD)" +--- + +# [[Level of Detail (LOD)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> LOD(Level of Detail)는 카메라와의 거리에 따라 객체의 기하학적 복잡도(폴리곤 수)를 동적으로 조절하여 렌더링 성능을 최적화하는 기법입니다 [1-3]. 가까운 객체에는 고해상도(High-poly) 모델을 보여주고, 멀리 있는 객체는 저해상도(Low-poly) 모델이나 단순한 평면(Impostor)으로 교체하여 GPU 연산량을 줄입니다 [1, 2, 4, 5]. 이를 통해 화면의 시각적 품질을 유지하면서도 대규모 씬의 프레임 속도를 크게 개선할 수 있습니다 [6, 7]. + +## 📖 구조화된 지식 (Synthesized Content) +- **성능 개선 효과:** Three.js는 매 프레임 카메라와 객체 사이의 거리를 측정하여 적절한 폴리곤 밀도를 가진 메쉬로 자동 전환합니다 [3, 7, 8]. 대규모 씬에서 LOD를 적용하면 GPU 프래그먼트 처리량을 60~75% 감소시키고, 평균 폴리곤 수를 60~80% 줄일 수 있으며 [3, 7], 프레임 레이트를 30~40% 향상시킬 수 있습니다 [6]. +- **LOD 단계의 구성:** 일반적으로 3~5단계의 LOD 버전을 사전에 생성하여 사용합니다. 예를 들어, 근접 뷰용 5만 개(Hero), 중간 거리용 1만 5천 개, 배경용 5천 개, 그리고 극한의 거리를 위한 500개의 임포스터(Impostor) 메쉬로 구성하는 방식입니다 [4, 7]. 거리가 먼 객체는 드로우 콜과 삼각형 수를 줄이기 위해 질감이 입혀진 단일 평면(Billboard Impostor)으로 대체되기도 합니다 [2, 5]. +- **확장된 LOD 적용:** LOD 개념은 기하학적 메쉬뿐만 아니라 다른 렌더링 요소에도 적용됩니다. 애니메이션 최적화 시 뼈대(Bone)와 관련된 연산이나 텍스처 크기를 거리에 따라 줄이거나 [9-12], 텍스처 샘플링을 위해 해상도 피라미드를 구성하는 밉맵(Mipmaps) 기능도 일종의 거리 기반 디테일 조절 기법입니다 [13]. +- **성능적 트레이드오프 및 한계:** LOD 시스템은 보이지 않는 메쉬 레벨까지 모두 GPU 메모리에 유지해야 하므로 메모리 사용량이 증가합니다 [14]. 또한 매 프레임 거리를 계산하고 메쉬를 교체하는 작업이 개별 메쉬마다 CPU 오버헤드를 발생시킵니다 [8]. +- **LOD 적용의 적합성:** 장면 최적화 시 LOD는 드로우 콜(Draw Call) 병목 현상을 해결해 주지는 않습니다. 따라서 수천 개의 고유 요소를 렌더링하는 경우 드로우 콜 병목이 먼저 발생하므로 LOD가 성능 향상에 기여하지 못할 수 있습니다 [15]. LOD는 삼각형 수(예: 600만 개 이상)가 너무 많아 GPU가 한계에 도달했을 때 효과적이며, 거대한 오픈 월드나 매우 상세한 모델이 없는 한 후순위로 고려해야 할 최적화 기법입니다 [16-18]. +- **구현 방식:** Three.js에서는 `THREE.LOD` 객체를 사용하여 구현하며 [7], React Three Fiber에서는 Drei 라이브러리의 `` 컴포넌트를 통해 간편하게 설정할 수 있습니다 [1, 19]. InstancedMesh2 라이브러리 등을 통해 인스턴싱 기술과 LOD를 함께 활용하기도 합니다 [11, 20-22]. 런타임에 동적으로 모델을 단순화(Simplify)하여 LOD를 생성하는 것은 오버헤드를 유발하므로, 익스포트 단계에서 미리 LOD 메쉬를 만들어두는 것이 권장됩니다 [16, 23, 24]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Draw Calls]], [[Impostor]], [[InstancedMesh]], [[Frustum Culling]], [[Mipmaps]] +- **Projects/Contexts:** [[Three.js]], [[React Three Fiber]], [[InstancedMesh2]] +- **Contradictions/Notes:** LOD 기술이 항상 성능 향상을 가져오는 것은 아닙니다. 만약 애플리케이션이 드로우 콜 과부하 상태(Draw call bound)라면 LOD를 적용해도 드로우 콜 자체가 줄지 않으므로 성능이 오히려 약간 저하될 수 있으며, 메모리 부하와 교체 연산 오버헤드만 추가될 위험이 있습니다 [8, 14, 15]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Level of Detail (LOD).md]] +--- diff --git a/AI/Level-Design-Automation.md b/AI/Level-Design-Automation.md new file mode 100644 index 00000000..787fcaa7 --- /dev/null +++ b/AI/Level-Design-Automation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-7DF19B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Level-Design-Automation" +--- + +# [[Level-Design-Automation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Level-Design-Automation.md]] +--- diff --git a/AI/Linear Representation Hypothesis (선형 표현 가설).md b/AI/Linear Representation Hypothesis (선형 표현 가설).md new file mode 100644 index 00000000..890000df --- /dev/null +++ b/AI/Linear Representation Hypothesis (선형 표현 가설).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-CEDE85 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Linear Representation Hypothesis (선형 표현 가설)" +--- + +# [[Linear Representation Hypothesis (선형 표현 가설)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Linear Representation Hypothesis (선형 표현 가설).md]] +--- diff --git a/AI/Live Service Game Design.md b/AI/Live Service Game Design.md new file mode 100644 index 00000000..5b36a549 --- /dev/null +++ b/AI/Live Service Game Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-84B088 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Live Service Game Design" +--- + +# [[Live Service Game Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Live Service Game Design.md]] +--- diff --git a/AI/LiveOps Management.md b/AI/LiveOps Management.md new file mode 100644 index 00000000..c74ab2e8 --- /dev/null +++ b/AI/LiveOps Management.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-79CEB3 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - LiveOps Management" +--- + +# [[LiveOps Management]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/LiveOps Management.md]] +--- diff --git a/AI/LoRA (Low-Rank Adaptation).md b/AI/LoRA (Low-Rank Adaptation).md new file mode 100644 index 00000000..ee8d6745 --- /dev/null +++ b/AI/LoRA (Low-Rank Adaptation).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-3C77A7 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - LoRA (Low-Rank Adaptation)" +--- + +# [[LoRA (Low-Rank Adaptation)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/LoRA (Low-Rank Adaptation).md]] +--- diff --git a/AI/Locus of Control.md b/AI/Locus of Control.md new file mode 100644 index 00000000..96fa72c7 --- /dev/null +++ b/AI/Locus of Control.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-83F003 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Locus of Control" +--- + +# [[Locus of Control]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Locus of Control.md]] +--- diff --git a/AI/Locus-of-Control.md b/AI/Locus-of-Control.md new file mode 100644 index 00000000..2293abab --- /dev/null +++ b/AI/Locus-of-Control.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-C947BF +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Locus-of-Control" +--- + +# [[Locus-of-Control]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Locus-of-Control.md]] +--- diff --git a/AI/Long Animation Frames API.md b/AI/Long Animation Frames API.md new file mode 100644 index 00000000..04a6aec1 --- /dev/null +++ b/AI/Long Animation Frames API.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-2A8383 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Long Animation Frames API" +--- + +# [[Long Animation Frames API]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Long Animation Frames API는 사용자 상호작용을 지연시키는 스크립트를 식별하고 세부 정보를 제공하는 데 사용되는 웹 성능 API입니다 [1]. Chrome 브라우저에서 INP(Interaction to Next Paint) 지표 측정을 위한 계측(instrumentation) 역할을 하여, 특정 상호작용 중에 실행된 자바스크립트 목록을 제공합니다 [2]. 이를 통해 개발자는 열악한 사용자 경험을 유발하는 스크립트와 함수를 효과적으로 탐지하고 최적화할 수 있습니다 [2]. + +## 📖 구조화된 지식 (Synthesized Content) +* **상호작용 처리 시간 및 스크립트 식별:** 이 API는 사용자의 입력(클릭, 탭, 포인터 등)에 대한 직접적 또는 간접적인 결과로 실행된 이벤트 리스너나 콜백 등의 스크립트 목록을 식별하게 해줍니다 [2]. Chrome DevTools에서 INP 값을 분석할 때, 이 API 덕분에 상호작용 처리 시간에 기여한 자바스크립트 코드의 상세 목록을 콘솔에서 확인할 수 있습니다 [2]. +* **성능 모니터링 도구에서의 활용:** DebugBear와 같은 웹 성능 모니터링 제품은 Long Animation Frames API에서 얻은 데이터를 활용하여 사용자 상호작용을 지연시키는 스크립트를 시각화합니다 [1]. 이를 통해 각 스크립트를 파비콘, 실행 이유에 대한 설명, 그리고 스크립팅 작업과 레이아웃 작업의 세부 항목으로 분류하여 표시할 수 있습니다 [1]. +* **INP(Interaction to Next Paint) 문제 해결:** 웹 사이트의 반응성을 측정하는 핵심 지표인 INP의 하위 요소 중 '처리 시간(Processing duration)'의 지연 원인을 분석할 때 매우 중요하게 활용됩니다 [2, 3]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[INP (Interaction to Next Paint)]], [[Chrome DevTools]], [[Web Performance]] +- **Projects/Contexts:** 사용자 상호작용 병목 현상을 파악하기 위한 [[Chrome DevTools]] 성능 패널 및 [[DebugBear]] 웹 성능 모니터링 대시보드 +- **Contradictions/Notes:** 소스에 모순되는 내용은 존재하지 않으며, 이 API는 웹 성능 분석 및 서드파티 모니터링 서비스에서 자바스크립트 실행 지연을 식별하는 주요 수단으로 일관되게 설명되고 있습니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Long Animation Frames API.md]] +--- diff --git a/AI/Long Tasks.md b/AI/Long Tasks.md new file mode 100644 index 00000000..24e1ad36 --- /dev/null +++ b/AI/Long Tasks.md @@ -0,0 +1,39 @@ +--- +id: P-REINFORCE-AUTO-183DC1 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Long Tasks" +--- + +# [[Long Tasks]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 롱 태스크(Long Tasks)는 브라우저의 메인 스레드를 50ms 이상 장시간 차단하는 자바스크립트 연산 등의 CPU 처리 작업을 의미합니다 [1]. 이러한 작업은 짧은 여러 개의 작업보다 사용자 상호작용(Interaction)을 훨씬 더 지연시키며, 웹사이트를 느리게 느껴지게 만드는 주된 원인이 됩니다 [2]. + +## 📖 구조화된 지식 (Synthesized Content) +- **정의 및 성능에 미치는 영향:** + 롱 태스크는 브라우저의 메인 스레드를 50밀리초(ms) 이상 차단하는 자바스크립트 연산을 말합니다 [1]. 브라우저의 CPU 처리 작업 중 롱 태스크는 사용자 상호작용을 처리하는 것을 방해하여 응답성을 지연시킵니다 [2]. 이는 사용자 경험을 저하시키며, 구글의 Core Web Vitals 지표 중 하나인 INP(Interaction to Next Paint) 점수를 악화시키는 주요 원인이 됩니다 [1, 3]. +- **식별 및 모니터링 방법:** + 개발자는 Chrome DevTools의 Performance(성능) 패널을 통해 롱 태스크를 발견할 수 있습니다. 성능 프로파일링 시 긴 시간이 소요된 Task에는 빨간색 삼각형 경고가 표시되어 성능 병목 현상이 발생했음을 알립니다 [4, 5]. 또한 Long Animation Frames API를 활용하여 사용자 상호작용을 지연시키는 특정 스크립트를 식별하고 분석할 수도 있습니다 [6, 7]. +- **최적화 및 해결 전략:** + 상호작용 응답성을 개선하려면 롱 태스크를 쪼개어 브라우저가 렌더링 및 입력을 처리할 시간을 확보해야 합니다 [1]. 제공된 소스에서 권장하는 해결 방법은 다음과 같습니다. + - **작업 분할(Task Splitting):** 무거운 자바스크립트 함수를 더 작은 비동기 청크(async chunks)로 나눕니다 [1]. + - **Scheduler API 사용:** `scheduler.yield()`와 같은 메서드를 사용하여 작업 중간에 브라우저 스케줄러로 제어권을 넘겨(yield) 사용자 상호작용을 먼저 처리하게 한 뒤 남은 작업을 계속 진행합니다 [2]. + - **메인 스레드 오프로딩:** Web Workers를 활용하여 무거운 로직을 메인 스레드에서 분리하여 실행합니다 [1, 8]. + - **스케줄링 및 지연 로딩:** `requestIdleCallback`을 사용하여 중요도가 낮은 작업의 실행을 미루거나, 중요하지 않은 자바스크립트의 로딩을 지연(defer) 및 지연 로딩(lazy load) 처리합니다 [1, 9]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Interaction to Next Paint (INP)]], [[Main Thread]], [[Scheduler API]], [[Chrome DevTools]] +- **Projects/Contexts:** [[Core Web Vitals]], [[Web Performance Optimization]] +- **Contradictions/Notes:** 소스 간의 모순된 내용은 발견되지 않았으며, 제공된 자료들은 공통적으로 웹 성능 향상을 위해 롱 태스크를 식별하고 분할하는 것의 중요성을 강조하고 있습니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Long Tasks.md]] +--- diff --git a/AI/Ludology-vs-Narratology.md b/AI/Ludology-vs-Narratology.md new file mode 100644 index 00000000..6632511b --- /dev/null +++ b/AI/Ludology-vs-Narratology.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-977AD2 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Ludology-vs-Narratology" +--- + +# [[Ludology-vs-Narratology]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Ludology-vs-Narratology.md]] +--- diff --git a/AI/MDA-P-Framework.md b/AI/MDA-P-Framework.md new file mode 100644 index 00000000..bc3156be --- /dev/null +++ b/AI/MDA-P-Framework.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-CCDD20 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - MDA-P-Framework" +--- + +# [[MDA-P-Framework]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/MDA-P-Framework.md]] +--- diff --git a/AI/MMORPG Economic Management.md b/AI/MMORPG Economic Management.md new file mode 100644 index 00000000..16920a96 --- /dev/null +++ b/AI/MMORPG Economic Management.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-CD65EB +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - MMORPG Economic Management" +--- + +# [[MMORPG Economic Management]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/MMORPG Economic Management.md]] +--- diff --git a/AI/Machine Learning in Game Design.md b/AI/Machine Learning in Game Design.md new file mode 100644 index 00000000..54fee637 --- /dev/null +++ b/AI/Machine Learning in Game Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E6138D +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Machine Learning in Game Design" +--- + +# [[Machine Learning in Game Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Machine Learning in Game Design.md]] +--- diff --git a/AI/Machine-Learning-Animation.md b/AI/Machine-Learning-Animation.md new file mode 100644 index 00000000..868adb1c --- /dev/null +++ b/AI/Machine-Learning-Animation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-223E1A +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Machine-Learning-Animation" +--- + +# [[Machine-Learning-Animation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Machine-Learning-Animation.md]] +--- diff --git a/AI/Main Thread.md b/AI/Main Thread.md new file mode 100644 index 00000000..674ff26e --- /dev/null +++ b/AI/Main Thread.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-905D08 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Main Thread" +--- + +# [[Main Thread]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Main Thread(메인 스레드)는 웹 브라우저에서 자바스크립트 실행, 렌더링, 이벤트 처리 등 핵심 작업이 순차적으로 실행되는 단일 작업 흐름을 의미합니다 [1, 2]. WebGL과 같은 환경에서는 그래픽 명령어 제출을 비롯한 무거운 연산이 메인 스레드에서 이루어질 경우 렌더링 파이프라인이 차단되어 지연(Latency)과 병목 현상이 발생할 수 있습니다 [1, 2]. Chrome DevTools와 같은 성능 분석 도구를 통해 메인 스레드의 활동을 시각적으로 추적하고 병목 지점을 최적화할 수 있습니다 [3-5]. + +## 📖 구조화된 지식 (Synthesized Content) +* **단일 스레드 구조와 병목 현상:** WebGL은 단일 스레드(Single-threaded) 환경에서 작동하므로 모든 드로우 콜(draw call), 상태 변경, 리소스 업로드가 메인 스레드에서 순차적으로 실행됩니다 [2]. 이로 인해 자바스크립트 실행에 과도한 시간이 소요되면 메인 스레드가 차단(blocked)되고 렌더링 파이프라인이 지연되는 병목 현상이 발생하며, GPU는 다음 명령을 기다리며 유휴 상태(idle)로 남게 됩니다 [1, 2, 6, 7]. +* **성능 모니터링 및 진단:** Chrome DevTools의 Performance 패널에서 'Main' 트랙을 사용하면 메인 스레드의 활동을 시간의 흐름에 따른 플레임 차트(flame chart) 형태로 분석할 수 있습니다 [3-5]. 개발자는 이를 통해 16.67ms의 프레임 예산을 초과하여 메인 스레드를 차단하는 구체적인 자바스크립트 함수를 식별하고 [8], 50ms를 초과하는 긴 작업(Long tasks)을 파악하여 성능 저하의 원인을 진단할 수 있습니다 [9, 10]. +* **최적화 및 WebGPU로의 전환:** 메인 스레드의 차단을 방지하여 상호작용성(Responsiveness)을 높이려면, 무거운 자바스크립트 작업을 더 작은 비동기 조각으로 나누거나 웹 워커(Web Workers)를 활용하여 메인 스레드에서 작업을 분리해야 합니다 [9]. 최근에는 이러한 메인 스레드 병목 현상을 근본적으로 해결하기 위해, 애니메이션 로직과 명령어 생성을 다중 스레드(Multi-Threaded)로 분산하고 작업을 GPU로 오프로드할 수 있는 WebGPU 기술이 도입되고 있습니다 [11, 12]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGL]], [[WebGPU]], [[Total Blocking Time (TBT)]], [[Interaction to Next Paint (INP)]], [[Long Tasks]] +- **Projects/Contexts:** [[Chrome DevTools Performance Panel]], [[Core Web Vitals]] +- **Contradictions/Notes:** 소스는 WebGL이 메인 스레드에서 순차적으로 그래픽 명령을 처리하여 CPU 병목을 유발한다고 주장하는 반면, 새로운 WebGPU는 다중 스레드 명령 생성(Multi-Threaded Command Generation)을 지원하여 메인 스레드의 오버헤드를 대폭 줄일 수 있다고 대조하여 설명합니다 [2, 11, 12]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Main Thread.md]] +--- diff --git a/AI/Market Regulation.md b/AI/Market Regulation.md new file mode 100644 index 00000000..08d0b40c --- /dev/null +++ b/AI/Market Regulation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E87A98 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Market Regulation" +--- + +# [[Market Regulation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Market Regulation.md]] +--- diff --git a/AI/Mechanistic Interpretability (기계적 해석 가능성).md b/AI/Mechanistic Interpretability (기계적 해석 가능성).md new file mode 100644 index 00000000..4db497aa --- /dev/null +++ b/AI/Mechanistic Interpretability (기계적 해석 가능성).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-2BBD92 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Mechanistic Interpretability (기계적 해석 가능성)" +--- + +# [[Mechanistic Interpretability (기계적 해석 가능성)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Mechanistic Interpretability (기계적 해석 가능성).md]] +--- diff --git a/AI/Mesocortical Pathway.md b/AI/Mesocortical Pathway.md new file mode 100644 index 00000000..f9578d3d --- /dev/null +++ b/AI/Mesocortical Pathway.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-F74D23 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Mesocortical Pathway" +--- + +# [[Mesocortical Pathway]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Mesocortical Pathway.md]] +--- diff --git a/AI/Metabolic Efficiency.md b/AI/Metabolic Efficiency.md new file mode 100644 index 00000000..a8457606 --- /dev/null +++ b/AI/Metabolic Efficiency.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-237ED8 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Metabolic Efficiency" +--- + +# [[Metabolic Efficiency]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Metabolic Efficiency.md]] +--- diff --git a/AI/Metabolic-Flexibility.md b/AI/Metabolic-Flexibility.md new file mode 100644 index 00000000..0cdfa346 --- /dev/null +++ b/AI/Metabolic-Flexibility.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-1081E3 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Metabolic-Flexibility" +--- + +# [[Metabolic-Flexibility]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Metabolic-Flexibility.md]] +--- diff --git a/AI/Metabolic-Resource-Allocation.md b/AI/Metabolic-Resource-Allocation.md new file mode 100644 index 00000000..f1702482 --- /dev/null +++ b/AI/Metabolic-Resource-Allocation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9E2C0F +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Metabolic-Resource-Allocation" +--- + +# [[Metabolic-Resource-Allocation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Metabolic-Resource-Allocation.md]] +--- diff --git a/AI/Metro Exodus.md b/AI/Metro Exodus.md new file mode 100644 index 00000000..5c8daf1c --- /dev/null +++ b/AI/Metro Exodus.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-0E2C65 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Metro Exodus" +--- + +# [[Metro Exodus]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Metro Exodus.md]] +--- diff --git a/AI/Microservices-Architecture-Bounded-Contexts.md b/AI/Microservices-Architecture-Bounded-Contexts.md new file mode 100644 index 00000000..5088915f --- /dev/null +++ b/AI/Microservices-Architecture-Bounded-Contexts.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-018DBB +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Microservices-Architecture-Bounded-Contexts" +--- + +# [[Microservices-Architecture-Bounded-Contexts]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Microservices-Architecture-Bounded-Contexts.md]] +--- diff --git a/AI/Microservices-Architecture-Type-Safety.md b/AI/Microservices-Architecture-Type-Safety.md new file mode 100644 index 00000000..c0fdea89 --- /dev/null +++ b/AI/Microservices-Architecture-Type-Safety.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E27CC2 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Microservices-Architecture-Type-Safety" +--- + +# [[Microservices-Architecture-Type-Safety]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Microservices-Architecture-Type-Safety.md]] +--- diff --git a/AI/Microservices-Communication-Patterns.md b/AI/Microservices-Communication-Patterns.md new file mode 100644 index 00000000..eeb134be --- /dev/null +++ b/AI/Microservices-Communication-Patterns.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-8E2D1A +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Microservices-Communication-Patterns" +--- + +# [[Microservices-Communication-Patterns]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Microservices-Communication-Patterns.md]] +--- diff --git a/AI/Mipmap.md b/AI/Mipmap.md new file mode 100644 index 00000000..64603128 --- /dev/null +++ b/AI/Mipmap.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-F5788A +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Mipmap" +--- + +# [[Mipmap]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Mipmap(또는 Mipmapping)은 거리 기반의 디테일 수준(LOD, Level of Detail) 샘플링을 위해 미리 계산된 다단계 텍스처 해상도 피라미드입니다 [1]. 텍스처 렌더링 시 발생하는 계단 현상(aliasing artifacts)을 제거하고, 화면상에 에셋이 매끄럽게 표시되도록 돕는 역할을 합니다 [1, 2]. 하지만 Mipmap을 저장하기 위해 추가적인 GPU 메모리 공간이 필요하며, 특정 최적화 기법(텍스처 아틀라스)과 결합할 때 텍스처 간 번짐 현상을 유발할 수 있다는 특징이 있습니다 [3, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +- **시각적 품질 향상 및 에일리어싱 방지:** 밉맵은 카메라와의 거리를 기준으로 텍스처의 해상도를 조절(LOD 샘플링)하기 위해 만들어집니다 [1]. 이를 통해 텍스처 처리 과정에서 나타나는 에일리어싱(Aliasing) 아티팩트 문제를 제거하여 3D 에셋 렌더링 시 부드러운 스케일링과 시각적 품질을 제공할 수 있습니다 [1, 2]. +- **메모리 오버헤드 증가:** 여러 해상도의 텍스처 버전을 함께 생성하여 보관해야 하므로 상당한 GPU 메모리 대역폭을 소비합니다 [4]. 예를 들어, 고해상도 텍스처를 적용한 단일 모델은 밉맵 데이터를 포함하기 전에도 256MB의 VRAM을 차지할 수 있으며, 밉맵 적용 시 메모리 용량 부담은 더 커집니다 [4]. +- **텍스처 아틀라스(Texture Atlas)의 경계 번짐(Edge Bleeding) 부작용:** 모델 최적화를 위해 여러 텍스처를 한 장으로 합치는 '텍스처 아틀라스' 기법을 사용할 때, 해상도가 낮아진 밉 레벨(lower mip levels)에서는 텍스처 필터링 중 인접한 텍스처 영역이 흐려지고 서로 섞이는 '에지 블리딩' 현상이 발생합니다 [3]. 이를 막기 위해 텍스처 사이에 여백(Padding)을 추가해야 하지만, 이는 결국 메모리 낭비를 초래합니다 [3]. +- **배열 텍스처(Array Textures)를 통한 해결:** 기존 아틀라스 방식의 한계를 극복하기 위해 배열 텍스처(Data Array Textures)를 도입하면, 레이어 간 교차 오염(cross-contamination) 없이 각 텍스처 레이어에 대해 올바른 밉맵을 온전하게 생성할 수 있습니다 [5]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Level of Detail (LOD)]], [[Texture Atlas]], [[Data Array Textures]], [[Aliasing]] +- **Projects/Contexts:** [[Three.js 최적화 파이프라인]], [[GPU 메모리 및 텍스처 압축]] +- **Contradictions/Notes:** 소스에 따르면 단일 텍스처 아틀라스 기법은 밉맵의 낮은 레벨(low mip levels)에서 텍스처 혼합 현상(블리딩)이라는 단점을 수반하지만 [3], 배열 텍스처(Array Textures) 기법을 사용하면 이러한 Mipmap 간섭 현상을 완전히 배제하고 네이티브 랩핑(wrapping)과 타일링(tiling)을 지원할 수 있습니다 [5]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Mipmap.md]] +--- diff --git a/AI/Mobile-App-Development.md b/AI/Mobile-App-Development.md new file mode 100644 index 00000000..13bbe0ae --- /dev/null +++ b/AI/Mobile-App-Development.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-C0F26C +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Mobile-App-Development" +--- + +# [[Mobile-App-Development]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Mobile-App-Development.md]] +--- diff --git a/AI/Model Collapse (모델 붕괴 현상).md b/AI/Model Collapse (모델 붕괴 현상).md new file mode 100644 index 00000000..b31ce0d1 --- /dev/null +++ b/AI/Model Collapse (모델 붕괴 현상).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-F2D3E0 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Model Collapse (모델 붕괴 현상)" +--- + +# [[Model Collapse (모델 붕괴 현상)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Model Collapse (모델 붕괴 현상).md]] +--- diff --git a/AI/Model Context Protocol (MCP).md b/AI/Model Context Protocol (MCP).md new file mode 100644 index 00000000..77120f81 --- /dev/null +++ b/AI/Model Context Protocol (MCP).md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-C8F96B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Model Context Protocol (MCP)" +--- + +# [[Model Context Protocol (MCP)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Model Context Protocol (MCP)은 Cursor, Claude Code, Windsurf, GitHub Copilot 등과 같은 AI 코딩 어시스턴트(AI 에이전트)를 분석 엔진과 직접 연결할 수 있도록 지원하는 프로토콜입니다 [1, 2]. 이 프로토콜을 통해 AI는 대화형 워크플로우 내에서 실시간으로 쿼리를 보내고 통제된 피드백을 받을 수 있습니다 [1, 3]. 결과적으로 AI를 활용한 생산성과 코드 품질 및 보안 사이의 간격을 메워주는 특수한 브릿지 역할을 수행합니다 [2, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +- **AI 에이전트와의 직접 통합**: MCP는 SonarQube MCP 서버와 같은 분석 도구를 Cursor, Claude Code, Windsurf 등의 AI 코딩 에이전트에 직접 연결하는 표준 방식을 제공합니다 [1]. +- **실시간 쿼리 및 분석 수행**: AI 어시스턴트는 MCP를 활용해 신뢰할 수 있는 분석 엔진과 실시간으로 상호작용합니다 [2, 3]. 이를 통해 AI는 코드 스니펫을 분석하고, Quality Gate 상태를 확인하며, 보안 핫스팟(Security Hotspots)을 즉각적으로 찾아낼 수 있습니다 [4]. +- **사전 코드 검토 및 워크플로우 최적화**: MCP를 통한 통합은 AI가 코드를 생성하는 과정에서 실시간으로 검토 및 개선이 이루어지도록 보장합니다 [3]. 이는 코드가 풀 리퀘스트(Pull Request) 단계에 도달하기 훨씬 전부터 작동하므로, 에이전틱(Agentic) 워크플로우를 최적화하고 안전한 코드 전달을 가능하게 합니다 [3]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[AI Agents]], [[Static Code Analysis]], [[Automated Code Review]] +- **Projects/Contexts:** [[SonarQube MCP Server]], [[Cursor]], [[Claude Code]], [[Windsurf]], [[GitHub Copilot]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. (제공된 소스에서는 주로 SonarQube 환경에서의 통합 사례를 통해서만 MCP가 설명되고 있으며, 프로토콜 자체의 심층적인 기술적 사양이나 다른 활용 사례에 대한 정보는 없습니다.) + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Model Context Protocol (MCP).md]] +--- diff --git a/AI/Model Predictive Control (MPC).md b/AI/Model Predictive Control (MPC).md new file mode 100644 index 00000000..531fd7be --- /dev/null +++ b/AI/Model Predictive Control (MPC).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-212A93 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Model Predictive Control (MPC)" +--- + +# [[Model Predictive Control (MPC)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Model Predictive Control (MPC).md]] +--- diff --git a/AI/Model Spec (모델 스펙 AI 행동 명세서).md b/AI/Model Spec (모델 스펙 AI 행동 명세서).md new file mode 100644 index 00000000..af612110 --- /dev/null +++ b/AI/Model Spec (모델 스펙 AI 행동 명세서).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-73F6B2 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Model Spec (모델 스펙 AI 행동 명세서)" +--- + +# [[Model Spec (모델 스펙 AI 행동 명세서)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Model Spec (모델 스펙, AI 행동 명세서).md]] +--- diff --git a/AI/Module Augmentation.md b/AI/Module Augmentation.md new file mode 100644 index 00000000..17a0440f --- /dev/null +++ b/AI/Module Augmentation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-43A3F8 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Module Augmentation" +--- + +# [[Module Augmentation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Module Augmentation.md]] +--- diff --git a/AI/Module-Augmentation.md b/AI/Module-Augmentation.md new file mode 100644 index 00000000..26baad29 --- /dev/null +++ b/AI/Module-Augmentation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-C5A5E7 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Module-Augmentation" +--- + +# [[Module-Augmentation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Module-Augmentation.md]] +--- diff --git a/AI/Module-Boundary-Enforcement.md b/AI/Module-Boundary-Enforcement.md new file mode 100644 index 00000000..1102bc0b --- /dev/null +++ b/AI/Module-Boundary-Enforcement.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-32A387 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Module-Boundary-Enforcement" +--- + +# [[Module-Boundary-Enforcement]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Module-Boundary-Enforcement.md]] +--- diff --git a/AI/Monetary Policy in Virtual Worlds.md b/AI/Monetary Policy in Virtual Worlds.md new file mode 100644 index 00000000..78ac73fd --- /dev/null +++ b/AI/Monetary Policy in Virtual Worlds.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-26E3C1 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Monetary Policy in Virtual Worlds" +--- + +# [[Monetary Policy in Virtual Worlds]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Monetary Policy in Virtual Worlds.md]] +--- diff --git a/AI/Monetary Policy.md b/AI/Monetary Policy.md new file mode 100644 index 00000000..4cec84e4 --- /dev/null +++ b/AI/Monetary Policy.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-97D263 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Monetary Policy" +--- + +# [[Monetary Policy]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Monetary Policy.md]] +--- diff --git a/AI/Monosemanticity (일의성).md b/AI/Monosemanticity (일의성).md new file mode 100644 index 00000000..c55e10a6 --- /dev/null +++ b/AI/Monosemanticity (일의성).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5B0FC9 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Monosemanticity (일의성)" +--- + +# [[Monosemanticity (일의성)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Monosemanticity (일의성).md]] +--- diff --git a/AI/Multi-Agent Debate (에이전트 간 토론 전략).md b/AI/Multi-Agent Debate (에이전트 간 토론 전략).md new file mode 100644 index 00000000..89f47783 --- /dev/null +++ b/AI/Multi-Agent Debate (에이전트 간 토론 전략).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A5AF0B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Multi-Agent Debate (에이전트 간 토론 전략)" +--- + +# [[Multi-Agent Debate (에이전트 간 토론 전략)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Multi-Agent Debate (에이전트 간 토론 전략).md]] +--- diff --git a/AI/Multi-Agent System (다중 에이전트 시스템).md b/AI/Multi-Agent System (다중 에이전트 시스템).md new file mode 100644 index 00000000..c6b0063f --- /dev/null +++ b/AI/Multi-Agent System (다중 에이전트 시스템).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-51D384 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Multi-Agent System (다중 에이전트 시스템)" +--- + +# [[Multi-Agent System (다중 에이전트 시스템)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Multi-Agent System (다중 에이전트 시스템).md]] +--- diff --git a/AI/Multi-Hop Reasoning (다중 홉 추론).md b/AI/Multi-Hop Reasoning (다중 홉 추론).md new file mode 100644 index 00000000..76c72a08 --- /dev/null +++ b/AI/Multi-Hop Reasoning (다중 홉 추론).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-411F75 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Multi-Hop Reasoning (다중 홉 추론)" +--- + +# [[Multi-Hop Reasoning (다중 홉 추론)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Multi-Hop Reasoning (다중 홉 추론).md]] +--- diff --git a/AI/Multimodal Sentiment Analysis.md b/AI/Multimodal Sentiment Analysis.md new file mode 100644 index 00000000..290bf024 --- /dev/null +++ b/AI/Multimodal Sentiment Analysis.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-DF5F90 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Multimodal Sentiment Analysis" +--- + +# [[Multimodal Sentiment Analysis]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Multimodal Sentiment Analysis.md]] +--- diff --git a/AI/Natural Language Processing (NLP) in Narrative.md b/AI/Natural Language Processing (NLP) in Narrative.md new file mode 100644 index 00000000..3f8d1dbb --- /dev/null +++ b/AI/Natural Language Processing (NLP) in Narrative.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B5A38A +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Natural Language Processing (NLP) in Narrative" +--- + +# [[Natural Language Processing (NLP) in Narrative]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Natural Language Processing (NLP) in Narrative.md]] +--- diff --git a/AI/Natural-Language-Processing.md b/AI/Natural-Language-Processing.md new file mode 100644 index 00000000..f5885d01 --- /dev/null +++ b/AI/Natural-Language-Processing.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-92B46C +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Natural-Language-Processing" +--- + +# [[Natural-Language-Processing]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Natural-Language-Processing.md]] +--- diff --git a/AI/Naughty Dog Development.md b/AI/Naughty Dog Development.md new file mode 100644 index 00000000..e4c74ae4 --- /dev/null +++ b/AI/Naughty Dog Development.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-45FC87 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Naughty Dog Development" +--- + +# [[Naughty Dog Development]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Naughty Dog Development.md]] +--- diff --git a/AI/NestJS-Architecture.md b/AI/NestJS-Architecture.md new file mode 100644 index 00000000..0b9a5e82 --- /dev/null +++ b/AI/NestJS-Architecture.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-641044 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - NestJS-Architecture" +--- + +# [[NestJS-Architecture]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/NestJS-Architecture.md]] +--- diff --git a/AI/Network Synchronization in Multiplayer Games.md b/AI/Network Synchronization in Multiplayer Games.md new file mode 100644 index 00000000..d21533ab --- /dev/null +++ b/AI/Network Synchronization in Multiplayer Games.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-DDB7C3 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Network Synchronization in Multiplayer Games" +--- + +# [[Network Synchronization in Multiplayer Games]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Network Synchronization in Multiplayer Games.md]] +--- diff --git a/AI/Neural-Symbolic-Integration.md b/AI/Neural-Symbolic-Integration.md new file mode 100644 index 00000000..b31e6e8c --- /dev/null +++ b/AI/Neural-Symbolic-Integration.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-86032B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Neural-Symbolic-Integration" +--- + +# [[Neural-Symbolic-Integration]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Neural-Symbolic-Integration.md]] +--- diff --git a/AI/Neuro-Symbolic-AI.md b/AI/Neuro-Symbolic-AI.md new file mode 100644 index 00000000..f9f71017 --- /dev/null +++ b/AI/Neuro-Symbolic-AI.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-3BA811 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Neuro-Symbolic-AI" +--- + +# [[Neuro-Symbolic-AI]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Neuro-Symbolic-AI.md]] +--- diff --git a/AI/Neurobiology-of-Reward.md b/AI/Neurobiology-of-Reward.md new file mode 100644 index 00000000..682ec0b7 --- /dev/null +++ b/AI/Neurobiology-of-Reward.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-C81C25 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Neurobiology-of-Reward" +--- + +# [[Neurobiology-of-Reward]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Neurobiology-of-Reward.md]] +--- diff --git a/AI/Neurodevelopmental Disorders.md b/AI/Neurodevelopmental Disorders.md new file mode 100644 index 00000000..c8416f7f --- /dev/null +++ b/AI/Neurodevelopmental Disorders.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-8D1E77 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Neurodevelopmental Disorders" +--- + +# [[Neurodevelopmental Disorders]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Neurodevelopmental Disorders.md]] +--- diff --git a/AI/Neuroeconomics.md b/AI/Neuroeconomics.md new file mode 100644 index 00000000..b0c4ef99 --- /dev/null +++ b/AI/Neuroeconomics.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9E20C8 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Neuroeconomics" +--- + +# [[Neuroeconomics]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Neuroeconomics.md]] +--- diff --git a/AI/Neuroergonomics.md b/AI/Neuroergonomics.md new file mode 100644 index 00000000..8bea9aee --- /dev/null +++ b/AI/Neuroergonomics.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-FA4D6C +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Neuroergonomics" +--- + +# [[Neuroergonomics]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Neuroergonomics.md]] +--- diff --git a/AI/Neuromuscular-Adaptation.md b/AI/Neuromuscular-Adaptation.md new file mode 100644 index 00000000..b31689d1 --- /dev/null +++ b/AI/Neuromuscular-Adaptation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6E8355 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Neuromuscular-Adaptation" +--- + +# [[Neuromuscular-Adaptation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Neuromuscular-Adaptation.md]] +--- diff --git a/AI/Neuromuscular-Control.md b/AI/Neuromuscular-Control.md new file mode 100644 index 00000000..958cac14 --- /dev/null +++ b/AI/Neuromuscular-Control.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-AAABCA +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Neuromuscular-Control" +--- + +# [[Neuromuscular-Control]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Neuromuscular-Control.md]] +--- diff --git a/AI/Neuropharmacology of Substance Use Disorders.md b/AI/Neuropharmacology of Substance Use Disorders.md new file mode 100644 index 00000000..1f0142ac --- /dev/null +++ b/AI/Neuropharmacology of Substance Use Disorders.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-8A9F4F +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Neuropharmacology of Substance Use Disorders" +--- + +# [[Neuropharmacology of Substance Use Disorders]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Neuropharmacology of Substance Use Disorders.md]] +--- diff --git a/AI/Neuroplasticity in Addiction.md b/AI/Neuroplasticity in Addiction.md new file mode 100644 index 00000000..b8df4c3d --- /dev/null +++ b/AI/Neuroplasticity in Addiction.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-623B58 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Neuroplasticity in Addiction" +--- + +# [[Neuroplasticity in Addiction]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Neuroplasticity in Addiction.md]] +--- diff --git a/AI/Neuroplasticity in Motor Learning.md b/AI/Neuroplasticity in Motor Learning.md new file mode 100644 index 00000000..a51d5a4b --- /dev/null +++ b/AI/Neuroplasticity in Motor Learning.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-C1E899 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Neuroplasticity in Motor Learning" +--- + +# [[Neuroplasticity in Motor Learning]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Neuroplasticity in Motor Learning.md]] +--- diff --git a/AI/Neuroplasticity-in-Motor-Learning.md b/AI/Neuroplasticity-in-Motor-Learning.md new file mode 100644 index 00000000..1e853588 --- /dev/null +++ b/AI/Neuroplasticity-in-Motor-Learning.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-AA0D20 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Neuroplasticity-in-Motor-Learning" +--- + +# [[Neuroplasticity-in-Motor-Learning]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Neuroplasticity-in-Motor-Learning.md]] +--- diff --git a/AI/Neuroprosthetics-Development.md b/AI/Neuroprosthetics-Development.md new file mode 100644 index 00000000..2c362e8a --- /dev/null +++ b/AI/Neuroprosthetics-Development.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-F99D73 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Neuroprosthetics-Development" +--- + +# [[Neuroprosthetics-Development]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Neuroprosthetics-Development.md]] +--- diff --git a/AI/Neuropsychiatric Disorders.md b/AI/Neuropsychiatric Disorders.md new file mode 100644 index 00000000..b7ac7c1c --- /dev/null +++ b/AI/Neuropsychiatric Disorders.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-57B916 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Neuropsychiatric Disorders" +--- + +# [[Neuropsychiatric Disorders]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Neuropsychiatric Disorders.md]] +--- diff --git a/AI/Neuropsychology.md b/AI/Neuropsychology.md new file mode 100644 index 00000000..128dae8e --- /dev/null +++ b/AI/Neuropsychology.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A63619 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Neuropsychology" +--- + +# [[Neuropsychology]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Neuropsychology.md]] +--- diff --git a/AI/Neurorehabilitation after Stroke.md b/AI/Neurorehabilitation after Stroke.md new file mode 100644 index 00000000..f18910a9 --- /dev/null +++ b/AI/Neurorehabilitation after Stroke.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-EB034B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Neurorehabilitation after Stroke" +--- + +# [[Neurorehabilitation after Stroke]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Neurorehabilitation after Stroke.md]] +--- diff --git a/AI/Neurorehabilitation-Post-Stroke.md b/AI/Neurorehabilitation-Post-Stroke.md new file mode 100644 index 00000000..944b5277 --- /dev/null +++ b/AI/Neurorehabilitation-Post-Stroke.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-DBB9EB +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Neurorehabilitation-Post-Stroke" +--- + +# [[Neurorehabilitation-Post-Stroke]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Neurorehabilitation-Post-Stroke.md]] +--- diff --git a/AI/No Mans Sky (Large-scale planetary generation).md b/AI/No Mans Sky (Large-scale planetary generation).md new file mode 100644 index 00000000..91e0bf20 --- /dev/null +++ b/AI/No Mans Sky (Large-scale planetary generation).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-3EC0AE +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - No Mans Sky (Large-scale planetary generation)" +--- + +# [[No Mans Sky (Large-scale planetary generation)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/No Man's Sky (Large-scale planetary generation).md]] +--- diff --git a/AI/No Mans Sky.md b/AI/No Mans Sky.md new file mode 100644 index 00000000..e7c2967e --- /dev/null +++ b/AI/No Mans Sky.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D9AC35 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - No Mans Sky" +--- + +# [[No Mans Sky]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/No Man's Sky.md]] +--- diff --git a/AI/Nodejs 메모리 누수 분석.md b/AI/Nodejs 메모리 누수 분석.md new file mode 100644 index 00000000..c0aadc5c --- /dev/null +++ b/AI/Nodejs 메모리 누수 분석.md @@ -0,0 +1,41 @@ +--- +id: P-REINFORCE-AUTO-92E707 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Nodejs 메모리 누수 분석" +--- + +# [[Nodejs 메모리 누수 분석]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Node.js의 메모리 누수는 가비지 컬렉션(GC)되어야 할 객체들이 클로저, 이벤트 리스너, 타이머 등의 루트(Root) 객체에 계속 참조되어 메모리에서 해제되지 않을 때 발생합니다 [1, 2]. Node.js는 단일 프로세스로 장기간 실행되는 특성이 있어, 누수된 참조는 모든 요청에 걸쳐 지속적으로 축적되며 결국 V8 힙 한계에 도달하여 OOM(Out-Of-Memory) 크래시를 유발합니다 [3, 4]. 이 문제를 해결하기 위해서는 힙 스냅샷과 메모리 할당 타임라인 도구를 활용하여, 지속적으로 증가하는 객체의 참조 경로(Retaining Path)를 추적하고 참조를 끊어 GC가 정상 작동하도록 근본적인 원인을 수정해야 합니다 [5-7]. + +## 📖 구조화된 지식 (Synthesized Content) +* **메모리 누수 패턴 및 주요 원인** + * 정상적인 Node.js 프로세스는 트래픽 발생 시 힙 메모리가 증가하고 가비지 컬렉션(GC) 이후 원래 수준으로 회복되는 톱니바퀴(Sawtooth) 패턴을 보입니다 [8]. 그러나 누수가 발생하면 GC가 동작한 후에도 메모리가 떨어지지 않고 지속적으로 상승하는 래칫(Ratchet) 패턴이 나타납니다 [7, 8]. + * 프로덕션 환경에서 가장 흔히 발생하는 7가지 누수 패턴은 다음과 같습니다: EventEmitter 리스너 누적(가장 흔함), 클로저(Closure) 변수의 의도치 않은 상태 유지, 제한 없이 증가하는 인메모리 캐시, 정리되지 않은 타이머(Timer) 및 인터벌, 복잡한 순환 참조, 닫히지 않은 스트림(Stream) 및 소켓, 그리고 AsyncLocalStorage 컨텍스트 누수입니다 [9-12]. + +* **탐지 및 분석 도구** + * **힙 스냅샷(Heap Snapshots):** 의심스러운 작업을 수행하기 전(Baseline)과 부하 발생 후를 나누어 스냅샷을 촬영하고, 이 두 스냅샷 사이에서 할당된 후 해제되지 않은 객체들("Objects allocated between snapshots")을 비교하여 누수 후보를 도출합니다 [6, 13]. 브라우저나 프론트엔드 앱 분석 시 일회성 할당에 의한 오탐지를 필터링하기 위해 스냅샷을 3번 캡처하여 비교하는 3-스냅샷 기법(Three-snapshot technique)이 신뢰성이 높습니다 [14]. + * **할당 타임라인(Allocation Timeline):** Chrome DevTools를 `--inspect` 플래그와 함께 연결하여 시간에 따른 메모리 할당 기록을 수집합니다 [5, 8]. GC 이후에도 회수되지 않아 파란색 막대로 남은 객체들을 통해 어떤 함수나 생성자가 누수를 유발하는지 추적할 수 있습니다 [8, 15-17]. + * **프로그램 및 패키지 기반 모니터링:** `process.memoryUsage()`를 이용해 RSS(Resident Set Size) 및 `heapUsed` 값의 지속적 증가를 확인하거나 [18, 19], `heapdump`, `clinic.js` 등의 도구를 사용해 자동화된 분석으로 메모리 누수 발생 위치를 식별할 수 있습니다 [5, 9]. + +* **진단 로깅 및 GC 튜닝** + * `--trace-gc` 플래그를 적용하면 콘솔에 V8 엔진의 GC 이벤트(Scavenge 및 Mark-sweep) 발생 시간, 빈도, 회수된 메모리양 등이 기록되어 애플리케이션의 메모리 부족 현상과 누수를 파악할 수 있습니다 [20-23]. + * 만약 V8의 힙 영역 중 장기 생존 객체가 저장되는 공간에 큰 메모리가 필요하다면, `--max-old-space-size` 명령줄 플래그로 Old Space 크기를 늘려 애플리케이션 충돌과 과도한 GC 지연을 방지할 수 있습니다 [24]. 반대로, 짧은 주기의 객체 생성이 많은 경우에는 `--max-semi-space-size` 플래그로 New Space를 늘려 마이너 GC 주기를 조절할 수 있습니다 [25]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[가비지 컬렉션 (Garbage Collection)]], [[V8 엔진 (V8 Engine)]], [[힙 스냅샷 (Heap Snapshots)]], [[Mark-Sweep]] +- **Projects/Contexts:** [[Chrome DevTools]], [[clinic.js]], [[Node.js Production Monitoring]] +- **Contradictions/Notes:** 소스에 따르면 모던 프론트엔드 환경의 브라우저에서는 메모리 누수의 가장 주요한 원인(1위)으로 SPA(Single Page Application) 경로 전환을 꼽고 있지만 [26], Node.js 프로덕션 서버 환경에서는 EventEmitter 리스너 누적이 가장 흔한 메모리 누수 패턴으로 언급되는 차이가 있습니다 [9]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Node.js 메모리 누수 분석.md]] +--- diff --git a/AI/Nodejs 프로덕션 메모리 누수 진단.md b/AI/Nodejs 프로덕션 메모리 누수 진단.md new file mode 100644 index 00000000..d1e15e6f --- /dev/null +++ b/AI/Nodejs 프로덕션 메모리 누수 진단.md @@ -0,0 +1,50 @@ +--- +id: P-REINFORCE-AUTO-AF2866 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Nodejs 프로덕션 메모리 누수 진단" +--- + +# [[Nodejs 프로덕션 메모리 누수 진단]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Node.js 프로덕션 메모리 누수는 단일 프로세스로 장기 실행되는 Node.js의 특성상 참조가 누적되어 V8 가비지 컬렉터(GC)가 메모리를 회수할 수 없게 되면서 발생합니다 [1, 2]. 정상적인 프로세스와 달리 가비지 컬렉션 이후에도 힙 메모리 사용량이 원래 수준으로 떨어지지 않고 계단식(Ratchet)으로 상승하는 패턴을 보이는 것이 주된 특징입니다 [3, 4]. 이를 진단하고 해결하려면 힙 스냅샷 비교, 힙 프로파일링, 메모리를 계속 참조하고 있는 요인(Retainer)을 추적하는 체계적인 과정이 필수적입니다 [4, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +**누수의 원리와 증상 (Principles and Symptoms)** +- Node.js 메모리 누수는 객체가 "유실"되는 것이 아니라 코드 어딘가에서 계속 참조되고 있어 GC가 도달할 수 없는 객체로 식별하지 못해 발생합니다 [2, 6]. +- 정상적인 프로세스는 트래픽 발생 시 힙이 증가하고 GC 이후 기준선으로 떨어지는 '톱니바퀴(Sawtooth)' 패턴을 보이지만, 누수가 발생하면 GC 후에도 힙 사용량이 떨어지지 않는 '계단식(Ratchet)' 패턴을 나타냅니다 [3, 4]. +- 주요 증상으로는 점진적인 메모리 증가, 잦고 긴 GC 일시 정지 시간, 응답 시간 저하, 그리고 궁극적으로 OOM(Out of Memory) 충돌 현상이 있습니다 [7]. + +**핵심 진단 도구 (Core Diagnostic Tools)** +- **`--inspect` 및 Chrome DevTools:** 서버를 `--inspect` 플래그로 실행하여 Chrome에 연결한 후, 메모리 패널에서 힙 스냅샷을 캡처해 스냅샷 사이에 할당된 객체를 비교 분석할 수 있습니다 [3, 8, 9]. +- **`heapdump`:** 프로덕션 환경(Chrome DevTools 접근이 어려운 경우)에서 프로그래밍 방식으로 힙 스냅샷을 기록하여 로컬로 다운로드 및 분석할 수 있게 돕습니다 [8, 10, 11]. +- **`--heap-prof` 플래그:** 외부 패키지 없이 Node.js 자체에 내장된 V8 네이티브 프로파일링을 활성화하여 함수 수준의 할당 세부 내역을 파악할 수 있습니다 [12]. +- **`process.memoryUsage()`:** RSS(Resident Set Size), heapTotal, heapUsed 값을 지속적으로 확인하여 프로그래밍 방식으로 힙의 점진적인 증가 여부를 감시할 수 있습니다 [13, 14]. + +**일반적인 누수 발생 패턴 (Common Leak Patterns)** +- **이벤트 리스너 누적 (EventEmitter Listener Accumulation):** 요청 핸들러 내에서 리스너를 추가하고 제거하지 않으면 참조가 계속 누적되며, 프로덕션 환경에서는 보통 `MaxListenersExceededWarning` 경고가 명확한 누수 신호로 간주됩니다 [5, 11, 15]. +- **클로저 변수 유지 (Closure Variable Retention):** 비동기 체인이나 타이머 콜백 등에서 대규모 데이터(예: 전체 요청/응답 객체)를 캡처하는 클로저를 사용하여 객체 수명이 불필요하게 늘어나는 경우입니다 [15-17]. +- **무제한 캐시 증가 (Unbounded Cache Growth):** 최대 크기나 제한을 두지 않은 인메모리 캐시 변수에 객체가 무한정 쌓이는 패턴입니다 [15]. +- **타이머/관찰자 및 소켓 누수:** `clearInterval` 처리되지 않은 `setInterval` 콜백이나, 데이터 송수신 후 닫히지 않은 스트림/소켓이 버퍼와 네트워크 핸들을 점유하여 메모리를 해제하지 못하게 만듭니다 [17, 18]. + +**진단 및 해결 워크플로우 (Diagnosis & Fix Workflow)** +- 모니터링을 통해 메모리의 계단식 증가 패턴(Ratchet)을 확인한 뒤 베이스라인 힙 스냅샷을 캡처합니다 [4]. +- 트래픽 부하를 유발하는 행동을 실행한 후 두 번째 스냅샷을 캡처하고 두 스냅샷을 비교합니다 [4, 19]. +- 비교 결과에서 유출된 객체를 찾은 후, 해당 객체를 유지하고 있는 리테이너(Retainer) 트리를 GC 루트까지 따라가 코드를 수정하고, 수정을 확인하기 위해 테스트를 반복합니다 [4, 20]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[V8 Garbage Collection]], [[Heap Snapshot]], [[Retaining Path]], [[process.memoryUsage()]] +- **Projects/Contexts:** [[Node.js Production Environment]], [[Chrome DevTools Memory Panel]] +- **Contradictions/Notes:** 일반적으로 누수 후보를 찾기 위해 트래픽 전/후 두 개의 힙 스냅샷을 비교하는 방법이 자주 소개되지만, 일회성 메모리 할당으로 인한 오탐(False Positive)을 걸러내기 위해서는 세 개의 스냅샷을 연달아 캡처해 비교하는 "Three-snapshot technique" 기법이 가장 신뢰할 수 있는 수단이라는 점을 유의해야 합니다 [19]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Node.js 프로덕션 메모리 누수 진단.md]] +--- diff --git a/AI/Nodejs 프로덕션 메모리 문제 해결.md b/AI/Nodejs 프로덕션 메모리 문제 해결.md new file mode 100644 index 00000000..0a63f4bd --- /dev/null +++ b/AI/Nodejs 프로덕션 메모리 문제 해결.md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-490C25 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Nodejs 프로덕션 메모리 문제 해결" +--- + +# [[Nodejs 프로덕션 메모리 문제 해결]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Node.js는 단일 프로세스로 장기간 실행되는 런타임이므로, 코드 내에서 참조가 제대로 해제되지 않은 객체가 누적되면 V8 힙(Heap) 메모리가 점진적으로 고갈되어 궁극적으로 OOM(Out of Memory) 크래시가 발생할 수 있습니다 [1-3]. 프로덕션 환경에서의 메모리 문제 해결은 정상적인 가비지 컬렉션(GC) 패턴과 누수 패턴을 구분하고, 타임라인 및 힙 스냅샷 분석을 통해 누수 객체의 보존 경로(Retaining Path)를 추적하여 근본 원인을 찾아 수정하는 체계적인 과정을 의미합니다 [4-8]. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Garbage Collection (V8)]], [[Heap Snapshot]], [[Memory Leak Patterns]], [[Orinoco Garbage Collector]] +- **Projects/Contexts:** [[Chrome DevTools Memory Panel]], [[Node.js Production Monitoring]] +- **Contradictions/Notes:** 가비지 컬렉션(GC)은 애플리케이션의 힙 메모리를 정리해주지만, 메인 스레드 실행을 멈추는 'stop-the-world' 특성을 지닙니다. V8은 Orinoco 프로젝트를 통해 병렬(Parallel), 점진적(Incremental), 동시적(Concurrent) 처리 기법을 도입하여 지연(Pause) 시간을 최소화했지만 [28-32], 개발자가 `--expose-gc`를 활성화하여 `global.gc()`를 수동으로 강제 호출하는 것은 시스템 성능을 악화시킬 수 있으므로 매우 주의해서 사용해야 한다고 경고하고 있습니다 [33, 34]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Node.js 프로덕션 메모리 문제 해결.md]] +--- diff --git a/AI/Nodejs 프로덕션 메모리 병목 분석.md b/AI/Nodejs 프로덕션 메모리 병목 분석.md new file mode 100644 index 00000000..a82f2a42 --- /dev/null +++ b/AI/Nodejs 프로덕션 메모리 병목 분석.md @@ -0,0 +1,53 @@ +--- +id: P-REINFORCE-AUTO-76BE33 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Nodejs 프로덕션 메모리 병목 분석" +--- + +# [[Nodejs 프로덕션 메모리 병목 분석]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Node.js는 단일 프로세스로 장기간 실행되는 특성이 있어, 더 이상 필요하지 않은 객체의 참조가 유지될 경우 V8 힙(Heap) 메모리가 해제되지 않고 지속적으로 누적되는 메모리 누수 현상이 발생할 수 있습니다 [1, 2]. 프로덕션 환경에서 이러한 누수는 가비지 컬렉션(GC)의 오버헤드를 늘려 애플리케이션의 응답 지연이나 OOM(Out of Memory) 크래시 같은 심각한 병목 현상을 유발합니다 [3]. 이를 분석하고 해결하기 위해 개발자는 `--trace-gc` 같은 실행 플래그, `heapdump`를 통한 힙 스냅샷(Heap Snapshot) 획득, 그리고 크롬 개발자 도구(Chrome DevTools) 등을 활용하여 지속적으로 증가하는 객체와 이를 잡아두는 유지 경로(Retaining Path)를 추적해야 합니다 [4-6]. + +## 📖 구조화된 지식 (Synthesized Content) +* **V8 메모리 구조와 가비지 컬렉션(GC) 메커니즘** + Node.js의 기반인 V8 엔진은 동적 데이터를 **힙(Heap) 공간**에 할당하며, 대부분의 객체는 짧은 수명을 가진다는 '세대별 가설(Generational Hypothesis)'을 기반으로 설계되었습니다 [7-9]. + * **New Space (Young Generation):** 새롭게 생성된 객체가 할당되는 공간으로, 꽉 차면 빠르게 작동하는 **스캐빈지(Scavenge, Minor GC)** 알고리즘이 발생해 불필요한 객체를 정리하고 살아남은 객체를 옮깁니다 [10-13]. + * **Old Space:** 스캐빈지 과정을 여러 번 통과한 수명이 긴 객체들이 승격(Promotion)되어 머무는 공간입니다 [9, 10, 14]. 이곳은 **Mark-Sweep-Compact (Major GC)** 알고리즘이 작동하며 메모리 파편화를 줄이고 남은 공간을 확보하지만, 스캐빈지에 비해 실행 비용(오버헤드)이 큽니다 [15, 16]. + +* **메모리 병목 및 누수의 주요 증상과 패턴** + 건강한 프로세스는 GC가 일어날 때마다 메모리 사용량이 다시 줄어드는 **톱니바퀴(Sawtooth)** 패턴을 보이지만, 메모리 누수가 발생하면 할당량이 줄어들지 않고 계속 증가하는 **라쳇(Ratchet)** 패턴이 관찰됩니다 [4]. Node.js 환경에서 주로 발생하는 **7가지 주요 누수 패턴**은 다음과 같습니다 [17-19]: + 1. **EventEmitter 리스너 누적:** 이벤트 리스너를 계속 추가만 하고 제거하지 않아 발생하는 가장 흔한 누수로, `MaxListenersExceededWarning`이 발생하면 의심해야 합니다 [17, 18]. + 2. **클로저(Closure) 변수 유지:** 요청/응답 객체 등 거대한 변수가 클로저에 의해 캡처된 상태로 요청 수명주기 이후에도 남아있는 경우입니다 [18]. + 3. **무제한 캐시 증식:** LRU와 같은 크기 제한 로직이 없는 인메모리 캐시를 사용할 때 발생합니다 [18]. + 4. **타이머 누수:** `clearInterval` 처리 없이 `setInterval`이 계속 실행되며 클로저 내부 객체의 GC를 방해합니다 [19]. + 5. **복잡한 순환 참조:** C++ 네이티브 바인딩 또는 잘못 사용된 `WeakRef`와 결합한 복잡한 순환 참조가 GC를 방해할 수 있습니다 [19]. + 6. **종료되지 않은 스트림/소켓:** `.destroy()` 처리되지 않은 스트림이 버퍼와 네트워크 핸들을 점유합니다 [19]. + 7. **`AsyncLocalStorage` 컨텍스트 누수:** 저장소가 적절한 클린업 없이 과도하게 커지는 경우입니다 [19]. + +* **프로덕션 메모리 병목 진단 및 프로파일링 도구** + * **`process.memoryUsage()` 모니터링:** `rss`(상주 집합 크기), `heapTotal`, `heapUsed` 메트릭을 추적하여 힙 사용량이 지속해서 증가하는지 감시할 수 있습니다 [20, 21]. + * **GC 로그 추적 (`--trace-gc`):** 이 플래그를 활성화하면 Scavenge와 Mark-Sweep 이벤트의 발생 빈도와 소요 시간, 회수된 메모리양을 확인할 수 있습니다 [22, 23]. 두 GC 사이의 간격보다 GC 처리에 걸리는 시간이 더 크다면 심각한 메모리 병목을 겪고 있는 것입니다 [24]. + * **힙 스냅샷(Heap Snapshot) 분석:** 운영 서버에서는 `heapdump` 패키지 등으로 스냅샷을 생성하거나 로드 테스트 시 `--inspect` 플래그를 사용해 **크롬 개발자 도구(Chrome DevTools)**와 연결할 수 있습니다 [4, 5, 17]. 개발자 도구의 '할당 타임라인(Allocation timeline)'을 통해 GC 후에도 남아있는 파란색 막대를 찾고, 스냅샷 비교(Comparison view) 기능을 사용하여 누수된 객체와 해당 객체가 참조를 유지하고 있는 경로(Retainers tree)를 짚어낼 수 있습니다 [25-30]. + +* **메모리 튜닝 플래그** + 메모리 누수 자체의 해결책은 아니지만, 프로세스 특성에 맞춰 V8 엔진의 메모리 한도를 조정함으로써 병목을 완화할 수 있습니다 [31]. + * `--max-old-space-size`: 롱 폴링이나 캐시 등 영구적인 데이터가 많은 앱에서 Old Space의 크기 제한(기본 제약)을 늘릴 때 사용합니다 [31]. + * `--max-semi-space-size`: 초당 요청 수가 많아 수명이 짧은 임시 객체가 대량 생성되는 환경에서 New Space의 크기를 늘려 잦은 Minor GC 실행을 줄입니다 [32, 33]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[V8 가비지 컬렉션 (Garbage Collection)]], [[힙 스냅샷 (Heap Snapshot)]], [[메모리 누수 (Memory Leaks)]] +- **Projects/Contexts:** [[Chrome DevTools (크롬 개발자 도구)]], [[Node.js 모니터링 및 튜닝]] +- **Contradictions/Notes:** 애플리케이션 내에서 수동으로 GC를 제어하기 위해 `--expose-gc` 플래그를 켜고 `global.gc()`를 호출할 수 있지만, 이 기능은 V8의 자동 가비지 컬렉션을 비활성화하지는 않습니다. 오히려 수동 호출의 남용은 애플리케이션의 응답 속도 등 전체적인 성능에 부정적인 영향을 미칠 수 있으므로 주의해서 사용해야 한다고 소스는 경고합니다 [34, 35]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Node.js 프로덕션 메모리 병목 분석.md]] +--- diff --git a/AI/Nodejs-Global-Namespace-Augmentation.md b/AI/Nodejs-Global-Namespace-Augmentation.md new file mode 100644 index 00000000..d761ba5f --- /dev/null +++ b/AI/Nodejs-Global-Namespace-Augmentation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D512F0 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Nodejs-Global-Namespace-Augmentation" +--- + +# [[Nodejs-Global-Namespace-Augmentation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Node.js-Global-Namespace-Augmentation.md]] +--- diff --git a/AI/Nominal-Typing-in-TypeScript.md b/AI/Nominal-Typing-in-TypeScript.md new file mode 100644 index 00000000..723e9eae --- /dev/null +++ b/AI/Nominal-Typing-in-TypeScript.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-C4D501 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Nominal-Typing-in-TypeScript" +--- + +# [[Nominal-Typing-in-TypeScript]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Nominal-Typing-in-TypeScript.md]] +--- diff --git a/AI/Non-Photorealistic-Rendering-in-Level-Design.md b/AI/Non-Photorealistic-Rendering-in-Level-Design.md new file mode 100644 index 00000000..f61f750d --- /dev/null +++ b/AI/Non-Photorealistic-Rendering-in-Level-Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-7D2198 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Non-Photorealistic-Rendering-in-Level-Design" +--- + +# [[Non-Photorealistic-Rendering-in-Level-Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Non-Photorealistic-Rendering-in-Level-Design.md]] +--- diff --git a/AI/Nuclear Deterrence Models.md b/AI/Nuclear Deterrence Models.md new file mode 100644 index 00000000..e8e4ec47 --- /dev/null +++ b/AI/Nuclear Deterrence Models.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D14EE1 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Nuclear Deterrence Models" +--- + +# [[Nuclear Deterrence Models]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Nuclear Deterrence Models.md]] +--- diff --git a/AI/Nutritional-Biochemistry.md b/AI/Nutritional-Biochemistry.md new file mode 100644 index 00000000..540161da --- /dev/null +++ b/AI/Nutritional-Biochemistry.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-FFA78C +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Nutritional-Biochemistry" +--- + +# [[Nutritional-Biochemistry]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Nutritional-Biochemistry.md]] +--- diff --git a/AI/OWA vs CWA (개방 세계 vs 폐쇄 세계 가정).md b/AI/OWA vs CWA (개방 세계 vs 폐쇄 세계 가정).md new file mode 100644 index 00000000..dd87be04 --- /dev/null +++ b/AI/OWA vs CWA (개방 세계 vs 폐쇄 세계 가정).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-BB45FB +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - OWA vs CWA (개방 세계 vs 폐쇄 세계 가정)" +--- + +# [[OWA vs CWA (개방 세계 vs 폐쇄 세계 가정)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/OWA vs CWA (개방 세계 vs 폐쇄 세계 가정).md]] +--- diff --git a/AI/Object Pooling (가비지 컬렉션 최적화).md b/AI/Object Pooling (가비지 컬렉션 최적화).md new file mode 100644 index 00000000..0e10309f --- /dev/null +++ b/AI/Object Pooling (가비지 컬렉션 최적화).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-345FBB +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Object Pooling (가비지 컬렉션 최적화)" +--- + +# [[Object Pooling (가비지 컬렉션 최적화)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Object Pooling (가비지 컬렉션 최적화).md]] +--- diff --git a/AI/Object-Oriented-Design-Patterns.md b/AI/Object-Oriented-Design-Patterns.md new file mode 100644 index 00000000..efa2a158 --- /dev/null +++ b/AI/Object-Oriented-Design-Patterns.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A48A29 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Object-Oriented-Design-Patterns" +--- + +# [[Object-Oriented-Design-Patterns]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Object-Oriented-Design-Patterns.md]] +--- diff --git a/AI/Objectivism.md b/AI/Objectivism.md new file mode 100644 index 00000000..c56cc9dd --- /dev/null +++ b/AI/Objectivism.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-AAD455 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Objectivism" +--- + +# [[Objectivism]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Objectivism.md]] +--- diff --git a/AI/Occupational-Therapy.md b/AI/Occupational-Therapy.md new file mode 100644 index 00000000..7804468a --- /dev/null +++ b/AI/Occupational-Therapy.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5178EE +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Occupational-Therapy" +--- + +# [[Occupational-Therapy]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Occupational-Therapy.md]] +--- diff --git a/AI/Okami-Ink-Wash-Aesthetics.md b/AI/Okami-Ink-Wash-Aesthetics.md new file mode 100644 index 00000000..b8d99039 --- /dev/null +++ b/AI/Okami-Ink-Wash-Aesthetics.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-442A85 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Okami-Ink-Wash-Aesthetics" +--- + +# [[Okami-Ink-Wash-Aesthetics]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Okami-Ink-Wash-Aesthetics.md]] +--- diff --git a/AI/Olympic-Training-Cycles.md b/AI/Olympic-Training-Cycles.md new file mode 100644 index 00000000..62fa65ee --- /dev/null +++ b/AI/Olympic-Training-Cycles.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-0425FA +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Olympic-Training-Cycles" +--- + +# [[Olympic-Training-Cycles]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Olympic-Training-Cycles.md]] +--- diff --git a/AI/Olympic-Training-Models.md b/AI/Olympic-Training-Models.md new file mode 100644 index 00000000..104ad800 --- /dev/null +++ b/AI/Olympic-Training-Models.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-89D68B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Olympic-Training-Models" +--- + +# [[Olympic-Training-Models]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Olympic-Training-Models.md]] +--- diff --git a/AI/Olympic-Training-Protocols.md b/AI/Olympic-Training-Protocols.md new file mode 100644 index 00000000..32faa7a0 --- /dev/null +++ b/AI/Olympic-Training-Protocols.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-553F3F +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Olympic-Training-Protocols" +--- + +# [[Olympic-Training-Protocols]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Olympic-Training-Protocols.md]] +--- diff --git a/AI/Ontology-Driven-Relevancy-Filtering.md b/AI/Ontology-Driven-Relevancy-Filtering.md new file mode 100644 index 00000000..8dda4c3d --- /dev/null +++ b/AI/Ontology-Driven-Relevancy-Filtering.md @@ -0,0 +1,35 @@ +--- +id: P-REINFORCE-AUTO-9231E5 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Ontology-Driven-Relevancy-Filtering" +--- + +# [[Ontology-Driven-Relevancy-Filtering]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 탐사 과정에서 발생할 수 있는 '주제 이탈(Topic Drift)'을 방지하기 위해 도입된 의미론적 제약 엔진입니다. 최초 입력된 'Root Topic'을 모든 하위 연구 단계에 주입하여, 추출된 연관 주제가 뿌리 지식과 얼마나 밀접한지를 LLM이 스스로 판단하게 합니다. + +## 📖 구조화된 지식 (Synthesized Content) +지능형 에이전트가 자율적으로 연구를 수행할 때 발생하는 가장 큰 위험은, 연관 주제를 타고 가다가 원래의 목적과 상관없는 지식(예: '프로그래밍'에서 시작해 '인류의 역사'로 끝남)을 수집하는 것입니다. 이를 해결하기 위해 다음의 '필터링 레이어'를 구축했습니다. + +1. **Root Topic Injection**: 미션 시작 시 입력된 주제를 전역 상태(`rootTopic`)로 고정하고, 모든 프롬프트에 "최초 주제인 [Root Topic]을 이해하는 데 반드시 필요한 정보만 수집하라"는 강력한 지침을 포함시킵니다. +2. **Strict Extraction Rule**: + - `[[Link]]` 추출 시, 해당 주제가 Root Topic과 70% 이상의 의미론적 연관성을 가질 때만 큐(Queue)에 추가하도록 LLM 가이드라인을 설정했습니다. + - 단순 나열(Tangential topics)은 수집 대상에서 제외합니다. +3. **Contextual Continuity**: 다음 태스크를 생성할 때 이전 태스크의 맥락을 `context` 변수로 전달하여, 지식의 연결성이 끊기지 않도록 관리합니다. + +이 메커니즘은 지식 그래프의 '확산' 대신 '심화'에 집중하게 하여, 사용자가 원하는 전문 지식의 밀도를 극대화합니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Autonomous-Loop-State-Machine]], [[Gemini-Based-Knowledge-Synthesis]] +- **Projects/Contexts:** [[Knowledge-Graph-Expansion]] +- **Contradictions/Notes:** 필터링이 너무 강력하면 지식의 '참신한 연결'이 저해될 수 있으므로, 프롬프트의 강도 조절이 중요합니다. +- Raw Source: [[00_Raw/2026-04-20/Ontology-Driven-Relevancy-Filtering.md]] +--- diff --git a/AI/Ontology-Engineering.md b/AI/Ontology-Engineering.md new file mode 100644 index 00000000..1fca48d7 --- /dev/null +++ b/AI/Ontology-Engineering.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-8A5DA4 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Ontology-Engineering" +--- + +# [[Ontology-Engineering]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Ontology-Engineering.md]] +--- diff --git a/AI/Ontology-Guided Knowledge Extraction.md b/AI/Ontology-Guided Knowledge Extraction.md new file mode 100644 index 00000000..d6fec33e --- /dev/null +++ b/AI/Ontology-Guided Knowledge Extraction.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-691936 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Ontology-Guided Knowledge Extraction" +--- + +# [[Ontology-Guided Knowledge Extraction]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Ontology-Guided Knowledge Extraction.md]] +--- diff --git a/AI/Opaque-Types.md b/AI/Opaque-Types.md new file mode 100644 index 00000000..08ac206d --- /dev/null +++ b/AI/Opaque-Types.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9E90BE +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Opaque-Types" +--- + +# [[Opaque-Types]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Opaque-Types.md]] +--- diff --git a/AI/Open-Access-Movement.md b/AI/Open-Access-Movement.md new file mode 100644 index 00000000..38b5aa35 --- /dev/null +++ b/AI/Open-Access-Movement.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-F5F460 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Open-Access-Movement" +--- + +# [[Open-Access-Movement]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Open-Access-Movement.md]] +--- diff --git a/AI/Operations-Research.md b/AI/Operations-Research.md new file mode 100644 index 00000000..f9476289 --- /dev/null +++ b/AI/Operations-Research.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-1BE13E +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Operations-Research" +--- + +# [[Operations-Research]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Operations-Research.md]] +--- diff --git a/AI/Organizational Psychology.md b/AI/Organizational Psychology.md new file mode 100644 index 00000000..13bcd8e2 --- /dev/null +++ b/AI/Organizational Psychology.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D27512 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Organizational Psychology" +--- + +# [[Organizational Psychology]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Organizational Psychology.md]] +--- diff --git a/AI/Outer Alignment vs Inner Alignment.md b/AI/Outer Alignment vs Inner Alignment.md new file mode 100644 index 00000000..204d9d99 --- /dev/null +++ b/AI/Outer Alignment vs Inner Alignment.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5C9E29 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Outer Alignment vs Inner Alignment" +--- + +# [[Outer Alignment vs Inner Alignment]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Outer Alignment vs Inner Alignment.md]] +--- diff --git a/AI/PCGML-Frameworks.md b/AI/PCGML-Frameworks.md new file mode 100644 index 00000000..0df8e152 --- /dev/null +++ b/AI/PCGML-Frameworks.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-294A76 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - PCGML-Frameworks" +--- + +# [[PCGML-Frameworks]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/PCGML-Frameworks.md]] +--- diff --git a/AI/PEFT (Parameter-Efficient Fine-Tuning).md b/AI/PEFT (Parameter-Efficient Fine-Tuning).md new file mode 100644 index 00000000..5bcadf1a --- /dev/null +++ b/AI/PEFT (Parameter-Efficient Fine-Tuning).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5B20CE +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - PEFT (Parameter-Efficient Fine-Tuning)" +--- + +# [[PEFT (Parameter-Efficient Fine-Tuning)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/PEFT (Parameter-Efficient Fine-Tuning).md]] +--- diff --git a/AI/PRM (Process Reward Model).md b/AI/PRM (Process Reward Model).md new file mode 100644 index 00000000..1fa2dd2a --- /dev/null +++ b/AI/PRM (Process Reward Model).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-58769F +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - PRM (Process Reward Model)" +--- + +# [[PRM (Process Reward Model)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/PRM (Process Reward Model).md]] +--- diff --git a/AI/PageSpeed Insights.md b/AI/PageSpeed Insights.md new file mode 100644 index 00000000..4c2b6dfa --- /dev/null +++ b/AI/PageSpeed Insights.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-FB1C7F +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - PageSpeed Insights" +--- + +# [[PageSpeed Insights]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> PageSpeed Insights는 웹 페이지의 로딩 속도와 사용자 경험 성능을 측정하고 개선을 위한 진단 결과를 제공하는 도구입니다. 이 도구의 진단 기능은 주로 Lighthouse에 의해 구동되며, 최근에는 INP(Interaction to Next Paint)를 비롯한 코어 웹 바이탈(Core Web Vitals) 지표를 통합하여 웹사이트의 전반적인 반응성을 평가합니다 [1-3]. + +## 📖 구조화된 지식 (Synthesized Content) +* **Lighthouse 기반의 진단 엔진:** PageSpeed Insights에서 제공하는 성능 진단 및 개선 권장 사항은 페이지 속도 측정 무료 도구인 Lighthouse의 코어 엔진을 기반으로 구동됩니다 [1]. +* **코어 웹 바이탈(Core Web Vitals) 평가:** PageSpeed Insights는 웹 성능을 평가하는 필수 측정 기준인 코어 웹 바이탈을 분석하는 주요 도구 중 하나입니다. 과거의 FID(First Input Delay) 지표를 대신하여, 이제는 사용자의 모든 상호작용 지연 시간을 포괄적으로 측정하는 INP(Interaction to Next Paint) 지표를 평가하도록 업데이트되었습니다 [2, 3]. +* **데이터 표출의 한계점:** PageSpeed Insights는 유용한 성능 지표를 제공하지만, 모든 세부 데이터를 직접 보여주지는 않습니다. 예를 들어, 로딩 속도 저하의 정확한 원인을 파악하는 데 유용한 크롬 사용자 경험 보고서(CrUX)의 LCP(Largest Contentful Paint) 하위 요소(subparts) 실제 사용자 데이터는 PageSpeed Insights 화면에 표출되지 않으며, 이를 확인하려면 CrUX Vis나 DebugBear와 같은 외부 도구를 이용해야 합니다 [4, 5]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Lighthouse]], [[Core Web Vitals]], [[Interaction to Next Paint (INP)]], [[Largest Contentful Paint (LCP)]] +- **Projects/Contexts:** [[Web Performance Optimization]], [[Chrome User Experience Report (CrUX)]] +- **Contradictions/Notes:** PageSpeed Insights는 웹 성능을 평가하는 공식적이고 강력한 도구이지만, LCP 하위 요소 데이터와 같은 특정 세부 지표는 도구 내에서 직접 확인할 수 없어 다른 시각화 도구의 병행 사용이 필요할 수 있습니다 [5]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/PageSpeed Insights.md]] +--- diff --git a/AI/Papers Please (Bureaucratic Simulation).md b/AI/Papers Please (Bureaucratic Simulation).md new file mode 100644 index 00000000..535ddd96 --- /dev/null +++ b/AI/Papers Please (Bureaucratic Simulation).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5F8F7B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Papers Please (Bureaucratic Simulation)" +--- + +# [[Papers Please (Bureaucratic Simulation)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Papers, Please (Bureaucratic Simulation).md]] +--- diff --git a/AI/Papers-Please.md b/AI/Papers-Please.md new file mode 100644 index 00000000..8772fdde --- /dev/null +++ b/AI/Papers-Please.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6CA77E +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Papers-Please" +--- + +# [[Papers-Please]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Papers-Please.md]] +--- diff --git a/AI/Pedestrian-Modeling.md b/AI/Pedestrian-Modeling.md new file mode 100644 index 00000000..b7b84f33 --- /dev/null +++ b/AI/Pedestrian-Modeling.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9FF9E8 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Pedestrian-Modeling" +--- + +# [[Pedestrian-Modeling]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Pedestrian-Modeling.md]] +--- diff --git a/AI/Perceptual-Motor-Skills.md b/AI/Perceptual-Motor-Skills.md new file mode 100644 index 00000000..b2ec6da6 --- /dev/null +++ b/AI/Perceptual-Motor-Skills.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-49DAC5 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Perceptual-Motor-Skills" +--- + +# [[Perceptual-Motor-Skills]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Perceptual-Motor-Skills.md]] +--- diff --git a/AI/Performance Management Systems.md b/AI/Performance Management Systems.md new file mode 100644 index 00000000..6b037f43 --- /dev/null +++ b/AI/Performance Management Systems.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-AE7AD2 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Performance Management Systems" +--- + +# [[Performance Management Systems]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Performance Management Systems.md]] +--- diff --git a/AI/Performance Psychology.md b/AI/Performance Psychology.md new file mode 100644 index 00000000..083c8146 --- /dev/null +++ b/AI/Performance Psychology.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D603B6 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Performance Psychology" +--- + +# [[Performance Psychology]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Performance Psychology.md]] +--- diff --git a/AI/Periodization-Theory.md b/AI/Periodization-Theory.md new file mode 100644 index 00000000..981d727a --- /dev/null +++ b/AI/Periodization-Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-02B992 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Periodization-Theory" +--- + +# [[Periodization-Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Periodization-Theory.md]] +--- diff --git a/AI/Personalization-Engines.md b/AI/Personalization-Engines.md new file mode 100644 index 00000000..a4de562a --- /dev/null +++ b/AI/Personalization-Engines.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A74003 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Personalization-Engines" +--- + +# [[Personalization-Engines]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Personalization-Engines.md]] +--- diff --git a/AI/Persuasive Games.md b/AI/Persuasive Games.md new file mode 100644 index 00000000..904a6bd2 --- /dev/null +++ b/AI/Persuasive Games.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-11DC29 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Persuasive Games" +--- + +# [[Persuasive Games]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Persuasive Games.md]] +--- diff --git a/AI/Phase Transition (위상 변이).md b/AI/Phase Transition (위상 변이).md new file mode 100644 index 00000000..b9b33041 --- /dev/null +++ b/AI/Phase Transition (위상 변이).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-F09281 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Phase Transition (위상 변이)" +--- + +# [[Phase Transition (위상 변이)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Phase Transition (위상 변이).md]] +--- diff --git a/AI/Phyllotaxis-Modeling.md b/AI/Phyllotaxis-Modeling.md new file mode 100644 index 00000000..c82e6797 --- /dev/null +++ b/AI/Phyllotaxis-Modeling.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-AAE034 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Phyllotaxis-Modeling" +--- + +# [[Phyllotaxis-Modeling]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Phyllotaxis-Modeling.md]] +--- diff --git a/AI/Physics-Based-Simulation.md b/AI/Physics-Based-Simulation.md new file mode 100644 index 00000000..cd3b7c18 --- /dev/null +++ b/AI/Physics-Based-Simulation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-1E824D +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Physics-Based-Simulation" +--- + +# [[Physics-Based-Simulation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Physics-Based-Simulation.md]] +--- diff --git a/AI/Platform Economics.md b/AI/Platform Economics.md new file mode 100644 index 00000000..bf00dc88 --- /dev/null +++ b/AI/Platform Economics.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-2B537F +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Platform Economics" +--- + +# [[Platform Economics]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Platform Economics.md]] +--- diff --git a/AI/Play-to-Earn (P2E) Economies.md b/AI/Play-to-Earn (P2E) Economies.md new file mode 100644 index 00000000..d532c567 --- /dev/null +++ b/AI/Play-to-Earn (P2E) Economies.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-43C745 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Play-to-Earn (P2E) Economies" +--- + +# [[Play-to-Earn (P2E) Economies]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Play-to-Earn (P2E) Economies.md]] +--- diff --git a/AI/Player-Agency.md b/AI/Player-Agency.md new file mode 100644 index 00000000..187ecedf --- /dev/null +++ b/AI/Player-Agency.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-058473 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Player-Agency" +--- + +# [[Player-Agency]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Player-Agency.md]] +--- diff --git a/AI/PolicyIQ.md b/AI/PolicyIQ.md new file mode 100644 index 00000000..1ec5711d --- /dev/null +++ b/AI/PolicyIQ.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-B7D200 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - PolicyIQ" +--- + +# [[PolicyIQ]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> PolicyIQ는 AI 네이티브 SAST(정적 애플리케이션 보안 테스트) 플랫폼인 Corgea에서 제공하는 기능입니다 [1, 2]. 팀이 자연어를 사용하여 비즈니스 및 환경적 맥락을 시스템에 제공할 수 있도록 지원하며, 스캐너는 이를 활용하여 취약점 탐지 정확도를 높이고 코드 수정안(fix) 생성 능력을 향상시킵니다 [2]. + +## 📖 구조화된 지식 (Synthesized Content) +* **자연어 기반 컨텍스트 제공:** PolicyIQ를 통해 보안 및 개발 팀은 복잡한 규칙 작성 대신 자연어(natural language)를 사용하여 자신들의 비즈니스 및 환경적 맥락을 쉽게 시스템에 전달할 수 있습니다 [2]. +* **맞춤형 탐지 및 해결책 생성:** PolicyIQ의 정책 기반 맥락화(Policy-driven contextualization) 기술을 통해, 보안 스캔 결과와 AI가 생성하는 코드 수정안이 조직의 실제 비즈니스 작동 방식에 맞게 조정(tailor)됩니다 [2]. +* **Corgea 스캐닝 엔진과의 결합:** 사후 분석에만 AI를 사용하는 다른 도구들과 달리, PolicyIQ는 코어 스캐닝 엔진 자체에 대형 언어 모델(LLM)을 사용하는 Corgea의 시스템 내에서 작동합니다 [1, 2]. 이를 통해 패턴 기반 탐지에만 의존할 때 발생하는 오탐(False Positives)을 줄이고, 비즈니스 로직 결함 검출과 같은 고차원적인 분석을 가능하게 합니다 [1, 2]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Corgea]], [[SAST]], [[Large Language Models (LLMs)]] +- **Projects/Contexts:** [[Corgea AI-native SAST Platform]] +- **Contradictions/Notes:** PolicyIQ의 심층적인 기술 작동 원리나 세부적인 설정 방법 등은 소스에 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/PolicyIQ.md]] +--- diff --git a/AI/Positive-Education.md b/AI/Positive-Education.md new file mode 100644 index 00000000..12189f01 --- /dev/null +++ b/AI/Positive-Education.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E6C93F +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Positive-Education" +--- + +# [[Positive-Education]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Positive-Education.md]] +--- diff --git a/AI/Post-structuralism.md b/AI/Post-structuralism.md new file mode 100644 index 00000000..5afc10e2 --- /dev/null +++ b/AI/Post-structuralism.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-49AC0F +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Post-structuralism" +--- + +# [[Post-structuralism]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Post-structuralism.md]] +--- diff --git a/AI/Precision Medicine Training.md b/AI/Precision Medicine Training.md new file mode 100644 index 00000000..4b7b1fd1 --- /dev/null +++ b/AI/Precision Medicine Training.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-95109A +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Precision Medicine Training" +--- + +# [[Precision Medicine Training]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Precision Medicine Training.md]] +--- diff --git a/AI/Predictive Maintenance (PdM).md b/AI/Predictive Maintenance (PdM).md new file mode 100644 index 00000000..1f069a3a --- /dev/null +++ b/AI/Predictive Maintenance (PdM).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E3A437 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Predictive Maintenance (PdM)" +--- + +# [[Predictive Maintenance (PdM)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Predictive Maintenance (PdM).md]] +--- diff --git a/AI/Predictive-Modeling.md b/AI/Predictive-Modeling.md new file mode 100644 index 00000000..4fe2ef56 --- /dev/null +++ b/AI/Predictive-Modeling.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-2ADF8A +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Predictive-Modeling" +--- + +# [[Predictive-Modeling]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Predictive-Modeling.md]] +--- diff --git a/AI/Predictive-Urban-Modeling.md b/AI/Predictive-Urban-Modeling.md new file mode 100644 index 00000000..5c59f978 --- /dev/null +++ b/AI/Predictive-Urban-Modeling.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-FBB603 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Predictive-Urban-Modeling" +--- + +# [[Predictive-Urban-Modeling]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Predictive-Urban-Modeling.md]] +--- diff --git a/AI/Prefrontal Cortex Dysfunction.md b/AI/Prefrontal Cortex Dysfunction.md new file mode 100644 index 00000000..4c94c5d7 --- /dev/null +++ b/AI/Prefrontal Cortex Dysfunction.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A5833A +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Prefrontal Cortex Dysfunction" +--- + +# [[Prefrontal Cortex Dysfunction]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Prefrontal Cortex Dysfunction.md]] +--- diff --git a/AI/Prefrontal-Cortex-Dysfunction.md b/AI/Prefrontal-Cortex-Dysfunction.md new file mode 100644 index 00000000..cb016890 --- /dev/null +++ b/AI/Prefrontal-Cortex-Dysfunction.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-832BDA +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Prefrontal-Cortex-Dysfunction" +--- + +# [[Prefrontal-Cortex-Dysfunction]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Prefrontal-Cortex-Dysfunction.md]] +--- diff --git a/AI/Probability Theory (Stochastic Processes).md b/AI/Probability Theory (Stochastic Processes).md new file mode 100644 index 00000000..be602db9 --- /dev/null +++ b/AI/Probability Theory (Stochastic Processes).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D3B247 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Probability Theory (Stochastic Processes)" +--- + +# [[Probability Theory (Stochastic Processes)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Probability Theory (Stochastic Processes).md]] +--- diff --git a/AI/Probability Theory.md b/AI/Probability Theory.md new file mode 100644 index 00000000..c5a1d2dd --- /dev/null +++ b/AI/Probability Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-28E2A8 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Probability Theory" +--- + +# [[Probability Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Probability Theory.md]] +--- diff --git a/AI/Procedural Content Generation (PCG) Balancing.md b/AI/Procedural Content Generation (PCG) Balancing.md new file mode 100644 index 00000000..c1d75687 --- /dev/null +++ b/AI/Procedural Content Generation (PCG) Balancing.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-231525 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Procedural Content Generation (PCG) Balancing" +--- + +# [[Procedural Content Generation (PCG) Balancing]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Procedural Content Generation (PCG) Balancing.md]] +--- diff --git a/AI/Procedural Content Generation (PCG).md b/AI/Procedural Content Generation (PCG).md new file mode 100644 index 00000000..bfbe8443 --- /dev/null +++ b/AI/Procedural Content Generation (PCG).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-8E0344 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Procedural Content Generation (PCG)" +--- + +# [[Procedural Content Generation (PCG)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Procedural Content Generation (PCG).md]] +--- diff --git a/AI/Procedural Content Generation via Machine Learning (PCGML).md b/AI/Procedural Content Generation via Machine Learning (PCGML).md new file mode 100644 index 00000000..241da341 --- /dev/null +++ b/AI/Procedural Content Generation via Machine Learning (PCGML).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-234400 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Procedural Content Generation via Machine Learning (PCGML)" +--- + +# [[Procedural Content Generation via Machine Learning (PCGML)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Procedural Content Generation via Machine Learning (PCGML).md]] +--- diff --git a/AI/Procedural Content Generation.md b/AI/Procedural Content Generation.md new file mode 100644 index 00000000..f932c1a9 --- /dev/null +++ b/AI/Procedural Content Generation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-7E4074 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Procedural Content Generation" +--- + +# [[Procedural Content Generation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Procedural Content Generation.md]] +--- diff --git a/AI/Procedural Rhetoric.md b/AI/Procedural Rhetoric.md new file mode 100644 index 00000000..d0cf89af --- /dev/null +++ b/AI/Procedural Rhetoric.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-DDAA23 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Procedural Rhetoric" +--- + +# [[Procedural Rhetoric]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Procedural Rhetoric.md]] +--- diff --git a/AI/Procedural-Content-Generation (PCG).md b/AI/Procedural-Content-Generation (PCG).md new file mode 100644 index 00000000..7c9046d6 --- /dev/null +++ b/AI/Procedural-Content-Generation (PCG).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D3BC93 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Procedural-Content-Generation (PCG)" +--- + +# [[Procedural-Content-Generation (PCG)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Procedural-Content-Generation (PCG).md]] +--- diff --git a/AI/Procedural-Content-Generation-via-Machine-Learning.md b/AI/Procedural-Content-Generation-via-Machine-Learning.md new file mode 100644 index 00000000..1ecca8bc --- /dev/null +++ b/AI/Procedural-Content-Generation-via-Machine-Learning.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-1F2C54 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Procedural-Content-Generation-via-Machine-Learning" +--- + +# [[Procedural-Content-Generation-via-Machine-Learning]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Procedural-Content-Generation-via-Machine-Learning.md]] +--- diff --git a/AI/Procedural-Content-Generation.md b/AI/Procedural-Content-Generation.md new file mode 100644 index 00000000..117c8a06 --- /dev/null +++ b/AI/Procedural-Content-Generation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-CE4240 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Procedural-Content-Generation" +--- + +# [[Procedural-Content-Generation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Procedural-Content-Generation.md]] +--- diff --git a/AI/Procedural-Texture-Generation.md b/AI/Procedural-Texture-Generation.md new file mode 100644 index 00000000..8db62eec --- /dev/null +++ b/AI/Procedural-Texture-Generation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5EABE9 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Procedural-Texture-Generation" +--- + +# [[Procedural-Texture-Generation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Procedural-Texture-Generation.md]] +--- diff --git a/AI/Process Supervision (과정 감독).md b/AI/Process Supervision (과정 감독).md new file mode 100644 index 00000000..ec4e8b4e --- /dev/null +++ b/AI/Process Supervision (과정 감독).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-DD3E5C +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Process Supervision (과정 감독)" +--- + +# [[Process Supervision (과정 감독)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Process Supervision (과정 감독).md]] +--- diff --git a/AI/Product-Types.md b/AI/Product-Types.md new file mode 100644 index 00000000..d67aaeb6 --- /dev/null +++ b/AI/Product-Types.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9999F1 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Product-Types" +--- + +# [[Product-Types]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Product-Types.md]] +--- diff --git a/AI/Prompt Injection (프롬프트 주입 공격).md b/AI/Prompt Injection (프롬프트 주입 공격).md new file mode 100644 index 00000000..3459a1b9 --- /dev/null +++ b/AI/Prompt Injection (프롬프트 주입 공격).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-755BF7 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Prompt Injection (프롬프트 주입 공격)" +--- + +# [[Prompt Injection (프롬프트 주입 공격)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Prompt Injection (프롬프트 주입 공격).md]] +--- diff --git a/AI/Prospect Theory.md b/AI/Prospect Theory.md new file mode 100644 index 00000000..5f97c1c9 --- /dev/null +++ b/AI/Prospect Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-95BA10 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Prospect Theory" +--- + +# [[Prospect Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Prospect Theory.md]] +--- diff --git a/AI/Prosthetic-Design-Optimization.md b/AI/Prosthetic-Design-Optimization.md new file mode 100644 index 00000000..11ce1de9 --- /dev/null +++ b/AI/Prosthetic-Design-Optimization.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-67AEBB +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Prosthetic-Design-Optimization" +--- + +# [[Prosthetic-Design-Optimization]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Prosthetic-Design-Optimization.md]] +--- diff --git a/AI/Psychophysiology.md b/AI/Psychophysiology.md new file mode 100644 index 00000000..78041d1f --- /dev/null +++ b/AI/Psychophysiology.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-DD660D +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Psychophysiology" +--- + +# [[Psychophysiology]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Psychophysiology.md]] +--- diff --git a/AI/Pull Request (PR) 워크플로우.md b/AI/Pull Request (PR) 워크플로우.md new file mode 100644 index 00000000..66f62ffb --- /dev/null +++ b/AI/Pull Request (PR) 워크플로우.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-47A74B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Pull Request (PR) 워크플로우" +--- + +# [[Pull Request (PR) 워크플로우]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Pull Request (PR) 워크플로우는 소프트웨어 개발 과정에서 코드 변경 사항이 메인 브랜치에 병합(merge)되기 전에 검토, 분석 및 승인되는 핵심 단계입니다 [1, 2]. 현대적인 PR 워크플로우는 인간 개발자의 수동 리뷰와 AI 기반 코드 리뷰, 정적 분석(SAST) 등의 자동화 도구를 결합한 하이브리드 방식을 채택합니다 [3, 4]. 이를 통해 보안 취약점과 버그를 조기에 발견하고 PR 처리 시간을 크게 단축하여 전체적인 소프트웨어 배포의 안정성과 속도를 향상시킵니다 [5, 6]. + +## 📖 구조화된 지식 (Synthesized Content) +- **자동화 검증 및 품질 게이트 (Quality Gates) 통합:** PR이 생성되면 즉각적으로 린터(Linter), 정적 애플리케이션 보안 테스트(SAST), AI 리뷰 봇 등이 병렬로 실행되어 코드 변경 사항을 스캔합니다 [1, 7, 8]. 이 과정에서 보안 취약점, 메모리 누수, 코드 스멜 등을 사전에 찾아내며, 조직에서 설정한 코드 품질 및 보안 기준(Quality Gates)을 통과하지 못하면 PR 병합이 시스템적으로 차단됩니다 [9-11]. +- **하이브리드 리뷰(Hybrid Review) 체계:** 가장 효율적인 PR 워크플로우는 기계와 인간의 장점을 결합하여 이루어집니다 [12]. 자동화 도구는 구문 오류, 스타일 위반, 알려진 취약점 등 기계적인 검증과 사전 필터링을 빠르게 처리하여 리뷰어의 피로도를 낮춥니다 [3, 13]. 인간 리뷰어는 도구가 파악할 수 없는 아키텍처 결정의 트레이드오프, 복잡한 비즈니스 로직, 서비스 간의 상호 작용 등 문맥 파악이 필수적인 고차원적 판단에 집중합니다 [3, 4, 14]. +- **경로 기반 라우팅과 필수 승인 (Path-Based Routing):** GitHub의 CODEOWNERS나 GitLab의 승인 규칙 같은 기능을 통해, PR 내에서 변경된 파일 경로(예: 결제 모듈, 인증 로직)에 따라 적절한 전문 팀(보안 팀, 시니어 개발자 등)에게 자동으로 리뷰 요청을 할당합니다 [15, 16]. 자동화된 검사를 통과하고 지정된 검토자의 필수 승인을 모두 확보해야만 코드 병합(Merge)이 활성화되는 다단계 아키텍처를 가집니다 [8, 16]. +- **PR 주기 시간(Cycle Time) 단축 및 지표 관리:** 자동화된 리뷰 어시스턴트를 도입한 조직은 PR 생성부터 병합까지 걸리는 'PR 사이클 타임'과 '첫 리뷰까지의 시간'을 최대 40%까지 단축할 수 있습니다 [3, 5]. 이는 검토 대기열(Backlog)이 쌓이는 병목 현상을 방지하여, 개발자의 컨텍스트 스위칭 비용을 줄이고 배포 빈도(Deployment frequency)를 높이는 핵심 요소로 작용합니다 [5, 17]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[수동 코드 리뷰(Manual Code Review)]], [[자동화된 코드 리뷰(Automated Code Review)]], [[정적 애플리케이션 보안 테스트(SAST)]], [[Quality Gates]] +- **Projects/Contexts:** [[GitHub CODEOWNERS]], [[CI/CD 파이프라인]] +- **Contradictions/Notes:** 자동화된 AI PR 리뷰 봇은 프로세스를 가속화하지만, 때로는 사소하거나 가치 없는 코멘트를 대량으로 발생시켜 리뷰어에게 '경고 피로(Alert Fatigue)'를 유발할 수 있습니다 [18, 19]. 따라서 자동화 도구는 보조 수단일 뿐, 심층적인 아키텍처 결정은 여전히 인간의 수동 검토에 의존해야 합니다 [18]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Pull Request (PR) 워크플로우.md]] +--- diff --git a/AI/Pull Request (PR).md b/AI/Pull Request (PR).md new file mode 100644 index 00000000..214f2a35 --- /dev/null +++ b/AI/Pull Request (PR).md @@ -0,0 +1,37 @@ +--- +id: P-REINFORCE-AUTO-3B4223 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Pull Request (PR)" +--- + +# [[Pull Request (PR)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 풀 리퀘스트(Pull Request, PR)는 소프트웨어 개발 과정에서 개발자가 자신이 수정한 코드를 메인 브랜치에 병합(merge)하기 전, 다른 팀원이나 자동화 도구에게 코드 검토를 요청하는 워크플로우를 의미합니다 [1-3]. 이는 매뉴얼 코드 리뷰와 자동화된 정적 애플리케이션 보안 테스트(SAST) 및 AI 코드 리뷰가 실행되는 주요 환경으로 작용합니다 [1, 3-5]. PR 단계에서 코드의 품질, 보안 취약점, 로직 오류 등을 사전에 식별하고 논의함으로써 프로덕션 환경에 결함이 배포되는 것을 방지하고 유지보수성을 높일 수 있습니다 [4, 6-8]. + +## 📖 구조화된 지식 (Synthesized Content) +* **코드 리뷰의 핵심 컨텍스트** + 풀 리퀘스트 워크플로우는 수동 및 자동화된 코드 리뷰가 이루어지는 필수적인 단계입니다 [3, 4]. 개발자들은 PR을 통해 코드를 병합하기 전에 버그, 보안 취약점, 스타일 위반, 성능 및 유지보수성 문제 등을 종합적으로 평가합니다 [1, 4]. 수동 리뷰에서 동료 개발자들은 PR을 검토하며 비즈니스 로직, 아키텍처 결정, 코드 가독성 등 자동화 도구가 파악하기 어려운 문맥과 의도를 검증합니다 [3, 8]. 동시에 SonarQube, Snyk, Semgrep 등의 정적 분석 도구들은 PR 생성 시 CI/CD 파이프라인과 연동되어 코드를 스캔하고, 품질 기준을 충족하지 못할 경우 병합을 차단하는 게이트(gate) 역할을 수행합니다 [7, 9-11]. + +* **AI 기반 도구의 PR 통합** + 최근에는 다양한 AI 기반 코드 리뷰 및 보안 도구들이 PR 워크플로우 내에 직접 통합되어 개발자 경험과 리뷰 속도를 향상시키고 있습니다 [4, 7]. 예를 들어, GitHub Copilot이나 Semgrep Assistant, Snyk Code와 같은 도구는 PR 토론(discussion) 스레드 내에 직접 컨텍스트 기반의 제안을 추가하거나 인라인으로 수정 코드를 제공합니다 [4, 9, 12-14]. 이 과정에서 AI는 단순한 오류 탐지를 넘어 PR 요약본을 생성하고 발견된 취약점에 대한 수정안을 자동으로 검증(Autofix)하여 시니어 개발자 및 리뷰어의 피로도를 크게 줄여줍니다 [12, 15-17]. + +* **생산성 및 딜리버리 지표 (Metrics)** + PR 워크플로우의 효율성은 조직의 소프트웨어 딜리버리 성과를 결정짓는 중요한 요소입니다 [18, 19]. AI 및 자동화 코드 리뷰 도구를 PR에 성공적으로 도입할 경우, 첫 리뷰까지 걸리는 시간(Time to first review)과 전체 PR 사이클 타임(PR cycle time)이 단축되어 최대 40%까지 리뷰 주기를 줄일 수 있습니다 [20, 21]. 결과적으로 PR 백로그가 누적되는 것을 막고 배포 빈도(Deployment frequency)를 높이며, 병합 후 발생하는 재작업(Post-merge rework) 및 핫픽스 비율을 낮추는 데 직접적으로 기여합니다 [20-22]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Code Review]], [[Static Application Security Testing (SAST)]], [[Continuous Integration/Continuous Deployment (CI/CD)]] +- **Projects/Contexts:** [[DevSecOps]], [[GitHub]] +- **Contradictions/Notes:** 자동화 및 AI 도구는 PR 내에서 발생하는 문법 오류나 알려진 보안 취약점을 빠르게 찾아내고 수정 제안을 제공하지만, 비즈니스 로직이나 아키텍처, 코드의 근본적인 의도를 파악하는 데에는 한계가 있으므로, 중요하고 민감한 변경 사항에 대해서는 인간 개발자의 수동 PR 리뷰가 반드시 병행되어야 합니다 [3, 8, 23]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Pull Request (PR).md]] +--- diff --git a/AI/Quality Gates.md b/AI/Quality Gates.md new file mode 100644 index 00000000..c2adf2ca --- /dev/null +++ b/AI/Quality Gates.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-B577EF +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Quality Gates" +--- + +# [[Quality Gates]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Quality Gates(품질 게이트)는 소프트웨어 개발 수명 주기(SDLC)에서 코드 병합이나 배포 전에 사전에 정의된 품질 및 보안 표준을 충족하는지 평가하는 정책 기반의 검사 메커니즘입니다 [1, 2]. 주로 풀 리퀘스트(Pull Request) 단계에서 실행되어 복잡도, 취약점, 중복 등의 지표를 평가한 후 통과(Pass) 또는 실패(Fail) 상태를 이진(binary) 신호로 명확히 할당합니다 [2-4]. 이를 통해 팀은 비공식적인 리뷰 코멘트에 의존하지 않고 객관적인 규칙 세트에 따라 코드 품질을 일관되게 유지하며, 규모에 맞는 안전한 코드 배포를 보장할 수 있습니다 [2, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +* **동작 원리 및 적용 시점:** Quality Gates는 IDE부터 CI/CD 파이프라인 전반에 걸쳐 워크플로우에 통합되어 작동하는 정책 기반의 통제 장치(policy-driven gates)입니다 [1, 6]. 주로 풀 리퀘스트(PR)나 브랜치 병합 전에 코드를 분석하여 사전에 설정된 명시적인 규칙 세트를 만족하는지 확인합니다 [2]. 기준을 충족하지 못하는 "새로운 문제(new issues)"가 발견될 경우 실패(Fail) 신호를 보내어 코드 병합을 직접적으로 차단(merge blocking)합니다 [2]. +* **개발 워크플로우 및 품질 관리에 미치는 영향:** Quality Gates는 대시보드 형태의 집계뿐만 아니라 PR 수준에서 직접적으로 품질 상태, 코드 중복, 복잡성 및 테스트 커버리지 등의 가시적인 신호를 제공합니다 [3]. 비공식적인 리뷰 코멘트 대신 이진(binary) 형태의 명확한 통과/실패 신호를 부여하기 때문에 실시간으로 개발자의 코드 병합 행동에 즉각적인 영향을 미치며, 시간에 따른 품질 저하(quality drift) 현상을 추적하고 측정할 수 있도록 돕습니다 [2-4]. +* **컴플라이언스 준수 및 표준화:** 조직 내 여러 리포지토리 전반에 걸쳐 일관된 표준을 강제하여 소프트웨어의 유지보수성과 신뢰성을 향상시킵니다 [1, 7, 8]. 또한 OWASP, ISO/IEC 등과 같은 업계 컴플라이언스와 보안 표준을 충족하는 데 핵심적인 역할을 수행합니다 [8]. +* **AI 생성 코드 및 도구 연동:** Quality Gates는 사람이 작성한 코드뿐만 아니라 AI가 생성한 코드에 대해서도 동일한 품질 표준을 강제합니다 [9]. 최근의 AI 네이티브 개발 환경에서는 AI 코딩 어시스턴트(예: Cursor, Windsurf)가 직접 Quality Gate 상태를 쿼리(query)하고 피드백을 받을 수 있도록 연동이 지원됩니다 [10]. 나아가 AI가 코드를 자동 수정(Auto-fix)할 때 발생할 수 있는 환각(hallucination) 위험을 검증하고 줄이는 품질 게이트 역할로도 활용됩니다 [11]. 이러한 워크플로우를 강력하게 지원하는 도구로는 SonarQube, Codacy 등이 있습니다 [2, 3, 12]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Static Application Security Testing (SAST)]], [[CI/CD pipelines]], [[Pull Request (PR)]] +- **Projects/Contexts:** [[SonarQube Cloud]], [[Codacy]], [[AI Code Assurance]] +- **Contradictions/Notes:** 소스는 팀 내 비공식적인 코드 리뷰 코멘트에 의존하여 병합을 결정하는 것보다, Quality Gates와 같은 명시적인 규칙 세트 기반의 이진 신호(통과/실패)를 통해 병합을 차단하는 방식이 시간이 지남에 따른 품질 변화를 더 명확하게 측정하고 통제할 수 있다고 강조합니다 [2]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Quality Gates.md]] +--- diff --git a/AI/Quantitative-Usability-Testing.md b/AI/Quantitative-Usability-Testing.md new file mode 100644 index 00000000..936664bf --- /dev/null +++ b/AI/Quantitative-Usability-Testing.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-8A68D1 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Quantitative-Usability-Testing" +--- + +# [[Quantitative-Usability-Testing]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Quantitative-Usability-Testing.md]] +--- diff --git a/AI/RAG (검색 증강 생성).md b/AI/RAG (검색 증강 생성).md new file mode 100644 index 00000000..d0b9be70 --- /dev/null +++ b/AI/RAG (검색 증강 생성).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-937086 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - RAG (검색 증강 생성)" +--- + +# [[RAG (검색 증강 생성)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/RAG (검색 증강 생성).md]] +--- diff --git a/AI/RLAIF (AI 피드백 기반 강화학습).md b/AI/RLAIF (AI 피드백 기반 강화학습).md new file mode 100644 index 00000000..56a4fabb --- /dev/null +++ b/AI/RLAIF (AI 피드백 기반 강화학습).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-77C4FB +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - RLAIF (AI 피드백 기반 강화학습)" +--- + +# [[RLAIF (AI 피드백 기반 강화학습)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/RLAIF (AI 피드백 기반 강화학습).md]] +--- diff --git a/AI/RLHF (인간 피드백 기반 강화학습).md b/AI/RLHF (인간 피드백 기반 강화학습).md new file mode 100644 index 00000000..c2e7b021 --- /dev/null +++ b/AI/RLHF (인간 피드백 기반 강화학습).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-628311 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - RLHF (인간 피드백 기반 강화학습)" +--- + +# [[RLHF (인간 피드백 기반 강화학습)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/RLHF (인간 피드백 기반 강화학습).md]] +--- diff --git a/AI/RL_Neuroscience.md b/AI/RL_Neuroscience.md new file mode 100644 index 00000000..4580cf5a --- /dev/null +++ b/AI/RL_Neuroscience.md @@ -0,0 +1,29 @@ +--- +id: P-REINFORCE-AI-003 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.98 +tags: [ai, rl, neuroscience, brain] +last_reinforced: 2026-04-20 +github_commit: "batch-reinforce-04" +--- + +# [[RL_Neuroscience (Computational Reinforcement Learning)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 보상 학습의 생물학적 기제와 기계 학습 알고리즘의 수렴을 통해 지능의 본질을 규명하는 계산 뇌과학의 정점. + +## 📖 구조화된 지식 (Synthesized Content) +- **추출된 패턴:** 환경과의 상호작용에서 얻은 보상 신호를 사용하여 정책(Policy)과 가치 함수(Value Function)를 업데이트하는 순환적 최적화 패턴. +- **세부 내용:** + - TD-Learning(Temporal Difference)과 도파민 신호의 수학적 일치성 입증. + - 모델 기반(Model-based) vs 모델 자유(Model-free) 학습의 뇌내 처리 경로 분석. + - 탐색(Exploration)과 착취(Exploitation)의 균형을 맞추는 전두엽의 기능 모사. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 단순 조건 반사 모델에서 미래 가치를 예측하는 '계산적 에이전트' 모델로 확장. +- **정책 변화:** P-Reinforce 엔진의 핵심 로직(Self-Optimization)을 뒷받침하는 이론적 근거로 최상단 배치. + +## 🔗 지식 연결 (Graph) +- **Parent:** [[10_Wiki/💡 Topics/AI]] +- **Related:** [[Dopamine]], [[Operant_Conditioning]], [[Reinforcement-Learning]] +- **Raw Source:** [[00_Raw/2026-04-20/Computational Neuroscience of Reinforcement Learning.md]] diff --git a/AI/ReAct (Reasoning Acting).md b/AI/ReAct (Reasoning Acting).md new file mode 100644 index 00000000..e94ee50d --- /dev/null +++ b/AI/ReAct (Reasoning Acting).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-382E0C +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - ReAct (Reasoning Acting)" +--- + +# [[ReAct (Reasoning Acting)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/ReAct (Reasoning + Acting).md]] +--- diff --git a/AI/Real-Time-Game-Engines.md b/AI/Real-Time-Game-Engines.md new file mode 100644 index 00000000..0ffdab01 --- /dev/null +++ b/AI/Real-Time-Game-Engines.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9DBB1E +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Real-Time-Game-Engines" +--- + +# [[Real-Time-Game-Engines]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Real-Time-Game-Engines.md]] +--- diff --git a/AI/Redux-Reducers-Design.md b/AI/Redux-Reducers-Design.md new file mode 100644 index 00000000..9784b87c --- /dev/null +++ b/AI/Redux-Reducers-Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-4EB691 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Redux-Reducers-Design" +--- + +# [[Redux-Reducers-Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Redux-Reducers-Design.md]] +--- diff --git a/AI/Redux-State-Management.md b/AI/Redux-State-Management.md new file mode 100644 index 00000000..962f9c3a --- /dev/null +++ b/AI/Redux-State-Management.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-DBA4CB +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Redux-State-Management" +--- + +# [[Redux-State-Management]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Redux-State-Management.md]] +--- diff --git a/AI/Regenerative Design.md b/AI/Regenerative Design.md new file mode 100644 index 00000000..8acaf1d5 --- /dev/null +++ b/AI/Regenerative Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6EFEA1 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Regenerative Design" +--- + +# [[Regenerative Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Regenerative Design.md]] +--- diff --git a/AI/Regenerative-Design.md b/AI/Regenerative-Design.md new file mode 100644 index 00000000..c7affdd1 --- /dev/null +++ b/AI/Regenerative-Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9E754B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Regenerative-Design" +--- + +# [[Regenerative-Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Regenerative-Design.md]] +--- diff --git a/AI/Rehabilitative-Medicine.md b/AI/Rehabilitative-Medicine.md new file mode 100644 index 00000000..471c45a5 --- /dev/null +++ b/AI/Rehabilitative-Medicine.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-2E9085 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Rehabilitative-Medicine" +--- + +# [[Rehabilitative-Medicine]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Rehabilitative-Medicine.md]] +--- diff --git a/AI/Reinforcement Learning (RL).md b/AI/Reinforcement Learning (RL).md new file mode 100644 index 00000000..6ec2645e --- /dev/null +++ b/AI/Reinforcement Learning (RL).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-81D53F +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Reinforcement Learning (RL)" +--- + +# [[Reinforcement Learning (RL)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Reinforcement Learning (RL).md]] +--- diff --git a/AI/Reinforcement Learning for Automated Playtesting.md b/AI/Reinforcement Learning for Automated Playtesting.md new file mode 100644 index 00000000..808eb5f3 --- /dev/null +++ b/AI/Reinforcement Learning for Automated Playtesting.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-01F691 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Reinforcement Learning for Automated Playtesting" +--- + +# [[Reinforcement Learning for Automated Playtesting]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Reinforcement Learning for Automated Playtesting.md]] +--- diff --git a/AI/Reinforcement Learning in Economics.md b/AI/Reinforcement Learning in Economics.md new file mode 100644 index 00000000..b06c53f9 --- /dev/null +++ b/AI/Reinforcement Learning in Economics.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-169C30 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Reinforcement Learning in Economics" +--- + +# [[Reinforcement Learning in Economics]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Reinforcement Learning in Economics.md]] +--- diff --git a/AI/Reinforcement Learning.md b/AI/Reinforcement Learning.md new file mode 100644 index 00000000..b8c10a40 --- /dev/null +++ b/AI/Reinforcement Learning.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-AE51CB +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Reinforcement Learning" +--- + +# [[Reinforcement Learning]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Reinforcement Learning.md]] +--- diff --git a/AI/Reinforcement Schedules.md b/AI/Reinforcement Schedules.md new file mode 100644 index 00000000..a5591a2f --- /dev/null +++ b/AI/Reinforcement Schedules.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-8A0BA0 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Reinforcement Schedules" +--- + +# [[Reinforcement Schedules]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Reinforcement Schedules.md]] +--- diff --git a/AI/Resilience Science.md b/AI/Resilience Science.md new file mode 100644 index 00000000..0f7a27c1 --- /dev/null +++ b/AI/Resilience Science.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-06F1DA +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Resilience Science" +--- + +# [[Resilience Science]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Resilience Science.md]] +--- diff --git a/AI/Resilience-Engineering.md b/AI/Resilience-Engineering.md new file mode 100644 index 00000000..ec2bebc1 --- /dev/null +++ b/AI/Resilience-Engineering.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-49D143 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Resilience-Engineering" +--- + +# [[Resilience-Engineering]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Resilience-Engineering.md]] +--- diff --git a/AI/Retainers(유지 경로).md b/AI/Retainers(유지 경로).md new file mode 100644 index 00000000..01d62ba6 --- /dev/null +++ b/AI/Retainers(유지 경로).md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-77A920 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Retainers(유지 경로)" +--- + +# [[Retainers(유지 경로)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Retainers(유지 경로)는 가비지 컬렉터(GC) 루트부터 특정 객체까지 연결된 참조 체인을 의미한다 [1, 2]. 이는 객체가 가비지 컬렉션의 대상이 되지 않고 메모리에 계속 남아있게 만드는 원인을 파악하는 데 사용된다 [1, 2]. 개발자는 Chrome DevTools나 IntelliJ IDEA와 같은 메모리 프로파일링 도구에서 제공하는 Retainers 패널을 통해 이 경로를 역추적하여 메모리 누수의 근본 원인을 식별하고 해결할 수 있다 [3-5]. + +## 📖 구조화된 지식 (Synthesized Content) +* **Retainers의 역할 및 정의** + Retainers는 선택한 객체를 가리키는 객체들의 목록(역방향 참조 및 루프 포함)을 보여준다 [5, 6]. V8 엔진은 전역 루트(GC root)에서부터 포인터 체인을 통해 도달 가능한 객체를 살아있는(live) 객체로 간주하기 때문에, Retainers는 메모리 누수가 의심되는 객체가 왜 회수되지 않는지를 이해하는 핵심 지표 역할을 한다 [4]. 이 패널은 유출된 객체에서부터 GC 루트로 돌아가는 경로를 역방향으로 표시한다 [4]. + +* **디버깅 및 메모리 누수 분석** + 개발자는 힙 스냅샷(Heap Snapshot)이나 할당 타임라인 도구를 사용하여 유출된 객체를 찾아낸 뒤, 해당 객체의 Retainers 트리를 확인하여 GC 루트까지 유지되는 참조 체인을 파악할 수 있다 [2, 3, 7]. 이 유지 경로를 면밀히 검토하면 불필요한 객체가 클로저(Closure) 스코프 등에 의해 계속 참조되고 있는 이유를 파악할 수 있으며, 이를 바탕으로 불필요한 참조를 제거하는 코드 수정이 가능하다 [3, 7, 8]. + +* **도구 내 활용 및 필터링 기능** + Chrome DevTools의 Retainers 섹션에서는 특정 항목을 우클릭하여 'Ignore this retainer(이 유지 경로 무시)' 기능을 사용할 수 있다 [9]. 이를 통해 코드를 직접 수정하거나 힙 스냅샷을 다시 찍지 않고도, 해당 참조를 제외했을 때 객체를 계속 유지하게 만드는 다른 경로가 있는지 확인할 수 있다 [9]. 한편, 축소(Minified)된 코드에서는 Retainer 체인을 읽기 어려울 수 있으므로, 의미 있는 함수 및 변수 이름을 얻기 위해서는 소스 맵(Source Maps)을 활용해야 한다 [10]. + +* **고급 추적 기법** + 매우 복잡한 형태의 메모리 누수를 분석할 때는 V8 내부 기능인 `%DebugTrackRetainingPath(object)`를 이용할 수 있다 [4, 11]. `--allow-natives-syntax` 및 `--track-retaining-path` 런타임 플래그와 함께 사용하면, 가비지 컬렉션이 발생할 때마다 해당 객체의 실제 유지 경로를 콘솔에 직접 출력하여 DevTools UI의 추상화를 거치지 않고도 저수준의 세부 정보를 확인할 수 있다 [4, 11]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Garbage Collection(GC)]], [[Memory Leak]], [[Heap Snapshot]], [[GC Roots]] +- **Projects/Contexts:** [[Chrome DevTools Memory Panel]], [[V8 JavaScript Engine]], [[IntelliJ IDEA V8 CPU and Memory Profiling]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Retainers(유지 경로).md]] +--- diff --git a/AI/Retaining Path.md b/AI/Retaining Path.md new file mode 100644 index 00000000..c260709b --- /dev/null +++ b/AI/Retaining Path.md @@ -0,0 +1,39 @@ +--- +id: P-REINFORCE-AUTO-B5755B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Retaining Path" +--- + +# [[Retaining Path]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Retaining Path(유지 경로)는 가비지 컬렉터가 객체를 메모리에서 해제하지 못하도록 계속 살아있게(live) 만드는 참조의 사슬(chain of references)을 의미합니다 [1, 2]. V8 엔진은 전역 객체나 활성 스택과 같은 GC 루트(GC root)로부터 포인터 사슬을 통해 도달할 수 있는 객체를 살아있는 것으로 판단합니다 [3]. 따라서 이 경로를 분석하는 것은 애플리케이션의 메모리 누수(memory leak) 원인을 식별하고 불필요한 참조를 제거하는 데 핵심적인 역할을 합니다 [4, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +- **개념적 원리:** + 메모리 누수는 메모리에서 잃어버린 것이 아니라, 객체가 더 이상 사용되지 않음에도 불구하고 GC 루트(예: window, 활성 클로저, 이벤트 리스너, 타이머 등)로부터 계속 연결되어 있어 가비지 컬렉터가 이를 회수하지 못할 때 발생합니다 [1]. Retaining Path는 누수된 객체에서 시작하여 해당 객체를 붙잡고 있는 GC 루트까지 역방향으로 이어지는 참조 체인을 보여줍니다 [3, 5]. + +- **식별 및 분석 도구:** + - **Chrome DevTools (Memory 패널):** 힙 스냅샷(Heap snapshot)이나 할당 타임라인(Allocation timeline) 기능을 통해 객체가 생성된 위치와 해당 객체의 Retaining Path를 파악할 수 있습니다 [2, 6]. Retainers 패널은 선택된 객체를 가리키는 다른 객체들의 트리 구조를 보여줍니다 [4, 7]. + - **Retainer 숨기기 (Ignore this retainer):** 코드를 직접 수정하여 참조를 제거한 후 힙 스냅샷을 다시 찍는 수고를 덜기 위해, 특정 retainer를 우클릭하여 무시(Ignore)함으로써 다른 객체가 여전히 해당 객체를 유지하고 있는지 빠르게 확인할 수 있습니다 [8]. + - **`%DebugTrackRetainingPath(object)` 함수:** 극도로 복잡한 누수를 조사할 때는 V8 내부 함수를 활용할 수 있습니다 [3, 9]. `--allow-natives-syntax` 및 `--track-retaining-path` 플래그를 적용하여 실행하면, GC가 발생할 때마다 해당 객체의 실제 Retaining Path가 출력됩니다 [9]. 이 로그는 DevTools UI의 추상화를 우회하여 매우 낮은 수준(low-level)의 메모리 주소와 타입 정보를 제공합니다 [3]. + +- **디버깅 워크플로우:** + 메모리 누수 문제를 해결하려면 할당된 채 수집되지 않는 객체를 식별한 뒤, 해당 객체의 Retainer 트리를 클릭하여 GC 루트까지 이어지는 사슬을 추적해야 합니다 [5]. 이 경로를 자세히 검사하면 객체가 수집되지 않은 근본 원인을 이해할 수 있으며, 코드에서 불필요한 참조를 제거하는 정확한 수정이 가능해집니다 [4, 5]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Memory Leak]], [[Garbage Collection]], [[GC Root]], [[Heap Snapshot]] +- **Projects/Contexts:** [[Chrome DevTools]], [[V8 JavaScript Engine]] +- **Contradictions/Notes:** 소스 내에 모순된 주장은 존재하지 않습니다. 제공된 자료들은 모두 메모리 누수를 추적하고 V8 엔진에서 객체가 유지되는 이유를 파악하는 데 있어 Retaining Path의 중요성을 일관되게 강조하고 있습니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Retaining Path.md]] +--- diff --git a/AI/Retrograde-Games.md b/AI/Retrograde-Games.md new file mode 100644 index 00000000..004442ed --- /dev/null +++ b/AI/Retrograde-Games.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-3F21E0 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Retrograde-Games" +--- + +# [[Retrograde-Games]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Retrograde-Games.md]] +--- diff --git a/AI/Reward Hacking (보상 해킹).md b/AI/Reward Hacking (보상 해킹).md new file mode 100644 index 00000000..0f3236b4 --- /dev/null +++ b/AI/Reward Hacking (보상 해킹).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-7F2CC8 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Reward Hacking (보상 해킹)" +--- + +# [[Reward Hacking (보상 해킹)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Reward Hacking (보상 해킹).md]] +--- diff --git a/AI/Reward Prediction Error.md b/AI/Reward Prediction Error.md new file mode 100644 index 00000000..a8a92180 --- /dev/null +++ b/AI/Reward Prediction Error.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-08768A +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Reward Prediction Error" +--- + +# [[Reward Prediction Error]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Reward Prediction Error.md]] +--- diff --git a/AI/Risk Management in Finance.md b/AI/Risk Management in Finance.md new file mode 100644 index 00000000..e8bf77fb --- /dev/null +++ b/AI/Risk Management in Finance.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5DD3BE +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Risk Management in Finance" +--- + +# [[Risk Management in Finance]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Risk Management in Finance.md]] +--- diff --git a/AI/Robotic Manipulation Control.md b/AI/Robotic Manipulation Control.md new file mode 100644 index 00000000..d2cd6c09 --- /dev/null +++ b/AI/Robotic Manipulation Control.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-913A3C +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Robotic Manipulation Control" +--- + +# [[Robotic Manipulation Control]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Robotic Manipulation Control.md]] +--- diff --git a/AI/Robotic-Prosthetics-Control-Systems.md b/AI/Robotic-Prosthetics-Control-Systems.md new file mode 100644 index 00000000..880bea42 --- /dev/null +++ b/AI/Robotic-Prosthetics-Control-Systems.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A360D1 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Robotic-Prosthetics-Control-Systems" +--- + +# [[Robotic-Prosthetics-Control-Systems]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Robotic-Prosthetics-Control-Systems.md]] +--- diff --git a/AI/Robustness (강건성).md b/AI/Robustness (강건성).md new file mode 100644 index 00000000..977d25e3 --- /dev/null +++ b/AI/Robustness (강건성).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-EB7908 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Robustness (강건성)" +--- + +# [[Robustness (강건성)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Robustness (강건성).md]] +--- diff --git a/AI/SAST (Static Application Security Testing).md b/AI/SAST (Static Application Security Testing).md new file mode 100644 index 00000000..b2466e45 --- /dev/null +++ b/AI/SAST (Static Application Security Testing).md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-DCCAB5 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - SAST (Static Application Security Testing)" +--- + +# [[SAST (Static Application Security Testing)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> SAST(정적 애플리케이션 보안 테스트)는 애플리케이션을 실행하지 않고 소스 코드나 바이트코드를 정적으로 분석하여 잠재적인 보안 취약점을 식별하는 화이트박스 테스트(White-box testing) 기법입니다 [1]. 소프트웨어 개발 수명 주기(SDLC) 초기에 도입되어, 코드 결함이 배포되기 전에 수정할 수 있도록 개발 과정 중에 실시간으로 오류를 잡아냅니다 [1, 2]. 최근에는 단순한 규칙 기반 방식을 넘어 AI 모델과 결합하여, 문맥 기반의 비즈니스 로직 결함을 찾고 자동 수정(Auto-fix) 코드를 제안하는 형태로 발전하고 있습니다 [3, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +- **동작 원리:** SAST 도구는 소스 코드를 구문 분석하여 추상 구문 트리(AST)를 구축하고, 제어 흐름(Control flow) 및 데이터 흐름(Data flow)을 추적합니다 [5, 6]. 이를 통해 SQL 인젝션, 메모리 관리 문제, 잘못된 API 사용, 암호화 알고리즘 오용 등의 보안 결함을 실행 없이 탐지할 수 있습니다 [1, 7]. +- **주요 장점 (Shift-Left):** 테스트 케이스 작성이나 애플리케이션 실행이 필요 없어 자동화가 용이하며 검사 속도가 빠릅니다 [8]. 개발 초기(IDE 환경이나 CI/CD 파이프라인)에 즉각적인 피드백을 제공하여 문제 발생 위치와 원인을 명확히 알려주며, 가장 비용이 적게 드는 시점에서 결함을 해결하게 해줍니다 [2, 8]. +- **한계점:** 소스 코드의 실행 맥락(Context)을 완벽하게 이해하지 못하므로, 실제로는 안전한 코드를 위협으로 간주하는 오탐(False Positive)과 그 반대인 미탐(False Negative)이 발생하기 쉽습니다 [9]. 프론트엔드와 백엔드가 분리되어 있을 때 입력값 살균(Sanitization) 처리 여부를 파악하지 못하는 등 맥락 누락 문제가 있으며, 도구가 지원하는 특정 프로그래밍 언어에 종속된다는 단점도 지닙니다 [9]. +- **AI 기반 SAST의 진화:** 전통적인 SAST는 정해진 규칙과 패턴 매칭에 의존하지만, 현대의 AI 네이티브 도구(예: Snyk Code, Corgea 등)는 대형 언어 모델(LLM)과 기계 학습 기술을 적극적으로 활용합니다 [3, 10]. 의미론적 파악과 오염 분석(Taint analysis)을 통해 파일 간(Interfile) 데이터 흐름을 쫓고, 취약점 식별을 넘어 개발자가 즉각 적용할 수 있는 검증된 수정안을 제안하여 개발자의 리뷰 시간을 크게 단축시킵니다 [3, 11, 12]. +- **타 보안 도구와의 상호 보완:** SAST가 조직 내부에서 작성한 퍼스트 파티(First-party) 소스 코드 취약점을 찾는 것에 특화되어 있다면, **SCA**(소프트웨어 구성 분석)는 도입된 서드 파티 오픈소스 패키지의 알려진 취약점을 찾고, **DAST**(동적 애플리케이션 보안 테스트)는 런타임 환경에서 블랙박스 테스트를 수행하여 실행 시점의 구성 문제를 탐지합니다 [13-16]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[DAST (Dynamic Application Security Testing)]], [[SCA (Software Composition Analysis)]], [[Shift-Left Security]], [[False Positives]], [[Taint Analysis]] +- **Projects/Contexts:** [[Snyk Code]], [[Corgea]], [[SonarQube]], [[GitHub Advanced Security]], [[Checkmarx]], [[Semgrep]] +- **Contradictions/Notes:** 레거시 SAST 도구들은 엄격한 정적 규칙으로 인해 50-80%에 달하는 높은 오탐률(False Positives)을 보여 개발자에게 경고 피로(Alert fatigue)를 유발한다는 단점이 있었으나, 최신 AI 기반 SAST는 수백만 개의 오픈소스 커밋과 문맥을 학습하여 노이즈를 획기적으로 줄이고 실제 악용 가능한 취약점을 분류해 내는 방향으로 단점을 극복하고 있습니다 [9, 11, 17]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/SAST (Static Application Security Testing).md]] +--- diff --git a/AI/SAST (정적 애플리케이션 보안 테스트).md b/AI/SAST (정적 애플리케이션 보안 테스트).md new file mode 100644 index 00000000..23f8c11d --- /dev/null +++ b/AI/SAST (정적 애플리케이션 보안 테스트).md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-4C10C5 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - SAST (정적 애플리케이션 보안 테스트)" +--- + +# [[SAST (정적 애플리케이션 보안 테스트)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> SAST(정적 애플리케이션 보안 테스트)는 애플리케이션을 실행하지 않고 소스 코드나 바이트코드 자체를 분석하여 잠재적인 보안 취약점을 찾아내는 화이트박스 테스트(White-box testing) 기법입니다 [1]. 소프트웨어 개발 수명 주기(SDLC)의 초기 단계에 통합되어 결함을 사전에 식별하고 조치함으로써 보안 문제를 빠르고 저렴하게 해결하는 '시프트 레프트(Shift-Left)' 접근법의 핵심입니다 [2-4]. 최근에는 전통적인 규칙 기반의 한계를 극복하기 위해 머신러닝과 LLM을 결합하여 코드의 문맥을 이해하고 오탐을 줄이는 AI 기반 SAST로 발전하고 있습니다 [5, 6]. + +## 📖 구조화된 지식 (Synthesized Content) +* **탐지 영역 및 작동 방식:** SAST는 코드가 실행되기 전 구문, 구조, 제어 및 데이터 흐름을 정적으로 분석합니다 [1, 7]. 이 검사를 통해 SQL 인젝션, 크로스 사이트 스크립팅(XSS), 하드코딩된 민감정보(비밀번호 및 API 키), 경로 탐색, 불충분한 입력 검증 등 다양한 보안 결함을 식별합니다 [2, 8, 9]. +* **주요 이점:** + * **빠르고 독립적인 분석:** 테스트 케이스를 설계하거나 애플리케이션을 실행할 필요가 없어 전체 코드베이스를 신속하게 스캔할 수 있습니다 [10]. + * **정확한 위치 안내:** 취약점이 발생한 소스 코드의 정확한 파일 및 줄 번호와 데이터 흐름을 짚어주어 개발자가 즉각적으로 문제를 파악하고 수정할 수 있도록 돕습니다 [10]. +* **전통적인 SAST의 한계점:** + * 애플리케이션 실행 런타임의 컨텍스트나 비즈니스 로직의 의도를 완벽히 이해하지 못하기 때문에 다수의 오탐(False Positives)과 미탐(False Negatives)을 발생시킵니다 [11]. + * 분석이 사용된 특정 프로그래밍 언어의 지원 여부에 크게 종속된다는 단점이 있습니다 [11]. +* **AI 네이티브(AI-native) SAST의 등장:** + * 기존의 단순 패턴 매칭 규칙을 넘어 머신러닝을 도입한 최신 SAST 엔진(예: Snyk Code의 DeepCode AI, Corgea 등)은 수백만 건의 실제 오픈소스 커밋과 수정 패턴을 학습하여 코드의 의미를 파악합니다 [6, 12, 13]. + * 여러 모듈이나 함수 경계를 넘어 데이터를 추적하는 파일 간 분석(Interfile analysis)이 가능해졌으며, 탐지된 취약점에 대해 AI가 자동 수정 코드(Auto-remediation)를 제안하고, 개발자에게 불필요한 경고를 줄여줍니다 [14-17]. +* **타 보안 테스트와의 연계:** SAST는 작동 중인 애플리케이션 외부에서 런타임 문제를 진단하는 DAST(동적 애플리케이션 보안 테스트), 서드파티 오픈소스 라이브러리의 취약점을 스캔하는 SCA(소프트웨어 구성 분석) 등과 함께 사용될 때 상호 보완적으로 전체 애플리케이션 보안을 극대화할 수 있습니다 [7, 18-20]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[DAST (동적 애플리케이션 보안 테스트)]], [[SCA (소프트웨어 구성 분석)]], [[시프트 레프트 (Shift-Left)]], [[오탐 (False Positive)]], [[코드 리뷰 (Code Review)]] +- **Projects/Contexts:** [[Snyk Code]], [[Corgea]], [[SonarQube]], [[소프트웨어 개발 수명 주기 (SDLC)]] +- **Contradictions/Notes:** 소스에 따르면 수동 코드 리뷰는 문맥과 비즈니스 로직, 아키텍처를 깊이 이해하지만 속도가 느리고 비용이 큰 반면, 자동화된 SAST 도구는 매우 빠르고 일관적이지만 코드의 의도를 파악하지 못해 오탐이 발생한다는 뚜렷한 대비가 있습니다 [21-23]. 이에 따라 2025년의 모범 사례는 SAST와 같은 자동화 스캔 도구로 코드 스타일과 일반적인 보안 결함을 1차적으로 걸러내고, 인간 검토자는 자동화가 놓치는 핵심 로직 및 크로스 서비스 영향도 평가에 집중하는 '하이브리드 코드 리뷰' 모델을 채택하는 것입니다 [21, 24, 25]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/SAST (정적 애플리케이션 보안 테스트).md]] +--- diff --git a/AI/SAST (정적 애플리케이션 보안 테스팅).md b/AI/SAST (정적 애플리케이션 보안 테스팅).md new file mode 100644 index 00000000..e8d599e6 --- /dev/null +++ b/AI/SAST (정적 애플리케이션 보안 테스팅).md @@ -0,0 +1,37 @@ +--- +id: P-REINFORCE-AUTO-8D39DE +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - SAST (정적 애플리케이션 보안 테스팅)" +--- + +# [[SAST (정적 애플리케이션 보안 테스팅)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> SAST(정적 애플리케이션 보안 테스팅)는 애플리케이션을 실행하지 않고 소스 코드나 바이트코드를 정적으로 분석하여 보안 취약점을 찾아내는 '화이트박스 테스팅' 기법입니다 [1, 2]. 개발 초기 단계(CI/CD 파이프라인이나 IDE)에 통합되어 취약점이 프로덕션 환경에 도달하기 전에 예방하는 Shift-Left 보안을 실현합니다 [3, 4]. 최근에는 규칙 기반 패턴 매칭의 한계를 넘어, 대형 언어 모델(LLM)과 기계 학습(ML)을 결합하여 문맥을 이해하고 자동으로 코드를 수정해주는 AI 기반 SAST로 진화하고 있습니다 [5-7]. + +## 📖 구조화된 지식 (Synthesized Content) +* **작동 방식 및 주요 탐지 영역:** + SAST 도구는 소스 코드를 파싱하여 구문 트리(Syntax Tree)를 구축한 후, 의미론(Semantic), 제어 흐름(Control flow), 데이터 흐름(Data flow), 구조적 분석 등을 적용하여 잠재적 문제를 탐지합니다 [8-10]. 이를 통해 인젝션 결함(SQL, NoSQL, Command 등), 크로스 사이트 스크립팅(XSS), 경로 탐색, 하드코딩된 자격 증명(비밀번호, API 키), 취약한 암호화, 메모리 관리 문제, 잘못 구성된 설정 등을 찾아냅니다 [1, 2, 11]. +* **SAST의 주요 장점:** + SAST는 코드를 실행하거나 별도의 테스트 케이스를 작성할 필요가 없으며, 개발자가 코드를 작성하는 즉시 실시간(Real-time)으로 매우 빠르게 스캔할 수 있습니다 [12, 13]. 문제가 있는 코드의 정확한 위치와 데이터 흐름을 짚어주기 때문에 취약점을 조기에 수정할 수 있어 시간과 비용을 크게 절약합니다 [13, 14]. +* **기존 SAST의 한계점:** + 기존 SAST 도구들은 실행 런타임의 컨텍스트나 비즈니스 로직의 의도를 온전히 파악하지 못해 오탐지(False Positive)를 많이 발생시키며(일부 레거시 도구의 경우 50~80%), 이로 인해 개발자가 알림 피로도(Alert fatigue)를 느끼게 됩니다 [15, 16]. 또한, 특정 프로그래밍 언어에 대한 의존성이 강하며, 프론트엔드와 백엔드를 오가는 복잡한 데이터 흐름을 완벽히 쫓아가지 못하는 한계가 있습니다 [9, 16]. +* **AI 기반 SAST의 등장:** + 최근의 SAST는 단순한 정적 패턴 매칭을 넘어 LLM 등 AI 엔진을 도입하여 맥락을 이해하는 방향으로 발전하고 있습니다 [3, 5]. AI 기반 SAST(예: Corgea, Snyk Code 등)는 규칙만으로는 표현할 수 없는 복잡한 비즈니스 로직의 결함을 탐지하고, 오탐을 크게 줄여줍니다 [6, 7, 17]. 나아가 식별된 문제에 대해 실행 가능한 코드 패치(Auto-fix)를 자동으로 제안하고 검증하는 기능까지 제공합니다 [5, 18]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[DAST (동적 애플리케이션 보안 테스팅)]], [[SCA (소프트웨어 구성 분석)]], [[AI-powered SAST]], [[수동 코드 리뷰 (Manual Code Review)]] +- **Projects/Contexts:** [[Shift-Left 보안]], [[CI/CD 및 IDE 통합]], [[OWASP Top 10]] +- **Contradictions/Notes:** 자동화된 SAST는 매우 빠르고 일관되게 코드를 검사하지만 비즈니스 로직과 의도를 파악하는 데는 맹점이 존재하므로(Context Blindness), 런타임 환경을 분석하는 DAST 또는 설계와 맥락을 깊이 이해하는 수동 코드 리뷰(Manual Review)와 결합된 하이브리드 접근 방식이 권장됩니다 [15, 19, 20]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/SAST (정적 애플리케이션 보안 테스팅).md]] +--- diff --git a/AI/SAST.md b/AI/SAST.md new file mode 100644 index 00000000..611fd4cd --- /dev/null +++ b/AI/SAST.md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-205541 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - SAST" +--- + +# [[SAST]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> SAST(Static Application Security Testing, 정적 애플리케이션 보안 테스트)는 애플리케이션을 실행하지 않고 소스 코드, 바이트코드 또는 바이너리를 정적으로 분석하여 보안 취약점을 찾아내는 화이트박스 테스트 기법입니다 [1-3]. 개발 초기 단계인 IDE나 CI/CD 파이프라인에 통합되어 결함을 사전에 해결하는 '시프트 레프트(Shift-left)' 보안 접근법의 핵심적인 역할을 수행합니다 [4-7]. 최근에는 높은 오탐률(False Positive)과 문맥 파악의 한계를 극복하기 위해 머신러닝(ML)과 대규모 언어 모델(LLM)을 결합한 AI 기반 SAST로 진화하여 더욱 정확한 탐지와 자동 수정(Auto-fix) 기능을 제공하고 있습니다 [8-10]. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[DAST]], [[SCA]], [[IAST]], [[Shift-Left]], [[False Positives]] +- **Projects/Contexts:** [[CI/CD Pipeline Integration]], [[Snyk Code]], [[Corgea]], [[Checkmarx]], [[SonarQube]] +- **Contradictions/Notes:** 자동화된 SAST 도구는 코드 기반의 패턴 매칭에 빠르고 일관되지만, 복잡한 비즈니스 로직과 아키텍처 트레이드오프를 이해하지 못하므로, 완벽한 보안과 코드 품질 확보를 위해서는 인간 개발자가 직접 수행하는 수동 코드 리뷰(Manual Code Review)를 반드시 병행해야 한다고 강조됩니다 [16, 26-28]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/SAST.md]] +--- diff --git a/AI/SDLC (소프트웨어 개발 수명 주기).md b/AI/SDLC (소프트웨어 개발 수명 주기).md new file mode 100644 index 00000000..9e5af0ed --- /dev/null +++ b/AI/SDLC (소프트웨어 개발 수명 주기).md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-9A0FE1 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - SDLC (소프트웨어 개발 수명 주기)" +--- + +# [[SDLC (소프트웨어 개발 수명 주기)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> SDLC(소프트웨어 개발 수명 주기)는 소프트웨어를 개발하고 유지보수하기 위해 조직에서 사용하는 전체 프로세스입니다 [1, 2]. 현대의 SDLC는 코드 생성 및 디버깅을 돕는 AI 도구들이 필수적으로 통합되고 있으며, 이에 따라 초기 단계부터 보안 및 품질 검증을 수행하는 것이 매우 중요해졌습니다 [2, 3]. 특히 정적 분석(SAST) 및 자동화된 코드 리뷰 도구를 SDLC 전반에 통합하여 취약점과 결함을 조기에 발견하고 안전한 코드를 대규모로 배포하는 데 중점을 둡니다 [1, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +- **보안의 조기 통합 (Shift-Left):** SDLC의 초기 단계부터 정적 애플리케이션 보안 테스트(SAST) 및 실시간 코드 검사를 통합하면, 보안 취약점, 유지보수성 문제 및 논리적 결함을 배포 전에 미리 발견할 수 있습니다 [1, 3]. SDLC 초기에 스캔을 시작하여 기준선을 설정하고, 이후 각 단계에 걸쳐 코드를 자주 스캔함으로써 새롭게 발생하는 보안 문제를 지속적으로 포착해야 합니다 [5]. +- **SDLC 거버넌스와 품질 게이트 (Quality Gates):** SDLC 전반에 걸쳐 동기화된 품질 게이트(Quality Gates)를 적용하면 조직이 대규모 환경에서도 일관된 고품질의 안전한 코드를 제공할 수 있습니다 [4]. 또한 SDLC 거버넌스는 AI가 생성한 코드와 인간 개발자의 표준을 일치시키고, 보안 및 규정 준수를 자동화하는 데 핵심적인 역할을 합니다 [6, 7]. +- **AI 도구의 도입 및 위험 관리:** GitHub Copilot이나 ChatGPT 같은 AI 도구들은 SDLC에서 빼놓을 수 없는 필수 요소로 자리 잡으며 생산성을 높이고 있습니다 [2]. 그러나 이러한 강력한 도구의 통제되지 않은 사용은 지적 재산 유출이나 코드 품질 저하 등의 보안 취약점을 유발할 수 있으므로, SDLC 내에서 안전하게 AI를 활용하기 위한 명확한 사용 정책과 보안 도구의 결합이 요구됩니다 [2, 8]. +- **보안 소프트웨어 개발 수명 주기 (SSDLC):** 개발 프로세스의 모든 단계(코드 리뷰, 병합 방식, 브랜칭 정책, 보안 코딩 가이드라인 등)에 보안을 내재화하여 SSDLC(안전한 소프트웨어 개발 수명 주기) 또는 DevSecOps 환경을 구축하는 것이 현대 소프트웨어 개발의 모범 사례로 권장됩니다 [3, 8, 9]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[SAST (정적 애플리케이션 보안 테스트)]], [[Quality Gates (품질 게이트)]], [[SSDLC (안전한 소프트웨어 개발 수명 주기)]], [[AI Code Review (AI 코드 리뷰)]] +- **Projects/Contexts:** [[SonarQube]], [[Snyk]], [[GitHub Code Security]] +- **Contradictions/Notes:** 소스에 따르면 SDLC에 AI 도구가 빠르게 도입되어 생산성이 혁신적으로 향상되고 있으나, 이를 뒷받침할 적절한 거버넌스와 보안 정책(SAST 도구 검사 등)이 동반되지 않을 경우 오히려 심각한 보안 취약점과 기술 부채의 증가를 초래할 수 있다고 경고합니다 [2]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/SDLC (소프트웨어 개발 수명 주기).md]] +--- diff --git a/AI/SFT (Supervised Fine-Tuning).md b/AI/SFT (Supervised Fine-Tuning).md new file mode 100644 index 00000000..befa3546 --- /dev/null +++ b/AI/SFT (Supervised Fine-Tuning).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-ACC5DA +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - SFT (Supervised Fine-Tuning)" +--- + +# [[SFT (Supervised Fine-Tuning)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/SFT (Supervised Fine-Tuning).md]] +--- diff --git a/AI/SHACL (Shapes Constraint Language).md b/AI/SHACL (Shapes Constraint Language).md new file mode 100644 index 00000000..4b9b4087 --- /dev/null +++ b/AI/SHACL (Shapes Constraint Language).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B7C59C +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - SHACL (Shapes Constraint Language)" +--- + +# [[SHACL (Shapes Constraint Language)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/SHACL (Shapes Constraint Language).md]] +--- diff --git a/AI/STEM Laboratory Virtualization.md b/AI/STEM Laboratory Virtualization.md new file mode 100644 index 00000000..24c6090f --- /dev/null +++ b/AI/STEM Laboratory Virtualization.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E8F7C8 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - STEM Laboratory Virtualization" +--- + +# [[STEM Laboratory Virtualization]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/STEM Laboratory Virtualization.md]] +--- diff --git a/AI/Scaffolding (Instructional Technique).md b/AI/Scaffolding (Instructional Technique).md new file mode 100644 index 00000000..fee5e97f --- /dev/null +++ b/AI/Scaffolding (Instructional Technique).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B407CA +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Scaffolding (Instructional Technique)" +--- + +# [[Scaffolding (Instructional Technique)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Scaffolding (Instructional Technique).md]] +--- diff --git a/AI/Scheduling-and-Timetabling.md b/AI/Scheduling-and-Timetabling.md new file mode 100644 index 00000000..3c2d8903 --- /dev/null +++ b/AI/Scheduling-and-Timetabling.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-FEBDAB +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Scheduling-and-Timetabling" +--- + +# [[Scheduling-and-Timetabling]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Scheduling-and-Timetabling.md]] +--- diff --git a/AI/Section-508-Compliance.md b/AI/Section-508-Compliance.md new file mode 100644 index 00000000..e6c1c5cd --- /dev/null +++ b/AI/Section-508-Compliance.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A56544 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Section-508-Compliance" +--- + +# [[Section-508-Compliance]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Section-508-Compliance.md]] +--- diff --git a/AI/Segmentsai.md b/AI/Segmentsai.md new file mode 100644 index 00000000..0866f322 --- /dev/null +++ b/AI/Segmentsai.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-A08DC7 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Segmentsai" +--- + +# [[Segmentsai]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Segments.ai는 수백만 개의 3D 포인트와 원활하게 상호작용할 수 있는 기능을 제공하는 3D 분할(segmentation) 플랫폼이자 라이다(LiDAR) 포인트 클라우드 라벨링 도구입니다 [1, 2]. 2025년에서 2026년 사이에 렌더링 파이프라인을 WebGL에서 WebGPU로 성공적으로 전환하여 100배의 성능 향상을 달성했습니다 [1, 3]. 이 플랫폼은 깊은 그래픽스 전문 지식 없이도 Three.js를 활용하여 특화된 성능 최적화를 구현한 대표적인 사례입니다 [2]. + +## 📖 구조화된 지식 (Synthesized Content) +* **라이다(LiDAR) 포인트 클라우드 라벨링 도구:** Segments.ai는 방대한 3D 포인트 클라우드 데이터를 처리하고 라벨링하는 도구를 제공하는 3D 분할 플랫폼입니다 [1]. +* **WebGPU로의 성공적인 마이그레이션:** 2025년과 2026년 사이에 기존의 WebGL 기반 시스템에서 Three.js의 WebGPURenderer를 사용하는 WebGPU 환경으로 성공적으로 마이그레이션했습니다 [1, 2]. 이 프로젝트는 크리에이티브 스튜디오인 Utsubo의 작업 포트폴리오에도 주요 성과로 포함되어 있습니다 [3]. +* **100배의 성능 향상(100x performance boost):** WebGPU로의 전환을 통해 기존 대비 100배에 달하는 극적인 성능 향상을 이뤄냈습니다 [1-3]. +* **대규모 데이터 처리의 효율성 확보:** 이러한 렌더링 성능 개선 덕분에 수백만 개의 점으로 구성된 방대한 데이터셋에서도 끊김 없이 부드럽고 원활한 상호작용(seamless interaction)이 가능해졌습니다 [1, 2]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGPU]], [[Three.js]], [[WebGL]], [[LiDAR point cloud]] +- **Projects/Contexts:** [[Utsubo]], [[Three.js WebGPU 마이그레이션 사례]] +- **Contradictions/Notes:** 소스에 관련하여 모순되는 정보는 없습니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Segments.ai.md]] +--- diff --git a/AI/Self-Consistency (자기 일관성 디코딩).md b/AI/Self-Consistency (자기 일관성 디코딩).md new file mode 100644 index 00000000..1cbae5eb --- /dev/null +++ b/AI/Self-Consistency (자기 일관성 디코딩).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E25B8B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Self-Consistency (자기 일관성 디코딩)" +--- + +# [[Self-Consistency (자기 일관성 디코딩)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Self-Consistency (자기 일관성 디코딩).md]] +--- diff --git a/AI/Self-Organized Criticality.md b/AI/Self-Organized Criticality.md new file mode 100644 index 00000000..69cb80dd --- /dev/null +++ b/AI/Self-Organized Criticality.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-01E518 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Self-Organized Criticality" +--- + +# [[Self-Organized Criticality]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Self-Organized Criticality.md]] +--- diff --git a/AI/Self-Play (자기 대결 기반 강화학습).md b/AI/Self-Play (자기 대결 기반 강화학습).md new file mode 100644 index 00000000..c72008ba --- /dev/null +++ b/AI/Self-Play (자기 대결 기반 강화학습).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-4CE048 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Self-Play (자기 대결 기반 강화학습)" +--- + +# [[Self-Play (자기 대결 기반 강화학습)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Self-Play (자기 대결 기반 강화학습).md]] +--- diff --git a/AI/Self-Regulation.md b/AI/Self-Regulation.md new file mode 100644 index 00000000..76a415f7 --- /dev/null +++ b/AI/Self-Regulation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-70F3AC +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Self-Regulation" +--- + +# [[Self-Regulation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Self-Regulation.md]] +--- diff --git a/AI/Semantic Grounding Provenance.md b/AI/Semantic Grounding Provenance.md new file mode 100644 index 00000000..c5febfd4 --- /dev/null +++ b/AI/Semantic Grounding Provenance.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-479D8D +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Semantic Grounding Provenance" +--- + +# [[Semantic Grounding Provenance]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Semantic Grounding & Provenance.md]] +--- diff --git a/AI/Semgrep Assistant.md b/AI/Semgrep Assistant.md new file mode 100644 index 00000000..777c4e9f --- /dev/null +++ b/AI/Semgrep Assistant.md @@ -0,0 +1,41 @@ +--- +id: P-REINFORCE-AUTO-484EAB +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Semgrep Assistant" +--- + +# [[Semgrep Assistant]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Semgrep Assistant는 빠른 패턴 매칭 기반의 정적 분석 도구인 Semgrep에 대형 언어 모델(LLM)을 결합하여 코드 리뷰 및 보안 분석을 고도화한 솔루션입니다. 이 도구는 노이즈 필터링, 취약점 결과 설명, 그리고 Pull Request(PR) 워크플로우 내에서의 자동 수정(autofix) 제안 등의 AI 기반 기능을 제공합니다. 과거의 트리아지(triage) 결정을 재사용하고 상황적 맥락(context)을 이해함으로써 오탐지(False Positives)를 대폭 줄여주며, 결과적으로 보안 엔지니어와 개발 플랫폼 팀의 분석 병목 현상을 해소하는 데 적합합니다. + +## 📖 구조화된 지식 (Synthesized Content) +**주요 기능 및 AI 활용 방식** +* **노이즈 필터링 (Noise Filtering):** 완화 가능한 컨텍스트(mitigating context)를 파악하여 가능성이 높은 오탐지(False Positives)를 억제합니다. Semgrep 측에 따르면 해당 기능을 켜는 당일에 20%의 노이즈가 감소하며, 최대 98%까지 오탐지를 필터링할 수 있습니다. +* **메모리(Memories) 및 자동 트리아지:** 사용자의 과거 트리아지(triage) 결정 사항을 기억하고 재사용하여 동일한 분석 작업을 반복하지 않도록 방지합니다. +* **개발자 친화적인 PR 중심 워크플로우:** 발견된 보안 이슈에 대한 설명과 수정(remediation) 가이드가 개발자가 실제 작업하는 Pull Request 내에 직접 표시되어 신속한 문제 해결을 돕습니다. + +**주요 강점 (Key Strengths)** +* **오픈소스 생태계와 속도:** 강력한 커뮤니티 룰(rule) 라이브러리를 보유한 오픈소스 기반 도구로, CI 스캔 시간이 중간값 기준 약 10초에 불과할 정도로 매우 빠르고 오버헤드가 적습니다. +* **높은 정확성 입증:** 보안 중심의 구성(security-focused configuration) 하에서 진행된 독립적인 테스트(Doyensec) 결과, OWASP 벤치마크에서 오탐지 0건을 기록하며 정확성을 입증했습니다. + +**잠재적 한계점 (Potential Limitations)** +* **기능 지원의 제한:** 커스텀 룰이나 커뮤니티 룰에서는 Assistant의 일부 기능이 작동하지 않을 수 있습니다. +* **베타 기능 및 구조적 한계:** 핵심 기능 중 하나인 노이즈 필터링이 여전히 '베타(beta)'로 명시되어 있어 대규모 도입 시 주의가 필요합니다. 또한 기반 기술이 '패턴 매칭'에 의존하기 때문에, 복잡한 비즈니스 로직이나 교차 파일(cross-file) 간의 데이터 흐름 문제를 탐지하는 데는 근본적인 한계가 존재합니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Static Application Security Testing (SAST)]], [[False Positive]], [[Pull Request (PR)]], [[LLM (Large Language Model)]] +- **Projects/Contexts:** [[DevSecOps Workflow]], [[AppSec (Application Security)]] +- **Contradictions/Notes:** 소스 분석에 따르면 Semgrep Assistant는 독립된 테스트에서 OWASP 벤치마크 기준 오탐지(False Positives) 제로(0)를 기록할 만큼 강력한 신호(signal)를 제공하지만, 동시에 AI 기반의 노이즈 필터링 기능은 공식적으로 '베타(beta)' 상태이므로 엔터프라이즈 규모로 운영 시 이를 인지하고 적용해야 한다는 상충되는 주의 사항이 존재합니다. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Semgrep Assistant.md]] +--- diff --git a/AI/Serious Games.md b/AI/Serious Games.md new file mode 100644 index 00000000..982269ee --- /dev/null +++ b/AI/Serious Games.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-4A3ECC +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Serious Games" +--- + +# [[Serious Games]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Serious Games.md]] +--- diff --git a/AI/Service-Design-Blueprinting.md b/AI/Service-Design-Blueprinting.md new file mode 100644 index 00000000..8c277099 --- /dev/null +++ b/AI/Service-Design-Blueprinting.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-07A1AA +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Service-Design-Blueprinting" +--- + +# [[Service-Design-Blueprinting]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Service-Design-Blueprinting.md]] +--- diff --git a/AI/Shannon-Entropy.md b/AI/Shannon-Entropy.md new file mode 100644 index 00000000..45f65bc6 --- /dev/null +++ b/AI/Shannon-Entropy.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-2A9F66 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Shannon-Entropy" +--- + +# [[Shannon-Entropy]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Shannon-Entropy.md]] +--- diff --git a/AI/SimCity (as a model of systemic interaction).md b/AI/SimCity (as a model of systemic interaction).md new file mode 100644 index 00000000..8bdfa7d4 --- /dev/null +++ b/AI/SimCity (as a model of systemic interaction).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-10C76A +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - SimCity (as a model of systemic interaction)" +--- + +# [[SimCity (as a model of systemic interaction)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/SimCity (as a model of systemic interaction).md]] +--- diff --git a/AI/Simulated History.md b/AI/Simulated History.md new file mode 100644 index 00000000..cec80aef --- /dev/null +++ b/AI/Simulated History.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-DEC9B0 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Simulated History" +--- + +# [[Simulated History]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Simulated History.md]] +--- diff --git a/AI/Simulator Sickness Questionnaire (SSQ).md b/AI/Simulator Sickness Questionnaire (SSQ).md new file mode 100644 index 00000000..6a3fef07 --- /dev/null +++ b/AI/Simulator Sickness Questionnaire (SSQ).md @@ -0,0 +1,36 @@ +--- +id: P-REINFORCE-AUTO-73720A +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Simulator Sickness Questionnaire (SSQ)" +--- + +# [[Simulator Sickness Questionnaire (SSQ)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 시뮬레이터 멀미 설문지(Simulator Sickness Questionnaire, SSQ)는 가상현실(VR) 및 시뮬레이터 연구에서 가상현실 멀미 증상을 자가 보고 방식으로 측정하기 위해 가장 널리 사용되는 도구입니다 [1]. 16개의 증상 목록을 바탕으로 0(없음)에서 3(심각함)까지의 4점 척도로 평가하며, 측정된 증상은 크게 메스꺼움, 안구 운동, 방향 감각 상실의 세 가지 하위 범주로 분류됩니다 [1]. + +## 📖 구조화된 지식 (Synthesized Content) +- **구조 및 척도:** SSQ는 16개의 증상 항목으로 구성된 인벤토리로, 사용자는 각 증상의 심각도를 0점(없음)부터 3점(심각함)까지의 4점 척도로 평가합니다 [1]. +- **증상 하위 척도(Subscales):** 증상 클러스터는 3가지 범주로 나뉘며, 일부 증상은 다른 하위 척도와 중복되어 포함됩니다 [1]. + - **메스꺼움(Nausea):** 타액 분비 증가, 트림, 위장 자극(stomach awareness) 등 위장 불편감과 관련된 7가지 증상 [1]. + - **안구 운동(Oculomotor):** 눈의 피로, 피로감, 초점 맞추기 등과 관련된 7가지 증상 [1]. + - **방향 감각 상실(Disorientation):** 현기증 및 현훈(vertigo)과 관련된 7가지 증상 [1]. +- **점수 산출 및 분류:** 원시 점수(Raw scores)는 총점과 각 하위 척도 점수를 계산하기 위해 서로 다른 가중치가 적용됩니다 [1]. 가중치가 적용된 SSQ 점수는 멀미 수준에 따라 '낮음(0-10)', '중간(10 초과-20)', '높음(20 초과)'의 3단계로 분류될 수 있습니다 [2]. 특히, 총점이 20점을 초과할 경우 해당 시뮬레이터는 문제가 있는(problem simulator) 것으로 간주됩니다 [3]. +- **활용 및 연구 결과:** VR 게임 및 시뮬레이션 경험이 사용자에게 미치는 부작용을 연구할 때 주로 사용됩니다 [1]. 예를 들어, 신체 활동을 동반하는 VR 게임 연구에서는 노출 직후 SSQ 총점과 하위 척도 점수가 모두 크게 증가하는 것으로 나타났습니다 [4, 5]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Virtual Reality Sickness]], [[Nausea]], [[Oculomotor]], [[Disorientation]] +- **Projects/Contexts:** [[Beat Saber Exergaming Study]] +- **Contradictions/Notes:** 연구에 따르면 SSQ 점수가 20점 이상일 경우 문제가 있는 시뮬레이터로 판단하지만, 이러한 높은 SSQ 점수가 사용자의 실제 일상생활 수행 능력 저하와 어떻게 연결되는지에 대해서는 아직 명확히 밝혀지지 않았으며 이는 향후 VR의 안전한 사용을 위해 해결해야 할 지식의 공백으로 남아있습니다 [3]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Simulator Sickness Questionnaire (SSQ).md]] +--- diff --git a/AI/Single-Source-of-Truth.md b/AI/Single-Source-of-Truth.md new file mode 100644 index 00000000..713f6863 --- /dev/null +++ b/AI/Single-Source-of-Truth.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9158CA +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Single-Source-of-Truth" +--- + +# [[Single-Source-of-Truth]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Single-Source-of-Truth.md]] +--- diff --git a/AI/Singularity (기술적 특이점).md b/AI/Singularity (기술적 특이점).md new file mode 100644 index 00000000..ed90d836 --- /dev/null +++ b/AI/Singularity (기술적 특이점).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-04DB11 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Singularity (기술적 특이점)" +--- + +# [[Singularity (기술적 특이점)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Singularity (기술적 특이점).md]] +--- diff --git a/AI/Skybound Protocol 구조 및 의존성 분석 (Dependency Mapping).md b/AI/Skybound Protocol 구조 및 의존성 분석 (Dependency Mapping).md new file mode 100644 index 00000000..006cd5f6 --- /dev/null +++ b/AI/Skybound Protocol 구조 및 의존성 분석 (Dependency Mapping).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A04161 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Skybound Protocol 구조 및 의존성 분석 (Dependency Mapping)" +--- + +# [[Skybound Protocol 구조 및 의존성 분석 (Dependency Mapping)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Skybound Protocol 구조 및 의존성 분석 (Dependency Mapping).md]] +--- diff --git a/AI/Skybound Protocol 데이터 및 제어 흐름 (Control Flow).md b/AI/Skybound Protocol 데이터 및 제어 흐름 (Control Flow).md new file mode 100644 index 00000000..3ddfbb82 --- /dev/null +++ b/AI/Skybound Protocol 데이터 및 제어 흐름 (Control Flow).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-1B8F72 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Skybound Protocol 데이터 및 제어 흐름 (Control Flow)" +--- + +# [[Skybound Protocol 데이터 및 제어 흐름 (Control Flow)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Skybound Protocol 데이터 및 제어 흐름 (Control Flow).md]] +--- diff --git a/AI/Skybound Protocol 코드리뷰.md b/AI/Skybound Protocol 코드리뷰.md new file mode 100644 index 00000000..60250a11 --- /dev/null +++ b/AI/Skybound Protocol 코드리뷰.md @@ -0,0 +1,37 @@ +--- +id: P-REINFORCE-AUTO-274080 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Skybound Protocol 코드리뷰" +--- + +# [[Skybound Protocol 코드리뷰]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> **Skybound Protocol**은 React와 TypeScript로 구현된 고성능 아카이브 스타일 슈팅 게임 엔진입니다. "Code-as-Data" 원칙에 따라 모든 게임 밸런스와 AI 행동 양식을 상수화하여 관리하며, 수만 개의 파티클과 복잡한 탄막 패턴을 웹 브라우저에서 60FPS로 유지하도록 최적화되어 있습니다. + +## 📖 구조화된 지식 (Synthesized Content) + + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[React Game Development]], [[Entity Component System (ECS)]], [[Canvas Physics]], [[Data-Driven Design]] +- **Projects/Contexts:** [[Antigravity Games]], [[Technical Bible Project]] +- **Contradictions/Notes:** + - **연산 최적화:** 현재 모든 거리 계산에 `Math.hypot`을 사용 중이나, 개체가 수천 개로 늘어날 경우 제곱근 연산 부하를 줄이기 위해 제곱 거리 비교(`dx*dx + dy*dy`) 방식 도입이 필요할 수 있습니다. + - **상태 관리:** React 환경임에도 불구하고 실시간 성능을 위해 가변(Mutable) 객체와 `ctx`를 통한 직접 수정을 혼용하고 있습니다. + +--- + +*Last updated: 2026-04-14* + +--- + +# 🕵️ Skybound Protocol 코드 리뷰 리포트 +- Raw Source: [[00_Raw/2026-04-20/Skybound Protocol 코드리뷰.md]] +--- diff --git a/AI/Snyk Checkmarx Endor Labs 등 종합 애플리케이션 보안 플랫폼.md b/AI/Snyk Checkmarx Endor Labs 등 종합 애플리케이션 보안 플랫폼.md new file mode 100644 index 00000000..b6ccdec2 --- /dev/null +++ b/AI/Snyk Checkmarx Endor Labs 등 종합 애플리케이션 보안 플랫폼.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-1D1222 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Snyk Checkmarx Endor Labs 등 종합 애플리케이션 보안 플랫폼" +--- + +# [[Snyk Checkmarx Endor Labs 등 종합 애플리케이션 보안 플랫폼]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Snyk, Checkmarx, Endor Labs 등은 소프트웨어 개발 수명 주기(SDLC) 전반에 걸쳐 코드의 취약점을 탐지하고 수정을 지원하는 종합 애플리케이션 보안 플랫폼입니다 [1-4]. 이들 플랫폼은 정적 애플리케이션 보안 테스트(SAST), 소프트웨어 구성 분석(SCA), 컨테이너 및 IaC(코드형 인프라) 스캔 등 다양한 보안 영역을 제공하며, '시프트 레프트(Shift-Left)' 전략을 통해 개발 초기 단계에서 보안 이슈를 해결하도록 돕습니다 [2, 3, 5, 6]. 최근에는 인공지능(AI)과 머신러닝 기술을 결합하여 오탐율을 줄이고 실시간 자동 수정 제안을 제공하는 형태로 고도화되고 있습니다 [7, 8]. + +## 📖 구조화된 지식 (Synthesized Content) +- **Snyk (Snyk Code 및 플랫폼군)**: 개발자 친화적인(Developer-first) 플랫폼을 지향하며, 자체 머신러닝 엔진인 DeepCode AI를 통해 빠르고 정확한 SAST 스캔(Snyk Code)을 제공합니다 [4, 6]. IDE, PR(Pull Request), CI/CD 파이프라인 워크플로우에 완벽히 통합되며, Snyk Open Source(SCA), Snyk Container, Snyk IaC 제품들과 결합하여 단일 대시보드에서 포괄적인 보안 가시성을 제공합니다 [6, 9, 10]. AI가 생성한 수정 사항을 자동으로 재테스트하여 검증하는 Agent Fix 기능이 특징입니다 [6, 11]. +- **Checkmarx**: 대규모 엔터프라이즈 환경과 복잡한 거버넌스를 지닌 조직에 적합한 플랫폼입니다 [11, 12]. SAST를 핵심으로 하여 SCA, 비밀키(Secrets), IaC 스캔을 지원하며, 최신 AI Query Builder를 도입하여 자연어로 탐지 로직을 커스터마이징할 수 있습니다 [2]. IDE 내에서 코드를 수정해주는 에이전트 기반의 'Developer Assist' 기능을 통해 AI 지원 문제 해결(AI-assisted remediation)을 제공합니다 [2]. +- **Endor Labs**: 소프트웨어 구성 분석(SCA) 배경에서 출발해 SAST 영역으로 확장한 플랫폼으로, '도달 가능성(Reachability) 분석'에 독보적인 강점을 가집니다 [3, 11]. 서드파티 의존성 패키지와 자사 코드의 취약점이 실제 프로덕션의 함수 실행 경로(Call-graph)에서 호출되는지를 분석하여, SAST와 SCA 발견 항목을 통합된 단일 위험 뷰로 제공함으로써 개발자의 경고 피로(Alert fatigue)를 크게 줄여줍니다 [3, 13, 14]. +- **AI 기반 탐지 및 수정 자동화**: 기존의 단순 규칙 및 패턴 매칭 기반 도구의 한계(비즈니스 로직 이해 부족 및 높은 오탐률)를 극복하기 위해, 이들 플랫폼은 AI-Native 구조를 채택하여 코드의 문맥과 데이터 흐름(Data flow)을 심층 분석하고, 취약점의 우선순위를 평가하여 개발자에게 실행 가능한(Actionable) 패치 코드를 즉시 제안합니다 [2, 6-8, 15]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Static Application Security Testing (SAST)]], [[Software Composition Analysis (SCA)]], [[DevSecOps]] +- **Projects/Contexts:** [[Shift-Left Security]], [[Reachability Analysis]], [[AI-powered Remediation]] +- **Contradictions/Notes:** 소스에 따르면 각 플랫폼은 명확한 타겟층과 상충되는 트레이드오프를 가집니다. Checkmarx는 엔터프라이즈 수준의 맞춤 설정과 거버넌스에 강력하지만 소규모 팀에게는 무거울 수 있습니다 [12]. 반면 Snyk은 빠른 IDE 통합과 채택률로 개발자 경험에 탁월하지만, 언어 지원 범위가 타 엔터프라이즈 벤더보다 다소 좁을 수 있습니다 [16, 17]. 또한, Endor Labs는 강력한 도달 가능성 분석을 자랑하지만 전용 SAST 도구에 비해 SAST 룰 커버리지나 언어 지원 확장이 아직 진행 중이라는 한계가 있습니다 [13]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Snyk, Checkmarx, Endor Labs 등 종합 애플리케이션 보안 플랫폼.md]] +--- diff --git a/AI/Social Constructivism.md b/AI/Social Constructivism.md new file mode 100644 index 00000000..dd0b1ebc --- /dev/null +++ b/AI/Social Constructivism.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A416E7 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Social Constructivism" +--- + +# [[Social Constructivism]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Social Constructivism.md]] +--- diff --git a/AI/Social Systems Theory.md b/AI/Social Systems Theory.md new file mode 100644 index 00000000..88566ee4 --- /dev/null +++ b/AI/Social Systems Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-700A72 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Social Systems Theory" +--- + +# [[Social Systems Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Social Systems Theory.md]] +--- diff --git a/AI/Soft Navigation.md b/AI/Soft Navigation.md new file mode 100644 index 00000000..e3628305 --- /dev/null +++ b/AI/Soft Navigation.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-A5364E +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Soft Navigation" +--- + +# [[Soft Navigation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 소프트 내비게이션(Soft Navigation)은 단일 페이지 자바스크립트 애플리케이션(SPA)에서 URL이 변경될 때 웹사이트 전체를 다시 로드하지 않고 콘텐츠를 전환하는 방식을 의미합니다 [1]. 기존의 성능 지표인 최대 콘텐츠 풀 페인트(Largest Contentful Paint, LCP)는 초기 내비게이션의 로드 시간만 측정하기 때문에, 후속 탐색 성능을 파악하는 데 큰 사각지대가 존재해 왔습니다 [2]. 이를 해결하기 위해 Chrome은 소프트 내비게이션 발생을 감지하고 상호작용에 따른 DOM 수정 사항을 관찰하여 개별 로드 시간을 측정할 수 있는 새로운 API를 테스트하고 있습니다 [2]. + +## 📖 구조화된 지식 (Synthesized Content) +- **소프트 내비게이션의 작동 방식:** 오늘날 많은 웹사이트는 URL이 변경될 때마다 전체를 새로고침하지 않습니다 [1]. 대신 단일 페이지 애플리케이션 구조를 취하여, 사용자가 링크를 클릭할 때 전체 로드가 아닌 소프트 내비게이션만을 발생시킵니다 [1]. +- **성능 측정의 사각지대와 한계:** 현재 LCP 지표는 웹사이트의 초기 로드 시간만을 측정합니다 [2]. 단일 페이지 앱은 흔히 초기 로딩 속도가 느린 대신 이후의 탐색(소프트 내비게이션)이 빠르다고 주장하지만, 현재로서는 이를 명확히 측정할 성능 데이터가 비어있어 개발자와 운영자에게 상당한 사각지대를 형성하고 있습니다 [2, 3]. +- **Chrome의 오리진 트라이얼(Origin Trial) 및 해결 노력:** Google은 2024년에 소프트 내비게이션 성능을 측정하기 위한 실험을 진행했으나 완성된 API를 도출하지는 못했습니다 [2]. 이후 2025년 8월, Chrome은 새로운 오리진 트라이얼을 시작했습니다 [2]. 제안된 API는 소프트 내비게이션이 발생하는 시점을 감지하고, 사용자 상호작용에 대응해 일어나는 DOM의 수정 사항을 관찰하여 각 소프트 내비게이션의 로드 시간을 브라우저가 측정할 수 있도록 합니다 [2]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Single-Page JavaScript Applications]], [[Largest Contentful Paint]], [[Origin Trials]] +- **Projects/Contexts:** [[Chrome 2025 Soft Navigations Origin Trial]] +- **Contradictions/Notes:** 소스 내에 상충하는 정보는 없습니다. 다만, 단일 페이지 앱이 '더 빠른 후속 탐색'을 제공한다는 약속을 실제로 이행하고 있는지 여부를 알기 위해서는 Chrome에 소프트 내비게이션 성능 측정 지원이 반드시 도입되어야 한다는 점이 개발자들의 더 나은 의사결정을 위한 핵심 과제로 지적되고 있습니다 [3]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Soft Navigation.md]] +--- diff --git a/AI/SonarQube.md b/AI/SonarQube.md new file mode 100644 index 00000000..8dd469fb --- /dev/null +++ b/AI/SonarQube.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-0785CD +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - SonarQube" +--- + +# [[SonarQube]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> SonarQube는 소프트웨어의 품질, 보안, 유지보수성을 보장하기 위해 설계된 강력한 정적 애플리케이션 보안 테스트(SAST) 및 자동화된 코드 리뷰 플랫폼이다 [1-3]. 결정론적인 정적 분석 엔진과 AI 기능을 활용하여 사람이 작성한 코드뿐만 아니라 AI가 생성한 코드의 결함, 보안 취약점, 코드 스멜을 자동으로 식별한다 [3-5]. 개발자의 IDE부터 CI/CD 파이프라인, 풀 리퀘스트(PR) 워크플로우에 원활하게 통합되어 코드가 릴리스되기 전에 일관된 품질 표준과 규정 준수를 강제한다 [6-8]. + +## 📖 구조화된 지식 (Synthesized Content) +- **다양한 제품군 및 확장성:** 자체 관리형 환경을 위한 'SonarQube Server', SaaS 솔루션인 'SonarQube Cloud', IDE에서 실시간 피드백을 제공하는 무료 플러그인 'SonarQube for IDE', 그리고 AI 코딩 어시스턴트(Cursor, Claude Code, Windsurf 등)와 분석 엔진을 직접 연결하는 'SonarQube MCP Server'로 구성된다 [9-11]. 이 플랫폼은 35개 이상의 프로그래밍 언어와 프레임워크를 지원하며, 사용자 수, 프로젝트 수, 스캔 횟수에 제한이 없는 무제한 확장을 지원한다 [4, 6, 12, 13]. +- **보안 및 규정 준수 검사:** 고급 SAST(Static Application Security Testing) 및 테인트(Taint) 분석을 통해 소스 코드 전반에서 보안 취약점, 유출된 비밀(secrets), 위험한 데이터 흐름을 릴리스 전에 찾아낸다 [14-16]. 이를 통해 코드가 PCI, OWASP, CWE, STIG, CASA 등의 주요 보안 및 규정 준수 표준을 만족하도록 돕는다 [14, 16]. +- **AI 생성 코드 검증 (AI Code Assurance):** AI가 작성한 코드는 스타일과 품질 면에서 매우 불규칙할 수 있으므로, SonarQube는 이를 자동으로 감지하고 명확한 라벨링과 배지(badging)를 통해 관리 및 모니터링한다 [4, 12]. 비결정적인 AI 어시스턴트의 코드에 대해 독립적이고 결정론적인 검증을 제공하여 취약점과 정확성 문제를 조기에 차단한다 [17]. 또한 일부 버전에서는 LLM을 활용해 보안 문제와 코드 스멜에 대한 수정 제안을 제공하는 'AI CodeFix' 기능을 지원한다 [3]. +- **품질 게이트와 'Clean as You Code' 방법론:** CI/CD 파이프라인 및 PR 리뷰 단계에서 정책 기반의 '품질 게이트(Quality Gates)'를 강제하여 합격/불합격 여부를 결정한다 [6, 8]. 특히, 기존 코드의 백로그를 처리하기보다는 새롭게 추가되거나 변경된 코드에 집중하여 코드의 품질을 점진적으로 개선해 나가는 "Clean as You Code" 방법론을 채택하고 있다 [3, 18]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[SAST]], [[Quality Gates]], [[Model Context Protocol (MCP)]], [[Clean as You Code]] +- **Projects/Contexts:** [[CI/CD 및 Pull Request 자동화 리뷰]], [[AI 생성 코드 검증(AI Code Assurance)]] +- **Contradictions/Notes:** SonarQube는 코드 품질과 보안을 통합적으로 제공하는 매우 강력한 플랫폼이지만, 취약점 탐지 방식이 주로 규칙(Rule) 및 패턴에 의존하고 있다. 따라서 컨텍스트와 비즈니스 로직을 자체적으로 이해해야 하는 새로운 형태의 결함이나 취약점을 탐지하는 데는 최신 AI 네이티브 기반 스캐너에 비해 덜 효과적일 수 있다는 한계가 지적된다 [3, 19]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/SonarQube.md]] +--- diff --git a/AI/Sparse Autoencoder (SAE).md b/AI/Sparse Autoencoder (SAE).md new file mode 100644 index 00000000..342d2ec6 --- /dev/null +++ b/AI/Sparse Autoencoder (SAE).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A11EAF +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Sparse Autoencoder (SAE)" +--- + +# [[Sparse Autoencoder (SAE)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Sparse Autoencoder (SAE).md]] +--- diff --git a/AI/Spatial UI.md b/AI/Spatial UI.md new file mode 100644 index 00000000..a96e39d0 --- /dev/null +++ b/AI/Spatial UI.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E02F81 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Spatial UI" +--- + +# [[Spatial UI]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Spatial UI.md]] +--- diff --git a/AI/Specification Gaming (명세 우회).md b/AI/Specification Gaming (명세 우회).md new file mode 100644 index 00000000..991b6984 --- /dev/null +++ b/AI/Specification Gaming (명세 우회).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-1BD229 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Specification Gaming (명세 우회)" +--- + +# [[Specification Gaming (명세 우회)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Specification Gaming (명세 우회).md]] +--- diff --git a/AI/Sports Neuroscience.md b/AI/Sports Neuroscience.md new file mode 100644 index 00000000..06440731 --- /dev/null +++ b/AI/Sports Neuroscience.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-80CF35 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Sports Neuroscience" +--- + +# [[Sports Neuroscience]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Sports Neuroscience.md]] +--- diff --git a/AI/Sports-Medicine-Rehabilitation.md b/AI/Sports-Medicine-Rehabilitation.md new file mode 100644 index 00000000..fcd57b04 --- /dev/null +++ b/AI/Sports-Medicine-Rehabilitation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-727225 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Sports-Medicine-Rehabilitation" +--- + +# [[Sports-Medicine-Rehabilitation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Sports-Medicine-Rehabilitation.md]] +--- diff --git a/AI/Sports-Performance-Optimization.md b/AI/Sports-Performance-Optimization.md new file mode 100644 index 00000000..0a82981e --- /dev/null +++ b/AI/Sports-Performance-Optimization.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-FEEFC9 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Sports-Performance-Optimization" +--- + +# [[Sports-Performance-Optimization]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Sports-Performance-Optimization.md]] +--- diff --git a/AI/Sports-Psychology.md b/AI/Sports-Psychology.md new file mode 100644 index 00000000..460ce457 --- /dev/null +++ b/AI/Sports-Psychology.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D4C5E8 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Sports-Psychology" +--- + +# [[Sports-Psychology]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Sports-Psychology.md]] +--- diff --git a/AI/Sports-Science-Training.md b/AI/Sports-Science-Training.md new file mode 100644 index 00000000..038b4bb7 --- /dev/null +++ b/AI/Sports-Science-Training.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9A7390 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Sports-Science-Training" +--- + +# [[Sports-Science-Training]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Sports-Science-Training.md]] +--- diff --git a/AI/Sprague-Grundy Theorem.md b/AI/Sprague-Grundy Theorem.md new file mode 100644 index 00000000..6a305e3b --- /dev/null +++ b/AI/Sprague-Grundy Theorem.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-3D42A2 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Sprague-Grundy Theorem" +--- + +# [[Sprague-Grundy Theorem]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Sprague-Grundy Theorem.md]] +--- diff --git a/AI/Static Application Security Testing (SAST).md b/AI/Static Application Security Testing (SAST).md new file mode 100644 index 00000000..58bbf095 --- /dev/null +++ b/AI/Static Application Security Testing (SAST).md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-95EC02 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Static Application Security Testing (SAST)" +--- + +# [[Static Application Security Testing (SAST)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Static Application Security Testing(SAST)는 애플리케이션을 직접 실행하지 않고 소스 코드나 바이트코드를 분석하여 잠재적인 보안 취약점과 결함을 찾아내는 화이트박스 테스트(white-box testing) 기법입니다 [1, 2]. 이 방식은 소프트웨어 개발 수명 주기(SDLC)의 초기 단계에 적용되어 코드가 배포되기 전에 문제를 식별하고 수정할 수 있게 해줍니다 [1, 3, 4]. 최근에는 인공지능(AI)과 기계 학습(ML) 기술이 결합되어 전통적인 규칙 기반 탐지의 한계를 넘어 코드의 문맥을 이해하고, 자동으로 수정 코드를 제안하는 수준으로 진화하고 있습니다 [5-7]. + +## 📖 구조화된 지식 (Synthesized Content) +* **작동 원리 및 주요 탐지 영역:** SAST는 코드의 구조와 구문을 분석하며, 데이터 흐름(Data flow), 테인트 분석(Taint tracking) 및 의미론적 분석을 수행하여 외부에서 유입된 신뢰할 수 없는 데이터가 안전하게 처리되는지 추적합니다 [2, 8, 9]. 이를 통해 SQL 주입(SQL Injection), 크로스 사이트 스크립팅(XSS), 경로 탐색(Path traversal), 하드코딩된 비밀번호(Secrets) 등 OWASP Top 10에 해당하는 주요 보안 취약점을 탐지합니다 [10, 11]. +* **개발 워크플로우 통합 (Shift-Left 전략):** SAST의 가장 큰 장점 중 하나는 개발 초기에 보안을 내재화하는 'Shift-Left' 접근법을 가능하게 한다는 것입니다 [12-14]. IDE(통합 개발 환경), 풀 리퀘스트(Pull Request), CI/CD 파이프라인 등 개발자의 기존 워크플로우에 긴밀하게 통합되어 실시간 피드백을 제공하므로, 취약점을 발견하고 수정하는 데 드는 비용과 시간을 크게 절감할 수 있습니다 [15-20]. +* **전통적 SAST의 장점과 한계:** 앱을 실행할 필요가 없고, 테스트 케이스를 작성하지 않아도 전체 코드베이스를 검사할 수 있으며 자동화가 용이합니다 [19]. 더불어 PCI, OWASP, CWE 등 산업 표준 규정 준수를 증명하는 데 기여합니다 [11, 21]. 반면 런타임 컨텍스트가 부족하여 오탐률(False Positive)이 높을 수 있고(기존 도구의 경우 50~80%에 달함), 지원하는 프로그래밍 언어에 대한 의존성이 존재한다는 단점이 있습니다 [22-24]. +* **AI 기반 SAST의 등장:** 최근에는 Snyk Code, Corgea 등 거대 언어 모델(LLM)과 기계 학습을 도입한 차세대 SAST 도구들이 등장했습니다 [6, 7, 18, 22]. 이들은 파일 간 분석(Interfile analysis)을 통해 여러 모듈에 걸친 취약점을 추적하고 의미론적으로 코드를 이해함으로써 오탐률을 줄입니다 [25, 26]. 뿐만 아니라, 개발자가 즉각적으로 적용할 수 있는 자동 수정 코드(Auto-fix)까지 생성하여 신속한 조치를 돕습니다 [6, 27-30]. +* **타 보안 테스트 도구와의 차이점:** 실행 중인 상태의 애플리케이션을 외부에서 블랙박스 형태로 테스트하는 DAST(Dynamic Application Security Testing)와 대조적입니다 [1, 31]. 또한 서드파티 오픈소스 라이브러리의 알려진 취약점(CVE)과 라이선스를 검사하는 SCA(Software Composition Analysis)와 달리, SAST는 개발 팀이 직접 작성한 1사(자체) 소스 코드 내의 로직 결함을 찾아내는 데 집중합니다 [32, 33]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Dynamic Application Security Testing (DAST)]], [[Software Composition Analysis (SCA)]], [[Shift-Left]], [[False Positives]], [[Artificial Intelligence (AI) Code Review]] +- **Projects/Contexts:** 소프트웨어 개발 수명 주기(SDLC) 내에서 보안을 강화하기 위해 CI/CD 파이프라인, IDE 플러그인, Pull Request 등에 연동하여 사용되는 맥락을 가집니다. 대표적인 도구로는 [[Snyk Code]], [[Corgea]], [[SonarQube]], [[Checkmarx]], [[Semgrep]], [[Veracode]], [[GitHub Advanced Security]] 등이 널리 사용되고 있습니다 [7, 18, 22, 27, 34-38]. +- **Contradictions/Notes:** 전통적인 정적 분석(SAST)은 빠르고 일관된 검사를 제공하지만, 비즈니스 로직에 대한 문맥 이해 부족과 높은 오탐률(False Positives)이라는 한계가 지적됩니다 [23, 24]. 이를 해결하기 위해 최근에는 사람이 판단을 내리는 수동 코드 리뷰(Manual Code Review)와 AI가 결합된 정적 분석을 혼합하여 사용하는 하이브리드(Hybrid) 접근 방식이 필수적인 보안 검토의 모범 사례로 권장되고 있습니다 [39-41]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Static Application Security Testing (SAST).md]] +--- diff --git a/AI/Static-Analysis-in-JavaScript-Ecosystem.md b/AI/Static-Analysis-in-JavaScript-Ecosystem.md new file mode 100644 index 00000000..02e33980 --- /dev/null +++ b/AI/Static-Analysis-in-JavaScript-Ecosystem.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6BE2FD +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Static-Analysis-in-JavaScript-Ecosystem" +--- + +# [[Static-Analysis-in-JavaScript-Ecosystem]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Static-Analysis-in-JavaScript-Ecosystem.md]] +--- diff --git a/AI/Static-Analysis-in-JavaScript.md b/AI/Static-Analysis-in-JavaScript.md new file mode 100644 index 00000000..1026c06c --- /dev/null +++ b/AI/Static-Analysis-in-JavaScript.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-AC87D9 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Static-Analysis-in-JavaScript" +--- + +# [[Static-Analysis-in-JavaScript]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Static-Analysis-in-JavaScript.md]] +--- diff --git a/AI/Static-Analysis-in-Software-Engineering.md b/AI/Static-Analysis-in-Software-Engineering.md new file mode 100644 index 00000000..af2bb74a --- /dev/null +++ b/AI/Static-Analysis-in-Software-Engineering.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-97FE65 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Static-Analysis-in-Software-Engineering" +--- + +# [[Static-Analysis-in-Software-Engineering]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Static-Analysis-in-Software-Engineering.md]] +--- diff --git a/AI/Static-Analysis-of-Interfaces.md b/AI/Static-Analysis-of-Interfaces.md new file mode 100644 index 00000000..b0e98dd7 --- /dev/null +++ b/AI/Static-Analysis-of-Interfaces.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-FCF0B0 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Static-Analysis-of-Interfaces" +--- + +# [[Static-Analysis-of-Interfaces]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Static-Analysis-of-Interfaces.md]] +--- diff --git a/AI/Stochastic Processes.md b/AI/Stochastic Processes.md new file mode 100644 index 00000000..52d69fb0 --- /dev/null +++ b/AI/Stochastic Processes.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-71E76D +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Stochastic Processes" +--- + +# [[Stochastic Processes]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Stochastic Processes.md]] +--- diff --git a/AI/Stochastic-Games.md b/AI/Stochastic-Games.md new file mode 100644 index 00000000..3817d518 --- /dev/null +++ b/AI/Stochastic-Games.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-4892A4 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Stochastic-Games" +--- + +# [[Stochastic-Games]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Stochastic-Games.md]] +--- diff --git a/AI/Sum-Types.md b/AI/Sum-Types.md new file mode 100644 index 00000000..d7a13309 --- /dev/null +++ b/AI/Sum-Types.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-BDFB36 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Sum-Types" +--- + +# [[Sum-Types]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Sum-Types.md]] +--- diff --git a/AI/Superposition (중첩).md b/AI/Superposition (중첩).md new file mode 100644 index 00000000..3fe1778c --- /dev/null +++ b/AI/Superposition (중첩).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-1840DD +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Superposition (중첩)" +--- + +# [[Superposition (중첩)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Superposition (중첩).md]] +--- diff --git a/AI/Supply-Chain-Management.md b/AI/Supply-Chain-Management.md new file mode 100644 index 00000000..35dc7d38 --- /dev/null +++ b/AI/Supply-Chain-Management.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-58899C +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Supply-Chain-Management" +--- + +# [[Supply-Chain-Management]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Supply-Chain-Management.md]] +--- diff --git a/AI/Surreal Numbers.md b/AI/Surreal Numbers.md new file mode 100644 index 00000000..2a574be5 --- /dev/null +++ b/AI/Surreal Numbers.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-785AE1 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Surreal Numbers" +--- + +# [[Surreal Numbers]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Surreal Numbers.md]] +--- diff --git a/AI/Survival Horror Genre.md b/AI/Survival Horror Genre.md new file mode 100644 index 00000000..c761fbf5 --- /dev/null +++ b/AI/Survival Horror Genre.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-2AE52E +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Survival Horror Genre" +--- + +# [[Survival Horror Genre]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Survival Horror Genre.md]] +--- diff --git a/AI/Sustainable Development Goals (SDGs).md b/AI/Sustainable Development Goals (SDGs).md new file mode 100644 index 00000000..65255e96 --- /dev/null +++ b/AI/Sustainable Development Goals (SDGs).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-189E36 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Sustainable Development Goals (SDGs)" +--- + +# [[Sustainable Development Goals (SDGs)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Sustainable Development Goals (SDGs).md]] +--- diff --git a/AI/Sustainable-Development-Goals (SDGs).md b/AI/Sustainable-Development-Goals (SDGs).md new file mode 100644 index 00000000..96b46bc8 --- /dev/null +++ b/AI/Sustainable-Development-Goals (SDGs).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-C74AAC +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Sustainable-Development-Goals (SDGs)" +--- + +# [[Sustainable-Development-Goals (SDGs)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Sustainable-Development-Goals (SDGs).md]] +--- diff --git a/AI/Sycophancy (LLM 아첨 문제).md b/AI/Sycophancy (LLM 아첨 문제).md new file mode 100644 index 00000000..87611aa9 --- /dev/null +++ b/AI/Sycophancy (LLM 아첨 문제).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-0AA310 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Sycophancy (LLM 아첨 문제)" +--- + +# [[Sycophancy (LLM 아첨 문제)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Sycophancy (LLM 아첨 문제).md]] +--- diff --git a/AI/Symbolic-Logic.md b/AI/Symbolic-Logic.md new file mode 100644 index 00000000..d5de31a8 --- /dev/null +++ b/AI/Symbolic-Logic.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5793E0 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Symbolic-Logic" +--- + +# [[Symbolic-Logic]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Symbolic-Logic.md]] +--- diff --git a/AI/Synaptic Plasticity.md b/AI/Synaptic Plasticity.md new file mode 100644 index 00000000..39785997 --- /dev/null +++ b/AI/Synaptic Plasticity.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-DC2DA0 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Synaptic Plasticity" +--- + +# [[Synaptic Plasticity]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Synaptic Plasticity.md]] +--- diff --git a/AI/SynthID (구글 AI 식별 기술).md b/AI/SynthID (구글 AI 식별 기술).md new file mode 100644 index 00000000..b33b1360 --- /dev/null +++ b/AI/SynthID (구글 AI 식별 기술).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A89657 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - SynthID (구글 AI 식별 기술)" +--- + +# [[SynthID (구글 AI 식별 기술)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/SynthID (구글 AI 식별 기술).md]] +--- diff --git a/AI/Synthetic Data (합성 데이터).md b/AI/Synthetic Data (합성 데이터).md new file mode 100644 index 00000000..d779d41f --- /dev/null +++ b/AI/Synthetic Data (합성 데이터).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-532E5E +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Synthetic Data (합성 데이터)" +--- + +# [[Synthetic Data (합성 데이터)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Synthetic Data (합성 데이터).md]] +--- diff --git a/AI/System Prompt (시스템 프롬프트).md b/AI/System Prompt (시스템 프롬프트).md new file mode 100644 index 00000000..31349567 --- /dev/null +++ b/AI/System Prompt (시스템 프롬프트).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-BEA248 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - System Prompt (시스템 프롬프트)" +--- + +# [[System Prompt (시스템 프롬프트)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/System Prompt (시스템 프롬프트).md]] +--- diff --git a/AI/Systemic-Cohesion.md b/AI/Systemic-Cohesion.md new file mode 100644 index 00000000..10b43a27 --- /dev/null +++ b/AI/Systemic-Cohesion.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E0B412 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Systemic-Cohesion" +--- + +# [[Systemic-Cohesion]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Systemic-Cohesion.md]] +--- diff --git a/AI/Systems Thinking in Management.md b/AI/Systems Thinking in Management.md new file mode 100644 index 00000000..9e4936c1 --- /dev/null +++ b/AI/Systems Thinking in Management.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-8B0A69 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Systems Thinking in Management" +--- + +# [[Systems Thinking in Management]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Systems Thinking in Management.md]] +--- diff --git a/AI/Systems Thinking.md b/AI/Systems Thinking.md new file mode 100644 index 00000000..96cfd529 --- /dev/null +++ b/AI/Systems Thinking.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6EBBC9 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Systems Thinking" +--- + +# [[Systems Thinking]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Systems Thinking.md]] +--- diff --git a/AI/Taxonomy-and-Ontology.md b/AI/Taxonomy-and-Ontology.md new file mode 100644 index 00000000..1c051f5b --- /dev/null +++ b/AI/Taxonomy-and-Ontology.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-93E139 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Taxonomy-and-Ontology" +--- + +# [[Taxonomy-and-Ontology]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Taxonomy-and-Ontology.md]] +--- diff --git a/AI/Temporal Difference Learning.md b/AI/Temporal Difference Learning.md new file mode 100644 index 00000000..0b58a573 --- /dev/null +++ b/AI/Temporal Difference Learning.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-92B6E9 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Temporal Difference Learning" +--- + +# [[Temporal Difference Learning]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Temporal Difference Learning.md]] +--- diff --git a/AI/Test-Time Compute Scaling (추론 시간 계산 스케일링).md b/AI/Test-Time Compute Scaling (추론 시간 계산 스케일링).md new file mode 100644 index 00000000..e8f261a6 --- /dev/null +++ b/AI/Test-Time Compute Scaling (추론 시간 계산 스케일링).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E16EB6 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Test-Time Compute Scaling (추론 시간 계산 스케일링)" +--- + +# [[Test-Time Compute Scaling (추론 시간 계산 스케일링)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Test-Time Compute Scaling (추론 시간 계산 스케일링).md]] +--- diff --git a/AI/Texture-Synthesis.md b/AI/Texture-Synthesis.md new file mode 100644 index 00000000..a12c2351 --- /dev/null +++ b/AI/Texture-Synthesis.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-197D49 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Texture-Synthesis" +--- + +# [[Texture-Synthesis]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Texture-Synthesis.md]] +--- diff --git a/AI/The Immersive Sim Taxonomy Debate.md b/AI/The Immersive Sim Taxonomy Debate.md new file mode 100644 index 00000000..858d5746 --- /dev/null +++ b/AI/The Immersive Sim Taxonomy Debate.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-4613F1 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - The Immersive Sim Taxonomy Debate" +--- + +# [[The Immersive Sim Taxonomy Debate]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/The 'Immersive Sim' Taxonomy Debate.md]] +--- diff --git a/AI/The Last of Us Series.md b/AI/The Last of Us Series.md new file mode 100644 index 00000000..ff05119e --- /dev/null +++ b/AI/The Last of Us Series.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-2121F1 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - The Last of Us Series" +--- + +# [[The Last of Us Series]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/The Last of Us Series.md]] +--- diff --git a/AI/The Overwatch League Case Study.md b/AI/The Overwatch League Case Study.md new file mode 100644 index 00000000..2960c83d --- /dev/null +++ b/AI/The Overwatch League Case Study.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B644A1 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - The Overwatch League Case Study" +--- + +# [[The Overwatch League Case Study]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/The Overwatch League Case Study.md]] +--- diff --git a/AI/The Science of Well-Being (Yale).md b/AI/The Science of Well-Being (Yale).md new file mode 100644 index 00000000..159c2a95 --- /dev/null +++ b/AI/The Science of Well-Being (Yale).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-C3C1C2 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - The Science of Well-Being (Yale)" +--- + +# [[The Science of Well-Being (Yale)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/The Science of Well-Being (Yale).md]] +--- diff --git a/AI/The-Collapse-of-Utopian-Ideologies.md b/AI/The-Collapse-of-Utopian-Ideologies.md new file mode 100644 index 00000000..324d452b --- /dev/null +++ b/AI/The-Collapse-of-Utopian-Ideologies.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-12C4DD +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - The-Collapse-of-Utopian-Ideologies" +--- + +# [[The-Collapse-of-Utopian-Ideologies]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/The-Collapse-of-Utopian-Ideologies.md]] +--- diff --git a/AI/Themework-Integration.md b/AI/Themework-Integration.md new file mode 100644 index 00000000..fdd0e2a8 --- /dev/null +++ b/AI/Themework-Integration.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-159F6C +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Themework-Integration" +--- + +# [[Themework-Integration]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Themework-Integration.md]] +--- diff --git a/AI/Threejs WebGL 렌더링 최적화.md b/AI/Threejs WebGL 렌더링 최적화.md new file mode 100644 index 00000000..d65c7bb0 --- /dev/null +++ b/AI/Threejs WebGL 렌더링 최적화.md @@ -0,0 +1,47 @@ +--- +id: P-REINFORCE-AUTO-FE50FB +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Threejs WebGL 렌더링 최적화" +--- + +# [[Threejs WebGL 렌더링 최적화]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Three.js WebGL 렌더링 최적화는 주로 CPU와 GPU 간의 통신 병목 현상을 유발하는 드로우 콜(Draw Call)을 줄이고, 메모리 및 렌더링 연산 효율을 극대화하는 일련의 과정입니다 [1-6]. 이를 위해 인스턴싱(Instancing), 배칭(Batching), 기하학적 병합, 텍스처/모델 압축 및 LOD(Level of Detail)와 같은 다양한 기법이 복합적으로 적용됩니다 [7-12]. 최적화를 통해 렌더링 프레임 속도를 방어할 수 있으나, 각 기법은 절두체 컬링(Frustum Culling) 정밀도 저하나 오버드로우(Overdraw) 유발과 같은 구조적 한계와 트레이드오프를 가지므로 씬(Scene)의 특성에 맞는 전략적 접근이 필수적입니다 [13-17]. + +## 📖 구조화된 지식 (Synthesized Content) +**드로우 콜(Draw Call) 최소화 전략** +* **드로우 콜의 병목:** 드로우 콜은 CPU가 GPU에 렌더링 상태를 설정하고 기하학적 데이터를 그리도록 지시하는 명령으로, 원활한 60fps 성능을 위해서는 프레임당 100개 미만으로 유지하는 것이 강력히 권장됩니다 [3, 9, 18, 19]. 폴리곤 수보다 드로우 콜의 수가 CPU를 마비시키는 주된 원인이 됩니다 [5]. +* **InstancedMesh:** 동일한 지오메트리와 재질을 공유하는 다수의 객체를 단 한 번의 드로우 콜로 렌더링합니다 [9, 20]. 렌더링 속도와 메모리 효율을 크게 높이지만, 엔진 레벨에서 전체 인스턴스에 대한 단일 바운딩 볼륨을 사용하여 개별 객체의 시야 절두체 컬링(Frustum Culling)이 불가합니다 [13, 21]. 또한 렌더링 순서 자동 정렬이 되지 않아 픽셀 중복 연산(Overdraw)이 발생할 수 있으며 스킨드 애니메이션 적용이 매우 제한적입니다 [15, 16, 22]. +* **BatchedMesh:** 동일한 재질을 사용하지만 지오메트리가 서로 다른 객체들을 하나의 드로우 콜로 묶어 처리할 수 있게 합니다 [10, 23-27]. 인스턴스별 컬링 및 가시성 제어가 가능하여 다양성을 확보할 수 있으나, 내부적인 정렬(Sorting)과 컬링 과정에서 막대한 CPU 부하를 유발하여 오히려 프레임이 하락하는 사례도 존재합니다 [27-30]. +* **Geometry 병합(Merging):** 움직이지 않는 정적인 환경 요소는 `BufferGeometryUtils`를 사용하여 하나의 지오메트리로 병합하면 드로우 콜을 효과적으로 1회로 줄일 수 있습니다 [10, 31, 32]. + +**에셋 데이터 및 메모리 관리** +* **데이터 압축:** Draco 압축을 적용하여 지오메트리 파일 크기를 최대 90-95% 줄일 수 있습니다 [7, 12, 18]. 텍스처는 KTX2 및 Basis Universal 형식으로 압축하여 VRAM 메모리 점유율을 PNG 대비 약 75~90% 낮출 수 있습니다 [7, 18, 33, 34]. +* **LOD (Level of Detail):** 카메라와의 거리에 따라 폴리곤 수가 적은 메쉬로 교체하거나 원경의 객체를 임포스터(Billboard Impostor)로 대체하여 연산량을 크게 줄일 수 있습니다 [8, 11, 19, 35, 36]. +* **명시적 리소스 해제:** Three.js는 GPU 리소스를 자동으로 가비지 컬렉팅하지 않으므로, 사용이 끝난 지오메트리, 재질, 텍스처, 렌더 타겟에 대해 반드시 `.dispose()`를 호출하여 GPU 메모리 누수를 방지해야 합니다 [37-40]. + +**셰이더, 라이팅 및 포스트 프로세싱 최적화** +* 텍스처 아틀라스(Texture Atlas)나 배열 텍스처(Data Array Textures)를 사용하여 여러 재질을 하나로 통합하면, 재질 스위칭으로 인한 상태 변경 오버헤드를 대폭 줄일 수 있습니다 [26, 41-44]. +* 모바일 기기에서는 셰이더 정밀도를 `mediump`로 설정하여 성능을 높이고, 분기문(Branching/Conditionals) 대신 `mix()` 및 `step()`을 활용하며, 동적 루프를 피해야 합니다 [45, 46]. +* 복잡한 씬에서는 Depth Pre-Pass 기법을 도입하여 보이지 않는 프래그먼트에 대한 무거운 셰이더 연산(오버드로우)을 사전에 차단할 수 있습니다 [47, 48]. +* 정적 씬에서는 라이트맵과 그림자를 런타임 이전에 베이크(Bake)하여 실시간 연산을 피하는 것이 좋습니다 [49]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[드로우 콜 (Draw Call)]], [[InstancedMesh]], [[BatchedMesh]], [[LOD (Level of Detail)]], [[Frustum Culling]], [[Draco 압축]], [[Texture Atlas]], [[WebGPU]] +- **Projects/Contexts:** [[Utsubo Three.js Optimization Tips (2026)]], [[InstancedMesh2 라이브러리]], [[Threedium Image-To-3D WebGL 파이프라인]], [[Three.js Roadmap: Draw Calls]] +- **Contradictions/Notes:** + - `InstancedMesh`는 드로우 콜을 혁신적으로 줄여주지만, 자동 정렬 기능이 없고 전체를 렌더링하는 특성 때문에 씬 내 객체들이 중첩될 경우 막대한 오버드로우 연산이 발생하여, 1회 드로우 콜임에도 다수의 개별 메쉬를 렌더링할 때보다 오히려 프레임률(FPS)이 낮아지는 기현상이 발생할 수 있습니다 [13-16, 50]. + - `BatchedMesh`는 여러 지오메트리를 하나의 드로우 콜로 모아주어 효율적인 것으로 소개되나, 객체의 가시성을 확인하고 렌더링 순서를 정렬하는 연산 비용이 커 특정 다량의 객체 렌더링 씬에서는 병합 메쉬(Merged Mesh)를 사용할 때보다 CPU 사용량을 치솟게 만들고 30~50% 더 낮은 FPS를 기록하는 성능 병목 현상이 보고되고 있습니다 [28-30, 51, 52]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Three.js WebGL 렌더링 최적화.md]] +--- diff --git a/AI/Threejs WebGPURenderer.md b/AI/Threejs WebGPURenderer.md new file mode 100644 index 00000000..92cb20e2 --- /dev/null +++ b/AI/Threejs WebGPURenderer.md @@ -0,0 +1,37 @@ +--- +id: P-REINFORCE-AUTO-2EFC4E +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Threejs WebGPURenderer" +--- + +# [[Threejs WebGPURenderer]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Three.js WebGPURenderer는 2025년 r171 버전부터 프로덕션 환경에 도입된 그래픽 렌더러로, 브라우저가 3D 그래픽을 처리하는 방식에 근본적인 전환을 가져왔습니다 [1-3]. 복잡한 설정 없이 `three/webgpu`에서 모듈을 불러와 사용할 수 있으며, 브라우저가 WebGPU를 지원하지 않을 경우 자동으로 WebGL 2로 대체(fallback)되는 기능을 제공합니다 [2, 4, 5]. 드로우 콜(Draw call)이 많은 장면이나 컴퓨트 셰이더(Compute Shader)가 필요한 복잡한 효과에서 기존 대비 2~10배 이상의 성능 향상을 가능하게 합니다 [5, 6]. + +## 📖 구조화된 지식 (Synthesized Content) +* **초기화 및 호환성 처리:** + WebGPURenderer를 사용하기 위해서는 GPU 어댑터 및 디바이스를 요청하는 비동기 초기화(`await renderer.init()`)가 필수적이며, 이를 누락하면 렌더링이 소리 없이 실패합니다 [2, 7]. 모든 주요 브라우저에서 WebGPU를 지원하지 않더라도 자동으로 WebGL 2로 전환하여 호환성을 유지하므로 별도의 코드 패스를 작성할 필요가 없습니다 [4]. 필요에 따라 테스트나 디버깅을 위해 `forceWebGL: true` 옵션을 사용하여 강제로 WebGL 모드로 렌더링할 수도 있습니다 [8]. +* **성능 및 컴퓨트 셰이더(Compute Shader) 활용:** + 이 렌더러의 가장 큰 강점 중 하나는 컴퓨트 셰이더의 지원입니다. 이를 통해 50,000개 수준에서 병목이 생기던 CPU 기반 입자 시스템이나 물리 시뮬레이션을 GPU로 오프로드하여 수백만 단위까지 실시간으로 처리할 수 있습니다 [9-12]. 컴퓨트 연산이 포함된 씬을 렌더링할 때는 GPU 작업의 올바른 동기화를 위해 일반 `render()` 대신 `await renderer.renderAsync(scene, camera)` 함수를 사용해야 합니다 [13]. +* **TSL(Three Shader Language)과의 통합:** + 커스텀 셰이더나 포스트 프로세싱 구현 시 TSL을 사용하는 것이 표준으로 자리 잡았습니다 [4, 14]. TSL로 작성된 코드는 WebGPU용 WGSL과 WebGL용 GLSL 양쪽으로 자동 컴파일되어 코드를 두 번 작성할 필요가 없습니다 [4, 15]. WebGPU 환경의 포스트 프로세싱 역시 기존 `pmndrs/postprocessing` 라이브러리 대신 TSL 노드를 기반으로 한 Three.js의 내장 포스트 프로세싱 파이프라인을 사용합니다 [14]. +* **메모리 및 렌더링 구조 최적화:** + WebGPURenderer는 렌더 루프 과정에서 불필요한 객체 할당을 제거하여 가비지 컬렉터 부하를 방지하고, 리소스를 바인드 그룹(Bind group)으로 묶어 배치(Batch) 처리하는 구조를 채택하여 성능을 최적화했습니다 [11, 16]. 실제로 3D 데이터 플랫폼인 Segments.ai는 이 렌더러로 마이그레이션하여 수백만 개의 포인트 클라우드를 렌더링할 때 100배의 성능 향상을 거두었습니다 [17, 18]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[TSL (Three Shader Language)]], [[Compute Shaders]], [[WebGL 2 fallback]] +- **Projects/Contexts:** [[Segments.ai]], [[Expo 2025 Osaka]] +- **Contradictions/Notes:** 소스는 WebGPU가 분명한 성능 우위를 제공하지만, 기존의 WebGL 기반 프로젝트가 이미 60fps로 부드럽게 실행되고 있으며 성능 한계에 부딪히지 않았다면 무리해서 시급히 마이그레이션할 필요는 없다고 조언합니다 [9, 19, 20]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Three.js WebGPURenderer.md]] +--- diff --git a/AI/Threejs 성능 최적화.md b/AI/Threejs 성능 최적화.md new file mode 100644 index 00000000..51af4e6b --- /dev/null +++ b/AI/Threejs 성능 최적화.md @@ -0,0 +1,49 @@ +--- +id: P-REINFORCE-AUTO-965BAB +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Threejs 성능 최적화" +--- + +# [[Threejs 성능 최적화]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Three.js 성능 최적화는 CPU와 GPU 간의 통신 병목 현상을 유발하는 드로우 콜(Draw Call)을 줄이고 렌더링 파이프라인의 효율을 극대화하여 높은 프레임 속도를 유지하는 과정이다 [1-3]. 주로 `InstancedMesh` 및 `BatchedMesh`를 활용한 인스턴싱/배칭 기법, 텍스처와 지오메트리 압축, 프러스텀 컬링(Frustum Culling) 및 LOD(Level of Detail) 기법이 핵심적으로 사용된다 [4-9]. 최근에는 WebGL의 구조적 한계를 극복하기 위해 WebGPU와 컴퓨트 셰이더를 기반으로 한 GPU 주도 렌더링(GPU-driven Rendering) 기술로 발전하고 있다 [10, 11]. + +## 📖 구조화된 지식 (Synthesized Content) +* **드로우 콜 최적화 (Draw Call Optimization)** + * 드로우 콜은 CPU가 GPU에 렌더링 명령을 내리는 과정으로, 프레임당 100개 이하로 유지하는 것이 부하를 막는 핵심 규칙이다 [1, 2, 4]. + * 동일한 지오메트리와 재질을 여러 번 렌더링할 때는 `InstancedMesh`를 사용하여 단일 드로우 콜로 처리해야 한다 [4, 6]. + * 재질은 같지만 지오메트리가 다를 경우에는 여러 지오메트리를 하나의 렌더링 호출로 묶어주는 `BatchedMesh`를 사용하는 것이 효율적이다 [12-14]. + * 서로 독립적으로 움직일 필요가 없는 정적인 배경이나 환경 객체는 `BufferGeometryUtils`를 사용하여 로드 시점에 하나의 메쉬로 병합(Merge)하는 것이 좋다 [12, 15]. + +* **에셋 및 메모리 관리 (Asset & Memory Management)** + * 형상을 유지하며 폴리곤을 줄이는 데시메이션(Decimation) 작업을 거치고, Draco 확장을 통해 지오메트리 파일 크기를 최대 95%까지 압축할 수 있다 [16-18]. + * 텍스처의 경우, GPU 메모리에서 압축 상태를 유지하는 KTX2나 Basis Universal 포맷을 사용해 메모리 대역폭 점유율을 크게 낮춰야 한다 [16, 19]. + * 수백 개의 텍스처가 필요할 때는 바인딩 오버헤드를 막기 위해 텍스처 아틀라스(Texture Atlas)나 여러 텍스처 레이어를 인덱스로 접근할 수 있는 배열 텍스처(Data Array Textures)를 활용해야 한다 [7, 20, 21]. + * Three.js는 GPU 자원을 자동으로 가비지 컬렉션하지 않으므로, 사용이 끝난 지오메트리, 재질, 텍스처는 반드시 `.dispose()`를 명시적으로 호출해 메모리 누수를 방지해야 한다 [22, 23]. + +* **가시성 판단 및 LOD (Visibility & Level of Detail)** + * 카메라와의 거리에 따라 고해상도 메쉬를 저해상도 메쉬나 임포스터(Impostor)로 교체하는 LOD 기법을 통해 폴리곤 렌더링 비용을 크게 절감할 수 있다 [8, 24-26]. + * Three.js의 프러스텀 컬링(Frustum Culling)은 화면 밖의 객체를 렌더링에서 제외하지만, `InstancedMesh`의 경우 개별 인스턴스가 아닌 전체 바운딩 볼륨을 기준으로 컬링하기 때문에 보이지 않는 객체까지 GPU 정점 연산을 수행하는 낭비가 발생할 수 있다 [27]. 이를 보완하기 위해 BVH(Bounding Volume Hierarchy)와 같은 공간 분할 자료구조를 사용하거나 GPU 컴퓨트 셰이더 기반의 컬링 기법이 필요하다 [28, 29]. + +* **WebGPU 전환 및 GPU 주도 렌더링 (WebGPU & Compute Shaders)** + * 전통적인 `InstancedMesh`는 자동 정렬의 부재로 인해 깊이 오버드로우(Overdraw)가 발생하고 투명도 블렌딩 오류를 야기하며, 본(Bone) 기반 애니메이션 처리에 취약하다는 구조적 한계가 있다 [30-32]. + * 이러한 병목을 해소하기 위해 Three.js는 WebGPU 렌더러와 단일 코드로 관리되는 TSL(Three Shader Language)을 전면 도입했다 [33, 34]. + * 컴퓨트 셰이더를 활용하면 CPU에서 처리하던 충돌 감지, 지형 생성, 수백만 개의 파티클 업데이트 및 컬링을 GPU에서 병렬로 직접 수행할 수 있어 극적인 성능 향상을 이룰 수 있다 [35-37]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[InstancedMesh]], [[BatchedMesh]], [[WebGPU]], [[드로우 콜 (Draw Call)]], [[LOD (Level of Detail)]] +- **Projects/Contexts:** [[Utsubo의 WebGPU 도입 (Segments.ai 등)]], [[InstancedMesh2 라이브러리]], [[Three.js r171 WebGPURenderer]] +- **Contradictions/Notes:** 드로우 콜을 줄이기 위해 `InstancedMesh`나 `BatchedMesh`를 도입하더라도 항상 성능이 향상되는 것은 아니다. `InstancedMesh`는 개별 컬링의 부재와 오버드로우로 인해 오히려 개별 렌더링보다 GPU FPS를 떨어뜨릴 수 있다는 점이 지적된다 [27, 30, 38]. 또한 `BatchedMesh`의 경우에도 천만 개 이상의 많은 폴리곤과 지오메트리를 처리할 때는 내부적인 다중 그리기(multi-draw) 버퍼 업로드 및 패킹 오버헤드로 인해 CPU 점유율이 40~60%까지 치솟고 프레임이 급감하는 현상이 보고되어, 상황에 따른 벤치마킹이 필수적이다 [39-43]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Three.js 성능 최적화.md]] +--- diff --git a/AI/Time Series Analysis.md b/AI/Time Series Analysis.md new file mode 100644 index 00000000..e4bbe742 --- /dev/null +++ b/AI/Time Series Analysis.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D84BD7 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Time Series Analysis" +--- + +# [[Time Series Analysis]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Time Series Analysis.md]] +--- diff --git a/AI/Time to Interactive (TTI).md b/AI/Time to Interactive (TTI).md new file mode 100644 index 00000000..0d2efe79 --- /dev/null +++ b/AI/Time to Interactive (TTI).md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-8492DF +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Time to Interactive (TTI)" +--- + +# [[Time to Interactive (TTI)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Time to Interactive (TTI)는 Chrome Lighthouse에서 주로 사용되는 웹 성능 측정 지표입니다 [1]. 이는 페이지 렌더링이 완료되고, JavaScript 실행이 끝나며, 브라우저의 백그라운드 작업이 완료되어 페이지가 완전히 상호작용 가능한 상태(fully interactive)가 될 때까지 걸리는 시간을 측정합니다 [1]. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Largest Contentful Paint (LCP)]], [[First Input Delay (FID)]] +- **Projects/Contexts:** [[Chrome Lighthouse]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Time to Interactive (TTI).md]] +--- diff --git a/AI/Tokenomics.md b/AI/Tokenomics.md new file mode 100644 index 00000000..9008567b --- /dev/null +++ b/AI/Tokenomics.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-84C772 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Tokenomics" +--- + +# [[Tokenomics]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Tokenomics.md]] +--- diff --git a/AI/Topology-of-Strategy-Spaces.md b/AI/Topology-of-Strategy-Spaces.md new file mode 100644 index 00000000..a1df60fd --- /dev/null +++ b/AI/Topology-of-Strategy-Spaces.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-2D6874 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Topology-of-Strategy-Spaces" +--- + +# [[Topology-of-Strategy-Spaces]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Topology-of-Strategy-Spaces.md]] +--- diff --git a/AI/Trajectory-Planning.md b/AI/Trajectory-Planning.md new file mode 100644 index 00000000..9a885658 --- /dev/null +++ b/AI/Trajectory-Planning.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A39C55 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Trajectory-Planning" +--- + +# [[Trajectory-Planning]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Trajectory-Planning.md]] +--- diff --git a/AI/Transhumanism.md b/AI/Transhumanism.md new file mode 100644 index 00000000..159822f8 --- /dev/null +++ b/AI/Transhumanism.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B576FD +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Transhumanism" +--- + +# [[Transhumanism]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Transhumanism.md]] +--- diff --git a/AI/Transient Hypofrontality.md b/AI/Transient Hypofrontality.md new file mode 100644 index 00000000..dcc75aad --- /dev/null +++ b/AI/Transient Hypofrontality.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-DFE168 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Transient Hypofrontality" +--- + +# [[Transient Hypofrontality]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Transient Hypofrontality.md]] +--- diff --git a/AI/Transient-Hypofrontality.md b/AI/Transient-Hypofrontality.md new file mode 100644 index 00000000..fd44afb6 --- /dev/null +++ b/AI/Transient-Hypofrontality.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-18B59B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Transient-Hypofrontality" +--- + +# [[Transient-Hypofrontality]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Transient-Hypofrontality.md]] +--- diff --git a/AI/Transit-Oriented-Development (TOD).md b/AI/Transit-Oriented-Development (TOD).md new file mode 100644 index 00000000..0d6b7a09 --- /dev/null +++ b/AI/Transit-Oriented-Development (TOD).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-50DD5F +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Transit-Oriented-Development (TOD)" +--- + +# [[Transit-Oriented-Development (TOD)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Transit-Oriented-Development (TOD).md]] +--- diff --git a/AI/Tree-of-Thought (ToT 사고 트리).md b/AI/Tree-of-Thought (ToT 사고 트리).md new file mode 100644 index 00000000..14f2e74a --- /dev/null +++ b/AI/Tree-of-Thought (ToT 사고 트리).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E38A5C +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Tree-of-Thought (ToT 사고 트리)" +--- + +# [[Tree-of-Thought (ToT 사고 트리)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Tree-of-Thought (ToT, 사고 트리).md]] +--- diff --git a/AI/Type Definition Files (DefinitelyTyped).md b/AI/Type Definition Files (DefinitelyTyped).md new file mode 100644 index 00000000..177483ee --- /dev/null +++ b/AI/Type Definition Files (DefinitelyTyped).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-CF3F9B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Type Definition Files (DefinitelyTyped)" +--- + +# [[Type Definition Files (DefinitelyTyped)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Type Definition Files (DefinitelyTyped).md]] +--- diff --git a/AI/Type-Composition-via-Intersection-Types.md b/AI/Type-Composition-via-Intersection-Types.md new file mode 100644 index 00000000..a81ee9bc --- /dev/null +++ b/AI/Type-Composition-via-Intersection-Types.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-FBAE38 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Type-Composition-via-Intersection-Types" +--- + +# [[Type-Composition-via-Intersection-Types]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Type-Composition-via-Intersection-Types.md]] +--- diff --git a/AI/Type-Guards.md b/AI/Type-Guards.md new file mode 100644 index 00000000..0ac69c2e --- /dev/null +++ b/AI/Type-Guards.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-1B3627 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Type-Guards" +--- + +# [[Type-Guards]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Type-Guards.md]] +--- diff --git a/AI/Type-Inference.md b/AI/Type-Inference.md new file mode 100644 index 00000000..d8503fd1 --- /dev/null +++ b/AI/Type-Inference.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-37FB9B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Type-Inference" +--- + +# [[Type-Inference]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Type-Inference.md]] +--- diff --git a/AI/Type-Intersection.md b/AI/Type-Intersection.md new file mode 100644 index 00000000..0e5645db --- /dev/null +++ b/AI/Type-Intersection.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D16150 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Type-Intersection" +--- + +# [[Type-Intersection]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Type-Intersection.md]] +--- diff --git a/AI/Type-Safety-in-Distributed-Systems.md b/AI/Type-Safety-in-Distributed-Systems.md new file mode 100644 index 00000000..86cb59ed --- /dev/null +++ b/AI/Type-Safety-in-Distributed-Systems.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D64613 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Type-Safety-in-Distributed-Systems" +--- + +# [[Type-Safety-in-Distributed-Systems]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Type-Safety-in-Distributed-Systems.md]] +--- diff --git a/AI/Type-Safety-in-Domain-Driven-Design.md b/AI/Type-Safety-in-Domain-Driven-Design.md new file mode 100644 index 00000000..8be9bee6 --- /dev/null +++ b/AI/Type-Safety-in-Domain-Driven-Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-C88D89 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Type-Safety-in-Domain-Driven-Design" +--- + +# [[Type-Safety-in-Domain-Driven-Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Type-Safety-in-Domain-Driven-Design.md]] +--- diff --git a/AI/Type-Safety-in-Generics.md b/AI/Type-Safety-in-Generics.md new file mode 100644 index 00000000..a530c1b2 --- /dev/null +++ b/AI/Type-Safety-in-Generics.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D5AEC1 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Type-Safety-in-Generics" +--- + +# [[Type-Safety-in-Generics]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Type-Safety-in-Generics.md]] +--- diff --git a/AI/Type-Soundness.md b/AI/Type-Soundness.md new file mode 100644 index 00000000..9358beb3 --- /dev/null +++ b/AI/Type-Soundness.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9C23CB +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Type-Soundness" +--- + +# [[Type-Soundness]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Type-Soundness.md]] +--- diff --git a/AI/Type-Theory.md b/AI/Type-Theory.md new file mode 100644 index 00000000..bcc8d1db --- /dev/null +++ b/AI/Type-Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-3E115A +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Type-Theory" +--- + +# [[Type-Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Type-Theory.md]] +--- diff --git a/AI/Type-Unification.md b/AI/Type-Unification.md new file mode 100644 index 00000000..187972c5 --- /dev/null +++ b/AI/Type-Unification.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-190EA7 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Type-Unification" +--- + +# [[Type-Unification]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Type-Unification.md]] +--- diff --git a/AI/TypeScript Compiler (tsc).md b/AI/TypeScript Compiler (tsc).md new file mode 100644 index 00000000..861f2e6d --- /dev/null +++ b/AI/TypeScript Compiler (tsc).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E23D67 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - TypeScript Compiler (tsc)" +--- + +# [[TypeScript Compiler (tsc)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/TypeScript Compiler (tsc).md]] +--- diff --git a/AI/TypeScript Declaration Files (dts) Design.md b/AI/TypeScript Declaration Files (dts) Design.md new file mode 100644 index 00000000..6ea7e836 --- /dev/null +++ b/AI/TypeScript Declaration Files (dts) Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-EE6A06 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - TypeScript Declaration Files (dts) Design" +--- + +# [[TypeScript Declaration Files (dts) Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/TypeScript Declaration Files (.d.ts) Design.md]] +--- diff --git a/AI/TypeScript Interface Design.md b/AI/TypeScript Interface Design.md new file mode 100644 index 00000000..fd9506be --- /dev/null +++ b/AI/TypeScript Interface Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-2B3B7E +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - TypeScript Interface Design" +--- + +# [[TypeScript Interface Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/TypeScript Interface Design.md]] +--- diff --git a/AI/TypeScript Type System Design.md b/AI/TypeScript Type System Design.md new file mode 100644 index 00000000..7761a326 --- /dev/null +++ b/AI/TypeScript Type System Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-616782 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - TypeScript Type System Design" +--- + +# [[TypeScript Type System Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/TypeScript Type System Design.md]] +--- diff --git a/AI/TypeScript-Advanced-Type-System-Design.md b/AI/TypeScript-Advanced-Type-System-Design.md new file mode 100644 index 00000000..11afb726 --- /dev/null +++ b/AI/TypeScript-Advanced-Type-System-Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-3E5992 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - TypeScript-Advanced-Type-System-Design" +--- + +# [[TypeScript-Advanced-Type-System-Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/TypeScript-Advanced-Type-System-Design.md]] +--- diff --git a/AI/TypeScript-Compiler-API-Integration.md b/AI/TypeScript-Compiler-API-Integration.md new file mode 100644 index 00000000..604d403d --- /dev/null +++ b/AI/TypeScript-Compiler-API-Integration.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-C996EE +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - TypeScript-Compiler-API-Integration" +--- + +# [[TypeScript-Compiler-API-Integration]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/TypeScript-Compiler-API-Integration.md]] +--- diff --git a/AI/TypeScript-Domain-Driven-Design.md b/AI/TypeScript-Domain-Driven-Design.md new file mode 100644 index 00000000..918341be --- /dev/null +++ b/AI/TypeScript-Domain-Driven-Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-1EE94B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - TypeScript-Domain-Driven-Design" +--- + +# [[TypeScript-Domain-Driven-Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/TypeScript-Domain-Driven-Design.md]] +--- diff --git a/AI/TypeScript-Interface-Design.md b/AI/TypeScript-Interface-Design.md new file mode 100644 index 00000000..3de67588 --- /dev/null +++ b/AI/TypeScript-Interface-Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-8A42E4 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - TypeScript-Interface-Design" +--- + +# [[TypeScript-Interface-Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/TypeScript-Interface-Design.md]] +--- diff --git a/AI/TypeScript-Type-System-Architecture.md b/AI/TypeScript-Type-System-Architecture.md new file mode 100644 index 00000000..30caeb9d --- /dev/null +++ b/AI/TypeScript-Type-System-Architecture.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-82C949 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - TypeScript-Type-System-Architecture" +--- + +# [[TypeScript-Type-System-Architecture]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/TypeScript-Type-System-Architecture.md]] +--- diff --git a/AI/TypeScript-Type-System-Design.md b/AI/TypeScript-Type-System-Design.md new file mode 100644 index 00000000..1eadf4b1 --- /dev/null +++ b/AI/TypeScript-Type-System-Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-F844F1 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - TypeScript-Type-System-Design" +--- + +# [[TypeScript-Type-System-Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/TypeScript-Type-System-Design.md]] +--- diff --git a/AI/TypeScript-Type-System-Interface-Design.md b/AI/TypeScript-Type-System-Interface-Design.md new file mode 100644 index 00000000..313458af --- /dev/null +++ b/AI/TypeScript-Type-System-Interface-Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9A759D +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - TypeScript-Type-System-Interface-Design" +--- + +# [[TypeScript-Type-System-Interface-Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/TypeScript-Type-System-Interface-Design.md]] +--- diff --git a/AI/TypeScript-Type-System.md b/AI/TypeScript-Type-System.md new file mode 100644 index 00000000..1c6f3276 --- /dev/null +++ b/AI/TypeScript-Type-System.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6060FE +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - TypeScript-Type-System" +--- + +# [[TypeScript-Type-System]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/TypeScript-Type-System.md]] +--- diff --git a/AI/UX-Design-and-Engagement.md b/AI/UX-Design-and-Engagement.md new file mode 100644 index 00000000..d5ea0967 --- /dev/null +++ b/AI/UX-Design-and-Engagement.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6D50AA +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - UX-Design-and-Engagement" +--- + +# [[UX-Design-and-Engagement]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/UX-Design-and-Engagement.md]] +--- diff --git a/AI/UX-Research-Methodologies.md b/AI/UX-Research-Methodologies.md new file mode 100644 index 00000000..d4310520 --- /dev/null +++ b/AI/UX-Research-Methodologies.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-037092 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - UX-Research-Methodologies" +--- + +# [[UX-Research-Methodologies]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/UX-Research-Methodologies.md]] +--- diff --git a/AI/Ubiquitous Computing Paradigm.md b/AI/Ubiquitous Computing Paradigm.md new file mode 100644 index 00000000..bd90d979 --- /dev/null +++ b/AI/Ubiquitous Computing Paradigm.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-C59CA1 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Ubiquitous Computing Paradigm" +--- + +# [[Ubiquitous Computing Paradigm]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Ubiquitous Computing Paradigm.md]] +--- diff --git a/AI/Ubiquitous Computing.md b/AI/Ubiquitous Computing.md new file mode 100644 index 00000000..f842b465 --- /dev/null +++ b/AI/Ubiquitous Computing.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-8C0151 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Ubiquitous Computing" +--- + +# [[Ubiquitous Computing]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Ubiquitous Computing.md]] +--- diff --git a/AI/Ubiquitous-Computing.md b/AI/Ubiquitous-Computing.md new file mode 100644 index 00000000..66f4f900 --- /dev/null +++ b/AI/Ubiquitous-Computing.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6333BB +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Ubiquitous-Computing" +--- + +# [[Ubiquitous-Computing]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Ubiquitous-Computing.md]] +--- diff --git a/AI/Ubiquitous-Language-Encoding.md b/AI/Ubiquitous-Language-Encoding.md new file mode 100644 index 00000000..2792dc21 --- /dev/null +++ b/AI/Ubiquitous-Language-Encoding.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-3B5892 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Ubiquitous-Language-Encoding" +--- + +# [[Ubiquitous-Language-Encoding]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Ubiquitous-Language-Encoding.md]] +--- diff --git a/AI/Union-Types-vs-Overloading.md b/AI/Union-Types-vs-Overloading.md new file mode 100644 index 00000000..39e5bcda --- /dev/null +++ b/AI/Union-Types-vs-Overloading.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-13D0FE +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Union-Types-vs-Overloading" +--- + +# [[Union-Types-vs-Overloading]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Union-Types-vs-Overloading.md]] +--- diff --git a/AI/Universal-Design-Principles.md b/AI/Universal-Design-Principles.md new file mode 100644 index 00000000..c655002d --- /dev/null +++ b/AI/Universal-Design-Principles.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-701DFC +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Universal-Design-Principles" +--- + +# [[Universal-Design-Principles]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Universal-Design-Principles.md]] +--- diff --git a/AI/Urban Resilience Strategies.md b/AI/Urban Resilience Strategies.md new file mode 100644 index 00000000..a6ef41ab --- /dev/null +++ b/AI/Urban Resilience Strategies.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-C3A9D0 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Urban Resilience Strategies" +--- + +# [[Urban Resilience Strategies]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Urban Resilience Strategies.md]] +--- diff --git a/AI/Urban-Planning.md b/AI/Urban-Planning.md new file mode 100644 index 00000000..0916ab65 --- /dev/null +++ b/AI/Urban-Planning.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A67C66 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Urban-Planning" +--- + +# [[Urban-Planning]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Urban-Planning.md]] +--- diff --git a/AI/Utility Theory.md b/AI/Utility Theory.md new file mode 100644 index 00000000..2c196da9 --- /dev/null +++ b/AI/Utility Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D4C836 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Utility Theory" +--- + +# [[Utility Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Utility Theory.md]] +--- diff --git a/AI/VIA Institute on Character.md b/AI/VIA Institute on Character.md new file mode 100644 index 00000000..c4749b5c --- /dev/null +++ b/AI/VIA Institute on Character.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-4C752E +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - VIA Institute on Character" +--- + +# [[VIA Institute on Character]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/VIA Institute on Character.md]] +--- diff --git a/AI/Value Object Pattern.md b/AI/Value Object Pattern.md new file mode 100644 index 00000000..8a9ba032 --- /dev/null +++ b/AI/Value Object Pattern.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-314692 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Value Object Pattern" +--- + +# [[Value Object Pattern]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Value Object Pattern.md]] +--- diff --git a/AI/Value-Objects.md b/AI/Value-Objects.md new file mode 100644 index 00000000..86709d91 --- /dev/null +++ b/AI/Value-Objects.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-038FBF +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Value-Objects" +--- + +# [[Value-Objects]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Value-Objects.md]] +--- diff --git a/AI/Variational-Autoencoders.md b/AI/Variational-Autoencoders.md new file mode 100644 index 00000000..aea9d8dd --- /dev/null +++ b/AI/Variational-Autoencoders.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-92A652 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Variational-Autoencoders" +--- + +# [[Variational-Autoencoders]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Variational-Autoencoders.md]] +--- diff --git a/AI/Visual Positioning Systems (VPS).md b/AI/Visual Positioning Systems (VPS).md new file mode 100644 index 00000000..9d8b2464 --- /dev/null +++ b/AI/Visual Positioning Systems (VPS).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5B3EE3 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Visual Positioning Systems (VPS)" +--- + +# [[Visual Positioning Systems (VPS)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Visual Positioning Systems (VPS).md]] +--- diff --git a/AI/WAI-ARIA-Accessible-Rich-Internet-Applications.md b/AI/WAI-ARIA-Accessible-Rich-Internet-Applications.md new file mode 100644 index 00000000..40b1fce2 --- /dev/null +++ b/AI/WAI-ARIA-Accessible-Rich-Internet-Applications.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6F7B37 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - WAI-ARIA-Accessible-Rich-Internet-Applications" +--- + +# [[WAI-ARIA-Accessible-Rich-Internet-Applications]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/WAI-ARIA-Accessible-Rich-Internet-Applications.md]] +--- diff --git a/AI/Wang-Tiles.md b/AI/Wang-Tiles.md new file mode 100644 index 00000000..582422c3 --- /dev/null +++ b/AI/Wang-Tiles.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-1C2064 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Wang-Tiles" +--- + +# [[Wang-Tiles]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Wang-Tiles.md]] +--- diff --git a/AI/Watermarking (AI 워터마킹).md b/AI/Watermarking (AI 워터마킹).md new file mode 100644 index 00000000..fa75ccda --- /dev/null +++ b/AI/Watermarking (AI 워터마킹).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-948507 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Watermarking (AI 워터마킹)" +--- + +# [[Watermarking (AI 워터마킹)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Watermarking (AI 워터마킹).md]] +--- diff --git a/AI/Wavefunction-Collapse-Algorithm.md b/AI/Wavefunction-Collapse-Algorithm.md new file mode 100644 index 00000000..9a1e0b1e --- /dev/null +++ b/AI/Wavefunction-Collapse-Algorithm.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E0FD1F +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Wavefunction-Collapse-Algorithm" +--- + +# [[Wavefunction-Collapse-Algorithm]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Wavefunction-Collapse-Algorithm.md]] +--- diff --git a/AI/Web Performance Optimization.md b/AI/Web Performance Optimization.md new file mode 100644 index 00000000..c01493f0 --- /dev/null +++ b/AI/Web Performance Optimization.md @@ -0,0 +1,47 @@ +--- +id: P-REINFORCE-AUTO-3862CA +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Web Performance Optimization" +--- + +# [[Web Performance Optimization]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 웹 성능 최적화(Web Performance Optimization)는 웹사이트가 사용자에게 얼마나 빠르게 느껴지는지(인지된 성능)를 측정하고 개선하는 과정이다 [1]. 느린 웹사이트는 사용자의 좌절감을 유발하고 이탈률을 높이며 검색 엔진 순위(SEO)에도 악영향을 미치므로, 코어 웹 바이탈(Core Web Vitals)과 같은 표준화된 지표를 바탕으로 로딩 속도, 상호작용성, 시각적 안정성을 최적화하는 것이 필수적이다 [1-5]. + +## 📖 구조화된 지식 (Synthesized Content) +* **주요 성능 측정 지표 (Core Web Vitals 등)** + * Google은 사용자 경험을 측정하기 위해 LCP(Largest Contentful Paint, 최대 콘텐츠 렌더링 시간), INP(Interaction to Next Paint, 다음 페인트에 대한 상호작용), CLS(Cumulative Layout Shift, 누적 레이아웃 이동)를 코어 웹 바이탈 지표로 사용한다 [2, 6]. + * INP는 첫 번째 상호작용만 측정하던 기존의 FID(First Input Delay)를 대체한 지표로, 페이지 방문 중 발생하는 모든 클릭이나 키보드 입력 등의 전체 지연 시간을 측정하여 더욱 현실적인 반응성을 반영한다 [7-10]. + * 이 외에도 TTFB(Time to First Byte), TTI(Time to Interactive), TBT(Total Blocking Time) 등의 보조 지표가 성능 평가에 활용된다 [11, 12]. + +* **데이터 수집 및 분석 방식** + * **실험실 데이터(Lab Data):** Lighthouse나 WebPageTest와 같이 통제된 기기와 네트워크 환경에서 수집되는 합성 테스트(Synthetic Testing) 데이터로, 개발 과정에서 병목 현상을 디버깅하는 데 유용하다 [13-15]. + * **필드 데이터(Field Data):** CrUX(Chrome User Experience Report)나 실제 사용자 모니터링(RUM) 도구를 통해 실제 사용자가 겪는 성능을 측정한 데이터이다 [16, 17]. 소수 예외 값에 의한 평균의 왜곡을 피하기 위해 중앙값(p50)이나 75백분위수(p75), 95백분위수 등을 기준으로 성능을 평가한다 [18-20]. + +* **일반적인 웹 성능 최적화 기법** + * **JavaScript 및 메인 스레드 최적화:** 50ms를 초과하는 긴 작업(Long tasks)을 작게 쪼개거나 웹 워커(Web workers)로 분리하고, 필수적이지 않은 JS의 로드를 지연(Defer)시켜야 한다 [21, 22]. Firefox 등에서 지원하는 Scheduler API(`scheduler.yield()`)를 통해 브라우저 스케줄러에 제어권을 양보하여 상호작용 지연을 줄일 수도 있다 [23]. + * **이미지 및 렌더링 최적화:** WebP, AVIF, JPEG XL 등 효율적인 최신 이미지 포맷을 사용하고, 뷰포트 크기에 맞는 적절한 해상도를 제공해야 한다 [24-29]. 또한 화면 밖 콘텐츠의 렌더링을 건너뛰는 CSS `content-visibility` 속성을 활용하면 초기 렌더링 성능을 크게 높일 수 있다 [30, 31]. 강제 동기식 레이아웃(Layout thrashing)을 유발하는 코드는 피해야 한다 [32, 33]. + * **추측 규칙(Speculation Rules):** 사용자가 링크에 마우스를 올리는 등의 상호작용 시, 향후 필요할 수 있는 리소스나 페이지를 미리 렌더링 및 로드하여 탐색 속도를 대폭 단축할 수 있다 [34, 35]. + +* **3D 웹 그래픽 (WebGL / WebGPU) 성능 최적화** + * WebGL 환경에서는 CPU와 GPU 간의 통신과 상태 변경이 오버헤드를 유발하므로, 드로우 콜(Draw calls) 횟수를 최소화(배칭, 인스턴싱 등)하는 것이 모바일과 데스크톱 모두에서 성능을 높이는 핵심이다 [36-42]. + * WebGPU는 WebGL의 단일 스레드 구조를 벗어나 다중 스레드 명령 생성(Multi-threaded command generation)과 컴퓨트 셰이더(Compute shader)를 제공한다 [43-45]. 이를 통해 입자 시뮬레이션, 3D 가우시안 스플래팅(3DGS)에서의 심도 정렬(Depth sorting) 등 무거운 연산을 GPU로 완전히 오프로드하여 CPU 병목을 제거하고 수 배 이상의 프레임 속도 향상을 이끌어낼 수 있다 [45-51]. + * Cesium과 같은 3D 엔진은 씬(Scene)이 정적일 때 일정 프레임 속도로 계속 렌더링하는 대신, 카메라의 움직임이나 데이터 로드, 시간의 변화 등 꼭 필요할 때만 렌더링을 수행하는 명시적 렌더링(Explicit Rendering) 모드를 사용하여 유휴 상태의 CPU 사용량을 25%대에서 3%대로 크게 감소시켰다 [52-55]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Core Web Vitals]], [[Largest Contentful Paint]], [[Interaction to Next Paint]], [[Cumulative Layout Shift]], [[WebGPU]], [[WebGL]] +- **Projects/Contexts:** [[Chrome DevTools]], [[Lighthouse]], [[Chrome User Experience Report]], [[WebPageTest]] +- **Contradictions/Notes:** FID(First Input Delay)는 사용자의 첫 번째 상호작용 지연 시간만을 측정하는 한계가 있어, 페이지 생명주기 전체의 모든 상호작용 응답성을 추적하는 INP로 대체되었다 [7-10]. 또한, WebGL은 단일 스레드 명령 제출 구조로 인해 GPU가 유휴 상태임에도 CPU 병목이 발생하는 한계가 있었으나, WebGPU는 다중 스레드 명령 생성과 컴퓨트 셰이더를 통해 이러한 아키텍처적 한계를 해결한다 [44, 45, 56-59]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Web Performance Optimization.md]] +--- diff --git a/AI/Web-Content-Accessibility-Guidelines-WCAG.md b/AI/Web-Content-Accessibility-Guidelines-WCAG.md new file mode 100644 index 00000000..6e26e524 --- /dev/null +++ b/AI/Web-Content-Accessibility-Guidelines-WCAG.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-52EA66 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Web-Content-Accessibility-Guidelines-WCAG" +--- + +# [[Web-Content-Accessibility-Guidelines-WCAG]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Web-Content-Accessibility-Guidelines-WCAG.md]] +--- diff --git a/AI/WebSplatter (3D Gaussian Splatting).md b/AI/WebSplatter (3D Gaussian Splatting).md new file mode 100644 index 00000000..8d000a9a --- /dev/null +++ b/AI/WebSplatter (3D Gaussian Splatting).md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-166181 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - WebSplatter (3D Gaussian Splatting)" +--- + +# [[WebSplatter (3D Gaussian Splatting)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> WebSplatter는 이기종 웹 생태계를 위해 WebGPU를 기반으로 설계된 엔드투엔드(end-to-end) 3D 가우시안 스플래팅(3D Gaussian Splatting, 3DGS) 렌더링 파이프라인입니다. 기존 WebGL 기반 방식이 겪는 CPU 정렬의 병목 현상을 해결하기 위해 깊이 정렬과 뷰 적응형 평가를 모두 GPU 컴퓨트 셰이더로 이동시켰습니다. 글로벌 원자성(global atomics)이 부족한 WebGPU의 한계를 우회하는 '대기 없는 계층적 기수 정렬(wait-free hierarchical radix sort)'과 불투명도 인식 기하학 컬링을 도입하여 기존 웹 뷰어 대비 1.18배에서 4.5배의 렌더링 속도 향상과 뛰어난 메모리 효율성을 달성했습니다 [1-3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **3D 가우시안 스플래팅과 기존 웹 렌더링의 한계** + 3DGS 기법은 렌더링을 위해 수백만 개의 타원체를 카메라와의 깊이에 따라 매 프레임 뒤에서 앞으로 정렬해야 합니다 [4, 5]. 기존 WebGL 기반 구현에서는 이러한 정렬을 CPU(JavaScript 또는 WebAssembly)로 오프로드하고 이를 다시 대규모 버퍼 전송을 통해 GPU로 업로드했기 때문에, 심각한 동기화 병목 현상과 확장성 저하가 발생했습니다 [1, 6, 7]. + +- **하이브리드 컴퓨트-렌더 파이프라인 (Hybrid Compute-Render Pipeline)** + WebSplatter는 이기종 디바이스에서 최적의 성능을 끌어내기 위해 세 단계의 파이프라인을 도입했습니다 [8]. + - **사전 처리 단계 (Pre-processing Stage):** 컴퓨트 셰이더를 사용하여 카메라 뷰포트를 벗어나는 가우시안을 제거하는 바운딩 박스 컬링(Bounding Box Culling)과 시점 종속적 색상 계산(View-Dependent Color Calculation)을 수행합니다 [9, 10]. 이때 계산된 색상 및 불투명도 등의 데이터를 32비트 부호 없는 정수로 압축하여 이후 래스터화 단계에서의 메모리 대역폭 요구량을 대폭 줄입니다 [10, 11]. + - **정렬 단계 (Sort Stage):** WebGPU 환경은 하드웨어별 작업 그룹 스케줄링 순서나 세밀한 글로벌 원자적 연산을 보장하지 않아, 기존에 많이 쓰이는 스핀 대기(spin-wait) 패턴을 사용할 경우 성능을 낭비하는 바쁜 대기(busy-wait) 상태에 빠질 수 있습니다 [12, 13]. WebSplatter는 이를 해결하기 위해 '대기 없는 계층적 Blelloch 스캔(wait-free hierarchical Blelloch scan)' 방식에 기반한 GPU 기수 정렬(Radix Sort) 알고리즘을 사용합니다 [14, 15]. + - **래스터화 단계 (Rasterization Stage):** 모바일 등 대역폭이 제한된 기기에서 병목을 일으킬 수 있는 타일 기반 래스터라이저 대신, 하드웨어 가속 버텍스 및 프래그먼트 셰이더 파이프라인을 활용합니다 [16]. 가우시안의 피크 불투명도(peak opacity)를 기반으로 각 쿼드(quad)의 크기를 동적으로 계산하여 불필요한 프래그먼트 처리(오버드로우)를 최소화합니다 [17-19]. + +- **성능 및 확장성 (메모리 효율성)** + WebSplatter는 고성능 데스크톱(RTX 3070)부터 Apple M시리즈 칩, 모바일 기기에 이르기까지 다양한 이기종 장치에서 일관된 성능 향상을 보여줍니다 [20-22]. 기존의 가장 우수한 WebGPU 뷰어 대비 최대 57%까지 피크 GPU 메모리 사용량을 줄여, 메모리가 극도로 제한된 모바일 스마트폰 환경에서도 브라우저 충돌(out-of-memory crash) 없이 실시간 렌더링을 안정적으로 지원합니다 [23, 24]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGPU]], [[3D Gaussian Splatting]], [[Compute Shaders]], [[Radix Sort]] +- **Projects/Contexts:** [[Web-Based 3D Rendering]], [[Generative 3D Modeling]] +- **Contradictions/Notes:** 소스에 따르면 기존 WebGL 뷰어는 CPU 정렬로 인해 대규모 장면에서 병목이 발생하고, 단순 네이티브 GPU 포팅 방식의 WebGPU 뷰어들은 '스핀 대기(spin-wait)' 구현으로 인해 스케줄링 순서가 보장되지 않는 하드웨어(예: Apple M1)에서 매우 심각한 성능 저하(busy-wait)를 겪습니다. WebSplatter는 자체적인 '대기 없는 기수 정렬(wait-free radix sort)' 알고리즘을 적용하여 이 문제를 완벽히 회피하였으며, 동일한 환경에서 기존 WebGPU 대비 4.5배 이상의 속도 향상을 입증했습니다 [22, 25]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/WebSplatter (3D Gaussian Splatting).md]] +--- diff --git a/AI/Wellbeing-Science.md b/AI/Wellbeing-Science.md new file mode 100644 index 00000000..29bb11c4 --- /dev/null +++ b/AI/Wellbeing-Science.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-59A0A3 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Wellbeing-Science" +--- + +# [[Wellbeing-Science]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Wellbeing-Science.md]] +--- diff --git a/AI/Width-Subtyping.md b/AI/Width-Subtyping.md new file mode 100644 index 00000000..a10c74f8 --- /dev/null +++ b/AI/Width-Subtyping.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-20758B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Width-Subtyping" +--- + +# [[Width-Subtyping]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Width-Subtyping.md]] +--- diff --git a/AI/Wikidata.md b/AI/Wikidata.md new file mode 100644 index 00000000..3ddcba17 --- /dev/null +++ b/AI/Wikidata.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-244AE9 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Wikidata" +--- + +# [[Wikidata]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Wikidata.md]] +--- diff --git a/AI/Work-Engagement-Models.md b/AI/Work-Engagement-Models.md new file mode 100644 index 00000000..d528ac7b --- /dev/null +++ b/AI/Work-Engagement-Models.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-CBB42F +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Work-Engagement-Models" +--- + +# [[Work-Engagement-Models]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Work-Engagement-Models.md]] +--- diff --git a/AI/World of Warcraft (Gold Sink Mechanics).md b/AI/World of Warcraft (Gold Sink Mechanics).md new file mode 100644 index 00000000..bb57531a --- /dev/null +++ b/AI/World of Warcraft (Gold Sink Mechanics).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-DA62AF +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - World of Warcraft (Gold Sink Mechanics)" +--- + +# [[World of Warcraft (Gold Sink Mechanics)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/World of Warcraft (Gold Sink Mechanics).md]] +--- diff --git a/AI/_뇌와 팔다리의 분리_ - 관심사의 분리 (Separation of Concerns).md b/AI/_뇌와 팔다리의 분리_ - 관심사의 분리 (Separation of Concerns).md new file mode 100644 index 00000000..16099af8 --- /dev/null +++ b/AI/_뇌와 팔다리의 분리_ - 관심사의 분리 (Separation of Concerns).md @@ -0,0 +1,48 @@ +--- +id: P-REINFORCE-AUTO-53B106 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - _뇌와 팔다리의 분리_ - 관심사의 분리 (Separation of Concerns)" +--- + +# [[_뇌와 팔다리의 분리_ - 관심사의 분리 (Separation of Concerns)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +**개념적 비유의 의미** +관심사 분리(SoC)를 다루는 '뇌와 팔다리'의 이분법은 소프트웨어의 복잡성을 관리하기 위해 논리적 단위들을 명확하게 격리하는 아키텍처 철학입니다 [1, 4]. + +* **뇌 (Brain) - 고수준 도메인과 비즈니스 로직:** + * 아키텍처의 중추 역할을 하며 시스템이 존재하는 근본적인 이유인 '핵심 업무 규칙'을 포함합니다 [1]. + * 뇌는 엔티티(Entity)와 유스케이스(Use Case)로 구성됩니다 [2]. 엔티티는 비즈니스의 가장 본질적인 로직을 수행하고, 유스케이스는 엔티티들의 상호작용을 제어합니다 [2]. + * 마치 뇌가 신체의 중심인 것처럼, 데이터베이스, UI, 특정 프레임워크와 같은 외부 요소에 오염되지 않는 가장 독립적이고 순수한 코드로 유지되어야 합니다 [2]. + +* **팔다리 (Limbs) - 인프라스트럭처와 세부 구현:** + * 핵심 로직을 감싸고 외부 세계와 소통하는 저수준의 세부 사항을 의미하며, 웹 인터페이스, 데이터베이스, 서드파티 API 등이 포함됩니다 [2]. + * 아키텍처 관점에서 팔다리는 정보를 전달하거나 저장하는 부속품이자 지엽적인 관심사로 취급됩니다 [1, 2]. + * 팔다리가 바뀌어도 뇌의 사고방식이 변하지 않는 것처럼, 외부 시스템은 언제든 교체 가능하도록 시스템의 심장부에 '플러그인' 형태로 연결되어야 합니다 [2]. + +* **신경계 (Wiring) - 결합도 관리:** + * 뇌와 팔다리 사이의 느슨한 결합을 유지하기 위해 인터페이스, 추상 클래스, DTO 등의 추상화된 소통 경로(신경계)가 사용됩니다 [3]. + +* **의존성 규칙 (Dependency Rule):** + * 고수준과 저수준의 분리는 의존성의 방향이 항상 저수준(팔다리)에서 고수준(뇌)을 향하게 함으로써 달성됩니다 [3]. + * 외부 시스템(팔다리)은 핵심 로직(뇌)을 알고 있지만, 뇌는 외부를 전혀 몰라야 하며, 이를 통해 도메인 로직을 수정하지 않고도 UI 기술이나 데이터베이스 구현체를 자유롭게 교체할 수 있게 됩니다 [3]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[관심사의 분리 (Separation of Concerns)]], [[단일 책임 원칙 (SRP)]], [[의존성 역전 (Dependency Inversion)]] +- **Projects/Contexts:** [[클린 아키텍처 (Clean Architecture)]], [[계층화 아키텍처 (Layered Architecture)]], [[도메인 주도 설계 (DDD)]] +- **Contradictions/Notes:** 소스에 명시적인 모순점은 없으나, "뇌와 팔다리의 분리"와 같은 관심사의 분리 원칙을 맹목적으로 추구할 경우 함수 호출의 뎁스가 깊어지고 성능 오버헤드나 통신 비용이 증가할 수 있다고 경고합니다 [5]. 너무 많은 레이어와 추상화는 개발자를 미궁에 빠뜨리는 오버엔지니어링이 될 수 있으므로, 응집도와 결합도를 잣대로 최적의 분리 지점을 모색하는 절제가 필요합니다 [6, 7]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/_뇌와 팔다리의 분리_ - 관심사의 분리 (Separation of Concerns).md]] +--- diff --git a/AI/agargaro의 오픈 소스 라이브러리.md b/AI/agargaro의 오픈 소스 라이브러리.md new file mode 100644 index 00000000..89e7f7fb --- /dev/null +++ b/AI/agargaro의 오픈 소스 라이브러리.md @@ -0,0 +1,44 @@ +--- +id: P-REINFORCE-AUTO-B271A4 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - agargaro의 오픈 소스 라이브러리" +--- + +# [[agargaro의 오픈 소스 라이브러리]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> agargaro가 개발한 오픈 소스 라이브러리는 주로 Three.js의 기본 `InstancedMesh` 성능과 기능을 획기적으로 확장한 `InstancedMesh2`를 지칭합니다 [1, 2]. 이 라이브러리는 개별 인스턴스 단위의 절두체 컬링(Frustum Culling), LOD(Level of Detail), 가시성(Visibility) 관리 및 BVH를 활용한 빠른 레이캐스팅 기능을 제공하여 대규모 3D 렌더링 성능을 최적화합니다 [2, 3]. 이 밖에도 `BatchedMesh`를 위한 확장 라이브러리인 `batched-mesh-extensions`를 제공하여 오픈 월드 수준의 환경 구현을 돕고 있습니다 [4, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +- **InstancedMesh2의 주요 렌더링 및 제어 메커니즘** + - **간접 참조(Indirection) 기반 인스턴스 관리:** `InstancedBufferAttribute`를 활용하여 렌더링할 인스턴스의 인덱스를 관리합니다 [6]. 이를 통해 원본 버퍼 배열을 재정렬하지 않고도 선택적 렌더링, 효율적인 절두체 컬링, 기수 정렬(Radix sort) 기반의 깊이 정렬이 가능합니다 [6, 7]. 셰이더 작동 방식은 `BatchedMesh`와 유사하게 구현되었습니다 [8]. + - **부분 업데이트 텍스처:** 데이터와 행렬(Matrix) 정보를 저장하기 위해 부분 업데이트(partial updates)를 지원하는 `SquareDataTexture` 자료구조를 활용하여 CPU 및 GPU 간의 데이터 전송을 최적화합니다 [6]. + +- **스킨드 메쉬(Skinned Mesh) 및 애니메이션 최적화** + - 개별 인스턴스마다 서로 다른 애니메이션 상태를 가질 수 있습니다 [9]. + - 카메라 절두체(Frustum) 내부에 있는 인스턴스에 대해서만 뼈대(Bone)를 업데이트합니다 [1]. + - 카메라와의 거리에 따라 각 인스턴스의 애니메이션 FPS를 0에서 60까지 동적으로 설정하여 연산량을 줄입니다 [1]. + - 거리가 먼 인스턴스는 일부 뼈대 계산을 피하고, meshoptimizer를 통해 생성된 최대 5단계의 지오메트리 LOD 및 그림자(Shadow) LOD를 적용할 수 있습니다 [1, 10]. + +- **BatchedMesh 확장 라이브러리** + - agargaro는 다수의 서로 다른 지오메트리를 렌더링하는 데 쓰이는 `BatchedMesh`에서도 LOD 등을 구현할 수 있도록 돕는 `batched-mesh-extensions` 라이브러리를 추가로 개발했습니다 [4, 5]. + +- **독립 라이브러리로 개발된 이유** + - 개별 인스턴스 절두체 컬링 기능을 Three.js 메인 레포지토리의 `InstancedMesh`에 직접 통합할 경우, 셰이더의 하위 호환성 단절(breaking changes)과 유지보수해야 할 복잡한 코드가 지나치게 많아지는 문제가 발생합니다 [11, 12]. 따라서 복잡성을 분리하기 위해 외부 라이브러리 형태로 제공되고 있습니다 [12]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[InstancedMesh2]], [[Frustum Culling]], [[LOD(Level of Detail)]], [[BVH(Bounding Volume Hierarchy)]], [[BatchedMesh]] +- **Projects/Contexts:** [[20k skinned instances 데모]], [[batched-mesh-extensions]] +- **Contradictions/Notes:** 애니메이션 최적화 기법 중 뼈대 텍스처(Bone texture)의 부분 업데이트 기능이 있으나, 일부 모바일 기기 및 Firefox 브라우저에서는 해당 연산이 오히려 느리게 동작하여(이중 버퍼링 구현 필요) 기본적으로 비활성화해 두는 등 플랫폼 간 성능 편차가 존재합니다 [1, 13]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/agargaro의 오픈 소스 라이브러리.md]] +--- diff --git a/AI/clinicjs.md b/AI/clinicjs.md new file mode 100644 index 00000000..26832f64 --- /dev/null +++ b/AI/clinicjs.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-B7F89C +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - clinicjs" +--- + +# [[clinicjs]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> `clinic.js`는 Node.js 개발 환경에서 메모리 누수(Memory Leak)의 원인을 빠르고 자동화된 방식으로 분석하기 위해 사용하는 도구입니다 [1, 2]. 힙(Heap) 시각화 기능을 제공하여 애플리케이션 내 어떤 함수가 많은 메모리를 점유하고 있는지 식별하도록 돕습니다 [2]. 터미널에서 `clinic doctor -- node app.js`와 같은 명령어 형태로 실행되어 자동 분석을 수행합니다 [1]. + +## 📖 구조화된 지식 (Synthesized Content) +- **자동화된 힙 시각화:** `clinic.js`는 개발 중인 애플리케이션에서 메모리 누수의 근원지를 가장 빠르게 찾아내기 위한 힙 시각화(Heap Visualization) 분석 기능을 지원합니다 [2]. +- **메모리 점유 분석:** 분석 결과물인 차트(chart)를 통해 어떤 함수들이 가장 많은 메모리를 유지(retaining)하고 있는지 보여줍니다 [2]. 개발자는 자신이 작성한 코드의 프레임(frames) 중 예상치 못하게 차트 깊숙한 곳에 위치한 부분을 찾아내어 문제를 진단할 수 있습니다 [2]. +- **명령어 기반 실행:** 대화형 디버깅을 제공하는 `--inspect`와 같은 다른 도구와 달리, `clinic.js`는 `clinic doctor -- node app.js`와 같은 명령어를 통해 자동화된 분석(Automated analysis)을 수행하는 것이 특징입니다 [1]. +- *참고: 도구의 구체적인 내부 작동 원리 등 그 외 상세 내용에 대해서는 소스에 관련 정보가 부족합니다.* + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Memory Leak]], [[Heap Visualization]], [[Garbage Collection]] +- **Projects/Contexts:** [[Node.js Performance Debugging]] +- **Contradictions/Notes:** 소스에는 `clinic.js`의 목적과 명령어 사용법 위주의 정보만 간략히 등장하므로, 세부 아키텍처나 추가 프로파일링 기능에 대해서는 소스에 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/clinic.js.md]] +--- diff --git a/AI/e스포츠 인지 상태 및 성과 위험 평가.md b/AI/e스포츠 인지 상태 및 성과 위험 평가.md new file mode 100644 index 00000000..fb0f4a30 --- /dev/null +++ b/AI/e스포츠 인지 상태 및 성과 위험 평가.md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-52CDF0 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - e스포츠 인지 상태 및 성과 위험 평가" +--- + +# [[e스포츠 인지 상태 및 성과 위험 평가]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +- **생체 신호를 통한 인지 상태 감지 (Detection of Cognitive States)** + e스포츠 선수들이 경험하는 정신적 작업 부하(Mental Workload), 스트레스, 인지적 피로는 다양한 센서를 통해 정량화됩니다 [5]. 안구 측정에서 **동공 크기는 단기적인 인지적 노력에 비례하여 확장되지만, 장시간 플레이로 인해 인지적 피로(Cognitive Fatigue)가 누적될 경우 반대로 수축(Pupil constriction)하는 특징을 보입니다** [5], [6]. 또한, 뇌파(EEG) 데이터를 활용한 기계 학습(Gradient Boosting 등) 모델은 선수가 '상쾌한(fresh)' 상태인지 '지친(tired)' 상태인지를 최대 88%의 정확도로 성공적으로 예측해 냅니다 [6]. + +- **자율신경계 반응과 몰입 상태 (Autonomic Responses and Flow State)** + 심박 변이도(HRV)와 피부 전도도(EDA/GSR)는 인지 부하 및 스트레스 수준을 측정하는 핵심 지표로 활용됩니다 [3]. 급성 인지적 스트레스나 높은 작업 부하가 요구되는 경쟁 상황에서는 교감신경의 활성화로 인해 HRV가 감소하고 EDA가 크게 증가합니다 [5], [7]. 그러나 선수의 기술과 과제의 난이도가 완벽한 균형을 이루는 최적의 수행 상태인 **'몰입(Flow)' 상태에서는 부교감신경이 우세해져 HRV 지표가 오히려 증가하는 현상**이 나타납니다 [8], [9]. + +- **전문성 평가 및 행동 지표 (Differentiating Player Expertise)** + 생체 신호는 선수의 숙련도를 명확히 구분하는 데에도 유용합니다 [10]. 뇌파(EEG) 분석 결과, **프로 선수들은 초보자에 비해 사건 관련 전위(ERP) 반응이 20~70ms 더 빠르고 진폭이 7~9µV 더 크며**, 이를 바탕으로 숙련도를 92%의 정확도로 분류할 수 있습니다 [10]. FPS 게임에서는 중요한 운동 행동을 시작하기 전 표적에 시선을 고정하는 **'조용한 시선(Quiet Eye)'의 지속 시간이 숙련된 엘리트 선수일수록 유의미하게 길게 나타납니다** [11]. + +- **틸트(Tilt) 및 성과 저하 예측 (Predicting Tilt and Performance Decline)** + 회귀 트리(Regression Tree)나 SVM 등의 기계 학습 알고리즘을 다중 모달(Multimodal) 생체 신호 데이터에 적용하면, 선수의 성과가 급격히 하락하는 **'틸트(Tilt)' 상태의 시작을 실시간으로 예측**할 수 있습니다 [12], [13]. 한 연구에 따르면 과거 10~15분간의 센서 데이터를 사용하여 게임 장르에 따라 76.6%에서 87%의 높은 정확도로 틸트 상태를 예측하는 데 성공했습니다 [12]. 단, 이러한 예측 모델은 선수 개인마다 고유한 생리적 반응을 보이므로 일반화된 모델보다 **개인화된(User-dependent) 모델을 적용할 때 분류 성능이 현저히 향상(약 27% 향상)**됩니다 [14]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[기계 학습(Machine Learning)]], [[생체 신호(Physiological Signals)]], [[심박 변이도(HRV)]], [[틸트(Tilt)]], [[몰입(Flow State)]] +- **Projects/Contexts:** 웨어러블 센서(EEG, EDA, 시선 추적기 등)를 기반으로 한 기계 학습 모델을 통해 e스포츠 선수의 실시간 인지 상태(작업 부하, 인지적 피로)를 감지하고 성과 하락(틸트)을 예측하기 위한 프레임워크 연구 [15], [12]. +- **Contradictions/Notes:** HRV 수치는 인지적 요구와 스트레스가 높은 압박 상황에서는 감소하지만, 플레이어가 고도의 집중과 기술적 균형을 이루는 '몰입(Flow)'에 진입했을 때는 반대로 증가하므로 측정 당시의 게임 문맥에 따른 세심한 해석이 필수적입니다 [7], [8]. 동공 크기 역시 단기적인 인지적 노력의 증가에는 확장되지만, 2시간 이상의 장기적인 인지적 피로 상태에서는 수축하는 상반된 반응을 보입니다 [5], [6]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/e스포츠 인지 상태 및 성과 위험 평가.md]] +--- diff --git a/AI/가상화 (Virtualization).md b/AI/가상화 (Virtualization).md new file mode 100644 index 00000000..2e4fb06b --- /dev/null +++ b/AI/가상화 (Virtualization).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9E9923 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 가상화 (Virtualization)" +--- + +# [[가상화 (Virtualization)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/가상화 (Virtualization).md]] +--- diff --git a/AI/강화학습 (Reinforcement Learning).md b/AI/강화학습 (Reinforcement Learning).md new file mode 100644 index 00000000..0eb47e3f --- /dev/null +++ b/AI/강화학습 (Reinforcement Learning).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-FE1230 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 강화학습 (Reinforcement Learning)" +--- + +# [[강화학습 (Reinforcement Learning)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/강화학습 (Reinforcement Learning).md]] +--- diff --git a/AI/공급망 공격 (Supply Chain Attack).md b/AI/공급망 공격 (Supply Chain Attack).md new file mode 100644 index 00000000..c7cb3f13 --- /dev/null +++ b/AI/공급망 공격 (Supply Chain Attack).md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-2BF446 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 공급망 공격 (Supply Chain Attack)" +--- + +# [[공급망 공격 (Supply Chain Attack)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 공급망 공격(Supply Chain Attack)은 오픈소스 파이프라인이 상호 신뢰를 바탕으로 운영된다는 점을 악용하여, 널리 사용되는 합법적인 패키지나 개발 도구의 유지보수자 계정을 탈취해 악성 코드를 다운스트림 환경에 유포하는 공격 방식입니다 [1]. 한 명의 유지보수자 계정이나 단일 패키지가 손상되는 것만으로도 수천만 건의 설치로 피해가 파급될 수 있어 소프트웨어 생태계 전반에 대규모 위험을 초래합니다 [1, 2]. 코드 품질과 안전을 보장하기 위해 사용하는 도구 자체가 개발자를 공격하는 무기로 돌변할 수 있다는 점에서 현대 소프트웨어 개발의 중대한 위협으로 꼽힙니다 [2]. + +## 📖 구조화된 지식 (Synthesized Content) +* **공급망 공격의 원리와 위험성:** + 대부분의 소프트웨어 프로젝트는 수많은 서드파티 오픈소스 패키지와 의존성(Dependencies)을 바탕으로 구축됩니다. 공격자는 이러한 소프트웨어 공급망을 노리며, 유지보수자의 권한(예: npm 인증 토큰)을 피싱과 같은 기법으로 탈취합니다 [3, 4]. 이후 소스 코드 저장소(GitHub 등)에는 어떠한 커밋 흔적도 남기지 않고, 패키지 관리 레지스트리에 직접 악성 버전의 패키지를 게시하여 신뢰 체인을 무너뜨립니다 [3]. + +* **실제 공격 사례 (CVE-2025-54313):** + 2025년 7월 18일, 주당 3,000만 회 이상 다운로드되는 인기 npm 라이브러리인 `eslint-config-prettier`를 대상으로 대규모 공급망 공격이 발생했습니다 [2, 4, 5]. 공격자는 `npmjs.com` 로그인 페이지를 위장한 피싱 이메일로 메인테이너를 속여 권한 토큰을 탈취한 후, 4개 버전(8.10.1, 9.1.1, 10.1.6, 10.1.7)에 악성 코드를 심어 배포했습니다 [3, 4, 6]. 이 외에도 `eslint-plugin-prettier`, `synckit` 등 여러 패키지가 동시에 피해를 입었습니다 [6]. + +* **악성 페이로드 작동 방식:** + 해당 공격은 npm의 설치 후 스크립트(post-install script) 기능을 악용했습니다. 패키지가 설치되는 즉시 `install.js` 파일이 실행되며, 내부의 `logDiskSpace()`라는 위장된 함수를 통해 `node-gyp.dll`이라는 악성 DLL 파일을 드롭(drop)하고 Windows의 `rundll32` 시스템 프로세스로 이를 실행시켰습니다 [7]. 이를 통해 공격자는 Windows를 사용하는 개발자의 로컬 머신이나 CI(지속적 통합) 호스트에서 원격 코드 실행(RCE) 권한을 획득할 수 있었습니다 [2, 3]. (이 악성 코드는 Linux나 macOS 환경에서는 즉시 종료되도록 설계되었습니다 [7, 8]). + +* **대응 및 방어 전략:** + "유지보수자의 보안이 곧 공급망 보안(Maintainer Security is Supply Chain Security)"입니다 [1]. 향후 이러한 공격을 예방하기 위해서는 다중 인증(MFA)의 강제 적용, 권한이 좁게 제한된 토큰(scoped tokens)의 사용, 더 엄격한 npm 게시 정책이 필수적입니다 [1]. 프로젝트 차원에서는 `package-lock.json`이나 `yarn.lock` 파일을 검토해 침해된 버전을 배제하고 알려진 안전한 버전으로 고정(Pinning)해야 하며, 빌드 파이프라인의 비정상적인 활동을 즉각 감사해야 합니다 [9]. 또한, 서드파티 라이브러리의 취약점을 파악하고 공급망 리스크를 완화하기 위해 SCA(Software Composition Analysis) 도구를 정기적으로 활용해야 합니다 [10, 11]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[CVE-2025-54313]], [[Software Composition Analysis (SCA)]], [[eslint-config-prettier]] +- **Projects/Contexts:** [[npm registry]], [[Open Source Security]] +- **Contradictions/Notes:** 소스에 관련된 모순점은 발견되지 않았습니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/공급망 공격 (Supply Chain Attack).md]] +--- diff --git a/AI/대규모 React 프론트엔드 최적화.md b/AI/대규모 React 프론트엔드 최적화.md new file mode 100644 index 00000000..722de782 --- /dev/null +++ b/AI/대규모 React 프론트엔드 최적화.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-FAAB3D +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 대규모 React 프론트엔드 최적화" +--- + +# [[대규모 React 프론트엔드 최적화]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/대규모 React 프론트엔드 최적화.md]] +--- diff --git a/AI/도메인 주도 설계 (Domain-Driven Design DDD).md b/AI/도메인 주도 설계 (Domain-Driven Design DDD).md new file mode 100644 index 00000000..17be026d --- /dev/null +++ b/AI/도메인 주도 설계 (Domain-Driven Design DDD).md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-B7F6A8 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 도메인 주도 설계 (Domain-Driven Design DDD)" +--- + +# [[도메인 주도 설계 (Domain-Driven Design DDD)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 도메인 주도 설계(DDD)는 비즈니스 도메인에 대한 깊은 이해를 중심으로 소프트웨어 개발 프로세스를 구성하는 설계 접근 방식입니다 [1]. 기술 팀과 도메인 전문가 간의 긴밀한 협력을 바탕으로 현실 세계의 비즈니스 프로세스를 정확하게 반영하는 소프트웨어 모델을 생성하는 것을 목표로 합니다 [1]. 이를 통해 시스템의 복잡성을 해결하고 개발자와 비즈니스 이해관계자 간의 의사소통 격차를 해소하여, 결과적으로 소프트웨어가 올바른 문제를 해결할 수 있도록 보장합니다 [1]. + +## 📖 구조화된 지식 (Synthesized Content) +- **유비쿼터스 언어(Ubiquitous Language)의 확립:** + DDD의 핵심 목표 중 하나는 프로젝트에 참여하는 모든 사람(개발자 및 도메인 전문가 등)이 공유하는 공통 어휘 사전인 '유비쿼터스 언어'를 만드는 것입니다 [1, 2]. 이 언어는 일상적인 대화, 문서화는 물론 실제 코드 자체에서도 동일하게 사용되어야 하며, 이를 통해 요구사항에 대한 오해를 방지하고 도메인 모델을 명확히 합니다 [1, 2]. +- **제한된 컨텍스트(Bounded Contexts)를 통한 복잡성 관리:** + 크고 복잡한 도메인은 '주문 관리'나 '고객 지원'과 같이 더 작고 관리하기 쉬운 하위 도메인인 '제한된 컨텍스트'로 분할됩니다 [3]. 각 컨텍스트는 고유한 모델과 유비쿼터스 언어를 유지하여 모델의 순수성을 보장하고, 각기 다른 책임 영역 간의 명확한 경계를 정의하여 도메인 로직을 캡슐화합니다 [3-5]. +- **전략적 모델링 구성 요소:** + - **애그리게잇(Aggregates):** 단일 단위로 취급할 수 있는 도메인 객체들의 클러스터입니다(예: `OrderLineItem` 객체를 포함하는 `Order`). 애그리게잇의 루트는 전체 클러스터의 일관성을 보장하며 트랜잭션 관리를 단순화하는 역할을 합니다 [3]. + - **엔티티(Entities)와 값 객체(Value Objects):** 고유한 정체성(Identity)을 바탕으로 구별되는 객체(예: `Customer` 엔티티)와, 고유 식별자 없이 오직 속성으로만 정의되는 객체(예: `ShippingAddress` 값 객체)를 명확히 구분하여 설계합니다 [3]. +- **도메인 로직의 격리 및 이벤트 스토밍(Event Storming):** + 핵심 비즈니스 로직은 데이터베이스나 UI 프레임워크와 같은 외부 인프라스트럭처 문제와 철저히 분리되어야 하며, 이를 통해 깔끔하고 테스트 및 유지보수가 쉬운 도메인 모델을 생성할 수 있습니다 [2]. 또한 비즈니스 도메인을 빠르게 탐색하고 도메인 이벤트, 명령, 애그리게잇을 식별하기 위해 '이벤트 스토밍(Event Storming)'과 같은 협업 워크샵을 적극적으로 활용하는 것이 권장됩니다 [2]. +- **도입 시 특징 및 적합한 환경:** + DDD는 깊은 도메인 모델링과 이해관계자의 지속적인 협업이 필수적이므로 초기 구현 복잡도와 리소스 요구 사항(분석 시간, 도메인 전문가 참여 등)이 상대적으로 높은 편입니다 [6]. 따라서 단순한 시스템보다는 금융, 의료, 이커머스와 같이 비즈니스 도메인이 매우 복잡한 엔터프라이즈 시스템 구축에 가장 이상적인 아키텍처 베스트 프랙티스입니다 [6]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[유비쿼터스 언어(Ubiquitous Language)]], [[제한된 컨텍스트(Bounded Contexts)]], [[애그리게잇(Aggregates)]], [[관심사의 분리(Separation of Concerns)]] +- **Projects/Contexts:** [[복잡한 비즈니스 도메인(금융, 의료, 이커머스 등)을 다루는 대규모 시스템 개발 프로젝트]] +- **Contradictions/Notes:** 소스 내에서 상충하는 주장은 발견되지 않으나, DDD는 비즈니스 구조와의 강력한 일치와 명확한 도메인 모델을 제공하는 큰 장점이 있는 반면, 도입 시 도메인 전문가와의 심도 있는 협업 모델링이 필요하여 중간에서 높음(Medium-High) 수준의 복잡성과 리소스가 요구된다는 점이 주의사항으로 지적됩니다 [6]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/도메인 주도 설계 (Domain-Driven Design, DDD).md]] +--- diff --git a/AI/도파민 보상 체계 (Dopaminergic Reward System).md b/AI/도파민 보상 체계 (Dopaminergic Reward System).md new file mode 100644 index 00000000..6511532f --- /dev/null +++ b/AI/도파민 보상 체계 (Dopaminergic Reward System).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-90ACEA +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 도파민 보상 체계 (Dopaminergic Reward System)" +--- + +# [[도파민 보상 체계 (Dopaminergic Reward System)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/도파민 보상 체계 (Dopaminergic Reward System).md]] +--- diff --git a/AI/디자인 시스템 (Design Systems).md b/AI/디자인 시스템 (Design Systems).md new file mode 100644 index 00000000..76c25be9 --- /dev/null +++ b/AI/디자인 시스템 (Design Systems).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-891E2B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 디자인 시스템 (Design Systems)" +--- + +# [[디자인 시스템 (Design Systems)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/디자인 시스템 (Design Systems).md]] +--- diff --git a/AI/마이크로서비스 아키텍처 (Microservices Architecture).md b/AI/마이크로서비스 아키텍처 (Microservices Architecture).md new file mode 100644 index 00000000..16169ed4 --- /dev/null +++ b/AI/마이크로서비스 아키텍처 (Microservices Architecture).md @@ -0,0 +1,46 @@ +--- +id: P-REINFORCE-AUTO-303610 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 마이크로서비스 아키텍처 (Microservices Architecture)" +--- + +# [[마이크로서비스 아키텍처 (Microservices Architecture)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 마이크로서비스 아키텍처(MSA)는 크고 복잡한 단일 애플리케이션을 비즈니스 도메인(Business Domain)을 중심으로 작고 독립적이며 자율적인 서비스들의 집합으로 구조화하는 소프트웨어 개발 접근 방식입니다 [1-3]. 각 마이크로서비스는 자체 프로세스에서 실행되며 주로 HTTP/REST API나 비동기 메시징 큐와 같은 경량화된 네트워크 메커니즘을 통해 통신합니다 [3, 4]. 이 아키텍처는 개별 서비스의 독립적인 개발, 배포 및 확장을 가능하게 하여 시스템의 유지보수성, 유연성 및 장애 복원력을 크게 향상시킵니다 [1, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +* **핵심 개념 및 특징** + * 마이크로서비스는 단일 비즈니스 기능(Single business task)에 집중하며, 각 서비스가 자체 코드베이스, CI/CD 파이프라인 및 독립적인 데이터 저장소를 가집니다 [4, 6, 7]. + * 시스템을 작은 단위로 분해함으로써 각 팀은 자신이 담당한 서비스를 처음부터 끝까지 독립적으로 소유(End-to-End Ownership)할 수 있습니다 [5, 8]. + * 다양한 기술을 융합하여 사용할 수 있는 기술적 이질성(Technology Heterogeneity)을 지원하므로, 각 서비스의 특성에 맞는 최적의 도구와 데이터베이스(폴리글랏 프로그래밍 및 영속성)를 자율적으로 선택할 수 있습니다 [4, 9, 10]. + +* **마이크로서비스 도입의 주요 장점** + * **민첩성 및 확장성:** 단일 구조(Monolithic)와 달리 전체 애플리케이션을 재배포할 필요 없이 필요한 개별 서비스만 병렬로 개발하고 자주 업데이트하며, 유연하게 자원을 확장할 수 있습니다 [1, 9, 11]. + * **장애 복원력(Resilience):** 고장 격리(Fault isolation)를 통해 한 서비스에 장애가 발생하더라도 문제의 범위(Blast radius)를 최소화하여 전체 시스템의 중단으로 이어지지 않도록 설계할 수 있습니다 [9, 12, 13]. + * **조직적 효율성:** 넷플릭스(Netflix), 아마존(Amazon), 스포티파이(Spotify) 등의 기업 사례처럼 소규모 전담 팀에게 비즈니스 역량에 따른 책임을 분산하여 개발 속도와 혁신성을 크게 높일 수 있습니다 [1, 14, 15]. + +* **주요 단점 및 해결 과제** + * 분산 시스템의 본질적인 복잡성으로 인해 서비스 간 통신, 부분적 실패 처리, 모니터링 등의 추가적인 분산 처리 로직을 직접 구현해야 하며, 이를 지원할 고도로 숙련된 엔지니어가 필요합니다 [10, 11, 16]. + * 여러 서비스에 걸쳐 동작하는 요청과 트랜잭션을 관리하는 것이 매우 까다로우며, 각 서비스마다 독립적인 런타임(JVM 등)과 서버 공간을 유지해야 하므로 인프라 및 운영 비용이 증가합니다 [11, 16, 17]. + * 이에 대응하기 위해 회로 차단기(Circuit Breakers), 재시도(Retries) 등 실패를 대비한 설계와 컨테이너(Docker), 오케스트레이션(Kubernetes)을 활용한 운영 자동화의 도입이 필수적입니다 [18]. + +* **구성 패턴 (Composition Patterns)** + * 마이크로서비스 간의 통신과 흐름을 제어하기 위해 Aggregator, Proxy, Branch, Chained, Shared Resource 등 다양한 구성 패턴이 실무에서 활용됩니다 [19, 20]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[단일 애플리케이션 아키텍처 (Monolithic Architecture)]], [[관심사의 분리 (Separation of Concerns)]], [[도메인 주도 설계 (Domain-Driven Design)]], [[컨테이너 및 오케스트레이션 (Containers and Orchestration)]] +- **Projects/Contexts:** [[넷플릭스 코스모스 플랫폼 (Netflix Cosmos Platform)]], [[스포티파이 스쿼드 모델 (Spotify Squad Model)]] +- **Contradictions/Notes:** 일반적으로 마이크로서비스는 완벽한 모듈의 결합 분리와 배포 독립성을 가져다주는 것으로 간주되지만, 실제로는 시스템이 횡단 관심사(Cross-cutting concerns)나 공유 데이터 모델에 얽혀있을 경우 여러 서비스가 강하게 결합되는 '결합 분리의 오류' 및 '개발 및 배포 독립성의 오류'가 발생할 수 있습니다. 즉 서비스 간의 단순 물리적 분리만으로는 충분치 않으며, 서비스 내부의 아키텍처 경계와 의존성 규칙이 제대로 설계되어야 진정한 독립성을 확보할 수 있습니다 [21-24]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/마이크로서비스 아키텍처 (Microservices Architecture).md]] +--- diff --git a/AI/벡터 데이터베이스 (Vector Database).md b/AI/벡터 데이터베이스 (Vector Database).md new file mode 100644 index 00000000..f23cafd4 --- /dev/null +++ b/AI/벡터 데이터베이스 (Vector Database).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A4C204 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 벡터 데이터베이스 (Vector Database)" +--- + +# [[벡터 데이터베이스 (Vector Database)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/벡터 데이터베이스 (Vector Database).md]] +--- diff --git a/AI/보존 경로(Retaining Path).md b/AI/보존 경로(Retaining Path).md new file mode 100644 index 00000000..c8efb674 --- /dev/null +++ b/AI/보존 경로(Retaining Path).md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-97AEC6 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 보존 경로(Retaining Path)" +--- + +# [[보존 경로(Retaining Path)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 보존 경로(Retaining Path)는 메모리 누수를 조사할 때 특정 객체가 가비지 컬렉션(GC)에 의해 수거되지 않고 살아남게 만드는 참조 체인(chain of references)을 의미합니다 [1, 2]. V8 엔진은 전역 창(window) 객체나 활성 스택의 로컬 변수와 같은 루트 객체(GC Root)로부터 포인터 체인을 통해 도달 가능한 객체를 메모리에 유지해야 할 객체로 간주합니다 [3]. 개발자는 힙 스냅샷 도구나 특수 디버깅 플래그를 사용하여 이러한 보존 경로를 역추적하고 불필요한 참조를 식별하여 메모리 누수 문제를 해결할 수 있습니다 [2-4]. + +## 📖 구조화된 지식 (Synthesized Content) +* **보존 경로의 개념 및 역할:** 가비지 컬렉터는 루트 객체로부터 참조를 통해 도달할 수 있는 객체를 '살아있는(live)' 객체로 판단하여 수거 대상에서 제외합니다 [3, 5]. 메모리 누수가 발생했을 때, 객체가 왜 수거되지 않는지를 파악하기 위해서는 이 보존 경로를 추적하는 것이 필수적입니다 [4]. 모든 힙 스냅샷은 많은 후방(back) 참조와 루프를 포함하고 있어 하나의 객체에 여러 보존자가 존재할 수 있습니다 [5]. +* **개발자 도구(DevTools)를 통한 분석:** Chrome DevTools의 Memory 패널에서 힙 스냅샷(Heap Snapshot)이나 할당 타임라인(Allocation timeline)을 통해 특정 객체를 선택하면, 'Retainers(보존자)' 섹션에서 해당 객체의 보존 트리(Retaining tree)를 확인할 수 있습니다 [1, 2, 4, 6]. 이 트리는 누수된 객체에서부터 이를 붙잡고 있는 GC 루트까지의 경로를 역순(reverse)으로 보여줍니다 [3, 7]. +* **보존자 무시(Ignore retainers) 기능:** DevTools에서는 특정 보존자를 마우스 우클릭하여 "Ignore this retainer"를 선택함으로써 해당 참조를 숨길 수 있습니다 [8]. 이를 통해 코드를 직접 수정하여 참조를 제거한 뒤 스냅샷을 다시 찍는 번거로운 과정 없이, 다른 객체가 해당 객체를 계속 보존하고 있는지 쉽게 파악할 수 있습니다 [8]. +* **로우레벨(Low-level) 추적:** 매우 복잡한 누수의 경우 V8의 내부 함수인 `%DebugTrackRetainingPath(object)`를 사용할 수 있습니다 [3, 9]. `--allow-natives-syntax` 및 `--track-retaining-path` 런타임 플래그와 함께 실행하면, GC가 발생할 때마다 보존 경로 내 모든 내부 객체의 16진수 주소와 타입을 출력하여 DevTools UI의 추상화를 우회하는 세부적인 로그를 얻을 수 있습니다 [3, 9]. gdb나 lldb와 같은 디버거 세션 중에도 `isolate->heap()->PrintRetainingPath(HeapObject*)` 명령을 통해 객체의 보존 경로를 출력할 수 있습니다 [10]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Garbage Collection]], [[Heap Snapshot]], [[GC Root]], [[Memory Leak]] +- **Projects/Contexts:** [[V8 Engine]], [[Chrome DevTools]], [[Node.js Memory Management]] +- **Contradictions/Notes:** 소스 내에 상충되는 내용은 없습니다. 보존 경로는 개념적으로 루트(Root) 객체로부터 시작되는 포인터의 체인이지만, DevTools 등의 분석 도구에서는 누수된 객체에서 루트로 올라가는 역순(reverse)으로 경로를 시각화하여 디버깅을 돕습니다 [3]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/보존 경로(Retaining Path).md]] +--- diff --git a/AI/보편적 언어 (Ubiquitous Language).md b/AI/보편적 언어 (Ubiquitous Language).md new file mode 100644 index 00000000..3e05d30e --- /dev/null +++ b/AI/보편적 언어 (Ubiquitous Language).md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-560AB4 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 보편적 언어 (Ubiquitous Language)" +--- + +# [[보편적 언어 (Ubiquitous Language)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 보편적 언어(Ubiquitous Language)는 도메인 주도 설계(Domain-Driven Design)에서 복잡성을 해결하기 위해 프로젝트의 모든 참여자가 공통으로 사용하는 공유 언어입니다 [1]. 이는 개발자와 비즈니스 이해관계자 간의 의사소통 격차를 해소하는 공통 어휘 역할을 합니다 [1]. 궁극적으로 소프트웨어가 올바른 비즈니스 문제를 해결하도록 보장하는 데 핵심적인 목적이 있습니다 [1]. + +## 📖 구조화된 지식 (Synthesized Content) +- **개념 및 목적:** 보편적 언어는 도메인 전문가와 긴밀히 협력하여 용어에 대한 공유 사전(glossary)을 생성하고 유지함으로써 비즈니스 도메인의 복잡성을 다루는 방식입니다 [1, 2]. +- **적용 범위:** 이 언어는 단순히 구두 대화에만 국한되지 않으며, 프로젝트의 문서화 작업은 물론 실제 소프트웨어 코드 자체에서도 동일하고 일관되게 사용되어야 합니다 [2]. +- **Bounded Contexts와의 연관성:** 크고 복잡한 도메인은 '주문 관리'나 '고객 지원'과 같이 더 작고 관리하기 쉬운 'Bounded Contexts'로 나뉩니다 [3]. 각각의 Bounded Context는 고유한 모델과 자신만의 보편적 언어를 가지며, 이를 통해 각 소프트웨어 모델을 순수하고 집중된 상태로 유지할 수 있습니다 [3]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Domain-Driven Design (DDD)]], [[Bounded Contexts]] +- **Projects/Contexts:** [[소프트웨어 아키텍처 설계]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/보편적 언어 (Ubiquitous Language).md]] +--- diff --git a/AI/브라우저 메모리 누수 탐지(Browser Memory Leak Detection).md b/AI/브라우저 메모리 누수 탐지(Browser Memory Leak Detection).md new file mode 100644 index 00000000..8b6b3a29 --- /dev/null +++ b/AI/브라우저 메모리 누수 탐지(Browser Memory Leak Detection).md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-CC0FCE +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 브라우저 메모리 누수 탐지(Browser Memory Leak Detection)" +--- + +# [[브라우저 메모리 누수 탐지(Browser Memory Leak Detection)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 브라우저 메모리 누수는 가비지 컬렉션(GC) 대상이 되어야 할 객체들이 Window, 클로저, 이벤트 리스너 등의 GC 루트(Roots)에 의해 계속 참조되어 메모리에서 해제되지 않는 현상이다 [1]. 이를 탐지하고 원인을 파악하기 위해 주로 Chrome DevTools의 힙 스냅샷(Heap snapshot)과 할당 타임라인(Allocation timeline) 도구가 사용된다 [1, 2]. 이러한 도구들을 활용하면 메모리에 남아 있는 객체의 참조 체인(Retainers)과 할당된 스택 트레이스를 분석하여 애플리케이션의 메모리 누수 근본 원인을 식별할 수 있다 [2]. + +## 📖 구조화된 지식 (Synthesized Content) +* **메모리 누수의 정의 및 주요 원인:** + 브라우저 자바스크립트에서 메모리 누수는 메모리가 단순히 '손실'되는 것이 아니라, 더 이상 사용할 필요가 없는 객체가 참조를 유지하여 가비지 컬렉터가 회수하지 못하는 상태를 의미한다 [1]. 현대 프론트엔드 애플리케이션의 주요 누수 패턴으로는 문서에서 제거된 DOM 요소가 자바스크립트 변수에 계속 참조되는 '분리된 DOM 노드(Detached DOM nodes)', 해제되지 않은 '이벤트 리스너 누적', 공유 스코프 객체로 인한 '클로저 스코프 보존(Closure scope retention)', 그리고 정리되지 않은 '타이머 및 옵저버(Forgotten timers and observers)' 등이 있다 [3-5]. 특히 SPA(Single Page Application)의 라우트 전환 시 이전 라우트의 컴포넌트가 제대로 정리되지 않는 것이 누수의 가장 큰 원인 중 하나이다 [6]. + +* **힙 스냅샷(Heap Snapshot)을 활용한 탐지:** + 힙 스냅샷은 특정 시점의 전체 객체 그래프를 캡처한다 [2]. 누수를 찾는 가장 신뢰할 수 있는 방법은 '3-스냅샷 기법(Three-snapshot technique)'이다. 기준점(스냅샷 1)을 잡고 누수 의심 작업을 수행한 뒤 스냅샷 2를 캡처하고, 같은 작업을 반복한 뒤 스냅샷 3을 캡처한다 [7]. 이후 스냅샷 2와 3을 비교(Comparison 뷰 활용)하여 지속적으로 살아남는 객체를 찾으면 일회성 할당에 의한 오탐지를 필터링할 수 있다 [2, 7, 8]. 'Retainers' 패널을 통해 해당 객체를 메모리에 살아있게 만드는 참조 체인을 추적하여 원인을 파악할 수 있다 [2, 9]. + +* **할당 타임라인(Allocation Timeline):** + 할당 타임라인 도구는 일정 기간 동안의 모든 메모리 할당과 스택 트레이스를 기록한다 [2]. 타임라인에 표시되는 파란색 막대는 타임라인 종료 시점까지 여전히 살아있는(누수 의심) 객체를, 회색 막대는 이미 가비지 컬렉션된 객체를 나타낸다 [2, 10-12]. 특정 시간대의 파란색 막대를 확대하여 생성자(Constructor)와 할당 스택(Allocation stack)을 확인하면, 해당 객체가 코드의 어느 위치에서 생성되었는지 정확히 추적할 수 있다 [2, 11, 13]. + +* **주의사항 및 프로덕션 환경 측정:** + DevTools 힙 스냅샷에는 V8 내부 객체도 수천 개 포함되므로 애플리케이션 객체에 집중하기 위해 필터링이 필요하다 [6]. 또한, `console.log`는 로깅된 객체에 대한 참조를 유지하므로 누수 조사 중에는 사용을 피하거나 콘솔을 주기적으로 지워야 한다 [6]. 프로덕션 환경에서는 전체 추적에 따른 오버헤드를 피하기 위해 통계적 샘플링을 사용하는 '할당 샘플링(Allocation sampling)'이나 프로그래밍 방식으로 메모리 사용량을 측정하는 `performance.measureUserAgentSpecificMemory()` API를 활용할 수 있다 [3, 6]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[가비지 컬렉션(Garbage Collection)]], [[힙 스냅샷(Heap Snapshot)]], [[클로저(Closures)]], [[V8 엔진(V8 Engine)]] +- **Projects/Contexts:** [[Chrome DevTools]], [[Single Page Applications (SPA)]] +- **Contradictions/Notes:** 메모리 사용량 그래프가 증가한다고 해서 모두 누수는 아니다. 캐시, 실행 취소 내역, 가상화된 리스트 버퍼 등은 의도적으로 데이터를 유지하는 것이므로, 의도적인 보존(Intentional retention)과 우발적인 누수(Accidental retention)를 반드시 구별해야 한다 [6]. 또한, `WeakRef`와 `FinalizationRegistry`를 사용해 누수에 강한 패턴을 작성할 수는 있으나, GC의 실행 시점은 비결정적이므로 이를 적절한 생명주기 관리의 대체재로 사용해서는 안 된다 [5]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/브라우저 메모리 누수 탐지(Browser Memory Leak Detection).md]] +--- diff --git a/AI/비즈니스 도메인 모델링 (Business Domain Modeling).md b/AI/비즈니스 도메인 모델링 (Business Domain Modeling).md new file mode 100644 index 00000000..7e9b0cf2 --- /dev/null +++ b/AI/비즈니스 도메인 모델링 (Business Domain Modeling).md @@ -0,0 +1,39 @@ +--- +id: P-REINFORCE-AUTO-980499 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 비즈니스 도메인 모델링 (Business Domain Modeling)" +--- + +# [[비즈니스 도메인 모델링 (Business Domain Modeling)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 비즈니스 도메인 모델링은 기술 팀과 도메인 전문가가 긴밀히 협력하여 실제 비즈니스 프로세스를 정확하게 반영하는 소프트웨어 모델을 구축하는 접근 방식입니다 [1]. 이 모델링 과정은 복잡한 비즈니스 로직을 부차적인 것으로 취급하지 않고 애플리케이션의 핵심으로 삼으며, 개발자와 비즈니스 이해관계자 간의 의사소통 격차를 줄이는 '보편적 언어(Ubiquitous Language)'를 생성하여 시스템의 복잡성을 해결하는 것을 목표로 합니다 [1]. 이를 통해 크고 복잡한 비즈니스 도메인을 작고 관리하기 쉬운 하위 도메인으로 나누어 체계적으로 구조화할 수 있습니다 [2]. + +## 📖 구조화된 지식 (Synthesized Content) +**비즈니스 도메인 모델의 핵심 구성 요소** +비즈니스 도메인 모델링(도메인 주도 설계, DDD)을 실무에 적용할 때는 아키텍처를 주도하는 상호 연결된 개념들의 집합으로 비즈니스 도메인을 모델링합니다 [2]. +* **제한된 컨텍스트 (Bounded Contexts):** 크고 복잡한 도메인을 '주문 관리'나 '고객 지원'과 같이 작고 관리하기 쉬운 하위 도메인으로 분할한 것입니다 [2]. 각 컨텍스트는 고유한 모델과 보편적 언어를 가져 모델을 순수하고 집중된 상태로 유지합니다 [2]. +* **집재체 (Aggregates):** 단일 단위로 취급될 수 있는 도메인 객체들의 클러스터를 의미합니다 [2]. 예를 들어, '주문'은 '주문 명세(OrderLineItem)' 객체를 포함하는 집재체가 될 수 있으며, 집재체의 루트는 클러스터 전체의 일관성을 보장하여 트랜잭션 관리를 단순화합니다 [2]. +* **엔티티(Entities)와 값 객체(Value Objects):** 비즈니스 개념은 뚜렷한 정체성을 가진 객체인 '엔티티'와 순전히 속성에 의해서만 정의되는 '값 객체'로 구분됩니다 [2]. 고객은 엔티티이고 배송지 주소는 값 객체가 될 수 있습니다 [2]. 특히 엔티티는 핵심 업무 데이터를 기반으로 동작하는 핵심 업무 규칙을 구체화하며, 시스템의 표현 형식이나 데이터 저장 방식과 무관하게 독립적으로 존재해야 합니다 [3-5]. + +**성공적인 모델링을 위한 실행 전략** +* **보편적 언어 (Ubiquitous Language) 확립:** 도메인 전문가와 긴밀히 협력하여 대화, 문서, 나아가 코드 자체에서도 사용되는 용어의 공유 사전을 만들어야 합니다 [1, 6]. +* **도메인 로직의 격리:** 핵심 비즈니스 로직을 데이터베이스나 UI 프레임워크와 같은 인프라 관심사로부터 엄격히 분리해야 합니다 [6]. 이는 클린 아키텍처(Clean Architecture)의 핵심 원칙과도 맞닿아 있으며, 유지보수와 테스트가 용이한 도메인 모델을 생성합니다 [6, 7]. +* **이벤트 스토밍 (Event Storming) 활용:** 팀이 비즈니스 도메인을 탐색하기 위해 협력적인 워크샵을 진행하며, 이를 통해 도메인 이벤트, 명령 및 집재체를 빠르게 식별하여 모델의 탄탄한 기반을 마련할 수 있습니다 [6]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Domain-Driven Design (DDD)]], [[Bounded Contexts]], [[Ubiquitous Language]], [[Entities]], [[Clean Architecture]] +- **Projects/Contexts:** [[마이크로서비스 아키텍처 (Microservices Architecture)]] (비즈니스 도메인 역량을 중심으로 세분화된 작고 자율적인 서비스 집합으로 시스템을 구축할 때 주요하게 활용됩니다 [8]), [[복잡한 비즈니스 도메인 프로젝트]] (금융, 의료, 이커머스 등 비즈니스 규칙이 방대하고 복잡한 엔터프라이즈 시스템 구축에 특히 이상적입니다 [9]). +- **Contradictions/Notes:** 관련 주제 및 구현 방식에 있어서 소스 간 직접적인 모순은 없으나, 도메인 중심 모델링은 심층적인 도메인 분석과 도메인 전문가와의 지속적인 협력이 요구되므로 구현 복잡성(Implementation Complexity)이 매우 높습니다 [9]. 따라서 단순한 시스템보다는 비즈니스 로직이 핵심인 장기적이고 중대한(Mission-critical) 시스템에 적용하는 것이 권장됩니다 [7, 9]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/비즈니스 도메인 모델링 (Business Domain Modeling).md]] +--- diff --git a/AI/빌보드 임포스터(Billboard Impostors).md b/AI/빌보드 임포스터(Billboard Impostors).md new file mode 100644 index 00000000..2eba1e4c --- /dev/null +++ b/AI/빌보드 임포스터(Billboard Impostors).md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-143607 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 빌보드 임포스터(Billboard Impostors)" +--- + +# [[빌보드 임포스터(Billboard Impostors)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 빌보드 임포스터(Billboard Impostor)는 카메라에서 멀리 떨어진 복잡한 3D 지오메트리를 미리 렌더링된 이미지가 맵핑된 카메라를 향하는 2D 평면(Quad)으로 대체하는 렌더링 최적화 기법입니다 [1]. 모델을 여러 각도(보통 8~16개)에서 캡처한 이미지를 사용하여 3D 객체와 같은 착시를 만들어냅니다 [1]. 렌더링에 필요한 폴리곤 수를 단 2개로 줄여 GPU 리소스 소모를 99.9%까지 감소시키며, 배경 캐릭터나 식생, 먼 거리의 환경 디테일을 표현하는 데 매우 효과적입니다 [1, 2]. + +## 📖 구조화된 지식 (Synthesized Content) +* **작동 원리 및 데이터 구조:** 빌보드 임포스터는 다양한 수평 각도에서 미리 렌더링된 3D 객체의 이미지 뷰(보통 8~16개)를 텍스처 배열이나 플립북 애니메이션 형태로 저장해 둡니다 [1]. 모델이 최대 LOD(Level of Detail) 거리를 초과하면, 시스템은 2개의 폴리곤으로 이루어진 단순한 2D 평면(Quad) 위에 카메라의 현재 시야각과 가장 일치하는 텍스처 뷰를 매칭하여 렌더링합니다 [1]. +* **성능 최적화 이점:** 멀리 떨어진 객체를 매우 단순한 지오메트리(단일 평면)로 렌더링하여 GPU 자원 소모를 99.9%가량 줄여줍니다 [1, 3]. 자세히 관찰되지 않는 배경 캐릭터, 환경의 세부 장식 요소뿐만 아니라, 주로 실루엣만이 필요한 그림자(Shadows) 생성 시에도 매우 뛰어난 단일 LOD 역할을 수행합니다 [1, 2]. +* **시각적 한계 및 대안적 접근:** 2D 스프라이트 기반의 임포스터는 시점을 변경할 때 이미지가 튀는 듯한 '팝핑(Popping)' 현상이 매우 두드러지게 나타날 수 있으며, 여러 장의 텍스처를 저장하기 위한 메모리 비용이 발생합니다 [4]. 밀집된 숲과 같은 환경에서 이러한 한계를 극복하기 위해, 여러 평면을 교차시켜 팝핑을 줄인 '카드보드 임포스터(Cardboard Impostors)'나 메모리 비용을 낮추고 시각적 3D 전환이 부드러운 '볼륨 헐 임포스터(Volume Hull Impostors, VHI)' 기술 등이 대안으로 사용되기도 합니다 [4, 5]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Level of Detail (LOD)]], [[Texture Atlas/Array]], [[Draw Call Optimization]] +- **Projects/Contexts:** [[대규모 3D 환경 렌더링(Large-scale environments)]], [[Three.js 성능 최적화]], [[Tesseract 엔진(Tesseract Engine)]] +- **Contradictions/Notes:** 소스에 따르면 빌보드 임포스터는 GPU 연산량을 획기적으로 줄여주지만, 다각도의 텍스처를 유지해야 하는 메모리 비용 부담이 따르며 각도 전환 시 시각적인 '팝핑(Popping)' 결함이 발생할 수 있습니다 [4]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/빌보드 임포스터(Billboard Impostors).md]] +--- diff --git a/AI/상태 관리 최적화 (Zustand Jotai Valtio).md b/AI/상태 관리 최적화 (Zustand Jotai Valtio).md new file mode 100644 index 00000000..b933142b --- /dev/null +++ b/AI/상태 관리 최적화 (Zustand Jotai Valtio).md @@ -0,0 +1,48 @@ +--- +id: P-REINFORCE-AUTO-5B0AFD +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 상태 관리 최적화 (Zustand Jotai Valtio)" +--- + +# [[상태 관리 최적화 (Zustand Jotai Valtio)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> React의 기본 Context API가 유발하는 불필요한 연쇄 리렌더링 문제를 극복하기 위해, 상태 업데이트 빈도와 아키텍처에 맞춰 각기 다른 철학(Flux, Atomic, Proxy)을 가진 최신 경량 상태 관리 라이브러리를 도입하여 필요한 컴포넌트만 정밀하게 렌더링(Fine-grained reactivity)하는 성능 최적화 기법입니다. + +## 📖 구조화된 지식 (Synthesized Content) +**1. React Context의 성능 병목 한계** React Context는 애플리케이션의 테마나 사용자 정보처럼 가끔 변하는 데이터를 공유하기에는 훌륭하지만, 내부 값 중 하나만 변경되어도 이를 구독하는 전체 컴포넌트 트리가 리렌더링되는 폭포수(Cascading) 현상을 유발합니다. 고빈도 업데이트가 필요한 실시간 대시보드나 게임 등에서는 이러한 Context를 분할하거나, Zustand, Jotai, Valtio 같은 최적화된 대안 상태 관리 라이브러리로 대체해야 합니다. + +**2. Zustand (단순화된 Flux 패턴)** 보일러플레이트를 최소화한 약 1.1KB 크기의 경량 중앙 집중식 스토어입니다. + +- **특징 및 최적화:** 컴포넌트는 `useStore(state => state.value)`와 같은 선택적 구독(Selector) 패턴을 통해 자신이 필요한 상태가 변할 때만 리렌더링되도록 제어할 수 있습니다. +- **주의사항:** Zustand는 기본적으로 얕은 비교(Shallow equality)를 수행하므로, 셀렉터 내부에서 `filter`나 `map`을 통해 매 렌더링마다 새로운 배열이나 객체를 반환하게 하면 최적화가 무력화되어 전체 리렌더링이 발생합니다. 따라서 셀렉터를 분할하여 사용하는 수동 최적화가 중요합니다. + +**3. Jotai (원자적 상태 구성)** 상태를 가장 작은 독립 단위인 '아톰(Atom)'으로 분해하여 관리하는 상향식(Bottom-up) 모델입니다. + +- **특징 및 최적화:** 파생된 아톰(Derived atom)들은 종속성이 변경될 때 자동으로 재계산되며, 컴포넌트는 자신이 읽는 아톰이 변경될 때만 리렌더링됩니다. Zustand처럼 수동으로 셀렉터를 최적화할 필요 없이 자동 최적화가 이루어지므로 미세 조정이 매우 뛰어납니다. +- **활용:** 다중 사용자가 다른 부분을 수정하는 실시간 협업 에디터와 같이 복잡한 파생 상태 및 실시간 업데이트가 잦은 앱에 가장 탁월합니다. 번들 크기는 약 2.9KB입니다. + +**4. Valtio (Proxy 기반 가변 상태)** ES6 Proxy를 활용하여 개발자가 일반 객체를 다루듯 상태를 직접 변형(Mutation)하면, 라이브러리 내부에서 이를 추적해 불변(Immutable) 상태 업데이트로 변환해 주는 방식입니다. + +- **특징 및 최적화:** 컴포넌트가 렌더링 중 어떤 속성(Property)에 접근했는지를 프록시가 자동으로 추적하여, 정확히 해당 속성이 변경될 때만 리렌더링을 발생시킵니다. 깊게 중첩된 객체를 업데이트할 때 전개 연산자(Spread operator)를 쓸 필요가 없어 보일러플레이트가 크게 줄어듭니다. +- **활용:** 복잡한 설정 패널, 깊은 중첩 상태, 잦은 작은 업데이트가 필요한 게임 상태 관리에 최적화되어 있습니다. 번들 크기는 약 3.5KB입니다. + +**5. 하이브리드 아키텍처 전략** 복잡한 프로덕션 앱(예: 대규모 게임 엔진)에서는 반드시 하나의 상태 관리 도구만 고집할 필요가 없습니다. 예를 들어, 사용자의 점수, 게임 스테이지 같은 '저빈도 전역 상태'는 Zustand로 관리하고, 물리 엔진과 연동되어 매 프레임 좌표가 변하는 3D 엔티티들의 '고빈도 세부 상태'는 Valtio를 통해 렌더링을 제어하는 식으로 각 도구의 장점을 살린 아키텍처 역할 분담이 권장됩니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[불필요한 리렌더링 방지]], [[React Context API 한계]], [[React Performance Optimization]], [[가변 프록시(Mutable Proxy) 상태]] +- **Projects/Contexts:** [[장기 실행되는 실시간 데이터 대시보드 최적화]], [[고성능 실시간 상호작용 시스템을 위한 React 기반 게임 엔진 아키텍처]] +- **Contradictions/Notes:** 많은 개발자들이 Zustand를 도입하기만 하면 성능이 좋아질 것이라 오해하지만, 컴포넌트에서 전체 상태를 가져오거나 셀렉터에서 파생 객체를 무분별하게 반환하면 오히려 성능이 악화될 수 있습니다. 최적의 성능을 위해서는 사용 패턴에 대한 정확한 이해(수동 셀렉터 분리)가 동반되어야 합니다. + +--- + +_Last updated: 2026-04-15_ +- Raw Source: [[00_Raw/2026-04-20/상태 관리 최적화 (Zustand, Jotai, Valtio).md]] +--- diff --git a/AI/서플라이 체인 보안 (Supply Chain Security).md b/AI/서플라이 체인 보안 (Supply Chain Security).md new file mode 100644 index 00000000..022b0dfe --- /dev/null +++ b/AI/서플라이 체인 보안 (Supply Chain Security).md @@ -0,0 +1,39 @@ +--- +id: P-REINFORCE-AUTO-E85988 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 서플라이 체인 보안 (Supply Chain Security)" +--- + +# [[서플라이 체인 보안 (Supply Chain Security)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 서플라이 체인 보안(Supply Chain Security)은 소프트웨어 공급망, 특히 애플리케이션에 통합되는 오픈소스 종속성 및 서드파티 컴포넌트와 관련된 위험을 완화하는 데 중점을 두는 보안 영역입니다 [1, 2]. 이는 합법적인 패키지가 손상되거나 메인테이너 계정이 탈취되어 악성 코드가 배포되는 공급망 공격으로부터 소프트웨어 개발 파이프라인을 보호하는 과정을 포함합니다 [3-5]. 이러한 공급망 위험을 관리하고 라이선스 정책 등을 강제하기 위해 SCA(소프트웨어 구성 분석) 도구와 SBOM(소프트웨어 자재 명세서) 활용이 필수적입니다 [1, 2]. + +## 📖 구조화된 지식 (Synthesized Content) +* **공급망 공격의 본질 및 위협** + 최근의 오픈소스 공급망 공격은 주로 시스템 내의 비밀 정보(secrets)를 유출하는 데 초점을 맞추고 있습니다 [6]. 대부분의 오픈소스 파이프라인은 '신뢰'를 기반으로 작동하기 때문에 공격자들은 피싱 등을 통해 메인테이너의 계정(예: npm 토큰)을 탈취하는 방식을 사용합니다 [4, 7]. 메인테이너 한 명의 계정이 손상되더라도 인기 있는 패키지의 악성 버전이 게시되어 수천만 건의 다운스트림 설치에 연쇄적인 피해를 줄 수 있습니다 [4]. + +* **주요 공급망 공격 사례** + 대표적인 사례로 `eslint-config-prettier` 패키지의 손상(CVE-2025-54313)이 있습니다. 공격자는 탈취한 토큰을 통해 악성 설치 스크립트(`install.js`)를 삽입하여 Windows 개발자 머신이나 CI 호스트를 표적으로 삼고 원격 코드 실행(RCE)을 시도했습니다 [3, 7, 8]. 또한, `tj-actions/changed-files` GitHub Action을 표적으로 삼아 합법적인 오픈소스 패키지를 손상시킨 공급망 공격 사례도 보고되었습니다 [5]. + +* **위험 완화 및 방어 전략** + * **메인테이너 보안 강화:** 메인테이너의 보안이 곧 서플라이 체인 보안의 핵심입니다. 이를 위해 다중 인증(MFA) 적용, 권한이 제한된 토큰(scoped tokens) 사용, 엄격한 패키지 게시 관행의 도입이 필요합니다 [4]. + * **보안 도구 및 인벤토리 관리:** 서드파티 및 오픈소스 종속성을 대량으로 사용하는 환경에서는 알려진 취약점을 찾아내는 SCA(Software Composition Analysis) 도구를 통해 위험을 관리해야 합니다 [2]. 또한 SBOM(Software Bill of Materials)을 생성하여 소프트웨어 인벤토리를 명확히 하고 종속성 위험을 모니터링해야 합니다 [1]. + * **침해 발생 시 대응:** 손상된 패키지가 발견되면 해당 버전의 설치를 피하고 안전한 버전으로 종속성을 고정(pinning)해야 합니다 [9]. 아울러 `package-lock.json`이나 `yarn.lock` 파일을 검토하고, CI/CD 파이프라인의 이상 징후를 감사하며, 빌드 과정에서 노출되었을 가능성이 있는 모든 비밀 정보(secrets)를 즉시 교체해야 합니다 [9]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Software Composition Analysis (SCA)]], [[SBOM (Software Bill of Materials)]], [[오픈소스 보안]] +- **Projects/Contexts:** [[CVE-2025-54313 (`eslint-config-prettier` 공격)]], [[`tj-actions/changed-files` 공격]] +- **Contradictions/Notes:** 소스에 따르면 오픈소스 생태계는 '신뢰'에 극도로 의존하여 운영되고 있으나, 바로 이러한 신뢰 모델 때문에 한 명의 개발자 계정에 대한 피싱 공격이 거대한 소프트웨어 서플라이 체인 전체를 위험에 빠뜨리는 구조적 취약점이 됨을 경고하고 있습니다 [4]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/서플라이 체인 보안 (Supply Chain Security).md]] +--- diff --git a/AI/소프트웨어 개발 수명 주기 (SDLC).md b/AI/소프트웨어 개발 수명 주기 (SDLC).md new file mode 100644 index 00000000..00ebed66 --- /dev/null +++ b/AI/소프트웨어 개발 수명 주기 (SDLC).md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-C931C8 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 소프트웨어 개발 수명 주기 (SDLC)" +--- + +# [[소프트웨어 개발 수명 주기 (SDLC)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 소프트웨어 개발 수명 주기(SDLC)는 소프트웨어를 개발하고 유지보수하는 전체 과정을 의미합니다. 현대의 SDLC는 정적 분석(SAST)과 AI 도구를 초기 단계부터 통합하여 취약점을 조기에 발견하고 수정하는 '시프트 레프트(Shift-Left)' 접근법을 강조합니다 [1-3]. 이를 통해 조직은 개발 수명 주기 내내 AI가 생성한 코드를 포함한 모든 소프트웨어의 보안, 유지보수성, 품질을 효율적으로 관리할 수 있습니다 [1, 4, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +- **초기 결함 탐지 및 시프트 레프트(Shift-Left):** SDLC의 초기 단계(예: 풀 리퀘스트 워크플로우)에 정적 코드 분석(SAST) 및 실시간 검사를 통합하면 보안 취약점, 유지보수 문제, 논리적 결함을 조기에 발견할 수 있습니다 [1]. 이는 개발 프로세스 초기에 취약점을 감지하고 수정하는 DevSecOps의 핵심 원칙인 '시프트 레프트' 접근 방식을 의미합니다 [3]. +- **지속적인 모니터링 및 품질 게이트 적용:** 안전한 SDLC(SSDLC)를 위해서는 개발 주기 초기에 스캔을 시작하여 보안 기준선을 설정해야 합니다 [2, 6]. 이후 SDLC의 다양한 단계 전반에 걸쳐 코드를 자주 스캔하여 새롭게 발생하는 보안 문제를 지속적으로 포착하는 것이 모범 사례로 권장됩니다 [6]. 또한 SDLC 전반에 걸쳐 동기화된 품질 게이트(Quality Gates)를 적용하면 대규모 개발 환경에서도 고품질의 안전한 코드 배포를 유지할 수 있습니다 [4]. +- **AI 도구의 통합:** AI 도구들은 점차 SDLC에서 필수 불가결한 요소로 자리 잡고 있습니다 [5]. AI 기반 코드 검사기를 활용하면 개발자는 동료 코드 리뷰 등에서 놓칠 수 있는 복잡한 코드 문제나 보안 위험을 SDLC 초기에 더 빠르고 정확하게 식별 및 해결할 수 있습니다 [2]. +- **SDLC 거버넌스:** 조직은 AI 생성 코드와 기존 개발자 표준을 일치시키기 위해 SDLC 거버넌스를 확립해야 합니다 [7]. 규정 준수를 자동화하고 정책 기반의 품질 게이트를 적용함으로써 소프트웨어 품질 보증 과정을 강화할 수 있습니다 [7, 8]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[시프트 레프트 (Shift-Left)]], [[정적 애플리케이션 보안 테스트 (SAST)]], [[DevSecOps]] +- **Projects/Contexts:** [[AI 코드 리뷰]], [[풀 리퀘스트 워크플로우]] +- **Contradictions/Notes:** 소스 간의 명백한 모순은 존재하지 않으며, 모든 소스가 공통적으로 SDLC 전반(특히 초기 단계)에 걸친 보안 스캔 자동화 및 AI 도구 도입의 중요성을 일관되게 강조하고 있습니다. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/소프트웨어 개발 수명 주기 (SDLC).md]] +--- diff --git a/AI/스캐빈저(Scavenger).md b/AI/스캐빈저(Scavenger).md new file mode 100644 index 00000000..528b00bb --- /dev/null +++ b/AI/스캐빈저(Scavenger).md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-07787D +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 스캐빈저(Scavenger)" +--- + +# [[스캐빈저(Scavenger)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 스캐빈저(Scavenger)는 V8 및 기타 가상 머신에서 새롭게 생성된 수명이 짧은 객체들이 모여 있는 '새로운 공간(New Space 또는 Nursery)'의 메모리를 회수하기 위해 작동하는 마이너 가비지 컬렉션(Minor GC) 메커니즘입니다 [1-3]. 새로운 객체를 위한 공간을 할당하다가 한계에 도달하여 '할당 실패(Allocation failure)'가 발생했을 때 빠르게 실행됩니다 [3, 4]. 살아남은 객체만을 다른 메모리 영역으로 복사하여 단편화를 없애며, 이 과정을 반복하여 오래 살아남은 객체를 기존 세대(Old Generation)로 승격(Promotion)시킵니다 [5, 6]. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[마이너 가비지 컬렉션(Minor GC)]], [[New Space(Young Generation)]], [[할당 실패(Allocation Failure)]], [[Old Space(Old Generation)]], [[메모리 단편화(Fragmentation)]] +- **Projects/Contexts:** [[V8 엔진 힙 아키텍처]], [[Orinoco 가비지 컬렉터]], [[브라우저 및 Node.js 메모리 튜닝]] +- **Contradictions/Notes:** 스캐빈저 알고리즘은 빠른 메모리 할당 및 단편화 제거에 매우 효율적이지만, `To-Space`와 `From-Space` 두 영역의 물리적 메모리를 모두 확보해야 하므로 공간 오버헤드가 크다는 단점이 있습니다 [9, 22]. 따라서 몇 메가바이트 이상의 큰 용량을 관리하는 데에는 비실용적이며, 이를 극복하기 위해 크기가 큰 Old Space에서는 Mark-Sweep 및 Mark-Compact 알고리즘을 혼용합니다 [22, 23]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/스캐빈저(Scavenger).md]] +--- diff --git a/AI/시뮬레이터 멀미 설문지(SSQ).md b/AI/시뮬레이터 멀미 설문지(SSQ).md new file mode 100644 index 00000000..1ca69b6a --- /dev/null +++ b/AI/시뮬레이터 멀미 설문지(SSQ).md @@ -0,0 +1,42 @@ +--- +id: P-REINFORCE-AUTO-30F8D3 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 시뮬레이터 멀미 설문지(SSQ)" +--- + +# [[시뮬레이터 멀미 설문지(SSQ)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 시뮬레이터 멀미 설문지(SSQ, Simulator Sickness Questionnaire)는 가상현실(VR) 기기나 시뮬레이터 사용 시 나타나는 멀미 증상과 부작용을 측정하기 위해 널리 사용되는 주관적 자기 보고식 평가 도구입니다 [1]. 16개의 증상 항목에 대해 0점(없음)부터 3점(심각함)까지의 4점 척도로 응답하도록 구성되어 있습니다 [1]. 수집된 점수는 메스꺼움, 안구운동, 방향 감각 상실이라는 세 가지 주요 하위 범주로 분류되어 사용자의 멀미 심각도를 정량화합니다 [1]. + +## 📖 구조화된 지식 (Synthesized Content) +- **평가 항목 및 하위 범주:** SSQ는 총 16개의 증상 목록을 기반으로 하며, 증상의 군집은 크게 세 가지 하위 범주로 나뉩니다 [1]. + - **메스꺼움(Nausea):** 타액 분비 증가, 트림, 위장 인식 등 위장의 불쾌감과 관련된 7가지 증상을 포함합니다 [1]. + - **안구운동(Oculomotor):** 눈의 피로, 전반적인 피로감, 초점 저하 등과 관련된 7가지 증상으로 구성됩니다 [1]. + - **방향 감각 상실(Disorientation):** 현기증 및 어지럼증과 관련된 7가지 증상을 포함합니다 [1]. + - 세 가지 하위 척도에는 서로 겹치는 증상 항목들이 존재하며, 최종 총점과 하위 척도 점수를 산출할 때 원점수(raw scores)에 각기 다른 가중치가 적용됩니다 [1]. + +- **점수의 해석 및 멀미 수준 분류:** + - 가중치가 적용된 SSQ 총점은 증상의 심각도에 따라 '낮음(0-10)', '중간(10 초과 20 이하)', '높음(20 초과)'의 세 가지 수준으로 분류할 수 있습니다 [2]. + - 특히 20점을 초과하는 높은 점수는 해당 시뮬레이터(또는 VR 콘텐츠)가 사용자에게 문제를 일으키는 '문제 시뮬레이터(problem simulator)'임을 나타내는 주요 지표로 활용됩니다 [3]. + +- **학술적 활용 및 한계점:** + - SSQ는 VR이나 시뮬레이터 환경 노출 기간에 따른 가상현실 멀미(VR sickness)의 악화 및 회복 시간을 평가하는 데 자주 사용됩니다 [4, 5]. + - 다만, 높은 SSQ 점수가 현실 세계에서의 일상적인 행동 성과 저하(예: 운전 등 사고 위험이 있는 활동)와 어떻게 실질적으로 연결되는지에 대해서는 아직 명확히 규명되지 않은 지식적 공백이 남아있습니다 [3, 6]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[가상현실 멀미(VR sickness)]], [[사후 영향(Aftereffects)]] +- **Projects/Contexts:** [[비트 세이버(Beat Saber)를 활용한 가상현실 엑서게이밍 사후 영향 연구]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/시뮬레이터 멀미 설문지(SSQ).md]] +--- diff --git a/AI/시뮬레이터 멀미 설문지(Simulator Sickness Questionnaire).md b/AI/시뮬레이터 멀미 설문지(Simulator Sickness Questionnaire).md new file mode 100644 index 00000000..6df792ac --- /dev/null +++ b/AI/시뮬레이터 멀미 설문지(Simulator Sickness Questionnaire).md @@ -0,0 +1,36 @@ +--- +id: P-REINFORCE-AUTO-C8E657 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 시뮬레이터 멀미 설문지(Simulator Sickness Questionnaire)" +--- + +# [[시뮬레이터 멀미 설문지(Simulator Sickness Questionnaire)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 시뮬레이터 멀미 설문지(SSQ)는 시뮬레이터 및 가상현실(VR) 연구에서 멀미 증상을 정량화하기 위해 가장 널리 사용되는 평가 도구입니다 [1]. 이 설문지는 총 16개의 증상 항목을 0점(없음)부터 3점(심각함)까지의 4점 척도로 평가합니다 [1]. 수집된 데이터는 메스꺼움, 안구 운동, 방향 상실이라는 세 가지 주요 하위 범주로 분류되어 사용자의 신체적, 인지적 불편함을 측정합니다 [1]. + +## 📖 구조화된 지식 (Synthesized Content) +- **구조 및 평가 체계:** SSQ는 사용자의 주관적인 증상을 측정하며 16개의 증상 목록을 사용합니다 [1]. 원점수(Raw scores)는 단순 합산이 아니라, 전체 점수(Total scores)와 각 하위 척도(Subscales)에 대해 다르게 가중치가 부여되어 최종 점수가 계산됩니다 [1]. +- **세 가지 하위 범주(Subscales):** 각 하위 척도에는 다른 하위 척도와 일부 중복되는 증상들이 포함되어 있습니다 [1]. + - **메스꺼움(Nausea):** 타액 분비 증가, 트림, 위장 인식 등 위장 불쾌감과 관련된 7가지 증상으로 구성됩니다 [1]. + - **안구 운동(Oculomotor):** 눈의 피로감, 전반적인 피로, 초점 문제와 관련된 7가지 증상으로 구성됩니다 [1]. + - **방향 상실(Disorientation):** 현기증(dizziness) 및 어지러움(vertigo)과 관련된 7가지 증상을 포함합니다 [1]. +- **점수 해석 및 활용의 한계:** 과거 연구에서는 SSQ 점수가 20점을 초과할 경우 해당 시뮬레이터에 문제가 있다는 지표로 제안되었습니다 [2]. 하지만 이렇게 높게 측정된 SSQ 점수가 사용자의 일상 활동이나 실제 현실에서의 수행 능력 저하에 어떠한 영향을 미치는지는 아직 명확히 밝혀지지 않았으며, 이는 해당 분야의 중요한 지식적 공백으로 남아 있습니다 [2]. +- **가상현실(VR) 노출과의 관계:** SSQ 점수는 가상현실 환경에서의 노출 시간(exposure duration) 및 시뮬레이션 된 움직임(simulated motion)이 증가할수록 함께 높아지는 경향을 보입니다 [3]. 또한, 대형 화면을 통해 시청할 때보다 헤드마운트 디스플레이(HMD)를 사용할 때 SSQ 점수가 상당히 더 높게 나타납니다 [3]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[가상현실 멀미(VR Sickness)]], [[가상현실(Virtual Reality)]] +- **Projects/Contexts:** [[Beat Saber VR 엑서게임 연구]] +- **Contradictions/Notes:** 소스에 따르면 높은 SSQ 점수(20점 초과)는 시뮬레이터의 문제를 시사하는 것으로 제안되지만, 정작 이 높은 점수가 사용자의 실제 일상생활 및 수행 능력 저하와 어떻게 연결되는지는 명확히 규명되지 않은 채로 남아 있습니다 [2]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/시뮬레이터 멀미 설문지(Simulator Sickness Questionnaire).md]] +--- diff --git a/AI/애그리거트 (Aggregates).md b/AI/애그리거트 (Aggregates).md new file mode 100644 index 00000000..53abda71 --- /dev/null +++ b/AI/애그리거트 (Aggregates).md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-8D448D +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 애그리거트 (Aggregates)" +--- + +# [[애그리거트 (Aggregates)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 애그리거트(Aggregates)는 도메인 주도 설계(Domain-Driven Design, DDD)에서 단일 단위로 취급될 수 있는 도메인 객체들의 군집을 의미합니다 [1]. 비즈니스 도메인을 모델링할 때 트랜잭션 관리를 단순화하고, 해당 군집 내 객체들의 일관성을 보장하는 핵심적인 역할을 수행합니다 [1]. + +## 📖 구조화된 지식 (Synthesized Content) +- **단일 단위로서의 도메인 객체 군집:** 애그리거트는 여러 도메인 객체들을 하나의 클러스터로 묶어 단일 유닛으로 다룰 수 있게 해줍니다 [1]. 대표적인 예로, '주문(Order)'이라는 애그리거트 내부에 여러 개의 '주문 항목(OrderLineItem)' 객체들이 포함되는 구조를 들 수 있습니다 [1]. +- **일관성 유지 및 트랜잭션 관리 단순화:** 애그리거트의 루트(root)는 해당 클러스터 전체의 일관성을 보장하는 역할을 책임집니다 [1]. 이러한 구조적 특징 덕분에 시스템 내에서 트랜잭션 관리가 크게 단순해집니다 [1]. +- **이벤트 스토밍(Event Storming)을 통한 식별:** 팀원들과 도메인 전문가가 함께 참여하는 협업 워크숍인 이벤트 스토밍 기법을 활용하면 비즈니스 도메인을 효과적으로 탐색할 수 있습니다 [2]. 이 과정을 통해 도메인 이벤트(domain events), 명령(commands)과 함께 애그리거트를 빠르게 식별할 수 있으며, 이는 소프트웨어 모델을 위한 탄탄한 기반을 제공합니다 [2]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Domain-Driven Design (DDD)]], [[Event Storming]], [[Domain Objects]] +- **Projects/Contexts:** [[비즈니스 도메인 모델링 (Business Domain Modeling)]] +- **Contradictions/Notes:** 소스에 관련 정보가 제한적이며, 애그리거트의 구체적인 구현 방식이나 상반된 주장에 대한 정보는 소스에 부족합니다. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/애그리거트 (Aggregates).md]] +--- diff --git a/AI/양자화 (Quantization).md b/AI/양자화 (Quantization).md new file mode 100644 index 00000000..f41cfe22 --- /dev/null +++ b/AI/양자화 (Quantization).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-7321F3 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 양자화 (Quantization)" +--- + +# [[양자화 (Quantization)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/양자화 (Quantization).md]] +--- diff --git a/AI/에듀테크 기반 게이미피케이션 전략.md b/AI/에듀테크 기반 게이미피케이션 전략.md new file mode 100644 index 00000000..ecf1f266 --- /dev/null +++ b/AI/에듀테크 기반 게이미피케이션 전략.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-4FA22A +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 에듀테크 기반 게이미피케이션 전략" +--- + +# [[에듀테크 기반 게이미피케이션 전략]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/에듀테크 기반 게이미피케이션 전략.md]] +--- diff --git a/AI/연합 학습 (Associative Learning).md b/AI/연합 학습 (Associative Learning).md new file mode 100644 index 00000000..7eb360ed --- /dev/null +++ b/AI/연합 학습 (Associative Learning).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-0E1EE5 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 연합 학습 (Associative Learning)" +--- + +# [[연합 학습 (Associative Learning)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/연합 학습 (Associative Learning).md]] +--- diff --git a/AI/오사카 엑스포 2025 호쿠사이 인스톨레이션(Hokusai installation).md b/AI/오사카 엑스포 2025 호쿠사이 인스톨레이션(Hokusai installation).md new file mode 100644 index 00000000..a571018a --- /dev/null +++ b/AI/오사카 엑스포 2025 호쿠사이 인스톨레이션(Hokusai installation).md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-6697EE +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 오사카 엑스포 2025 호쿠사이 인스톨레이션(Hokusai installation)" +--- + +# [[오사카 엑스포 2025 호쿠사이 인스톨레이션(Hokusai installation)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 오사카 엑스포 2025 호쿠사이 인스톨레이션(Hokusai installation)은 인터랙티브 크리에이티브 스튜디오인 Utsubo가 2025년 오사카 엑스포를 위해 제작한 대규모 유체 시뮬레이션 프로젝트입니다 [1]. 이 인스톨레이션은 Three.js의 WebGPU 렌더러를 적극 활용하여 기존의 한계를 뛰어넘는 100만 개 단위의 파티클을 실시간으로 렌더링하는 그래픽 성능을 입증했습니다 [1]. 98인치 4K 디스플레이 상에서 지연 없는 실시간 다인원 신체 추적(multi-person body tracking) 기능과 결합되어, WebGPU 마이그레이션을 통한 성공적인 프로덕션 벤치마크 사례로 평가받고 있습니다 [2, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **제작사 및 개발 배경:** 이 프로젝트는 브랜드 웹사이트 및 물리적 인스톨레이션을 전문으로 하는 기술 중심 크리에이티브 스튜디오 'Utsubo'에 의해 2025년 오사카 엑스포를 겨냥하여 구축되었습니다 [1]. +- **WebGPU를 통한 파티클 시뮬레이션 구현:** 이 인스톨레이션의 가장 큰 기술적 성과는 Three.js WebGPU 렌더러를 기반으로 100만 개(1M) 규모의 파티클 유체 시뮬레이션(particle fluid simulation)을 실시간으로 구현해 냈다는 점입니다 [1]. 이는 무거운 드로우 콜이나 복잡한 연산이 필요한 환경에서 WebGPU가 제공하는 2~10배의 실질적인 성능 향상을 입증하는 사례입니다 [2]. +- **디스플레이 및 사용자 상호작용:** 오사카 엑스포 현장에 설치된 98인치 4K 디스플레이를 통해 구동되었으며, 사용자 참여를 위해 다수의 사람을 동시에 인식하는 '다인원 신체 추적(multi-person body tracking)' 기술이 적용되었습니다 [3]. 수많은 파티클 연산에도 불구하고 체감할 수 있는 지연 현상(lag) 없이 매끄럽게 렌더링되는 성능을 보여주었습니다 [3]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGPU]], [[Three.js]], [[Particle Fluid Simulation]] +- **Projects/Contexts:** [[Utsubo]], [[Expo 2025 Osaka]], [[Waves of Connection]] +- **Contradictions/Notes:** 소스 문서 내에서 오사카 엑스포 2025의 '호쿠사이 인스톨레이션(Hokusai installation)'과 'Waves of Connection' 인스톨레이션은 모두 100만 개의 파티클을 실시간 렌더링한 Utsubo 스튜디오의 동일하거나 밀접하게 연관된 WebGPU 프로덕션 사례로 교차 언급되고 있습니다 [1, 3]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/오사카 엑스포 2025 호쿠사이 인스톨레이션(Hokusai installation).md]] +--- diff --git a/AI/온톨로지 (Ontology).md b/AI/온톨로지 (Ontology).md new file mode 100644 index 00000000..30f18cbc --- /dev/null +++ b/AI/온톨로지 (Ontology).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-25F9C5 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 온톨로지 (Ontology)" +--- + +# [[온톨로지 (Ontology)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/온톨로지 (Ontology).md]] +--- diff --git a/AI/온톨로지 지식 베이스.md b/AI/온톨로지 지식 베이스.md new file mode 100644 index 00000000..ffc14201 --- /dev/null +++ b/AI/온톨로지 지식 베이스.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A3EA4F +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 온톨로지 지식 베이스" +--- + +# [[온톨로지 지식 베이스]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/온톨로지 지식 베이스.md]] +--- diff --git a/AI/유비쿼터스 언어 (Ubiquitous Language).md b/AI/유비쿼터스 언어 (Ubiquitous Language).md new file mode 100644 index 00000000..78dee10f --- /dev/null +++ b/AI/유비쿼터스 언어 (Ubiquitous Language).md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-34F79B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 유비쿼터스 언어 (Ubiquitous Language)" +--- + +# [[유비쿼터스 언어 (Ubiquitous Language)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 유비쿼터스 언어(Ubiquitous Language)는 소프트웨어 개발 프로젝트의 복잡성을 해결하기 위해 프로젝트에 참여하는 모든 사람이 공통으로 사용하는 공유 언어입니다 [1]. 이는 개발자와 비즈니스 이해관계자(도메인 전문가) 간의 의사소통 격차를 해소하여, 개발된 소프트웨어가 비즈니스의 올바른 문제를 해결할 수 있도록 보장하는 역할을 합니다 [1]. + +## 📖 구조화된 지식 (Synthesized Content) +- **도메인 주도 설계(DDD)의 핵심:** 유비쿼터스 언어는 비즈니스 도메인에 대한 깊은 이해를 중심으로 하는 도메인 주도 설계([[Domain-Driven Design (DDD)]]) 접근 방식의 주요 목표 중 하나입니다 [1]. +- **생성 및 적용 범위:** 기술 팀은 도메인 전문가와 긴밀하게 협력하여 용어의 공유집(shared glossary)을 생성하고 유지 관리해야 합니다 [2]. 이렇게 정의된 유비쿼터스 언어는 일상적인 대화, 문서화는 물론 실제 작성되는 코드 자체에도 일관되게 사용되어야 합니다 [2]. +- **제한된 컨텍스트(Bounded Contexts) 내의 언어:** 크고 복잡한 도메인은 더 작고 관리하기 쉬운 하위 도메인인 '바운디드 컨텍스트(Bounded Contexts)'로 나뉩니다 [3]. "주문 관리"나 "고객 지원"과 같은 각 컨텍스트는 고유한 모델과 유비쿼터스 언어를 가지며, 이를 통해 시스템 모델을 순수하고 명확하게 집중된 상태로 유지할 수 있습니다 [3]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Domain-Driven Design (DDD)]], [[Bounded Contexts]] +- **Projects/Contexts:** [[소프트웨어 아키텍처 설계]] +- **Contradictions/Notes:** 소스 내에 유비쿼터스 언어와 관련하여 대립하거나 상충하는 정보는 없습니다. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/유비쿼터스 언어 (Ubiquitous Language).md]] +--- diff --git a/AI/인간-컴퓨터 상호작용 (HCI).md b/AI/인간-컴퓨터 상호작용 (HCI).md new file mode 100644 index 00000000..2b03a807 --- /dev/null +++ b/AI/인간-컴퓨터 상호작용 (HCI).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5A206B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 인간-컴퓨터 상호작용 (HCI)" +--- + +# [[인간-컴퓨터 상호작용 (HCI)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/인간-컴퓨터 상호작용 (HCI).md]] +--- diff --git a/AI/인공지능 상호작용 (HAI).md b/AI/인공지능 상호작용 (HAI).md new file mode 100644 index 00000000..bc8e714d --- /dev/null +++ b/AI/인공지능 상호작용 (HAI).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-BA3F26 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 인공지능 상호작용 (HAI)" +--- + +# [[인공지능 상호작용 (HAI)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/인공지능 상호작용 (HAI).md]] +--- diff --git a/AI/인적 자원 관리(HRM) 전략 수립.md b/AI/인적 자원 관리(HRM) 전략 수립.md new file mode 100644 index 00000000..d22c43d7 --- /dev/null +++ b/AI/인적 자원 관리(HRM) 전략 수립.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-AD8C86 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 인적 자원 관리(HRM) 전략 수립" +--- + +# [[인적 자원 관리(HRM) 전략 수립]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/인적 자원 관리(HRM) 전략 수립.md]] +--- diff --git a/AI/인지 행동 치료 (CBT).md b/AI/인지 행동 치료 (CBT).md new file mode 100644 index 00000000..beb72a87 --- /dev/null +++ b/AI/인지 행동 치료 (CBT).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A19886 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 인지 행동 치료 (CBT)" +--- + +# [[인지 행동 치료 (CBT)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/인지 행동 치료 (CBT).md]] +--- diff --git a/AI/인지행동치료(CBT).md b/AI/인지행동치료(CBT).md new file mode 100644 index 00000000..e26dad98 --- /dev/null +++ b/AI/인지행동치료(CBT).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-624537 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 인지행동치료(CBT)" +--- + +# [[인지행동치료(CBT)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/인지행동치료(CBT).md]] +--- diff --git a/AI/인터랙티브 스토리텔링 연구.md b/AI/인터랙티브 스토리텔링 연구.md new file mode 100644 index 00000000..84b317f7 --- /dev/null +++ b/AI/인터랙티브 스토리텔링 연구.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5DBDA2 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 인터랙티브 스토리텔링 연구" +--- + +# [[인터랙티브 스토리텔링 연구]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/인터랙티브 스토리텔링 연구.md]] +--- diff --git a/AI/정적 애플리케이션 보안 테스트 (SAST).md b/AI/정적 애플리케이션 보안 테스트 (SAST).md new file mode 100644 index 00000000..a68df355 --- /dev/null +++ b/AI/정적 애플리케이션 보안 테스트 (SAST).md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-517F55 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 정적 애플리케이션 보안 테스트 (SAST)" +--- + +# [[정적 애플리케이션 보안 테스트 (SAST)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> SAST(정적 애플리케이션 보안 테스트)는 애플리케이션의 소스 코드나 바이트코드를 실행하기 전에 정적으로 분석하여 잠재적인 보안 취약점을 식별하는 화이트박스 테스트 기법이다 [1]. 개발 수명 주기(SDLC) 초기에 취약점을 발견하여 수정 비용과 시간을 대폭 절감하게 해주는 '시프트 레프트(Shift-Left)' 보안 전략의 핵심 도구이다 [1, 2]. 최근에는 단순한 규칙 기반 패턴 매칭의 한계를 극복하기 위해 인공지능(AI)과 머신러닝 모델을 통합하여, 코드의 문맥과 의미를 이해하고 수정안까지 자동으로 제안하는 방향으로 진화하고 있다 [3, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +* **작동 방식 및 주요 분석 기법**: SAST는 소스 코드를 구문 분석하여 추상 구문 트리(AST)를 구축하고 코드의 구조, 의미론적 흐름, 데이터 흐름(Data Flow) 등을 정적으로 분석한다 [5, 6]. 가장 중요한 기법 중 하나인 오염 분석(Taint analysis)은 사용자 입력 같은 신뢰할 수 없는 데이터 소스가 데이터베이스 쿼리나 파일 시스템 조작 같은 민감한 싱크(Sink)로 데이터 무결성 검증 없이 흘러가는지를 추적한다 [7, 8]. +* **탐지 가능한 주요 취약점**: 인젝션 공격(SQL, NoSQL, 명령어 등), 크로스 사이트 스크립팅(XSS), 경로 탐색(Path traversal), 하드코딩된 비밀번호 및 민감 정보 노출, 안전하지 않은 암호화 알고리즘, 서버 측 요청 위조(SSRF) 등 주로 코드 레벨에서 발생하는 광범위한 결함을 찾아낸다 [1, 9-11]. +* **전통적 SAST의 한계점**: 기존의 SAST는 정해진 규칙에 전적으로 의존하므로 비즈니스 로직의 의도나 런타임 컨텍스트를 이해하지 못해 가짜 경고인 오탐(False Positive)을 다수 발생시킬 수 있다 [3, 12, 13]. 또한 분석 대상의 프로그래밍 언어에 강하게 종속적이며, 프론트엔드와 백엔드가 다른 저장소로 분리된 경우 전체 맥락을 잃는다는 한계가 존재한다 [13]. +* **AI 기반 SAST로의 진화**: 최신의 SAST 도구들(예: Snyk Code, Corgea 등)은 대규모 언어 모델(LLM)과 머신러닝을 도입하여 전통적 SAST의 오탐률을 획기적으로 낮추고 있다 [14-17]. 이들은 여러 파일에 걸친(Interfile) 데이터 흐름을 이해하여 숨겨진 로직 결함을 찾아내며, 개발자의 통합 개발 환경(IDE)이나 Pull Request 환경에서 적절한 코드 수정안(Auto-fix)을 자동 제안하고 적용 전 자체 검증까지 거치는 수준으로 발전하고 있다 [18-21]. +* **다른 애플리케이션 보안(AppSec) 도구와의 관계**: SAST는 개발 조직이 직접 작성한 1사(First-party) 코드를 검사한다 [22]. 반면, 실행 중인 애플리케이션을 블랙박스 형태로 테스트하는 것은 동적 애플리케이션 보안 테스트(DAST)이며, 서드파티 오픈소스 종속성 내의 알려진 취약점(CVE)이나 라이선스 위험을 분석하는 것은 소프트웨어 구성 분석(SCA)이다 [22-24]. 견고한 보안을 위해서는 이들 도구를 상호 보완적인 하이브리드 방식으로 CI/CD 파이프라인에 구축해야 한다 [25-27]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[정적 코드 분석]], [[시프트 레프트 (Shift-Left)]], [[오염 분석 (Taint Analysis)]], [[동적 애플리케이션 보안 테스트 (DAST)]], [[소프트웨어 구성 분석 (SCA)]], [[자동화된 코드 거버넌스]] +- **Projects/Contexts:** [[Snyk Code]], [[Corgea]], [[GitHub Advanced Security]], [[DevSecOps 파이프라인]] +- **Contradictions/Notes:** 자동화된 SAST 도구들은 처리 속도와 규모 확장성이 뛰어나지만, 정해진 규칙에 벗어나거나 복잡한 비즈니스 로직 및 새로운 아키텍처 맥락에 따른 취약점은 놓칠 수 있다. 연구에 따르면 SAST 툴들은 실제 취약점의 약 22% 정도를 탐지하지 못하거나 30~60%의 높은 오탐률로 경고 피로도(Alert fatigue)를 일으킨다 [12, 28, 29]. 따라서 AI로 개선된 SAST 도구를 사용하여 일차적인 검열을 수행하더라도, 고위험 코드나 복잡한 시스템 로직의 최종 보안 검증을 위해서는 반드시 인간 중심의 '수동 코드 리뷰(Manual Code Review)'를 결합하는 하이브리드 리뷰가 필수적으로 요구된다 [30-32]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/정적 애플리케이션 보안 테스트 (SAST).md]] +--- diff --git a/AI/정적 애플리케이션 보안 테스트(SAST).md b/AI/정적 애플리케이션 보안 테스트(SAST).md new file mode 100644 index 00000000..5fffa116 --- /dev/null +++ b/AI/정적 애플리케이션 보안 테스트(SAST).md @@ -0,0 +1,48 @@ +--- +id: P-REINFORCE-AUTO-E9615F +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 정적 애플리케이션 보안 테스트(SAST)" +--- + +# [[정적 애플리케이션 보안 테스트(SAST)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 정적 애플리케이션 보안 테스트(SAST)는 애플리케이션을 실행하지 않고 소스 코드, 바이트코드 등의 구조와 구문을 정적으로 분석하여 보안 취약점과 논리적 오류를 식별하는 화이트박스 테스트 기법입니다 [1, 2]. 소프트웨어 개발 생명주기(SDLC)의 가장 초기 단계(코드 작성 및 CI/CD 파이프라인)에 적용되어 문제를 발견하므로, 수정에 드는 비용과 시간을 크게 절감할 수 있습니다 [1, 3, 4]. 최근의 SAST 도구들은 단순한 패턴 매칭을 넘어 머신러닝 및 대형 언어 모델(LLM)을 결합하여 코드의 문맥을 이해하고, 자동으로 수정 코드를 제안하는 AI 기반으로 진화하고 있습니다 [5, 6]. + +## 📖 구조화된 지식 (Synthesized Content) +* **작동 원리 및 주요 탐지 항목:** + SAST는 소스 코드를 구문 분석하여 추상 구문 트리(AST)를 구축하고 제어 흐름, 데이터 흐름(오염 분석 등) 및 의미론적 분석을 적용하여 취약점을 찾아냅니다 [2, 7, 8]. 이를 통해 SQL 인젝션, 크로스 사이트 스크립팅(XSS), 경로 탐색, 하드코딩된 비밀번호, 안전하지 않은 암호화 알고리즘 등 OWASP Top 10에 해당하는 주요 보안 위협을 애플리케이션 배포 전에 식별합니다 [9-12]. + +* **SAST 도입의 장점:** + * **조기 발견 및 수정(시프트 레프트):** IDE 플러그인이나 커밋 이전 단계(Pre-commit hook)에 연동되어, 개발자가 코드를 작성하는 즉시 피드백을 제공받고 실시간으로 문제를 해결할 수 있습니다 [13-15]. + * **명확한 가이드 제공:** 취약점이 발생한 정확한 코드 위치와 데이터 흐름을 시각적으로 제공하여 원인 파악 및 수정이 매우 용이합니다 [14, 16]. + * **실행 환경 불필요:** 코드를 실행하지 않고도 분석이 가능해 동적 테스트(DAST)에 비해 스캔 속도가 빠르고 자동화가 쉽습니다 [14, 17]. + +* **한계 및 단점:** + * **컨텍스트 부족 및 오탐(False Positive):** 런타임 환경이나 비즈니스 로직의 의도를 완전히 이해하지 못해, 실제로는 안전한 코드임에도 취약점으로 경고하는 오탐(False Positive)과 미탐(False Negative)이 발생할 수 있습니다 [18, 19]. + * **언어 종속성:** 분석 대상 코드가 작성된 특정 프로그래밍 언어와 프레임워크를 해당 도구가 명시적으로 지원해야만 작동합니다 [19]. + +* **AI 기반 SAST의 등장:** + 전통적인 SAST는 정해진 규칙과 패턴에 의존하지만, 현대의 AI 기반 SAST(예: Snyk Code, Corgea 등)는 수백만 개의 오픈소스 커밋 데이터를 학습한 머신러닝/LLM 엔진을 활용합니다 [6, 20, 21]. 이를 통해 여러 파일과 모듈에 걸친 복잡한 데이터 흐름(Interfile analysis)을 추적하고, 단순 경고를 넘어 개발자가 즉각 반영할 수 있는 상황에 맞는 자동 수정(Auto-fix) 코드를 제안합니다 [22-24]. + +* **효과적인 활용을 위한 하이브리드 코드 리뷰:** + 자동화된 SAST는 알려진 보안 취약점과 스타일 오류를 기계적인 속도로 일관되게 찾아내는 데 탁월합니다 [25, 26]. 그러나 도구는 아키텍처의 트레이드오프나 도메인 특화 비즈니스 로직을 평가할 수 없습니다 [27, 28]. 따라서 SAST를 CI/CD 파이프라인의 1차 품질 게이트로 자동화하여 반복적인 결함을 걸러내고, 아키텍처나 민감한 권한 로직 등에 대해서는 사람이 직접 문맥을 파악하는 수동 코드 리뷰(Manual Review)를 결합하는 하이브리드 접근법이 가장 이상적입니다 [29-31]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[동적 애플리케이션 보안 테스트(DAST)]], [[소프트웨어 구성 분석(SCA)]], [[시프트 레프트(Shift-Left)]], [[추상 구문 트리(AST)]] +- **Projects/Contexts:** [[CI/CD 파이프라인]], [[OWASP Top 10]], [[하이브리드 코드 리뷰]] +- **Contradictions/Notes:** + * "전통적인 규칙 기반의 SAST 도구는 50~80%에 이르는 높은 오탐률(False Positive)을 보여 개발자의 피로도를 높일 수 있지만, 최근의 AI 및 기계 학습 기반 SAST(예: Veracode, Corgea 등)는 컨텍스트를 이해함으로써 오탐률을 5% 이하(일부 1.1% 미만)로 현저히 줄일 수 있다고 보고됩니다." [19, 32]. + * "자동화된 정적 분석 도구만으로 모든 보안 오류를 막을 수 있다고 기대하는 것은 위험합니다. 실증 연구에 따르면 SAST 도구는 실제 존재하는 취약점의 약 22%를 완전히 놓칠 수 있으며, 따라서 자동화 도구를 맹신하지 말고 고위험 코드 변경에 대해서는 반드시 수동 코드 리뷰를 병행해야 합니다." [18, 33-35]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/정적 애플리케이션 보안 테스트(SAST).md]] +--- diff --git a/AI/지식 베이스 (Knowledge Base).md b/AI/지식 베이스 (Knowledge Base).md new file mode 100644 index 00000000..a63a6229 --- /dev/null +++ b/AI/지식 베이스 (Knowledge Base).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-295580 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 지식 베이스 (Knowledge Base)" +--- + +# [[지식 베이스 (Knowledge Base)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/지식 베이스 (Knowledge Base).md]] +--- diff --git a/AI/직렬화(Serialization) 및 병목 현상.md b/AI/직렬화(Serialization) 및 병목 현상.md new file mode 100644 index 00000000..3d327fae --- /dev/null +++ b/AI/직렬화(Serialization) 및 병목 현상.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9AD769 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 직렬화(Serialization) 및 병목 현상" +--- + +# [[직렬화(Serialization) 및 병목 현상]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/직렬화(Serialization) 및 병목 현상.md]] +--- diff --git a/AI/창발 능력 (Emergent Abilities).md b/AI/창발 능력 (Emergent Abilities).md new file mode 100644 index 00000000..7d8ef2d1 --- /dev/null +++ b/AI/창발 능력 (Emergent Abilities).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9DBA7B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 창발 능력 (Emergent Abilities)" +--- + +# [[창발 능력 (Emergent Abilities)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/창발 능력 (Emergent Abilities).md]] +--- diff --git a/AI/카산드라(Cassandra).md b/AI/카산드라(Cassandra).md new file mode 100644 index 00000000..5cafeb73 --- /dev/null +++ b/AI/카산드라(Cassandra).md @@ -0,0 +1,38 @@ +--- +id: P-REINFORCE-AUTO-A802F0 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 카산드라(Cassandra)" +--- + +# [[카산드라(Cassandra)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 카산드라(Cassandra)는 기존의 RDBMS를 대체하여 대규모 데이터 환경(NoSQL at scale)을 지원하기 위해 사용되는 오픈 소스 기반의 데이터베이스입니다 [1]. 다중 리전(Multi-Regional) 및 다방향(Multi-directional) 아키텍처를 지원하며, 가용성(Available)과 파티션 허용성(Partition Tolerance)을 제공하는 것이 특징입니다 [1]. 넷플릭스(Netflix)의 마이크로서비스 아키텍처에서 인프라의 핵심 데이터 저장소로 활용되었습니다 [1, 2]. + +## 📖 구조화된 지식 (Synthesized Content) +소스에 기반한 카산드라(Cassandra)의 주요 특징 및 활용 맥락은 다음과 같습니다: + +* **대규모 NoSQL 데이터베이스:** 관계형 데이터베이스(RDBMS) 모델에서 전환하여, 대규모 확장에 최적화된 NoSQL 솔루션으로 채택되었습니다 [1]. +* **분산 시스템 아키텍처 특성:** + * 오픈 소스 기술로 설계되었습니다 [1]. + * 다중 리전 및 다방향으로 동작할 수 있어 글로벌 스케일의 시스템에 적합합니다 [1]. + * 분산 컴퓨팅의 핵심 특성인 높은 가용성(Available)과 네트워크 단절 시에도 시스템이 동작하는 파티션 허용성(Partition Tolerance)을 보장합니다 [1]. + * 상황에 따라 데이터의 일관성 수준을 조절할 수 있는 '조정 가능한 일관성(Tunable Consistency)'을 제공합니다 [1]. +* **넷플릭스(Netflix) 아키텍처 내의 역할:** 넷플릭스의 마이크로서비스 구조 내에서 EVCache, ELB, Zuul 등과 함께 미들 티어 및 플랫폼 인프라의 주요 데이터 레이어로 기능하고 있습니다 [2]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[NoSQL]], [[RDBMS]], [[Microservices Architecture]], [[Tunable Consistency]] +- **Projects/Contexts:** [[넷플릭스 마이크로서비스 아키텍처 전환(Adopting Microservices at Netflix)]] +- **Contradictions/Notes:** 카산드라 자체에 대한 깊이 있는 기술적 원리보다는 넷플릭스의 마이크로서비스 도입 과정에서 RDBMS를 대체한 대규모 NoSQL 솔루션의 사례로서만 간략하게 언급되어 있어 추가적인 기술적 세부 정보는 소스에 관련 정보가 부족합니다 [1]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/카산드라(Cassandra).md]] +--- diff --git a/AI/코드 리뷰(Code Review).md b/AI/코드 리뷰(Code Review).md new file mode 100644 index 00000000..837ff3a0 --- /dev/null +++ b/AI/코드 리뷰(Code Review).md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-119026 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 코드 리뷰(Code Review)" +--- + +# [[코드 리뷰(Code Review)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 코드 리뷰는 소프트웨어의 품질, 보안 및 전반적인 코드 건강 상태를 개선하고 유지하기 위해 개발자들이 작성한 코드 변경 사항을 검사하는 프로세스입니다[1, 2]. 이 과정은 사람이 직접 코드를 읽고 분석하는 수동 리뷰와 정적 분석 도구 및 AI를 활용하는 자동화된 리뷰로 구성됩니다[3, 4]. 성공적인 코드 리뷰는 완벽한 코드만을 추구하기보다는 지속적인 개선과 개발 진행 속도 간의 적절한 균형을 맞추는 것을 목표로 합니다[5, 6]. + +## 📖 구조화된 지식 (Synthesized Content) +* **목적과 핵심 원칙:** + 코드 리뷰의 주된 목적은 시간이 지남에 따라 코드베이스의 전반적인 건강 상태를 개선하는 것입니다[2]. 리뷰어는 코드가 완벽하지 않더라도 전체적인 코드 건강을 향상시킨다면 승인을 고려해야 하며, 개발의 진척과 품질 사이에서 균형을 유지해야 합니다[5, 6]. 리뷰 중 발생하는 의견 충돌 시에는 개인적 선호보다 기술적인 사실과 데이터를 우선시해야 하며, 스타일 문제에 대해서는 정해진 스타일 가이드를 절대적인 기준으로 삼습니다[7]. 또한, 코드 리뷰는 개발자에게 새로운 언어, 프레임워크 또는 설계 원칙을 가르치는 멘토링과 지식 공유의 중요한 기능도 수행합니다[8, 9]. + +* **수동 코드 리뷰 (Manual Code Review):** + 사람이 직접 코드를 줄 단위로 읽고 논의하는 방식입니다[1, 3]. 수동 리뷰는 아키텍처 설계의 트레이드오프 결정, 복잡한 비즈니스 로직 검증, 교차 서비스 영향 평가 및 코드 작성의 근본적인 의도를 파악하는 데 매우 뛰어납니다[1, 10, 11]. 반면, 코드를 검토하는 데 많은 시간과 비용이 소요되며, 리뷰어의 피로나 편견에 의해 인적 오류가 발생할 수 있어 일관된 검사 범위를 유지하기 어렵다는 단점이 있습니다[8, 12, 13]. + +* **자동화된 코드 리뷰 (Automated Code Review):** + 정적 애플리케이션 보안 테스트(SAST), 린터(Linter), 포매터(Formatter), AI 도구 등을 사용하여 소스 코드를 실행하지 않고 자동으로 검사하는 방식입니다[3, 14]. 수천 줄의 코드를 단 몇 초 만에 스캔하여 구문 오류, 코딩 스타일 위반 및 알려진 보안 취약점을 일관되게 찾아냅니다[15, 16]. 대표적으로 SonarQube, ESLint, Prettier를 비롯해 GitHub Copilot, Snyk Code, DeepCode AI 등 기계 학습 기반의 AI 리뷰 도구들이 활용됩니다[17-20]. 그러나 자동화 도구는 비즈니스 로직이나 아키텍처의 의도를 완벽히 이해하지 못해 오탐(False Positive)을 다수 발생시킬 수 있다는 한계가 있습니다[21-23]. + +* **하이브리드 리뷰 워크플로우 (Hybrid Review Workflow):** + 최신 소프트웨어 개발 환경에서는 수동 리뷰와 자동화된 리뷰를 결합한 하이브리드 모델이 가장 이상적인 모범 사례로 꼽힙니다[4, 24]. Husky와 lint-staged 같은 도구를 이용해 커밋 전이나 CI/CD 파이프라인에서 자동화된 스캔(스타일 검사, 보안 취약점 탐지)을 우선적으로 실행하여 반복적이고 기본적인 오류를 차단합니다[25-27]. 이렇게 자동화된 관문을 통과한 코드에 한해서 인간 리뷰어가 아키텍처 결정, 비즈니스 로직 검증 등 고차원적인 맥락 평가와 보안 영역에 집중하여 수동 리뷰를 진행합니다[26, 28]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[수동 코드 리뷰(Manual Code Review)]], [[자동화된 코드 리뷰(Automated Code Review)]], [[정적 애플리케이션 보안 테스트(SAST)]] +- **Projects/Contexts:** [[하이브리드 코드 리뷰 워크플로우]], [[Google의 코드 리뷰 표준]], [[DevSecOps 및 CI/CD 파이프라인]] +- **Contradictions/Notes:** 자동화된 코드 리뷰 도구는 스캔 속도가 빠르고 규칙을 일관되게 적용하지만 비즈니스 로직의 의도를 이해하지 못해 다수의 오탐(False Positive)을 발생시킬 수 있습니다[22]. 반면 수동 코드 리뷰는 문맥을 이해하고 복잡한 아키텍처를 검토하는 데 필수적이지만 시간이 오래 걸리고 인적 오류의 위험이 병존합니다[13]. 따라서 이 두 가지 리뷰 방식은 상호 배타적인 것이 아니라, 장단점을 상호 보완하는 하이브리드 방식(기계적 검증 후 인간의 논리적 판단)으로 결합하여 사용하는 것이 권장됩니다[4, 26]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/코드 리뷰(Code Review).md]] +--- diff --git a/AI/풀 리퀘스트 워크플로우.md b/AI/풀 리퀘스트 워크플로우.md new file mode 100644 index 00000000..7e257cb5 --- /dev/null +++ b/AI/풀 리퀘스트 워크플로우.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-9C30BC +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 풀 리퀘스트 워크플로우" +--- + +# [[풀 리퀘스트 워크플로우]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 풀 리퀘스트 워크플로우(Pull Request Workflow)는 개발자가 작성한 소스 코드 변경 사항을 메인 브랜치에 병합(Merge)하기 전에 검토하고 검증하는 소프트웨어 개발 수명 주기(SDLC)의 핵심 단계입니다 [1, 2]. 현대의 풀 리퀘스트 워크플로우는 정적 애플리케이션 보안 테스트(SAST) 및 AI 기반 코드 리뷰 도구들과 긴밀하게 통합되어 작동합니다 [2, 3]. 이를 통해 코드의 품질과 보안을 자동으로 평가하고 수동 검토와 결합함으로써 리뷰 지연을 줄이고 결함이 프로덕션으로 넘어가는 것을 방지합니다 [4, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +- **자동화 및 AI 도구의 통합:** 최신 풀 리퀘스트 워크플로우에서는 코드가 병합되기 전에 AI 및 정적 코드 분석(SAST) 도구가 자동으로 스캔을 수행합니다 [1, 3]. SonarQube, Snyk, Codacy, GitHub Advanced Security와 같은 도구들은 풀 리퀘스트 스레드 내에 직접 분석 요약, 수정 제안(Autofix) 및 품질 게이트 통과 여부를 표시하여 개발자와 리뷰어에게 즉각적인 피드백을 제공합니다 [6-9]. +- **수동 및 자동화 리뷰의 하이브리드 접근:** 풀 리퀘스트 워크플로우에서 자동화 도구는 구문 오류, 코드 스멜, 알려진 보안 취약점을 기계적인 속도로 찾아내는 데 탁월합니다 [10]. 하지만 비즈니스 로직, 아키텍처 설계의 트레이드오프, 문맥 의존적인 보안 위험은 여전히 인간 리뷰어의 전문성이 요구됩니다 [11-13]. 따라서 풀 리퀘스트 시 자동화 스캔을 먼저 실행하여 일상적인 문제를 걸러낸 후, 인간 리뷰어가 중요 로직 검토에 집중하는 하이브리드 방식이 가장 이상적입니다 [5, 14]. +- **워크플로우 성과 측정 지표:** 풀 리퀘스트 워크플로우의 효율성과 AI 도구 도입의 영향은 여러 지표를 통해 측정됩니다. 대표적으로 '풀 리퀘스트 사이클 시간(PR cycle time)', '최초 리뷰까지 걸린 시간(Time to first review)', '리뷰 백로그 크기(Review backlog size)', 그리고 '병합 후 재작업률(Post-merge rework rate)'이 사용됩니다 [15, 16]. +- **사전 커밋(Pre-commit) 단계와의 연계:** 풀 리퀘스트 워크플로우로 코드가 올라오기 전, 개발 환경 로컬 단에서 Husky와 lint-staged 같은 Git 훅(Git Hooks) 도구를 사용하여 사전 검증을 구성할 수 있습니다 [17, 18]. 이 도구들은 커밋을 시도하는 변경된 파일에 대해서만 ESLint 및 Prettier 등을 실행하여 오류를 수정하고 포맷팅을 강제함으로써, 풀 리퀘스트 리뷰 시 스타일 관련 논쟁을 없애고 워크플로우의 속도를 높여줍니다 [18, 19]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[자동화된 코드 리뷰]], [[수동 코드 리뷰]], [[SAST (정적 애플리케이션 보안 테스트)]], [[Git 훅 (Git Hooks)]] +- **Projects/Contexts:** [[DevSecOps]], [[CI/CD 파이프라인]] +- **Contradictions/Notes:** 소스들은 AI 및 자동화 도구가 풀 리퀘스트 리뷰 주기를 단축시킨다고 주장하지만, 올바른 워크플로우 체계 없이 단순히 도구만 도입할 경우 오히려 무의미한 경고(False Positives)가 쏟아져 리뷰어의 경고 피로도(Alert Fatigue)를 높이고 리뷰 지연을 초래할 수 있다고 경고합니다 [11, 20, 21]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/풀 리퀘스트 워크플로우.md]] +--- diff --git a/AI/풀 리퀘스트(PR) 기반 보안 검토.md b/AI/풀 리퀘스트(PR) 기반 보안 검토.md new file mode 100644 index 00000000..a738a738 --- /dev/null +++ b/AI/풀 리퀘스트(PR) 기반 보안 검토.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-8FBB2B +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 풀 리퀘스트(PR) 기반 보안 검토" +--- + +# [[풀 리퀘스트(PR) 기반 보안 검토]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 풀 리퀘스트(PR) 기반 보안 검토는 소프트웨어 개발 수명 주기(SDLC)에서 코드 변경 사항이 메인 브랜치에 병합되기 전에 보안 취약점과 품질 문제를 검사하는 핵심 과정입니다 [1, 2]. 이 과정은 자동화된 정적 분석(SAST) 및 AI 도구를 통한 사전 필터링과 개발자의 수동 피어 리뷰(Peer Review)를 결합하여, 개발 속도를 저하시키지 않으면서 코드의 보안성과 유지보수성을 확보하는 것을 목표로 합니다 [3, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +- **조기 결함 발견 및 시프트 레프트(Shift-Left):** PR은 개발자들이 변경 사항을 검토하고 승인하는 병합 지점이므로, 코드가 출시되기 전에 보안 위험을 가장 효과적으로 표면화하고 해결할 수 있는 단계입니다 [5, 6]. CI/CD 파이프라인 및 PR 워크플로우에 정적 코드 분석과 실시간 검사를 통합함으로써 개발자는 배포 이후가 아닌 병합 이전에 성능 문제와 보안 취약점을 조기에 발견하여 '시프트 레프트(Shift-Left)' 보안을 실현할 수 있습니다 [1, 7, 8]. +- **자동화 및 AI 기반 PR 리뷰:** 최신 보안 검토는 AI 코드 리뷰 도구와 SAST 엔진을 활용하여 PR 생성 시 자동으로 코드를 스캔합니다 [2, 9]. SonarQube, Snyk Code, GitHub Code Security 등의 도구는 PR 내에 인라인 주석이나 경고 형태로 취약점(예: 누출된 비밀번호, 인젝션, 코드 스멜)을 직접 표시하여 개발자가 즉각적으로 피드백을 받을 수 있도록 합니다 [10-13]. 또한, 사전 정의된 품질 게이트(Quality Gates) 정책을 통해 보안 기준을 충족하지 못하는 PR의 병합을 차단할 수 있으며, AI가 생성한 수정 제안(Auto-fix)을 제공하여 리뷰어의 피로도를 줄이고 해결 속도를 극대화합니다 [10, 14-16]. +- **인간과 자동화의 하이브리드 검토 프로세스:** 자동화 도구는 수천 줄의 코드를 몇 분 만에 스캔하고 일관된 규칙을 적용하는 데 뛰어나지만, 비즈니스 로직이나 아키텍처 맥락을 이해하는 데는 한계가 있습니다 [17, 18]. 따라서 최근의 권장 워크플로우는 1차적으로 자동화 스캔을 통해 단순 구문 오류나 알려진 보안 결함을 걸러내고, 2차적으로 인간 리뷰어가 인증 로직이나 교차 서비스(Cross-Service)의 영향 등 자동화가 놓치기 쉬운 심층적인 보안 컨텍스트를 수동으로 점검하는 하이브리드 프로세스(Hybrid Code Review)를 채택하고 있습니다 [3, 4, 19, 20]. +- **측정 지표 및 컴플라이언스:** PR 검토의 효율성과 영향력은 PR 사이클 타임(Cycle time), 첫 리뷰까지 걸리는 시간, 리뷰 백로그 크기, 병합 전 발견된 결함 수 등의 지표로 측정됩니다 [21, 22]. 올바르게 수행된 PR 보안 검토, 티켓 코멘트, 그리고 승인 기록은 SOC 2, PCI DSS와 같은 규정 준수 감사를 위한 필수적인 증명(Audit Trail) 자료로 활용됩니다 [23, 24]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[정적 애플리케이션 보안 테스트(SAST)]], [[AI 기반 코드 리뷰]], [[시프트 레프트(Shift-Left)]], [[품질 게이트(Quality Gates)]], [[하이브리드 코드 리뷰(Hybrid Code Review)]] +- **Projects/Contexts:** [[GitHub Code Security 및 Copilot Autofix]], [[SonarQube PR 분석]], [[Snyk Code PR 통합]] +- **Contradictions/Notes:** 자동화된 PR 코드 검토는 속도와 확장성 측면에서 매우 우수하지만 코드의 의도나 아키텍처 맥락을 이해하지 못해 오탐(False Positive)을 유발할 수 있습니다. 따라서 도구의 결과에만 의존하기보다는 복잡한 비즈니스 로직과 보안 컨텍스트 평가는 반드시 인간의 수동 검토가 동반되어야 상호 보완적인 보안 품질을 달성할 수 있습니다 [18, 25, 26]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/풀 리퀘스트(PR) 기반 보안 검토.md]] +--- diff --git a/AI/프론트엔드 및 Nodejs 개발 워크플로우.md b/AI/프론트엔드 및 Nodejs 개발 워크플로우.md new file mode 100644 index 00000000..22741ec7 --- /dev/null +++ b/AI/프론트엔드 및 Nodejs 개발 워크플로우.md @@ -0,0 +1,43 @@ +--- +id: P-REINFORCE-AUTO-D024EA +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 프론트엔드 및 Nodejs 개발 워크플로우" +--- + +# [[프론트엔드 및 Nodejs 개발 워크플로우]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 프론트엔드 및 Node.js 개발 워크플로우는 소스 코드의 품질, 일관성, 그리고 보안을 자동화된 방식으로 유지하기 위해 일련의 도구들을 파이프라인에 결합하는 과정입니다. 주축이 되는 도구로는 코드 에러를 정적으로 분석하는 ESLint와 코드 스타일을 자동으로 정렬해주는 Prettier가 있으며, 이를 Git 훅(Git Hooks) 관리 도구인 Husky와 변경된 파일만 검사하는 lint-staged를 통해 커밋 전에 강제합니다. 최근에는 이러한 파이프라인과 IDE에 AI 기반의 정적 애플리케이션 보안 테스트(SAST)를 결합하여 취약점을 조기에 탐지하고 자동 수정하는 체계가 필수적으로 자리 잡고 있습니다. + +## 📖 구조화된 지식 (Synthesized Content) +* **코드 품질 및 스타일 자동화 도구 (ESLint & Prettier)** + 자바스크립트 및 타입스크립트 기반의 프론트엔드와 Node.js 환경에서는 코드 품질과 스타일을 일관되게 유지하기 위해 ESLint와 Prettier를 핵심 도구로 사용합니다 [1, 2]. ESLint는 문법적 오류와 잠재적 버그, 안티 패턴을 찾아내고 규칙을 강제하는 린터(Linter)이며, Prettier는 줄 바꿈, 공백, 들여쓰기 등의 코드 스타일을 일관되게 변환해주는 포매터(Formatter)입니다 [1, 3, 4]. 이 두 도구를 함께 사용할 때 포맷팅 역할이 겹쳐 충돌이 발생할 수 있는데, 이를 방지하기 위해 `eslint-config-prettier` 패키지를 사용하여 Prettier와 충돌하는 ESLint 규칙을 비활성화하는 방식이 표준으로 권장됩니다 [5-7]. + +* **Git 훅을 통한 검증 자동화 (Husky & lint-staged)** + 개발자가 컨벤션에 맞지 않는 코드를 저장소에 커밋하는 것을 방지하기 위해 Git 훅(Git Hooks)을 자동화하는 Husky와 lint-staged가 폭넓게 사용됩니다 [8, 9]. Husky는 `pre-commit`이나 `pre-push` 등의 훅을 쉽게 공유하고 설정하게 해주며, lint-staged는 전체 코드베이스가 아닌 커밋 대기 중인 '스테이징된(staged) 파일'에 대해서만 검사와 포맷팅을 실행하도록 오케스트레이션하여 실행 속도를 획기적으로 높입니다 [9-11]. 이 설정은 `package.json`의 `prepare` 스크립트와 연동되어 팀원 누구나 의존성을 설치할 때 동일한 검증 파이프라인을 구축하게 해줍니다 [12, 13]. + +* **모노레포 환경에서의 워크플로우 구성** + React, Next.js 등 다양한 애플리케이션과 공유 라이브러리를 단일 저장소에서 관리하는 Turborepo 같은 모노레포(Monorepo) 환경에서는 린팅 설정의 파편화와 중복을 막기 위해 중앙집중식 관리를 수행합니다 [14, 15]. 중앙 패키지(예: `@repo/eslint-config`)에 Base, Next.js, 라이브러리 용의 사전 설정(preset)을 정의해두고, 각 개별 패키지에서는 이를 상속하여 사용합니다 [16-18]. 이후 프로젝트 루트 디렉토리에서 lint-staged를 실행할 때, 오케스트레이션 설정을 통해 변경된 파일이 어느 패키지에 속하는지 파악하고 각 패키지의 린팅 규칙을 독립적으로 적용함으로써 유지보수성을 극대화합니다 [18-20]. + +* **정적 애플리케이션 보안 테스트(SAST) 및 AI의 결합** + 코드 품질 검증과 함께 Snyk Code, SonarQube, Checkmarx와 같은 SAST 도구들이 IDE 및 CI/CD 파이프라인에 통합되어 실시간으로 보안 취약점을 점검합니다 [21-23]. 기존의 단순 패턴 매칭을 넘어, 최근 워크플로우에는 LLM과 기계학습(ML)을 기반으로 한 AI 에이전트가 도입되어 파일 간의 데이터 흐름(Interfile analysis)이나 XSS, SQL 인젝션, 하드코딩된 비밀번호 등 복잡한 문맥의 취약점을 탐지합니다 [24-26]. 나아가 발견된 오류에 대해 단순 경고를 넘어 AI 기반의 자동 수정(Auto-fix) 코드를 제안하여 개발자가 즉각적으로 코드를 리팩토링하고 병합할 수 있도록 돕습니다 [27-29]. + +* **개발 워크플로우 내 공급망 보안 위협** + 개발 워크플로우를 구성하는 도구 자체의 보안 검증 또한 중요합니다. 실제로 워크플로우 구축 시 가장 흔하게 사용되는 `eslint-config-prettier` 패키지가 2025년에 공급망 공격(CVE-2025-54313)의 타겟이 된 사례가 있습니다 [30-32]. 관리자의 토큰 탈취를 통해 배포된 악성 버전은 `npm install` 실행 시 윈도우(Windows) 개발자 머신에 원격 코드 실행(RCE)을 가능하게 하는 악성 DLL을 드롭하도록 조작되어 있어, 코드 검증 도구와 서드파티 패키지 사용에 대한 지속적인 보안 및 의존성 관리가 필수적임을 시사합니다 [31-33]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[ESLint]], [[Prettier]], [[Husky]], [[lint-staged]], [[정적 애플리케이션 보안 테스트 (SAST)]], [[공급망 공격 (Supply Chain Attack)]] +- **Projects/Contexts:** [[React 및 Next.js 개발 환경]], [[Turborepo 기반 모노레포 워크플로우]] +- **Contradictions/Notes:** ESLint와 Prettier를 결합할 때, `eslint-plugin-prettier`를 사용하여 Prettier를 ESLint 규칙의 일부로 실행하는 방식이 존재하지만, Prettier 공식 문서 및 실무 환경에서는 성능 저하 문제와 에디터 내 과도한 경고(빨간 밑줄) 발생 등의 피로도 문제로 인해 `eslint-config-prettier`를 활용해 역할(규칙 검사는 ESLint, 포맷팅은 Prettier)을 명확히 분리하는 것을 가장 권장합니다 [5, 34, 35]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/프론트엔드 및 Node.js 개발 워크플로우.md]] +--- diff --git a/AI/하이브리드 코드 리뷰 (Hybrid Code Review).md b/AI/하이브리드 코드 리뷰 (Hybrid Code Review).md new file mode 100644 index 00000000..2c60cc78 --- /dev/null +++ b/AI/하이브리드 코드 리뷰 (Hybrid Code Review).md @@ -0,0 +1,44 @@ +--- +id: P-REINFORCE-AUTO-4CD9A4 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 하이브리드 코드 리뷰 (Hybrid Code Review)" +--- + +# [[하이브리드 코드 리뷰 (Hybrid Code Review)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 하이브리드 코드 리뷰는 자동화된 정적 분석 및 AI 도구 스캔과 사람(개발자)에 의한 수동 코드 리뷰를 결합한 접근 방식입니다 [1]. 자동화 도구를 통해 구문 오류나 알려진 보안 취약점을 빠르고 일관되게 찾아내는 동시에, 복잡한 비즈니스 로직, 아키텍처 설계 및 맥락 판단은 인간의 전문성에 맡깁니다 [1, 2]. 두 방식의 장점을 상호 보완적으로 활용하여 릴리스 속도를 높이면서도 코드의 품질과 보안을 극대화하는 현대적인 소프트웨어 개발 워크플로우입니다 [1, 3, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +**하이브리드 리뷰의 필요성 및 개념** +수동 코드 리뷰와 자동화된 코드 리뷰는 각각 뚜렷한 장단점을 지니고 있습니다 [1]. 수동 리뷰는 코드의 작성 의도, 아키텍처, 비즈니스 로직의 맥락을 깊이 이해할 수 있지만, 라인별로 코드를 읽어야 하므로 속도가 느리고 인적 오류나 편향이 발생할 수 있습니다 [5, 6]. 반면 자동화된 리뷰(SAST, 린터 등)는 수천 줄의 코드를 몇 초 만에 스캔하는 속도와 일관성을 제공하지만, 비즈니스 로직이나 맥락을 이해하지 못해 '오탐(False Positives)'을 다수 발생시킬 수 있습니다 [7, 8]. 따라서 자동화 도구가 일상적이고 기계적인 검증을 처리하고, 인간은 맥락 기반의 비판적 사고가 필요한 부분에 집중하는 하이브리드 모델이 최적의 대안으로 평가받습니다 [1, 2]. + +**단계별 하이브리드 워크플로우 (Sequential Gates Architecture)** +성공적인 하이브리드 코드 리뷰 파이프라인은 다음과 같은 단계적 구조로 구성됩니다: +* **1단계 - 자동화 스캔 수행 (Automated Pre-Merge Checks):** Pull Request가 생성되면 CI/CD 파이프라인에서 코드 포맷팅, 린팅, SAST(정적 애플리케이션 보안 테스트), 단위 테스트, 의존성 취약점 스캔 등을 자동으로 병렬 실행하여 기본 규칙 위반과 단순 결함을 조기에 차단합니다 [9-11]. +* **2단계 - 결과의 신속한 분석 및 수정:** 자동화 리포트에서 발견된 구문 오류 등 우선순위가 높은(또는 쉽게 해결 가능한) 경고를 먼저 수정하고 분류(Triage)하여 이후 수동 리뷰에 소요되는 시간을 단축합니다 [9]. +* **3단계 - 조건부 수동 리뷰 (Conditional Human Review Routing):** 자동화 단계를 통과한 후, 고위험 경로(예: 결제, 인증 로직), 아키텍처 변경, 교차 서비스 영향 평가 등 사람의 통찰이 반드시 필요한 영역에 한해 심층적인 수동 검토를 진행합니다 [2, 9, 12]. +* **4단계 - 지속적인 피드백 루프:** 놓친 패턴이나 과도한 오탐이 발생할 경우, 이를 툴체인의 규칙 조정에 반영하여 자동화의 정확도를 지속적으로 향상시킵니다 [9]. + +**하이브리드 리뷰 도입 시 주의해야 할 안티 패턴** +조직 내에서 하이브리드 리뷰를 구축할 때 다음과 같은 위험 요소들을 주의하여야 합니다 [13]. +* **거짓 양성 역설 (The False Positive Paradox):** 자동화 도구를 적절히 튜닝하지 않으면 너무 많은 알림이 발생하여 경고 피로(Alert Fatigue)가 생기고, 개발자가 진짜 치명적인 취약점마저 무시하게 됩니다 [8, 13]. +* **자동화에 대한 과도한 신뢰 (Over-Confidence in Automation):** 실제 연구에 따르면 SAST 도구는 실제 취약점의 약 22%를 놓칠 수 있습니다. 자동화 검사를 통과했다고 해서 완벽하다고 맹신하지 말고 고위험 변경 사항은 반드시 인간의 확인을 거쳐야 합니다 [13, 14]. +* **"녹색 체크 마크" 증후군 (The "Green Check Mark" Syndrome):** 실제 아키텍처 개선이나 코드 품질 이해보다는 단순히 자동화된 파이프라인(린터 등)을 통과하는 것에만 초점을 맞추어 겉핥기식 수정만 이루어지는 현상입니다 [13, 15]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[수동 코드 리뷰 (Manual Code Review)]], [[자동화된 코드 리뷰 (Automated Code Review)]], [[정적 애플리케이션 보안 테스트 (SAST)]], [[소프트웨어 구성 분석 (SCA)]] +- **Projects/Contexts:** [[지속적 통합/지속적 배포 (CI/CD) 파이프라인]], [[Pull Request (PR) 승인 워크플로우]] +- **Contradictions/Notes:** 소스는 수동 리뷰와 자동화 리뷰 중 어느 하나가 다른 하나를 완벽히 대체할 수 없음을 강조합니다. 자동화 도구(AI 포함)는 속도와 확장성이 뛰어나나 비즈니스 로직과 설계의 맥락을 파악하지 못해 한계(Context Blindness)를 보이며, 반대로 사람은 피로도와 비용 문제로 모든 코드를 완벽히 리뷰할 수 없습니다. 따라서 양쪽을 결합하는 하이브리드 접근이 보안과 품질 유지의 핵심 타협점으로 꼽힙니다 [1, 8, 16, 17]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/하이브리드 코드 리뷰 (Hybrid Code Review).md]] +--- diff --git a/AI/하이브리드 코드 리뷰.md b/AI/하이브리드 코드 리뷰.md new file mode 100644 index 00000000..2096d982 --- /dev/null +++ b/AI/하이브리드 코드 리뷰.md @@ -0,0 +1,50 @@ +--- +id: P-REINFORCE-AUTO-F958B3 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 하이브리드 코드 리뷰" +--- + +# [[하이브리드 코드 리뷰]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 하이브리드 코드 리뷰는 인공지능(AI) 및 자동화 도구의 처리 속도와 인간 개발자의 깊은 통찰력을 결합한 최적의 코드 리뷰 모델입니다 [1]. 자동화 도구가 반복적인 구문 검사와 알려진 취약점을 신속하고 일관되게 찾아내는 동안, 인간 리뷰어는 도구가 파악할 수 없는 아키텍처의 트레이드오프, 복잡한 비즈니스 로직 및 보안 컨텍스트에 집중합니다 [1-3]. 두 방식의 단점을 상호 보완함으로써 개발 속도를 늦추지 않으면서도 소프트웨어의 보안과 코드 품질을 극대화하는 것이 이 접근법의 핵심입니다 [1, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +**1. 하이브리드 코드 리뷰 프로세스 단계** +성공적인 하이브리드 접근법은 자동화와 인간의 판단을 단계별로 배치합니다 [5]. +* **자동화 스캔 우선 실행:** CI/CD 파이프라인에 정적 분석(SAST) 및 린팅을 통합하여 모든 푸시 단계에서 구문 오류, 단순 보안 결함, 코드 스타일 등을 즉시 검사하여 정책을 강제합니다 [5]. +* **결과 신속 분석 및 조치:** 자동화 도구의 보고서에서 주요 문제를 빠르게 해결하여 이후 단계의 속도를 높입니다 [5]. +* **수동 리뷰 수행:** 기본 문제가 해결된 코드를 바탕으로, 인간 리뷰어는 보안에 민감한 영역, 복잡한 알고리즘, 교차 서비스 영향 등 기계가 파악하기 힘든 문맥 및 설계 요소에 집중하여 검사합니다 [5-7]. +* **지속적인 피드백 루프 및 온보딩:** 놓친 패턴이나 잦은 오탐지가 발생하면 자동화 도구의 규칙을 재조정하며, 수동 리뷰 과정은 주니어 개발자를 위한 멘토링 기회로 활용됩니다 [5]. + +**2. 하이브리드 리뷰 워크플로우 아키텍처 (순차적 게이트)** +기술 리더는 경로 기반 라우팅(Path-Based Routing)과 순차적 게이트(Sequential Gates) 아키텍처를 사용하여 워크플로우를 구축할 수 있습니다 [8-10]. +* **1단계 (자동화된 병합 전 검사):** 풀 리퀘스트 생성 시 린팅, 테스트, SAST 및 의존성 취약점 스캔이 병렬로 실행됩니다 [9]. +* **2단계 (조건부 인간 리뷰 라우팅):** 자동화 검사를 통과한 후, 변경된 파일 경로(예: `auth/*`, `payment/*`)나 코드의 복잡성, 변경 규모에 따라 적절한 인간 리뷰어(시니어 엔지니어, 보안 전문가 등)에게 자동으로 리뷰를 요청합니다 [10]. +* **3단계 (병합 활성화):** 자동화 상태 검사 통과 및 요구되는 인간의 승인이 모두 확보된 경우에만 코드 병합(Merge)이 허용됩니다 [10]. + +**3. 보안 및 컴플라이언스 측면의 이점** +산업 표준(NIST SSDF, SOC 2, PCI DSS 등)은 코드 리뷰와 분석을 모두 요구합니다 [11]. 하이브리드 리뷰는 자동화 도구가 알려진 취약점 패턴과 코드 정책(예: 비밀키 하드코딩 방지)을 강제하는 동시에, 수동 리뷰가 문맥별 규정 준수(예: 신용카드 필드가 보안 정책에 맞게 처리되는지 확인)를 검증하므로 강력한 감사 추적(Audit Trail)과 보안 태세를 제공합니다 [11, 12]. + +**4. 주의해야 할 안티패턴** +하이브리드 리뷰 시스템을 구현할 때 피해야 할 주요 안티패턴은 다음과 같습니다 [13]. +* **오탐지 역설 (False Positive Paradox):** SAST 도구를 제대로 튜닝하지 않으면 너무 많은 오탐지가 발생해, 알림 피로(Alert fatigue)로 인해 개발자가 진짜 중요한 취약점마저 무시하게 됩니다 [2, 13]. +* **자동화에 대한 과신:** 자동화 도구가 실제 취약점의 약 22%를 놓친다는 연구 결과가 있음에도 불구하고, 모든 검사가 끝났다고 착각하여 고위험 변경 사항에 대한 인간의 필수 리뷰를 생략하는 위험입니다 [13, 14]. +* **녹색 체크마크 증후군 (Green Check Mark Syndrome):** 코드의 실질적 품질과 아키텍처 건전성을 이해하기보다는, 단순히 자동화 검사 통과를 위해 피상적인 수정(Superficial fixes)만 적용하는 현상입니다 [13, 15]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[수동 코드 리뷰]], [[자동화된 코드 리뷰]], [[SAST (Static Application Security Testing)]] +- **Projects/Contexts:** [[CI/CD 파이프라인]], [[순차적 게이트 아키텍처]] +- **Contradictions/Notes:** 자동화 도구는 속도와 확장성 측면에서 훌륭하지만 비즈니스 로직과 의도를 파악하는 "문맥맹(Context Blindness)"의 한계가 있어 30~60%의 높은 오탐지율을 발생시키거나 특정 취약점(예: 신종 논리 공격)을 완전히 놓칠 수 있습니다. 따라서 오직 자동화에만 의존하는 것은 위험하며, 인간의 문맥 이해를 결합한 하이브리드 접근이 필수적이라고 소스들은 공통적으로 지적합니다 [2, 14]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/하이브리드 코드 리뷰.md]] +--- diff --git a/AI/할당 실패(Allocation Failure).md b/AI/할당 실패(Allocation Failure).md new file mode 100644 index 00000000..fe25cd28 --- /dev/null +++ b/AI/할당 실패(Allocation Failure).md @@ -0,0 +1,37 @@ +--- +id: P-REINFORCE-AUTO-32A771 +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 할당 실패(Allocation Failure)" +--- + +# [[할당 실패(Allocation Failure)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 할당 실패(Allocation Failure)는 애플리케이션이 새로운 객체를 생성하기 위해 메모리를 요청했으나, 현재의 메모리 공간(주로 New Space나 Java 객체 힙)에 연속된 여유 메모리가 충분하지 않을 때 발생하는 이벤트이다 [1, 2]. 이 실패 현상은 시스템이 메모리 요청을 충족시키기 위해 가비지 컬렉션(GC)을 강제로 실행하도록 만드는 가장 주요한 트리거(trigger) 역할을 한다 [1, 3]. V8 엔진이나 Java 가상 머신(JVM) 등에서 공통적으로 발생하며, 할당 실패가 감지되면 엔진은 즉시 Scavenge(마이너 GC) 또는 전역 GC 사이클을 시작하여 메모리를 확보한다 [4, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +* **발생 원인과 메커니즘** + 애플리케이션이 새 객체를 메모리에 할당하려고 시도할 때, 메모리 할당 포인터가 New Space(또는 Nursery 영역)의 경계에 도달하여 요구하는 만큼의 충분한 연속 여유 공간을 찾지 못하면 할당 실패가 발생한다 [1, 4, 5]. Java 환경의 경우, Java 객체 힙에 사용 가능한 메모리가 충분하지 않아 프로그램의 메모리 할당 요청이 거부될 때 발생하는 현상으로 정의된다 [2]. + +* **가비지 컬렉션(GC) 사이클 촉발** + 할당 실패는 메모리 관리를 위해 가비지 컬렉터를 가동하는 핵심적인 내부 메커니즘이다 [3]. V8 엔진의 경우 New Space에서 할당 실패가 발생하면 즉시 'Scavenge'라 불리는 마이너 가비지 컬렉션 사이클을 트리거한다 [5]. 시스템은 애플리케이션의 후속 코드 실행을 재개하기 전에 반드시 GC를 강제로 실행하여 쓸모없는 객체를 치우고 여유 메모리 공간을 먼저 확보해야만 한다 [1]. + +* **로깅(Logging) 및 모니터링** + `--trace-gc` 플래그 등을 통해 출력되는 런타임 힙 로그에서, 할당 실패는 GC 이벤트가 발생한 '이유(Reason)' 항목으로 명확하게 기록된다 [1, 6]. IBM Java 환경의 상세 GC 로그(Verbose GC logs)에서도 ``라는 XML 요소를 사용하여 할당 실패에 의한 GC 트리거 시작을 기록한다 [2]. 개발자는 이러한 기록을 분석하여 할당 타이밍과 애플리케이션의 메모리 부족(Memory pressure) 상태를 파악할 수 있다 [1, 7]. 또한, 전역 GC 사이클을 트리거한 최근의 할당 실패 작업이 힙을 압축(compact)하지 않았을 경우, 이후 명시적인 GC 요청 시 힙 압축을 유발하는 조건으로 작용하기도 한다 [8]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** `[[가비지 컬렉션(Garbage Collection)]]`, `[[Scavenge(마이너 GC)]]`, `[[New Space(Young Generation)]]` +- **Projects/Contexts:** `[[V8 자바스크립트 엔진의 메모리 관리 메커니즘]]`, `[[IBM Java 가상 머신(JVM)의 가비지 컬렉션 로깅 분석]]` +- **Contradictions/Notes:** 소스 간의 모순점은 발견되지 않았으며, 할당 실패는 V8 엔진과 Java JVM 환경 모두에서 연속된 여유 메모리가 부족할 때 가비지 컬렉션을 즉각적으로 유발하는 동일한 트리거 원리로 일관되게 설명되고 있다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/할당 실패(Allocation Failure).md]] +--- diff --git a/AI/함수 호출 (Function Calling).md b/AI/함수 호출 (Function Calling).md new file mode 100644 index 00000000..38b59906 --- /dev/null +++ b/AI/함수 호출 (Function Calling).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-34CE7C +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 함수 호출 (Function Calling)" +--- + +# [[함수 호출 (Function Calling)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/함수 호출 (Function Calling).md]] +--- diff --git a/AI/힙 스냅샷(Heap Snapshot).md b/AI/힙 스냅샷(Heap Snapshot).md new file mode 100644 index 00000000..318b57c8 --- /dev/null +++ b/AI/힙 스냅샷(Heap Snapshot).md @@ -0,0 +1,47 @@ +--- +id: P-REINFORCE-AUTO-BE247C +category: "[[10_Wiki/💡 Topics/AI]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 힙 스냅샷(Heap Snapshot)" +--- + +# [[힙 스냅샷(Heap Snapshot)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +* **작동 원리 및 고유 ID 식별:** + * 힙 스냅샷은 글로벌 객체(Global Object)에서 도달할 수 있는(Reachable) 객체들만 캡처하며, 캡처를 시작할 때 항상 가비지 컬렉션을 먼저 수행하여 살아있는 객체만 남깁니다 [5]. + * 스냅샷 내의 각 객체에는 `@` 기호 뒤에 고유 ID(예: `@12345`)가 부여됩니다 [6, 7]. 이 ID는 가비지 컬렉션 중 객체의 메모리 주소가 변경되더라도 여러 스냅샷 세션 간에 동일하게 유지되므로, 힙 상태를 객체 단위로 정확히 비교할 수 있게 해줍니다 [6-10]. + +* **메모리 크기 측정 방식:** + * **Shallow Size (얕은 크기):** 객체 자체가 차지하는 메모리 크기입니다. 일반적으로 배열과 문자열이 큰 얕은 크기를 가집니다 [11]. + * **Retained Size (보존된 크기):** 해당 객체를 삭제하여 그에 종속된 객체들이 더 이상 도달할 수 없게(Unreachable) 될 때 확보할 수 있는 최대 메모리 크기입니다 [11]. + +* **동작 상세 로그 추적을 위한 주요 분석 뷰(Views):** + * **Summary (요약 뷰):** 생성자(Constructor) 이름별로 객체를 그룹화하여 보여주며, 분리된 DOM 노드(Detached DOM nodes)와 같은 누수를 추적하는 데 유용합니다 [4, 12, 13]. + * **Comparison (비교 뷰):** 특정 작업(예: 모달 열기/닫기) 전후로 캡처한 두 스냅샷 간의 차이점(Delta)을 보여주어, 해제되지 않고 새로 추가된 객체를 통해 메모리 누수를 확인합니다 [1, 3, 4, 14, 15]. + * **Containment (포함 뷰):** 애플리케이션의 객체 구조를 조감도(Bird's eye view)처럼 보여주어 클로저(Closure) 내부나 GC 루트(Roots)를 분석할 수 있습니다 [4, 15]. + * **Retainers (보유자 패널):** 특정 객체를 참조하여 메모리에 살아있게 만드는 참조 체인(Chain of references)을 보여줍니다 [1, 16]. 이 체인을 거슬러 올라가면 누수의 근본 원인을 찾을 수 있습니다 [1]. + +* **분석 시 주의 사항(Gotchas):** + * 원시 힙에는 수천 개의 V8 내부 객체(예: `(compiled code)`, `system / Context`)가 포함되어 있으므로, 애플리케이션의 객체에 집중하려면 "Constructor" 필터를 사용해야 합니다 [17-19]. + * 코드 축소(Minification)로 인해 참조 체인을 읽기 어려울 수 있으므로, 소스 맵(Source Maps)을 사용하거나 익명 함수 대신 기명 함수를 사용하여 클로저를 쉽게 식별할 수 있도록 해야 합니다 [17, 20]. + * 숫자와 같은 비문자열 값이나 네이티브 코드를 실행하는 Getter로 구현된 속성들은 자바스크립트 힙에 저장되지 않아 캡처되지 않을 수 있습니다 [12]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** AI 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[메모리 누수(Memory Leak)]], [[가비지 컬렉션(Garbage Collection)]], [[Allocation Timeline]] +- **Projects/Contexts:** [[Chrome DevTools Memory Panel]], [[V8 Engine Heap Management]] +- **Contradictions/Notes:** 메모리 그래프가 증가한다고 해서 무조건 메모리 누수인 것은 아닙니다. 캐시(Caches), 실행 취소 내역, 가상화된 목록 버퍼 등은 의도적으로 데이터를 보존하므로 의도적인 메모리 보존과 사고에 의한 메모리 누수를 명확히 구별해야 합니다 [17]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/힙 스냅샷(Heap Snapshot).md]] +--- diff --git a/Automation & Industry/3D Web-based HMI.md b/Automation & Industry/3D Web-based HMI.md new file mode 100644 index 00000000..59378a78 --- /dev/null +++ b/Automation & Industry/3D Web-based HMI.md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AI-074AE7 +category: "[[10_Wiki/💡 Topics/Automation & Industry]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Batch 9 - Wikified 3D Web-based HMI" +--- + +# [[3D Web-based HMI]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 3D Web-based HMI는 사용자가 기계 또는 자동화 시스템과 통신할 수 있도록 지원하는 소프트웨어 인터페이스로, 주로 SCADA(Supervisory Control and Data Acquisition) 시스템의 기기 모니터링 및 제어를 위한 디스플레이 역할을 수행합니다 [1, 2]. 기존 HMI 시스템의 특정 플랫폼 종속성과 별도의 소프트웨어 설치 요구라는 한계를 극복하기 위해 제안되었습니다 [3]. WebGL과 WebSocket 기술을 활용하여 사용자는 별도의 소프트웨어 설치 없이 모든 플랫폼의 HTML5 웹 브라우저에서 실시간 데이터 통신 및 3D 그래픽 렌더링을 경험할 수 있습니다 [3-5]. + +## 📖 구조화된 지식 (Synthesized Content) +* **도입 배경 및 기존 HMI의 한계:** 공장 및 빌딩 자동화 분야에서 널리 쓰이는 SCADA 시스템의 벤더들은 전통적으로 독점적인 HMI 소프트웨어를 제공해 왔습니다 [2]. 예를 들어, 상용 제품인 Genesis64의 GraphWorX64 컴포넌트는 Windows 운영 체제, .NET Framework, DirectX 설치 및 Internet Explorer 사용을 강제하는 플랫폼 종속적인 한계가 있었습니다 [6, 7]. 3D Web-based HMI는 이러한 문제점을 극복하고자 웹 기술을 바탕으로 고안되었습니다 [2, 3]. +* **핵심 렌더링 및 통신 기술:** 3D Web-based HMI는 OpenGL ES 2.0을 기반으로 하는 크로스 플랫폼 웹 그래픽 라이브러리인 WebGL을 사용하여 3D 장면을 구성합니다 [4]. 저수준 API인 WebGL의 복잡성을 줄이기 위해 Three.js 라이브러리의 `WebGLRenderer()`를 활용하며, 화면 주사율에 맞춰 자연스러운 애니메이션을 처리하기 위해 `RequestAnimationFrame()`을 사용합니다 [4, 8]. 데이터 통신 측면에서는 HTTP 대신 WebSocket을 사용하여 서버와 클라이언트 간의 데이터가 빠르게 변경되는 상황에서도 효율적으로 대처할 수 있습니다 [3]. +* **초당 프레임 수(FPS) 성능:** 상용 3D HMI 제품(GraphWorX64)과 성능을 비교 평가한 결과, 3D Web-based HMI는 브라우저(Internet Explorer 및 Chrome) 환경에서 큐브(Cube) 개수가 0.5K~0.8K일 때 목표 최대 성능인 60 FPS를 안정적으로 유지했습니다 [1, 9]. 큐브 개수가 증가하여 1.1K~1.6K에 도달했을 때는 인간의 눈이 프레임 건너뛰기를 감지하지 못하는 최소 기준인 30 FPS를 기록했습니다 [1, 9, 10]. +* **프레임 지연 시간(Frame Time Latency) 및 디스플레이 품질:** FPS가 높더라도 프레임 시간이 불규칙하면 화면 끊김(Stuttering)이 발생할 수 있습니다 [10]. 실험 결과, 3D Web-based HMI는 객체가 5K에 이를 때까지 상용 제품보다 각 프레임을 렌더링하는 데 걸리는 시간 편차가 적어 훨씬 부드럽고 일관된 디스플레이를 제공했습니다 [1, 11, 12]. +* **시스템 리소스 소모:** CPU 사용량은 약 40%, 메모리 사용량은 약 180MB 수준으로 상용 HMI(약 240MB)보다 메모리를 더 적게 사용하여 안정적인 모습을 보였습니다 [5, 13]. 다만 GPU 사용량은 상용 제품과 비교했을 때 평균적으로 약 5% 정도 더 높게 나타났습니다 [5, 13]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 신규 문서로, 기존 정보와의 충돌 분석 예정. +- **정책 변화:** Automation & Industry 카테고리의 지식 연결망 강화를 위한 표준 위키화 적용. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[SCADA]], [[WebGL]], [[Three.js]], [[WebSocket]], [[Frame Time Latency]] +- **Projects/Contexts:** [[Genesis64 상용 제품과의 웹 기반 3D 렌더링 성능 벤치마크]] +- **Contradictions/Notes:** 3D Web-based HMI는 프레임의 부드러움(일관성)에서는 상용 제품보다 뛰어나지만, 전체 프로세스 소요 시간 중 약 96% 이상이 객체를 생성하는 실행 시간(Execution Time)이 아닌 렌더링 시간(Rendering Time)에 집중되어 있습니다. 이는 향후 렌더링 코드 최적화를 통해 성능을 더욱 개선해야 할 주요 병목 지점임을 시사합니다 [9, 14]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/3D Web-based HMI.md]] +--- diff --git a/Automation/IoT.md b/Automation/IoT.md new file mode 100644 index 00000000..87d8b658 --- /dev/null +++ b/Automation/IoT.md @@ -0,0 +1,29 @@ +--- +id: P-REINFORCE-AUTO-002 +category: "[[10_Wiki/💡 Topics/Automation]]" +confidence_score: 0.91 +tags: [automation, iot, telemetry, connectivity] +last_reinforced: 2026-04-20 +github_commit: "batch-reinforce-07" +--- + +# [[Internet of Things (IoT) Telemetry]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 보이지 않는 물리 현상을 디지털 신호로 변환하여 네트워크로 송출함으로써 만물에 '말문'을 틔워주는 기술. + +## 📖 구조화된 지식 (Synthesized Content) +- **추출된 패턴:** 센서 데이터 스트리밍, 게이트웨이 집계, 클라우드 분석으로 이어지는 엔드-투-엔드 데이터 흐름 패턴. +- **세부 내용:** + - 저전력 광대역 네트워크(LPWAN)를 통한 광범위한 연결성 확보. + - MQTT, HTTP 등 경량화된 프로토콜을 사용한 실시간 텔레메트리 전송. + - 엣지 컴퓨팅(Edge Computing)을 통한 데이터 필터링 및 실시간성 강화. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 단방향 데이터 수집에서 이제는 양방향 제어 및 실시간 자가 진단이 가능한 지능형 IoT로 진화. +- **정책 변화:** 구조적 연결성(w2) 관점에서 Digital_Twin의 실시간성을 보장하는 핵심 인프라로 정의. + +## 🔗 지식 연결 (Graph) +- **Parent:** [[10_Wiki/💡 Topics/Automation]] +- **Related:** [[SCADA]], [[Digital_Twin]], [[Edge-Computing]] +- **Raw Source:** [[00_Raw/2026-04-20/Internet of Things (IoT) Telemetry.md]] diff --git a/Automation/SCADA.md b/Automation/SCADA.md new file mode 100644 index 00000000..ce72de7d --- /dev/null +++ b/Automation/SCADA.md @@ -0,0 +1,29 @@ +--- +id: P-REINFORCE-AUTO-001 +category: "[[10_Wiki/💡 Topics/Automation]]" +confidence_score: 0.90 +tags: [automation, scada, industrial, control] +last_reinforced: 2026-04-20 +github_commit: "batch-reinforce-06" +--- + +# [[SCADA (Supervisory Control and Data Acquisition)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 광범위한 산업 현장의 데이터를 실시간으로 수집하고 원격에서 제어함으로써 제조 지능화를 구현하는 중앙 통제 센터. + +## 📖 구조화된 지식 (Synthesized Content) +- **추출된 패턴:** 현장 하드웨어(PLC/RTU)와 상위 관리 시스템을 연결하여 데이터 획득 및 시각적 감시를 통합하는 루프 제어 패턴. +- **세부 내용:** + - 실시간 경보(Alarming) 및 데이터 로깅을 통한 장애 대응. + - HMI(Human-Machine Interface)와 결합하여 운영자에게 직관적 조작 환경 제공. + - 산업용 통신 프로토콜(Modbus, OPC-UA 등) 기반의 상호 운용성 확보. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 고립된 폐쇄망 기반 시스템에서 현재는 클라우드 및 AI와 결합한 '개방형 스마트 팩토리' 모델로 진화. +- **정책 변화:** 구조적 연결성(w2) 관점에서 3D_Web_HMI 및 Digital_Twin과의 데이터 정합성 강조. + +## 🔗 지식 연결 (Graph) +- **Parent:** [[10_Wiki/💡 Topics/Automation]] +- **Related:** [[3D_Web_HMI]], [[Digital_Twin]], [[Industrial-IoT]] +- **Raw Source:** [[00_Raw/2026-04-20/Industrial-Automation.md]] diff --git a/Coding/AST_Traversal.md b/Coding/AST_Traversal.md new file mode 100644 index 00000000..f816aa25 --- /dev/null +++ b/Coding/AST_Traversal.md @@ -0,0 +1,29 @@ +--- +id: P-REINFORCE-CODING-001 +category: "[[10_Wiki/💡 Topics/Coding]]" +confidence_score: 0.92 +tags: [coding, ast, compiler] +last_reinforced: 2026-04-20 +github_commit: "batch-reinforce-01" +--- + +# [[Abstract Syntax Tree Traversal]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 소스 코드의 추상적인 구조를 정의된 규칙에 따라 탐색하며 변환 및 분석의 기틀을 마련하는 컴파일러의 핵심 여정. + +## 📖 구조화된 지식 (Synthesized Content) +- **추출된 패턴:** 비지터 패턴(Visitor Pattern)을 활용하여 데이터 구조와 알고리즘을 분리하고 트리 노드를 순회하는 재귀적 처리 패턴. +- **세부 내용:** + - 전위/중위/후위 순회를 통한 코드 분석 시점 최적화. + - 정적 분석 및 린팅(Linting) 툴의 기초 로직 제공. + - 리팩토링 및 코드 자동 생성 도구의 엔진 역할. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 단순 텍스트 기반 검색과 달리 문맥(Context)을 이해하는 구조적 접근의 필수성 강조. +- **정책 변화:** 코딩 표준(w1) 강화에 따라 AST 기반 자동 수정 가중치 상향. + +## 🔗 지식 연결 (Graph) +- **Parent:** [[10_Wiki/💡 Topics/Coding]] +- **Related:** [[CST]], [[Parser]], [[Visitor-Pattern]] +- **Raw Source:** [[00_Raw/2026-04-20/Abstract-Syntax-Tree-Traversal.md]] diff --git a/Coding/CST.md b/Coding/CST.md new file mode 100644 index 00000000..8d320118 --- /dev/null +++ b/Coding/CST.md @@ -0,0 +1,29 @@ +--- +id: P-REINFORCE-CODING-002 +category: "[[10_Wiki/💡 Topics/Coding]]" +confidence_score: 0.95 +tags: [coding, cst, compiler, parsing] +last_reinforced: 2026-04-20 +github_commit: "batch-reinforce-06" +--- + +# [[Concrete Syntax Tree (CST)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 소스 코드의 문법적 구조를 생략 없이 문자 그대로 담아내어, 텍스트와 의미 사이의 가교 역할을 하는 정밀한 기록. + +## 📖 구조화된 지식 (Synthesized Content) +- **추출된 패턴:** 구두점, 공백, 키워드 등 코드의 모든 텍스트 요소를 노드로 보존하여 파싱 트리를 구성하는 패턴. +- **세부 내용:** + - AST(추상 구문 트리)와 달리 원본 소스로의 완벽한 복원이 가능함. + - 서식 보존 리팩토링(Fidelity-preserving Refactoring) 도구의 근간. + - 파서 생성기(ANTLR 등)에서 소스 코드의 물리적 배치를 분석할 때 활용. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 효율성을 위해 세부 정보를 생략하는 AST와 정보량 측면에서 상보적 관계를 형성. +- **정책 변화:** 지식 연결성(w2) 관점에서 AST 문서와 1:1 비교 분석 구도 형성. + +## 🔗 지식 연결 (Graph) +- **Parent:** [[10_Wiki/💡 Topics/Coding]] +- **Related:** [[AST_Traversal]], [[Parser]], [[Formatting-Tools]] +- **Raw Source:** [[00_Raw/2026-04-20/Concrete Syntax Tree (CST).md]] diff --git a/Coding/Formatting.md b/Coding/Formatting.md new file mode 100644 index 00000000..ecdafca9 --- /dev/null +++ b/Coding/Formatting.md @@ -0,0 +1,29 @@ +--- +id: P-REINFORCE-CODING-004 +category: "[[10_Wiki/💡 Topics/Coding]]" +confidence_score: 0.93 +tags: [coding, formatting, style-guide, standard] +last_reinforced: 2026-04-20 +github_commit: "batch-reinforce-07" +--- + +# [[Code Formatting (코드 정제 표준)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 코드의 의미를 바꾸지 않으면서 가독성과 협업의 효율성을 극대화하는 '시각적 문법'의 정립. + +## 📖 구조화된 지식 (Synthesized Content) +- **추출된 패턴:** CST(구체 구문 트리)의 정보를 보존하며 통일된 스타일 가이드에 따라 텍스트 배치를 재정렬하는 서식화 패턴. +- **세부 내용:** + - Prettier, ESLint 등 도구를 활용한 자동화된 스타일 교정. + - 들여쓰기, 개행 규칙, 식별자 명명 규칙 등 팀 내 합의된 표준 준수. + - 코드 리뷰 시 로직에 집중할 수 있도록 서식 관련 논쟁 원천 차단. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 개발자의 개성보다 협업을 위한 일관성(Consistency)의 가치를 우선시함. +- **정책 변화:** 지식 구조(w2) 관점에서 CST 기반 리샘플링 가중치를 상향하여 위키 생성 표준에 반영. + +## 🔗 지식 연결 (Graph) +- **Parent:** [[10_Wiki/💡 Topics/Coding]] +- **Related:** [[CST]], [[Linting]], [[Clean-Code]] +- **Raw Source:** [[00_Raw/2026-04-20/Code Formatting.md]] diff --git a/Coding/Parser.md b/Coding/Parser.md new file mode 100644 index 00000000..19fbccb6 --- /dev/null +++ b/Coding/Parser.md @@ -0,0 +1,29 @@ +--- +id: P-REINFORCE-CODING-003 +category: "[[10_Wiki/💡 Topics/Coding]]" +confidence_score: 0.97 +tags: [coding, scaling, compiler, parser, typescript] +last_reinforced: 2026-04-20 +github_commit: "batch-reinforce-07" +--- + +# [[Parser (구문 분석기)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 텍스트의 나열을 의미 있는 구조(Tree)로 변환하여, 기계가 코드의 문법과 의도를 이해하게 만드는 지적 번역기. + +## 📖 구조화된 지식 (Synthesized Content) +- **추출된 패턴:** 스캐너(Scanner/Lexer)가 생성한 토큰 스트림을 입력받아, 언어의 문법 규칙에 따라 CST 및 AST를 생성하는 재귀적 하강(Recursive Descent) 패턴. +- **세부 내용:** + - TypeScript 사례: 선언적 문법 사양보다는 성능 최적화를 위해 손으로 작성된(Hand-written) 파서 선호. + - 에러 복구(Error Recovery) 메커니즘을 통해 불완전한 코드에서도 유효한 트리를 구성하는 능력. + - 바인더(Binder)와 연계하여 심볼 표를 구축하고 의미론적 분석의 토대 마련. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 엄격한 문법 검사기에서, 현대의 IDE를 지탱하는 '유연하고 지능적인 정적 분석 도구'로 역할 확장. +- **정책 변화:** 기술적 정확성(w1)을 위해 최신 파싱 알고리즘 가중치 반영 및 코딩 표준 연결. + +## 🔗 지식 연결 (Graph) +- **Parent:** [[10_Wiki/💡 Topics/Coding]] +- **Related:** [[AST_Traversal]], [[CST]], [[TypeScript-Architecture]] +- **Raw Source:** [[00_Raw/2026-04-20/TypeScript-Compiler-Architecture.md]] diff --git a/Communication & Tech/Algorithmic Rhetoric.md b/Communication & Tech/Algorithmic Rhetoric.md new file mode 100644 index 00000000..199a0519 --- /dev/null +++ b/Communication & Tech/Algorithmic Rhetoric.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-9E51FB +category: "[[10_Wiki/💡 Topics/Communication & Tech]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Batch 11 - Wikified Algorithmic Rhetoric" +--- + +# [[Algorithmic Rhetoric]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 작업 중 + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중 + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 신규 지식 카테고리화 및 연결성 강화. +- **정책 변화:** Communication & Tech 분야의 지식 자산 보호 및 네트워크 확장. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Algorithmic Rhetoric.md]] +--- diff --git a/Computational Theory & Math/Graph Theory.md b/Computational Theory & Math/Graph Theory.md new file mode 100644 index 00000000..9f90c778 --- /dev/null +++ b/Computational Theory & Math/Graph Theory.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AI-055 +category: "[[10_Wiki/💡 Topics/Computational Theory & Math]]" +confidence_score: 0.97 +tags: [graph theory, network science, graph algorithm, relationship] +last_reinforced: 2026-06-XX +github_commit: "[P-Reinforce] Processed Graph Theory." +--- + +# [[Graph Theory]] (그래프 이론) + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 객체와 그들 사이의 관계를 노드(Vertex)와 엣지(Edge)로 모델링하여, 복잡한 네트워크 구조 내에서 최단 경로, 연결성, 커뮤니티 등을 수학적으로 분석하는 학문이다. + +## 📖 구조화된 지식 (Synthesized Content) +- **정의:** 시스템을 단순한 데이터 집합이 아닌 '관계형 구조'로 보는 관점이다. 현대 AI/ML에서 관계를 이해하는 데 가장 기본적이며 강력한 모델링 도구이다. +- **핵심 구성 요소:** + 1. **Vertex (노드):** 개체(Object) 자체. (예: 사용자, 상품). + 2. **Edge (간선):** 노드 간의 관계(Relationship). (예: '구매했다', '친구이다'). + 3. **가중치 (Weight):** 엣지에 부여되는 값으로, 연결의 강도나 비용을 나타낸다. +- **주요 알고리즘 및 응용:** + * **최단 경로 (Shortest Path):** 다익스트라(Dijkstra's) 알고리즘 등을 사용하여 가장 효율적인 흐름 경로를 찾는다. + * **커뮤니티 탐지 (Community Detection):** 그래프 내에서 상호 연결성이 높은 작은 그룹을 찾아내, 숨겨진 패턴이나 영향력을 분석하는 데 사용된다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 모든 현실의 관계가 깔끔한 '엣지'로 정의되지 않을 수 있다. 비정형적인 상호작용이나 시간적 맥락이 중요한 경우, 그래프에 추가적인 속성(Temporal Edge)을 부여하는 것이 필요하다. +- **정책 변화:** Knowledge Graph (온톨로지)의 핵심 기반 이론이며, 단순한 관계를 넘어 '왜' 그런 관계가 성립했는지에 대한 근거(Provenance)까지 기록하는 방향으로 발전하고 있다. + +## 🔗 지식 연결 (Graph) +- Parent: [[Knowledge Graphs]] +- Related: [[Network Science]] , [[Cybernetics]] , [[Complex Adaptive Systems]] +- Raw Source: [[00_Raw/Graph Theory.md]] +--- \ No newline at end of file diff --git a/Computational Theory & Math/Information Theory.md b/Computational Theory & Math/Information Theory.md new file mode 100644 index 00000000..cf066d66 --- /dev/null +++ b/Computational Theory & Math/Information Theory.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AI-052 +category: "[[10_Wiki/💡 Topics/Computational Theory & Math]]" +confidence_score: 0.98 +tags: [information theory, shannon entropy, compression, information] +last_reinforced: 2026-06-XX +github_commit: "[P-Reinforce] Processed Information Theory." +--- + +# [[Information Theory]] (정보 이론) + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 정보의 양과 질을 수학적으로 측정하는 학문으로, 불확실성을 감소시키는 정도를 '엔트로피'로 정의하여 데이터 압축, AI 모델의 효율성, 그리고 지식의 전달 과정을 정량화한다. + +## 📖 구조화된 지식 (Synthesized Content) +- **핵심 개념:** 정보는 그 자체로 물리적인 실체가 아니며, 불확실성을 해소하는 과정에서 발생하는 '측정 가능한 엔트로피 감소'로 정의된다. +- **주요 이론 및 공식:** + 1. **엔트로피 (Entropy):** 시스템의 무질서도 또는 평균 정보량을 측정한다. 확률 분포가 균일할수록 엔트로피는 높아진다. + 2. **상호 정보량 (Mutual Information):** 두 변수 간에 얼마나 많은 정보를 공유하는지를 측정한다. $I(X; Y)$로 표기하며, AI 모델의 특징 추출 과정에서 중요한 개념이다. +- **응용 분야:** + * **데이터 압축:** 데이터 중 엔트로피가 낮은 부분은 예측 가능하여 효율적으로 압축할 수 있다. + * **머신러닝:** 정보 이론 기반 분류기는 입력 특성 간의 독립성을 측정하여 최적의 특징을 선택한다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 정보를 '양'으로만 볼 것이 아니라, 그 '질'(Contextual Meaning)이 더 중요하다는 점을 인지해야 한다. 단순한 양적 측정은 지식의 맥락(Semantic Grounding)을 놓치게 만든다. +- **정책 변화:** 최근에는 LLM의 성능 평가에 단순히 Perplexity 같은 전통적인 엔트로피 개념뿐만 아니라, '일관성 (Coherence)'과 '사실 정확도'를 결합한 새로운 측정 지표가 요구되고 있다. + +## 🔗 지식 연결 (Graph) +- Parent: [[Computational Thinking]] +- Related: [[Shannon Entropy]] , [[Information-Architecture]] , [[AI 모델 평가]] +- Raw Source: [[00_Raw/Information Theory.md]] +--- \ No newline at end of file diff --git a/Computer Science & Math/Algebraic-Data-Types.md b/Computer Science & Math/Algebraic-Data-Types.md new file mode 100644 index 00000000..ece755b1 --- /dev/null +++ b/Computer Science & Math/Algebraic-Data-Types.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-A4D1B5 +category: "[[10_Wiki/💡 Topics/Computer Science & Math]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Batch 11 - Wikified Algebraic-Data-Types" +--- + +# [[Algebraic-Data-Types]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 작업 중 + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중 + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 신규 지식 카테고리화 및 연결성 강화. +- **정책 변화:** Computer Science & Math 분야의 지식 자산 보호 및 네트워크 확장. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Algebraic-Data-Types.md]] +--- diff --git a/Design & Experience/AODA-Accessibility-for-Ontarians-with-Disabilities-Act.md b/Design & Experience/AODA-Accessibility-for-Ontarians-with-Disabilities-Act.md new file mode 100644 index 00000000..f322c82a --- /dev/null +++ b/Design & Experience/AODA-Accessibility-for-Ontarians-with-Disabilities-Act.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-03FE7E +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Mega Batch - Wikified AODA-Accessibility-for-Ontarians-with-Disabilities-Act" +--- + +# [[AODA-Accessibility-for-Ontarians-with-Disabilities-Act]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 핵심 요약 작업 진행 중 + +## 📖 구조화된 지식 (Synthesized Content) +본문 상세 구성 진행 중 + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 지식 자산화 및 기존 네트워크 연동 단계. +- **정책 변화:** Design & Experience 카테고리의 전문성 확보 및 링크 밀도 최적화. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/AODA-Accessibility-for-Ontarians-with-Disabilities-Act.md]] +--- diff --git a/Design & Experience/API 응답 및 상태 모델링 (State Modeling and API Responses).md b/Design & Experience/API 응답 및 상태 모델링 (State Modeling and API Responses).md new file mode 100644 index 00000000..2aa68a8d --- /dev/null +++ b/Design & Experience/API 응답 및 상태 모델링 (State Modeling and API Responses).md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-09EEF3 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - API 응답 및 상태 모델링 (State Modeling and API Responses)" +--- + +# [[API 응답 및 상태 모델링 (State Modeling and API Responses)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> API 응답 및 상태 모델링은 애플리케이션에서 발생할 수 있는 네트워크 통신 결과나 UI의 변화 과정을 타입 시스템을 통해 안전하고 예측 가능하게 설계하는 기법이다 [1, 2]. 이 모델링은 주로 식별 가능한 유니온(Discriminated Unions)이나 명시적인 Result 객체를 활용하여 존재해서는 안 될 유효하지 않은 상태를 원천적으로 차단한다 [3, 4]. 궁극적으로 컴파일러가 모든 가능한 응답 상태를 검사(Exhaustiveness checking)하도록 강제함으로써, 런타임 버그를 줄이고 코드의 안정성과 가독성을 높여준다 [5-7]. + +## 📖 구조화된 지식 (Synthesized Content) +* **식별 가능한 유니온(Discriminated Unions)을 활용한 응답 상태 구조화** + 네트워크 통신이나 API 응답은 대체로 '로딩 중(loading)', '실패(failed)', '성공(success)'과 같이 명확히 구분되는 상태를 가진다 [8]. TypeScript에서는 `kind`나 `state`와 같은 공통된 리터럴 타입 판별자(Discriminator)를 사용하여 이런 상태들을 하나로 묶어 식별 가능한 유니온으로 모델링한다 [8-10]. 이를 통해 각 상태에 불가능한 속성 조합(예: 에러 상태인데 성공 데이터가 존재하는 등)이 생성되는 것을 방지하고 타입 안정성을 확보할 수 있다 [1, 3, 5]. + +* **상태 머신(State Machine)과 워크플로우 적용** + API 요청의 생명주기뿐만 아니라, 복잡한 폼 제출의 여러 단계(검증, 제출 중, 에러 등), 비동기 작업 패턴, 라우터 상태 또한 식별 가능한 유니온을 활용한 상태 머신으로 표현하기 적합하다 [3, 11-13]. 이 패턴을 `switch` 문과 함께 사용하면, 특정 상태가 새롭게 추가되었을 때 코드를 누락하는 실수를 방지하도록 컴파일러가 완전성 검사(Exhaustiveness checking)를 수행하여 런타임 오류를 예방한다 [5, 6, 14, 15]. + +* **예외 발생을 지양하는 Result 타입 기반 에러 모델링** + 예상 가능한 애플리케이션의 오류를 단순히 `throw`를 이용해 예외(Exception)로 던지기보다는 성공 데이터(`Ok`) 또는 에러(`Err`/`Fail`)를 나타내는 명시적인 Result 타입 객체로 감싸서 반환하는 접근 방식이 권장된다 [4, 16-18]. 이 방식은 함수 시그니처만 보아도 어떠한 오류 응답이 발생할 수 있는지 사전에 파악할 수 있게 해주며, C# 같은 언어의 API 컨트롤러에서도 철저한 오류 검증을 위해 폭넓게 활용되곤 한다 [7, 19-22]. + +* **메타데이터를 통한 API 제어 흐름 분리** + 내부 로직을 원활하게 디버깅하고 시스템의 옵저버빌리티를 높이기 위해, 응답 객체에 `_tag`와 같은 내부 식별용 메타데이터를 추가하여 상태를 정의하는 패턴도 사용된다 [23-25]. 이를 활용하면 클라이언트에서는 단순한 HTTP 상태 코드를 넘어, 각각의 메타데이터 값에 맞게 세밀한 맞춤형 제어 및 에러 처리를 수행할 수 있다 [25]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[식별 가능한 유니온 (Discriminated Unions)]], [[완전성 검사 (Exhaustiveness checking)]], [[Result 타입 (Result Type)]] +- **Projects/Contexts:** [[상태 머신 (State Machine)]], [[오류 처리 아키텍처 (Error Handling Architecture)]] +- **Contradictions/Notes:** API나 시스템의 에러 응답을 모델링할 때 'Result 타입'을 사용하는 방식에 대해 개발자 간의 이견이 존재한다. 예상된 실패를 Result로 강제 반환하면 실행 흐름이 예측 가능해진다는 찬성 측 주장이 있는 반면, 전역 예외 처리기(Global Exception Handler)를 사용하는 쪽이 예외를 단순히 위로 올려보낼 수 있어 불필요한 보일러플레이트 코드 및 과도한 제어 흐름 분기(`switch`문 등)를 줄이고 컨트롤러를 더 깔끔하게 유지할 수 있다는 반대 주장도 팽팽하게 맞선다 [7, 20, 26-31]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/API 응답 및 상태 모델링 (State Modeling and API Responses).md]] +--- diff --git a/Design & Experience/AST-Manipulation-Techniques.md b/Design & Experience/AST-Manipulation-Techniques.md new file mode 100644 index 00000000..cdb6d74c --- /dev/null +++ b/Design & Experience/AST-Manipulation-Techniques.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-7C91FA +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - AST-Manipulation-Techniques" +--- + +# [[AST-Manipulation-Techniques]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/AST-Manipulation-Techniques.md]] +--- diff --git a/Design & Experience/Abstract-Syntax-Tree-Transformation.md b/Design & Experience/Abstract-Syntax-Tree-Transformation.md new file mode 100644 index 00000000..80b85bbd --- /dev/null +++ b/Design & Experience/Abstract-Syntax-Tree-Transformation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E03D74 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Abstract-Syntax-Tree-Transformation" +--- + +# [[Abstract-Syntax-Tree-Transformation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Abstract-Syntax-Tree-Transformation.md]] +--- diff --git a/Design & Experience/Abstract-Syntax-Tree-Traversal.md b/Design & Experience/Abstract-Syntax-Tree-Traversal.md new file mode 100644 index 00000000..cc072c4d --- /dev/null +++ b/Design & Experience/Abstract-Syntax-Tree-Traversal.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-18B63D +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Abstract-Syntax-Tree-Traversal" +--- + +# [[Abstract-Syntax-Tree-Traversal]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Abstract-Syntax-Tree-Traversal.md]] +--- diff --git a/Design & Experience/Accessibility (A11y).md b/Design & Experience/Accessibility (A11y).md new file mode 100644 index 00000000..32760bea --- /dev/null +++ b/Design & Experience/Accessibility (A11y).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AI-99D2E0 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Batch 9 - Wikified Accessibility (A11y)" +--- + +# [[Accessibility (A11y)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> + +## 📖 구조화된 지식 (Synthesized Content) + + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 신규 문서로, 기존 정보와의 충돌 분석 예정. +- **정책 변화:** Design & Experience 카테고리의 지식 연결망 강화를 위한 표준 위키화 적용. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Accessibility (A11y).md]] +--- diff --git a/Design & Experience/Accessibility-Compliance-WCAG.md b/Design & Experience/Accessibility-Compliance-WCAG.md new file mode 100644 index 00000000..a68f4f81 --- /dev/null +++ b/Design & Experience/Accessibility-Compliance-WCAG.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-2801A2 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Batch 10 - Wikified Accessibility-Compliance-WCAG" +--- + +# [[Accessibility-Compliance-WCAG]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 핵심 내용 요약 예정 + +## 📖 구조화된 지식 (Synthesized Content) +세부 본문 내용 구성 예정 + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 신규 지식 유입에 따른 기존 지식과의 정합성 검증 단계. +- **정책 변화:** Design & Experience 분야의 체계적 지식 자산화 진행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Accessibility-Compliance-WCAG.md]] +--- diff --git a/Design & Experience/Additive-Type-Logic.md b/Design & Experience/Additive-Type-Logic.md new file mode 100644 index 00000000..94d71ee4 --- /dev/null +++ b/Design & Experience/Additive-Type-Logic.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E5F3BA +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Additive-Type-Logic" +--- + +# [[Additive-Type-Logic]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Additive-Type-Logic.md]] +--- diff --git a/Design & Experience/Affective User Interfaces (AUI).md b/Design & Experience/Affective User Interfaces (AUI).md new file mode 100644 index 00000000..b426e43f --- /dev/null +++ b/Design & Experience/Affective User Interfaces (AUI).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-30D321 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Batch 10 - Wikified Affective User Interfaces (AUI)" +--- + +# [[Affective User Interfaces (AUI)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 핵심 내용 요약 예정 + +## 📖 구조화된 지식 (Synthesized Content) +세부 본문 내용 구성 예정 + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 신규 지식 유입에 따른 기존 지식과의 정합성 검증 단계. +- **정책 변화:** Design & Experience 분야의 체계적 지식 자산화 진행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Affective User Interfaces (AUI).md]] +--- diff --git a/Design & Experience/Agency-in-Game-Design.md b/Design & Experience/Agency-in-Game-Design.md new file mode 100644 index 00000000..2670b0bc --- /dev/null +++ b/Design & Experience/Agency-in-Game-Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-0D4B33 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Agency-in-Game-Design" +--- + +# [[Agency-in-Game-Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Agency-in-Game-Design.md]] +--- diff --git a/Design & Experience/Agent Communication Protocol (에이전트 통신 규약).md b/Design & Experience/Agent Communication Protocol (에이전트 통신 규약).md new file mode 100644 index 00000000..9bfe1d80 --- /dev/null +++ b/Design & Experience/Agent Communication Protocol (에이전트 통신 규약).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9B328D +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Agent Communication Protocol (에이전트 통신 규약)" +--- + +# [[Agent Communication Protocol (에이전트 통신 규약)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Agent Communication Protocol (에이전트 통신 규약).md]] +--- diff --git a/Design & Experience/Agile-UX-Integration.md b/Design & Experience/Agile-UX-Integration.md new file mode 100644 index 00000000..402c2a92 --- /dev/null +++ b/Design & Experience/Agile-UX-Integration.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-1363FF +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Batch 10 - Wikified Agile-UX-Integration" +--- + +# [[Agile-UX-Integration]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 핵심 내용 요약 예정 + +## 📖 구조화된 지식 (Synthesized Content) +세부 본문 내용 구성 예정 + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 신규 지식 유입에 따른 기존 지식과의 정합성 검증 단계. +- **정책 변화:** Design & Experience 분야의 체계적 지식 자산화 진행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Agile-UX-Integration.md]] +--- diff --git a/Design & Experience/Americans-with-Disabilities-Act-ADA.md b/Design & Experience/Americans-with-Disabilities-Act-ADA.md new file mode 100644 index 00000000..dc856896 --- /dev/null +++ b/Design & Experience/Americans-with-Disabilities-Act-ADA.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-4B67E4 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Mega Batch - Wikified Americans-with-Disabilities-Act-ADA" +--- + +# [[Americans-with-Disabilities-Act-ADA]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 핵심 요약 작업 진행 중 + +## 📖 구조화된 지식 (Synthesized Content) +본문 상세 구성 진행 중 + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 지식 자산화 및 기존 네트워크 연동 단계. +- **정책 변화:** Design & Experience 카테고리의 전문성 확보 및 링크 밀도 최적화. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Americans-with-Disabilities-Act-ADA.md]] +--- diff --git a/Design & Experience/Apple Human Interface Guidelines.md b/Design & Experience/Apple Human Interface Guidelines.md new file mode 100644 index 00000000..63625da9 --- /dev/null +++ b/Design & Experience/Apple Human Interface Guidelines.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-35F340 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Mega Batch - Wikified Apple Human Interface Guidelines" +--- + +# [[Apple Human Interface Guidelines]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 핵심 요약 작업 진행 중 + +## 📖 구조화된 지식 (Synthesized Content) +본문 상세 구성 진행 중 + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 지식 자산화 및 기존 네트워크 연동 단계. +- **정책 변화:** Design & Experience 카테고리의 전문성 확보 및 링크 밀도 최적화. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Apple Human Interface Guidelines.md]] +--- diff --git a/Design & Experience/Arkane-Studios.md b/Design & Experience/Arkane-Studios.md new file mode 100644 index 00000000..ee482f51 --- /dev/null +++ b/Design & Experience/Arkane-Studios.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-1A4850 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Arkane-Studios" +--- + +# [[Arkane-Studios]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Arkane-Studios.md]] +--- diff --git a/Design & Experience/Assignability-Rules.md b/Design & Experience/Assignability-Rules.md new file mode 100644 index 00000000..b37d7af4 --- /dev/null +++ b/Design & Experience/Assignability-Rules.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-DF407B +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Assignability-Rules" +--- + +# [[Assignability-Rules]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Assignability-Rules.md]] +--- diff --git a/Design & Experience/Assistive-Technology-Interoperability.md b/Design & Experience/Assistive-Technology-Interoperability.md new file mode 100644 index 00000000..6351729f --- /dev/null +++ b/Design & Experience/Assistive-Technology-Interoperability.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6974BC +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Assistive-Technology-Interoperability" +--- + +# [[Assistive-Technology-Interoperability]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Assistive-Technology-Interoperability.md]] +--- diff --git a/Design & Experience/Atomic Design Pattern.md b/Design & Experience/Atomic Design Pattern.md new file mode 100644 index 00000000..b7a4dbb0 --- /dev/null +++ b/Design & Experience/Atomic Design Pattern.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-E24948 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Mega Batch 2 - Wikified Atomic Design Pattern" +--- + +# [[Atomic Design Pattern]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Atomic Design Pattern은 UI 컴포넌트의 역할과 계층을 분명하게 만들어 관심사를 분리하기 위해 도입된 계층 구조화 방법론입니다 [1]. 이는 단순히 컴포넌트의 이름이나 분리 그 자체보다, 복잡하게 얽혀 있던 컴포넌트들을 세밀한 기준에 따라 역할과 범주별로 쉽게 정돈할 수 있도록 돕는 역할을 합니다 [1]. + +## 📖 구조화된 지식 (Synthesized Content) +소스에 관련 정보가 부족합니다. 업로드된 문서에서는 해당 패턴에 대해 프론트엔드 구조 진화와 관련된 단락에서만 간략하게 설명하고 있으며, 도출된 상세 내용은 다음과 같습니다. + +* **계층을 통한 관심사 분리:** 프론트엔드 개발 환경에서 UI 컴포넌트의 역할과 계층을 분명히 구분하여, 비대해지고 복잡해진 컴포넌트들의 관심사를 효과적으로 분리하는 데 사용됩니다 [1]. +* **세밀한 분류 기준 제공:** 이 패턴은 단순히 원자(atoms), 분자(molecules), 유기체(organisms)라는 명칭으로 계층을 나누는 것 자체에 목적이 있는 것이 아닙니다 [1]. 그보다는 한 곳에 무질서하게 모여 있던 컴포넌트들을 명확한 기준으로 쪼개어, 역할과 범주에 따라 다시 정돈하기 쉽게 만들어준다는 점이 핵심적인 의의입니다 [1]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 지식 자산화 및 기존 네트워크 연동 단계. +- **정책 변화:** Design & Experience 카테고리의 전문성 확보 및 링크 밀도 최적화. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[UI 컴포넌트]], [[관심사의 분리]] +- **Projects/Contexts:** [[프론트엔드 개발]] +- **Contradictions/Notes:** 소스에서는 Atomic Design Pattern을 도입할 때 atoms, molecules, organisms 같은 이름과 단순한 구조적 분리에 집착하기보다는, 컴포넌트를 세밀하게 나눌 수 있는 '기준'을 마련하여 복잡성을 정돈하는 것이 이 패턴의 주요한 역할이라고 강조합니다 [1]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Atomic Design Pattern.md]] +--- diff --git a/Design & Experience/Auction-Theory.md b/Design & Experience/Auction-Theory.md new file mode 100644 index 00000000..f8fb7555 --- /dev/null +++ b/Design & Experience/Auction-Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-50A53E +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Auction-Theory" +--- + +# [[Auction-Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Auction-Theory.md]] +--- diff --git a/Design & Experience/Augmented Reality (AR) Interfaces.md b/Design & Experience/Augmented Reality (AR) Interfaces.md new file mode 100644 index 00000000..47ecd2ae --- /dev/null +++ b/Design & Experience/Augmented Reality (AR) Interfaces.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-0213E9 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Mega Batch 2 - Wikified Augmented Reality (AR) Interfaces" +--- + +# [[Augmented Reality (AR) Interfaces]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 작업 중 + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중 + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 지식 자산화 및 기존 네트워크 연동 단계. +- **정책 변화:** Design & Experience 카테고리의 전문성 확보 및 링크 밀도 최적화. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Augmented Reality (AR) Interfaces.md]] +--- diff --git a/Design & Experience/Automated-Client-Generation.md b/Design & Experience/Automated-Client-Generation.md new file mode 100644 index 00000000..a2341e2c --- /dev/null +++ b/Design & Experience/Automated-Client-Generation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D03F74 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Automated-Client-Generation" +--- + +# [[Automated-Client-Generation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Automated-Client-Generation.md]] +--- diff --git a/Design & Experience/Bay 12 Games.md b/Design & Experience/Bay 12 Games.md new file mode 100644 index 00000000..9d7bb1fe --- /dev/null +++ b/Design & Experience/Bay 12 Games.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-F3ADB5 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Bay 12 Games" +--- + +# [[Bay 12 Games]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Bay 12 Games.md]] +--- diff --git a/Design & Experience/Bazel.md b/Design & Experience/Bazel.md new file mode 100644 index 00000000..de093715 --- /dev/null +++ b/Design & Experience/Bazel.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-C6F58A +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Bazel" +--- + +# [[Bazel]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Bazel.md]] +--- diff --git a/Design & Experience/BioShock (Rapture)] [Dark Souls (Environmental Lore)] [Gone Home (Domestic Narrative Architecture).md b/Design & Experience/BioShock (Rapture)] [Dark Souls (Environmental Lore)] [Gone Home (Domestic Narrative Architecture).md new file mode 100644 index 00000000..a4587ae8 --- /dev/null +++ b/Design & Experience/BioShock (Rapture)] [Dark Souls (Environmental Lore)] [Gone Home (Domestic Narrative Architecture).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-395B33 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - BioShock (Rapture)] [Dark Souls (Environmental Lore)] [Gone Home (Domestic Narrative Architecture)" +--- + +# [[BioShock (Rapture)] [Dark Souls (Environmental Lore)] [Gone Home (Domestic Narrative Architecture)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/BioShock (Rapture)], [Dark Souls (Environmental Lore)], [Gone Home (Domestic Narrative Architecture).md]] +--- diff --git a/Design & Experience/Borderlands-Art-Direction.md b/Design & Experience/Borderlands-Art-Direction.md new file mode 100644 index 00000000..e11134ec --- /dev/null +++ b/Design & Experience/Borderlands-Art-Direction.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-37BB2D +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Borderlands-Art-Direction" +--- + +# [[Borderlands-Art-Direction]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Borderlands-Art-Direction.md]] +--- diff --git a/Design & Experience/Boundary-Layer-Validation.md b/Design & Experience/Boundary-Layer-Validation.md new file mode 100644 index 00000000..b0d0a89c --- /dev/null +++ b/Design & Experience/Boundary-Layer-Validation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-F8764E +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Boundary-Layer-Validation" +--- + +# [[Boundary-Layer-Validation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Boundary-Layer-Validation.md]] +--- diff --git a/Design & Experience/Branded Types in TypeScript.md b/Design & Experience/Branded Types in TypeScript.md new file mode 100644 index 00000000..63bb0343 --- /dev/null +++ b/Design & Experience/Branded Types in TypeScript.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-3CA58B +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Branded Types in TypeScript" +--- + +# [[Branded Types in TypeScript]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Branded Types in TypeScript.md]] +--- diff --git a/Design & Experience/Buck2.md b/Design & Experience/Buck2.md new file mode 100644 index 00000000..caec7019 --- /dev/null +++ b/Design & Experience/Buck2.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-849CEC +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Buck2" +--- + +# [[Buck2]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Buck2.md]] +--- diff --git a/Design & Experience/Causal Loop Diagramming.md b/Design & Experience/Causal Loop Diagramming.md new file mode 100644 index 00000000..e3ddd9b6 --- /dev/null +++ b/Design & Experience/Causal Loop Diagramming.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-658665 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Causal Loop Diagramming" +--- + +# [[Causal Loop Diagramming]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Causal Loop Diagramming.md]] +--- diff --git a/Design & Experience/Choice Architecture in Digital UX.md b/Design & Experience/Choice Architecture in Digital UX.md new file mode 100644 index 00000000..84a2b818 --- /dev/null +++ b/Design & Experience/Choice Architecture in Digital UX.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-BE3FDC +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Choice Architecture in Digital UX" +--- + +# [[Choice Architecture in Digital UX]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Choice Architecture in Digital UX.md]] +--- diff --git a/Design & Experience/Chrome User Experience Report (CrUX).md b/Design & Experience/Chrome User Experience Report (CrUX).md new file mode 100644 index 00000000..f2911f70 --- /dev/null +++ b/Design & Experience/Chrome User Experience Report (CrUX).md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-C2220F +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Chrome User Experience Report (CrUX)" +--- + +# [[Chrome User Experience Report (CrUX)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +* **데이터의 성격 및 수집 방식:** + CrUX는 실험실 데이터(Lab Data)가 아닌, 실제 사용자 모니터링(RUM, Real-User Monitoring)을 통한 필드 데이터입니다 [3, 5]. Chrome 브라우저가 옵트인 사용자들의 데이터를 수집하여 매월 발행하며, 주로 최상위 수백만 개의 도메인을 대상으로 전체 도메인 단위로 요약된 성능 측정치를 제공합니다 [3, 6]. + +* **주요 측정 지표 (Core Web Vitals):** + CrUX 보고서는 LCP(Largest Contentful Paint), CLS(Cumulative Layout Shift), INP(Interaction to Next Paint)와 같은 코어 웹 바이탈을 75백분위수(75th percentile)를 기준으로 기록합니다 [4, 7]. 또한 사용자의 데스크톱 및 모바일 접속 비율, 75백분위수 네트워크 속도(예: Slow 4G 환경)와 같은 접속 환경 데이터도 함께 제공하여 개발자가 실제 방문자의 환경과 유사한 조건에서 성능을 테스트할 수 있도록 돕습니다 [8]. + +* **고급 데이터 및 세부 지표:** + CrUX는 이미지 기반 콘텐츠를 위한 'LCP 하위 요소(LCP subparts)' 데이터도 제공하지만, 이 세부 데이터는 PageSpeed Insights에는 직접 표시되지 않으므로 CrUX Vis나 DebugBear 같은 외부 도구를 통해서 확인해야 합니다 [1, 9]. + +* **데이터 접근성 및 한계:** + CrUX 데이터에 접근하기 위해서는 Google의 데이터 웨어하우스 도구인 BigQuery나 DataStudio를 사용해야 합니다 [6]. 무엇보다 중요한 한계점은, 특정 URL이나 도메인이 CrUX 데이터에 포함되기 위해서는 '최소 데이터 볼륨(minimum data volume)' 기준을 충족해야 한다는 것입니다 [8]. 따라서 수명이 짧은 웹페이지나 트래픽이 적은 소규모 웹사이트는 데이터를 확인할 수 없습니다 [6, 8]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Core Web Vitals]], [[Largest Contentful Paint (LCP)]], [[Interaction to Next Paint (INP)]], [[Real User Monitoring (RUM)]] +- **Projects/Contexts:** [[PageSpeed Insights]], [[BigQuery]], [[Chrome DevTools]] +- **Contradictions/Notes:** 소스에 따르면 CrUX는 실제 사용자 성능을 파악하는 데 매우 유용한 지표지만, 최소 트래픽 기준을 충족하지 못하는 페이지는 데이터가 수집/표시되지 않는다는 한계가 명확히 존재합니다 [6, 8]. 또한 특정 세부 데이터(LCP 하위 요소)는 PageSpeed Insights가 아닌 별도의 서드파티 도구에서만 조회 가능하다는 점을 유의해야 합니다 [9]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Chrome User Experience Report (CrUX).md]] +--- diff --git a/Design & Experience/Code Formatting.md b/Design & Experience/Code Formatting.md new file mode 100644 index 00000000..4b702ffd --- /dev/null +++ b/Design & Experience/Code Formatting.md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-E4F919 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Code Formatting" +--- + +# [[Code Formatting]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 코드 포맷팅(Code Formatting)은 들여쓰기, 공백, 줄 바꿈, 따옴표 등 소스 코드의 시각적 스타일과 레이아웃을 일관된 규칙에 맞게 정리하는 과정입니다. 이는 코드의 런타임 논리나 실행 의미를 변경하지 않고 코드의 구조적 형태만 변환하며, 일반적으로 Prettier나 Black과 같은 자동화 도구(Formatter)를 통해 수행됩니다. 일관된 코드 포맷팅은 가독성을 향상시키고 협업 시 개발자 간의 미적 선호도 차이로 인한 마찰과 인지적 부하를 줄여주는 핵심적인 역할을 합니다. + +## 📖 구조화된 지식 (Synthesized Content) +* **코드 포맷팅의 목적 및 이점:** + 일관되고 명확한 포맷팅 규칙은 코드를 명확하게 이해하고 논리적 흐름을 빠르게 파악할 수 있도록 도와 인지적 오버헤드(cognitive overhead)를 줄여줍니다 [1]. 개발자들은 코드 작성 시 스타일에 대한 고민을 덜고 핵심 비즈니스 로직과 아키텍처에 집중할 수 있으며, 일관된 코드는 동료들의 코드 리뷰 과정을 더욱 원활하게 만들어 생산성을 극대화합니다 [2-4]. + +* **자동화 도구 (Formatter)의 활용:** + 개발 생태계에서는 Prettier(JavaScript/TypeScript 등)와 Black(Python) 같은 독단적(opinionated)인 코드 포맷터가 널리 쓰입니다. 이 도구들은 작성자가 코드를 어떻게 입력했는지와 무관하게 코드를 파싱한 후, 줄 길이(line width), 들여쓰기(indentation) 등 자체적인 규칙에 따라 코드를 완전히 새로 작성(reprint)하여 시각적 통일성을 강제합니다 [5-8]. + +* **Linter와의 차이점 및 연동 시 주의사항:** + Linter(예: ESLint)는 코드의 문법적 오류나 잠재적 버그를 식별하는 '정적 분석 및 품질 관리' 도구인 반면, Formatter(예: Prettier)는 '스타일 교정'에 특화되어 있습니다 [2, 7, 9]. Linter 자체에도 일부 코드 포맷팅 기능이 포함되어 있기 때문에 이 둘을 함께 사용할 경우 규칙이 충돌하여 무한 경고 루프를 유발할 수 있습니다. 따라서 `eslint-config-prettier` 등을 통해 Linter의 포맷팅 규칙을 비활성화하고, 포맷팅 역할은 전적으로 Formatter에 위임하는 방식이 표준으로 자리 잡고 있습니다 [10-12]. + +* **코드 스타일로메트리(Code Stylometry)에 미치는 영향:** + 코드 포맷팅은 컴파일러가 코드를 이해하는 추상 구문 트리(AST)를 변경하지 않지만, 소스 코드의 표면적 특성을 담는 구체 구문 트리(CST)를 크게 변경합니다 [13]. 이 과정에서 코드 작성자 고유의 띄어쓰기나 들여쓰기 등 스타일적 지문(stylistic fingerprints)이 지워지게 됩니다. 그 결과, 소스 코드를 통해 작성자를 추적하는 코드 스타일로메트리 분석의 정확도가 눈에 띄게 하락(약 68%에서 53%로 감소)하며, 이는 억압적인 환경에 있는 오픈소스 기여자들에게 일종의 프라이버시 보호막(Privacy Shield) 역할을 제공할 수 있습니다 [14-17]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Linter]], [[Prettier]], [[Code Stylometry]], [[Code Readability]] +- **Projects/Contexts:** [[Automated Code Governance]], [[CI/CD Pipeline]] +- **Contradictions/Notes:** ESLint와 같은 Linter 도구 내에도 자체적인 포맷팅 규칙이 존재하여 Prettier와 동시 사용 시 규칙 충돌(Infinite feedback loop)이 일어날 수 있습니다. 따라서 Linter의 포맷팅 기능을 끄고 이를 Prettier에 전담시키는 구성 최적화가 필수적입니다 [12, 18]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Code Formatting.md]] +--- diff --git a/Design & Experience/Cognitive Aging Research.md b/Design & Experience/Cognitive Aging Research.md new file mode 100644 index 00000000..303dfce0 --- /dev/null +++ b/Design & Experience/Cognitive Aging Research.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-8C858F +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Cognitive Aging Research" +--- + +# [[Cognitive Aging Research]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Cognitive Aging Research.md]] +--- diff --git a/Design & Experience/Cognitive Dissonance.md b/Design & Experience/Cognitive Dissonance.md new file mode 100644 index 00000000..8c84338d --- /dev/null +++ b/Design & Experience/Cognitive Dissonance.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-0C898E +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Cognitive Dissonance" +--- + +# [[Cognitive Dissonance]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Cognitive Dissonance.md]] +--- diff --git a/Design & Experience/Cognitive-Flexibility.md b/Design & Experience/Cognitive-Flexibility.md new file mode 100644 index 00000000..b1c1062f --- /dev/null +++ b/Design & Experience/Cognitive-Flexibility.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-634AD5 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Cognitive-Flexibility" +--- + +# [[Cognitive-Flexibility]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Cognitive-Flexibility.md]] +--- diff --git a/Design & Experience/Cognitive-Psychology.md b/Design & Experience/Cognitive-Psychology.md new file mode 100644 index 00000000..1d6f7357 --- /dev/null +++ b/Design & Experience/Cognitive-Psychology.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-7EA6B8 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Cognitive-Psychology" +--- + +# [[Cognitive-Psychology]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Cognitive-Psychology.md]] +--- diff --git a/Design & Experience/Complexity Science in Economics.md b/Design & Experience/Complexity Science in Economics.md new file mode 100644 index 00000000..3a49b59a --- /dev/null +++ b/Design & Experience/Complexity Science in Economics.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-527F62 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Complexity Science in Economics" +--- + +# [[Complexity Science in Economics]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Complexity Science in Economics.md]] +--- diff --git a/Design & Experience/Computation-Caching-Strategies.md b/Design & Experience/Computation-Caching-Strategies.md new file mode 100644 index 00000000..a2f53932 --- /dev/null +++ b/Design & Experience/Computation-Caching-Strategies.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-802544 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Computation-Caching-Strategies" +--- + +# [[Computation-Caching-Strategies]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Computation-Caching-Strategies.md]] +--- diff --git a/Design & Experience/Computational Thinking.md b/Design & Experience/Computational Thinking.md new file mode 100644 index 00000000..148f9b9d --- /dev/null +++ b/Design & Experience/Computational Thinking.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-45C605 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Computational Thinking" +--- + +# [[Computational Thinking]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Computational Thinking.md]] +--- diff --git a/Design & Experience/Computational-Fluid-Dynamics.md b/Design & Experience/Computational-Fluid-Dynamics.md new file mode 100644 index 00000000..c3403d3b --- /dev/null +++ b/Design & Experience/Computational-Fluid-Dynamics.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-668FCE +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Computational-Fluid-Dynamics" +--- + +# [[Computational-Fluid-Dynamics]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Computational-Fluid-Dynamics.md]] +--- diff --git a/Design & Experience/Conditional-Types.md b/Design & Experience/Conditional-Types.md new file mode 100644 index 00000000..392e24ad --- /dev/null +++ b/Design & Experience/Conditional-Types.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-F3246D +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Conditional-Types" +--- + +# [[Conditional-Types]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Conditional-Types.md]] +--- diff --git a/Design & Experience/Content-Strategy.md b/Design & Experience/Content-Strategy.md new file mode 100644 index 00000000..15ab5375 --- /dev/null +++ b/Design & Experience/Content-Strategy.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-ED632C +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Content-Strategy" +--- + +# [[Content-Strategy]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Content-Strategy.md]] +--- diff --git a/Design & Experience/Contract-Driven-Development.md b/Design & Experience/Contract-Driven-Development.md new file mode 100644 index 00000000..cd13c8f7 --- /dev/null +++ b/Design & Experience/Contract-Driven-Development.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-1F7EE7 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Contract-Driven-Development" +--- + +# [[Contract-Driven-Development]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Contract-Driven-Development.md]] +--- diff --git a/Design & Experience/Contract-First-Development.md b/Design & Experience/Contract-First-Development.md new file mode 100644 index 00000000..d7b5a5d2 --- /dev/null +++ b/Design & Experience/Contract-First-Development.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B0C45D +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Contract-First-Development" +--- + +# [[Contract-First-Development]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Contract-First-Development.md]] +--- diff --git a/Design & Experience/Contract-Testing.md b/Design & Experience/Contract-Testing.md new file mode 100644 index 00000000..723cbd87 --- /dev/null +++ b/Design & Experience/Contract-Testing.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-7A6306 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Contract-Testing" +--- + +# [[Contract-Testing]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Contract-Testing.md]] +--- diff --git a/Design & Experience/Contravariance-and-Covariance.md b/Design & Experience/Contravariance-and-Covariance.md new file mode 100644 index 00000000..e2dc2dbc --- /dev/null +++ b/Design & Experience/Contravariance-and-Covariance.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-62A6A2 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Contravariance-and-Covariance" +--- + +# [[Contravariance-and-Covariance]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Contravariance-and-Covariance.md]] +--- diff --git a/Design & Experience/Creativity-and-Cognitive-Complexity.md b/Design & Experience/Creativity-and-Cognitive-Complexity.md new file mode 100644 index 00000000..4b31371d --- /dev/null +++ b/Design & Experience/Creativity-and-Cognitive-Complexity.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-091CD8 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Creativity-and-Cognitive-Complexity" +--- + +# [[Creativity-and-Cognitive-Complexity]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Creativity-and-Cognitive-Complexity.md]] +--- diff --git a/Design & Experience/Critical Design.md b/Design & Experience/Critical Design.md new file mode 100644 index 00000000..fb232a44 --- /dev/null +++ b/Design & Experience/Critical Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A653EF +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Critical Design" +--- + +# [[Critical Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Critical Design.md]] +--- diff --git a/Design & Experience/Cryptoeconomics.md b/Design & Experience/Cryptoeconomics.md new file mode 100644 index 00000000..17ec9c33 --- /dev/null +++ b/Design & Experience/Cryptoeconomics.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5B4AE2 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Cryptoeconomics" +--- + +# [[Cryptoeconomics]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Cryptoeconomics.md]] +--- diff --git a/Design & Experience/Dark Souls (Environmental Storytelling).md b/Design & Experience/Dark Souls (Environmental Storytelling).md new file mode 100644 index 00000000..1b229e6d --- /dev/null +++ b/Design & Experience/Dark Souls (Environmental Storytelling).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-938B32 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Dark Souls (Environmental Storytelling)" +--- + +# [[Dark Souls (Environmental Storytelling)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Dark Souls (Environmental Storytelling).md]] +--- diff --git a/Design & Experience/Data-Sanitization.md b/Design & Experience/Data-Sanitization.md new file mode 100644 index 00000000..008f84d9 --- /dev/null +++ b/Design & Experience/Data-Sanitization.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-476815 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Data-Sanitization" +--- + +# [[Data-Sanitization]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Data-Sanitization.md]] +--- diff --git a/Design & Experience/Declaration Merging.md b/Design & Experience/Declaration Merging.md new file mode 100644 index 00000000..acd7dd63 --- /dev/null +++ b/Design & Experience/Declaration Merging.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-164A4F +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Declaration Merging" +--- + +# [[Declaration Merging]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Declaration Merging.md]] +--- diff --git a/Design & Experience/Declaration-Merging.md b/Design & Experience/Declaration-Merging.md new file mode 100644 index 00000000..bbfd6ef9 --- /dev/null +++ b/Design & Experience/Declaration-Merging.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6586E8 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Declaration-Merging" +--- + +# [[Declaration-Merging]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Declaration-Merging.md]] +--- diff --git a/Design & Experience/Depth-Subtyping.md b/Design & Experience/Depth-Subtyping.md new file mode 100644 index 00000000..47cec662 --- /dev/null +++ b/Design & Experience/Depth-Subtyping.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-408E53 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Depth-Subtyping" +--- + +# [[Depth-Subtyping]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Depth-Subtyping.md]] +--- diff --git a/Design & Experience/Design-Thinking.md b/Design & Experience/Design-Thinking.md new file mode 100644 index 00000000..ae3c293d --- /dev/null +++ b/Design & Experience/Design-Thinking.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-F6D12C +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Design-Thinking" +--- + +# [[Design-Thinking]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Design-Thinking.md]] +--- diff --git a/Design & Experience/Design-Tokens.md b/Design & Experience/Design-Tokens.md new file mode 100644 index 00000000..9998ed1d --- /dev/null +++ b/Design & Experience/Design-Tokens.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-2C4230 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Design-Tokens" +--- + +# [[Design-Tokens]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Design-Tokens.md]] +--- diff --git a/Design & Experience/Diegetic UI.md b/Design & Experience/Diegetic UI.md new file mode 100644 index 00000000..be406d08 --- /dev/null +++ b/Design & Experience/Diegetic UI.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-FE01D2 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Diegetic UI" +--- + +# [[Diegetic UI]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Diegetic UI.md]] +--- diff --git a/Design & Experience/Diegetic-Interface.md b/Design & Experience/Diegetic-Interface.md new file mode 100644 index 00000000..0f218de9 --- /dev/null +++ b/Design & Experience/Diegetic-Interface.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9F62F4 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Diegetic-Interface" +--- + +# [[Diegetic-Interface]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Diegetic-Interface.md]] +--- diff --git a/Design & Experience/Digital Humanities.md b/Design & Experience/Digital Humanities.md new file mode 100644 index 00000000..5f41d732 --- /dev/null +++ b/Design & Experience/Digital Humanities.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-1CBB5B +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Digital Humanities" +--- + +# [[Digital Humanities]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Digital Humanities.md]] +--- diff --git a/Design & Experience/Digital Twin Interfaces.md b/Design & Experience/Digital Twin Interfaces.md new file mode 100644 index 00000000..60410195 --- /dev/null +++ b/Design & Experience/Digital Twin Interfaces.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6DF617 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Digital Twin Interfaces" +--- + +# [[Digital Twin Interfaces]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Digital Twin Interfaces.md]] +--- diff --git a/Design & Experience/Digital-Heritage-Preservation.md b/Design & Experience/Digital-Heritage-Preservation.md new file mode 100644 index 00000000..a7736b29 --- /dev/null +++ b/Design & Experience/Digital-Heritage-Preservation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-C13BDE +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Digital-Heritage-Preservation" +--- + +# [[Digital-Heritage-Preservation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Digital-Heritage-Preservation.md]] +--- diff --git a/Design & Experience/Digital-Humanities.md b/Design & Experience/Digital-Humanities.md new file mode 100644 index 00000000..90c06d3e --- /dev/null +++ b/Design & Experience/Digital-Humanities.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B1AF91 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Digital-Humanities" +--- + +# [[Digital-Humanities]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Digital-Humanities.md]] +--- diff --git a/Design & Experience/Digital-Transformation-Strategy.md b/Design & Experience/Digital-Transformation-Strategy.md new file mode 100644 index 00000000..bb109fbb --- /dev/null +++ b/Design & Experience/Digital-Transformation-Strategy.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5767B8 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Digital-Transformation-Strategy" +--- + +# [[Digital-Transformation-Strategy]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Digital-Transformation-Strategy.md]] +--- diff --git a/Design & Experience/Divergent-Thinking.md b/Design & Experience/Divergent-Thinking.md new file mode 100644 index 00000000..d588b6eb --- /dev/null +++ b/Design & Experience/Divergent-Thinking.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-52E973 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Divergent-Thinking" +--- + +# [[Divergent-Thinking]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Divergent-Thinking.md]] +--- diff --git a/Design & Experience/Duck-Typing.md b/Design & Experience/Duck-Typing.md new file mode 100644 index 00000000..0531c7e3 --- /dev/null +++ b/Design & Experience/Duck-Typing.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-31CA9B +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Duck-Typing" +--- + +# [[Duck-Typing]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Duck-Typing.md]] +--- diff --git a/Design & Experience/Dwarf Fortress.md b/Design & Experience/Dwarf Fortress.md new file mode 100644 index 00000000..0c4abdd8 --- /dev/null +++ b/Design & Experience/Dwarf Fortress.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-8B5736 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Dwarf Fortress" +--- + +# [[Dwarf Fortress]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Dwarf Fortress.md]] +--- diff --git a/Design & Experience/E-commerce-Conversion-Optimization.md b/Design & Experience/E-commerce-Conversion-Optimization.md new file mode 100644 index 00000000..5d849949 --- /dev/null +++ b/Design & Experience/E-commerce-Conversion-Optimization.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E7164D +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - E-commerce-Conversion-Optimization" +--- + +# [[E-commerce-Conversion-Optimization]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/E-commerce-Conversion-Optimization.md]] +--- diff --git a/Design & Experience/ESL Pro Tour.md b/Design & Experience/ESL Pro Tour.md new file mode 100644 index 00000000..f62105b5 --- /dev/null +++ b/Design & Experience/ESL Pro Tour.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6D8C66 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - ESL Pro Tour" +--- + +# [[ESL Pro Tour]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/ESL Pro Tour.md]] +--- diff --git a/Design & Experience/ESLint-Plugin-TypeScript.md b/Design & Experience/ESLint-Plugin-TypeScript.md new file mode 100644 index 00000000..af1d5ec8 --- /dev/null +++ b/Design & Experience/ESLint-Plugin-TypeScript.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-787585 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - ESLint-Plugin-TypeScript" +--- + +# [[ESLint-Plugin-TypeScript]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/ESLint-Plugin-TypeScript.md]] +--- diff --git a/Design & Experience/Edge-Detection-Algorithms.md b/Design & Experience/Edge-Detection-Algorithms.md new file mode 100644 index 00000000..2faba7cd --- /dev/null +++ b/Design & Experience/Edge-Detection-Algorithms.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D5E910 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Edge-Detection-Algorithms" +--- + +# [[Edge-Detection-Algorithms]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Edge-Detection-Algorithms.md]] +--- diff --git a/Design & Experience/Educational Pedagogy (Zone of Proximal Development).md b/Design & Experience/Educational Pedagogy (Zone of Proximal Development).md new file mode 100644 index 00000000..52870a3d --- /dev/null +++ b/Design & Experience/Educational Pedagogy (Zone of Proximal Development).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A6B581 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Educational Pedagogy (Zone of Proximal Development)" +--- + +# [[Educational Pedagogy (Zone of Proximal Development)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Educational Pedagogy (Zone of Proximal Development).md]] +--- diff --git a/Design & Experience/Educational-Psychology.md b/Design & Experience/Educational-Psychology.md new file mode 100644 index 00000000..6695e5bd --- /dev/null +++ b/Design & Experience/Educational-Psychology.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-F3112C +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Educational-Psychology" +--- + +# [[Educational-Psychology]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Educational-Psychology.md]] +--- diff --git a/Design & Experience/Electromyography.md b/Design & Experience/Electromyography.md new file mode 100644 index 00000000..633fbf56 --- /dev/null +++ b/Design & Experience/Electromyography.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D6647F +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Electromyography" +--- + +# [[Electromyography]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Electromyography.md]] +--- diff --git a/Design & Experience/Environmental Storyability.md b/Design & Experience/Environmental Storyability.md new file mode 100644 index 00000000..83b1e003 --- /dev/null +++ b/Design & Experience/Environmental Storyability.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-61BAD9 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Environmental Storyability" +--- + +# [[Environmental Storyability]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Environmental Storyability.md]] +--- diff --git a/Design & Experience/Environmental Storytelling.md b/Design & Experience/Environmental Storytelling.md new file mode 100644 index 00000000..26839ea4 --- /dev/null +++ b/Design & Experience/Environmental Storytelling.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-415A1C +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Environmental Storytelling" +--- + +# [[Environmental Storytelling]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Environmental Storytelling.md]] +--- diff --git a/Design & Experience/Environmental-Storytelling.md b/Design & Experience/Environmental-Storytelling.md new file mode 100644 index 00000000..2cd47b89 --- /dev/null +++ b/Design & Experience/Environmental-Storytelling.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-BB91DD +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Environmental-Storytelling" +--- + +# [[Environmental-Storytelling]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Environmental-Storytelling.md]] +--- diff --git a/Design & Experience/Ergodic Literature.md b/Design & Experience/Ergodic Literature.md new file mode 100644 index 00000000..1ca3c70f --- /dev/null +++ b/Design & Experience/Ergodic Literature.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-96D046 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Ergodic Literature" +--- + +# [[Ergodic Literature]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Ergodic Literature.md]] +--- diff --git a/Design & Experience/Ergodic-Literature.md b/Design & Experience/Ergodic-Literature.md new file mode 100644 index 00000000..7dc63d18 --- /dev/null +++ b/Design & Experience/Ergodic-Literature.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-CB2F13 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Ergodic-Literature" +--- + +# [[Ergodic-Literature]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Ergodic-Literature.md]] +--- diff --git a/Design & Experience/Executive Function.md b/Design & Experience/Executive Function.md new file mode 100644 index 00000000..75044686 --- /dev/null +++ b/Design & Experience/Executive Function.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-8909A3 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Executive Function" +--- + +# [[Executive Function]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Executive Function.md]] +--- diff --git a/Design & Experience/Exhaustiveness-Checking-with-Never.md b/Design & Experience/Exhaustiveness-Checking-with-Never.md new file mode 100644 index 00000000..cc0c9d76 --- /dev/null +++ b/Design & Experience/Exhaustiveness-Checking-with-Never.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A2E3FE +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Exhaustiveness-Checking-with-Never" +--- + +# [[Exhaustiveness-Checking-with-Never]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Exhaustiveness-Checking-with-Never.md]] +--- diff --git a/Design & Experience/FSD (Feature-Sliced Design).md b/Design & Experience/FSD (Feature-Sliced Design).md new file mode 100644 index 00000000..b931d0bc --- /dev/null +++ b/Design & Experience/FSD (Feature-Sliced Design).md @@ -0,0 +1,37 @@ +--- +id: P-REINFORCE-AUTO-912710 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - FSD (Feature-Sliced Design)" +--- + +# [[FSD (Feature-Sliced Design)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> FSD(Feature-Sliced Design)는 프론트엔드 개발에서 프로젝트의 복잡성을 줄이고 유지보수성과 확장성을 향상시키기 위해 고안된 아키텍처입니다. 기존의 역할 중심 폴더 구조가 가지는 한계를 극복하고자 '기능(Feature)'을 기준으로 코드를 분리하는 방식을 채택합니다. 기능 간의 결합도를 낮추고 각 기능이 독립적으로 관리되도록 설계되어, 특히 대규모 프로젝트를 관리하는 데 효과적인 방법론입니다. + +## 📖 구조화된 지식 (Synthesized Content) +* **등장 배경 및 기존 구조의 한계:** + 프로젝트의 규모가 커지고 복잡해짐에 따라 기존의 역할(Role) 중심 폴더 구조만으로는 다양한 관심사와 요구 사항을 관리하는 데 명확한 한계가 발생했습니다. 컴포넌트 기반 개발 방식에서 역할별로 코드를 분리하더라도 결국 기능 간의 결합도가 높아지는 문제를 피하기 어려웠고, 이를 해결하기 위해 FSD가 등장하게 되었습니다. +* **기능(Feature) 중심의 분리:** + FSD 아키텍처는 이름 그대로 '기능'을 기준으로 코드를 분리합니다. 하나의 기능을 구현하는 데 필요한 모든 파일과 코드를 같은 폴더에 모아 단위별로 관리하는 것을 목표로 합니다. 이를 통해 각 기능이 독립적으로 동작하게 하며, 불필요한 결합도를 줄여 유지보수성을 극대화합니다. +* **문서화된 표준으로서의 의의:** + FSD가 완전히 새롭거나 전례 없던 아키텍처는 아닙니다. 대규모 프로젝트에서 기능 단위로 묶어 관리하는 것이 효율적이라는 인식은 이전부터 존재했습니다. 하지만 FSD는 이러한 구조를 공식적인 형태로 갖추고 '문서화된 표준'으로 제공한다는 점에서 큰 의의가 있습니다. 명확한 공식 문서를 통해 팀원 간의 멘탈 모델(Mental Model)을 통일하고 구조에 대한 합의를 이끌어내는 데 드는 커뮤니케이션 비용을 줄여줍니다. +* **적용 시 주의사항 (은탄환은 없다):** + 공식 설명에서도 명시하듯 FSD 구조는 주로 '규모가 큰 프로젝트'에 유용합니다. 모든 프로젝트에 완벽한 해결책이 되는 것은 아니며, 상황과 규모에 따라 기존의 역할 기반 폴더 구조나 다른 방식이 훨씬 더 효율적일 수 있습니다. 프로젝트의 성장 단계와 관심사의 변화에 따라 구조 역시 유연하게 진화해야 합니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[관심사의 분리 (Separation of Concerns)]], [[단일 책임 원칙 (SRP)]], [[컴포넌트 기반 아키텍처]] +- **Projects/Contexts:** [[대규모 프론트엔드 프로젝트 아키텍처 및 폴더 구조 설계]] +- **Contradictions/Notes:** 소스에서는 FSD가 기능 간 결합도를 줄이고 유지보수를 돕는 훌륭한 표준이지만, 모든 상황에서 완벽한 정답은 아니라고 주장합니다. 프로젝트의 크기나 특성에 따라 오히려 기존의 단순한 폴더 구조가 더 적합할 수도 있으므로 프로젝트 상황에 맞는 유연한 폴더 구조 적용을 권장합니다. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/FSD (Feature-Sliced Design).md]] +--- diff --git a/Design & Experience/Fallout (Pip-Boy Mechanic).md b/Design & Experience/Fallout (Pip-Boy Mechanic).md new file mode 100644 index 00000000..563427cc --- /dev/null +++ b/Design & Experience/Fallout (Pip-Boy Mechanic).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-C110F3 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Fallout (Pip-Boy Mechanic)" +--- + +# [[Fallout (Pip-Boy Mechanic)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Fallout (Pip-Boy Mechanic).md]] +--- diff --git a/Design & Experience/Feature-Sliced Design.md b/Design & Experience/Feature-Sliced Design.md new file mode 100644 index 00000000..2e438ed1 --- /dev/null +++ b/Design & Experience/Feature-Sliced Design.md @@ -0,0 +1,36 @@ +--- +id: P-REINFORCE-AUTO-925C5C +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Feature-Sliced Design" +--- + +# [[Feature-Sliced Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Feature-Sliced Design(FSD)은 프론트엔드 개발에서 복잡성을 줄이고 유지보수성과 확장성을 향상시키기 위해 등장한 아키텍처 방법론입니다. 기존의 역할 중심 폴더 및 코드 분리 방식의 한계를 극복하고자 기능(Feature)을 기준으로 코드를 분리하고 관련된 파일들을 한데 모아 관리하는 것을 목표로 합니다. 완전히 새로운 개념은 아니지만 공식적인 문서화와 표준을 제공하여 대규모 프로젝트에서 팀원 간의 멘탈 모델을 맞추고 합의를 이끌어내는 데 특히 유용합니다. + +## 📖 구조화된 지식 (Synthesized Content) +- **등장 배경:** 프론트엔드 프로젝트의 규모가 커지면서 기존 역할별 폴더 구조(예: components, api, pages 등)만으로는 기능 간의 결합도가 높아지고, 관련된 파일들이 흩어져 코드를 관리하고 파악하기 어려워지는 한계가 명확해졌습니다. FSD는 이러한 문제를 해결하기 위해 기능을 중심으로 코드를 분리하는 대안으로 등장했습니다. +- **핵심 구조와 원리:** 하나의 기능 단위에 필요한 모든 파일들을 같은 폴더에 모아 관리합니다. 이를 통해 기능 간의 결합도를 줄이고, 각 기능이 독립적으로 관리될 수 있도록 설계되었습니다. +- **주요 장점:** FSD 이전에도 비슷한 구조적 제안은 있었으나, FSD의 가장 큰 의의는 **공식적인 형태를 갖추고 문서화되어 있다는 점**입니다. 폴더 구조 변경에 따르는 커뮤니케이션 비용을 줄여주고, 팀원 간의 멘탈 모델을 일치시키며 합의를 이끌어내기 용이하게 만들어 줍니다. +- **적용 시 주의사항 및 한계점:** + - FSD 공식 설명에서도 명시하듯 이 구조는 **프로젝트의 규모가 클 때** 유용합니다. + - 모든 프로젝트에 완벽한 해결책이 되는 것은 아니며, 규모가 작은 프로젝트 등 상황에 따라서는 기존의 역할 기반 폴더 구조가 더 적합할 수 있습니다. + - 절대적인 정답으로 삼기보다는, 프로젝트의 성장과 변화하는 관심사에 맞추어 폴더 구조를 진화시켜 나가는 하나의 접근법으로 활용해야 합니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[관심사의 분리(Separation of Concerns)]], [[멘탈 모델]] +- **Projects/Contexts:** [[대규모 프론트엔드 프로젝트]] +- **Contradictions/Notes:** FSD 아키텍처는 대규모 프로젝트의 복잡성 관리에 유용하지만, 모든 프로젝트에서 완벽한 해결책은 아니며 상황과 규모에 따라 오히려 기존의 폴더 구조가 더 효율적일 수도 있습니다. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Feature-Sliced Design.md]] +--- diff --git a/Design & Experience/Flow-Sensitive-Typing.md b/Design & Experience/Flow-Sensitive-Typing.md new file mode 100644 index 00000000..d835f406 --- /dev/null +++ b/Design & Experience/Flow-Sensitive-Typing.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D1B53D +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Flow-Sensitive-Typing" +--- + +# [[Flow-Sensitive-Typing]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Flow-Sensitive-Typing.md]] +--- diff --git a/Design & Experience/Formalism vs Structuralism.md b/Design & Experience/Formalism vs Structuralism.md new file mode 100644 index 00000000..d42a68b3 --- /dev/null +++ b/Design & Experience/Formalism vs Structuralism.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9613E1 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Formalism vs Structuralism" +--- + +# [[Formalism vs Structuralism]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Formalism vs. Structuralism.md]] +--- diff --git a/Design & Experience/Formalist Criticism.md b/Design & Experience/Formalist Criticism.md new file mode 100644 index 00000000..7f5c6e9e --- /dev/null +++ b/Design & Experience/Formalist Criticism.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6E52E3 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Formalist Criticism" +--- + +# [[Formalist Criticism]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Formalist Criticism.md]] +--- diff --git a/Design & Experience/Game Studies (Game Studies Journal).md b/Design & Experience/Game Studies (Game Studies Journal).md new file mode 100644 index 00000000..0c96ea54 --- /dev/null +++ b/Design & Experience/Game Studies (Game Studies Journal).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-266459 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Game Studies (Game Studies Journal)" +--- + +# [[Game Studies (Game Studies Journal)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Game Studies (Game Studies Journal).md]] +--- diff --git a/Design & Experience/Game Systems Design.md b/Design & Experience/Game Systems Design.md new file mode 100644 index 00000000..d3e79cff --- /dev/null +++ b/Design & Experience/Game Systems Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-1D378F +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Game Systems Design" +--- + +# [[Game Systems Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Game Systems Design.md]] +--- diff --git a/Design & Experience/Game-Level-Design.md b/Design & Experience/Game-Level-Design.md new file mode 100644 index 00000000..46e74b79 --- /dev/null +++ b/Design & Experience/Game-Level-Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B42B04 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Game-Level-Design" +--- + +# [[Game-Level-Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Game-Level-Design.md]] +--- diff --git a/Design & Experience/Game-Studies-Academic-Discourse.md b/Design & Experience/Game-Studies-Academic-Discourse.md new file mode 100644 index 00000000..ba500fad --- /dev/null +++ b/Design & Experience/Game-Studies-Academic-Discourse.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A0CB96 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Game-Studies-Academic-Discourse" +--- + +# [[Game-Studies-Academic-Discourse]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Game-Studies-Academic-Discourse.md]] +--- diff --git a/Design & Experience/Game-Studies-Journal.md b/Design & Experience/Game-Studies-Journal.md new file mode 100644 index 00000000..47005a90 --- /dev/null +++ b/Design & Experience/Game-Studies-Journal.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-66A318 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Game-Studies-Journal" +--- + +# [[Game-Studies-Journal]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Game-Studies-Journal.md]] +--- diff --git a/Design & Experience/Gamification in Pedagogy.md b/Design & Experience/Gamification in Pedagogy.md new file mode 100644 index 00000000..afa91743 --- /dev/null +++ b/Design & Experience/Gamification in Pedagogy.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-0CBD32 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Gamification in Pedagogy" +--- + +# [[Gamification in Pedagogy]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Gamification in Pedagogy.md]] +--- diff --git a/Design & Experience/Gamification-Mechanics.md b/Design & Experience/Gamification-Mechanics.md new file mode 100644 index 00000000..0a3eb006 --- /dev/null +++ b/Design & Experience/Gamification-Mechanics.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-687945 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Gamification-Mechanics" +--- + +# [[Gamification-Mechanics]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Gamification-Mechanics.md]] +--- diff --git a/Design & Experience/GitHub Actions.md b/Design & Experience/GitHub Actions.md new file mode 100644 index 00000000..7f22201e --- /dev/null +++ b/Design & Experience/GitHub Actions.md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-4CFD51 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - GitHub Actions" +--- + +# [[GitHub Actions]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> GitHub Actions는 주로 리눅스(Linux) 이미지를 기본 환경으로 사용하는 CI/CD(지속적 통합/지속적 배포) 파이프라인 도구(CI Runner)입니다 [1]. 정적 애플리케이션 보안 테스트(SAST) 및 취약점 스캔 도구들과 연동되어 개발 워크플로우 내에서 보안 검사를 자동화하는 데 주요하게 활용됩니다 [2, 3]. 다만 제공된 소스에서는 타 솔루션의 연동 환경 또는 공급망 공격의 사례로만 제한적으로 언급되고 있어 소스에 관련 정보가 부족합니다. + +## 📖 구조화된 지식 (Synthesized Content) +소스에 관련 정보가 부족합니다. 제공된 문헌을 바탕으로 파악할 수 있는 GitHub Actions의 활용 맥락은 다음과 같습니다. + +* **보안 도구와의 CI/CD 통합:** GitHub Actions는 Snyk Code나 Endor Labs와 같은 애플리케이션 보안 스캐닝 도구들을 CI 워크플로우에 끊김 없이 연동할 수 있도록 지원합니다 [2, 4]. 개발자가 코드를 푸시(push)할 때 `snyk test`를 실행하게 하거나, Snyk Monitor 및 GitHub Code Scanning과 결합하여 자동화된 취약점 스캔 환경을 구축할 수 있습니다 [2, 3]. +* **운영 환경 특징:** CircleCI, GitLab과 같은 다른 CI 러너(runner) 도구들과 마찬가지로, GitHub Actions는 기본적으로 리눅스(Linux) 이미지 환경에서 동작합니다 [1]. +* **오픈소스 공급망 공격 리스크:** GitHub Actions의 액션(Action) 생태계 역시 공급망 공격의 대상이 될 수 있습니다. 합법적인 오픈소스 패키지가 손상되는 보안 위협(OWASP OSS Risk 2)의 대표적인 심층 연구 사례로 `tj-actions/changed-files` GitHub Action을 타깃으로 한 공급망 공격이 언급되었습니다 [5]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[CI/CD]], [[Static Application Security Testing (SAST)]], [[Supply Chain Attack]] +- **Projects/Contexts:** [[Snyk]], [[Endor Labs]] +- **Contradictions/Notes:** 소스에 GitHub Actions 자체의 동작 원리, 문법, 고유 기능 등에 대한 세부 정보는 전무하며, 단순히 외부 보안 솔루션 연동을 위한 파이프라인 환경 및 공급망 공격 사례의 일부로만 등장합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/GitHub Actions.md]] +--- diff --git a/Design & Experience/Global Augmentation.md b/Design & Experience/Global Augmentation.md new file mode 100644 index 00000000..90311745 --- /dev/null +++ b/Design & Experience/Global Augmentation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-2CC24D +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Global Augmentation" +--- + +# [[Global Augmentation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Global Augmentation.md]] +--- diff --git a/Design & Experience/Grammar-based-Synthesis.md b/Design & Experience/Grammar-based-Synthesis.md new file mode 100644 index 00000000..5b0c9d69 --- /dev/null +++ b/Design & Experience/Grammar-based-Synthesis.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-35F81E +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Grammar-based-Synthesis" +--- + +# [[Grammar-based-Synthesis]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Grammar-based-Synthesis.md]] +--- diff --git a/Design & Experience/HUD-less Design Paradigms.md b/Design & Experience/HUD-less Design Paradigms.md new file mode 100644 index 00000000..656103c9 --- /dev/null +++ b/Design & Experience/HUD-less Design Paradigms.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-4CD4F1 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - HUD-less Design Paradigms" +--- + +# [[HUD-less Design Paradigms]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/HUD-less Design Paradigms.md]] +--- diff --git a/Design & Experience/Haptic Feedback Technology.md b/Design & Experience/Haptic Feedback Technology.md new file mode 100644 index 00000000..f6aca0b8 --- /dev/null +++ b/Design & Experience/Haptic Feedback Technology.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-3637D3 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Haptic Feedback Technology" +--- + +# [[Haptic Feedback Technology]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Haptic Feedback Technology.md]] +--- diff --git a/Design & Experience/Hierarchical Reinforcement Learning (HRL).md b/Design & Experience/Hierarchical Reinforcement Learning (HRL).md new file mode 100644 index 00000000..bc4fc619 --- /dev/null +++ b/Design & Experience/Hierarchical Reinforcement Learning (HRL).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-535DD0 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Hierarchical Reinforcement Learning (HRL)" +--- + +# [[Hierarchical Reinforcement Learning (HRL)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Hierarchical Reinforcement Learning (HRL).md]] +--- diff --git a/Design & Experience/High-Performance-Human-Factors.md b/Design & Experience/High-Performance-Human-Factors.md new file mode 100644 index 00000000..56eadf78 --- /dev/null +++ b/Design & Experience/High-Performance-Human-Factors.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-0DEE60 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - High-Performance-Human-Factors" +--- + +# [[High-Performance-Human-Factors]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/High-Performance-Human-Factors.md]] +--- diff --git a/Design & Experience/Human-Computer Interaction (HCI).md b/Design & Experience/Human-Computer Interaction (HCI).md new file mode 100644 index 00000000..7ab258ea --- /dev/null +++ b/Design & Experience/Human-Computer Interaction (HCI).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5F4DD2 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Human-Computer Interaction (HCI)" +--- + +# [[Human-Computer Interaction (HCI)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Human-Computer Interaction (HCI).md]] +--- diff --git a/Design & Experience/Human-Computer-Interaction (HCI).md b/Design & Experience/Human-Computer-Interaction (HCI).md new file mode 100644 index 00000000..8f9890df --- /dev/null +++ b/Design & Experience/Human-Computer-Interaction (HCI).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-AFBB70 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Human-Computer-Interaction (HCI)" +--- + +# [[Human-Computer-Interaction (HCI)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Human-Computer-Interaction (HCI).md]] +--- diff --git a/Design & Experience/Human-Machine Interface (HMI) Design.md b/Design & Experience/Human-Machine Interface (HMI) Design.md new file mode 100644 index 00000000..a1b439e4 --- /dev/null +++ b/Design & Experience/Human-Machine Interface (HMI) Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-F753F2 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Human-Machine Interface (HMI) Design" +--- + +# [[Human-Machine Interface (HMI) Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Human-Machine Interface (HMI) Design.md]] +--- diff --git a/Design & Experience/Human-Robot Interaction (HRI).md b/Design & Experience/Human-Robot Interaction (HRI).md new file mode 100644 index 00000000..5ce0173f --- /dev/null +++ b/Design & Experience/Human-Robot Interaction (HRI).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-695BBA +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Human-Robot Interaction (HRI)" +--- + +# [[Human-Robot Interaction (HRI)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Human-Robot Interaction (HRI).md]] +--- diff --git a/Design & Experience/Human-Robot-Interaction.md b/Design & Experience/Human-Robot-Interaction.md new file mode 100644 index 00000000..11867614 --- /dev/null +++ b/Design & Experience/Human-Robot-Interaction.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-419DF4 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Human-Robot-Interaction" +--- + +# [[Human-Robot-Interaction]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Human-Robot-Interaction.md]] +--- diff --git a/Design & Experience/Hypertextuality.md b/Design & Experience/Hypertextuality.md new file mode 100644 index 00000000..9ce325ee --- /dev/null +++ b/Design & Experience/Hypertextuality.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B134AC +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Hypertextuality" +--- + +# [[Hypertextuality]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Hypertextuality.md]] +--- diff --git a/Design & Experience/ISO 9241 표준.md b/Design & Experience/ISO 9241 표준.md new file mode 100644 index 00000000..430238d4 --- /dev/null +++ b/Design & Experience/ISO 9241 표준.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E70ECC +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - ISO 9241 표준" +--- + +# [[ISO 9241 표준]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/ISO 9241 표준.md]] +--- diff --git a/Design & Experience/Immersive Analytics.md b/Design & Experience/Immersive Analytics.md new file mode 100644 index 00000000..b3c27365 --- /dev/null +++ b/Design & Experience/Immersive Analytics.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-4B1137 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Immersive Analytics" +--- + +# [[Immersive Analytics]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Immersive Analytics.md]] +--- diff --git a/Design & Experience/Incremental-Compilation.md b/Design & Experience/Incremental-Compilation.md new file mode 100644 index 00000000..e5cb46df --- /dev/null +++ b/Design & Experience/Incremental-Compilation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-836C53 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Incremental-Compilation" +--- + +# [[Incremental-Compilation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Incremental-Compilation.md]] +--- diff --git a/Design & Experience/Information-Architecture.md b/Design & Experience/Information-Architecture.md new file mode 100644 index 00000000..ee9f1236 --- /dev/null +++ b/Design & Experience/Information-Architecture.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B98E5E +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Information-Architecture" +--- + +# [[Information-Architecture]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Information-Architecture.md]] +--- diff --git a/Design & Experience/Inquiry-Based Learning.md b/Design & Experience/Inquiry-Based Learning.md new file mode 100644 index 00000000..c4ea3492 --- /dev/null +++ b/Design & Experience/Inquiry-Based Learning.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-0A7A61 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Inquiry-Based Learning" +--- + +# [[Inquiry-Based Learning]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Inquiry-Based Learning.md]] +--- diff --git a/Design & Experience/Interface Segregation Principle (ISP).md b/Design & Experience/Interface Segregation Principle (ISP).md new file mode 100644 index 00000000..f9fd6316 --- /dev/null +++ b/Design & Experience/Interface Segregation Principle (ISP).md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-317AB6 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Interface Segregation Principle (ISP)" +--- + +# [[Interface Segregation Principle (ISP)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 인터페이스 분리 원칙(Interface Segregation Principle, ISP)은 클라이언트가 자신이 사용하지 않는 동작이나 액션에 의존하도록 강요받아서는 안 된다는 소프트웨어 설계 원칙입니다 [1, 2]. 이 원칙은 불필요한 기능까지 묶여 있는 방대한 '뚱뚱한(fat)' 인터페이스 대신, 목적이 뚜렷하고 초점이 맞춰진(focused) 인터페이스를 사용할 것을 권장합니다 [2]. 이를 통해 각 클라이언트는 정확히 필요한 기능에만 의존할 수 있으며, 불필요한 코드의 무게를 줄이고 테스트 및 업그레이드를 단순화할 수 있습니다 [3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **초점이 맞춰진 계약(Focused Contracts)**: ISP는 SOLID 원칙의 'I'에 해당하며, 클라이언트가 사용하지 않는 인터페이스에 의존하지 않도록 계약의 범위를 명확히 제한해야 함을 강조합니다 [1, 2]. +- **분리의 신호(Sign to Split)**: 인터페이스에 하나 이상의 '도메인 동사(domain verb)'가 포함되어 있다면(예: `play`, `record`, `stream` 기능을 모두 포함한 `MediaPlayer` 인터페이스), 이는 해당 인터페이스를 분리해야 한다는 강력한 신호입니다 [2, 3]. +- **유연한 조합과 의존성 최소화**: 기존의 방대한 인터페이스를 `Playable`, `Recordable`, `Streamable`과 같이 분리된 단위로 쪼개면, 클라이언트는 필요한 인터페이스만 선택적으로 가져올 수 있습니다 [3]. 이는 불필요한 의존성(dead weight)을 제거하여 향후 시스템 업그레이드와 테스트 과정을 크게 단순화합니다 [3]. +- **결합도 감소와 확장성 확보**: 하나의 인터페이스가 너무 많은 책임을 갖게 되면 시스템이 변경에 취약해집니다 [4]. 인터페이스를 최소 단위로 분리하고 이를 필요한 시점에 조합하여 사용하는 방식은 시스템 간의 결합도를 낮추고, 수정에는 닫혀 있고 확장에는 열려 있는 견고한 아키텍처를 구축하는 핵심 전략이 됩니다 [4]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[SOLID Design Principles]], [[Single Responsibility Principle (SRP)]], [[Facade Pattern]] +- **Projects/Contexts:** [[TypeScript/JavaScript Architecture]], [[Toss Front SDK]] +- **Contradictions/Notes:** 소스 내에 ISP에 반대되는 주장은 없습니다. 추가적인 참고 사항으로, 소스는 인터페이스에 여러 도메인 동사가 존재할 경우 이를 분리하는 기준으로 삼으라고 조언합니다 [3]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Interface Segregation Principle (ISP).md]] +--- diff --git a/Design & Experience/Interface-Extension-vs-Augmentation.md b/Design & Experience/Interface-Extension-vs-Augmentation.md new file mode 100644 index 00000000..bd19cde5 --- /dev/null +++ b/Design & Experience/Interface-Extension-vs-Augmentation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-326071 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Interface-Extension-vs-Augmentation" +--- + +# [[Interface-Extension-vs-Augmentation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Interface-Extension-vs-Augmentation.md]] +--- diff --git a/Design & Experience/Interface-Extension.md b/Design & Experience/Interface-Extension.md new file mode 100644 index 00000000..7559ba4f --- /dev/null +++ b/Design & Experience/Interface-Extension.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B72832 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Interface-Extension" +--- + +# [[Interface-Extension]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Interface-Extension.md]] +--- diff --git a/Design & Experience/Interface-Merging.md b/Design & Experience/Interface-Merging.md new file mode 100644 index 00000000..1e53551f --- /dev/null +++ b/Design & Experience/Interface-Merging.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-223BC6 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Interface-Merging" +--- + +# [[Interface-Merging]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Interface-Merging.md]] +--- diff --git a/Design & Experience/Interface-Segregation-Principle-in-TypeScript.md b/Design & Experience/Interface-Segregation-Principle-in-TypeScript.md new file mode 100644 index 00000000..e34c754e --- /dev/null +++ b/Design & Experience/Interface-Segregation-Principle-in-TypeScript.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-44AA84 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Interface-Segregation-Principle-in-TypeScript" +--- + +# [[Interface-Segregation-Principle-in-TypeScript]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Interface-Segregation-Principle-in-TypeScript.md]] +--- diff --git a/Design & Experience/Interface-Segregation-Principle.md b/Design & Experience/Interface-Segregation-Principle.md new file mode 100644 index 00000000..813b7a85 --- /dev/null +++ b/Design & Experience/Interface-Segregation-Principle.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-92EBE7 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Interface-Segregation-Principle" +--- + +# [[Interface-Segregation-Principle]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Interface-Segregation-Principle.md]] +--- diff --git a/Design & Experience/Interoperability Standards.md b/Design & Experience/Interoperability Standards.md new file mode 100644 index 00000000..14469852 --- /dev/null +++ b/Design & Experience/Interoperability Standards.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-3EE866 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Interoperability Standards" +--- + +# [[Interoperability Standards]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Interoperability Standards.md]] +--- diff --git a/Design & Experience/Intersection-Types-vs-Interface-Extension.md b/Design & Experience/Intersection-Types-vs-Interface-Extension.md new file mode 100644 index 00000000..2cabab52 --- /dev/null +++ b/Design & Experience/Intersection-Types-vs-Interface-Extension.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-94C8CB +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Intersection-Types-vs-Interface-Extension" +--- + +# [[Intersection-Types-vs-Interface-Extension]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Intersection-Types-vs-Interface-Extension.md]] +--- diff --git a/Design & Experience/Inverse-Kinematics.md b/Design & Experience/Inverse-Kinematics.md new file mode 100644 index 00000000..f0b3e550 --- /dev/null +++ b/Design & Experience/Inverse-Kinematics.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-67139B +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Inverse-Kinematics" +--- + +# [[Inverse-Kinematics]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Inverse-Kinematics.md]] +--- diff --git a/Design & Experience/JSON-Schema-Validation.md b/Design & Experience/JSON-Schema-Validation.md new file mode 100644 index 00000000..d5d37219 --- /dev/null +++ b/Design & Experience/JSON-Schema-Validation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6A507C +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - JSON-Schema-Validation" +--- + +# [[JSON-Schema-Validation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/JSON-Schema-Validation.md]] +--- diff --git a/Design & Experience/K-12-EdTech.md b/Design & Experience/K-12-EdTech.md new file mode 100644 index 00000000..31527647 --- /dev/null +++ b/Design & Experience/K-12-EdTech.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5653C7 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - K-12-EdTech" +--- + +# [[K-12-EdTech]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/K-12-EdTech.md]] +--- diff --git a/Design & Experience/Kinetics.md b/Design & Experience/Kinetics.md new file mode 100644 index 00000000..94ecba11 --- /dev/null +++ b/Design & Experience/Kinetics.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-11AAD0 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Kinetics" +--- + +# [[Kinetics]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Kinetics.md]] +--- diff --git a/Design & Experience/Knowledge-Graph-Construction.md b/Design & Experience/Knowledge-Graph-Construction.md new file mode 100644 index 00000000..4398c9ea --- /dev/null +++ b/Design & Experience/Knowledge-Graph-Construction.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-84AB19 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Knowledge-Graph-Construction" +--- + +# [[Knowledge-Graph-Construction]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Knowledge-Graph-Construction.md]] +--- diff --git a/Design & Experience/LCS (League of Legends Championship Series).md b/Design & Experience/LCS (League of Legends Championship Series).md new file mode 100644 index 00000000..ba3c96f8 --- /dev/null +++ b/Design & Experience/LCS (League of Legends Championship Series).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-FC3F77 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - LCS (League of Legends Championship Series)" +--- + +# [[LCS (League of Legends Championship Series)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/LCS (League of Legends Championship Series).md]] +--- diff --git a/Design & Experience/Lean-UX.md b/Design & Experience/Lean-UX.md new file mode 100644 index 00000000..7c2198ad --- /dev/null +++ b/Design & Experience/Lean-UX.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D3F181 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Lean-UX" +--- + +# [[Lean-UX]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Lean-UX.md]] +--- diff --git a/Design & Experience/Level Design Theory.md b/Design & Experience/Level Design Theory.md new file mode 100644 index 00000000..c8bdb402 --- /dev/null +++ b/Design & Experience/Level Design Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9BB940 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Level Design Theory" +--- + +# [[Level Design Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Level Design Theory.md]] +--- diff --git a/Design & Experience/Level-Design-Theory.md b/Design & Experience/Level-Design-Theory.md new file mode 100644 index 00000000..dcc354d8 --- /dev/null +++ b/Design & Experience/Level-Design-Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5EAC4F +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Level-Design-Theory" +--- + +# [[Level-Design-Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Level-Design-Theory.md]] +--- diff --git a/Design & Experience/Linguistics.md b/Design & Experience/Linguistics.md new file mode 100644 index 00000000..60f82eb3 --- /dev/null +++ b/Design & Experience/Linguistics.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-0C81F3 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Linguistics" +--- + +# [[Linguistics]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Linguistics.md]] +--- diff --git a/Design & Experience/Linked-Data-Principles.md b/Design & Experience/Linked-Data-Principles.md new file mode 100644 index 00000000..320e5d38 --- /dev/null +++ b/Design & Experience/Linked-Data-Principles.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-878BEE +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Linked-Data-Principles" +--- + +# [[Linked-Data-Principles]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Linked-Data-Principles.md]] +--- diff --git a/Design & Experience/Liskov-Substitution-Principle.md b/Design & Experience/Liskov-Substitution-Principle.md new file mode 100644 index 00000000..97279c2a --- /dev/null +++ b/Design & Experience/Liskov-Substitution-Principle.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A4E734 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Liskov-Substitution-Principle" +--- + +# [[Liskov-Substitution-Principle]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Liskov-Substitution-Principle.md]] +--- diff --git a/Design & Experience/Ludo-Narrative-Dissonance.md b/Design & Experience/Ludo-Narrative-Dissonance.md new file mode 100644 index 00000000..7473ac48 --- /dev/null +++ b/Design & Experience/Ludo-Narrative-Dissonance.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D2276C +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Ludo-Narrative-Dissonance" +--- + +# [[Ludo-Narrative-Dissonance]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Ludo-Narrative-Dissonance.md]] +--- diff --git a/Design & Experience/Ludo-narrative Dissonance.md b/Design & Experience/Ludo-narrative Dissonance.md new file mode 100644 index 00000000..12079d3a --- /dev/null +++ b/Design & Experience/Ludo-narrative Dissonance.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-2B9D2D +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Ludo-narrative Dissonance" +--- + +# [[Ludo-narrative Dissonance]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Ludo-narrative Dissonance.md]] +--- diff --git a/Design & Experience/Ludonarrative-Dissonance.md b/Design & Experience/Ludonarrative-Dissonance.md new file mode 100644 index 00000000..eb74a0dc --- /dev/null +++ b/Design & Experience/Ludonarrative-Dissonance.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-488A12 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Ludonarrative-Dissonance" +--- + +# [[Ludonarrative-Dissonance]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Ludonarrative-Dissonance.md]] +--- diff --git a/Design & Experience/Mapped-Types.md b/Design & Experience/Mapped-Types.md new file mode 100644 index 00000000..5b13e7a7 --- /dev/null +++ b/Design & Experience/Mapped-Types.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A475F9 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Mapped-Types" +--- + +# [[Mapped-Types]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Mapped-Types.md]] +--- diff --git a/Design & Experience/Material Design System.md b/Design & Experience/Material Design System.md new file mode 100644 index 00000000..2f4649e2 --- /dev/null +++ b/Design & Experience/Material Design System.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-ABFF7B +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Material Design System" +--- + +# [[Material Design System]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Material Design System.md]] +--- diff --git a/Design & Experience/Material Design.md b/Design & Experience/Material Design.md new file mode 100644 index 00000000..7760b59c --- /dev/null +++ b/Design & Experience/Material Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-2349C5 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Material Design" +--- + +# [[Material Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Material Design.md]] +--- diff --git a/Design & Experience/Material-Design.md b/Design & Experience/Material-Design.md new file mode 100644 index 00000000..e304dbed --- /dev/null +++ b/Design & Experience/Material-Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-03A898 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Material-Design" +--- + +# [[Material-Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Material-Design.md]] +--- diff --git a/Design & Experience/Mechanism Design in Auctions.md b/Design & Experience/Mechanism Design in Auctions.md new file mode 100644 index 00000000..e0294b13 --- /dev/null +++ b/Design & Experience/Mechanism Design in Auctions.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-03623E +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Mechanism Design in Auctions" +--- + +# [[Mechanism Design in Auctions]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Mechanism Design in Auctions.md]] +--- diff --git a/Design & Experience/Mechanism Design.md b/Design & Experience/Mechanism Design.md new file mode 100644 index 00000000..601fed02 --- /dev/null +++ b/Design & Experience/Mechanism Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-3A7080 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Mechanism Design" +--- + +# [[Mechanism Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Mechanism Design.md]] +--- diff --git a/Design & Experience/Mechanism-Design.md b/Design & Experience/Mechanism-Design.md new file mode 100644 index 00000000..b5f600d5 --- /dev/null +++ b/Design & Experience/Mechanism-Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-F9F796 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Mechanism-Design" +--- + +# [[Mechanism-Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Mechanism-Design.md]] +--- diff --git a/Design & Experience/Micro-Frontend-Architecture.md b/Design & Experience/Micro-Frontend-Architecture.md new file mode 100644 index 00000000..592ba0af --- /dev/null +++ b/Design & Experience/Micro-Frontend-Architecture.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-070141 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Micro-Frontend-Architecture" +--- + +# [[Micro-Frontend-Architecture]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Micro-Frontend-Architecture.md]] +--- diff --git a/Design & Experience/Mobile-App-Onboarding.md b/Design & Experience/Mobile-App-Onboarding.md new file mode 100644 index 00000000..8cab5c88 --- /dev/null +++ b/Design & Experience/Mobile-App-Onboarding.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D7506D +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Mobile-App-Onboarding" +--- + +# [[Mobile-App-Onboarding]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Mobile-App-Onboarding.md]] +--- diff --git a/Design & Experience/Module Resolution Algorithm.md b/Design & Experience/Module Resolution Algorithm.md new file mode 100644 index 00000000..35959b6f --- /dev/null +++ b/Design & Experience/Module Resolution Algorithm.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-DE6CBC +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Module Resolution Algorithm" +--- + +# [[Module Resolution Algorithm]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Module Resolution Algorithm.md]] +--- diff --git a/Design & Experience/Module-Augmentation-Patterns.md b/Design & Experience/Module-Augmentation-Patterns.md new file mode 100644 index 00000000..db93c019 --- /dev/null +++ b/Design & Experience/Module-Augmentation-Patterns.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D54DFE +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Module-Augmentation-Patterns" +--- + +# [[Module-Augmentation-Patterns]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Module-Augmentation-Patterns.md]] +--- diff --git a/Design & Experience/Module-Resolution-Strategy.md b/Design & Experience/Module-Resolution-Strategy.md new file mode 100644 index 00000000..d2ae2f13 --- /dev/null +++ b/Design & Experience/Module-Resolution-Strategy.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-029B7A +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Module-Resolution-Strategy" +--- + +# [[Module-Resolution-Strategy]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Module-Resolution-Strategy.md]] +--- diff --git a/Design & Experience/Monorepo-Architecture-Design.md b/Design & Experience/Monorepo-Architecture-Design.md new file mode 100644 index 00000000..5ebe3d0d --- /dev/null +++ b/Design & Experience/Monorepo-Architecture-Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-4265B0 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Monorepo-Architecture-Design" +--- + +# [[Monorepo-Architecture-Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Monorepo-Architecture-Design.md]] +--- diff --git a/Design & Experience/Monorepo-Architecture.md b/Design & Experience/Monorepo-Architecture.md new file mode 100644 index 00000000..07bed307 --- /dev/null +++ b/Design & Experience/Monorepo-Architecture.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-69C266 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Monorepo-Architecture" +--- + +# [[Monorepo-Architecture]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Monorepo-Architecture.md]] +--- diff --git a/Design & Experience/Monorepo-Dependency-Graph-Analysis.md b/Design & Experience/Monorepo-Dependency-Graph-Analysis.md new file mode 100644 index 00000000..b4fec12d --- /dev/null +++ b/Design & Experience/Monorepo-Dependency-Graph-Analysis.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-99AA42 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Monorepo-Dependency-Graph-Analysis" +--- + +# [[Monorepo-Dependency-Graph-Analysis]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Monorepo-Dependency-Graph-Analysis.md]] +--- diff --git a/Design & Experience/Monte Carlo Tree Search (MCTS).md b/Design & Experience/Monte Carlo Tree Search (MCTS).md new file mode 100644 index 00000000..99145087 --- /dev/null +++ b/Design & Experience/Monte Carlo Tree Search (MCTS).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-2E53F8 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Monte Carlo Tree Search (MCTS)" +--- + +# [[Monte Carlo Tree Search (MCTS)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Monte Carlo Tree Search (MCTS).md]] +--- diff --git a/Design & Experience/Motor-Learning-Theory.md b/Design & Experience/Motor-Learning-Theory.md new file mode 100644 index 00000000..06763722 --- /dev/null +++ b/Design & Experience/Motor-Learning-Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D69E40 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Motor-Learning-Theory" +--- + +# [[Motor-Learning-Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Motor-Learning-Theory.md]] +--- diff --git a/Design & Experience/Motor-Learning.md b/Design & Experience/Motor-Learning.md new file mode 100644 index 00000000..db3f0111 --- /dev/null +++ b/Design & Experience/Motor-Learning.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-F3DEAC +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Motor-Learning" +--- + +# [[Motor-Learning]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Motor-Learning.md]] +--- diff --git a/Design & Experience/Narrative Design.md b/Design & Experience/Narrative Design.md new file mode 100644 index 00000000..5d493154 --- /dev/null +++ b/Design & Experience/Narrative Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-680D4B +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Narrative Design" +--- + +# [[Narrative Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Narrative Design.md]] +--- diff --git a/Design & Experience/Narrative Intelligence.md b/Design & Experience/Narrative Intelligence.md new file mode 100644 index 00000000..96d07bd2 --- /dev/null +++ b/Design & Experience/Narrative Intelligence.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-89EE25 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Narrative Intelligence" +--- + +# [[Narrative Intelligence]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Narrative Intelligence.md]] +--- diff --git a/Design & Experience/Nash Equilibrium.md b/Design & Experience/Nash Equilibrium.md new file mode 100644 index 00000000..d1cb5318 --- /dev/null +++ b/Design & Experience/Nash Equilibrium.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-762E86 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Nash Equilibrium" +--- + +# [[Nash Equilibrium]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Nash Equilibrium.md]] +--- diff --git a/Design & Experience/Nash-Equilibrium.md b/Design & Experience/Nash-Equilibrium.md new file mode 100644 index 00000000..c311dae1 --- /dev/null +++ b/Design & Experience/Nash-Equilibrium.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-453B61 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Nash-Equilibrium" +--- + +# [[Nash-Equilibrium]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Nash-Equilibrium.md]] +--- diff --git a/Design & Experience/Ninja-Build-System.md b/Design & Experience/Ninja-Build-System.md new file mode 100644 index 00000000..43ec8036 --- /dev/null +++ b/Design & Experience/Ninja-Build-System.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-18A8ED +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Ninja-Build-System" +--- + +# [[Ninja-Build-System]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Ninja-Build-System.md]] +--- diff --git a/Design & Experience/Nodejs-Backend-Architecture.md b/Design & Experience/Nodejs-Backend-Architecture.md new file mode 100644 index 00000000..61e860e9 --- /dev/null +++ b/Design & Experience/Nodejs-Backend-Architecture.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A782C0 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Nodejs-Backend-Architecture" +--- + +# [[Nodejs-Backend-Architecture]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Node.js-Backend-Architecture.md]] +--- diff --git a/Design & Experience/Nominal Typing.md b/Design & Experience/Nominal Typing.md new file mode 100644 index 00000000..dd9a9aca --- /dev/null +++ b/Design & Experience/Nominal Typing.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-29D050 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Nominal Typing" +--- + +# [[Nominal Typing]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Nominal Typing.md]] +--- diff --git a/Design & Experience/Nominal-Typing-via-Branded-Types.md b/Design & Experience/Nominal-Typing-via-Branded-Types.md new file mode 100644 index 00000000..e8e832f6 --- /dev/null +++ b/Design & Experience/Nominal-Typing-via-Branded-Types.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-695155 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Nominal-Typing-via-Branded-Types" +--- + +# [[Nominal-Typing-via-Branded-Types]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Nominal-Typing-via-Branded-Types.md]] +--- diff --git a/Design & Experience/Nominal-Typing-vs-Structural-Typing.md b/Design & Experience/Nominal-Typing-vs-Structural-Typing.md new file mode 100644 index 00000000..b857e52c --- /dev/null +++ b/Design & Experience/Nominal-Typing-vs-Structural-Typing.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-1B9D2D +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Nominal-Typing-vs-Structural-Typing" +--- + +# [[Nominal-Typing-vs-Structural-Typing]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Nominal-Typing-vs-Structural-Typing.md]] +--- diff --git a/Design & Experience/Nominal-vs-Structural-Typing.md b/Design & Experience/Nominal-vs-Structural-Typing.md new file mode 100644 index 00000000..59c16485 --- /dev/null +++ b/Design & Experience/Nominal-vs-Structural-Typing.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-F75BC3 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Nominal-vs-Structural-Typing" +--- + +# [[Nominal-vs-Structural-Typing]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Nominal-vs-Structural-Typing.md]] +--- diff --git a/Design & Experience/Non-Diegetic UI.md b/Design & Experience/Non-Diegetic UI.md new file mode 100644 index 00000000..e8bf6f0b --- /dev/null +++ b/Design & Experience/Non-Diegetic UI.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-0D2F57 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Non-Diegetic UI" +--- + +# [[Non-Diegetic UI]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Non-Diegetic UI.md]] +--- diff --git a/Design & Experience/Nx-Build-System.md b/Design & Experience/Nx-Build-System.md new file mode 100644 index 00000000..404e8e51 --- /dev/null +++ b/Design & Experience/Nx-Build-System.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D6169C +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Nx-Build-System" +--- + +# [[Nx-Build-System]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Nx-Build-System.md]] +--- diff --git a/Design & Experience/Object-Literal-Assignment.md b/Design & Experience/Object-Literal-Assignment.md new file mode 100644 index 00000000..a7546121 --- /dev/null +++ b/Design & Experience/Object-Literal-Assignment.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-8E1BDB +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Object-Literal-Assignment" +--- + +# [[Object-Literal-Assignment]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Object-Literal-Assignment.md]] +--- diff --git a/Design & Experience/Object-Oriented-Interface-Design.md b/Design & Experience/Object-Oriented-Interface-Design.md new file mode 100644 index 00000000..5e7a9b3d --- /dev/null +++ b/Design & Experience/Object-Oriented-Interface-Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-8CEF52 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Object-Oriented-Interface-Design" +--- + +# [[Object-Oriented-Interface-Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Object-Oriented-Interface-Design.md]] +--- diff --git a/Design & Experience/Occupational-Ergonomics.md b/Design & Experience/Occupational-Ergonomics.md new file mode 100644 index 00000000..79c651a8 --- /dev/null +++ b/Design & Experience/Occupational-Ergonomics.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-92FABA +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Occupational-Ergonomics" +--- + +# [[Occupational-Ergonomics]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Occupational-Ergonomics.md]] +--- diff --git a/Design & Experience/OpenAPI-Specification.md b/Design & Experience/OpenAPI-Specification.md new file mode 100644 index 00000000..6eb45bbd --- /dev/null +++ b/Design & Experience/OpenAPI-Specification.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B4497C +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - OpenAPI-Specification" +--- + +# [[OpenAPI-Specification]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/OpenAPI-Specification.md]] +--- diff --git a/Design & Experience/Optimal-Experience-Research.md b/Design & Experience/Optimal-Experience-Research.md new file mode 100644 index 00000000..3fa7eecc --- /dev/null +++ b/Design & Experience/Optimal-Experience-Research.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-BDC058 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Optimal-Experience-Research" +--- + +# [[Optimal-Experience-Research]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Optimal-Experience-Research.md]] +--- diff --git a/Design & Experience/Organizational Learning Culture.md b/Design & Experience/Organizational Learning Culture.md new file mode 100644 index 00000000..9186976e --- /dev/null +++ b/Design & Experience/Organizational Learning Culture.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-97FF1D +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Organizational Learning Culture" +--- + +# [[Organizational Learning Culture]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Organizational Learning Culture.md]] +--- diff --git a/Design & Experience/Organizational-Innovation-Management.md b/Design & Experience/Organizational-Innovation-Management.md new file mode 100644 index 00000000..4f1280b5 --- /dev/null +++ b/Design & Experience/Organizational-Innovation-Management.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-27E3D1 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Organizational-Innovation-Management" +--- + +# [[Organizational-Innovation-Management]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Organizational-Innovation-Management.md]] +--- diff --git a/Design & Experience/Orthopedic-Implant-Validation.md b/Design & Experience/Orthopedic-Implant-Validation.md new file mode 100644 index 00000000..349d8d72 --- /dev/null +++ b/Design & Experience/Orthopedic-Implant-Validation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9F5A29 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Orthopedic-Implant-Validation" +--- + +# [[Orthopedic-Implant-Validation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Orthopedic-Implant-Validation.md]] +--- diff --git a/Design & Experience/Player Agency.md b/Design & Experience/Player Agency.md new file mode 100644 index 00000000..380ee101 --- /dev/null +++ b/Design & Experience/Player Agency.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-83E12E +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Player Agency" +--- + +# [[Player Agency]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Player Agency.md]] +--- diff --git a/Design & Experience/Player-Autonomy.md b/Design & Experience/Player-Autonomy.md new file mode 100644 index 00000000..34cff024 --- /dev/null +++ b/Design & Experience/Player-Autonomy.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-85AECB +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Player-Autonomy" +--- + +# [[Player-Autonomy]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Player-Autonomy.md]] +--- diff --git a/Design & Experience/Political-Philosophy-in-Games.md b/Design & Experience/Political-Philosophy-in-Games.md new file mode 100644 index 00000000..5ededdfb --- /dev/null +++ b/Design & Experience/Political-Philosophy-in-Games.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9F478E +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Political-Philosophy-in-Games" +--- + +# [[Political-Philosophy-in-Games]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Political-Philosophy-in-Games.md]] +--- diff --git a/Design & Experience/Product-Analytics-Infrastructure.md b/Design & Experience/Product-Analytics-Infrastructure.md new file mode 100644 index 00000000..31eb7711 --- /dev/null +++ b/Design & Experience/Product-Analytics-Infrastructure.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B3941E +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Product-Analytics-Infrastructure" +--- + +# [[Product-Analytics-Infrastructure]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Product-Analytics-Infrastructure.md]] +--- diff --git a/Design & Experience/Protocol-Buffers-TypeScript.md b/Design & Experience/Protocol-Buffers-TypeScript.md new file mode 100644 index 00000000..58fb9b91 --- /dev/null +++ b/Design & Experience/Protocol-Buffers-TypeScript.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-1F2F42 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Protocol-Buffers-TypeScript" +--- + +# [[Protocol-Buffers-TypeScript]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Protocol-Buffers-TypeScript.md]] +--- diff --git a/Design & Experience/Public Policy Design.md b/Design & Experience/Public Policy Design.md new file mode 100644 index 00000000..07f74a09 --- /dev/null +++ b/Design & Experience/Public Policy Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-444363 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Public Policy Design" +--- + +# [[Public Policy Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Public Policy Design.md]] +--- diff --git a/Design & Experience/Quantum-Computing-Simulations.md b/Design & Experience/Quantum-Computing-Simulations.md new file mode 100644 index 00000000..19440c55 --- /dev/null +++ b/Design & Experience/Quantum-Computing-Simulations.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5FB7B9 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Quantum-Computing-Simulations" +--- + +# [[Quantum-Computing-Simulations]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Quantum-Computing-Simulations.md]] +--- diff --git a/Design & Experience/Rapier 물리 엔진 스냅샷(Snapshot) 기반 상태 복원.md b/Design & Experience/Rapier 물리 엔진 스냅샷(Snapshot) 기반 상태 복원.md new file mode 100644 index 00000000..b5fdfad3 --- /dev/null +++ b/Design & Experience/Rapier 물리 엔진 스냅샷(Snapshot) 기반 상태 복원.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D58438 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Rapier 물리 엔진 스냅샷(Snapshot) 기반 상태 복원" +--- + +# [[Rapier 물리 엔진 스냅샷(Snapshot) 기반 상태 복원]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Rapier 물리 엔진 스냅샷(Snapshot) 기반 상태 복원.md]] +--- diff --git a/Design & Experience/React Native 게임 최적화 (JSI Hermes).md b/Design & Experience/React Native 게임 최적화 (JSI Hermes).md new file mode 100644 index 00000000..b41daadd --- /dev/null +++ b/Design & Experience/React Native 게임 최적화 (JSI Hermes).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-23E022 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - React Native 게임 최적화 (JSI Hermes)" +--- + +# [[React Native 게임 최적화 (JSI Hermes)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/React Native 게임 최적화 (JSI, Hermes).md]] +--- diff --git a/Design & Experience/React Performance Optimization.md b/Design & Experience/React Performance Optimization.md new file mode 100644 index 00000000..7f76fce0 --- /dev/null +++ b/Design & Experience/React Performance Optimization.md @@ -0,0 +1,41 @@ +--- +id: P-REINFORCE-AUTO-B068E2 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - React Performance Optimization" +--- + +# [[React Performance Optimization]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> React 애플리케이션에서 불필요한 렌더링을 줄이고, 자바스크립트 번들 크기를 최소화하며, 상태 관리 및 렌더링 파이프라인을 효율적으로 구성하여 빠르고 매끄러운 사용자 경험(UX)과 우수한 Core Web Vitals 지표를 달성하는 핵심 기술 및 아키텍처 전략입니다. + +## 📖 구조화된 지식 (Synthesized Content) +**1. 렌더링 파이프라인과 재조정(Reconciliation) 최적화** React는 상태(State), 프롭스(Props), 컨텍스트(Context) 변경 시 혹은 부모 컴포넌트가 렌더링될 때 재렌더링을 수행합니다. 불필요한 하위 컴포넌트의 렌더링을 막기 위해 `React.memo`, `useMemo`, `useCallback`을 사용하여 참조 안정성(Reference Stability)을 유지합니다. 최신 React 19의 'React Compiler'를 도입하면 대부분의 메모이제이션이 빌드 타임에 자동으로 처리되어 수동 최적화 보일러플레이트 코드를 획기적으로 줄일 수 있습니다. + +**2. 코드 스플리팅(Code Splitting)과 지연 로딩(Lazy Loading)** 하나의 거대한 자바스크립트 번들은 초기 로딩 속도를 크게 저하시킵니다. `React.lazy`와 `Suspense`를 활용하여 라우트(Route) 기반 또는 무거운 컴포넌트(예: 차트, 비디오 에디터) 단위로 번들을 분할하면 초기 다운로드 용량을 줄여 앱의 반응 속도(TTI, Time to Interactive)를 높일 수 있습니다. + +**3. 효율적인 상태 관리 (State Management)** 상태는 부모로 과도하게 끌어올리지(State Lifting) 않고 최대한 사용하는 곳과 가까운 위치(Local)에 두어야 합니다. React 기본 Context API는 내부의 어떤 값이라도 변경되면 모든 소비자를 리렌더링시키므로 병목을 유발하기 쉽습니다. 따라서 고빈도로 업데이트되는 상태의 경우 컨텍스트를 도메인별로 잘게 쪼개거나, Zustand, Jotai, Valtio와 같이 선택적 구독(Selective Subscription)과 미세 조정(Fine-grained) 업데이트를 지원하는 고성능 전역 상태 관리 라이브러리를 도입하는 것이 유리합니다. + +**4. 대규모 리스트 가상화 (Virtualization / Windowing)** 수천 개의 항목을 한 번에 렌더링하면 DOM 노드가 폭증하여 브라우저가 멈출 수 있습니다. `react-window`나 `react-virtualized` 같은 라이브러리를 사용하여 현재 화면(Viewport)에 보이는 수십 개의 항목만 렌더링하고 나머지는 스크롤 시 동적으로 마운트하는 '가상화' 기법을 적용하면 렌더링 시간을 수 밀리초(ms) 단위로 줄일 수 있습니다. 이때 안정적이고 고유한 `key` 속성을 부여하는 것도 매우 중요합니다. + +**5. 동시성 기능(Concurrent Features)과 비동기 처리** React 18 이상에서 제공하는 `useTransition`과 `useDeferredValue` 훅을 사용하면 무거운 UI 업데이트를 비긴급(Non-urgent) 작업으로 미루고, 사용자의 타이핑이나 클릭 같은 긴급한 인터랙션을 끊김 없이 즉각적으로 처리할 수 있습니다. 더 나아가 이미지 처리나 물리 연산 등 CPU를 많이 소모하는 작업은 Web Worker(또는 `useWorker`)로 오프로딩하여 메인 스레드의 블로킹을 방지합니다. + +**6. React Server Components (RSC) 활용** Next.js와 같은 프레임워크 환경에서는 React Server Components를 적극 활용합니다. 인터랙션이 필요 없는 정적 UI는 서버에서 렌더링을 끝마친 채로 전송하여 클라이언트 측 자바스크립트 번들 사이즈를 획기적으로 줄이고 초기 페인팅 속도를 비약적으로 향상시킵니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[React 19 Compiler]], [[재조정 (Reconciliation)]], [[상태 관리 최적화 (Zustand, Jotai, Valtio)]], [[Code Splitting & Lazy Loading]], [[React Server Components (RSC)]] +- **Projects/Contexts:** [[대규모 E-commerce 및 대시보드 애플리케이션 구축]], [[고성능 멀티스레드 React 앱 아키텍처]], [[Next.js 기반 App Router 마이그레이션]] +- **Contradictions/Notes:** 많은 개발자들이 컴포넌트가 느려지면 습관적으로 `useMemo`나 `React.memo`를 추가(Premature Memoization)하지만, 메모이제이션 자체에도 얕은 비교(Shallow Compare)라는 오버헤드가 발생합니다. 렌더링 자체가 빠르고 프롭스 변경이 빈번한 단순 컴포넌트에 이를 남용하면 오히려 메모리와 연산 자원만 낭비하므로 반드시 React DevTools Profiler로 측정한 후 적용해야 합니다. 또한 React 19 컴파일러가 아무리 자동화를 해주어도, 무분별한 상태 구조 등 근본적인 아키텍처 설계 결함을 고쳐주지는 않습니다. + +--- + +_Last updated: 2026-04-14_ +- Raw Source: [[00_Raw/2026-04-20/React Performance Optimization.md]] +--- diff --git a/Design & Experience/React 상태 관리 (React State Management).md b/Design & Experience/React 상태 관리 (React State Management).md new file mode 100644 index 00000000..102ec073 --- /dev/null +++ b/Design & Experience/React 상태 관리 (React State Management).md @@ -0,0 +1,39 @@ +--- +id: P-REINFORCE-AUTO-3FAE48 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - React 상태 관리 (React State Management)" +--- + +# [[React 상태 관리 (React State Management)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> React 상태 관리(React State Management)는 사용자 입력, API 응답, UI 설정 등 애플리케이션 내에서 시간에 따라 변화하는 데이터를 추적하고 유지하는 과정입니다 [1]. 타입스크립트 환경의 React에서는 구분된 유니언(Discriminated Unions)과 불변성(Immutability) 패턴을 활용하여 유효하지 않은 상태를 원천적으로 차단하는 것에 중점을 둡니다 [2-4]. 전반적인 React 자체의 상태 관리 메커니즘이나 라이브러리 생태계에 대해서는 소스에 관련 정보가 부족합니다. + +## 📖 구조화된 지식 (Synthesized Content) +소스에 관련 정보가 부족합니다. (제공된 소스는 React의 전반적인 상태 관리 생태계보다는 TypeScript를 활용한 상태 보호 및 타입 패턴에 내용이 집중되어 있습니다. 확인 가능한 핵심 정보는 다음과 같습니다.) + +- **상태 관리의 중요성과 위험성**: + 상태(State)는 여러 위치에서 명확한 패턴 없이 수정될 경우 동작 예측이 불가능해지고 디버깅이 매우 어려워집니다 [5]. 또한, 불필요한 리렌더링이나 메모리 누수와 같은 심각한 성능 문제를 유발할 수 있으므로 철저한 관리가 필요합니다 [5]. +- **구분된 유니언(Discriminated Unions)의 활용**: + React 상태 관리 방식을 혁신적으로 바꾸는 강력한 타입스크립트 패턴은 바로 '구분된 유니언'입니다 [2]. 이 패턴은 호환되지 않는 잘못된 상태(Invalid states)가 조합되는 것을 아예 불가능하게 만듭니다 [3]. 특히, Redux 스타일의 리듀서(Reducer) 로직, 라우터(Router) 상태 관리, 그리고 비동기 데이터 패칭(로딩, 성공, 실패 등)의 상태 머신(State Machine)을 모델링할 때 매우 효과적입니다 [6, 7]. +- **불변성(Immutability)의 강제**: + 안전한 상태 관리 및 리듀서 구현을 위해 객체의 데이터 변경(Mutation)을 방지해야 합니다 [8]. 이를 위해 `readonly` 수식어나 `Readonly`, `DeepReadonly` 유틸리티 타입을 적용하여 상태 데이터가 초기화된 후 의도치 않게 조작되는 것을 컴파일 타임에 원천 차단할 수 있습니다 [4, 8, 9]. +- **주요 연관 패턴**: + `useState` 및 `useEffect`를 활용한 기본적인 데이터 패칭 프로세스, 낙관적 업데이트(Optimistic Updates) 처리, 그리고 Context API를 사용할 때의 엄격한 타입 지정(Context 및 Selector 타이핑) 등이 React 상태 관리의 주요 구성 요소로 활용됩니다 [10, 11]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Discriminated Unions]], [[Immutability]], [[State Machine Pattern]] +- **Projects/Contexts:** [[Redux-style Reducers]], [[Context API]] +- **Contradictions/Notes:** 소스 문서는 React 프레임워크 자체의 상태 관리 동작 원리(예: Virtual DOM과의 관계, 훅의 내부 원리 등)를 깊이 있게 다루기보다는, TypeScript의 타입 시스템(구분된 유니언, 불변성 등)을 React 상태 관리에 어떻게 접목하여 안정성을 높이는지에 초점이 맞추어져 있습니다. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/React 상태 관리 (React State Management).md]] +--- diff --git a/Design & Experience/React 상태 관리 및 API 응답 처리.md b/Design & Experience/React 상태 관리 및 API 응답 처리.md new file mode 100644 index 00000000..f5143aec --- /dev/null +++ b/Design & Experience/React 상태 관리 및 API 응답 처리.md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-3E04B1 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - React 상태 관리 및 API 응답 처리" +--- + +# [[React 상태 관리 및 API 응답 처리]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> React 애플리케이션에서 상태 관리 및 API 응답 처리를 다룰 때, TypeScript의 식별 가능한 유니온(Discriminated Unions) 패턴을 활용하면 매우 효과적입니다 [1, 2]. 이 패턴은 상태의 유효하지 않은 조합을 원천적으로 불가능하게 만들고 컴파일러를 통해 안전한 타입 좁히기를 제공합니다 [3, 4]. 결과적으로 비동기 로딩, 성공, 에러 등의 API 응답 상태와 복잡한 UI 상태를 철저하게 제어하고 예측 가능하게 만들어 줍니다 [2, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +- **식별 가능한 유니온(Discriminated Unions) 도입:** React 상태 관리에 대한 사고방식을 변화시키는 가장 강력한 TypeScript 패턴 중 하나입니다 [1]. 식별 가능한 유니온(또는 태그된 유니온)을 사용하면 여러 데이터 형태 중 어떤 형태를 다루고 있는지 구별할 수 있는 공통 속성(판별자)을 통해 데이터를 안전하게 모델링할 수 있습니다 [1, 6]. +- **API 응답 및 비동기 작업 처리:** API 응답을 모델링하는 데 있어 식별 가능한 유니온은 탁월한 성능을 발휘합니다 [2]. 데이터를 불러오는(data fetching) React 컴포넌트를 설계할 때, 상태 머신 패턴을 결합하여 `FETCH_START`, `FETCH_SUCCESS`, `FETCH_FAILURE` 등과 같은 상태 전환을 명확하게 구분하고 관리할 수 있습니다 [2, 4]. +- **유효하지 않은 상태 원천 차단 (Making Invalid States Impossible):** 이 패턴의 가장 큰 힘은 잘못된 상태 자체를 코드상에 표현할 수 없도록 만든다는 점입니다 [4]. 판별자를 통해 TypeScript가 자동으로 타입을 좁혀주기 때문에, 로딩 상태이면서 동시에 성공 데이터가 존재하거나 에러와 데이터가 공존하는 등의 모순된 조합을 방지해 수많은 버그를 예방합니다 [3, 4, 7]. +- **리듀서 및 폼(Form) 상태 관리:** 식별 가능한 유니온은 Redux 스타일의 액션과 리듀서 구조에서 특히 빛을 발합니다 [5]. 또한, 유효성 검사(validating), 유효성 에러(validation-error), 제출 중(submitting), 성공(success), 에러(error) 등의 태그된 상태 구분이 필수적인 복잡한 폼 워크플로우를 처리할 때 매우 유용합니다 [4, 5]. +- **철저한 검사 (Exhaustiveness Checking):** switch 문 등과 결합하여 API 응답이나 상태를 처리할 때, TypeScript는 가능한 모든 케이스가 처리되었는지 컴파일 타임에 철저하게 보장합니다 [3, 7, 8]. 만약 새로운 상태 변형(variant)을 추가하고 핸들러를 업데이트하지 않으면 컴파일 에러를 발생시켜 실수를 방지합니다 [8]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Discriminated Unions]], [[State Machine Pattern]], [[TypeScript]] +- **Projects/Contexts:** [[비동기 작업 패턴(Async Operations Pattern)]], [[Redux 스타일 리듀서(Redux-style reducers)]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. (React 상태 관리 및 API 응답 처리와 관련하여 소스 간의 상충되는 주장이 포함되어 있지 않습니다.) + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/React 상태 관리 및 API 응답 처리.md]] +--- diff --git a/Design & Experience/React 컴포넌트 Props 검증.md b/Design & Experience/React 컴포넌트 Props 검증.md new file mode 100644 index 00000000..b5973ce4 --- /dev/null +++ b/Design & Experience/React 컴포넌트 Props 검증.md @@ -0,0 +1,35 @@ +--- +id: P-REINFORCE-AUTO-F45907 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - React 컴포넌트 Props 검증" +--- + +# [[React 컴포넌트 Props 검증]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> React 컴포넌트 Props 검증은 TypeScript를 활용하여 컴포넌트에 전달되는 속성(Props)의 타입 안전성을 보장하고, 유효하지 않은 상태 표현을 원천적으로 차단하는 과정입니다 [1, 2]. 컴파일 타임에는 식별 가능한 유니온(Discriminated Unions)과 초과 속성 검사 등의 기법으로 잘못된 Props 조합을 방지하며, 런타임에는 외부 데이터에 대한 추가적인 유효성 검사를 수행하여 안정성을 확보합니다 [3-5]. + +## 📖 구조화된 지식 (Synthesized Content) +- **기본 타입 지정 (Type vs Interface)**: React 컴포넌트의 기본적인 Props를 정의할 때 `type`이나 `interface` 중 어느 것을 사용할지는 성능에 큰 차이가 없으며 상황과 선호에 따라 무방하게 사용될 수 있습니다 [6]. +- **식별 가능한 유니온(Discriminated Unions)의 활용**: 텍스트 필드나 셀렉트 필드 등 서로 다른 형태의 입력을 처리하는 유연한 컴포넌트를 설계할 때 핵심적인 역할을 합니다 [3]. 이를 통해 특정 컴포넌트 변형(variant)에 호환되지 않는 Props(예: Select 필드에 placeholder 옵션 지정)를 혼용하는 것을 TypeScript가 엄격하게 방지합니다 [3]. +- **배타적 속성 (Exclusive Props) 패턴**: 명시적인 판별자(discriminant prop) 없이 두 Props 묶음 간의 상호 배타성을 보장하고 싶을 때 사용됩니다 [3]. 유니온 타입과 `never` 타입을 활용해 한쪽 타입이 활성화될 때 다른 쪽의 속성 사용을 차단하여 혼합 사용을 막을 수 있습니다 [3]. +- **초과 속성 검사 (Excess Property Checking)**: 정의되지 않은 초과 속성이 컴포넌트에 간접적으로 전달되면 유효하지 않은 속성이 DOM으로 넘어가 React 경고를 발생시키거나, 의도치 않은 리렌더링 및 잘못된 코드가 복제되는 등의 부작용을 유발할 수 있습니다 [5]. 이를 막기 위해 제네릭과 `never` 타입을 조합하여 실제 입력값과 예상되는 Props 간의 초과 속성을 감지해내는 방식을 React 컴포넌트에도 적용할 수 있습니다 [7-9]. +- **`satisfies` 연산자 도입**: 컴포넌트의 Props가 특정 구조를 만족하도록 제약하는 동시에, TypeScript가 해당 Props의 가장 구체적인 타입(literal type)을 추론하게 만들 때 `satisfies` 연산자를 활용하여 유연함과 안전성을 모두 챙길 수 있습니다 [10]. +- **Zod를 이용한 런타임 유효성 검사 (Runtime Validation)**: API 응답이나 외부 설정 파일 등 외부 소스로부터 전달받는 Props의 경우 TypeScript의 정적 검사만으로는 검증할 수 없습니다 [4]. 데이터 무결성이 중요할 경우 식별 가능한 유니온과 Zod와 같은 런타임 유효성 검사 도구를 결합하여 런타임 수준의 안전성을 확보해야 합니다 [4, 11]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Discriminated Unions]], [[Exclusive Props]], [[Excess Property Checking]], [[Zod 런타임 검증]], [[satisfies 연산자]] +- **Projects/Contexts:** [[React 상태 및 Props 관리]], [[외부 API 데이터 연동 컴포넌트]] +- **Contradictions/Notes:** TypeScript의 컴파일 타임 검사는 무결성을 보장하지만, 런타임에 외부(API, 설정 파일 등)에서 주입되는 잘못된 Props 데이터까지는 막아주지 못하므로 외부 데이터 연동 컴포넌트에서는 런타임 검증이 동반되어야 합니다 [4]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/React 컴포넌트 Props 검증.md]] +--- diff --git a/Design & Experience/Redstone Engineering.md b/Design & Experience/Redstone Engineering.md new file mode 100644 index 00000000..3bb66b17 --- /dev/null +++ b/Design & Experience/Redstone Engineering.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-F36E08 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Redstone Engineering" +--- + +# [[Redstone Engineering]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Redstone Engineering.md]] +--- diff --git a/Design & Experience/Redux 등 상태 관리 (State Management).md b/Design & Experience/Redux 등 상태 관리 (State Management).md new file mode 100644 index 00000000..cbc1adb4 --- /dev/null +++ b/Design & Experience/Redux 등 상태 관리 (State Management).md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-8514DD +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Redux 등 상태 관리 (State Management)" +--- + +# [[Redux 등 상태 관리 (State Management)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 상태 관리는 사용자 입력, API 응답, 애플리케이션 설정 등 시간에 따라 변화하는 데이터를 추적하고 유지하는 방법론입니다 [1]. 상태 관리를 잘못하면 예측 불가능한 동작, 디버깅의 어려움, 기술 부채 축적 및 성능 문제(불필요한 리렌더링 등)가 발생할 수 있습니다 [2]. TypeScript 환경에서는 Redux 스타일의 리듀서와 액션을 안전하게 제어하기 위해 식별 가능한 유니온(Discriminated Unions)과 읽기 전용(Readonly) 타입을 활용한 불변성 유지가 상태 관리의 핵심 패턴으로 사용됩니다 [3-6]. + +## 📖 구조화된 지식 (Synthesized Content) +- **상태 관리의 정의와 실패 시 문제점:** 상태 관리는 애플리케이션 내의 다양한 데이터 흐름을 다루는 필수적인 과정입니다 [1]. 상태 관리에 실패하면 명확한 패턴 없이 여러 곳에서 상태가 수정되어 동작을 예측할 수 없게 되며, 중복되거나 오래된 상태로 인한 기술 부채, 불필요한 리렌더링 및 메모리 누수와 같은 성능 문제를 야기합니다 [2]. +- **Redux와 식별 가능한 유니온(Discriminated Unions) 패턴:** TypeScript를 활용한 상태 관리, 특히 Redux 스타일의 리듀서와 액션에서는 식별 가능한 유니온 패턴이 빛을 발합니다 [3, 6]. 이 패턴은 상태와 에러 처리에 있어서 "불가능한 상태를 표현 불가능하게 만드는" 마법과 같은 효과를 제공합니다 [7]. 이를 통해 컴파일러의 철저한 타입 검사를 지원받아 유효하지 않은 상태의 조합을 원천적으로 차단할 수 있습니다 [3, 8, 9]. +- **상태의 불변성(Immutability) 보장:** 상태 관리 패턴과 리듀서에서 데이터의 무결성을 유지하기 위해서는 불변성을 강제해야 합니다 [5, 10]. `Readonly` 타입이나 재귀적으로 중첩된 구조까지 보호하는 `DeepReadonly` 유틸리티 타입을 활용하면, 상태 객체가 생성된 이후 어떠한 부분도 임의로 수정될 수 없도록 보장하여 우발적인 상태 변이(Mutation)로 인한 버그를 방지할 수 있습니다 [4, 5]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[식별 가능한 유니온 (Discriminated Unions)]], [[불변성 (Immutability)]], [[Readonly 타입]] +- **Projects/Contexts:** [[TypeScript 기반 React 애플리케이션의 Redux 스타일 리듀서 구현]] +- **Contradictions/Notes:** 소스에서는 Redux 라이브러리 자체의 세부적인 API나 동작 원리보다는, TypeScript의 강력한 타입 시스템(식별 가능한 유니온, Readonly)을 결합하여 상태 관리의 복잡성과 부작용을 통제하는 아키텍처적 관점이 주로 강조되어 있습니다 [1, 3, 4, 7]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Redux 등 상태 관리 (State Management).md]] +--- diff --git a/Design & Experience/Redux 스타일 리듀서 및 액션 관리.md b/Design & Experience/Redux 스타일 리듀서 및 액션 관리.md new file mode 100644 index 00000000..f0daa6cc --- /dev/null +++ b/Design & Experience/Redux 스타일 리듀서 및 액션 관리.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-EFAFFE +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Redux 스타일 리듀서 및 액션 관리" +--- + +# [[Redux 스타일 리듀서 및 액션 관리]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Redux 스타일 리듀서 및 액션 관리는 TypeScript의 식별 가능한 유니언(Discriminated Unions) 패턴이 가장 효과적으로 적용되는 대표적인 사례 중 하나입니다 [1, 2]. 이 패턴을 통해 다양한 액션 객체들을 타입 안전하게 구분하고 상태를 처리할 수 있습니다. 다만, 제공된 소스에서는 이 주제가 식별 가능한 유니언의 단순 활용 예시로만 간략히 언급되어 있어 전반적인 Redux 아키텍처에 대해 논하기에는 소스에 관련 정보가 부족합니다. + +## 📖 구조화된 지식 (Synthesized Content) +- **식별 가능한 유니언(Discriminated Unions)의 적용:** TypeScript의 식별 가능한 유니언(또는 태그된 유니언) 패턴은 Redux 스타일의 리듀서를 작성할 때 탁월한 성능과 타입 안전성을 제공합니다 [1]. 이 패턴은 공통된 리터럴 타입의 속성(discriminator)을 사용하여 여러 액션 데이터의 형태 중 현재 어떤 액션이 발생했는지 컴파일러가 정확히 추론할 수 있게 해줍니다 [3, 4]. +- **프레임워크 전반의 표준 패턴:** 식별 가능한 유니언을 활용한 방식은 단지 특정 라이브러리에 국한되지 않으며, Redux 액션을 비롯하여 API 응답 상태, 컴포넌트 변형(variants) 등 프레임워크 전반에서 데이터를 모델링할 때 널리 사용되는 강력한 패턴입니다 [2]. +- **정보 부족 명시:** Redux 스타일 리듀서의 구체적인 로직 구성, 미들웨어 처리, 혹은 액션 관리의 심층적인 구조적 설계 등 상세한 내용은 제공된 문서에 포함되어 있지 않으므로 소스에 관련 정보가 부족합니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Discriminated Unions]], [[Type Narrowing]] +- **Projects/Contexts:** [[상태 관리 및 프레임워크의 액션 처리]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. 소스는 Redux 자체에 대한 깊은 설명보다는 TypeScript의 타입 시스템을 설명하면서 그 예시로만 Redux를 간략하게 다루고 있습니다. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Redux 스타일 리듀서 및 액션 관리.md]] +--- diff --git a/Design & Experience/Redux-Reducers.md b/Design & Experience/Redux-Reducers.md new file mode 100644 index 00000000..77a66dfa --- /dev/null +++ b/Design & Experience/Redux-Reducers.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-20A7B7 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Redux-Reducers" +--- + +# [[Redux-Reducers]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Redux-Reducers.md]] +--- diff --git a/Design & Experience/Redux-Toolkit-Architecture.md b/Design & Experience/Redux-Toolkit-Architecture.md new file mode 100644 index 00000000..138d8750 --- /dev/null +++ b/Design & Experience/Redux-Toolkit-Architecture.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5308B9 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Redux-Toolkit-Architecture" +--- + +# [[Redux-Toolkit-Architecture]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Redux-Toolkit-Architecture.md]] +--- diff --git a/Design & Experience/Reinforcement Learning Reward Shaping.md b/Design & Experience/Reinforcement Learning Reward Shaping.md new file mode 100644 index 00000000..8d8c5ee1 --- /dev/null +++ b/Design & Experience/Reinforcement Learning Reward Shaping.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-390731 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Reinforcement Learning Reward Shaping" +--- + +# [[Reinforcement Learning Reward Shaping]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Reinforcement Learning Reward Shaping.md]] +--- diff --git a/Design & Experience/Roguelike Subgenre.md b/Design & Experience/Roguelike Subgenre.md new file mode 100644 index 00000000..89befafc --- /dev/null +++ b/Design & Experience/Roguelike Subgenre.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-3475FE +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Roguelike Subgenre" +--- + +# [[Roguelike Subgenre]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Roguelike Subgenre.md]] +--- diff --git a/Design & Experience/SeL4-Microkernel.md b/Design & Experience/SeL4-Microkernel.md new file mode 100644 index 00000000..c824e6f2 --- /dev/null +++ b/Design & Experience/SeL4-Microkernel.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-0A0995 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - SeL4-Microkernel" +--- + +# [[SeL4-Microkernel]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/SeL4-Microkernel.md]] +--- diff --git a/Design & Experience/Self-Determination Theory.md b/Design & Experience/Self-Determination Theory.md new file mode 100644 index 00000000..4b9aabf0 --- /dev/null +++ b/Design & Experience/Self-Determination Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-2C7B68 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Self-Determination Theory" +--- + +# [[Self-Determination Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Self-Determination Theory.md]] +--- diff --git a/Design & Experience/Self-Determination-Theory.md b/Design & Experience/Self-Determination-Theory.md new file mode 100644 index 00000000..798ca219 --- /dev/null +++ b/Design & Experience/Self-Determination-Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-576385 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Self-Determination-Theory" +--- + +# [[Self-Determination-Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Self-Determination-Theory.md]] +--- diff --git a/Design & Experience/Service-Design.md b/Design & Experience/Service-Design.md new file mode 100644 index 00000000..31a90400 --- /dev/null +++ b/Design & Experience/Service-Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-92A8B5 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Service-Design" +--- + +# [[Service-Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Service-Design.md]] +--- diff --git a/Design & Experience/SimCity-Series.md b/Design & Experience/SimCity-Series.md new file mode 100644 index 00000000..207aa0f4 --- /dev/null +++ b/Design & Experience/SimCity-Series.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5D71A8 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - SimCity-Series" +--- + +# [[SimCity-Series]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/SimCity-Series.md]] +--- diff --git a/Design & Experience/Single-Responsibility-Principle.md b/Design & Experience/Single-Responsibility-Principle.md new file mode 100644 index 00000000..0b5f1677 --- /dev/null +++ b/Design & Experience/Single-Responsibility-Principle.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-91F776 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Single-Responsibility-Principle" +--- + +# [[Single-Responsibility-Principle]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Single-Responsibility-Principle.md]] +--- diff --git a/Design & Experience/Single-Source-of-Truth-Principle.md b/Design & Experience/Single-Source-of-Truth-Principle.md new file mode 100644 index 00000000..ee988ef3 --- /dev/null +++ b/Design & Experience/Single-Source-of-Truth-Principle.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A292A4 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Single-Source-of-Truth-Principle" +--- + +# [[Single-Source-of-Truth-Principle]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Single-Source-of-Truth-Principle.md]] +--- diff --git a/Design & Experience/Smithsonian-Digital-Repository.md b/Design & Experience/Smithsonian-Digital-Repository.md new file mode 100644 index 00000000..eef31f89 --- /dev/null +++ b/Design & Experience/Smithsonian-Digital-Repository.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-F0CD87 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Smithsonian-Digital-Repository" +--- + +# [[Smithsonian-Digital-Repository]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Smithsonian-Digital-Repository.md]] +--- diff --git a/Design & Experience/Snyk Open Source.md b/Design & Experience/Snyk Open Source.md new file mode 100644 index 00000000..c55d60c8 --- /dev/null +++ b/Design & Experience/Snyk Open Source.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-F26CB3 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Snyk Open Source" +--- + +# [[Snyk Open Source]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Snyk Open Source는 애플리케이션을 구성하는 서드파티 종속성(third-party dependencies)을 스캔하여 알려진 보안 취약점을 탐지하는 소프트웨어 구성 분석(SCA, Software Composition Analysis) 도구입니다 [1, 2]. 이 도구는 `package.json`, `pom.xml`, `requirements.txt`와 같은 매니페스트 파일을 검사하고 Snyk의 엄선된 취약점 데이터베이스와 대조하여 위험 요소를 식별합니다 [3]. 또한, 취약한 패키지를 안전한 버전으로 업그레이드할 수 있도록 풀 리퀘스트(Pull Request)를 자동으로 생성하는 기능을 제공하여 신속한 보안 패치를 돕습니다 [3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **오픈소스 종속성 관리의 중요성:** 오늘날 애플리케이션의 80~90%는 오픈소스 종속성으로 구성되어 있습니다 [4]. 따라서 이 도구를 활용해 npm, Maven, PyPI 등 패키지 매니저의 알려진 CVE(Common Vulnerabilities and Exposures)를 감지하고 지속적으로 업데이트하는 것은 소프트웨어 공급망 보안의 필수 권장 사항입니다 [1, 4]. +- **Snyk Code(SAST)와의 차이점:** 두 도구는 종종 혼동되지만 스캔하는 대상과 방어하는 위협 벡터가 완전히 다릅니다 [3, 5]. Snyk Code가 개발팀이 직접 작성한 퍼스트파티(first-party) 코드의 취약점을 탐지하는 SAST 도구라면, Snyk Open Source는 외부에서 가져온(import) 서드파티(third-party) 라이브러리의 취약점을 찾아내는 SCA 도구입니다 [1, 2]. +- **플랫폼 통합 및 시너지:** Snyk Open Source는 Snyk Code, Snyk Container, Snyk IaC, Snyk Cloud와 함께 Snyk 보안 플랫폼을 구성하는 5대 제품 중 하나입니다 [6]. 전체 공격 표면(Attack Surface)을 커버하기 위해서는 내부 코드 스캔과 외부 종속성 스캔이 모두 필요하므로 보안 성숙도가 높은 팀은 이 도구들을 함께 실행합니다 [2, 5]. 이를 통해 단일 대시보드와 통합 리포팅 환경에서 보안 검사를 효율적으로 관리할 수 있습니다 [7]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[SCA (Software Composition Analysis)]], [[Snyk Code]], [[서드파티 종속성 (Third-party dependencies)]], [[CVE (Common Vulnerabilities and Exposures)]] +- **Projects/Contexts:** [[Snyk Security Platform]] +- **Contradictions/Notes:** 소스의 내용 간에 특별한 모순은 발견되지 않았습니다. 소스는 Snyk Open Source(SCA)와 Snyk Code(SAST)가 경쟁 관계가 아니라 완전히 다른 영역을 검사하며, 강력한 보안 태세를 위해 상호 보완적으로 사용되어야 한다는 점을 거듭 강조합니다 [2, 3, 5]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Snyk Open Source.md]] +--- diff --git a/Design & Experience/Social Learning Theory.md b/Design & Experience/Social Learning Theory.md new file mode 100644 index 00000000..f8266839 --- /dev/null +++ b/Design & Experience/Social Learning Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-26C0EB +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Social Learning Theory" +--- + +# [[Social Learning Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Social Learning Theory.md]] +--- diff --git a/Design & Experience/Socially Assistive Robotics (SAR).md b/Design & Experience/Socially Assistive Robotics (SAR).md new file mode 100644 index 00000000..3d5c1bf1 --- /dev/null +++ b/Design & Experience/Socially Assistive Robotics (SAR).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-22DA21 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Socially Assistive Robotics (SAR)" +--- + +# [[Socially Assistive Robotics (SAR)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Socially Assistive Robotics (SAR).md]] +--- diff --git a/Design & Experience/Software Architecture API Contract Design.md b/Design & Experience/Software Architecture API Contract Design.md new file mode 100644 index 00000000..6b92d06f --- /dev/null +++ b/Design & Experience/Software Architecture API Contract Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A7EF2F +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Software Architecture API Contract Design" +--- + +# [[Software Architecture API Contract Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Software Architecture & API Contract Design.md]] +--- diff --git a/Design & Experience/Software-Contract-Enforcement.md b/Design & Experience/Software-Contract-Enforcement.md new file mode 100644 index 00000000..ec2a7f99 --- /dev/null +++ b/Design & Experience/Software-Contract-Enforcement.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B29206 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Software-Contract-Enforcement" +--- + +# [[Software-Contract-Enforcement]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Software-Contract-Enforcement.md]] +--- diff --git a/Design & Experience/Software-Product-Management.md b/Design & Experience/Software-Product-Management.md new file mode 100644 index 00000000..00183a34 --- /dev/null +++ b/Design & Experience/Software-Product-Management.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-7094F5 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Software-Product-Management" +--- + +# [[Software-Product-Management]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Software-Product-Management.md]] +--- diff --git a/Design & Experience/Spatial Cognition.md b/Design & Experience/Spatial Cognition.md new file mode 100644 index 00000000..284b54a3 --- /dev/null +++ b/Design & Experience/Spatial Cognition.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-06C479 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Spatial Cognition" +--- + +# [[Spatial Cognition]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Spatial Cognition.md]] +--- diff --git a/Design & Experience/Spatial Computing.md b/Design & Experience/Spatial Computing.md new file mode 100644 index 00000000..a69b4fba --- /dev/null +++ b/Design & Experience/Spatial Computing.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-C2600F +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Spatial Computing" +--- + +# [[Spatial Computing]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Spatial Computing.md]] +--- diff --git a/Design & Experience/State-Machine-Implementation.md b/Design & Experience/State-Machine-Implementation.md new file mode 100644 index 00000000..224da0ad --- /dev/null +++ b/Design & Experience/State-Machine-Implementation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-CB6F5B +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - State-Machine-Implementation" +--- + +# [[State-Machine-Implementation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/State-Machine-Implementation.md]] +--- diff --git a/Design & Experience/Static Type Checking Systems.md b/Design & Experience/Static Type Checking Systems.md new file mode 100644 index 00000000..b69a0ea6 --- /dev/null +++ b/Design & Experience/Static Type Checking Systems.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-AB0264 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Static Type Checking Systems" +--- + +# [[Static Type Checking Systems]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Static Type Checking Systems.md]] +--- diff --git a/Design & Experience/Static-Program-Analysis.md b/Design & Experience/Static-Program-Analysis.md new file mode 100644 index 00000000..17f1e86e --- /dev/null +++ b/Design & Experience/Static-Program-Analysis.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-295D6F +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Static-Program-Analysis" +--- + +# [[Static-Program-Analysis]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Static-Program-Analysis.md]] +--- diff --git a/Design & Experience/Structural Type System.md b/Design & Experience/Structural Type System.md new file mode 100644 index 00000000..635221a0 --- /dev/null +++ b/Design & Experience/Structural Type System.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-8CDABA +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Structural Type System" +--- + +# [[Structural Type System]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Structural Type System.md]] +--- diff --git a/Design & Experience/Structural-Subtyping.md b/Design & Experience/Structural-Subtyping.md new file mode 100644 index 00000000..bfd8b65c --- /dev/null +++ b/Design & Experience/Structural-Subtyping.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-ED919D +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Structural-Subtyping" +--- + +# [[Structural-Subtyping]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Structural-Subtyping.md]] +--- diff --git a/Design & Experience/Structural-Type-System.md b/Design & Experience/Structural-Type-System.md new file mode 100644 index 00000000..2bb3304f --- /dev/null +++ b/Design & Experience/Structural-Type-System.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-51BF6C +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Structural-Type-System" +--- + +# [[Structural-Type-System]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Structural-Type-System.md]] +--- diff --git a/Design & Experience/Structural-Typing-Analysis.md b/Design & Experience/Structural-Typing-Analysis.md new file mode 100644 index 00000000..9b1c80cd --- /dev/null +++ b/Design & Experience/Structural-Typing-Analysis.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-7B4F4E +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Structural-Typing-Analysis" +--- + +# [[Structural-Typing-Analysis]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Structural-Typing-Analysis.md]] +--- diff --git a/Design & Experience/Structural-Typing-Compatibility.md b/Design & Experience/Structural-Typing-Compatibility.md new file mode 100644 index 00000000..484f5a11 --- /dev/null +++ b/Design & Experience/Structural-Typing-Compatibility.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-61CE6C +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Structural-Typing-Compatibility" +--- + +# [[Structural-Typing-Compatibility]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Structural-Typing-Compatibility.md]] +--- diff --git a/Design & Experience/Structural-Typing-Mechanics.md b/Design & Experience/Structural-Typing-Mechanics.md new file mode 100644 index 00000000..7942f8ae --- /dev/null +++ b/Design & Experience/Structural-Typing-Mechanics.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-472330 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Structural-Typing-Mechanics" +--- + +# [[Structural-Typing-Mechanics]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Structural-Typing-Mechanics.md]] +--- diff --git a/Design & Experience/Structural-Typing-Mechanisms.md b/Design & Experience/Structural-Typing-Mechanisms.md new file mode 100644 index 00000000..e6b0eddb --- /dev/null +++ b/Design & Experience/Structural-Typing-Mechanisms.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-88EAEF +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Structural-Typing-Mechanisms" +--- + +# [[Structural-Typing-Mechanisms]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Structural-Typing-Mechanisms.md]] +--- diff --git a/Design & Experience/Structural-Typing-System.md b/Design & Experience/Structural-Typing-System.md new file mode 100644 index 00000000..5c6454ec --- /dev/null +++ b/Design & Experience/Structural-Typing-System.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-CB5A39 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Structural-Typing-System" +--- + +# [[Structural-Typing-System]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Structural-Typing-System.md]] +--- diff --git a/Design & Experience/Structural-Typing-and-Compatibility.md b/Design & Experience/Structural-Typing-and-Compatibility.md new file mode 100644 index 00000000..76ee5c69 --- /dev/null +++ b/Design & Experience/Structural-Typing-and-Compatibility.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-8A9CF7 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Structural-Typing-and-Compatibility" +--- + +# [[Structural-Typing-and-Compatibility]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Structural-Typing-and-Compatibility.md]] +--- diff --git a/Design & Experience/Structural-Typing-vs-Nominal-Typing.md b/Design & Experience/Structural-Typing-vs-Nominal-Typing.md new file mode 100644 index 00000000..e972cea5 --- /dev/null +++ b/Design & Experience/Structural-Typing-vs-Nominal-Typing.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-AA252C +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Structural-Typing-vs-Nominal-Typing" +--- + +# [[Structural-Typing-vs-Nominal-Typing]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Structural-Typing-vs-Nominal-Typing.md]] +--- diff --git a/Design & Experience/Structural-Typing.md b/Design & Experience/Structural-Typing.md new file mode 100644 index 00000000..4d9e9cf6 --- /dev/null +++ b/Design & Experience/Structural-Typing.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-65A250 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Structural-Typing" +--- + +# [[Structural-Typing]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Structural-Typing.md]] +--- diff --git a/Design & Experience/Structural-vs-Nominal-Typing-in-TS.md b/Design & Experience/Structural-vs-Nominal-Typing-in-TS.md new file mode 100644 index 00000000..77f71efc --- /dev/null +++ b/Design & Experience/Structural-vs-Nominal-Typing-in-TS.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-1623C6 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Structural-vs-Nominal-Typing-in-TS" +--- + +# [[Structural-vs-Nominal-Typing-in-TS]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Structural-vs-Nominal-Typing-in-TS.md]] +--- diff --git a/Design & Experience/Structural-vs-Nominal-Typing.md b/Design & Experience/Structural-vs-Nominal-Typing.md new file mode 100644 index 00000000..e551e47b --- /dev/null +++ b/Design & Experience/Structural-vs-Nominal-Typing.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-AD6E98 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Structural-vs-Nominal-Typing" +--- + +# [[Structural-vs-Nominal-Typing]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Structural-vs-Nominal-Typing.md]] +--- diff --git a/Design & Experience/Subtyping-Relations.md b/Design & Experience/Subtyping-Relations.md new file mode 100644 index 00000000..39e58f79 --- /dev/null +++ b/Design & Experience/Subtyping-Relations.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-4C9B28 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Subtyping-Relations" +--- + +# [[Subtyping-Relations]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Subtyping-Relations.md]] +--- diff --git a/Design & Experience/Subtyping-Rules.md b/Design & Experience/Subtyping-Rules.md new file mode 100644 index 00000000..358c3596 --- /dev/null +++ b/Design & Experience/Subtyping-Rules.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-FFBE65 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Subtyping-Rules" +--- + +# [[Subtyping-Rules]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Subtyping-Rules.md]] +--- diff --git a/Design & Experience/Subtyping-and-Variance.md b/Design & Experience/Subtyping-and-Variance.md new file mode 100644 index 00000000..7407aa19 --- /dev/null +++ b/Design & Experience/Subtyping-and-Variance.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B1CA51 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Subtyping-and-Variance" +--- + +# [[Subtyping-and-Variance]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Subtyping-and-Variance.md]] +--- diff --git a/Design & Experience/Systemic Design.md b/Design & Experience/Systemic Design.md new file mode 100644 index 00000000..3f861d93 --- /dev/null +++ b/Design & Experience/Systemic Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-0B8492 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Systemic Design" +--- + +# [[Systemic Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Systemic Design.md]] +--- diff --git a/Design & Experience/Systemic Game Design.md b/Design & Experience/Systemic Game Design.md new file mode 100644 index 00000000..d8c474d1 --- /dev/null +++ b/Design & Experience/Systemic Game Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-364762 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Systemic Game Design" +--- + +# [[Systemic Game Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Systemic Game Design.md]] +--- diff --git a/Design & Experience/Systemic-Design.md b/Design & Experience/Systemic-Design.md new file mode 100644 index 00000000..bbf33a6d --- /dev/null +++ b/Design & Experience/Systemic-Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9123E5 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Systemic-Design" +--- + +# [[Systemic-Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Systemic-Design.md]] +--- diff --git a/Design & Experience/Systems-Thinking.md b/Design & Experience/Systems-Thinking.md new file mode 100644 index 00000000..2b756aa7 --- /dev/null +++ b/Design & Experience/Systems-Thinking.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-2028E0 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Systems-Thinking" +--- + +# [[Systems-Thinking]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Systems-Thinking.md]] +--- diff --git a/Design & Experience/Template-Literal-Types.md b/Design & Experience/Template-Literal-Types.md new file mode 100644 index 00000000..9aac9d74 --- /dev/null +++ b/Design & Experience/Template-Literal-Types.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-CBED64 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Template-Literal-Types" +--- + +# [[Template-Literal-Types]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Template-Literal-Types.md]] +--- diff --git a/Design & Experience/The Emergence Theory in Game Design.md b/Design & Experience/The Emergence Theory in Game Design.md new file mode 100644 index 00000000..c01715b0 --- /dev/null +++ b/Design & Experience/The Emergence Theory in Game Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A4804A +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - The Emergence Theory in Game Design" +--- + +# [[The Emergence Theory in Game Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/The Emergence Theory in Game Design.md]] +--- diff --git a/Design & Experience/The Last of Us (Resource Scarcity and Character Bond).md b/Design & Experience/The Last of Us (Resource Scarcity and Character Bond).md new file mode 100644 index 00000000..df00de73 --- /dev/null +++ b/Design & Experience/The Last of Us (Resource Scarcity and Character Bond).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B7E710 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - The Last of Us (Resource Scarcity and Character Bond)" +--- + +# [[The Last of Us (Resource Scarcity and Character Bond)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/The Last of Us (Resource Scarcity and Character Bond).md]] +--- diff --git a/Design & Experience/Topological-Sorting.md b/Design & Experience/Topological-Sorting.md new file mode 100644 index 00000000..202354fd --- /dev/null +++ b/Design & Experience/Topological-Sorting.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-2CF8FE +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Topological-Sorting" +--- + +# [[Topological-Sorting]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Topological-Sorting.md]] +--- diff --git a/Design & Experience/Touchpoint-Analysis.md b/Design & Experience/Touchpoint-Analysis.md new file mode 100644 index 00000000..7b302892 --- /dev/null +++ b/Design & Experience/Touchpoint-Analysis.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5E6FFB +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Touchpoint-Analysis" +--- + +# [[Touchpoint-Analysis]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Touchpoint-Analysis.md]] +--- diff --git a/Design & Experience/Tree Shaking (번들 크기 최적화).md b/Design & Experience/Tree Shaking (번들 크기 최적화).md new file mode 100644 index 00000000..26cda4d5 --- /dev/null +++ b/Design & Experience/Tree Shaking (번들 크기 최적화).md @@ -0,0 +1,42 @@ +--- +id: P-REINFORCE-AUTO-5A7457 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Tree Shaking (번들 크기 최적화)" +--- + +# [[Tree Shaking (번들 크기 최적화)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 최신 모듈 번들러(Webpack, Vite 등)를 사용하여 애플리케이션의 최종 프로덕션 번들에서 사용되지 않는 '죽은 코드(Dead Code)'를 제거함으로써, 전체 자바스크립트 파일 크기를 최적화하는 기법입니다. + +## 📖 구조화된 지식 (Synthesized Content) +**1. Tree Shaking의 기본 원리** 최신 번들러는 프로덕션 빌드 시 사용되지 않는 코드를 번들에서 제외할 수 있지만, 이를 위해서는 개발자가 올바른 모듈 가져오기 패턴과 빌드 구성을 제공해야 합니다. 올바르게 적용될 경우 번들 크기를 20~40%가량 줄일 수 있으며 파괴적 변경(Breaking Change)의 위험이 적습니다. + +**2. Tree Shaking 적용을 위한 4가지 필수 조건** + +- **ES6 모듈 문법 사용:** CommonJS 방식의 `require` 대신 정적 분석이 가능한 `import` 및 `export` 문법을 사용해야 합니다. +- **필요한 모듈만 명시적 가져오기:** 패키지 전체를 불러오는 기본 내보내기(Default Export)를 피하고, 기명 내보내기(Named Export)를 사용해야 합니다. (예: 거대한 `lodash` 라이브러리 전체를 불러오는 대신, `import debounce from 'lodash-es/debounce'`와 같이 필요한 개별 함수만 직접 가져와야 합니다). +- **번들러 설정:** 번들러가 안전하게 코드를 제거할 수 있도록 `package.json` 파일 내에 `sideEffects` 필드를 설정해야 합니다. +- **라이브러리의 Default Export 피하기:** 라이브러리를 만들거나 가져올 때 Tree Shaking 호환성을 위해 Named Export 구조를 유지하는 것이 좋습니다. + +**3. 부수 효과(Side Effects) 처리 주의사항** 공격적인 Tree Shaking은 전역 변수를 초기화하거나 CSS를 임포트하는 등 코드 실행 자체로 부수 효과(Side Effects)를 일으키는 라이브러리를 실수로 제거하여 앱을 망가뜨릴 수 있습니다. 이를 방지하기 위해 `package.json`에 `"sideEffects": ["*.css", "./src/polyfills.js"]`와 같이 예외가 되는 파일들을 명시해 주어야 합니다. + +**4. 번들 분석 및 모니터링 (Bundle Analysis)** 눈에 보이지 않는 번들 비대화를 막기 위해 `webpack-bundle-analyzer`와 같은 도구를 활용하여 어떤 코드가 번들 용량을 차지하는지 시각적인 트리맵(Treemap)으로 분석해야 합니다. 이를 CI 파이프라인에 통합하여 번들 크기가 10% 이상 증가할 경우 빌드를 실패하게 설정하면, 시간이 지남에 따라 번들이 비대해지는 성능 저하 현상을 구조적으로 방지할 수 있습니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Code Splitting & Lazy Loading]], [[React Performance Optimization]], [[Webpack 번들 분석기 (webpack-bundle-analyzer)]], [[First Contentful Paint (FCP) 개선]] +- **Projects/Contexts:** [[대규모 React 프론트엔드 최적화]], [[모바일 웹 성능 향상 프로젝트]] +- **Contradictions/Notes:** 모듈을 가져올 때 구조 분해 할당(예: `import { debounce } from 'lodash'`)을 하더라도 해당 라이브러리가 본래 ES6 모듈 기반으로 작성되지 않았다면 전체 코드가 번들에 포함될 수 있습니다. 따라서 `lodash` 대신 Tree Shaking이 지원되는 `lodash-es`를 사용하는 등, 종속성을 추가할 때 라이브러리 자체의 지원 여부를 확인하는 것이 매우 중요합니다. + +--- + +_Last updated: 2026-04-14_ +- Raw Source: [[00_Raw/2026-04-20/Tree Shaking (번들 크기 최적화).md]] +--- diff --git a/Design & Experience/Turborepo-Orchestration.md b/Design & Experience/Turborepo-Orchestration.md new file mode 100644 index 00000000..d888bd38 --- /dev/null +++ b/Design & Experience/Turborepo-Orchestration.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-05096A +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Turborepo-Orchestration" +--- + +# [[Turborepo-Orchestration]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Turborepo-Orchestration.md]] +--- diff --git a/Design & Experience/Type Alias.md b/Design & Experience/Type Alias.md new file mode 100644 index 00000000..fca16223 --- /dev/null +++ b/Design & Experience/Type Alias.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-D2A4B8 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Type Alias" +--- + +# [[Type Alias]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Type Alias(타입 별칭)는 기존 타입에 새로운 이름을 부여하는 TypeScript의 타입 정의 방식이다 [1]. 인터페이스(Interface)와 유사하게 객체의 형태를 정의할 수 있지만, 이에 국한되지 않고 원시 타입(primitives), 유니온(unions), 튜플(tuples) 등 복잡한 타입 구성에도 이름을 지정할 수 있다 [1]. 동일한 이름으로 재선언 시 병합되지 않고 에러를 발생시키므로, 예기치 않은 타입 확장을 방지하는 엄격한 코드 관리에 유용하다 [2, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +* **표현력과 활용 범위:** 타입 별칭은 인터페이스보다 더 넓은 표현력을 가진다 [4]. 객체 형태를 정의할 수 있을 뿐만 아니라 원시 타입, 유니온 타입, 교집합(Intersection) 타입, 매핑된 타입(Mapped Types), 조건부 타입(Conditional Types) 등 복잡한 타입 변환을 자유롭게 지원한다 [1, 4, 5]. 주로 함수 인수나 데이터 구조의 구체적인 형태를 선언할 때, 또는 인터페이스가 지원하지 않는 복잡한 기능이 필요할 때 사용된다 [5, 6]. +* **선언 병합(Declaration Merging) 방지:** 인터페이스는 동일한 이름으로 여러 번 선언할 경우 자동으로 합쳐지는 선언 병합 기능이 있어 확장에는 유리하지만, 종종 의도치 않은 구조 변경을 유발할 수 있다 [3, 4]. 반면, 타입 별칭은 동일한 이름을 재선언할 수 없으므로 실수로 인한 병합 시 즉각적인 컴파일 에러를 발생시킨다 [2, 3]. 이러한 특성 때문에 더 엄격한 관리가 가능하여 핵심 비즈니스 로직에서 예상치 못한 데이터 병합을 방어하는 데 적합하다 [2, 3]. +* **컴파일러 성능과 캐싱의 차이:** TypeScript 컴파일러는 인터페이스를 처리할 때 이름을 기준으로 타입 관계를 캐싱하지만, 타입 별칭을 통한 교집합 타입(`&`)은 매번 구조를 재귀적으로 병합하고 평탄화(flattening)하여 속성 충돌을 확인해야 한다 [7, 8]. 이로 인해 대규모 프로젝트에서는 복잡한 교집합 형태의 타입 별칭이 컴파일 성능을 저하시키는 원인이 될 수 있으며, TypeScript 성능 가이드에서는 객체 확장 시 인터페이스의 `extends`를 사용할 것을 권장한다 [7, 9, 10]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Interface]], [[Union Types]], [[Intersection Types]] +- **Projects/Contexts:** [[TypeScript Type System 설계]], [[대규모 애플리케이션의 도메인 모델링]] +- **Contradictions/Notes:** 소스 내 개발자 커뮤니티에서는 Type Alias와 Interface의 사용을 두고 뚜렷한 논쟁이 존재한다. 일부 개발자들은 선언 병합으로 인한 잠재적 오류를 피하고 일관성을 유지하기 위해 전적으로 Type Alias만 사용할 것을 주장한다 [2, 4, 11]. 반면, TypeScript 공식 가이드 및 다른 개발자들은 컴파일러 캐싱에 따른 성능 최적화와 에러 메시지의 직관성(불투명한 이름 표시)을 이유로 Interface를 기본으로 사용해야 한다고 반론한다 [7, 12-15]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Type Alias.md]] +--- diff --git a/Design & Experience/Type Branding.md b/Design & Experience/Type Branding.md new file mode 100644 index 00000000..cfb884a1 --- /dev/null +++ b/Design & Experience/Type Branding.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-62F9F5 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Type Branding" +--- + +# [[Type Branding]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Type Branding.md]] +--- diff --git a/Design & Experience/Type Declaration.md b/Design & Experience/Type Declaration.md new file mode 100644 index 00000000..b26ab9fe --- /dev/null +++ b/Design & Experience/Type Declaration.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-D3F069 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Type Declaration" +--- + +# [[Type Declaration]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 타입 선언(Type Declaration)은 TypeScript에서 변수, 함수, 객체 등의 데이터 형태와 규칙을 명시적으로 정의하여 시스템의 예측 가능성을 높이는 과정이다[1, 2]. 주로 `type` 별칭(Type Alias)이나 `interface` 키워드를 사용하여 정의하며, 외부 자바스크립트 라이브러리 사용 시에는 구현부 없이 타입 정보만 제공하는 `.d.ts` 선언 파일을 통해 활용된다[3]. 타입 단언(Type Assertion) 방식과 달리, 명시적인 타입 선언을 활용하면 컴파일러의 엄격한 구조적 타입 검사를 통해 런타임 에러를 사전에 방지할 수 있다[1]. + +## 📖 구조화된 지식 (Synthesized Content) +- **명시적 타입 선언의 안정성 보장**: 변수나 객체를 생성할 때 타입 단언(`as Type`)을 사용하면 필수 속성이 누락되더라도 타입 에러를 무시하고 넘어가 런타임 버그를 유발할 수 있다[1]. 반면, 올바른 타입 선언(Type Declaration) 문법을 사용해 값을 할당하면 요구되는 속성이 없을 때 컴파일러가 즉시 에러를 발생시켜 안전한 코드를 강제한다[1, 4]. +- **Interface와 Type Alias의 선언 방식 차이**: TypeScript에서 형태를 선언하는 두 가지 주요 도구는 인터페이스(Interface)와 타입 별칭(Type Alias)이다[2]. 인터페이스는 동일한 이름으로 여러 번 선언할 경우 TypeScript가 이를 하나로 합치는 '선언 병합(Declaration Merging)'을 지원하여 라이브러리 확장에 유리하다[5]. 반면, 타입 별칭은 동일한 이름으로 재선언할 수 없어 더 엄격한 상태 관리가 가능하며, 유니온(Union)이나 튜플(Tuple) 등의 복잡한 타입을 선언할 때 활용된다[2, 5, 6]. +- **선언 파일 (Declaration Files, `.d.ts`)**: JavaScript 라이브러리를 TypeScript 환경에서 사용할 때는 타입 정의가 필요하다. 이를 위해 실제 구현 코드 없이 타입 정보만을 제공하는 `.d.ts` 선언 파일을 사용하여 컴파일러에게 해당 라이브러리의 형태를 알려줄 수 있다[3]. +- **불필요한 타입 선언의 생략 (Type Inference)**: 코드를 작성할 때 모든 곳에 명시적인 타입 선언을 할 필요는 없다. TypeScript가 초깃값을 기반으로 값의 타입을 완벽히 유추(Type Inference)할 수 있는 상황에서는 굳이 명시적인 타입을 선언하지 않고 시스템의 추론을 신뢰하는 것이 코드를 간결하고 가독성 있게 유지하는 모범 사례이다[7]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Type Alias]], [[Interface]], [[Type Assertion]], [[Declaration Merging]], [[Type Inference]] +- **Projects/Contexts:** [[TypeScript Type System]], [[TypeScript Best Practices]] +- **Contradictions/Notes:** 객체 타입을 선언할 때 `interface`와 `type` 중 어느 것을 사용할지에 대한 개발자 간의 선호도 논쟁이 존재한다. 일부는 선언 병합의 이점과 성능 최적화를 위해 `interface`를 선호하지만[8-10], 다른 진영에서는 의도치 않은 선언 병합에 의한 오작동을 막고 오류를 명확히 잡기 위해 `type` 선언을 엄격히 사용하는 것을 지향한다[6, 11]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Type Declaration.md]] +--- diff --git a/Design & Experience/Type-Aware-Linting.md b/Design & Experience/Type-Aware-Linting.md new file mode 100644 index 00000000..1ace3b43 --- /dev/null +++ b/Design & Experience/Type-Aware-Linting.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-CAD7C2 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Type-Aware-Linting" +--- + +# [[Type-Aware-Linting]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Type-Aware-Linting.md]] +--- diff --git a/Design & Experience/Type-Compatibility-Rules.md b/Design & Experience/Type-Compatibility-Rules.md new file mode 100644 index 00000000..e875d1c6 --- /dev/null +++ b/Design & Experience/Type-Compatibility-Rules.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A6932F +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Type-Compatibility-Rules" +--- + +# [[Type-Compatibility-Rules]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Type-Compatibility-Rules.md]] +--- diff --git a/Design & Experience/Type-Compatibility-and-Subtyping.md b/Design & Experience/Type-Compatibility-and-Subtyping.md new file mode 100644 index 00000000..5d870cf8 --- /dev/null +++ b/Design & Experience/Type-Compatibility-and-Subtyping.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-DAF93E +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Type-Compatibility-and-Subtyping" +--- + +# [[Type-Compatibility-and-Subtyping]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Type-Compatibility-and-Subtyping.md]] +--- diff --git a/Design & Experience/Type-Compatibility.md b/Design & Experience/Type-Compatibility.md new file mode 100644 index 00000000..9d97f169 --- /dev/null +++ b/Design & Experience/Type-Compatibility.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-BEFC96 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Type-Compatibility" +--- + +# [[Type-Compatibility]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Type-Compatibility.md]] +--- diff --git a/Design & Experience/Type-Composition-via-Intersections.md b/Design & Experience/Type-Composition-via-Intersections.md new file mode 100644 index 00000000..d5102adb --- /dev/null +++ b/Design & Experience/Type-Composition-via-Intersections.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-F4AFF9 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Type-Composition-via-Intersections" +--- + +# [[Type-Composition-via-Intersections]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Type-Composition-via-Intersections.md]] +--- diff --git a/Design & Experience/Type-Driven-Development.md b/Design & Experience/Type-Driven-Development.md new file mode 100644 index 00000000..b4d6cd20 --- /dev/null +++ b/Design & Experience/Type-Driven-Development.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-1CC60F +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Type-Driven-Development" +--- + +# [[Type-Driven-Development]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Type-Driven-Development.md]] +--- diff --git a/Design & Experience/Type-Erasure-and-Runtime-Behavior.md b/Design & Experience/Type-Erasure-and-Runtime-Behavior.md new file mode 100644 index 00000000..8b70ad22 --- /dev/null +++ b/Design & Experience/Type-Erasure-and-Runtime-Behavior.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-BD9DA5 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Type-Erasure-and-Runtime-Behavior" +--- + +# [[Type-Erasure-and-Runtime-Behavior]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Type-Erasure-and-Runtime-Behavior.md]] +--- diff --git a/Design & Experience/Type-Guards-and-Narrowing.md b/Design & Experience/Type-Guards-and-Narrowing.md new file mode 100644 index 00000000..489013fb --- /dev/null +++ b/Design & Experience/Type-Guards-and-Narrowing.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9DB0ED +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Type-Guards-and-Narrowing" +--- + +# [[Type-Guards-and-Narrowing]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Type-Guards-and-Narrowing.md]] +--- diff --git a/Design & Experience/Type-Narrowing.md b/Design & Experience/Type-Narrowing.md new file mode 100644 index 00000000..76080a5e --- /dev/null +++ b/Design & Experience/Type-Narrowing.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-60D972 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Type-Narrowing" +--- + +# [[Type-Narrowing]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Type-Narrowing.md]] +--- diff --git a/Design & Experience/Type-Safe-API-Design.md b/Design & Experience/Type-Safe-API-Design.md new file mode 100644 index 00000000..dbc9786f --- /dev/null +++ b/Design & Experience/Type-Safe-API-Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-BDDBAD +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Type-Safe-API-Design" +--- + +# [[Type-Safe-API-Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Type-Safe-API-Design.md]] +--- diff --git a/Design & Experience/Type-Safety-and-Exhaustiveness-Checking.md b/Design & Experience/Type-Safety-and-Exhaustiveness-Checking.md new file mode 100644 index 00000000..e4868c9f --- /dev/null +++ b/Design & Experience/Type-Safety-and-Exhaustiveness-Checking.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5C9108 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Type-Safety-and-Exhaustiveness-Checking" +--- + +# [[Type-Safety-and-Exhaustiveness-Checking]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Type-Safety-and-Exhaustiveness-Checking.md]] +--- diff --git a/Design & Experience/Type-Safety.md b/Design & Experience/Type-Safety.md new file mode 100644 index 00000000..74099882 --- /dev/null +++ b/Design & Experience/Type-Safety.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-0FE004 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Type-Safety" +--- + +# [[Type-Safety]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Type-Safety.md]] +--- diff --git a/Design & Experience/Type-Variance-in-TypeScript.md b/Design & Experience/Type-Variance-in-TypeScript.md new file mode 100644 index 00000000..9a63f635 --- /dev/null +++ b/Design & Experience/Type-Variance-in-TypeScript.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E14411 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Type-Variance-in-TypeScript" +--- + +# [[Type-Variance-in-TypeScript]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Type-Variance-in-TypeScript.md]] +--- diff --git a/Design & Experience/TypeScript Compiler API.md b/Design & Experience/TypeScript Compiler API.md new file mode 100644 index 00000000..a195183b --- /dev/null +++ b/Design & Experience/TypeScript Compiler API.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A553B6 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - TypeScript Compiler API" +--- + +# [[TypeScript Compiler API]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/TypeScript Compiler API.md]] +--- diff --git a/Design & Experience/TypeScript Type System (Interface Design).md b/Design & Experience/TypeScript Type System (Interface Design).md new file mode 100644 index 00000000..c65ad3de --- /dev/null +++ b/Design & Experience/TypeScript Type System (Interface Design).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-FE2C59 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - TypeScript Type System (Interface Design)" +--- + +# [[TypeScript Type System (Interface Design)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/TypeScript Type System (Interface Design).md]] +--- diff --git a/Design & Experience/TypeScript 라이브러리 타입 확장.md b/Design & Experience/TypeScript 라이브러리 타입 확장.md new file mode 100644 index 00000000..a2f4d89c --- /dev/null +++ b/Design & Experience/TypeScript 라이브러리 타입 확장.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-BF50D4 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - TypeScript 라이브러리 타입 확장" +--- + +# [[TypeScript 라이브러리 타입 확장]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +- **선언 병합(Declaration Merging)을 통한 확장**: TypeScript에서 동일한 이름의 인터페이스를 여러 번 선언하면, 컴파일러가 이를 자동으로 하나의 인터페이스로 합칩니다 [1, 2]. 이 기능은 라이브러리 코드를 작성할 때 사용자가 필요에 따라 선언부를 유연하게 확장(extend)할 수 있도록 허용하는 핵심 메커니즘입니다 [2, 3]. 반면, 타입 별칭(Type Alias)은 동일한 이름으로 재선언할 수 없으므로 이러한 방식의 확장이 불가능합니다 [2, 4]. +- **성능을 고려한 인터페이스 확장(extends) 전략**: 타입을 확장할 때 교집합(Intersection, `&`)을 사용하는 것보다 `interface extends`를 사용하는 것이 권장됩니다 [5, 6]. TypeScript 컴파일러는 인터페이스를 처리할 때 이름 기준으로 타입 관계를 캐싱하여 활용하지만, 교집합 연산은 사용될 때마다 속성을 재귀적으로 병합하고 계산해야 하므로 대규모 프로젝트나 라이브러리 사용 시 컴파일 성능을 저하시킬 수 있습니다 [5, 7, 8]. +- **외부 라이브러리 타입 선언 파일(.d.ts)**: 기존 JavaScript 라이브러리를 TypeScript에서 사용할 때는 구현부 없이 타입 정보만을 제공하는 선언 파일(`.d.ts`)이 필요합니다 [9]. 많은 인기 라이브러리들이 자체 타입을 제공하지만, 타입이 존재하지 않는 경우 사용자가 직접 모듈을 선언하여 타입 확장을 하거나 에러를 억제할 수 있습니다 [9]. +- **내부 코드와 외부 라이브러리 코드 간의 이원화 설계**: 개발 커뮤니티에서는 "내부는 Types, 외부는 Interfaces를 사용하라"는 전략이 제안되기도 합니다 [6]. 애플리케이션 내부 핵심 도메인 로직에서는 의도치 않은 선언 병합으로 인한 버그나 충돌을 막기 위해 타입 별칭(Type)을 사용하여 엄격하게 관리하는 것이 좋습니다 [2, 10]. 반대로 외부 라이브러리로 제공되거나 외부와의 소통이 잦은 계약 지점의 코드에서는 소비자의 유연한 확장을 위해 인터페이스(Interface)를 사용하는 것이 바람직합니다 [2, 3]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[선언 병합(Declaration Merging)]], [[Interface]], [[Type Alias]], [[교집합 타입(Intersection Type)]] +- **Projects/Contexts:** [[외부 라이브러리 API 설계]], [[TypeScript 컴파일러 캐싱 최적화]], [[선언 파일(.d.ts)]] +- **Contradictions/Notes:** 애플리케이션 내부 코드의 경우, 인터페이스의 확장성을 '의도치 않은 속성 병합(Bad Thing)'으로 간주하여 타입 별칭(Type Alias)의 사용을 선호하는 실무적 의견이 다수 존재합니다 [4, 10-12]. 하지만 외부 패키지나 라이브러리 생태계에서는 여전히 사용자에게 타입 확장을 허용하기 위해 인터페이스를 채택하는 것이 정석으로 평가받고 있습니다 [2, 3]. 또한, 객체를 확장할 때 교집합(`&`) 방식은 유연해 보이지만, 성능 이슈와 충돌 검사 한계로 인해 `interface extends` 방식에 비해 상대적으로 지양됩니다 [5, 7, 13]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/TypeScript 라이브러리 타입 확장.md]] +--- diff --git a/Design & Experience/TypeScript 인터페이스 및 시스템 보호 아키텍처 설계.md b/Design & Experience/TypeScript 인터페이스 및 시스템 보호 아키텍처 설계.md new file mode 100644 index 00000000..b202c2f8 --- /dev/null +++ b/Design & Experience/TypeScript 인터페이스 및 시스템 보호 아키텍처 설계.md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-6ECC4D +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - TypeScript 인터페이스 및 시스템 보호 아키텍처 설계" +--- + +# [[TypeScript 인터페이스 및 시스템 보호 아키텍처 설계]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> TypeScript의 타입 시스템은 구조적 타이핑을 기반으로 하여 복잡한 비즈니스 로직을 보호하고 개발자의 의도를 명확히 규정하는 아키텍처적 도구이다 [1]. 인터페이스(Interface)와 타입 별칭(Type Alias)을 전략적으로 선택하여 컴파일 성능과 확장성을 최적화하며, `readonly` 수식어와 `satisfies` 연산자 등을 통해 예기치 않은 데이터 오염과 상태 변경을 원천적으로 차단한다 [2-4]. 이러한 견고한 인터페이스 설계는 시스템의 결합도를 낮추고 예측 가능성을 극대화하여 대규모 애플리케이션에서 철벽과 같은 수비 체계를 구축한다 [5, 6]. + +## 📖 구조화된 지식 (Synthesized Content) +- **인터페이스(Interface)와 타입 별칭(Type Alias)의 전략적 분리** + TypeScript 컴파일러는 인터페이스를 처리할 때 이름을 기준으로 타입 관계를 캐싱하여 대규모 프로젝트에서 컴파일 성능을 최적화한다 [2]. 반면, 타입 별칭을 이용한 교집합 타입(`&`)은 매번 구조를 평탄화하고 충돌을 확인해야 하므로 성능 저하를 유발할 수 있다 [2]. 따라서 외부와의 소통이 잦은 계약 지점이나 확장 지점 제공에는 선언 병합(Declaration Merging)이 가능한 인터페이스를, 핵심 비즈니스 로직의 엄격한 관리에는 예기치 않은 병합을 막는 타입 별칭을 사용하는 이원화 전략이 필요하다 [7]. + +- **불변성(Immutability) 확립과 데이터 오염 방지** + `readonly` 수식어는 객체와 배열의 수정을 컴파일 수준에서 금지하여 데이터 무결성을 보장하며, 런타임 성능 오버헤드가 발생하는 `Object.freeze()`보다 효율적이다 [3]. 깊은 수준의 중첩된 객체까지 예기치 않은 변경으로부터 방어하려면, 매핑 타입과 조건부 타입을 결합한 재귀적 불변성(`DeepReadonly`)을 구축하는 것이 복잡한 상태 관리 아키텍처에서 필수적이다 [8]. + +- **과잉 속성 체크(EPC)의 한계와 `satisfies` 연산자를 통한 경계면 수비** + 객체 리터럴을 직접 할당할 때 발생하는 과잉 속성 체크(Excess Property Checking)는 선언되지 않은 속성의 유입을 차단하는 첫 번째 방어선이다 [9, 10]. 하지만 간접 할당(변수 선언 후 할당) 과정을 거치면 이 기제가 우회되는 취약점이 있다 [10]. 이를 극복하기 위해 `satisfies` 연산자를 활용하면, 대상 인터페이스의 요구사항을 충족하는지 검사하면서도 리터럴 타입 등 속성의 구체적인 값을 잃지 않아 더욱 정밀한 수비가 가능해진다 [4]. + +- **아키텍처적 관점에서의 인터페이스 설계 (SOLID 원칙)** + 하나의 인터페이스가 너무 많은 책임을 지는 것을 피하고 최소 단위로 쪼개어 결합도를 낮추는 인터페이스 분리 원칙(ISP)을 지향해야 한다 [5]. 복잡한 내부 시스템을 단순한 인터페이스로 감싸는 퍼사드(Facade) 패턴을 활용하면 개발자의 인지 부하를 줄일 수 있다 [5]. 더 나아가, 단순히 데이터의 유효성을 체크하는 것을 넘어 더 구체적이고 신뢰할 수 있는 타입의 객체로 변환하는 "검증하지 말고 파싱하라"는 수비적 프로그래밍 철학을 실천해야 한다 [5]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[구조적 타이핑 (Structural Typing)]], [[과잉 속성 체크 (Excess Property Checking)]], [[재귀적 불변성 (DeepReadonly)]], [[식별 가능한 유니온 (Discriminated Unions)]], [[브랜디드 타입 (Branded Types)]], [[SOLID 원칙]] +- **Projects/Contexts:** [[Toss Front SDK의 Facade 패턴 적용 사례]] +- **Contradictions/Notes:** TypeScript의 구조적 타이핑은 최소 요건만 충족하면 호환성을 허용하므로 매우 유연하지만, 이메일 주소와 이름이 같은 `string`으로 취급되는 등 "기본 타입에의 집착(Primitive Obsession)" 문제를 야기한다 [11]. 이를 방어하기 위해 컴파일 시점에만 존재하는 고유 속성을 부여하는 브랜디드 타입(Branded Types)을 사용하여 데이터의 무분별한 혼용을 차단해야 한다 [10, 11]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/TypeScript 인터페이스 및 시스템 보호 아키텍처 설계.md]] +--- diff --git a/Design & Experience/TypeScript 컴파일러 캐싱 최적화.md b/Design & Experience/TypeScript 컴파일러 캐싱 최적화.md new file mode 100644 index 00000000..42e355ef --- /dev/null +++ b/Design & Experience/TypeScript 컴파일러 캐싱 최적화.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-3D0990 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - TypeScript 컴파일러 캐싱 최적화" +--- + +# [[TypeScript 컴파일러 캐싱 최적화]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> TypeScript 컴파일러는 타입 검사 속도와 IDE 응답성을 향상시키기 위해 타입 관계를 캐싱하는 최적화 메커니즘을 사용합니다. 이 캐싱 메커니즘은 객체를 확장할 때 주로 `interface extends`를 사용할 경우 해당 이름을 기준으로 효과적으로 작동하며, 타입 검사 성능을 향상시키는 핵심적인 역할을 합니다 [1-3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **인터페이스 확장(Interface Extends)의 캐싱 이점**: TypeScript 컴파일러는 `interface extends`를 통해 객체를 확장할 때 해당 인터페이스의 이름을 기준으로 타입 관계를 캐싱합니다 [1-3]. 한 번 캐시가 만들어지면 해당 이름이 사용되는 모든 곳에서 캐시를 참조하게 되므로 타입 검사가 효율적으로 이루어집니다 [1, 2]. +- **교집합(Intersection Types)의 연산 오버헤드**: `type` 선언 시 앰퍼샌드(`&`) 기호를 사용하는 교집합은 인터페이스와 달리 전체 교집합 타입 자체가 캐싱되지 않습니다 [3]. 교집합은 속성을 재귀적으로 병합해야 하고 처리가 복잡하여, 코드가 사용될 때마다 거의 매번 구조를 새롭게 계산해야 합니다 [1-3]. 특히 검사 대상이 되는 교집합 타입에 대해 "유효하거나 평탄화된(flattened)" 타입을 확인하기 전에 모든 구성 요소를 일일이 확인해야 하는 오버헤드가 발생합니다 [3]. +- **성능 가이드라인의 권장 사항**: TypeScript 성능 가이드(Performance Guide)에서는 위와 같은 컴파일러의 캐싱 동작 방식 때문에, 가능하면 교집합보다는 `interface extends`를 사용할 것을 권장합니다 [1-3]. 이를 통해 TypeScript 컴파일러가 캐싱을 보다 잘 활용할 수 있으며, 결과적으로 타입 검사(Type Checking) 및 IDE의 코드 기반 업데이트 성능이 약간 더 빨라집니다 [4, 5]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[인터페이스 확장(Interface Extends)]], [[교집합 타입(Intersection Types)]] +- **Projects/Contexts:** [[TypeScript Performance Guide]] +- **Contradictions/Notes:** 인터페이스 간의 타입 관계는 이름 기반으로 캐싱되어 성능상 이점을 제공하지만, 교집합 타입은 전체가 캐싱되지 않고 사용할 때마다 평탄화 및 재계산을 거쳐야 한다는 구조적 차이가 존재합니다 [3]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/TypeScript 컴파일러 캐싱 최적화.md]] +--- diff --git a/Design & Experience/TypeScript-Compiler-API-Design.md b/Design & Experience/TypeScript-Compiler-API-Design.md new file mode 100644 index 00000000..1e0d4773 --- /dev/null +++ b/Design & Experience/TypeScript-Compiler-API-Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D06F7B +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - TypeScript-Compiler-API-Design" +--- + +# [[TypeScript-Compiler-API-Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/TypeScript-Compiler-API-Design.md]] +--- diff --git a/Design & Experience/TypeScript-Compiler-API.md b/Design & Experience/TypeScript-Compiler-API.md new file mode 100644 index 00000000..8237d687 --- /dev/null +++ b/Design & Experience/TypeScript-Compiler-API.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9F7F6E +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - TypeScript-Compiler-API" +--- + +# [[TypeScript-Compiler-API]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/TypeScript-Compiler-API.md]] +--- diff --git a/Design & Experience/TypeScript-Compiler-Architecture.md b/Design & Experience/TypeScript-Compiler-Architecture.md new file mode 100644 index 00000000..0f86439f --- /dev/null +++ b/Design & Experience/TypeScript-Compiler-Architecture.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-98247B +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - TypeScript-Compiler-Architecture" +--- + +# [[TypeScript-Compiler-Architecture]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/TypeScript-Compiler-Architecture.md]] +--- diff --git a/Design & Experience/TypeScript-Language-Service-API.md b/Design & Experience/TypeScript-Language-Service-API.md new file mode 100644 index 00000000..04eba6ce --- /dev/null +++ b/Design & Experience/TypeScript-Language-Service-API.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-C7C758 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - TypeScript-Language-Service-API" +--- + +# [[TypeScript-Language-Service-API]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/TypeScript-Language-Service-API.md]] +--- diff --git a/Design & Experience/TypeScript-Project-References.md b/Design & Experience/TypeScript-Project-References.md new file mode 100644 index 00000000..000e6e4a --- /dev/null +++ b/Design & Experience/TypeScript-Project-References.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E852BD +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - TypeScript-Project-References" +--- + +# [[TypeScript-Project-References]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/TypeScript-Project-References.md]] +--- diff --git a/Design & Experience/TypeScript의 안전한 인터페이스 설계.md b/Design & Experience/TypeScript의 안전한 인터페이스 설계.md new file mode 100644 index 00000000..ea4987b5 --- /dev/null +++ b/Design & Experience/TypeScript의 안전한 인터페이스 설계.md @@ -0,0 +1,46 @@ +--- +id: P-REINFORCE-AUTO-08AE3A +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - TypeScript의 안전한 인터페이스 설계" +--- + +# [[TypeScript의 안전한 인터페이스 설계]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> TypeScript의 인터페이스 설계는 언어의 근본적인 특성인 구조적 타이핑(Structural Typing)의 유연성을 수용하면서도, 의도치 않은 데이터 유입과 런타임 에러를 방어하는 것을 핵심으로 합니다 [1-3]. 이를 위해 개발자는 `interface`와 `type alias`를 전략적으로 선택하고, `readonly`를 통한 불변성 확보, 식별 가능한 유니온을 활용한 상태 관리, 그리고 `satisfies` 연산자나 브랜디드 타입(Branded Types) 같은 고급 기법을 동원해야 합니다 [4-8]. 결과적으로 안전한 인터페이스 설계는 시스템의 예측 가능성을 높이고 변경에 따른 부작용을 최소화하는 견고한 아키텍처적 도구로 작용합니다 [9]. + +## 📖 구조화된 지식 (Synthesized Content) +* **구조적 타이핑과 과잉 속성 체크 (Structural Typing & EPC)** + TypeScript는 객체의 실제 구조가 일치하면 동일한 타입으로 간주하는 구조적 타이핑을 사용합니다 [3, 10]. 이러한 유연성은 예기치 않은 속성의 유입이라는 허점을 만드는데, 이를 방어하기 위해 객체 리터럴 직접 할당 시 과잉 속성 체크(Excess Property Checking, EPC)가 작동합니다 [1, 3]. 더 나아가 할당 과정에서 타입 단언(`as`)을 사용하기보다 `satisfies` 연산자를 활용하면, 객체의 구체적인 속성(리터럴 타입 등)을 유지하면서도 인터페이스 요구사항을 엄격하게 검증하여 과잉 속성과 오타를 컴파일 시점에 차단할 수 있습니다 [8, 11-13]. + +* **Interface와 Type Alias의 전략적 선택** + 성능과 확장성 측면에서 두 도구는 명확한 차이를 가집니다. `interface`는 컴파일러가 이름을 기준으로 캐싱을 수행하며 선언 병합(Declaration Merging)이 가능해 확장에 유리하므로, 핵심 도메인 모델이나 외부 API 계약에 적합합니다 [4, 14, 15]. 반면 `type alias`의 교집합(`&`)은 매번 구조를 재계산하여 성능을 저하시킬 수 있으나, 동일한 이름의 재선언을 막아 엄격한 관리가 가능하므로 비즈니스 로직 내부에서 유용합니다 [4, 15-17]. + +* **불변성(Immutability)을 통한 데이터 보호** + 객체나 배열이 예기치 않게 변경되는 것을 막기 위해 `readonly` 수식어를 사용합니다 [5, 18]. 런타임 오버헤드가 발생하는 `Object.freeze()`와 달리 `readonly`는 컴파일 시점에 완벽히 동작하여 효율적인 데이터 무결성을 제공합니다 [5, 19, 20]. 단, 기본 `readonly`는 얕은(shallow) 수준만 보호하므로, 중첩된 객체를 다룰 때는 매핑 타입과 조건부 타입을 결합한 `DeepReadonly`와 같은 재귀적 타입을 설계해야 완벽한 방어가 가능합니다 [6, 21, 22]. + +* **식별 가능한 유니온(Discriminated Unions)과 완전성 검사** + 공통된 리터럴 속성(태그)을 사용하여 타입을 좁히는(Narrowing) 식별 가능한 유니온 패턴은 상태 관리에서 불가능한 상태를 원천 차단합니다 [6, 23, 24]. 이와 함께 `never` 타입을 활용한 완전성 검사(Exhaustiveness Checking)를 적용하면, 새로운 타입이나 상태가 추가되었을 때 개발자가 이를 누락하지 않도록 컴파일 에러를 발생시켜 빈틈없는 수비 체계를 유지할 수 있습니다 [24-26]. + +* **브랜디드 타입(Branded Types)을 활용한 명목적 타이핑** + 구조적 타이핑의 한계로 인해 본질적으로 다른 데이터(예: 이메일과 일반 이름 문자열)가 섞이는 것을 막기 위해 브랜디드 타입을 사용합니다 [7, 27]. 고유한 표식(`__brand` 등)이나 `unique symbol`을 타입에 부여함으로써 컴파일 시점에 엄격한 명목적 타이핑(Nominal Typing)을 에뮬레이트하며, 외부의 오염된 데이터가 시스템 핵심 로직으로 침투하는 것을 차단합니다 [7, 28, 29]. + +* **SOLID 원칙에 기반한 인터페이스 설계** + 안전한 설계는 객체 지향의 원칙과 궤를 같이합니다. 인터페이스 분리 원칙(ISP)에 따라 한 인터페이스에 너무 많은 책임을 부여하지 않고 최소 단위로 쪼개야 변경에 유연하게 대응할 수 있습니다 [30, 31]. 또한, 복잡한 내부 서브시스템을 단순한 인터페이스로 노출하는 퍼사드(Facade) 패턴을 적용하면, 개발자의 인지 부하를 줄이고 휴먼 에러를 방지할 수 있습니다 [31-33]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[구조적 타이핑]], [[과잉 속성 체크(EPC)]], [[식별 가능한 유니온]], [[브랜디드 타입]], [[불변성(Immutability)]] +- **Projects/Contexts:** [[대규모 애플리케이션 개발]], [[프론트엔드 아키텍처 및 SDK 설계]] +- **Contradictions/Notes:** `type`과 `interface`의 사용 지침과 관련하여, TypeScript 성능과 캐싱을 고려해 객체 확장에 `interface extends`를 권장하는 측면과 [4, 14], 선언 병합(Declaration Merging)으로 인한 의도치 않은 타입 변경을 방지하기 위해 보다 엄격한 `type`의 사용을 선호하는 개발자들의 의견이 대립하는 사례가 존재합니다 [15, 17, 34, 35]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/TypeScript의 안전한 인터페이스 설계.md]] +--- diff --git a/Design & Experience/TypeScript의 인터페이스 및 객체 타입 설계.md b/Design & Experience/TypeScript의 인터페이스 및 객체 타입 설계.md new file mode 100644 index 00000000..1af6b310 --- /dev/null +++ b/Design & Experience/TypeScript의 인터페이스 및 객체 타입 설계.md @@ -0,0 +1,47 @@ +--- +id: P-REINFORCE-AUTO-844A65 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - TypeScript의 인터페이스 및 객체 타입 설계" +--- + +# [[TypeScript의 인터페이스 및 객체 타입 설계]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> TypeScript의 인터페이스와 객체 타입 설계는 명시적인 이름이 아닌 객체의 실제 형태와 속성을 기준으로 타입 호환성을 결정하는 구조적 타이핑(Structural Typing)을 근간으로 합니다. 확장성과 컴파일 성능을 고려하여 인터페이스(Interface)와 타입 별칭(Type Alias)을 전략적으로 선택해야 하며, `readonly` 수식어, 초과 속성 검사(Excess Property Checking), `satisfies` 연산자 등의 도구를 활용해 런타임 오류를 방지하고 견고하고 예측 가능한 객체 경계를 구축하는 것이 설계의 핵심입니다. + +## 📖 구조화된 지식 (Synthesized Content) +**구조적 타이핑 (Structural Typing) 메커니즘** +TypeScript의 객체 타입은 명목적 타이핑(Nominal Typing)과 달리 명시적인 상속 선언 없이도 객체가 가진 속성과 메서드의 "구조"가 일치하면 동일한 타입으로 간주하는 덕 타이핑(Duck Typing) 방식을 따릅니다 [1-3]. 예를 들어, 객체 타입 `{}`는 단순히 빈 객체를 의미하는 것이 아니라 "속성에 접근할 수는 있으나 특정 속성을 강제하지 않는 값"의 집합을 의미합니다 [4]. 이러한 구조적 타이핑은 유연성을 제공하지만, 의도하지 않은 데이터가 객체에 유입될 위험이 있어 세심한 타입 설계가 필요합니다 [3, 5]. + +**인터페이스(Interface)와 타입 별칭(Type Alias)의 전략적 선택** +객체의 형태를 정의할 때 인터페이스와 타입 별칭은 각기 다른 성능과 확장성 특성을 가집니다. +* **성능과 캐싱**: TypeScript 컴파일러는 인터페이스를 처리할 때 해당 이름을 기준으로 타입 관계를 캐싱하여 재사용합니다 [6-8]. 반면 타입 별칭을 통한 교집합(`&`) 연산은 매번 객체의 구조를 평탄화하고 계산해야 하므로 대규모 프로젝트에서는 컴파일 성능을 저하시킬 수 있습니다 [7-9]. 따라서 객체 확장 시에는 교집합 대신 인터페이스의 `extends`를 사용하는 것이 성능상 권장됩니다 [7, 9, 10]. +* **선언 병합(Declaration Merging)과 관리**: 인터페이스는 동일한 이름으로 여러 번 선언하면 하나의 인터페이스로 합쳐지는 선언 병합을 지원하여, 라이브러리 제작자가 사용자에게 확장 지점을 제공할 때 유용합니다 [11, 12]. 그러나 핵심 비즈니스 로직에서는 예기치 않은 병합으로 인한 오류를 방지하기 위해 타입 별칭을 선호하는 방식도 유효하며, 이를 적절히 이원화하여 사용하는 전략이 필요합니다 [12-14]. + +**초과 속성 검사(EPC)와 `satisfies` 연산자를 통한 경계 방어** +* **초과 속성 검사 (Excess Property Checking)**: 객체 리터럴을 직접 할당하거나 함수 인자로 전달할 때 대상 인터페이스에 정의되지 않은 초과 속성이 포함되는 것을 차단하는 기능입니다 [3, 15]. 이는 오타나 잘못된 속성 전달을 컴파일 시점에 포착하게 해줍니다 [16, 17]. 하지만 변수에 먼저 선언 및 할당한 후 전달하면 구조적 타이핑의 "최소 요건 충족" 원칙에 따라 이 검사가 작동하지 않는 한계가 있습니다 [5, 18, 19]. +* **`satisfies` 연산자 도입**: 이러한 한계를 극복하기 위해 `satisfies` 연산자를 활용할 수 있습니다. `satisfies`는 객체가 특정 인터페이스를 만족하는지 엄격히 검사하면서도, 타입 단언(`as`)이나 명시적 어노테이션(`:`)과 달리 객체가 가진 구체적인 리터럴 속성 타입과 추가된 속성에 대한 추론 정보를 잃지 않게 유지해 줍니다 [20-22]. + +**선택적(Optional) 속성과 불변성(Immutability) 설계** +* **선택적 속성 (`?`)**: 인터페이스 내에서 불확실하거나 조건부로 존재하는 데이터를 모델링할 때 사용되며, 내부적으로는 `undefined`와의 유니온 타입으로 처리되어 타입 안전성을 제공합니다 [23, 24]. +* **읽기 전용 속성 (`readonly`)**: 런타임 오버헤드 없이 컴파일 시점에 객체 속성의 수정을 금지하여 불변성을 보장합니다 [25-27]. 단, `readonly`는 해당 속성 자체에 대한 얕은(shallow) 보호만 제공하므로, 중첩된 객체 구조 전체를 보호해야 할 때는 재귀적 타입(DeepReadonly) 패턴을 구성해 활용해야 합니다 [28, 29]. + +**객체지향 설계 원칙(SOLID)의 반영** +거대한 인터페이스 하나에 너무 많은 책임을 부여하면 시스템이 변경에 취약해집니다 [30, 31]. 인터페이스 분리 원칙(Interface Segregation Principle)을 적용하여, 클라이언트가 실제로 사용하는 기능에만 의존하도록 인터페이스를 작게 나누고 이를 합성(Composition)하여 사용하는 것이 유연하고 견고한 설계의 핵심입니다 [12, 30, 32]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[구조적 타이핑 (Structural Typing)]], [[초과 속성 검사 (Excess Property Checking)]], [[선언 병합 (Declaration Merging)]], [[satisfies 연산자]] +- **Projects/Contexts:** [[대규모 TypeScript 애플리케이션 아키텍처 구축]], [[SOLID 원칙 기반의 타입 시스템 설계]] +- **Contradictions/Notes:** 소스 간 의견 대립이 존재합니다. 일부 개발자(소스 52, 138, 141)는 캐싱 성능 최적화와 외부 확장을 위한 선언 병합 기능 때문에 '인터페이스(Interface) 우선 사용'을 강력히 주장하지만, 또 다른 현업 개발자(소스 138, 140, 147)는 의도치 않은 선언 병합으로 인해 런타임 로직이 오염될 위험과 일관된 문법을 이유로 '모든 상황에서 타입 별칭(Type)만을 사용하는 규칙'을 조직 내에 강제하는 것이 장기 유지보수에 유리하다고 반박합니다. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/TypeScript의 인터페이스 및 객체 타입 설계.md]] +--- diff --git a/Design & Experience/UX-Gamification.md b/Design & Experience/UX-Gamification.md new file mode 100644 index 00000000..a13b4115 --- /dev/null +++ b/Design & Experience/UX-Gamification.md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AI-042 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.95 +tags: [ux, gamification, design, psychology] +last_reinforced: 2026-06-XX +github_commit: "[P-Reinforce] Processed UX_Gamification.md" +--- + +# [[UX - Gamification]] (사용자 경험 및 게이미피케이션) + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 게임 메커니즘을 활용해 사용자의 동기를 유발하고 지속적인 참여를 설계하는 것은, 사용자 경험(UX)의 목표와 행동 심리학적 원리를 결합한 필수 전략이다. + +## 📖 구조화된 지식 (Synthesized Content) +- **핵심 정의:** 게이미피케이션은 게임을 직접 사용하지 않더라도, 게임 디자인 요소(점수, 배지, 순위 등)를 비게임 영역에 적용하여 사용자 행동 변화를 유도하는 설계 기법이다. +- **적용 원리 (Psychology & Design):** + 1. **동기 이론 결합:** 내재적 동기(Intrinsic Motivation)와 외재적 동기(Extrinsic Motivation)의 균형을 맞추는 것이 핵심. 성취감, 자율성, 연관성(Self-Determination Theory, SDT) 충족에 초점을 둔다. + 2. **행동 심리:** 보상 체계 설계가 중요하며, 즉각적인 피드백과 작은 성공 경험을 반복적으로 제공하여 참여를 유지시킨다 (Variable Ratio Reinforcement). + 3. **UX 흐름:** 사용자 여정 지도(User Journey Map) 상에서 지루하거나 이탈 가능성이 높은 구간에 게이미피케이션 요소를 배치하는 것이 효과적이다. +- **구현 요소 (Mechanics):** + - 포인트 시스템, 배지/트로피, 리더보드 (가장 일반적). + - 스토리텔링을 통한 목표 부여 (Narrative Integration). + - 도전 과제(Challenges)와 피드백 루프 설계. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 단순히 재미 요소를 추가하는 것만으로는 부족하며, 반드시 비즈니스/학습 목표 달성이라는 명확한 목적(Goal-Oriented Design)이 있어야 한다. +- **정책 변화:** 게이미피케이션의 남용은 '보상의 역효과 (Overjustification Effect)'를 초래할 수 있으므로, 보상이 학습 자체를 방해하지 않도록 신중하게 설계해야 한다. + +## 🔗 지식 연결 (Graph) +- Parent: [[User Experience (UX) Design]] +- Related: [[Self-Determination Theory]] , [[Behavioral Economics]] , [[Gamification-Design]] +- Raw Source: [[00_Raw/UX_Gamification.md]] +--- \ No newline at end of file diff --git a/Design & Experience/UX_UI in Interactive Media.md b/Design & Experience/UX_UI in Interactive Media.md new file mode 100644 index 00000000..c1b4db6a --- /dev/null +++ b/Design & Experience/UX_UI in Interactive Media.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-8F3CFA +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - UX_UI in Interactive Media" +--- + +# [[UX_UI in Interactive Media]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/UX_UI in Interactive Media.md]] +--- diff --git a/Design & Experience/Unified-User-Experience.md b/Design & Experience/Unified-User-Experience.md new file mode 100644 index 00000000..b2030c37 --- /dev/null +++ b/Design & Experience/Unified-User-Experience.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-0A5862 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Unified-User-Experience" +--- + +# [[Unified-User-Experience]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Unified-User-Experience.md]] +--- diff --git a/Design & Experience/Union-Types.md b/Design & Experience/Union-Types.md new file mode 100644 index 00000000..afc5641c --- /dev/null +++ b/Design & Experience/Union-Types.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A21B05 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Union-Types" +--- + +# [[Union-Types]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Union-Types.md]] +--- diff --git a/Design & Experience/Urban-Morphology.md b/Design & Experience/Urban-Morphology.md new file mode 100644 index 00000000..9d0c3d18 --- /dev/null +++ b/Design & Experience/Urban-Morphology.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-27741A +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Urban-Morphology" +--- + +# [[Urban-Morphology]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Urban-Morphology.md]] +--- diff --git a/Design & Experience/Urban-Planning-Simulations.md b/Design & Experience/Urban-Planning-Simulations.md new file mode 100644 index 00000000..dc07ff82 --- /dev/null +++ b/Design & Experience/Urban-Planning-Simulations.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-F27EBE +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Urban-Planning-Simulations" +--- + +# [[Urban-Planning-Simulations]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Urban-Planning-Simulations.md]] +--- diff --git a/Design & Experience/User Experience (UX) Design.md b/Design & Experience/User Experience (UX) Design.md new file mode 100644 index 00000000..a322a496 --- /dev/null +++ b/Design & Experience/User Experience (UX) Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A613D6 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - User Experience (UX) Design" +--- + +# [[User Experience (UX) Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/User Experience (UX) Design.md]] +--- diff --git a/Design & Experience/User Experience (UX) in Game Design.md b/Design & Experience/User Experience (UX) in Game Design.md new file mode 100644 index 00000000..6b55c693 --- /dev/null +++ b/Design & Experience/User Experience (UX) in Game Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-94EC93 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - User Experience (UX) in Game Design" +--- + +# [[User Experience (UX) in Game Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/User Experience (UX) in Game Design.md]] +--- diff --git a/Design & Experience/User-Experience-Design.md b/Design & Experience/User-Experience-Design.md new file mode 100644 index 00000000..dd2b2867 --- /dev/null +++ b/Design & Experience/User-Experience-Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-41A69F +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - User-Experience-Design" +--- + +# [[User-Experience-Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/User-Experience-Design.md]] +--- diff --git a/Design & Experience/Variance (Covariance Contravariance Invariance).md b/Design & Experience/Variance (Covariance Contravariance Invariance).md new file mode 100644 index 00000000..a600cb20 --- /dev/null +++ b/Design & Experience/Variance (Covariance Contravariance Invariance).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-372429 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Variance (Covariance Contravariance Invariance)" +--- + +# [[Variance (Covariance Contravariance Invariance)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Variance (Covariance, Contravariance, Invariance).md]] +--- diff --git a/Design & Experience/Variance-(Covariance-Contravariance-Invariance).md b/Design & Experience/Variance-(Covariance-Contravariance-Invariance).md new file mode 100644 index 00000000..818208fa --- /dev/null +++ b/Design & Experience/Variance-(Covariance-Contravariance-Invariance).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-84D6F1 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Variance-(Covariance-Contravariance-Invariance)" +--- + +# [[Variance-(Covariance-Contravariance-Invariance)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Variance-(Covariance-Contravariance-Invariance).md]] +--- diff --git a/Design & Experience/Variance-Covariance-Contravariance.md b/Design & Experience/Variance-Covariance-Contravariance.md new file mode 100644 index 00000000..a17ca64c --- /dev/null +++ b/Design & Experience/Variance-Covariance-Contravariance.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-429958 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Variance-Covariance-Contravariance" +--- + +# [[Variance-Covariance-Contravariance]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Variance-Covariance-Contravariance.md]] +--- diff --git a/Design & Experience/Video Game Design.md b/Design & Experience/Video Game Design.md new file mode 100644 index 00000000..abcdb1d6 --- /dev/null +++ b/Design & Experience/Video Game Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-FE3DA6 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Video Game Design" +--- + +# [[Video Game Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Video Game Design.md]] +--- diff --git a/Design & Experience/Visual-Hierarchy-in-Game-Design.md b/Design & Experience/Visual-Hierarchy-in-Game-Design.md new file mode 100644 index 00000000..cd1b1fa7 --- /dev/null +++ b/Design & Experience/Visual-Hierarchy-in-Game-Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-827C0B +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Visual-Hierarchy-in-Game-Design" +--- + +# [[Visual-Hierarchy-in-Game-Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Visual-Hierarchy-in-Game-Design.md]] +--- diff --git a/Design & Experience/Von Neumann-Morgenstern Axioms.md b/Design & Experience/Von Neumann-Morgenstern Axioms.md new file mode 100644 index 00000000..4bd8bec6 --- /dev/null +++ b/Design & Experience/Von Neumann-Morgenstern Axioms.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E77B4E +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Von Neumann-Morgenstern Axioms" +--- + +# [[Von Neumann-Morgenstern Axioms]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Von Neumann-Morgenstern Axioms.md]] +--- diff --git a/Design & Experience/W3C-Semantic-Web-Standards.md b/Design & Experience/W3C-Semantic-Web-Standards.md new file mode 100644 index 00000000..993cfd07 --- /dev/null +++ b/Design & Experience/W3C-Semantic-Web-Standards.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-CEA1E7 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - W3C-Semantic-Web-Standards" +--- + +# [[W3C-Semantic-Web-Standards]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/W3C-Semantic-Web-Standards.md]] +--- diff --git a/Design & Experience/Wayfinding-Design.md b/Design & Experience/Wayfinding-Design.md new file mode 100644 index 00000000..86fa91fa --- /dev/null +++ b/Design & Experience/Wayfinding-Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9E4F37 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Wayfinding-Design" +--- + +# [[Wayfinding-Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Wayfinding-Design.md]] +--- diff --git a/Design & Experience/Wicked-Problems.md b/Design & Experience/Wicked-Problems.md new file mode 100644 index 00000000..5a9a6689 --- /dev/null +++ b/Design & Experience/Wicked-Problems.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9805C7 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Wicked-Problems" +--- + +# [[Wicked-Problems]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Wicked-Problems.md]] +--- diff --git a/Design & Experience/Width-and-Depth-Subtyping.md b/Design & Experience/Width-and-Depth-Subtyping.md new file mode 100644 index 00000000..a1fdf8ab --- /dev/null +++ b/Design & Experience/Width-and-Depth-Subtyping.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B088E5 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Width-and-Depth-Subtyping" +--- + +# [[Width-and-Depth-Subtyping]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Width-and-Depth-Subtyping.md]] +--- diff --git a/Design & Experience/Zod-Runtime-Validation.md b/Design & Experience/Zod-Runtime-Validation.md new file mode 100644 index 00000000..063a2214 --- /dev/null +++ b/Design & Experience/Zod-Runtime-Validation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-869303 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Zod-Runtime-Validation" +--- + +# [[Zod-Runtime-Validation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Zod-Runtime-Validation.md]] +--- diff --git a/Design & Experience/Zod-Schema-Validation.md b/Design & Experience/Zod-Schema-Validation.md new file mode 100644 index 00000000..ffbe16b3 --- /dev/null +++ b/Design & Experience/Zod-Schema-Validation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-1B08D2 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Zod-Schema-Validation" +--- + +# [[Zod-Schema-Validation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Zod-Schema-Validation.md]] +--- diff --git a/Design & Experience/eSports Performance Psychology.md b/Design & Experience/eSports Performance Psychology.md new file mode 100644 index 00000000..e1c7cad9 --- /dev/null +++ b/Design & Experience/eSports Performance Psychology.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-29AB4C +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - eSports Performance Psychology" +--- + +# [[eSports Performance Psychology]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/eSports Performance Psychology.md]] +--- diff --git a/Design & Experience/가상 DOM (Virtual DOM).md b/Design & Experience/가상 DOM (Virtual DOM).md new file mode 100644 index 00000000..29f895f4 --- /dev/null +++ b/Design & Experience/가상 DOM (Virtual DOM).md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-181AC7 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 가상 DOM (Virtual DOM)" +--- + +# [[가상 DOM (Virtual DOM)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 실제 DOM을 매번 직접 조작하는 대신, 메모리 상에 UI의 가상 표현을 구축한 뒤 이전 상태와 비교(Diffing)하여 실제 변경이 필요한 최소한의 부분만 DOM에 반영함으로써 렌더링 성능을 최적화하는 React의 핵심 아키텍처입니다. + +## 📖 구조화된 지식 (Synthesized Content) +**1. 가상 DOM의 작동 원리 (디핑 알고리즘)** React는 렌더링 시 **실제 DOM을 직접 조작하지 않고, UI가 어떻게 보여야 하는지에 대한 가상 트리(Virtual Tree)를 메모리에 구축**합니다. 애플리케이션의 상태가 변경되면 새로운 가상 DOM을 생성하고, 이를 실제 DOM의 복사본 역할을 하는 이전 가상 DOM과 비교합니다. 이 비교 과정을 통해 두 트리 간의 차이점을 찾아내고, **오직 변경이 발생한 노드나 속성만을 실제 DOM에 업데이트**하여 연산 과정을 더 빠르고 효율적으로 만듭니다. + +**2. 렌더 단계(Render Phase)와 커밋 단계(Commit Phase)** 가상 DOM을 활용한 업데이트는 명확히 두 단계로 나뉘어 실행됩니다. + +- **렌더 단계:** React가 컴포넌트를 호출하여 새로운 가상 트리를 구축하는 과정입니다. +- **커밋 단계:** 계산된 최소한의 변경 사항들을 실제 DOM에 적용하는 과정입니다. + +**3. 실제 DOM 조작 비용의 최소화** 기본적으로 브라우저에서 실제 DOM을 조작하고 레이아웃을 다시 계산하는 작업은 매우 무겁고 비용이 많이 듭니다. 가상 DOM은 이러한 값비싼 DOM 조작 횟수를 최소화하여 성능을 크게 높여줍니다. + +**4. 가상 DOM 연산의 한계와 주의점** 가상 DOM이 실제 DOM 조작 비용을 줄여주지만, 가상 DOM을 업데이트하는 연산 자체도 비용이 듭니다. 컴포넌트 트리가 너무 깊게 중첩되어 있거나, 무의미한 상태 변화로 인해 너무 많은 컴포넌트가 불필요하게 리렌더링될 경우 가상 DOM 트리 생성 및 비교 과정에서 성능 병목이 발생할 수 있습니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[재조정 (Reconciliation)]], [[React Performance Optimization]], [[불필요한 리렌더링 방지]] +- **Projects/Contexts:** [[대규모 데이터 렌더링 및 가상화 최적화]], [[고성능 실시간 상호작용 시스템을 위한 React 기반 게임 엔진 아키텍처]] +- **Contradictions/Notes:** 가상 DOM과 재조정 알고리즘은 일반적인 웹 애플리케이션의 선언적 UI 관리에는 압도적으로 훌륭하지만, 매 프레임 수만 개의 속성이 변해야 하는 3D 게임이나 무거운 애니메이션 환경에서는 오히려 가상 DOM을 비교하는 $O(n)$ 연산 자체가 프레임 저하(Lag)를 유발하는 치명적인 원인이 됩니다. 이러한 특수 환경에서는 가상 DOM을 우회하여 참조(`ref`)를 통한 **명령형 직접 조작(Imperative Manipulation)**을 사용해야만 60FPS를 달성할 수 있습니다. + +--- + +_Last updated: 2026-04-15_ +- Raw Source: [[00_Raw/2026-04-20/가상 DOM (Virtual DOM).md]] +--- diff --git a/Design & Experience/계층형 아키텍처 (Layered Architecture).md b/Design & Experience/계층형 아키텍처 (Layered Architecture).md new file mode 100644 index 00000000..cd0a6b99 --- /dev/null +++ b/Design & Experience/계층형 아키텍처 (Layered Architecture).md @@ -0,0 +1,41 @@ +--- +id: P-REINFORCE-AUTO-28439B +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 계층형 아키텍처 (Layered Architecture)" +--- + +# [[계층형 아키텍처 (Layered Architecture)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 계층형 아키텍처(Layered Architecture), 또는 n-tier 아키텍처는 시스템을 수평적인 계층(Layer)들로 나누어 구성하는 전통적이고 영향력 있는 소프트웨어 설계 패턴입니다 [1, 2]. 각 계층은 특정한 책임을 가지며, 인접한 하위 계층하고만 소통하도록 통신을 제한하여 엄격한 관심사의 분리(Separation of Concerns)를 강제합니다 [2, 3]. 이 아키텍처의 주된 목표는 시스템을 명확히 구조화하여 개발, 테스트, 유지보수성을 단순화하고 모듈성을 향상시키는 것입니다 [2, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +- **3계층 구조의 역할 분리:** 가장 보편적인 애플리케이션의 계층 구조는 3가지 영역으로 나뉘어 구현됩니다 [3, 5, 6]. + - **프레젠테이션 계층 (Presentation Layer):** 사용자 인터페이스(UI)와 사용자 경험(UX) 로직을 전담하며, 데이터를 표시하고 사용자의 입력을 캡처합니다 (예: HTML, CSS, JavaScript 등) [3, 5, 7]. + - **비즈니스 로직 계층 (Business Logic/Domain Layer):** 애플리케이션의 핵심 비즈니스 규칙과 워크플로우를 처리합니다 [5, 7]. 프레젠테이션 계층의 명령을 처리하고, 데이터 액세스 계층과 상호작용을 조정합니다 [3, 5]. + - **데이터 액세스 계층 (Data Access/Persistence Layer):** 데이터베이스와 같은 외부 데이터 소스와의 통신(CRUD 작업 등)을 전담하여, 핵심 비즈니스 로직을 데이터 저장의 구체적 구현 방식으로부터 격리시킵니다 [3, 5, 7]. + +- **구현 원칙 및 모범 사례:** + - **엄격한 계층 통신 강제:** 한 계층은 바로 아래에 위치한 인접 계층하고만 통신해야 합니다 [3, 8]. 예를 들어 프레젠테이션 계층이 데이터 액세스 계층을 직접 호출하지 못하게 차단하여 강한 결합(Tight coupling)을 예방합니다 [8]. + - **의존성 주입(DI) 활용:** 계층 간의 의존성을 직접 생성하지 않고 외부에서 주입받도록 하여 느슨한 결합(Loose coupling)과 향상된 테스트 용이성을 촉진합니다 [8, 9]. + - **명확한 인터페이스 정의:** 각 계층 사이에 잘 정의된 인터페이스를 생성하여, 상위 계층에 영향을 주지 않고 하위 계층의 구현(예: 데이터베이스 종류 변경 등)을 유연하게 교체할 수 있도록 해야 합니다 [8]. + +- **장점 및 적용 사례:** + 이 패턴은 구조가 잘 알려져 있어 구현 복잡도가 비교적 낮으며, 전통적인 엔터프라이즈 애플리케이션이나 3-Tier 시스템 구축에 이상적입니다 [9]. 각 책임을 독립적인 계층으로 격리시키기 때문에 모듈성과 재사용성이 높아지며, 특정 계층의 변화가 다른 계층에 미치는 파급 효과를 차단하여 결과적으로 각 계층별 독립적인 테스트와 유지보수가 매우 쉬워집니다 [2, 9, 10]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[관심사의 분리 (Separation of Concerns)]], [[N-Tier 아키텍처 (N-Tier Architecture)]], [[의존성 주입 (Dependency Injection)]], [[단일 책임 원칙 (SRP)]] +- **Projects/Contexts:** [[엔터프라이즈 애플리케이션]], [[웹 애플리케이션 3계층 시스템 (3-Tier Systems)]] +- **Contradictions/Notes:** 소스에 따르면, 계층형 아키텍처는 명확한 분리를 제공해 주지만 레이어를 무겁게 만들면 오히려 시스템 관리가 비효율적일 수 있으므로, 계층을 얇게 유지(Keep layers thin)하고 인터페이스와 의존성 주입을 적극 활용하여 경계를 명확히 보호할 것을 권장하고 있습니다 [8, 9]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/계층형 아키텍처 (Layered Architecture).md]] +--- diff --git a/Design & Experience/고성능 실시간 상호작용 시스템을 위한 React 기반 게임 엔진 아키텍처.md b/Design & Experience/고성능 실시간 상호작용 시스템을 위한 React 기반 게임 엔진 아키텍처.md new file mode 100644 index 00000000..df8384c4 --- /dev/null +++ b/Design & Experience/고성능 실시간 상호작용 시스템을 위한 React 기반 게임 엔진 아키텍처.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-416C0F +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 고성능 실시간 상호작용 시스템을 위한 React 기반 게임 엔진 아키텍처" +--- + +# [[고성능 실시간 상호작용 시스템을 위한 React 기반 게임 엔진 아키텍처]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/고성능 실시간 상호작용 시스템을 위한 React 기반 게임 엔진 아키텍처.md]] +--- diff --git a/Design & Experience/교육 심리학에서의 보상 설계.md b/Design & Experience/교육 심리학에서의 보상 설계.md new file mode 100644 index 00000000..a2234e31 --- /dev/null +++ b/Design & Experience/교육 심리학에서의 보상 설계.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-DD5110 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 교육 심리학에서의 보상 설계" +--- + +# [[교육 심리학에서의 보상 설계]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/교육 심리학에서의 보상 설계.md]] +--- diff --git a/Design & Experience/교육학의 모델링 전략.md b/Design & Experience/교육학의 모델링 전략.md new file mode 100644 index 00000000..24593bf4 --- /dev/null +++ b/Design & Experience/교육학의 모델링 전략.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-8413FB +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 교육학의 모델링 전략" +--- + +# [[교육학의 모델링 전략]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/교육학의 모델링 전략.md]] +--- diff --git a/Design & Experience/뇌과학 기반 중독 재활 프로그램.md b/Design & Experience/뇌과학 기반 중독 재활 프로그램.md new file mode 100644 index 00000000..1d5927dc --- /dev/null +++ b/Design & Experience/뇌과학 기반 중독 재활 프로그램.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-563E3F +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 뇌과학 기반 중독 재활 프로그램" +--- + +# [[뇌과학 기반 중독 재활 프로그램]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/뇌과학 기반 중독 재활 프로그램.md]] +--- diff --git a/Design & Experience/대규모 프론트엔드 웹 프로젝트 폴더 구조화.md b/Design & Experience/대규모 프론트엔드 웹 프로젝트 폴더 구조화.md new file mode 100644 index 00000000..c97f6368 --- /dev/null +++ b/Design & Experience/대규모 프론트엔드 웹 프로젝트 폴더 구조화.md @@ -0,0 +1,43 @@ +--- +id: P-REINFORCE-AUTO-71F406 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 대규모 프론트엔드 웹 프로젝트 폴더 구조화" +--- + +# [[대규모 프론트엔드 웹 프로젝트 폴더 구조화]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 대규모 프론트엔드 웹 프로젝트의 폴더 구조화는 프로젝트의 규모와 복잡성이 증가함에 따라 관심사를 효과적으로 분리하여 유지보수성과 확장성을 높이는 설계 과정이다 [1, 2]. 초기에는 개발의 속도를 높일 수 있는 역할 중심의 폴더 구조가 주로 사용되지만, 프로젝트가 성장함에 따라 관련 파일을 하나의 단위로 묶어 관리하는 기능 중심의 구조(예: Feature-Sliced Design 아키텍처)로 진화하게 된다 [1, 3, 4]. 이는 데이터와 화면 간의 의존성을 줄이고 컴포넌트 및 기능의 결합도를 낮추어 코드 관리를 용이하게 하기 위한 필수적인 원칙이다 [5, 6]. + +## 📖 구조화된 지식 (Synthesized Content) +* **역할 중심 폴더 구조와 한계:** + 현대의 프론트엔드 프로젝트는 주로 `/api`(백엔드 통신), `/components`(공통 컴포넌트), `/hooks`, `/pages`(라우팅), `/store`(상태 관리), `/utils` 등 세부적인 역할을 기준으로 폴더를 분리하는 방식을 사용한다 [7, 8]. 이 방식은 규모가 작을 때는 매우 효율적이지만, 대규모 프로젝트가 될 경우 특정 관심사(기능)를 찾아 수정할 때 관련 파일들이 여러 역할 폴더에 흩어져(파편화) 파악이 어려워지고, 불필요한 코드까지 건드리게 되는 등 유지보수와 기능 확장의 명확한 한계를 맞이하게 된다 [3, 4, 9]. + +* **프로젝트 진화에 따른 폴더 구조의 변화:** + 프로젝트의 성장에 따라 관심사의 방향이 달라지므로 폴더 구조 또한 지속적으로 진화해야 한다 [4, 10]. + * **초기 단계:** 화면 구현에 초점을 맞추어 페이지(route)별로 화면을 나누고, 공통 컴포넌트는 `/shared` 등에 보관하는 형태가 적합하다 [2]. + * **성장기:** 공통 로직을 제외하고, 각 페이지별로 독립적인 상태 관리와 API 호출을 묶어 페이지 폴더 안에 포함시킴으로써 책임 범위를 명확히 하는 방식이 효율적이다 [2, 6]. + * **릴리즈 막바지 및 유지보수 시기:** 데이터 처리와 비즈니스 로직 중심의 대화가 주를 이루기 시작한다 [6]. 이때 화면을 그리는 뷰(View) 컴포넌트와 데이터를 다루는 도메인 컴포넌트를 명확히 분리해야 하며, 신규 기능의 추가나 삭제 시 커밋 범위를 제한하기 위해 코드를 **기능(Feature) 단위**로 모아 관리해야 한다 [4, 6, 9]. + +* **기능 중심 아키텍처 (Feature-Sliced Design, FSD) 도입:** + 대규모 프로젝트에서 발생하는 기능 간 결합도 상승 및 관리의 어려움을 근본적으로 해결하기 위해 기능(Feature)을 기준으로 코드를 분리하는 FSD 아키텍처가 대두되었다 [1, 5]. 하나의 기능과 관련된 모든 파일을 같은 폴더에 묶어 독립적으로 관리하도록 설계함으로써 복잡성을 줄이고, 여러 개발자가 협업할 때 필요한 멘탈 모델을 일치시켜 확장성을 크게 향상시킨다 [1, 5, 11]. + +* **마이크로 프론트엔드 (Micro Frontends) 활용:** + 수백 개의 화면과 다양한 기능이 혼재된 아주 거대한 규모의 경우, 모놀리식 프론트엔드를 분해하여 마이크로 프론트엔드 아키텍처를 채택하기도 한다 [12-14]. 이 접근 방식은 장바구니, 상품 목록 등의 비즈니스 기능 단위를 별도의 개발 팀이 소유하게 하여, 프레임워크나 기술 스택에 구애받지 않고 독립적인 개발, 테스트, 배포가 가능하게 함으로써 팀의 자율성과 유지보수성을 극대화한다 [13, 15]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[관심사의 분리 (Separation of Concerns)]], [[Feature-Sliced Design (FSD)]], [[마이크로 프론트엔드 (Micro Frontends)]] +- **Projects/Contexts:** [[항해 DEV LAB 미니 학술회]] (FSD와 프론트엔드 관심사 분리에 관한 시각과 발표 내용이 논의된 맥락 [16]), [[스포티파이 (Spotify)]] (자율적인 기능 단위 '스쿼드' 모델과 프론트엔드를 분리하는 마이크로 프론트엔드를 결합하여 대규모 웹 앱 개발의 확장성을 획기적으로 개선한 실제 기업 사례 [17, 18]) +- **Contradictions/Notes:** 소스에 따르면 폴더 구조 설계에 있어서 절대적으로 "이것이 정답"이라고 할 수 있는 완벽한 구조는 존재하지 않는다. 프로젝트의 특성과 규모, 팀의 요구사항, 그리고 시기에 따라 기능 중심, 역할 중심, 혹은 도메인 중심 등으로 유연하게 폴더 구조를 진화시키고 균형을 맞추는 것이 핵심이라고 조언한다 [11, 19]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/대규모 프론트엔드 웹 프로젝트 폴더 구조화.md]] +--- diff --git a/Design & Experience/데이터 지향 설계 (Data-Oriented Design).md b/Design & Experience/데이터 지향 설계 (Data-Oriented Design).md new file mode 100644 index 00000000..801de48b --- /dev/null +++ b/Design & Experience/데이터 지향 설계 (Data-Oriented Design).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D9E964 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 데이터 지향 설계 (Data-Oriented Design)" +--- + +# [[데이터 지향 설계 (Data-Oriented Design)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/데이터 지향 설계 (Data-Oriented Design).md]] +--- diff --git a/Design & Experience/도메인 주도 설계 (DDD).md b/Design & Experience/도메인 주도 설계 (DDD).md new file mode 100644 index 00000000..dcb307f5 --- /dev/null +++ b/Design & Experience/도메인 주도 설계 (DDD).md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-ADBB0E +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 도메인 주도 설계 (DDD)" +--- + +# [[도메인 주도 설계 (DDD)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 도메인 주도 설계(DDD)는 비즈니스 도메인에 대한 깊은 이해를 중심으로 소프트웨어 개발 프로세스를 진행하는 설계 접근법입니다 [1]. 이 방식은 핵심 비즈니스 로직(뇌)을 데이터베이스나 UI 프레임워크와 같은 인프라스트럭처 관심사(팔다리)로부터 철저히 격리하여 깨끗하고 테스트 가능한 도메인 모델을 구축하는 것을 목표로 합니다 [2]. 결과적으로 DDD는 전통적인 기술 중심의 계층화를 넘어 '비즈니스 역량 중심'의 수직적 분리로 관심사의 분리(SoC) 원칙의 지평을 크게 넓혔습니다 [3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **도메인 로직의 격리 (뇌와 팔다리의 분리):** DDD는 시스템의 핵심 비즈니스 로직을 인프라스트럭처나 사용자 인터페이스(UI) 프레임워크와 같은 외부 요소와 분리할 것을 강조합니다 [2]. 이는 시스템의 본질적인 정책(뇌)과 외부 세계를 구현하는 세부 사항(팔다리)을 격리하는 관심사의 분리 원칙을 직접적으로 실천하는 것이며, 이를 통해 순수하고 유지보수하기 쉬운 도메인 모델을 생성할 수 있습니다 [2]. +- **바운디드 컨텍스트 (Bounded Contexts)를 통한 수직적 분리:** 대규모의 복잡한 도메인은 관리하기 쉬운 하위 도메인인 '바운디드 컨텍스트' 단위로 쪼개집니다 [4]. 각 컨텍스트는 독립적인 모델과 언어를 가지며, 이는 기능들을 비즈니스 영역에 따라 독립적인 모듈로 수직 분리하여 한 모듈의 변경이 다른 모듈에 미치는 영향을 차단합니다 [3]. +- **유비쿼터스 언어 (Ubiquitous Language):** 개발팀과 도메인 전문가(비즈니스 이해관계자) 간의 의사소통 간극을 메우기 위해, 프로젝트 전반(대화, 문서, 실제 코드)에서 공통으로 사용되는 '유비쿼터스 언어'를 정의하고 사용합니다 [1, 2]. +- **주요 도메인 모델링 패턴:** 비즈니스 도메인을 모델링하기 위해 뚜렷한 정체성을 가지는 '엔티티(Entities)', 속성으로만 정의되는 '값 객체(Value Objects)', 그리고 데이터의 일관성을 유지하기 위해 단일 단위로 취급되는 도메인 객체들의 군집인 '애그리거트(Aggregates)' 등의 패턴을 사용합니다 [4]. +- **마이크로서비스 아키텍처(MSA)의 논리적 기반:** DDD의 바운디드 컨텍스트 개념은 비즈니스 역량 중심의 분리를 가능하게 함으로써, 오늘날의 마이크로서비스 아키텍처(MSA)를 구축하고 분산 시스템을 설계하는 논리적인 기반이 됩니다 [3]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[바운디드 컨텍스트 (Bounded Context)]], [[유비쿼터스 언어 (Ubiquitous Language)]], [[관심사의 분리 (Separation of Concerns)]], [[애그리거트 (Aggregates)]] +- **Projects/Contexts:** [[마이크로서비스 아키텍처 (MSA)]], [[복잡한 비즈니스 도메인 (금융, 헬스케어, 이커머스 등)]] +- **Contradictions/Notes:** 소스 내용 간의 모순점은 발견되지 않았습니다. 다만, 도메인 주도 설계(DDD)는 비즈니스와 강하게 결합된 명확한 모델을 도출하는 데 큰 장점이 있지만, 도메인 전문가와의 긴밀한 협업과 깊은 모델링 분석 시간이 필요하여 구현 복잡도와 리소스 요구량이 높다는 특징이 있습니다 [5]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/도메인 주도 설계 (DDD).md]] +--- diff --git a/Design & Experience/도메인 주도 설계(DDD).md b/Design & Experience/도메인 주도 설계(DDD).md new file mode 100644 index 00000000..52becd14 --- /dev/null +++ b/Design & Experience/도메인 주도 설계(DDD).md @@ -0,0 +1,36 @@ +--- +id: P-REINFORCE-AUTO-4DC206 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 도메인 주도 설계(DDD)" +--- + +# [[도메인 주도 설계(DDD)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 도메인 주도 설계(DDD)는 비즈니스 도메인에 대한 깊은 이해를 중심으로 소프트웨어 개발 프로세스를 구성하는 설계 방식입니다 [1]. 이 접근법은 복잡한 비즈니스 로직을 애플리케이션의 핵심에 두고, 개발팀과 비즈니스 이해관계자 간의 긴밀한 협력을 통해 현실 세계의 비즈니스 프로세스를 정확히 반영하는 모델을 생성합니다 [1]. 결과적으로 DDD는 기술 중심의 분리에서 벗어나 비즈니스 역량 중심의 관심사 분리를 가능하게 합니다 [2]. + +## 📖 구조화된 지식 (Synthesized Content) +* **핵심 원칙 및 목표**: DDD의 주요 목표는 프로젝트의 모든 참여자가 사용하는 공통 어휘인 '보편적 언어(Ubiquitous Language)'를 구축하여 개발자와 비즈니스 이해관계자 간의 의사소통 격차를 해소하고 복잡성을 관리하는 것입니다 [1]. 또한, 핵심 비즈니스 로직을 데이터베이스나 UI 프레임워크와 같은 외부 인프라로부터 철저히 분리하고 보호하여 유지보수성과 테스트 가능성을 높이는 데 중점을 둡니다 [3, 4]. +* **주요 패턴 및 요소**: + * **제한된 문맥(Bounded Contexts)**: 크고 복잡한 도메인을 관리하기 쉬운 하위 도메인(예: '주문 관리', '고객 지원')으로 나눕니다. 각 문맥은 고유한 모델과 보편적 언어를 가지며 [5], 이는 마이크로서비스 아키텍처(MSA)를 위한 논리적 기반을 제공하여 모듈 간의 부작용(Side Effects)을 차단합니다 [2]. + * **애그리게이트(Aggregates)**: 단일 단위로 취급할 수 있는 도메인 객체들의 군집입니다. 애그리게이트의 루트(root)는 전체 군집의 일관성을 보장하고 트랜잭션 관리를 단순화합니다 [5]. + * **엔티티(Entities)와 값 객체(Value Objects)**: 명확한 식별성을 지닌 객체는 '엔티티'(예: 고객)로 정의하고, 고유 식별성 없이 속성만으로 정의되는 객체는 '값 객체'(예: 배송지 주소)로 구분하여 모델링합니다 [5]. +* **실천 전략**: DDD를 효과적으로 구현하기 위해서는 도메인 전문가와의 협업을 통해 공유 언어 사전을 개발 및 유지해야 합니다 [3]. 또한, 비즈니스 도메인을 탐색하고 도메인 이벤트, 명령, 애그리게이트를 신속하게 식별하기 위해 '이벤트 스토밍(Event Storming)'과 같은 협업 워크숍을 활용하는 것이 권장됩니다 [3]. +* **적용 환경 및 특징**: 금융, 의료, 이커머스와 같이 비즈니스 도메인이 복잡한 시스템에 이상적입니다 [6]. 비즈니스와의 강력한 정렬을 제공하지만, 깊은 도메인 모델링과 도메인 전문가의 분석 시간 등이 요구되어 구현 복잡도와 리소스 요구 사항이 높은 편입니다 [6]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[보편적 언어(Ubiquitous Language)]], [[제한된 문맥(Bounded Contexts)]], [[마이크로서비스 아키텍처(MSA)]], [[관심사의 분리(SoC)]] +- **Projects/Contexts:** [[이벤트 스토밍(Event Storming)]], [[복잡한 비즈니스 도메인(금융, 의료, 이커머스 등)]] +- **Contradictions/Notes:** 도메인 주도 설계는 비즈니스 도메인을 명확하게 반영하고 강력한 기반을 제공하지만, 깊은 수준의 모델링과 조직적 협력이 필요하므로 구현 복잡성이 높고 상당한 리소스(도메인 전문가, 분석 시간 등)가 요구된다는 제약이 있습니다 [6]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/도메인 주도 설계(DDD).md]] +--- diff --git a/Design & Experience/도파민 보상 체계.md b/Design & Experience/도파민 보상 체계.md new file mode 100644 index 00000000..342e0042 --- /dev/null +++ b/Design & Experience/도파민 보상 체계.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-19D38E +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 도파민 보상 체계" +--- + +# [[도파민 보상 체계]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/도파민 보상 체계.md]] +--- diff --git a/Design & Experience/라이브러리 타입 선언 (dts) 확장.md b/Design & Experience/라이브러리 타입 선언 (dts) 확장.md new file mode 100644 index 00000000..e5bbd9e5 --- /dev/null +++ b/Design & Experience/라이브러리 타입 선언 (dts) 확장.md @@ -0,0 +1,37 @@ +--- +id: P-REINFORCE-AUTO-73EE30 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 라이브러리 타입 선언 (dts) 확장" +--- + +# [[라이브러리 타입 선언 (dts) 확장]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 라이브러리 타입 선언(.d.ts) 확장은 타입스크립트 환경에서 외부 자바스크립트 라이브러리의 타입 정보를 제공, 패치(patch) 또는 연장하기 위해 수행하는 작업입니다 [1-3]. 주로 인터페이스(Interface)의 '선언 병합(Declaration Merging)' 기능을 활용하여, 기존 라이브러리 코드의 수정 없이 소비자가 필요한 타입 선언을 유연하게 추가할 수 있도록 지원합니다 [2, 4, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +* **d.ts 파일의 목적과 활용** + 타입스크립트에서 자바스크립트 라이브러리를 사용할 때는 실제 구현부 없이 타입 정보만 제공하는 선언 파일(.d.ts)이 필요합니다 [3]. 많은 인기 라이브러리는 자체적으로 타입을 제공하거나 `DefinitelyTyped`를 통해 설치할 수 있습니다 [3]. 만약 라이브러리에 타입이 존재하지 않는다면, 개발자가 직접 모듈을 선언하여 컴파일 에러를 억제할 수 있습니다 [3, 6]. +* **선언 병합(Declaration Merging)을 이용한 타입 패치** + 라이브러리의 타입 선언을 확장하거나 패치하는 데에는 '인터페이스(Interface)'가 핵심적으로 사용됩니다 [1, 2]. 타입스크립트는 동일한 이름의 인터페이스가 여러 번 선언될 경우 이를 하나의 인터페이스로 자동 병합하는 기능을 갖추고 있습니다 [4, 5]. +* **라이브러리 확장 지점(Extension Point) 제공** + 인터페이스의 병합 특성은 라이브러리 제작자가 패키지 사용자(소비자)에게 유용한 타입 확장 지점을 제공할 때 매우 효과적입니다 [2, 5]. 반면 타입 별칭(Type Alias)은 동일한 이름으로 재선언 및 병합이 불가능하므로, 라이브러리 수준의 타입 패치나 확장 용도로는 인터페이스가 권장됩니다 [5, 7]. + +*(참고: 구체적인 글로벌(Global) 환경에서의 모듈 수정 템플릿이나, d.ts 파일을 직접 생성하고 퍼블리싱하는 상세한 코드 작성 문법에 대해서는 소스에 관련 정보가 부족합니다 [8].)* + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[인터페이스(Interface)]], [[선언 병합(Declaration Merging)]], [[타입 별칭(Type Alias)]] +- **Projects/Contexts:** [[TypeScript 라이브러리 생태계 및 DefinitelyTyped]] +- **Contradictions/Notes:** 소스에 따르면, 일반적인 애플리케이션 코드 작성 시에는 엄격한 관리가 가능한 타입 별칭(Type)을 선호하는 실무 의견이 많지만, 외부 라이브러리 사용자가 타입을 확장해야 하는 특수한 상황에서는 선언 병합이 가능한 인터페이스(Interface)가 절대적으로 더 적합하다는 뚜렷한 용도 차이를 보입니다 [1, 2, 5, 7]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/라이브러리 타입 선언 (d.ts) 확장.md]] +--- diff --git a/Design & Experience/마이크로 프론트엔드 (Micro Frontends).md b/Design & Experience/마이크로 프론트엔드 (Micro Frontends).md new file mode 100644 index 00000000..20e3c23d --- /dev/null +++ b/Design & Experience/마이크로 프론트엔드 (Micro Frontends).md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-039AAE +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 마이크로 프론트엔드 (Micro Frontends)" +--- + +# [[마이크로 프론트엔드 (Micro Frontends)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 마이크로 프론트엔드(Micro Frontends)는 백엔드의 마이크로서비스 아키텍처와 유사하게, 방대하고 복잡한 프론트엔드 애플리케이션을 작고 독립적인 여러 모듈로 나누어 개발하는 접근 방식이다 [1]. 이 아키텍처는 비즈니스 기능에 따라 프론트엔드를 분할하여, 각 부분을 전담 팀이 독립적으로 개발, 테스트, 배포할 수 있도록 지원한다 [1]. 기존 모놀리식 구조의 한계를 극복하여 팀의 자율성, 확장성, 유지보수성을 크게 향상시키는 현대 웹 개발의 솔루션이다 [1-3]. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[마이크로서비스 아키텍처 (Microservices Architecture)]], [[모놀리식 아키텍처 (Monolithic Architecture)]], [[관심사의 분리 (Separation of Concerns)]], [[웹 컴포넌트 (Web Components)]], [[모듈 페더레이션 (Module federation)]] +- **Projects/Contexts:** [[Spotify의 마이크로 프론트엔드 도입 (스쿼드 모델)]], [[Netflix의 레거시 현대화 및 대시보드]], [[Zalando의 이커머스 모듈 분리]], [[IKEA와 Amazon의 독립적 UX 커스터마이징]] +- **Contradictions/Notes:** 소스에 따르면 마이크로 프론트엔드는 팀의 자율성과 시스템의 유지보수성을 비약적으로 높여주지만, 동시에 여러 마이크로 프론트엔드 번들이 로드되면서 초기 로딩 성능에 오버헤드(Performance Overhead)가 발생하고, 스타일이나 버전 충돌 등 새로운 복잡성이 추가될 수 있다는 단점(과제)을 명확히 동반한다 [5, 9]. 따라서 소규모 프로젝트나 적절한 DevOps 기반이 없는 환경에서는 오버헤드가 장점을 상쇄하므로 피해야 한다고 경고한다 [11]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/마이크로 프론트엔드 (Micro Frontends).md]] +--- diff --git a/Design & Experience/맞춤형 개별화 학습 설계.md b/Design & Experience/맞춤형 개별화 학습 설계.md new file mode 100644 index 00000000..16456e84 --- /dev/null +++ b/Design & Experience/맞춤형 개별화 학습 설계.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6B106E +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 맞춤형 개별화 학습 설계" +--- + +# [[맞춤형 개별화 학습 설계]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/맞춤형 개별화 학습 설계.md]] +--- diff --git a/Design & Experience/모바일 앱 및 웹 인터페이스 설계.md b/Design & Experience/모바일 앱 및 웹 인터페이스 설계.md new file mode 100644 index 00000000..7f6ed961 --- /dev/null +++ b/Design & Experience/모바일 앱 및 웹 인터페이스 설계.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B1EC47 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 모바일 앱 및 웹 인터페이스 설계" +--- + +# [[모바일 앱 및 웹 인터페이스 설계]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/모바일 앱 및 웹 인터페이스 설계.md]] +--- diff --git a/Design & Experience/몰입감 (Presence).md b/Design & Experience/몰입감 (Presence).md new file mode 100644 index 00000000..e552e2b2 --- /dev/null +++ b/Design & Experience/몰입감 (Presence).md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-589F08 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 몰입감 (Presence)" +--- + +# [[몰입감 (Presence)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 몰입감(Presence)은 사용자가 가상 현실이나 전자 환경을 현실 세계보다 우선적으로 수용하여, 비물리적 세계에 실제로 "존재하는 것(being there)"처럼 느끼는 심리적 상태를 의미합니다 [1, 2]. 이는 가상현실(VR) 및 혼합현실(MR) 경험의 성공을 결정짓는 핵심 요소로, 사용자의 참여도, 몰입(Immersion), 그리고 학습 성과를 향상시킵니다 [3, 4]. 그러나 고도의 몰입감을 유지하는 것은 인지 부하(Cognitive Load)를 증가시킬 수 있으며, 사이버 멀미(VR sickness)와 같은 요인에 의해 쉽게 파괴될 수 있습니다 [3, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +- **몰입감의 정의와 3대 환상(Illusions):** + 몰입감(Presence)은 가상의 현실을 실제 현실처럼 일시적으로 수용하는 감각을 뜻합니다 [1]. 학자 Slater(2009)에 따르면, 가상 환경에서의 몰입감은 크게 세 가지로 구성됩니다. 첫째는 묘사된 장소에 있는 것처럼 느끼는 '장소의 환상(Place illusion)'이고, 둘째는 가상의 사건이 실제로 일어나고 있다고 믿는 '그럴듯함의 환상(Plausibility illusion)'이며, 셋째는 가상 신체에 대한 '소유권의 환상(Illusion of ownership)'입니다 [6]. + +- **유사 개념(Immersion 및 Engagement)과의 관계:** + 몰입감(Presence)이 가상 세계에 "존재한다"는 감각에 초점을 맞춘다면, 'Immersion(몰입)'은 사용자가 가상 환경에 얼마나 깊이 관여(involvement)되어 있는지를 나타내는 지표로 자주 혼용됩니다 [1]. 반면 'Engagement(참여)'는 내러티브나 시청각적 자극보다는 주로 실제 게임플레이와 상호작용을 통해 발생하는 깊은 개입을 뜻합니다 [7]. + +- **학습 성과 및 플로우(Flow)와의 연결:** + 가상현실과 같은 몰입형 환경에서 몰입감은 사용자 경험을 성공으로 이끄는 초석입니다. 다른 화면 기반의 활동들에 비해 더 뛰어난 과업 수행 능력과 강력한 생리적 반응을 유도합니다 [4]. 이러한 상태는 긍정적인 감정과 강렬한 집중을 수반하는 '플로우(Flow State)' 경험으로 이어져 학습자의 지식 습득과 참여를 효과적으로 촉진합니다 [8, 9]. + +- **인지 부하 및 몰입감 저해 요인:** + 가상 환경에서 높은 실재감을 느끼는 것은 사용자의 정보 처리 과정을 수반하므로, 몰입감이 높아질수록 인지 부하(Cognitive Load) 역시 함께 증가하는 경향을 보입니다 [3, 10]. 더욱이, 시각적-전정 감각의 불일치로 인해 발생하는 사이버 멀미(VR sickness)나 인터페이스의 마찰(Friction) 등은 사용자의 경험을 방해하고 형성된 몰입감을 크게 저하시키거나 파괴할 수 있습니다 [5]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Flow State]], [[Cognitive Load]], [[Immersion]], [[Virtual Reality (VR)]] +- **Projects/Contexts:** [[Mixed Reality (MR) Tasks]], [[VR Exergaming]] +- **Contradictions/Notes:** 소스에 따르면 높은 수준의 가상 몰입감(Virtual Presence)은 학습 성과와 참여도를 긍정적으로 향상시키지만, 가상 콘텐츠를 처리하기 위한 정신적 노력이 요구되어 필연적으로 인지 부하(Cognitive Load)를 증가시킨다는 이중적 특성을 지닙니다 [3, 10]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/몰입감 (Presence).md]] +--- diff --git a/Design & Experience/바운디드 컨텍스트 (Bounded Context).md b/Design & Experience/바운디드 컨텍스트 (Bounded Context).md new file mode 100644 index 00000000..84ea82f6 --- /dev/null +++ b/Design & Experience/바운디드 컨텍스트 (Bounded Context).md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-7B2713 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 바운디드 컨텍스트 (Bounded Context)" +--- + +# [[바운디드 컨텍스트 (Bounded Context)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 바운디드 컨텍스트(Bounded Context)는 도메인 주도 설계(DDD)에서 크고 복잡한 비즈니스 도메인을 더 작고 관리하기 쉬운 하위 도메인으로 분할한 단위를 의미합니다 [1, 2]. 각 컨텍스트는 고유한 소프트웨어 모델과 보편적 언어(Ubiquitous Language)를 가지며, 도메인의 논리를 캡슐화하여 서로 다른 책임 영역 간의 명확한 경계를 정의합니다 [1, 3]. 이를 통해 소프트웨어 모델을 순수하고 기능에 집중된 상태로 유지하며, 시스템의 복잡성을 효과적으로 관리할 수 있게 돕습니다 [1, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +* **도메인 분할과 경계 설정**: 바운디드 컨텍스트는 비즈니스 도메인에 대한 깊은 이해를 바탕으로 아키텍처를 설계하는 도메인 주도 설계(DDD)의 핵심 접근법입니다 [1, 4]. 거대하고 복잡한 도메인을 '주문 관리(Order Management)'나 '고객 지원(Customer Support)'과 같이 관리하기 용이한 바운디드 컨텍스트 단위로 나눕니다 [1]. +* **독립적인 모델과 보편적 언어 보장**: 분할된 각 바운디드 컨텍스트는 자신만의 독립적인 모델과 보편적 언어(Ubiquitous Language)를 갖습니다 [1, 2]. 이는 개발 팀과 비즈니스 전문가 간의 공통된 어휘를 제공하여 커뮤니케이션의 간극을 좁히고, 해당 컨텍스트 내의 모델이 다른 영역의 간섭 없이 순수성을 유지할 수 있도록 만듭니다 [1, 4]. +* **관심사의 분리(SoC) 실현**: 바운디드 컨텍스트는 시스템 설계 수준에서 관심사의 분리(Separation of Concerns)를 구현하는 방법입니다 [3, 5]. 핵심 도메인의 논리를 식별하고 이를 바운디드 컨텍스트로 캡슐화함으로써, 책임 영역 간의 명확한 경계를 설정하여 유지보수성을 높이고 코드를 모듈화합니다 [3]. +* **마이크로서비스 아키텍처(MSA)의 논리적 기반**: 복잡한 시스템에서 바운디드 컨텍스트는 마이크로서비스 아키텍처를 설계하는 논리적인 토대가 됩니다 [2]. 사용자 관리, 상품 관리, 주문 관리 등의 기능을 독립적인 모듈로 분리하여 각 영역이 독립적인 모델과 언어를 갖게 함으로써, 한 모듈의 변경이 다른 모듈에 미치는 파급 효과를 효과적으로 차단할 수 있습니다 [2]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[도메인 주도 설계 (Domain-Driven Design, DDD)]], [[보편적 언어 (Ubiquitous Language)]], [[마이크로서비스 아키텍처 (Microservices Architecture)]], [[관심사의 분리 (Separation of Concerns, SoC)]] +- **Projects/Contexts:** 복잡한 비즈니스 도메인 모델링 [1], 객체 지향 및 모듈러 소프트웨어 시스템 설계 [3, 5], 마이크로서비스로의 서비스 분리 및 마이그레이션 [2] +- **Contradictions/Notes:** 소스 내에 바운디드 컨텍스트의 효용이나 개념에 대한 상반된 주장은 존재하지 않으며, 일관되게 시스템 복잡성 완화와 마이크로서비스 확장을 위한 핵심 기반으로 설명되고 있습니다. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/바운디드 컨텍스트 (Bounded Context).md]] +--- diff --git a/Design & Experience/반응형 윈도우 리사이즈(Resize) 이벤트 처리.md b/Design & Experience/반응형 윈도우 리사이즈(Resize) 이벤트 처리.md new file mode 100644 index 00000000..8a5f4d8a --- /dev/null +++ b/Design & Experience/반응형 윈도우 리사이즈(Resize) 이벤트 처리.md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-DC2EFA +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 반응형 윈도우 리사이즈(Resize) 이벤트 처리" +--- + +# [[반응형 윈도우 리사이즈(Resize) 이벤트 처리]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 윈도우 창 크기 조절 시 초당 수십 번씩 발생하는 `resize` 이벤트로 인한 UI 렌더링 병목 현상을 방지하기 위해, 디바운싱(Debouncing) 적용 및 이벤트 리스너 해제(Cleanup)를 통해 브라우저 과부하와 메모리 누수를 막는 성능 최적화 기법입니다. + +## 📖 구조화된 지식 (Synthesized Content) +**1. 리사이즈 이벤트의 성능 병목 현상** 브라우저 창 크기를 조절할 때, 브라우저는 아주 짧은 시간에 수십에서 수백 번의 `resize` 이벤트를 연속적으로 발생시킵니다. 만약 이 이벤트 핸들러 내부에서 React의 상태(State)를 업데이트하거나 무거운 연산을 수행하게 되면, 컴포넌트 트리가 매 틱마다 리렌더링을 시도하여 심각한 프레임 드랍과 브라우저 멈춤 현상(Bottleneck)이 발생합니다. + +**2. 스로틀링(Throttling)과 디바운싱(Debouncing) 적용** 과도한 이벤트 실행을 제어하기 위해 핸들러 함수에 디바운싱이나 스로틀링을 적용해야 합니다. + +- **디바운스(Debounce):** 사용자가 창 크기 조절을 멈춘 후 일정 시간(예: 200ms)이 지났을 때 마지막에 단 한 번만 리사이즈 로직(상태 업데이트 등)을 처리합니다. 레이아웃 재계산 비용이 큰 경우 가장 적합한 해결책입니다. +- **스로틀(Throttle):** 창 크기를 조절하는 중에도 실시간으로 부드러운 UI 업데이트가 필요할 때, 이벤트를 일정한 시간 간격(예: 16ms, 약 60FPS)으로만 실행되도록 강제합니다. + +**3. 이벤트 리스너 해제와 메모리 누수(Memory Leak) 방지** React 컴포넌트 내부(주로 `useEffect` 훅)에서 `window.addEventListener('resize', handleResize)`를 등록했다면, **반드시 컴포넌트가 화면에서 사라질 때(Unmount) `window.removeEventListener`를 호출하는 클린업(Cleanup) 함수를 반환**해야 합니다. 이 정리 작업을 누락하면 컴포넌트가 파괴된 후에도 숨겨진 백그라운드에서 이벤트가 계속 수신되어, 시간이 지날수록 앱이 느려지고 결국 크래시를 유발하는 심각한 메모리 누수로 이어집니다. + +**4. 외부 지식: ResizeObserver API 활용 (※ 외부 지식 참고)** _이 내용은 제공된 소스 외부의 지식입니다._ 최신 웹 개발에서는 전역 `window` 객체에 `resize` 이벤트를 거는 대신, DOM 요소 자체의 크기 변화만 독립적으로 감지하는 브라우저 내장 API인 `ResizeObserver`를 활용하는 추세입니다. 이를 사용하면 전체 윈도우가 아닌 특정 컴포넌트(예: 반응형 3D 캔버스나 대규모 데이터 그리드 영역)의 크기가 변할 때만 타겟팅하여 반응할 수 있어 성능과 모듈성 면에서 훨씬 효율적입니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Throttling & Debouncing]], [[React Performance Optimization]], [[Memory Leak Prevention (메모리 누수 방지)]], [[useEffect 클린업(Cleanup)]] +- **Projects/Contexts:** [[반응형 3D 캔버스(Three.js/R3F) 크기 최적화]], [[실시간 데이터 대시보드 레이아웃 조절 시스템]] +- **Contradictions/Notes:** 단순히 윈도우 크기에 맞춰 CSS 요소의 크기나 배치를 조정하는 것이 목적이라면, 자바스크립트의 `resize` 이벤트를 아예 사용하지 않고 CSS의 미디어 쿼리(Media Queries)나 상대 단위(`vw`, `vh`, `100%`)를 사용하는 것이 렌더링 파이프라인 성능 측면에서 가장 비용이 낮고 완벽한 방법입니다. 자바스크립트 이벤트는 캔버스 렌더러 리사이즈나 복잡한 가상화 리스트(Virtualization) 재계산 등 CSS만으로 해결할 수 없는 경우에만 제한적으로 사용해야 합니다. + +--- + +_Last updated: 2026-04-14_ +- Raw Source: [[00_Raw/2026-04-20/반응형 윈도우 리사이즈(Resize) 이벤트 처리.md]] +--- diff --git a/Design & Experience/비동기 데이터 패칭 (Async Operations Pattern).md b/Design & Experience/비동기 데이터 패칭 (Async Operations Pattern).md new file mode 100644 index 00000000..bdf06d92 --- /dev/null +++ b/Design & Experience/비동기 데이터 패칭 (Async Operations Pattern).md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-C7F096 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 비동기 데이터 패칭 (Async Operations Pattern)" +--- + +# [[비동기 데이터 패칭 (Async Operations Pattern)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 비동기 데이터 패칭(Async Operations Pattern)은 API 요청과 같은 비동기 작업 및 UI 상태를 안전하게 관리하기 위한 재사용 가능한 아키텍처 패턴입니다. 주로 식별 가능한 유니온(Discriminated Unions)을 활용하여 로딩, 성공, 실패와 같은 다양한 상태를 모델링하며, 런타임 및 컴파일 단계에서 유효하지 않은 상태가 발생하는 것을 원천적으로 차단합니다. 이를 통해 애플리케이션의 상태 전환을 예측 가능하고 타입 안전(Type-safe)하게 만듭니다 [1-3]. + +## 📖 구조화된 지식 (Synthesized Content) +* **식별 가능한 유니온을 통한 상태 모델링:** 비동기 작업 패턴은 '식별 가능한 유니온(Discriminated Unions)'을 핵심으로 사용합니다. 비동기 작업 처리 시 API 응답을 모델링하는 데 탁월하며, 상태를 나타내는 판별자(Discriminator)를 통해 유효하지 않은 조합의 상태가 나타나는 것을 방지합니다 [1, 2, 4]. +* **상태 머신 패턴(State Machine Pattern)과의 결합:** 비동기 데이터 패칭은 일종의 상태 머신처럼 동작합니다. `FETCH_START`, `FETCH_SUCCESS`, `FETCH_FAILURE` 혹은 `Idle`, `Fetching`, `Success`, `Failure`, `RETRY`, `REFRESH`와 같은 명확한 상태(State)들을 정의하고 전환합니다 [5]. 타입스크립트의 철저한 검사(Exhaustive Checking)를 통해 개발자가 특정 비동기 상태의 처리를 누락하는 것을 컴파일 타임에 방지할 수 있습니다 [2, 4]. +* **비동기 UI 상태를 위한 런타임 유효성 검사 (Runtime Validation):** 타입스크립트의 타입 검사는 런타임 오버헤드가 없는 컴파일 타임 기능이지만, 외부 API 등에서 유입되는 데이터는 타입스크립트만으로 제어할 수 없습니다. 따라서 비동기 데이터 패칭 패턴은 Zod와 같은 유효성 검사 라이브러리를 결합하여 태그된 UI 상태(Tagged UI State)를 런타임에 검증하는 재사용 가능한 스키마 팩토리(schema factory) 형태로 사용될 수 있습니다 [6, 7]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[식별 가능한 유니온 (Discriminated Unions)]], [[상태 머신 (State Machine Pattern)]], [[런타임 유효성 검사 (Runtime Validation)]] +- **Projects/Contexts:** [[API 응답 처리 (API Response Handling)]], [[비동기 UI 상태 관리 (Async UI State)]] +- **Contradictions/Notes:** 소스 내에서 비동기 데이터 패칭 패턴 자체에 대한 상충되는 의견은 없으나, 타입스크립트의 구조적 타이핑 특성상 컴파일 타임의 에러 방지만으로는 외부 비동기 데이터의 무결성을 완벽히 보장할 수 없다는 한계가 존재합니다. 따라서 외부 API나 설정 파일에서 전달받는 비동기 상태 데이터는 반드시 런타임 유효성 검사를 병행해야 한다고 강조하고 있습니다 [6, 7]. (소스에 비동기 데이터 패칭의 구체적인 코드 구현 예시 정보는 일부 누락되어 있어 관련 정보가 부족합니다.) + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/비동기 데이터 패칭 (Async Operations Pattern).md]] +--- diff --git a/Design & Experience/사용성 공학 (Usability Engineering).md b/Design & Experience/사용성 공학 (Usability Engineering).md new file mode 100644 index 00000000..d51d4df4 --- /dev/null +++ b/Design & Experience/사용성 공학 (Usability Engineering).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5E0332 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 사용성 공학 (Usability Engineering)" +--- + +# [[사용성 공학 (Usability Engineering)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/사용성 공학 (Usability Engineering).md]] +--- diff --git a/Design & Experience/사용자 경험 (UX) 디자인.md b/Design & Experience/사용자 경험 (UX) 디자인.md new file mode 100644 index 00000000..7e17747a --- /dev/null +++ b/Design & Experience/사용자 경험 (UX) 디자인.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A602EE +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 사용자 경험 (UX) 디자인" +--- + +# [[사용자 경험 (UX) 디자인]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/사용자 경험 (UX) 디자인.md]] +--- diff --git a/Design & Experience/사용자 경험 (UX).md b/Design & Experience/사용자 경험 (UX).md new file mode 100644 index 00000000..4bb8c014 --- /dev/null +++ b/Design & Experience/사용자 경험 (UX).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-121347 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 사용자 경험 (UX)" +--- + +# [[사용자 경험 (UX)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/사용자 경험 (UX).md]] +--- diff --git a/Design & Experience/사용자 경험 디자인 (UX Design).md b/Design & Experience/사용자 경험 디자인 (UX Design).md new file mode 100644 index 00000000..873b71d8 --- /dev/null +++ b/Design & Experience/사용자 경험 디자인 (UX Design).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-EA48D7 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 사용자 경험 디자인 (UX Design)" +--- + +# [[사용자 경험 디자인 (UX Design)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/사용자 경험 디자인 (UX Design).md]] +--- diff --git a/Design & Experience/사회 인지 이론(Social Cognitive Theory).md b/Design & Experience/사회 인지 이론(Social Cognitive Theory).md new file mode 100644 index 00000000..4c6af097 --- /dev/null +++ b/Design & Experience/사회 인지 이론(Social Cognitive Theory).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-091F7D +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 사회 인지 이론(Social Cognitive Theory)" +--- + +# [[사회 인지 이론(Social Cognitive Theory)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/사회 인지 이론(Social Cognitive Theory).md]] +--- diff --git a/Design & Experience/상태 관리 최적화 (Zustand Valtio).md b/Design & Experience/상태 관리 최적화 (Zustand Valtio).md new file mode 100644 index 00000000..11a8ee4e --- /dev/null +++ b/Design & Experience/상태 관리 최적화 (Zustand Valtio).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-C69D47 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 상태 관리 최적화 (Zustand Valtio)" +--- + +# [[상태 관리 최적화 (Zustand Valtio)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/상태 관리 최적화 (Zustand, Valtio).md]] +--- diff --git a/Design & Experience/상태 관리(State Management).md b/Design & Experience/상태 관리(State Management).md new file mode 100644 index 00000000..b92fecbe --- /dev/null +++ b/Design & Experience/상태 관리(State Management).md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-58EC09 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 상태 관리(State Management)" +--- + +# [[상태 관리(State Management)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 상태 관리(State Management)는 사용자 입력, API 응답, UI 구성 및 애플리케이션 설정 등 시간이 지남에 따라 변경되는 데이터를 추적하고 유지하는 방법론입니다 [1]. 상태 흐름을 명확하게 관리하지 못하면 애플리케이션의 동작을 예측할 수 없게 되고 디버깅이 심각하게 어려워지며, 기술 부채와 성능 문제(불필요한 리렌더링, 메모리 누수 등)를 유발합니다 [2]. TypeScript 환경에서는 식별 가능한 유니온(Discriminated Unions)과 불변성(Immutability) 강제를 통해 무효한 상태를 원천 차단하고 안전하게 상태를 제어할 수 있습니다 [3-5]. + +## 📖 구조화된 지식 (Synthesized Content) +- **상태 관리의 중요성과 오남용의 위험성:** 명확한 패턴 없이 여러 곳에서 상태가 수정될 수 있으면 애플리케이션은 예측 불가능해집니다. 이는 버그의 근본 원인 파악을 매우 어렵게 만들고, 중복되거나 오래된 상태(stale state) 및 부수 효과(side-effects)로 인한 기술 부채를 축적시킵니다. 결과적으로 신규 개발자의 코드 이해도를 떨어뜨리고 렌더링 저하나 네트워크 요청 중복 같은 성능 문제를 야기합니다 [1, 2]. +- **식별 가능한 유니온(Discriminated Unions)을 활용한 상태 모델링:** TypeScript에서 상태 관리 방식을 혁신하는 핵심 패턴은 식별 가능한 유니온입니다 [3, 5]. 이는 '검증 중(validating)', '제출 중(submitting)', '성공(success)', '오류(error)'와 같은 비동기 UI 상태나 폼 제출 워크플로우, Redux 스타일의 리듀서, 라우터 상태 등을 모델링하는 데 완벽하게 작동합니다 [6, 7]. 이 패턴을 사용하면 TypeScript 컴파일러가 모든 분기 처리를 강제하여, 유효하지 않은 상태의 조합 자체를 물리적으로 불가능하게 만듭니다 [5, 8]. 이는 상태 기계(State Machine)를 구축하는 데에도 이상적입니다 [9, 10]. +- **타입 시스템을 통한 불변성(Immutability) 강제:** 무분별한 상태 변경은 상태 관리에서 애플리케이션의 예측 가능성을 떨어뜨리는 가장 큰 위협입니다 [11]. 이를 막기 위해 TypeScript의 `readonly` 수식어를 사용하여 리듀서나 전역 상태 관리 객체의 불변성을 강제할 수 있습니다 [4, 12]. 특히 복잡한 상태 관리가 필요한 프론트엔드 아키텍처에서는 단순한 얕은(shallow) 보호를 넘어, 중첩된 객체의 모든 속성이 예기치 않게 변경되지 않도록 보장하는 재귀적 불변성(Deep Readonly) 설계가 필수적인 요소로 꼽힙니다 [5]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[식별 가능한 유니온(Discriminated Unions)]], [[불변성(Immutability)]], [[상태 기계(State Machine)]], [[리듀서(Reducer)]] +- **Projects/Contexts:** [[React 프론트엔드 개발]], [[Redux 아키텍처]] +- **Contradictions/Notes:** 소스 전반에 걸쳐 상태 관리에 있어 불변성 유지(`readonly` 활용)와 타입 시스템(Discriminated Unions)을 통한 엄격한 상태 제어의 중요성에 동의하고 있으며, 상태 관리에 대한 상반된 주장이나 모순점은 발견되지 않았습니다. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/상태 관리(State Management).md]] +--- diff --git a/Design & Experience/상태 머신 (State Machine) 모델링 및 Redux 액션_리듀서 설계.md b/Design & Experience/상태 머신 (State Machine) 모델링 및 Redux 액션_리듀서 설계.md new file mode 100644 index 00000000..b46bbdb7 --- /dev/null +++ b/Design & Experience/상태 머신 (State Machine) 모델링 및 Redux 액션_리듀서 설계.md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-D423C6 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 상태 머신 (State Machine) 모델링 및 Redux 액션_리듀서 설계" +--- + +# [[상태 머신 (State Machine) 모델링 및 Redux 액션_리듀서 설계]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 상태 머신(State Machine) 모델링과 Redux 액션/리듀서 설계는 애플리케이션의 복잡한 상태 전이를 명확하게 정의하고 관리하기 위한 구조적 접근법입니다. 타입스크립트(TypeScript) 환경에서는 주로 식별 가능한 유니온(Discriminated Unions) 패턴을 활용하여 이러한 상태 및 액션들을 안전하고 완벽하게 구현할 수 있습니다 [1-3]. 다만, 제공된 소스에는 이를 구체적으로 설계하는 세부 방법론이나 코드 레벨의 상세한 정보가 부족합니다. + +## 📖 구조화된 지식 (Synthesized Content) +- **식별 가능한 유니온(Discriminated Unions)과의 시너지**: 타입스크립트의 식별 가능한 유니온 패턴은 Redux 스타일의 리듀서를 설계하거나 상태 머신을 모델링하는 데 완벽하게 부합하며 그 진가를 발휘합니다 [1, 2]. +- **상태 머신 패턴 (State Machine Pattern)의 상태와 전이**: 식별 가능한 유니온을 사용하여 상태 머신을 모델링하면 명확한 상태 전이(State transitions)를 타입으로 강제하고 표현할 수 있습니다 [3, 4]. 소스에서 언급된 상태 머신 모델링의 예시는 다음과 같습니다 [3]: + - **상태 (States)**: `Idle` (대기), `Fetching` (가져오는 중), `Success` (성공), `Failure` (실패) + - **액션/전이 (Actions/Transitions)**: `FETCH_START`, `FETCH_SUCCESS`, `FETCH_FAILURE`, `RETRY` (재시도 횟수가 남은 경우), `REFRESH` +- **데이터 부족 안내**: **소스에 관련 정보가 부족합니다.** 업로드된 소스 데이터에서는 식별 가능한 유니온이 상태 머신 모델링 및 Redux 액션/리듀서 설계에 아주 적합하다는 점과 간단한 상태 목록만 언급될 뿐, 이들을 어떻게 아키텍처 관점에서 설계하고 구현해야 하는지에 대한 구체적인 설명이나 예제 코드는 포함되어 있지 않습니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[식별 가능한 유니온 (Discriminated Unions)]], [[타입 안전성 (Type Safety)]] +- **Projects/Contexts:** [[React 상태 관리 (React State Management)]], [[비동기 데이터 패칭 (Async Operations Pattern)]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. 상태 머신 및 Redux 패턴 설계 지침을 다루기보다는, 타입스크립트의 '식별 가능한 유니온'이 활용되기 좋은 대표적인 사례(Use Case) 중 하나로서만 간략히 소개되어 있습니다. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/상태 머신 (State Machine) 모델링 및 Redux 액션_리듀서 설계.md]] +--- diff --git a/Design & Experience/상태 모델링 (State Modeling).md b/Design & Experience/상태 모델링 (State Modeling).md new file mode 100644 index 00000000..b38dca11 --- /dev/null +++ b/Design & Experience/상태 모델링 (State Modeling).md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-BC8C33 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 상태 모델링 (State Modeling)" +--- + +# [[상태 모델링 (State Modeling)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 상태 모델링은 애플리케이션에서 시간에 따라 변화하는 데이터(사용자 입력, API 응답, UI 설정 등)를 구조화하고 추적하는 과정입니다 [1]. 잘못된 상태 관리는 예측 불가능한 동작과 디버깅의 어려움 등 기술 부채를 초래하므로, 견고한 모델링이 필수적입니다 [2]. TypeScript에서는 주로 식별 가능한 유니온(Discriminated Unions)을 활용하여 "유효하지 않은 상태를 원천적으로 불가능하게 만드는" 상태 머신 패턴을 통해 안전하고 명확하게 상태를 모델링합니다 [3-5]. + +## 📖 구조화된 지식 (Synthesized Content) +* **상태 관리의 중요성과 문제점:** 애플리케이션의 상태는 여러 위치에서 명확한 패턴 없이 수정될 경우 예측 불가능한 동작, 디버깅의 악몽, 불필요한 리렌더링 및 기술 부채를 유발할 수 있습니다 [2]. 따라서 변화하는 데이터를 체계적으로 통제하고 추적하는 모델링 설계가 매우 중요합니다. +* **식별 가능한 유니온(Discriminated Unions)의 활용:** TypeScript에서 복잡한 상태를 모델링하는 가장 강력한 패턴은 식별 가능한 유니온(또는 태그된 유니온)입니다 [3, 6]. `state`나 `kind`와 같은 공통 리터럴 속성(식별자)을 사용하여 각기 다른 형태의 데이터를 구별함으로써, 타입 시스템이 안전하게 타입을 좁혀나갈 수 있도록 돕습니다 [7-9]. +* **유효하지 않은 상태의 원천 차단 (Making Invalid States Impossible):** 상태 모델링의 핵심 목표 중 하나는 컴파일 단계에서 잘못된 상태 조합을 표현할 수 없게 만드는 것입니다 [4, 5, 10]. 이는 타입 자체가 가능한 상태들을 스스로 문서화하고, 코드의 아키텍처적 무결성을 보장하는 효과를 가져옵니다 [10]. +* **상태 머신(State Machine) 패턴 구현:** 식별 가능한 유니온은 애플리케이션 내의 상태 머신을 구현하는 데 완벽하게 적합합니다 [11, 12]. 네트워크 요청이나 데이터 로딩 상태를 `Idle`, `Fetching`, `Success`, `Failure` 등으로 명확히 나누거나 [8, 12, 13], 복잡한 폼 제출 워크플로우(검증 중, 검증 에러, 제출 중, 성공 등)를 태그된 상태로 모델링할 때 강력한 힘을 발휘합니다 [4]. +* **완전성 검사(Exhaustiveness Checking)를 통한 안전성 보장:** 상태 모델링을 사용할 때 `never` 타입을 활용한 완전성 검사 기법을 적용할 수 있습니다 [14-17]. 이는 유니온 타입에 새로운 상태가 추가되었을 때 개발자가 이를 처리하는 로직(예: switch 문)을 누락하면 컴파일러가 에러를 발생시키는 방식입니다 [16-18]. 이 메커니즘은 시스템 확장에 따른 부작용과 런타임 버그를 사전에 철저히 차단합니다 [17, 19]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[식별 가능한 유니온 (Discriminated Unions)]], [[완전성 검사 (Exhaustiveness Checking)]], [[상태 머신 (State Machine)]] +- **Projects/Contexts:** [[API 응답 처리 (API Response Handling)]], [[폼 제출 워크플로우 (Form Submission Workflow)]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/상태 모델링 (State Modeling).md]] +--- diff --git a/Design & Experience/선언 병합(Declaration Merging).md b/Design & Experience/선언 병합(Declaration Merging).md new file mode 100644 index 00000000..715e0a6c --- /dev/null +++ b/Design & Experience/선언 병합(Declaration Merging).md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-18CC73 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 선언 병합(Declaration Merging)" +--- + +# [[선언 병합(Declaration Merging)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 선언 병합(Declaration Merging)은 TypeScript에서 동일한 이름을 가진 여러 개의 인터페이스를 선언할 경우, 컴파일러가 이를 자동으로 하나의 단일 인터페이스로 합치는 고유한 기능입니다 [1]. 주로 라이브러리 제작자가 사용자에게 타입 확장 지점을 제공하거나 패치할 때 유용하게 사용되지만, 일반 애플리케이션 코드에서는 의도치 않은 타입 병합을 막기 위해 사용을 지양하는 경우도 많습니다 [2-4]. + +## 📖 구조화된 지식 (Synthesized Content) +* **동작 원리**: TypeScript에서 인터페이스(Interface)를 동일한 이름으로 여러 번 선언하면, 타입 시스템이 이를 하나의 인터페이스로 합칩니다 [1]. +* **주요 사용 사례 (라이브러리 수준)**: 이 기능은 특히 라이브러리 코드에서 진가를 발휘합니다 [4]. 라이브러리 소비자가 필요에 따라 기존 선언을 확장(extend)하거나 타입을 패치(patch)할 수 있도록 유용한 확장 지점을 제공하기 때문입니다 [1, 3, 4]. +* **타입 별칭(Type Alias)과의 차이점**: 인터페이스와 달리, 타입 별칭(Type)은 동일한 이름으로 재선언할 수 없으므로 선언 병합이 발생하지 않습니다 [1]. 이러한 특징 덕분에 타입 별칭을 사용하면 예기치 않은 병합을 방지하고 더 엄격하게 타입을 관리할 수 있습니다 [1, 5]. +* **개발자 커뮤니티의 관점 및 주의점**: 많은 개발자와 팀은 의도치 않은 선언 병합을 피하고자 애플리케이션 코드 내에서 인터페이스 대신 타입 별칭을 사용하는 방식을 채택합니다 [2, 6]. 호환되지 않는 필드를 가진 두 형태가 우연히 합쳐질 때 발생할 수 있는 오류를 피하기 위해, 선언 병합을 나쁜 관행(Bad Thing™)으로 간주하고 이를 방지하고자 린트(eslint) 규칙으로 인터페이스 사용을 금지하는 사례도 있습니다 [7, 8]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[인터페이스(Interface)]], [[타입 별칭(Type Alias)]] +- **Projects/Contexts:** [[라이브러리 코드 작성]], [[TypeScript 타입 시스템]] +- **Contradictions/Notes:** 소스에 따르면 라이브러리 제작 관점에서는 소비자에게 확장을 허용하는 매우 유용한 기능으로 평가받지만 [1, 4], 애플리케이션 개발 팀 관점에서는 의도치 않은 병합 버그를 유발할 수 있어 피해야 할 기능으로 강하게 반대되기도 합니다 [2, 8]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/선언 병합(Declaration Merging).md]] +--- diff --git a/Design & Experience/소프트웨어 시스템 설계 및 아키텍처 구축.md b/Design & Experience/소프트웨어 시스템 설계 및 아키텍처 구축.md new file mode 100644 index 00000000..b80f4d52 --- /dev/null +++ b/Design & Experience/소프트웨어 시스템 설계 및 아키텍처 구축.md @@ -0,0 +1,42 @@ +--- +id: P-REINFORCE-AUTO-6B386C +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 소프트웨어 시스템 설계 및 아키텍처 구축" +--- + +# [[소프트웨어 시스템 설계 및 아키텍처 구축]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 소프트웨어 시스템 설계 및 아키텍처 구축은 변화하는 비즈니스 요구에 적응하고 시스템의 복잡성을 제어하기 위해 확장 가능하고 유지보수가 용이한 애플리케이션의 뼈대를 설계하는 과정입니다 [1, 2]. 이 과정은 시스템을 관리 가능한 독립적 모듈로 분할하는 '관심사의 분리(SoC)'를 핵심 원리로 삼으며, 고수준의 비즈니스 규칙과 저수준의 인프라(UI, DB 등)를 격리하는 것을 목표로 합니다 [3, 4]. 이를 통해 개발 조직은 코드의 재사용성을 높이고, 독립적인 테스트와 배포를 가능하게 하여 소프트웨어의 생명주기를 효과적으로 지원할 수 있습니다 [5, 6]. + +## 📖 구조화된 지식 (Synthesized Content) +- **핵심 설계 원칙 (Core Design Principles):** + - **관심사의 분리 (Separation of Concerns, SoC):** 프로그램을 각기 다른 관심사나 기능에만 집중하도록 분리하여, 모듈 간의 결합도(Coupling)를 낮추고 응집도(Cohesion)를 높이는 가장 근본적인 아키텍처 원칙입니다 [3, 7-9]. 이를 통해 시스템의 가독성을 높이고 특정 모듈 변경 시 발생하는 파급 효과를 최소화할 수 있습니다 [10, 11]. + - **클린 아키텍처 (Clean Architecture):** 비즈니스 로직(엔티티와 유스케이스)을 시스템의 중심에 두고, 프레임워크나 데이터베이스와 같은 세부 구현을 외부 계층으로 밀어냅니다 [12-15]. 소스 코드 의존성은 항상 외부에서 내부(고수준 정책)로만 향해야 한다는 '의존성 규칙(Dependency Rule)'을 통해 기술적 변화로부터 핵심 비즈니스를 보호합니다 [4, 16]. + - **SOLID 원칙 및 DRY:** 단일 책임 원칙(SRP)과 인터페이스 분리 원칙(ISP)을 포함하는 SOLID와 코드 중복을 방지하는 DRY 원칙은, 유연하고 테스트 가능한 객체 지향 설계를 돕는 아키텍처의 필수 도구입니다 [17-19]. + +- **주요 아키텍처 패턴 (Architectural Patterns):** + - **계층화 아키텍처 (Layered Architecture):** 시스템을 프레젠테이션, 비즈니스 로직, 데이터 액세스 등 수평적인 계층으로 나누어 계층 간 통신을 제어하는 전통적인 구조입니다 [20-22]. + - **마이크로서비스 아키텍처 (Microservices Architecture):** 시스템을 특정 비즈니스 역량 중심의 자율적인 서비스들로 분해합니다 [23, 24]. 넷플릭스(Netflix)는 거대한 모놀리식 구조를 마이크로서비스로 분리하여 팀의 개발 속도와 혁신성을 높였으며, 이후 이를 확장하여 마이크로서비스, 비동기 워크플로우, 서버리스 함수를 결합한 '코스모스(Cosmos)' 플랫폼으로 발전시켰습니다 [25-28]. + - **이벤트 기반 아키텍처 (Event-Driven Architecture):** 서비스들이 이벤트를 생산하고 소비하는 비동기 방식으로 통신하게 하여, 시스템 결합도를 느슨하게 만들고 실시간 데이터 처리와 확장성을 극대화합니다 [29, 30]. + +- **프론트엔드 및 AI 아키텍처로의 확장:** + - 프론트엔드 환경에서도 모놀리식 구조의 한계를 극복하고자 '마이크로 프론트엔드(Micro Frontends)' 및 '기능 중심 설계(FSD)'를 도입하여 각 팀이 화면의 특정 기능을 독립적으로 개발하고 배포할 수 있도록 구성합니다 [31-33]. + - AI 시스템의 경우 비결정론적 특성을 감안하여, TDD(테스트 주도 개발) 원칙을 적용해 데이터 전처리, 모델 추론 등 개별 구성 요소의 경계를 명확히 하고 통계적 검증을 결합하는 아키텍처적 규칙을 수립합니다 [34-37]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Separation of Concerns (SoC)]], [[Clean Architecture]], [[Microservices Architecture]], [[SOLID Principles]] +- **Projects/Contexts:** [[Netflix Microservices & Cosmos Platform]], [[Feature-Sliced Design (FSD)]] +- **Contradictions/Notes:** 마이크로서비스 아키텍처는 유연성과 독립적 배포를 제공하지만 분산 시스템 간의 통신, 배포의 복잡성, 메모리 오버헤드를 유발하므로 무조건적인 도입은 지양해야 합니다 [38, 39]. 또한 완벽한 관심사 분리를 위한 과도한 추상화(Over-engineering)나 너무 이른 계층 분리는 오히려 시스템을 복잡하게 만들어 가독성을 해치고 인지적 부하를 유발할 수 있으므로, 응집도와 결합도를 실무적 상황에 맞게 조율해야 합니다 [40-42]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/소프트웨어 시스템 설계 및 아키텍처 구축.md]] +--- diff --git a/Design & Experience/실시간 데이터 대시보드 레이아웃 조절 시스템.md b/Design & Experience/실시간 데이터 대시보드 레이아웃 조절 시스템.md new file mode 100644 index 00000000..c4994f39 --- /dev/null +++ b/Design & Experience/실시간 데이터 대시보드 레이아웃 조절 시스템.md @@ -0,0 +1,42 @@ +--- +id: P-REINFORCE-AUTO-BAC69B +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 실시간 데이터 대시보드 레이아웃 조절 시스템" +--- + +# [[실시간 데이터 대시보드 레이아웃 조절 시스템]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 실시간으로 쏟아지는 대규모 데이터를 시각화하는 대시보드 환경에서, 사용자의 레이아웃 변경(위젯 크기 조절, 드래그 등)과 잦은 데이터 업데이트가 충돌하여 UI가 멈추거나 버벅거리는 현상을 방지하는 고성능 렌더링 및 상태 제어 시스템입니다. + +## 📖 구조화된 지식 (Synthesized Content) +**1. 리사이즈 및 레이아웃 이벤트 제어 (Debouncing & Throttling)** 대시보드의 위젯 크기 조절이나 윈도우 창 변경 시에는 아주 짧은 시간에 수많은 레이아웃 연산 이벤트가 발생합니다. 브라우저 과부하와 UI 병목 현상을 막기 위해, `lodash`의 **디바운스(Debounce)나 스로틀(Throttle) 기법을 적용하여 무거운 연산이나 리렌더링이 연속적으로 실행되는 것을 제어**해야 합니다. + +**2. 고빈도 업데이트를 위한 상태 관리 최적화** 실시간 대시보드는 차트나 데이터 그리드가 초당 수십 번씩 업데이트될 수 있습니다. 이때 React의 기본 Context API를 전역 상태처럼 사용하면, 내부 값 하나만 변경되어도 이를 구독하는 모든 위젯과 컴포넌트가 리렌더링되는 심각한 폭포수(Cascading) 현상이 발생합니다. 이를 방지하려면 **컨텍스트를 도메인별로 잘게 분리하거나 `useContextSelector`를 도입**하고, 세밀한 단위의(Granular) 업데이트에 최적화된 **Zustand, Jotai, Valtio 같은 전용 상태 관리 라이브러리를 사용**해야 합니다. + +**3. 무거운 위젯의 지연 로딩(Lazy Loading)과 가상화(Virtualization)** + +- **지연 로딩:** 초기 로딩 속도를 높이기 위해, 당장 화면에 보이지 않거나 무거운 대시보드 위젯(예: 차트 위젯)은 `React.lazy`와 ``를 활용해 온디맨드 방식으로 동적 로드해야 합니다. +- **리스트 가상화:** 대규모 로그나 데이터 테이블을 렌더링할 때는 수천 개의 DOM 노드가 생성되어 메모리를 낭비하지 않도록, `react-window`나 `react-virtualized`를 사용하여 **현재 화면(Viewport)에 노출되는 항목만 렌더링**하는 가상화 기법을 적용해야 합니다. + +**4. 동시성(Concurrent) 기능을 통한 UI 반응성 확보** 무거운 차트를 렌더링하거나 대규모 데이터를 필터링할 때 사용자의 클릭이나 타이핑이 버벅거리지 않도록, React 18의 동시성 훅을 적극 활용합니다. **`useTransition`을 사용하여 무거운 필터링이나 뷰 업데이트를 비긴급 작업으로 미루고**, **`useDeferredValue`를 사용해 파생 데이터의 계산을 지연시켜 메인 스레드의 과부하 시에도 UI 입력 반응성을 부드럽게 유지**합니다. + +**5. 웹 워커(Web Worker)를 이용한 연산 오프로딩** 대용량 JSON 파싱, 복잡한 데이터 정렬이나 물리 연산과 같이 CPU 집약적인 작업은 자바스크립트의 메인 스레드를 차단합니다. 이러한 작업은 **Web Worker나 `useWorker` 훅을 활용하여 백그라운드 스레드로 넘김(Offloading)으로써, 무거운 데이터 처리 중에도 대시보드가 60FPS의 매끄러운 반응성을 유지**할 수 있도록 설계해야 합니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Throttling & Debouncing]], [[React 동시성 훅 (useTransition, useDeferredValue)]], [[상태 관리 최적화 (Zustand, Jotai, Valtio)]], [[Virtualization (리스트 가상화)]], [[Web Worker (웹 워커)]] +- **Projects/Contexts:** [[대용량 데이터 분석 플랫폼 및 모니터링 시스템]], [[고성능 금융/주식 실시간 거래 대시보드]] +- **Contradictions/Notes:** React에 내장된 Context API는 테마나 로그인 정보처럼 가끔 변하는 데이터에는 훌륭하지만, 고빈도로 상태가 업데이트되는 실시간 대시보드에서는 성능을 조용히 갉아먹는 주범이 되므로 대안 상태 관리 도구가 필수적입니다. + +--- + +_Last updated: 2026-04-15_ +- Raw Source: [[00_Raw/2026-04-20/실시간 데이터 대시보드 레이아웃 조절 시스템.md]] +--- diff --git a/Design & Experience/아보(Bobo) 인형 실험.md b/Design & Experience/아보(Bobo) 인형 실험.md new file mode 100644 index 00000000..991d3c37 --- /dev/null +++ b/Design & Experience/아보(Bobo) 인형 실험.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-8F65AF +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 아보(Bobo) 인형 실험" +--- + +# [[아보(Bobo) 인형 실험]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/아보(Bobo) 인형 실험.md]] +--- diff --git a/Design & Experience/엔티티 (Entities).md b/Design & Experience/엔티티 (Entities).md new file mode 100644 index 00000000..c249126d --- /dev/null +++ b/Design & Experience/엔티티 (Entities).md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-8E681E +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 엔티티 (Entities)" +--- + +# [[엔티티 (Entities)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 엔티티(Entities)는 소프트웨어 아키텍처 및 도메인 주도 설계(DDD)에서 핵심 업무 데이터와 이를 기반으로 동작하는 전사적인 핵심 업무 규칙을 캡슐화하는 고수준의 객체입니다 [1-3]. 이들은 아키텍처의 가장 중심 계층에 위치하며, 데이터베이스나 사용자 인터페이스(UI), 프레임워크와 같은 외부 요소에 전혀 의존하지 않고 독립적으로 존재합니다 [1, 4]. 본질적으로 시스템의 입출력 방식이나 외부 기술의 변화에 영향을 받지 않는, 비즈니스의 가장 핵심적이고 순수한 개념을 구체화합니다 [3-5]. + +## 📖 구조화된 지식 (Synthesized Content) +* **엔티티의 정의 및 식별성** + 도메인 주도 설계(DDD)에서 엔티티는 고유한 식별성(identity)을 갖는 객체로 정의되며, 오직 속성으로만 정의되는 값 객체(Value Object)와 엄격히 구분됩니다 [6]. 예를 들어, '고객(Customer)'은 고유한 정체성을 가진 엔티티에 해당하고, '배송지 주소'는 값 객체로 취급됩니다 [6]. 엔티티는 핵심 업무 데이터를 직접 포함하거나 쉽게 접근할 수 있으며, 이 데이터를 조작하는 업무 규칙 함수들을 인터페이스로 제공합니다 [2]. + +* **클린 아키텍처에서의 중심 역할** + 클린 아키텍처 구조에서 엔티티는 시스템의 가장 안쪽이자 중심인 도메인 계층에 위치합니다 [1, 7]. 외부의 어떠한 세부 사항(웹, 데이터베이스, 서드파티 프레임워크 등)으로 인해 오염되어서는 안 되며, 외부 계층에 대해 전혀 알지 못해야 합니다 [4, 8]. 이를 위해 엔티티 객체는 프레임워크 등에 의존하지 않는 오래된 방식의 간단하고 평범한 객체(plain old object) 형태로 유지되어야 합니다 [9, 10]. + +* **유스케이스(Use Cases)와의 관계** + 엔티티는 시스템에서 가장 범용적이고 높은 수준(고수준)을 갖는 개념입니다 [11]. 단일 애플리케이션에 특화된 저수준 개념인 유스케이스는 엔티티에 의존하고 엔티티의 핵심 업무 규칙을 호출하지만, 반대로 엔티티는 자신을 제어하는 유스케이스에 대해 아무것도 알지 못합니다 [5, 12]. 유스케이스는 엔티티로 들어오고 나가는 데이터 흐름을 조정하는 역할을 수행합니다 [13]. + +* **변경에 대한 독립성과 유의사항** + 엔티티는 전사적인 핵심 규칙을 담고 있기 때문에, 페이지 네비게이션이나 보안과 같은 외부 요구사항이 변경되더라도 엔티티가 변경될 가능성은 지극히 낮습니다 [3]. 또한, 엔티티와 애플리케이션의 요청/응답 모델이 상당히 많은 데이터를 공유하더라도, 두 객체의 목적이 완전히 다르므로 결코 결합(참조)해서는 안 됩니다 [14]. 이를 결합하면 공통 폐쇄 원칙과 단일 책임 원칙을 위배하게 되어 코드베이스를 오염시킵니다 [14]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[도메인 주도 설계 (Domain-Driven Design)]], [[클린 아키텍처 (Clean Architecture)]], [[유스케이스 (Use Cases)]], [[값 객체 (Value Objects)]] +- **Projects/Contexts:** [[엔터프라이즈급 소프트웨어 아키텍처 설계]], [[VIPER 아키텍처 기반 iOS 애플리케이션 개발]] +- **Contradictions/Notes:** 엔티티와 시스템의 요청 및 응답 모델은 많은 데이터를 공유하기 때문에 서로 참조하거나 결합하려는 유혹에 빠지기 쉽지만, 이는 장기적으로 공통 폐쇄 원칙을 위반하고 코드베이스에 혼란을 초래하므로 엄격히 분리해야 한다고 경고합니다 [14]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/엔티티 (Entities).md]] +--- diff --git a/Design & Experience/응용 행동 분석(ABA)] [행동 경제학] [교육 심리학의 행동주의 모델.md b/Design & Experience/응용 행동 분석(ABA)] [행동 경제학] [교육 심리학의 행동주의 모델.md new file mode 100644 index 00000000..7970d89b --- /dev/null +++ b/Design & Experience/응용 행동 분석(ABA)] [행동 경제학] [교육 심리학의 행동주의 모델.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5A7860 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 응용 행동 분석(ABA)] [행동 경제학] [교육 심리학의 행동주의 모델" +--- + +# [[응용 행동 분석(ABA)] [행동 경제학] [교육 심리학의 행동주의 모델]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/응용 행동 분석(ABA)], [행동 경제학], [교육 심리학의 행동주의 모델.md]] +--- diff --git a/Design & Experience/의존성 규칙 (Dependency Rule).md b/Design & Experience/의존성 규칙 (Dependency Rule).md new file mode 100644 index 00000000..5f13161d --- /dev/null +++ b/Design & Experience/의존성 규칙 (Dependency Rule).md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-57A5BA +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 의존성 규칙 (Dependency Rule)" +--- + +# [[의존성 규칙 (Dependency Rule)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 의존성 규칙(Dependency Rule)은 클린 아키텍처(Clean Architecture)의 핵심 원칙으로, 모든 소스 코드 의존성이 반드시 고수준의 핵심 비즈니스 로직을 향해 '안쪽으로만' 향해야 한다는 원칙입니다 [1-3]. 이 규칙은 내부 계층(뇌)이 외부 계층(팔다리)의 존재에 대해 전혀 알지 못하도록 통제하여 시스템의 결합도를 낮추고 독립성을 극대화합니다 [2-4]. 결과적으로 비즈니스의 본질적인 규칙을 UI, 데이터베이스, 프레임워크 등 변동성이 높은 기술적 세부 사항으로부터 완벽하게 격리하고 보호하는 역할을 수행합니다 [1, 4, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +* **의존성의 방향 (Direction of Dependencies)** + 의존성 규칙에 따르면 소프트웨어의 소스 코드 의존성은 오직 안쪽, 즉 중앙의 핵심 비즈니스 로직(엔티티 및 유스케이스 등)으로만 향해야 합니다 [1, 3]. 이는 저수준의 모듈(외부의 프레임워크나 UI)이 고수준의 모듈(내부의 도메인)에 의존해야 하며, 고수준 모듈은 외부 기관에 결코 의존해서는 안 된다는 것을 의미합니다 [2]. + +* **내부 계층의 완전한 격리 (Isolation of Inner Layers)** + 내부의 원에 속한 코드(뇌)는 외부의 원에 선언된 어떤 것(팔다리)에 대해서도 그 이름을 언급해서는 안 됩니다 [3]. 즉, 함수, 클래스, 변수 등 외부에 존재하는 모든 소프트웨어 요소의 존재를 내부 계층은 몰라야 합니다 [3]. 이를 통해 외부의 인프라스트럭처가 변경되더라도 핵심 비즈니스 규칙이 영향을 받지 않도록 보장합니다 [4, 6]. + +* **데이터 형식의 독립성 (Data Format Independence)** + 외부 원에서 선언된 데이터 형식이나 특정 프레임워크가 생성한 데이터 구조를 내부 원에서 절대로 사용해서는 안 됩니다 [3]. 계층의 경계를 가로질러 데이터를 전달할 때는, 데이터베이스의 행(Row) 같은 외부 포맷이 아닌 내부의 원에서 사용하기 편리한 형태(간단한 데이터 전송 객체나 구조체)로 변환되어 전달되어야 합니다 [6, 7]. + +* **경계 횡단과 의존성 역전 원칙 (Crossing Boundaries and DIP)** + 시스템의 제어 흐름이 의존성 규칙과 반대 방향으로 향해야 하는 경우(예를 들어, 내부의 유스케이스 계층이 외부의 프레젠터 계층을 호출해야 할 때), 이를 직접 호출하면 의존성 규칙을 위배하게 됩니다 [8]. 이 문제는 의존성 역전 원칙(DIP)과 동적 다형성을 활용하여 해결합니다 [8, 9]. 내부 계층에 인터페이스를 정의하고 외부 계층이 이를 구현하게 함으로써, 제어 흐름이 밖으로 향하더라도 소스 코드 의존성은 계속 안쪽을 유지할 수 있게 만듭니다 [8-10]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[클린 아키텍처 (Clean Architecture)]], [[의존성 역전 원칙 (Dependency Inversion Principle, DIP)]], [[엔티티 (Entities)]], [[유스케이스 (Use Cases)]] +- **Projects/Contexts:** [[엔터프라이즈 소프트웨어 시스템 설계]], [[모듈화 및 아키텍처 경계 설정]] +- **Contradictions/Notes:** 의존성 규칙을 엄격하게 준수하기 위해 완벽한 아키텍처 경계(쌍방향 다형적 인터페이스, 분리된 입/출력 데이터 구조 등)를 만드는 것은 초기 설정 및 유지보수 비용이 상당히 큽니다 [11]. 따라서 모든 상황에 이 규칙을 엄격히 적용하기보다는, 프로젝트의 규모에 따라 전략 패턴이나 퍼사드(Facade) 패턴을 활용한 부분적 경계(Partial Boundary)를 두거나 실무적 타협을 하는 경우도 존재합니다 [11-13]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/의존성 규칙 (Dependency Rule).md]] +--- diff --git a/Design & Experience/인간 요인 공학 (Human Factors Engineering).md b/Design & Experience/인간 요인 공학 (Human Factors Engineering).md new file mode 100644 index 00000000..b74ad667 --- /dev/null +++ b/Design & Experience/인간 요인 공학 (Human Factors Engineering).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E342BB +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 인간 요인 공학 (Human Factors Engineering)" +--- + +# [[인간 요인 공학 (Human Factors Engineering)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/인간 요인 공학 (Human Factors Engineering).md]] +--- diff --git a/Design & Experience/인지 부조화 이론.md b/Design & Experience/인지 부조화 이론.md new file mode 100644 index 00000000..14de5b24 --- /dev/null +++ b/Design & Experience/인지 부조화 이론.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-CE996D +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 인지 부조화 이론" +--- + +# [[인지 부조화 이론]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/인지 부조화 이론.md]] +--- diff --git a/Design & Experience/인지 부하 이론(Cognitive Load Theory).md b/Design & Experience/인지 부하 이론(Cognitive Load Theory).md new file mode 100644 index 00000000..6d4193c6 --- /dev/null +++ b/Design & Experience/인지 부하 이론(Cognitive Load Theory).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-AA8C86 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 인지 부하 이론(Cognitive Load Theory)" +--- + +# [[인지 부하 이론(Cognitive Load Theory)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/인지 부하 이론(Cognitive Load Theory).md]] +--- diff --git a/Design & Experience/인지 심리학 (Cognitive Psychology).md b/Design & Experience/인지 심리학 (Cognitive Psychology).md new file mode 100644 index 00000000..ec1f1ae8 --- /dev/null +++ b/Design & Experience/인지 심리학 (Cognitive Psychology).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-30DB87 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 인지 심리학 (Cognitive Psychology)" +--- + +# [[인지 심리학 (Cognitive Psychology)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/인지 심리학 (Cognitive Psychology).md]] +--- diff --git a/Design & Experience/인지 평가 이론 (Cognitive Evaluation Theory).md b/Design & Experience/인지 평가 이론 (Cognitive Evaluation Theory).md new file mode 100644 index 00000000..a77b6760 --- /dev/null +++ b/Design & Experience/인지 평가 이론 (Cognitive Evaluation Theory).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-C0AA85 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 인지 평가 이론 (Cognitive Evaluation Theory)" +--- + +# [[인지 평가 이론 (Cognitive Evaluation Theory)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/인지 평가 이론 (Cognitive Evaluation Theory).md]] +--- diff --git a/Design & Experience/인터페이스 (Interface).md b/Design & Experience/인터페이스 (Interface).md new file mode 100644 index 00000000..277757f3 --- /dev/null +++ b/Design & Experience/인터페이스 (Interface).md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-DEED85 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 인터페이스 (Interface)" +--- + +# [[인터페이스 (Interface)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> TypeScript에서 인터페이스(Interface)는 객체의 형태(Shape)를 정의하고 내부 및 외부 코드 간의 계약(Contract)을 명시하는 구조적 타이핑(Structural Typing) 도구입니다 [1, 2]. 선택적 속성(Optional)과 읽기 전용 속성(Readonly) 등을 통해 유연하면서도 안전한 데이터 구조를 모델링할 수 있습니다 [2-4]. Type Alias와 비교할 때 캐싱 및 평탄화를 통해 컴파일 성능상 이점을 제공하며, 선언 병합(Declaration Merging)이라는 고유한 확장 기능을 갖추고 있습니다 [5-7]. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Type Alias]], [[구조적 타이핑 (Structural Typing)]], [[선언 병합 (Declaration Merging)]], [[Interface Segregation Principle (ISP)]], [[객체 타입 (Object Types)]] +- **Projects/Contexts:** [[대규모 TypeScript 애플리케이션 아키텍처 설계]], [[라이브러리 타입 선언 (d.ts) 확장]] +- **Contradictions/Notes:** 인터페이스의 핵심 기능 중 하나인 '선언 병합'에 대하여, 라이브러리 확장을 위해서는 매우 유용하다는 주장이 있지만, 일반적인 애플리케이션 코드베이스에서는 의도치 않게 호환되지 않는 필드가 병합되어 버그를 유발할 수 있으므로 병합 기능이 없는 `type` 사용을 선호하는 개발자들도 다수 존재합니다 [14, 19-22]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/인터페이스 (Interface).md]] +--- diff --git a/Design & Experience/인터페이스 분리 원칙 (Interface Segregation Principle).md b/Design & Experience/인터페이스 분리 원칙 (Interface Segregation Principle).md new file mode 100644 index 00000000..b810b720 --- /dev/null +++ b/Design & Experience/인터페이스 분리 원칙 (Interface Segregation Principle).md @@ -0,0 +1,35 @@ +--- +id: P-REINFORCE-AUTO-FD8793 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 인터페이스 분리 원칙 (Interface Segregation Principle)" +--- + +# [[인터페이스 분리 원칙 (Interface Segregation Principle)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 인터페이스 분리 원칙(ISP)은 객체 지향 프로그래밍(OOP)을 위한 5가지 기본 설계 원칙인 SOLID 중 하나로, 로버트 C. 마틴(Robert C. Martin)에 의해 정립되었습니다 [1-3]. 이 원칙은 클라이언트가 자신이 사용하지 않는 인터페이스에 의존하도록 강요받아서는 안 된다는 것을 핵심으로 합니다 [2, 4]. 이를 달성하기 위해 하나의 크고 범용적인 인터페이스 대신, 작고 구체적이며 특화된 인터페이스를 여러 개 설계하는 것을 권장합니다 [2, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +* **핵심 개념 및 구현 방식:** + 인터페이스 분리 원칙은 클라이언트가 자신의 목적을 달성하는 데 꼭 필요한 메서드만 사용해야 함을 의미합니다 [4]. 이를 구현하기 위해 개발자는 다목적의 큰 인터페이스를 구축하는 것을 지양하고, 대신 역할이 제한된 작고 구체적인 전문 인터페이스를 여러 개 생성해야 합니다 [2, 4]. +* **시스템 설계에서의 기대 효과:** + 클라이언트가 불필요한 인터페이스에 의존하지 않게 함으로써, 코드 변경 시 발생할 수 있는 파급 효과(effects of changes)를 최소화하고 시스템의 유연성을 크게 높일 수 있습니다 [4]. 궁극적으로 이 원칙은 더 모듈화되고 느슨하게 결합된(loosely coupled) 시스템을 설계하는 데 직접적으로 기여합니다 [3]. +* **관심사의 분리(SoC)와의 관계:** + 소프트웨어 개발의 가장 기본적이고 핵심적인 원칙 중 하나인 '관심사의 분리(Separation of Concerns, SoC)' 개념에서 직접적으로 파생된 두 가지 SOLID 원칙 중 하나가 바로 인터페이스 분리 원칙(나머지 하나는 단일 책임 원칙)입니다 [5-7]. 이는 복잡한 시스템을 관리 가능하게 분해하고 모듈성을 향상시키는 데 있어 해당 원칙이 얼마나 중요한지를 보여줍니다 [6, 7]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[SOLID Principles]], [[Separation of Concerns (SoC)]], [[Object-Oriented Programming (OOP)]] +- **Projects/Contexts:** [[Clean Architecture]], [[Software System Design]] +- **Contradictions/Notes:** 주어진 소스 내에서 인터페이스 분리 원칙에 대한 모순된 주장은 발견되지 않으며, 모든 소스가 이 원칙이 관심사의 분리(SoC) 개념에 뿌리를 두고 있으며 모듈성과 시스템 유연성을 향상시킨다는 점에 동의하고 있습니다. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/인터페이스 분리 원칙 (Interface Segregation Principle).md]] +--- diff --git a/Design & Experience/자기 효능감 (Self-Efficacy).md b/Design & Experience/자기 효능감 (Self-Efficacy).md new file mode 100644 index 00000000..b2576745 --- /dev/null +++ b/Design & Experience/자기 효능감 (Self-Efficacy).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-43FFC2 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 자기 효능감 (Self-Efficacy)" +--- + +# [[자기 효능감 (Self-Efficacy)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/자기 효능감 (Self-Efficacy).md]] +--- diff --git a/Design & Experience/자기 효능감(Self-Efficacy).md b/Design & Experience/자기 효능감(Self-Efficacy).md new file mode 100644 index 00000000..a8a212ae --- /dev/null +++ b/Design & Experience/자기 효능감(Self-Efficacy).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-C2A5ED +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 자기 효능감(Self-Efficacy)" +--- + +# [[자기 효능감(Self-Efficacy)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/자기 효능감(Self-Efficacy).md]] +--- diff --git a/Design & Experience/자기조절학습(Self-Regulated Learning).md b/Design & Experience/자기조절학습(Self-Regulated Learning).md new file mode 100644 index 00000000..8b90da51 --- /dev/null +++ b/Design & Experience/자기조절학습(Self-Regulated Learning).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-282D40 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 자기조절학습(Self-Regulated Learning)" +--- + +# [[자기조절학습(Self-Regulated Learning)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/자기조절학습(Self-Regulated Learning).md]] +--- diff --git a/Design & Experience/재조정 (Reconciliation).md b/Design & Experience/재조정 (Reconciliation).md new file mode 100644 index 00000000..7248078f --- /dev/null +++ b/Design & Experience/재조정 (Reconciliation).md @@ -0,0 +1,47 @@ +--- +id: P-REINFORCE-AUTO-EDDCE3 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 재조정 (Reconciliation)" +--- + +# [[재조정 (Reconciliation)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> React가 렌더링 시 새로운 가상 DOM(Virtual DOM) 트리와 이전 트리를 비교하여, 실제 DOM에 적용해야 할 최소한의 변경 사항만을 찾아내어 업데이트하는 $O(n)$ 복잡도의 핵심 디핑(Diffing) 알고리즘 프로세스입니다. + +## 📖 구조화된 지식 (Synthesized Content) +**1. 재조정의 2단계 프로세스** React는 렌더링 중 실제 DOM을 직접 조작하지 않습니다. 대신 재조정은 두 가지 단계로 나뉘어 실행됩니다. + +- **렌더 단계 (Render Phase):** 컴포넌트를 호출하여 UI가 어떻게 보여야 하는지를 나타내는 새로운 가상 트리를 구축합니다. +- **커밋 단계 (Commit Phase):** 이전 트리와의 비교(Diffing)를 통해 계산된 변경 사항만을 실제 DOM에 적용합니다. + +**2. 재조정의 3가지 핵심 규칙** React의 디핑 알고리즘은 예측 가능한 규칙에 따라 컴포넌트의 리렌더링 여부를 결정합니다. + +- **타입이 다른 요소:** 같은 위치에 다른 타입의 요소(`div`에서 `span` 등)가 들어오면, React는 이전 하위 트리를 완전히 파괴(언마운트)하고 새로운 트리를 처음부터 다시 구축합니다. +- **Key를 통한 식별:** 배열이나 리스트 렌더링 시 고유한 `key`를 부여하면, 위치가 바뀌더라도 React가 `key`를 통해 기존 항목을 식별하여 불필요한 재생성 없이 효율적으로 재배치합니다. +- **동일한 컴포넌트 타입:** 같은 타입의 컴포넌트가 동일한 위치에 유지되면, 컴포넌트 인스턴스와 내부 상태(State)는 그대로 보존된 채 변경된 프롭스(Props)만 업데이트됩니다. + +**3. 성능 오버헤드와 한계** 재조정은 일반적인 웹 애플리케이션에서는 매우 효율적이지만, 대규모 DOM 조작이나 고빈도 업데이트가 발생하는 게임 및 애니메이션 환경에서는 심각한 병목 현상을 유발합니다. 예를 들어 60FPS를 유지하기 위한 프레임 예산은 약 16.67ms인데, 약 3,000개의 노드를 가진 복잡한 뷰에서 상태 업데이트가 발생하면 이 트리 비교 연산에 CPU 자원이 크게 소모되어 프레임 레이트가 7 FPS 이하로 급락할 수 있습니다. + +**4. 최신 개선 사항 (React 19)** React 19에서는 재조정의 효율성을 높이기 위한 기능들이 강화되었습니다. `setTimeout`, 프로미스(Promises), 네이티브 이벤트 핸들러 등 모든 컨텍스트에서 **자동 배칭(Automatic Batching)**이 일관되게 적용되어 여러 상태 업데이트를 한 번의 리렌더링으로 묶어 처리합니다. 또한 동시성 렌더링(Concurrent Rendering) 기능이 향상되어, 백그라운드에서 실행되는 무거운 렌더링(저우선순위)을 잠시 중단하고 사용자의 타이핑과 같은 긴급한 고우선순위 업데이트를 즉각적으로 처리할 수 있게 되었습니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[가상 DOM (Virtual DOM)]], [[React 동시성 기능 (Concurrent Features)]], [[불필요한 리렌더링 방지]], [[명령형 조작 (Imperative Manipulation)]] + +- **Projects/Contexts:** [[고성능 실시간 상호작용 시스템을 위한 React 기반 게임 엔진 아키텍처]], [[대규모 데이터 렌더링 및 가상화 최적화]] + +- **Contradictions/Notes:** 재조정 알고리즘은 선언적 UI 관리를 가능하게 하는 훌륭한 기능이지만 만능은 아닙니다. Three.js(R3F) 기반의 게임이나 대규모 애니메이션 환경처럼 매 프레임 수만 개의 좌표나 속성이 변하는 경우, React의 재조정 과정을 거치면 성능이 붕괴되므로 `useFrame` 등을 활용해 참조(Ref)의 속성을 직접 조작(Direct/Imperative Mutation)하여 재조정을 우회하는 기법이 반드시 필요합니다. + + +--- + +_Last updated: 2026-04-15_ +- Raw Source: [[00_Raw/2026-04-20/재조정 (Reconciliation).md]] +--- diff --git a/Design & Experience/조직 시민 행동 (OCB).md b/Design & Experience/조직 시민 행동 (OCB).md new file mode 100644 index 00000000..8414062e --- /dev/null +++ b/Design & Experience/조직 시민 행동 (OCB).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-03634D +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 조직 시민 행동 (OCB)" +--- + +# [[조직 시민 행동 (OCB)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/조직 시민 행동 (OCB).md]] +--- diff --git a/Design & Experience/조직 행동론의 성과급 체계 분석.md b/Design & Experience/조직 행동론의 성과급 체계 분석.md new file mode 100644 index 00000000..a0750139 --- /dev/null +++ b/Design & Experience/조직 행동론의 성과급 체계 분석.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6AFB3F +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 조직 행동론의 성과급 체계 분석" +--- + +# [[조직 행동론의 성과급 체계 분석]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/조직 행동론의 성과급 체계 분석.md]] +--- diff --git a/Design & Experience/중독 의학 및 정신 병리학.md b/Design & Experience/중독 의학 및 정신 병리학.md new file mode 100644 index 00000000..d4e26051 --- /dev/null +++ b/Design & Experience/중독 의학 및 정신 병리학.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E50291 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 중독 의학 및 정신 병리학" +--- + +# [[중독 의학 및 정신 병리학]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/중독 의학 및 정신 병리학.md]] +--- diff --git a/Design & Experience/중독 재활 프로그램.md b/Design & Experience/중독 재활 프로그램.md new file mode 100644 index 00000000..591be115 --- /dev/null +++ b/Design & Experience/중독 재활 프로그램.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-383266 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 중독 재활 프로그램" +--- + +# [[중독 재활 프로그램]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/중독 재활 프로그램.md]] +--- diff --git a/Design & Experience/철벽 수비대_ - TypeScript 타입 시스템 (인터페이스 설계).md b/Design & Experience/철벽 수비대_ - TypeScript 타입 시스템 (인터페이스 설계).md new file mode 100644 index 00000000..0a236630 --- /dev/null +++ b/Design & Experience/철벽 수비대_ - TypeScript 타입 시스템 (인터페이스 설계).md @@ -0,0 +1,43 @@ +--- +id: P-REINFORCE-AUTO-A8177A +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 철벽 수비대_ - TypeScript 타입 시스템 (인터페이스 설계)" +--- + +# [[철벽 수비대_ - TypeScript 타입 시스템 (인터페이스 설계)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> TypeScript의 타입 시스템은 구조적 타이핑(Structural Typing)을 기반으로 유연성을 제공하면서도, 런타임 에러와 예기치 않은 상태 변경으로부터 애플리케이션을 보호하는 아키텍처적 도구입니다. 견고한 수비 체계를 구축하기 위해서는 성능과 확장성을 고려하여 인터페이스(Interface)와 타입 별칭(Type Alias)을 전략적으로 선택해야 합니다. 또한, 불변성 보장, 식별 가능한 유니온, 브랜디드 타입 등 고급 설계 기법을 활용하여 외부의 불안정한 데이터와 내부의 예기치 않은 상태 변경으로부터 시스템을 안전하게 지켜낼 수 있습니다. + +## 📖 구조화된 지식 (Synthesized Content) +* **구조적 타이핑과 과잉 속성 체크(Excess Property Checking)** + TypeScript는 객체의 구조가 일치하면 동일한 타입으로 간주하는 덕 타이핑(Duck Typing)을 따릅니다 [1]. 이로 인한 보안 허점을 막기 위해 과잉 속성 체크를 도입하여, 객체 리터럴이 직접 할당될 때 인터페이스에 정의되지 않은 속성이 포함되는 것을 컴파일 시점에 차단합니다 [2]. + +* **인터페이스(Interface)와 타입 별칭(Type Alias)의 전략적 선택** + 컴파일 성능 측면에서 인터페이스는 타입 관계를 캐싱하여 효율적인 반면, 타입 별칭의 교집합(&)은 매번 구조를 재계산하므로 핵심 도메인 모델에는 인터페이스가 유리합니다 [3]. 확장성 측면에서 인터페이스는 '선언 병합(Declaration Merging)'이 가능하여 라이브러리 확장에 유용하며, 타입 별칭은 동일한 이름 재선언이 불가해 더 엄격한 관리에 적합합니다 [3, 4]. 또한, 깊은 상속보다는 작은 단위의 인터페이스를 조합하는 '합성(Composition)' 방식이 시스템 결합도를 낮추어 변화에 강한 수비력을 제공합니다 [4]. + +* **불변성(Immutability)의 확립** + `readonly` 수식어를 통해 컴파일 수준에서 객체와 배열의 수정을 금지하여 데이터의 무결성을 보장할 수 있습니다 [5]. 얕은 수준의 보호 한계를 극복하기 위해 매핑 타입(Mapped Types)과 조건부 타입(Conditional Types)을 결합한 재귀적 `DeepReadonly`를 구축하면, 트리 구조나 복잡한 중첩 데이터의 수정까지 완벽히 차단할 수 있습니다 [5, 6]. + +* **식별 가능한 유니온(Discriminated Unions)과 완전성 검사** + 공통된 리터럴 속성을 태그로 사용하여 타입을 좁히는(Narrowing) 기법으로 자동 완성과 타입 안전성을 극대화합니다 [7]. `never` 타입을 활용한 완전성 검사(Exhaustiveness Checking)는 새로운 상태가 유니온에 추가되었을 때 처리되지 않은 분기를 컴파일 에러로 찾아내어 시스템의 빈틈을 방어합니다 [7]. + +* **명목적 타이핑의 수복과 경계면 수비** + 의미적으로 다른 데이터(예: 이메일과 이름)가 혼용되는 것을 막기 위해, 컴파일 시점에만 존재하는 고유 속성을 부여하는 브랜디드 타입(Branded Types)을 사용하여 엄격한 격리를 보장할 수 있습니다 [8, 9]. 나아가 할당 과정에서 우회될 수 있는 과잉 속성 체크의 한계를 보완하기 위해 `satisfies` 연산자를 활용하면, 객체가 특정 타입을 만족하는지 검사하면서도 리터럴 타입의 구체성을 잃지 않고 예기치 않은 데이터 침투를 막아냅니다 [9, 10]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[구조적 타이핑 (Structural Typing)]], [[선언 병합 (Declaration Merging)]], [[식별 가능한 유니온 (Discriminated Unions)]], [[브랜디드 타입 (Branded Types)]], [[satisfies 연산자]] +- **Projects/Contexts:** [[대규모 애플리케이션 개발]], [[도메인 기반 설계 (DDD)]] +- **Contradictions/Notes:** 과잉 속성 체크(EPC)는 객체 리터럴을 직접 다룰 때만 활성화되어 간접 할당 시 우회될 수 있다는 취약점이 있으나, TypeScript 4.9부터 도입된 satisfies 연산자를 통해 이 문제를 해결하고 엄격한 속성 검사를 수행할 수 있습니다 [9, 10]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/철벽 수비대_ - TypeScript 타입 시스템 (인터페이스 설계).md]] +--- diff --git a/Design & Experience/치타 사람 이미지 프롬프트.md b/Design & Experience/치타 사람 이미지 프롬프트.md new file mode 100644 index 00000000..5a528a9b --- /dev/null +++ b/Design & Experience/치타 사람 이미지 프롬프트.md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-8EC391 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 치타 사람 이미지 프롬프트" +--- + +# [[치타 사람 이미지 프롬프트]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 거대한 모래 치타의 추격을 받으며 사막을 질주하는 육상 선수를 통해 속도감과 자연의 힘을 초현실적으로 담아낸 시네마틱 컨셉 아트 프롬프트입니다. + +## 📖 구조화된 지식 (Synthesized Content) +본 데이터는 입자 시뮬레이션(모래/먼지)과 로우 앵글의 24mm 광각 렌즈를 활용해 거대한 모래 괴물과 인간의 스케일 대비를 극대화하며, 의상 및 신발에 특정 스포츠 브랜드 로고를 자유롭게 커스터마이징할 수 있도록 설계된 하이엔드 광고용 시각 에셋입니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[VFX Particle Simulation]], [[Cinematic Sports Advertising]], [[Surrealism Concept Art]] + +- **Projects/Contexts:** [[Sportswear Brand Campaign Visuals]] + +- **Contradictions/Notes:** 치타는 고체 형태의 동물이 아니라 수백만 개의 모래와 먼지로 이루어진 볼륨 시뮬레이션(Volumetric Simulation)이므로 경계면이 모래폭풍 속으로 자연스럽게 흩어지도록 연출 요망 + + +--- + +_Last updated: 2026년 4월 14일_ +- Raw Source: [[00_Raw/2026-04-20/치타 사람 이미지 프롬프트.md]] +--- diff --git a/Design & Experience/컴포넌트 기반 웹 프레임워크 아키텍처 설계.md b/Design & Experience/컴포넌트 기반 웹 프레임워크 아키텍처 설계.md new file mode 100644 index 00000000..0140dbb5 --- /dev/null +++ b/Design & Experience/컴포넌트 기반 웹 프레임워크 아키텍처 설계.md @@ -0,0 +1,38 @@ +--- +id: P-REINFORCE-AUTO-F36267 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 컴포넌트 기반 웹 프레임워크 아키텍처 설계" +--- + +# [[컴포넌트 기반 웹 프레임워크 아키텍처 설계]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 컴포넌트 기반 웹 프레임워크 아키텍처는 특정 기능이나 UI 요소를 구현하기 위해 HTML 구조, CSS 스타일, JavaScript 동작을 하나의 단위(컴포넌트)로 묶어 다루는 설계 방식입니다 [1]. 과거 기술적 역할 중심의 분리에서 벗어나 기능 중심의 수직적 모듈화를 통해 코드의 재사용성을 높이고 독립적인 개발과 테스트를 가능하게 합니다 [1, 2]. 프로젝트 규모가 커짐에 따라 발생하는 결합도 증가와 컴포넌트 비대화 문제를 해결하기 위해, 현대에는 마이크로 프론트엔드 및 FSD(Feature-Sliced Design)와 같은 발전된 아키텍처 방법론과 결합되어 사용됩니다 [3-5]. + +## 📖 구조화된 지식 (Synthesized Content) +- **웹 패러다임의 변화와 컴포넌트의 등장:** 초기 웹 개발은 HTML(구조), CSS(표현), JS(동작)로 기술적 역할을 나누는 수평적 관심사 분리 방식을 사용했습니다 [6, 7]. 하지만 웹 프레임워크의 발전과 함께 이들을 하나의 기능 단위로 묶는 '컴포넌트' 패러다임이 등장했습니다 [1]. 이는 기존 계층구조를 수직으로 관통하며 기능 중심의 모듈화를 이끌었고, 개발 생산성과 유지보수성을 크게 향상시켰습니다 [2]. +- **컴포넌트 아키텍처의 한계와 결합도 문제:** 컴포넌트 구조는 만능이 아니었으며, 대규모 프로젝트에서는 하위 컴포넌트로 데이터를 단순히 전달하기 위해 불필요한 속성(props)을 여러 단계에 걸쳐 통과시켜야 하는 'Props drilling' 문제로 인해 결합도가 높아지는 한계에 직면했습니다 [8]. 또한, 하나의 컴포넌트 안에 데이터 관리, 표현, 비즈니스 로직 등 너무 많은 책임이 집중되어 단일 책임 원칙(SRP)을 위반하는 '컴포넌트 비대화' 현상이 발생했습니다 [4]. +- **계층적 관심사의 재도입과 발전:** 컴포넌트의 한계를 극복하기 위해 프론트엔드 아키텍처는 컴포넌트 내부에서 다시 계층적 관심사를 분리하는 방향으로 진화했습니다 [9]. + - **UI 계층 구조화:** Atomic Design Pattern 등을 도입하여 UI 컴포넌트의 계층을 세밀하게 분리하고 역할을 분명히 했습니다 [10]. + - **단방향 의존성 구축:** CSS-in-JS, CSS Modules 등을 통해 CSS가 HTML 구조와 JavaScript 논리를 따라가도록 단방향 의존성(데이터 → 화면)을 만들었습니다 [11, 12]. + - **상태 관리 및 비즈니스 로직 분리:** 뷰(화면)와 데이터 로직을 분리하고, 비동기 통신이나 캐싱과 같은 서버 상태 관리를 별도의 계층으로 위임하여 컴포넌트는 화면을 그리고 이벤트를 받는 역할에만 집중하도록 설계했습니다 [12-14]. +- **대규모 확장을 위한 FSD와 마이크로 프론트엔드:** + - **Feature-Sliced Design (FSD):** 프로젝트가 거대해지면 전통적인 역할별 폴더 구조(/components, /api 등)만으로는 복잡성을 감당하기 어렵습니다 [5, 15]. FSD 아키텍처는 기능을 기준으로 코드를 분리하여 하나의 기능 단위에 필요한 모든 파일을 같은 폴더에 모아 관리함으로써 모듈 간 결합도를 줄이고 독립성을 높입니다 [5, 16]. + - **마이크로 프론트엔드 (Micro Frontends):** 거대한 단일 프론트엔드(Frontend Monolith)를 작고 독립적인 여러 조각으로 나누어 각 개발팀이 기술 스택에 구애받지 않고 자율적으로 개발 및 배포할 수 있게 하는 아키텍처입니다 [3, 17]. 런타임 통합, 웹 컴포넌트, 모듈 페더레이션, 라우트 기반 또는 컴포넌트 기반 합성 등의 방식을 활용해 어플리케이션을 조립합니다 [18, 19]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[관심사의 분리(Separation of Concerns)]], [[마이크로 프론트엔드(Micro Frontends)]], [[Feature-Sliced Design(FSD)]], [[단일 책임 원칙(SRP)]] +- **Projects/Contexts:** [[Spotify, Netflix, Amazon의 마이크로 프론트엔드 도입]], [[대규모 웹 애플리케이션의 폴더 구조 진화]] +- **Contradictions/Notes:** 컴포넌트 기반 아키텍처는 초기에 관심사 분리의 혁신으로 여겨졌으나, 점차 하나의 컴포넌트에 너무 많은 로직이 집중되며 독립성이 훼손되는 모순이 발생했습니다. 이를 해결하기 위해 기능 단위로 묶인 컴포넌트 내부에서 다시 데이터 로직과 뷰 로직의 역할을 나누는 계층적(Layer) 분리 방식이 재도입되었습니다 [4, 9, 12]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/컴포넌트 기반 웹 프레임워크 아키텍처 설계.md]] +--- diff --git a/Design & Experience/클린 아키텍처 (Clean Architecture).md b/Design & Experience/클린 아키텍처 (Clean Architecture).md new file mode 100644 index 00000000..e95b966e --- /dev/null +++ b/Design & Experience/클린 아키텍처 (Clean Architecture).md @@ -0,0 +1,47 @@ +--- +id: P-REINFORCE-AUTO-0A3765 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 클린 아키텍처 (Clean Architecture)" +--- + +# [[클린 아키텍처 (Clean Architecture)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 클린 아키텍처는 로버트 C. 마틴(Uncle Bob)이 창안한 소프트웨어 설계 철학으로, 시스템을 '관심사의 분리(Separation of Concerns)' 원칙에 따라 명확한 계층으로 나누는 아키텍처 구조입니다 [1-3]. 이 아키텍처는 시스템의 핵심인 비즈니스 로직을 프레임워크, UI, 데이터베이스와 같은 외부 기술 요소로부터 완벽히 분리시켜 유지보수성, 확장성, 그리고 테스트 용이성을 극대화하는 것을 목표로 합니다 [1, 4, 5]. 핵심 원리는 소스 코드의 의존성이 오직 내부의 고수준 정책(비즈니스 로직)을 향하도록 통제하는 '의존성 규칙(Dependency Rule)'을 엄격히 준수하는 것입니다 [1, 6, 7]. + +## 📖 구조화된 지식 (Synthesized Content) +**1. "뇌와 팔다리의 분리" 메타포를 통한 관심사 분리의 구현** +클린 아키텍처는 시스템을 '뇌(핵심 비즈니스 로직)'와 '팔다리(인프라스트럭처 및 외부 요소)'로 엄격하게 이분화하여 관심사의 분리(SoC)를 실현합니다 [8, 9]. +* **뇌 (핵심 계층):** 도메인의 본질적인 규칙을 담고 있는 엔티티(Entities)와 이를 제어하는 유스케이스(Use Cases)로 구성됩니다 [9]. 뇌가 신체의 중심인 것처럼 이 계층은 외부 세계(DB, UI 등)에 대해 전혀 알지 못하는 가장 독립적이고 순수한 형태를 유지해야 합니다 [9, 10]. +* **팔다리 (외부 계층):** 웹 인터페이스, 데이터베이스, 서드파티 프레임워크 등 핵심 로직을 감싸고 외부와 소통하는 저수준의 세부 사항입니다 [9, 11]. 팔다리는 언제든 다른 기술로 교체 가능하도록 시스템의 심장부에 '플러그인' 형태로 연결되어야 합니다 [9, 12]. + +**2. 의존성 규칙 (Dependency Rule)** +클린 아키텍처가 동작하게 하는 가장 핵심적인 규칙으로, 모든 소스 코드의 의존성은 반드시 바깥쪽(저수준 메커니즘)에서 안쪽(고수준 정책)으로만 향해야 합니다 [1, 6, 7]. 내부의 원에 속한 코드는 외부 원에 선언된 함수, 클래스, 변수 등 어떠한 것도 이름조차 언급해서는 안 되며, 외부의 데이터 형식에 의존해서도 안 됩니다 [7]. + +**3. 4가지 주요 동심원 계층 구조** +클린 아키텍처는 통상적으로 4가지 동심원 계층으로 소프트웨어를 구성합니다 [3, 7, 13]. +* **엔티티 (Entities):** 전사적인 핵심 업무 규칙과 데이터를 캡슐화한 가장 안쪽의 중심 계층입니다 [3, 10, 13]. 외부의 무언가가 변경되더라도 가장 영향을 받지 않습니다 [10]. +* **유스케이스 (Use Cases / Interactors):** 특정 애플리케이션에 특화된 업무 규칙을 포함하며, 엔티티로 들어오고 나가는 데이터 흐름을 조정합니다 [3, 13, 14]. +* **인터페이스 어댑터 (Interface Adapters):** 유스케이스와 엔티티에 편리한 형식의 데이터를 외부 에이전시(DB, 웹 등)가 사용하기 편리한 형식으로 변환해 주는 어댑터(프레젠터, 뷰, 컨트롤러 등)들의 모임입니다 [3, 11, 13, 14]. +* **프레임워크와 드라이버 (Frameworks & Drivers):** 데이터베이스, 웹 프레임워크, UI 등이 위치하는 가장 바깥쪽의 변동성이 큰 계층입니다 [3, 11, 13]. + +**4. 클린 아키텍처의 주요 이점** +* **완벽한 격리 및 테스트 용이성:** 업무 규칙은 UI, 데이터베이스, 웹 서버 등의 외부 요소가 없어도 독립적으로 테스트할 수 있습니다 [4, 5, 15]. +* **기술적 독립성 및 유연성:** 시스템은 특정 프레임워크에 종속되지 않으며, 외부 계층(팔다리)을 변경하더라도 내부 계층(뇌)의 핵심 기능은 아무런 영향을 받지 않기 때문에 기술 변화에 유연하게 대응할 수 있습니다 [4, 5, 15]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[관심사의 분리 (Separation of Concerns)]], [[의존성 역전 원칙 (Dependency Inversion Principle)]], [[단일 책임 원칙 (Single Responsibility Principle)]] +- **Projects/Contexts:** [[웹 애플리케이션의 3계층 구조]], [[도메인 주도 설계 (DDD)]], [[넷플릭스의 코스모스 플랫폼 및 마이크로서비스 전환]] +- **Contradictions/Notes:** 소스에 따르면 클린 아키텍처는 유지보수성과 확장성을 비약적으로 높여주지만, 초기 개발 시간이 증가하고 계층과 추상화가 너무 많아질 경우 시스템 구조가 지나치게 복잡해지는 오버엔지니어링(Over-Engineering) 및 간접 참조에 의한 가독성 저하를 유발할 수 있습니다 [16, 17]. 따라서 과도한 추상화를 경계하고, 실용적 필요에 맞게 응집도와 결합도를 고려하여 아키텍처의 균형을 맞추는 것이 중요합니다 [16, 18]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/클린 아키텍처 (Clean Architecture).md]] +--- diff --git a/Design & Experience/클린 아키텍처(Clean Architecture).md b/Design & Experience/클린 아키텍처(Clean Architecture).md new file mode 100644 index 00000000..8cee9904 --- /dev/null +++ b/Design & Experience/클린 아키텍처(Clean Architecture).md @@ -0,0 +1,48 @@ +--- +id: P-REINFORCE-AUTO-2298F3 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 클린 아키텍처(Clean Architecture)" +--- + +# [[클린 아키텍처(Clean Architecture)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> **클린 아키텍처(Clean Architecture)**는 로버트 C. 마틴(Robert C. Martin, "Uncle Bob")이 대중화한 소프트웨어 설계 철학으로, 비즈니스 로직과 애플리케이션 규칙을 시스템의 중심에 두어 코드의 품질을 높이는 것을 목표로 합니다 [1], [2]. 이 접근 방식은 시스템을 각기 다른 책임을 지는 여러 동심원 계층으로 분리하여 **관심사의 분리(Separation of Concerns)**를 촉진합니다 [1], [3]. 핵심 원칙인 **'의존성 규칙(Dependency Rule)'**을 강제하여 소스 코드 의존성이 오직 내부로만 향하게 함으로써 프레임워크, UI, 데이터베이스 등의 외부 요소로부터 독립적이고, 유지보수성, 확장성 및 테스트 용이성이 뛰어난 시스템을 구축할 수 있습니다 [1], [4], [5], [6]. + +## 📖 구조화된 지식 (Synthesized Content) +* **주요 설계 원칙** + * **의존성 규칙 (Dependency Rule):** 소스 코드 의존성은 반드시 외부 계층에서 내부 계층(고수준 정책 방향)으로만 향해야 합니다 [1], [7], [6]. 내부 원에 속한 코드는 외부에 선언된 어떤 것(함수, 클래스, 변수 등)에 대해서도 알아서는 안 됩니다 [6]. + * **독립성:** 시스템은 특정 프레임워크나 데이터베이스, UI, 그리고 기타 외부 에이전시에 종속되지 않고 독립적으로 동작해야 합니다 [1], [4], [5], [6]. + * **테스트 용이성 (Testability):** 아키텍처의 중심에 있는 핵심 비즈니스 규칙은 UI, 데이터베이스, 웹 서버 등의 외부 환경 없이도 격리된 상태에서 독립적으로 테스트할 수 있어야 합니다 [8], [4], [7], [6]. + +* **클린 아키텍처의 4가지 주요 계층** + * **엔티티 (Entities):** 가장 안쪽 계층으로 전사적인 핵심 업무 규칙이나 데이터 구조를 캡슐화합니다 [9], [10], [11]. 프레임워크나 데이터베이스에 의존하지 않는 순수한 객체로, 외부의 변경(UI, 보안 등)에 의해 영향을 받지 않습니다 [12], [11]. + * **유스케이스 (Use Cases):** 애플리케이션에 특화된 비즈니스 규칙을 구현하며, 엔티티로 들어오고 나가는 데이터 흐름을 조정합니다 [9], [10], [13]. 데이터베이스나 UI 등 외부 요소의 변경으로부터 격리되어 있습니다 [13]. + * **인터페이스 어댑터 (Interface Adapters):** 유스케이스나 엔티티에서 사용하기 편리한 데이터 형식을 웹, UI, 또는 데이터베이스 같은 외부 에이전시에게 편리한 형식으로 변환하는 역할을 합니다 [9], [10], [13]. GUI의 MVC 구조에서 프레젠터(Presenter), 뷰(View), 컨트롤러(Controller)와 데이터베이스 게이트웨이가 이 계층에 속합니다 [9], [13], [14]. + * **프레임워크와 드라이버 (Frameworks & Drivers):** 가장 바깥쪽 계층으로 데이터베이스, 웹 프레임워크, UI 시스템 등 변동성이 크고 시스템의 구체적인 세부 사항들이 위치하는 곳입니다 [9], [10], [15]. + +* **경계 횡단 (Crossing Boundaries) 및 데이터 전달** + * 제어 흐름과 의존성의 방향이 반대가 되는 상황에서는 **의존성 역전 원칙(DIP)**과 동적 다형성을 사용하여 소스 코드 의존성이 내부를 향하도록 만들어야 합니다 [16], [8], [17]. (예를 들어, 유스케이스가 직접 프레젠터를 호출하지 않고, 내부의 인터페이스를 호출하면 외부의 프레젠터가 이를 구현하도록 함) [17]. + * 계층 경계를 가로지르는 데이터는 DTO(Data Transfer Object)와 같이 캡슐화 및 격리된 매우 단순한 데이터 구조를 가져야만 의존성 규칙을 위배하지 않습니다 [18]. + +* **도입 시 도전 과제 및 해결책** + * **과엔지니어링(Over-Engineering) 및 초기 비용:** 클린 아키텍처의 여러 계층과 추상화를 도입하면 시스템이 장황해지고 초기 개발 시간이 길어질 수 있습니다 [19]. + * **해결책:** 소프트웨어 개발에 실질적인 이점이 있을 때만 레이어와 추상화를 추가하는 실용적인 접근(Pragmatism)이 필요하며, 점진적인 도입을 통해 레거시 코드를 개선하는 것이 좋습니다 [19], [20]. + * **테스트의 복잡성:** 여러 계층을 테스트하는 것은 까다로울 수 있으므로 목(Mock) 객체를 생성하여 독립적인 컴포넌트의 동작에 초점을 맞추는 것이 권장됩니다 [19]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[관심사의 분리(Separation of Concerns)]], [[의존성 역전 원칙(Dependency Inversion Principle)]], [[SOLID 원칙(SOLID Principles)]] +- **Projects/Contexts:** [[안드로이드 애플리케이션(Android Applications)]], [[iOS 애플리케이션의 VIPER 패턴(VIPER Architecture)]], [[ASP.NET Core 애플리케이션]], [[넷플릭스 마이크로서비스(Netflix Microservices)]] +- **Contradictions/Notes:** 소스 출처 "Complete Guide to Clean Architecture - GeeksforGeeks"는 클린 아키텍처가 시스템의 장기적인 유지보수성, 테스트 가능성, 유연성을 제공한다고 강조하지만, 동시에 도입 초기에는 여러 추상화 계층을 구축해야 하므로 초기 개발 시간이 증가하고 오버엔지니어링(Over-Engineering)에 빠질 위험이 있다고 지적합니다. 따라서 실용적인 관점과의 균형 유지가 필수적입니다 [21], [19]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/클린 아키텍처(Clean Architecture).md]] +--- diff --git a/Design & Experience/클린 아키텍처.md b/Design & Experience/클린 아키텍처.md new file mode 100644 index 00000000..9d4a9fab --- /dev/null +++ b/Design & Experience/클린 아키텍처.md @@ -0,0 +1,47 @@ +--- +id: P-REINFORCE-AUTO-417677 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 클린 아키텍처" +--- + +# [[클린 아키텍처]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 클린 아키텍처(Clean Architecture)는 로버트 C. 마틴(Robert C. Martin)이 제안한 소프트웨어 설계 철학으로, 비즈니스 로직과 애플리케이션 규칙을 시스템의 중심에 배치하는 구조를 갖습니다 [1, 2]. 소프트웨어를 여러 동심원 계층으로 분리하여 관심사를 철저히 분리하며, 프레임워크, 사용자 인터페이스(UI), 데이터베이스 등 외부 요소로부터 시스템을 완전히 독립시키는 것을 목표로 합니다 [1, 3-5]. 이 아키텍처의 핵심은 소스 코드의 의존성이 오직 내부의 고수준 정책만을 향해야 한다는 '의존성 규칙(Dependency Rule)'입니다 [1, 5, 6]. 이를 통해 시스템은 프레임워크나 외부 에이전시의 변경에 영향을 받지 않으며, 유지보수성, 확장성, 그리고 테스트 용이성을 극대화할 수 있습니다 [5, 7, 8]. + +## 📖 구조화된 지식 (Synthesized Content) +* **핵심 목적과 이점:** 클린 아키텍처의 주된 목적은 관심사의 분리(Separation of Concerns)를 통해 시스템을 모듈화하고, 프레임워크, UI, 데이터베이스로부터 독립적인 시스템을 만드는 것입니다 [3-5]. 이를 통해 개발자는 외부 요소의 개입 없이 핵심 비즈니스 로직을 격리하여 단위 테스트를 수행할 수 있으며(Testability), 시스템의 생명주기를 늘리고 새로운 요구사항에 유연하게 대응할 수 있는 확장성(Scalability) 및 유지보수성(Maintainability)을 확보할 수 있습니다 [3, 5, 8]. + +* **동심원 계층 구조:** 클린 아키텍처는 보통 4가지의 계층으로 시스템을 나눕니다 [9, 10]. + * **엔티티 (Entities):** 시스템의 가장 안쪽에 위치하며, 전사적이고 가장 일반적인 핵심 업무 규칙을 캡슐화합니다 [9-11]. 페이지 네비게이션이나 보안 등 외부의 변경 사항에 절대 영향을 받지 않아야 합니다 [11]. + * **유스케이스 (Use Cases):** 애플리케이션에 특화된 업무 규칙을 포함하며, 엔티티로 들어가고 나가는 데이터의 흐름을 조정합니다 [9, 10, 12]. + * **인터페이스 어댑터 (Interface Adapters):** 유스케이스나 엔티티에게 편리한 데이터 형식을 데이터베이스나 웹 같은 외부 에이전시가 이용하기 편리한 형식으로 변환하는 어댑터 역할을 합니다 [9, 10, 12]. 프레젠터(Presenter), 뷰(View), 컨트롤러(Controller) 등의 MVC 구조가 이곳에 속합니다 [9, 12]. + * **프레임워크와 드라이버 (Frameworks & Drivers):** 가장 바깥쪽 계층으로, 데이터베이스, 웹 프레임워크, UI 등 변동성이 매우 큰 외부 도구들로 구성됩니다 [9, 10, 13]. + +* **핵심 설계 원칙:** + * **의존성 규칙 (Dependency Rule):** 소스 코드의 의존성은 반드시 바깥쪽에서 안쪽으로, 즉 고수준의 정책(비즈니스 로직)을 향해야 합니다 [1, 5, 6]. 내부 원의 코드는 외부 원에 선언된 어떤 요소(함수, 클래스, 변수 등)의 이름도 언급해서는 안 됩니다 [5]. + * **의존성 역전 원칙 (DIP) 활용:** 제어 흐름이 내부에서 외부로 향해야 할 때는 의존성 역전 원칙을 사용하여 소스 코드 의존성이 제어 흐름과 반대 방향이 되도록 만듭니다 [14, 15]. 예를 들어 유스케이스가 프레젠터를 호출해야 할 경우, 직접 호출하는 대신 내부 원의 인터페이스를 호출하고 외부 원의 프레젠터가 이를 구현하도록 합니다 [15]. + * **경계를 횡단하는 데이터:** 계층의 경계를 가로지르는 데이터는 엔티티나 데이터베이스의 행(Row)이 아닌, 격리되고 단순한 데이터 구조(DTO 등)여야 합니다 [16, 17]. + +* **적용 시의 과제 및 한계:** + 클린 아키텍처는 유지보수성과 유연성을 가져오지만, 다수의 계층과 추상화를 도입해야 하므로 초기 개발 시간이 늘어나고 시스템이 불필요하게 복잡해지는 오버 엔지니어링(Over-Engineering)을 유발할 수 있습니다 [18]. 또한, 여러 계층 간의 상호작용으로 인해 통합 테스트의 복잡성이 증가할 수 있습니다 [18]. + +* **실제 적용 사례:** + 클린 아키텍처의 원칙은 구글이 권장하는 Android 애플리케이션 아키텍처, iOS의 VIPER 아키텍처, ASP.NET Core 웹 애플리케이션, 그리고 Netflix의 마이크로서비스 설계 등 다양한 플랫폼과 환경에서 실질적으로 적용되어 견고한 시스템 구축에 기여하고 있습니다 [19-21]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[관심사의 분리]], [[의존성 규칙]], [[의존성 역전 원칙]], [[SOLID 원칙]] +- **Projects/Contexts:** [[Netflix 마이크로서비스]], [[Android 애플리케이션 아키텍처]], [[VIPER 아키텍처]] +- **Contradictions/Notes:** 클린 아키텍처는 시스템의 유지보수성과 유연성을 극대화하지만, 동시에 여러 계층과 추상화의 추가로 인해 초기 개발 시간이 늘어나고 구조가 복잡해지는 '오버 엔지니어링'의 위험을 동반하므로 실용성과의 적절한 균형이 필요하다는 점을 주의해야 합니다 [18]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/클린 아키텍처.md]] +--- diff --git a/Design & Experience/타입 가드 (Type Guards).md b/Design & Experience/타입 가드 (Type Guards).md new file mode 100644 index 00000000..bde41260 --- /dev/null +++ b/Design & Experience/타입 가드 (Type Guards).md @@ -0,0 +1,41 @@ +--- +id: P-REINFORCE-AUTO-5D0418 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 타입 가드 (Type Guards)" +--- + +# [[타입 가드 (Type Guards)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 타입 가드(Type Guards)는 TypeScript에서 `unknown` 변수나 유니온(Union) 타입 변수의 실제 타입을 안전하게 판별하고 확신할 수 있게 해주는 기법입니다 [1, 2]. 이를 통해 TypeScript의 제어 흐름 분석(Control Flow Analysis)이 실행되어, 특정 조건문 블록 내에서 변수의 가능한 타입을 좁혀(Narrowing) 안전하게 속성에 접근할 수 있도록 돕습니다 [2, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **기본 타입 가드 (Built-in Type Guards):** + - **`typeof` 검사:** `typeof v === "typename"` ("number", "string", "boolean", "symbol" 등)과 같은 형태를 평가하여 TypeScript가 해당 스코프 내에서 타입을 자동으로 좁힙니다 [2, 3]. + - **`instanceof` 검사:** 우변에 생성자 함수를 두어 해당 객체가 특정 프로토타입에 속하는지 확인하고 타입을 좁힙니다 [2, 3]. + - **`in` 연산자 및 동등성 검사:** 객체 내 특정 속성의 존재 여부(`in`)나 값의 동등성을 검사하여 타입을 좁히는 데 활용할 수 있습니다 [3, 4]. + +- **사용자 정의 타입 가드 (Custom Type Guards / Type Predicates):** + - 일반 함수와 유사하지만, 반환 타입에 `is` 키워드를 사용하는 특수한 구문(예: `pet is Fish`, `value is Positive`)을 갖는 함수를 정의할 수 있습니다 [2, 5]. + - 이러한 함수(타입 서술어)가 런타임에 참(true)을 반환하면, TypeScript 타입 시스템은 조건문 내부에서 해당 파라미터가 명시된 타입이라고 인지하고 타입을 좁힙니다 [2, 5]. + - **주의점:** TypeScript는 타입 서술어 함수의 내부 로직이 실제로 해당 타입의 의도를 정확히 따르는지 검증하지 않습니다 [5]. 따라서 코드를 작성하는 개발자가 로직의 정확성을 전적으로 책임져야 하며, 잘못 작성될 경우 `as` 단언문(assertion)보다 크게 더 안전하지 않을 수 있습니다 [5]. + +- **사용 목적:** + - `unknown` 타입의 데이터를 다루거나, 여러 타입이 섞인 유니온 타입(Union Types)을 처리할 때 반복적인 타입 단언(Type Assertions)을 피하고 예측 가능한 코드를 작성하기 위해 사용됩니다 [1, 2]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Type Narrowing]], [[Union Types]], [[Type Predicates]], [[unknown type]] +- **Projects/Contexts:** [[외부 API의 불확실한(unknown) 데이터 검증 로직]], [[복잡한 유니온 타입 분기 처리]] +- **Contradictions/Notes:** 사용자 정의 타입 가드는 타입 좁히기에 매우 유용하지만, TypeScript가 내부 판별 로직의 논리적 오류를 잡아주지 못하기 때문에 개발자의 부주의로 인해 타입 안정성이 훼손될 위험이 존재합니다 [5]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/타입 가드 (Type Guards).md]] +--- diff --git a/Design & Experience/타입 별칭 (Type Alias).md b/Design & Experience/타입 별칭 (Type Alias).md new file mode 100644 index 00000000..d7fdcd1f --- /dev/null +++ b/Design & Experience/타입 별칭 (Type Alias).md @@ -0,0 +1,42 @@ +--- +id: P-REINFORCE-AUTO-37A8A8 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 타입 별칭 (Type Alias)" +--- + +# [[타입 별칭 (Type Alias)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 타입 별칭(Type Alias)은 TypeScript에서 기존 타입에 새로운 이름을 부여하여 재사용성을 높이는 기능입니다 [1]. 인터페이스(Interface)와 유사하게 객체의 형태를 정의하는 데 사용할 수 있으며, 그 외에도 원시 타입(Primitives), 유니온(Union), 튜플(Tuple) 및 기타 복잡한 타입 조합을 명명할 수 있는 폭넓은 표현력을 갖습니다 [1]. 인터페이스와 달리 선언 병합(Declaration Merging)을 허용하지 않아, 동일한 이름으로 재선언 시 에러를 발생시킴으로써 더 엄격한 타입 관리를 가능하게 합니다 [2, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +* **유연한 타입 표현력** + 타입 별칭은 단순히 객체의 형태를 정의하는 것을 넘어 유니온 타입, 교집합(Intersection), 매핑된 타입(Mapped Types), 조건부 타입(Conditional Types) 등 복잡한 타입 구성을 표현하는 데 매우 적합합니다 [1, 4, 5]. 값이 특정 원시 타입이거나 튜플, 혹은 `Record`과 같은 특수한 유틸리티 타입일 때 이를 간결하게 명명하는 역할을 수행합니다 [1, 6]. + +* **인터페이스(Interface)와의 구조적 차이** + 타입 별칭은 인터페이스와 목적이 겹치는 부분이 많으나 핵심적인 차이가 존재합니다. 가장 큰 차이는 **선언 병합(Declaration Merging)**의 지원 여부입니다. 인터페이스는 동일한 이름으로 여러 번 선언하면 자동으로 하나로 병합되지만, 타입 별칭은 동일한 이름을 재선언하면 컴파일 에러를 반환합니다 [2, 3]. 이 특성 때문에 외부에서 확장해야 하는 라이브러리 코드에는 인터페이스가 유리하지만, 예기치 않은 타입 확장을 막아야 하는 애플리케이션 수준의 비즈니스 로직에는 타입 별칭이 더 안전한 선택이 될 수 있습니다 [2, 3, 7]. + +* **컴파일 성능 및 동작 방식** + TypeScript 컴파일러는 인터페이스를 처리할 때 해당 이름을 기준으로 평탄화된 단일 객체 타입을 만들고 타입 관계를 캐싱합니다 [8, 9]. 반면, 타입 별칭을 통한 교집합 타입(`&`)은 참조될 때마다 매번 속성을 재귀적으로 병합하고 충돌을 확인해야 하므로 대규모 프로젝트에서는 컴파일 성능 저하의 원인이 될 수 있습니다 [8, 9]. 따라서 TypeScript 성능 가이드에서는 가능하면 교집합보다는 인터페이스 상속(extends)을 사용할 것을 권장하고 있습니다 [8, 10]. + +* **실무적 사용 전략** + 이러한 특성들로 인해, 개발자들 사이에서는 어떤 것을 기본으로 사용할지에 대한 논쟁과 다양한 전략이 존재합니다 [11, 12]. + - **이원화 전략**: 확장 지점이 필요한 외부와의 계약(Contract)이나 다형성을 띠는 도메인 모델에는 인터페이스를 사용하고, 확장이 필요 없는 내부 비즈니스 로직이나 단순 형태 선언에는 타입 별칭을 사용하는 전략입니다 [3, 13]. + - **단일화 전략**: 팀 내 혼란("이 경우에는 어떤 걸 써야 하지?")을 방지하기 위해 더 다채로운 표현이 가능하고 선언 병합의 부작용이 없는 타입 별칭만으로 코드베이스를 통일하는 팀도 다수 존재합니다 [4, 6, 14]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[인터페이스 (Interface)]], [[유니온 타입 (Union Types)]], [[구조적 타이핑 (Structural Typing)]], [[선언 병합 (Declaration Merging)]] +- **Projects/Contexts:** [[대규모 TypeScript 프로젝트의 컴파일 성능 최적화]], [[견고한 도메인 모델 및 API 계약 설계]] +- **Contradictions/Notes:** TypeScript 핸드북 및 성능 가이드라인은 컴파일러의 캐싱 이점과 성능 최적화를 이유로 객체 확장 시 교집합을 사용하는 타입 별칭보다 인터페이스 상속(extends)을 사용할 것을 권장합니다 [8-10]. 하지만 실무 현장에서는 의도치 않은 선언 병합을 방지하고 유연성을 얻고자 린팅(Linting) 규칙을 통해 인터페이스 사용을 아예 금지하고 타입 별칭(Type Alias)만을 전면적으로 사용하는 개발 팀들도 많아 명확한 대립이 존재합니다 [4, 6, 15]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/타입 별칭 (Type Alias).md]] +--- diff --git a/Design & Experience/테스트 용이성 (Testability).md b/Design & Experience/테스트 용이성 (Testability).md new file mode 100644 index 00000000..3790faee --- /dev/null +++ b/Design & Experience/테스트 용이성 (Testability).md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-BF1A40 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 테스트 용이성 (Testability)" +--- + +# [[테스트 용이성 (Testability)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 테스트 용이성이란 소프트웨어 시스템의 다양한 부분에 대해 자동화된 테스트를 직관적이고 쉽게 생성할 수 있도록 설계된 정도를 의미합니다 [1]. 이는 비즈니스 로직을 데이터베이스나 UI 같은 외부 환경으로부터 완전히 격리하여, 복잡한 설정이나 거대한 통합 테스트 없이 핵심 로직만을 검증할 수 있게 하는 아키텍처 및 코드의 특성입니다 [2, 3]. 테스트가 용이한 코드는 각 모듈이 독립적이고 결합도가 낮아 전체 시스템을 설정할 필요 없이 개별 관심사에 초점을 맞춘 단위 테스트를 용이하게 만듭니다 [4, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +- **설계 및 아키텍처 차원의 테스트 용이성:** 클린 아키텍처와 같은 소프트웨어 설계 패러다임은 시스템을 계층화하여 테스트 용이성을 극대화합니다 [6, 7]. 핵심 비즈니스 규칙을 프레임워크나 외부 에이전시로부터 독립시킴으로써, 외부 의존성이나 복잡한 설정 없이 순수한 비즈니스 로직에 대한 단위 테스트를 수월하게 작성할 수 있도록 보장합니다 [1, 3]. +- **관심사의 분리(SoC)와 응집도/결합도의 영향:** 관심사의 분리 원칙을 적용하여 모듈의 응집도를 높이고 결합도를 낮추면 각 모듈이 독립적으로 동작하게 되어 테스트의 복잡도가 현저히 낮아집니다 [8, 9]. 개발자는 전체 환경을 구축할 필요 없이 가짜 데이터(Fake data)나 더미 모듈을 사용하여 모듈을 블랙박스 또는 화이트박스 형태로 독립적으로 테스트할 수 있게 됩니다 [5, 10]. +- **의존성 주입(Dependency Injection)의 활용:** 클래스 내부에 의존성이 하드 코딩되어 있으면 실질적인 테스트가 불가능해질 수 있습니다 [11]. 의존성 주입을 사용하면 테스트 시 실제 의존성 대신 테스트 더블(Test Double)을 주입할 수 있어 복잡한 설정을 단순화하고 테스트 용이성을 확보할 수 있습니다 [12, 13]. +- **테스트 더블(Test Double)을 통한 격리:** 설정이 까다롭거나 부수 효과(Side effect)를 발생시키는 실제 외부 의존성 대신, 목(Mock), 스텁(Stub), 페이크(Fake) 등의 테스트 더블을 사용하면 외부 세계의 비결정론적 변화로부터 테스트를 보호하고 격리된 단위 테스트를 수행할 수 있습니다 [10, 12]. +- **분산 시스템 및 AI 시스템에서의 양면성:** 마이크로서비스 아키텍처는 개별 서비스 단위로는 높은 테스트 가능성을 제공하지만, 서비스 간 상호작용과 분산 시스템을 테스트하는 것은 더 어려워지는 구조적 특징을 갖습니다 [14, 15]. 반면 확률적이고 비결정론적인 성격을 지닌 AI 시스템 아키텍처라도 명확한 경계와 관찰 가능한 상태를 가지도록 컴포넌트를 설계하고 TDD(테스트 주도 개발)를 적용하면 높은 수준의 테스트 용이성과 유지보수성을 달성할 수 있습니다 [16-18]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[관심사의 분리 (Separation of Concerns)]], [[의존성 주입 (Dependency Injection)]], [[클린 아키텍처 (Clean Architecture)]], [[테스트 더블 (Test Double)]] +- **Projects/Contexts:** [[소프트웨어 아키텍처 설계]], [[AI 시스템 아키텍처 개발]], [[마이크로서비스 아키텍처 구축]] +- **Contradictions/Notes:** 모의 객체(Mock)와 스텁(Stub) 사용에 있어, 테스트를 단순하게 하고 외부 시스템으로부터 코드를 보호해 준다는 강력한 장점이 있지만, 너무 남용할 경우 코드가 실제와 다르게 동작할 수 있고 구현 세부 사항과 강하게 결합되어 테스트의 신뢰성을 떨어뜨릴 수 있다는 classicist 관점의 경고가 존재합니다 [19, 20]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/테스트 용이성 (Testability).md]] +--- diff --git a/Design & Experience/프론트엔드 컴포넌트 구조화.md b/Design & Experience/프론트엔드 컴포넌트 구조화.md new file mode 100644 index 00000000..00543dca --- /dev/null +++ b/Design & Experience/프론트엔드 컴포넌트 구조화.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-353103 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 프론트엔드 컴포넌트 구조화" +--- + +# [[프론트엔드 컴포넌트 구조화]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 프론트엔드 컴포넌트 구조화는 웹 개발에서 복잡성을 줄이고 유지보수성을 높이기 위해 기능과 역할 단위로 코드를 분리하고 조직하는 방법론입니다 [1, 2]. 초기에는 HTML, CSS, JavaScript라는 언어적 역할에 따라 분리되었으나, 특정 기능과 UI 요소를 하나의 단위로 묶는 컴포넌트 기반 아키텍처로 진화했습니다 [3]. 프로젝트의 규모가 커짐에 따라 발생하는 컴포넌트 간의 높은 결합도를 해결하기 위해, 관심사의 분리(SoC) 원칙을 다시 적용하여 Feature-Sliced Design(FSD)과 같이 기능 중심으로 구조를 세분화하는 방향으로 발전하고 있습니다 [2, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +- **컴포넌트 패러다임의 등장과 한계:** 프론트엔드의 개발은 본래 문서의 구조, 표현, 동작을 위해 각각 HTML, CSS, JS라는 수평적 계층으로 나뉘어 있었으나, 웹 프레임워크의 도입과 함께 기능 중심의 모듈화를 의미하는 수직적 '컴포넌트' 방식으로 변화했습니다 [1, 3, 5]. 하지만 프로젝트가 비대해짐에 따라 하나의 컴포넌트 안에 데이터 관리, 표현 로직, 비즈니스 로직이 집중되어 단일 책임 원칙을 위반하고, 'props drilling'으로 인한 컴포넌트 간의 결합도가 지나치게 높아지는 문제가 발생했습니다 [4, 6]. +- **계층적 관심사로의 회귀:** 컴포넌트의 한계를 극복하기 위해 다시 계층적 분리가 도입되었습니다 [7]. UI 컴포넌트의 명확한 역할과 계층을 나누기 위한 Atomic Design Pattern의 도입, CSS가 HTML의 구조를 단방향으로 따라가게 만드는 의존성 해결, 그리고 화면(View)과 데이터 로직을 분리하여 단방향 데이터 흐름을 만드는 상태 관리(State Management) 기법이 적용되었습니다 [8-10]. +- **폴더 구조의 진화와 FSD 아키텍처:** 전통적인 폴더 구조는 역할(api, components, pages 등)을 중심으로 분리되었으나, 대규모 프로젝트에서는 기능 단위로 코드가 흩어지게 되어 파악이 어렵습니다 [11, 12]. 이에 따라 기능을 기준으로 필요한 모든 파일을 한 폴더에 모아 관리하는 Feature-Sliced Design(FSD) 아키텍처가 대안으로 등장했습니다 [2]. 이를 통해 기능 간의 결합도를 줄이고 독립적인 관리가 가능해집니다 [13]. +- **올바른 컴포넌트 분리 원칙:** 프론트엔드 구조화에서 가장 흔한 실수는 겉모양이 비슷하다는 이유로 완전히 다른 도메인 데이터를 다루는 컴포넌트들을 하나로 묶어 재사용하려는 것입니다 [14]. 화면을 다루는 뷰 컴포넌트와 비즈니스 로직을 다루는 도메인 컴포넌트는 명확히 분리해야 하며, 만약 같은 화면 컴포넌트를 여러 도메인에서 공유해야 한다면 데이터를 변환하는 어댑터를 활용해 도메인별 데이터 규격을 화면 컴포넌트가 받아들일 수 있는 형태로 맞추어 전달하는 구조를 취해야 합니다 [15, 16]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[관심사의 분리]], [[Feature-Sliced Design]], [[단일 책임 원칙 (SRP)]], [[Atomic Design Pattern]] +- **Projects/Contexts:** [[대규모 프론트엔드 웹 프로젝트 폴더 구조화]], [[컴포넌트 기반 웹 프레임워크 아키텍처 설계]] +- **Contradictions/Notes:** 초기 웹 개발은 HTML, CSS, JS라는 역할 중심의 계층 구조로 이루어졌으나, 컴포넌트 패러다임의 등장으로 기능 중심의 융합 구조로 변하였습니다 [1, 3]. 하지만 컴포넌트 비대화와 결합도 증가라는 복잡성 문제가 다시 발생함에 따라, 현대에는 컴포넌트 내외부를 다시 세분화된 역할과 기능(Feature) 단위로 분리하는 FSD 아키텍처 구조로 나아가는 진화 흐름을 보입니다 [2, 4, 7]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/프론트엔드 컴포넌트 구조화.md]] +--- diff --git a/Design & Experience/프론트엔드 컴포넌트 설계.md b/Design & Experience/프론트엔드 컴포넌트 설계.md new file mode 100644 index 00000000..b97ee8da --- /dev/null +++ b/Design & Experience/프론트엔드 컴포넌트 설계.md @@ -0,0 +1,44 @@ +--- +id: P-REINFORCE-AUTO-F2362F +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 프론트엔드 컴포넌트 설계" +--- + +# [[프론트엔드 컴포넌트 설계]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 프론트엔드 컴포넌트 설계는 웹 개발에서 특정 기능이나 UI 요소를 구현하기 위해 HTML 구조, CSS 스타일, JavaScript 동작을 하나의 기능적 단위로 묶어 다루는 개발 방식입니다 [1]. 기존의 역할 중심 분리에서 기능 중심의 모듈화로 패러다임이 전환되면서 코드의 재사용성을 높이고 독립적인 테스트를 가능하게 했습니다 [1, 2]. 하지만 프로젝트 규모가 커짐에 따라 발생하는 컴포넌트의 비대화와 강한 결합도를 해결하기 위해, 다시 계층을 나누고 관심사를 분리하는 고도화된 설계 원칙이 요구됩니다 [3, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +* **프론트엔드 컴포넌트 패러다임의 등장과 한계** + 과거 웹 개발은 HTML(구조), CSS(표현), JS(동작)로 각자의 언어에 역할을 분리했으나, 웹 프레임워크의 도입과 함께 이를 수직으로 관통하는 컴포넌트 기반 아키텍처로 발전했습니다 [1, 5]. 하지만 대규모 프로젝트에서는 하위 컴포넌트로 데이터를 전달하기 위한 'props drilling'으로 인해 결합도가 지나치게 높아졌고, 하나의 컴포넌트에 데이터 관리와 표현, 비즈니스 로직이 모두 집중되면서 단일 책임 원칙(SRP)을 위반하는 비대화 문제가 발생했습니다 [3, 6]. + +* **효과적인 컴포넌트 설계를 위한 계층적 관심사 분리** + 비대해진 컴포넌트 문제를 해결하기 위해 프론트엔드 진영은 컴포넌트 내부와 외부를 다시 계층적으로 분리하기 시작했습니다 [4]. + * **UI 컴포넌트의 계층화:** 아토믹 디자인 패턴(Atomic Design Pattern) 등을 도입하여 컴포넌트를 더 세밀한 기준과 역할로 분리해 정돈했습니다 [7]. + * **HTML-CSS의 단방향 의존성:** CSS Modules나 CSS-in-JS 등을 활용하여 구조(HTML) 변경 시 스타일(CSS)이 종속적으로 따라가도록 의존성의 방향을 단방향으로 통제했습니다 [7, 8]. + * **뷰 로직과 비즈니스/서버 상태 로직의 분리:** 상태 관리(State Management) 개념을 통해 컴포넌트는 오직 화면 렌더링과 사용자 이벤트 수신에만 집중하도록 하고, 데이터 로직이나 비동기 처리(API 호출, 캐싱 등)는 별도의 계층으로 위임하여 단방향 데이터 흐름을 구축했습니다 [9, 10]. + +* **실무적인 컴포넌트 분리 및 재사용 원칙** + * **도메인과 UI의 분리:** 시각적인 모양이 유사하더라도 다루는 도메인 데이터가 다르다면 같은 컴포넌트로 묶어 재사용하는 것은 지양해야 합니다. 재사용할 컴포넌트는 도메인에 종속되지 않은 순수 UI 요소로만 구성하여 응집도를 높이고 독립시켜야 합니다 [11, 12]. + * **어댑터(Adapter) 패턴 활용:** 만능 관리자 게시판처럼 동일한 UI 화면에 다양한 도메인 데이터를 렌더링해야 할 경우, 컴포넌트 내부에 분기문(if)을 무한히 추가하는 것은 안티 패턴입니다. 대신 각 도메인의 데이터를 UI 컴포넌트의 규격에 맞게 변환해 주는 어댑터를 두어 화면과 데이터 간의 단방향 의존성을 지켜야 합니다 [12, 13]. + +* **설계 패러다임에 따른 폴더 구조의 진화 (FSD)** + 프론트엔드 프로젝트의 설계는 폴더 구조와 직결됩니다. 초기에는 역할(api, components, pages 등) 단위의 분리가 유리하지만, 프로젝트가 고도화되면 역할 중심의 구조는 유지보수를 어렵게 합니다 [14, 15]. 이에 따라 코드를 기능(Feature) 단위로 응집시키는 FSD(Feature-Sliced Design) 아키텍처 방식이 대안으로 등장하여, 기능 간의 결합도를 줄이고 프론트엔드의 복잡성을 관리하고 있습니다 [16, 17]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[관심사의 분리 (SoC)]], [[단일 책임 원칙 (SRP)]], [[아토믹 디자인 패턴 (Atomic Design Pattern)]], [[단방향 데이터 흐름]], [[FSD (Feature-Sliced Design)]] +- **Projects/Contexts:** [[대규모 프론트엔드 애플리케이션 아키텍처 구축 및 리팩토링]] +- **Contradictions/Notes:** 소스에서는 시각적 형태가 비슷하다고 무작정 동일한 컴포넌트로 묶는 것을 프론트엔드 개발자들이 흔히 하는 실수로 지적합니다. 데이터(도메인)가 다를 경우 결합도가 급증하여 오히려 유지보수성이 저해되므로, UI 컴포넌트와 도메인 컴포넌트를 명확히 분리해야 한다고 강조합니다. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/프론트엔드 컴포넌트 설계.md]] +--- diff --git a/Design & Experience/플레이어 경험 디자인 (Player Experience Design).md b/Design & Experience/플레이어 경험 디자인 (Player Experience Design).md new file mode 100644 index 00000000..42764780 --- /dev/null +++ b/Design & Experience/플레이어 경험 디자인 (Player Experience Design).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-216B69 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 플레이어 경험 디자인 (Player Experience Design)" +--- + +# [[플레이어 경험 디자인 (Player Experience Design)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/플레이어 경험 디자인 (Player Experience Design).md]] +--- diff --git a/Design & Experience/행동 치료 및 인지 행동 치료 (CBT).md b/Design & Experience/행동 치료 및 인지 행동 치료 (CBT).md new file mode 100644 index 00000000..8e0417ea --- /dev/null +++ b/Design & Experience/행동 치료 및 인지 행동 치료 (CBT).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-121D57 +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 행동 치료 및 인지 행동 치료 (CBT)" +--- + +# [[행동 치료 및 인지 행동 치료 (CBT)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/행동 치료 및 인지 행동 치료 (CBT).md]] +--- diff --git a/Design & Experience/현대 웹 애플리케이션 설계.md b/Design & Experience/현대 웹 애플리케이션 설계.md new file mode 100644 index 00000000..4e57c443 --- /dev/null +++ b/Design & Experience/현대 웹 애플리케이션 설계.md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-21E1FE +category: "[[10_Wiki/💡 Topics/Design & Experience]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 현대 웹 애플리케이션 설계" +--- + +# [[현대 웹 애플리케이션 설계]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 현대 웹 애플리케이션 설계는 시스템의 확장성, 유지보수성, 그리고 개발 속도를 향상시키기 위해 복잡성을 효과적으로 분리하고 관리하는 구조적 접근 방식을 의미한다 [1-3]. 전통적인 모놀리식 구조의 한계를 극복하기 위해 관심사의 분리(SoC) 원칙을 기반으로 시스템을 독립적인 모듈과 계층으로 철저히 분할한다 [4-6]. 백엔드의 마이크로서비스 아키텍처부터 프론트엔드의 마이크로 프론트엔드, API 우선 설계, 클린 아키텍처에 이르기까지 다양한 패러다임이 결합되어 대규모 팀의 자율적이고 병렬적인 개발과 안정적인 서비스 배포를 지원한다 [7-10]. + +## 📖 구조화된 지식 (Synthesized Content) +* **관심사의 분리(SoC) 및 다계층 구조:** 현대 웹 애플리케이션 설계의 가장 핵심적인 원칙은 관심사의 분리(SoC)이다 [2, 11]. 이는 애플리케이션을 프레젠테이션 계층(UI 및 사용자 상호작용), 비즈니스 로직 계층(데이터 처리 및 애플리케이션 규칙), 데이터 액세스 계층(데이터베이스 통신) 등 명확한 목적을 가진 계층으로 나누는 MVC 또는 N-Tier 아키텍처 패턴을 따른다 [12-14]. 이를 통해 특정 계층의 변경이 다른 계층에 영향을 미치지 않도록 방지하고, 코드의 응집도(Cohesion)를 높이며 결합도(Coupling)를 낮춘다 [15-17]. +* **API 우선 아키텍처(API-First Architecture):** 애플리케이션의 API를 나중에 덧붙이는 것이 아니라 일차적인 제품으로 취급하여 먼저 설계하는 방식이다 [18]. 프론트엔드와 백엔드 개발팀이 합의된 API 명세(예: OpenAPI)를 기반으로 병렬 작업을 수행할 수 있도록 하며, 분산된 시스템 통합의 일관된 접점 역할을 한다 [7, 19, 20]. +* **마이크로서비스 및 클라우드 네이티브 환경:** 대규모 웹 애플리케이션은 촘촘하게 결합된 모놀리식 구조에서 벗어나, 독립적으로 배포 및 확장이 가능한 마이크로서비스 아키텍처로 진화했다 [5, 21, 22]. 각 서비스는 특정 비즈니스 기능(도메인)에 집중하며, 넷플릭스(Netflix)의 사례처럼 시스템을 분할하여 개발 조직의 혁신 속도와 시스템 가용성을 크게 향상시킨다 [9, 23]. 또한, 컨테이너(Docker) 기반 배포와 오케스트레이션(Kubernetes)을 활용하는 클라우드 네이티브 구조를 통해 탄력적인 자원 확장과 무중단 배포를 구현한다 [24, 25]. +* **프론트엔드 아키텍처의 진화 (마이크로 프론트엔드 및 FSD):** 프론트엔드 역시 복잡성을 다루기 위해 발전을 거듭했다. 단일 프론트엔드 애플리케이션의 비대화를 막기 위해 UI를 독립적으로 개발하고 런타임에 결합하는 마이크로 프론트엔드 아키텍처가 채택되고 있다 [6, 26, 27]. 또한, 프로젝트의 규모가 커짐에 따라 단순한 역할(컴포넌트, 훅 등) 기반 폴더 구조를 넘어 기능(Feature)을 기준으로 코드를 슬라이스하여 관리하는 FSD(Feature-Sliced Design) 방법론이 도입되어 프론트엔드의 유지보수성을 극대화하고 있다 [28, 29]. +* **클린 아키텍처의 적용:** 비즈니스의 핵심 규칙(엔티티 및 유스케이스)을 아키텍처의 중심에 배치하고, UI나 웹 프레임워크, 데이터베이스와 같은 세부 사항들을 외부 계층으로 밀어내는 클린 아키텍처 패러다임이 필수적이다 [10, 30, 31]. 소스 코드의 의존성은 항상 고수준의 정책을 향해 안쪽으로만 흐르게 하여(의존성 규칙), 애플리케이션이 특정 웹 프레임워크나 외부 DB 기술에 종속되지 않도록 설계해야 한다 [32, 33]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Design & Experience 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[관심사의 분리(SoC)]], [[마이크로서비스 아키텍처]], [[마이크로 프론트엔드]], [[클린 아키텍처]], [[Feature-Sliced Design (FSD)]], [[API 우선 아키텍처]] +- **Projects/Contexts:** [[넷플릭스(Netflix) 마이크로서비스 도입]], [[스포티파이(Spotify) 스쿼드 모델 및 마이크로 프론트엔드]] +- **Contradictions/Notes:** 마이크로서비스나 모듈화를 통한 관심사의 분리는 개발 및 배포의 완벽한 독립성을 제공하는 것처럼 보이지만, 횡단 관심사(Cross-cutting concerns)나 공유 데이터 구조 변경 시에는 여러 서비스가 간접적으로 결합되어 파급 효과가 발생할 수 있다는 맹점이 존재한다 [34-36]. 또한, 과도한 계층 분리와 추상화는 네트워크 지연 시간 증가, 데이터 변환 오버헤드, 가독성 저하 등의 '오버엔지니어링'을 초래할 수 있으므로 프로젝트의 규모와 실용성에 맞춘 적절한 트레이드오프와 조율이 필요하다 [37-39]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/현대 웹 애플리케이션 설계.md]] +--- diff --git a/Design & Web Performance/Core Web Vitals.md b/Design & Web Performance/Core Web Vitals.md new file mode 100644 index 00000000..781e035a --- /dev/null +++ b/Design & Web Performance/Core Web Vitals.md @@ -0,0 +1,31 @@ +--- +id: P-REINFORCE-AI-045 +category: "[[10_Wiki/💡 Topics/Design & Web Performance]]" +confidence_score: 0.98 +tags: [web, performance, web vitals, user experience] +last_reinforced: 2026-06-XX +github_commit: "[P-Reinforce] Processed Core_Web_Vitals.md" +--- + +# [[Core Web Vitals]] (핵심 웹 지표) + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 구글이 제시하는 사용자 경험 중심의 핵심 측정 기준들로, 단순한 기술 스펙을 넘어 실제 사용자가 체감하는 페이지 로딩 속도와 인터랙션 품질을 종합적으로 평가한다. + +## 📖 구조화된 지식 (Synthesized Content) +- **개념:** 웹사이트의 성능을 평가하는 가장 중요한 세 가지 지표를 통칭하며, 사용자 경험(UX)과 직접적으로 연결된다는 것이 핵심이다. +- **세부 구성 요소:** + 1. **LCP (Largest Contentful Paint):** 사용자가 페이지에서 가장 큰 콘텐츠가 로드되는 시점의 시간 측정. (인지적 만족도와 직결). + 2. **FID (First Input Delay) / INP (Interaction to Next Paint):** 사용자의 첫 번째 입력(클릭, 터치 등)을 시스템이 인지하고 반응하는 데 걸리는 지연 시간 측정. (반응성 평가). *최근에는 FID 대신 INP가 표준화되는 추세.* + 3. **CLS (Cumulative Layout Shift):** 콘텐츠가 로드되거나 변경될 때 레이아웃이 얼마나 불안정하게 흔들리는지를 측정. (시각적 안정성 평가). +- **기술적 중요성:** 이 지표들은 단순히 Lighthouse 점수 몇 점을 넘기는 것을 넘어, 웹 애플리케이션의 아키텍처(Code Splitting, Lazy Loading) 설계와 직접 연관되어 최적화가 요구된다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 과거에는 단순히 로딩 바 속도만 중요하게 여겼으나, 이제는 LCP/FID/CLS를 통해 '사용자가 체감하는 경험'이라는 관점으로 패러다임이 완전히 전환되었다. +- **정책 변화:** 기술적 개선(예: WebGPU 도입)만큼이나 사용자에게 이 성능 향상을 어떻게 인지시키고 가치를 전달할 것인지(UX 측면)가 중요해지고 있다. + +## 🔗 지식 연결 (Graph) +- Parent: [[Web Performance Optimization]] +- Related: [[Largest Contentful Paint (LCP)]] , [[Interaction to Next Paint (INP)]] , [[Cumulative Layout Shift (CLS)]] +- Raw Source: [[00_Raw/Core_Web_Vitals.md]] +--- \ No newline at end of file diff --git a/Design/Accessibility.md b/Design/Accessibility.md new file mode 100644 index 00000000..b9f40767 --- /dev/null +++ b/Design/Accessibility.md @@ -0,0 +1,29 @@ +--- +id: P-REINFORCE-DESIGN-001 +category: "[[10_Wiki/💡 Topics/Design]]" +confidence_score: 0.94 +tags: [design, accessibility, a11y, ux] +last_reinforced: 2026-04-20 +github_commit: "batch-reinforce-01" +--- + +# [[Accessibility (A11y)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 기술적 장벽을 허물어 모든 사용자가 정보에 평등하게 접근할 수 있도록 보장하는 포괄적 설계의 핵심 원칙. + +## 📖 구조화된 지식 (Synthesized Content) +- **추출된 패턴:** WCAG 2.1 가이드라인을 준수하며 시각/청각/운동 능력의 제약과 관계없이 인터페이스를 인지 가능하게 만드는 접근성 수립 패턴. +- **세부 내용:** + - 의미론적 HTML 태그 사용 및 ARIA 속성 적용. + - 키보드 내비게이션 및 스크린 리더 호환성 확보. + - 텍스트 대비 및 폰트 크기 조절 등 시각적 보완 기능. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 부수적인 기능으로 여겨지던 '접근성'을 제품 설계의 근간(First-class Citizen)으로 재정의. +- **정책 변화:** 사용자 만족도(w3)의 필수 지표로 접근성 점수를 채택. + +## 🔗 지식 연결 (Graph) +- **Parent:** [[10_Wiki/💡 Topics/Design]] +- **Related:** [[WCAG]], [[Inclusive-Design]], [[ARIA]] +- **Raw Source:** [[00_Raw/2026-04-20/Accessibility (A11y).md]] diff --git a/Design/Cognitive_Load.md b/Design/Cognitive_Load.md new file mode 100644 index 00000000..f6a2656c --- /dev/null +++ b/Design/Cognitive_Load.md @@ -0,0 +1,29 @@ +--- +id: P-REINFORCE-DESIGN-004 +category: "[[10_Wiki/💡 Topics/Design]]" +confidence_score: 0.94 +tags: [design, hci, psychology, cognitive-load] +last_reinforced: 2026-04-20 +github_commit: "batch-reinforce-07" +--- + +# [[Cognitive Load Theory (인지 부하 이론)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 우리 뇌의 작업 기억(Working Memory) 용량은 한정되어 있음을 인정하고, 정보 전달의 효율을 위해 마찰을 설계하는 기술. + +## 📖 구조화된 지식 (Synthesized Content) +- **추출된 패턴:** 내재적 부하(Intrinsic), 외재적 부하(Extraneous), 본질적 부하(Germane)를 구분하여 학습 및 정보 처리를 최적화하는 인지 설계 패턴. +- **세부 내용:** + - Interface 디자인 시 불필요한 시각적 노이즈를 제거하여 외재적 부하를 최소화. + - 정보의 청킹(Chunking)을 통해 제한된 작업 기억 공간을 효율적으로 활용. + - 복잡한 데이터 시각화 시 점진적 노출(Progressive Disclosure) 기법 적용. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 단순한 미학적 디자인(Beautiful)에서 뇌의 작동 방식에 부합하는 사용성(Usable) 중심으로 패러다임 이동. +- **정책 변화:** 사용자 만족도(w3) 지표로 인지 부하 측정 가이던스 도입. + +## 🔗 지식 연결 (Graph) +- **Parent:** [[10_Wiki/💡 Topics/Design]] +- **Related:** [[HCI]], [[UX-Design]], [[Inclusive_Design]] +- **Raw Source:** [[00_Raw/2026-04-20/Cognitive Load Theory.md]] diff --git a/Design/CrUX.md b/Design/CrUX.md new file mode 100644 index 00000000..54c29841 --- /dev/null +++ b/Design/CrUX.md @@ -0,0 +1,29 @@ +--- +id: P-REINFORCE-DESIGN-005 +category: "[[10_Wiki/💡 Topics/Design]]" +confidence_score: 0.89 +tags: [design, web, ux, performance, crux] +last_reinforced: 2026-04-20 +github_commit: "batch-reinforce-07" +--- + +# [[Chrome User Experience Report (CrUX)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 실제 사용자가 웹에서 느끼는 속도와 사용성을 데이터로 입증하며 제품 개선의 근거를 제시하는 성능 리포트. + +## 📖 구조화된 지식 (Synthesized Content) +- **추출된 패턴:** 실제 사용자 경험 데이터(RUM)를 기반으로 Core Web Vitals 지표를 분석하여 성능 병목 지점을 포착하는 패턴. +- **세부 내용:** + - LCP(최대 콘텐츠 렌더링 시간), INP(다음 페인트와의 상호작용) 등 사용자 체감 지표 관리. + - BigQuery 및 PageSpeed Insights를 통한 데이터 접근 및 심층 분석. + - 최소 데이터 볼륨 기준을 통해 데이터의 신뢰성과 대표성 확보. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 실험실 환경(Lab Data)의 측정값과 실제 현장(Field Data)의 격차를 해소. +- **정책 변화:** 사용자 만족도(w3) 측정 시 CrUX 리포트의 성능 지표를 가중치로 적극 반영. + +## 🔗 지식 연결 (Graph) +- **Parent:** [[10_Wiki/💡 Topics/Design]] +- **Related:** [[Core-Web-Vitals]], [[Performance-Optimization]], [[UX-Design]] +- **Raw Source:** [[00_Raw/2026-04-20/Chrome User Experience Report (CrUX).md]] diff --git a/Design/HCI.md b/Design/HCI.md new file mode 100644 index 00000000..2d28557c --- /dev/null +++ b/Design/HCI.md @@ -0,0 +1,29 @@ +--- +id: P-REINFORCE-DESIGN-003 +category: "[[10_Wiki/💡 Topics/Design]]" +confidence_score: 0.96 +tags: [design, hci, ux, cognitive] +last_reinforced: 2026-04-20 +github_commit: "batch-reinforce-06" +--- + +# [[Human-Computer Interaction (HCI)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 기계의 효율성과 인간의 인지를 잇는 접점에서, 가장 마찰 없는(Frictionless) 소통의 언어를 설계하는 학문. + +## 📖 구조화된 지식 (Synthesized Content) +- **추출된 패턴:** 사용자의 멘탈 모델(Mental Model)과 시스템의 개념 모델을 일치시켜 인지 부하를 최소화하는 상호작용 패턴. +- **세부 내용:** + - 닐슨의 10가지 유리스틱(Heuristics)을 활용한 사용성 평가. + - 피츠의 법칙(Fitts's Law) 등 인간 공학적 데이터 기반 인터페이스 설계. + - 감성 컴퓨팅(Affective Computing)을 통한 교감형 상호작용 연구. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 도구로서의 컴퓨터에서 '협력적 지능 에이전트'로의 상호작용 대상 변화 인식. +- **정책 변화:** 지식 구조(w2) 관점에서 AI 인터페이스 설계 가이드라인의 중추로 설정. + +## 🔗 지식 연결 (Graph) +- **Parent:** [[10_Wiki/💡 Topics/Design]] +- **Related:** [[UX-Design]], [[Cognitive-Load]], [[Fitts-Law]] +- **Raw Source:** [[00_Raw/2026-04-20/Human-Computer-Interaction.md]] diff --git a/Design/Inclusive_Design.md b/Design/Inclusive_Design.md new file mode 100644 index 00000000..9ad1993e --- /dev/null +++ b/Design/Inclusive_Design.md @@ -0,0 +1,29 @@ +--- +id: P-REINFORCE-DESIGN-002 +category: "[[10_Wiki/💡 Topics/Design]]" +confidence_score: 0.94 +tags: [design, inclusive, universal, accessibility] +last_reinforced: 2026-04-20 +github_commit: "batch-reinforce-06" +--- + +# [[Inclusive Design (포용적 설계)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 인간의 다양성을 설계의 중심에 두고, 특정 그룹을 배제하지 않는 보편적 접근을 통해 기술의 인간성을 실현하는 일. + +## 📖 구조화된 지식 (Synthesized Content) +- **추출된 패턴:** 극단적 사용자(Extreme Users)의 요구사항을 해결함으로써 일반 사용자까지 혜택을 입게 만드는 '에지 케이스' 기반 설계 패턴. +- **세부 내용:** + - 상황적 제약(손에 짐을 든 경우 등)까지 고려한 UX 시나리오 확장. + - 유니버설 디자인(Universal Design) 7원칙의 디지털 인터페이스 적용. + - 공감(Empathy) 기반의 사용자 리서치를 통한 잠재적 장벽 제거. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 단순 사후 보완(Compliance) 개념이었던 접근성을 사전 설계 전략(Strategy)으로 격상. +- **정책 변화:** 사용자 만족도(w3) 피드백에서 '포용성 점수'의 비준을 강화. + +## 🔗 지식 연결 (Graph) +- **Parent:** [[10_Wiki/💡 Topics/Design]] +- **Related:** [[Accessibility]], [[ISO-9241]], [[User-Centered-Design]] +- **Raw Source:** [[00_Raw/2026-04-20/Universal-Design-Principles.md]] diff --git a/Economics & Algorithms/Algorithmic Mechanism Design.md b/Economics & Algorithms/Algorithmic Mechanism Design.md new file mode 100644 index 00000000..2b0226b5 --- /dev/null +++ b/Economics & Algorithms/Algorithmic Mechanism Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-29EF85 +category: "[[10_Wiki/💡 Topics/Economics & Algorithms]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Batch 11 - Wikified Algorithmic Mechanism Design" +--- + +# [[Algorithmic Mechanism Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 작업 중 + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중 + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 신규 지식 카테고리화 및 연결성 강화. +- **정책 변화:** Economics & Algorithms 분야의 지식 자산 보호 및 네트워크 확장. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Algorithmic Mechanism Design.md]] +--- diff --git a/Economics & Algorithms/Auction Theory.md b/Economics & Algorithms/Auction Theory.md new file mode 100644 index 00000000..b53b86fb --- /dev/null +++ b/Economics & Algorithms/Auction Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-375B82 +category: "[[10_Wiki/💡 Topics/Economics & Algorithms]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Mega Batch 2 - Wikified Auction Theory" +--- + +# [[Auction Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 작업 중 + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중 + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 지식 자산화 및 기존 네트워크 연동 단계. +- **정책 변화:** Economics & Algorithms 카테고리의 전문성 확보 및 링크 밀도 최적화. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Auction Theory.md]] +--- diff --git a/Education & AI/Adaptive-Learning-Systems.md b/Education & AI/Adaptive-Learning-Systems.md new file mode 100644 index 00000000..960a4ff6 --- /dev/null +++ b/Education & AI/Adaptive-Learning-Systems.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AI-A2C439 +category: "[[10_Wiki/💡 Topics/Education & AI]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Batch 9 - Wikified Adaptive-Learning-Systems" +--- + +# [[Adaptive-Learning-Systems]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> + +## 📖 구조화된 지식 (Synthesized Content) + + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 신규 문서로, 기존 정보와의 충돌 분석 예정. +- **정책 변화:** Education & AI 카테고리의 지식 연결망 강화를 위한 표준 위키화 적용. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Adaptive-Learning-Systems.md]] +--- diff --git a/Education/Adaptive_Learning.md b/Education/Adaptive_Learning.md new file mode 100644 index 00000000..6cb2ca24 --- /dev/null +++ b/Education/Adaptive_Learning.md @@ -0,0 +1,29 @@ +--- +id: P-REINFORCE-EDUC-001 +category: "[[10_Wiki/💡 Topics/Education]]" +confidence_score: 0.91 +tags: [education, ai, adaptive, learning] +last_reinforced: 2026-04-20 +github_commit: "batch-reinforce-01" +--- + +# [[Adaptive Learning Systems]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 학습자의 수준과 속도를 실시간으로 분석하여 개인별 최적의 학습 경로를 동적으로 제안하는 지능형 교수 시스템. + +## 📖 구조화된 지식 (Synthesized Content) +- **추출된 패턴:** 학습 데이터를 기반으로 지식의 간극(Knowledge Gap)을 진단하고 다음 학습 콘텐츠를 추천하는 순환적 피드백 패턴. +- **세부 내용:** + - IRT(문항 반응 이론)를 활용한 정확한 숙련도 측정. + - 학습 동기 유지를 위한 동적 난이도 조절. + - 시각적 데이터 대시보드를 통한 학습 성취도 체계적 관리. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 일방향적인 주입식 교육에서 상호작용 중심의 개인화 교육으로의 전환. +- **정책 변화:** 사용자 만족도(w3) 피드백에 따라 학습자 이탈 방지 알고리즘 우선순위 상향. + +## 🔗 지식 연결 (Graph) +- **Parent:** [[10_Wiki/💡 Topics/Education]] +- **Related:** [[IRT]], [[Personalized-Learning]], [[Educational-AI]] +- **Raw Source:** [[00_Raw/2026-04-20/Adaptive-Learning-Systems.md]] diff --git a/Financial Modeling & Math/Quantitative Finance.md b/Financial Modeling & Math/Quantitative Finance.md new file mode 100644 index 00000000..5c7824a6 --- /dev/null +++ b/Financial Modeling & Math/Quantitative Finance.md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AI-057 +category: "[[10_Wiki/💡 Topics/Financial Modeling & Math]]" +confidence_score: 0.98 +tags: [finance, quantitative finance, stochastics, risk management] +last_reinforced: 2026-06-XX +github_commit: "[P-Reinforce] Processed Quantitative Finance." +--- + +# [[Quantitative Finance]] (계량 금융) + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 수학적 모델링, 통계학, 컴퓨터 과학을 결합하여 시장의 복잡한 데이터를 분석하고, 위험을 관리하며, 최적의 거래 전략을 수립하는 학문이다. + +## 📖 구조화된 지식 (Synthesized Content) +- **핵심 방법론:** 직관에 의존하는 전통 금융 방식을 벗어나, 수학적으로 검증 가능한 모델(Model-Based Approach)을 사용한다. 확률 과정과 통계적 추정을 핵심으로 한다. +- **주요 이론 및 적용:** + 1. **확률 및 시계열 분석:** 주가 변동 같은 무작위 현상을 수학적 확률 분포로 가정하고, 이를 기반으로 예측 모델(예: GARCH)을 만든다. (Probability Theory). + 2. **최적화와 의사결정:** 투자 포트폴리오의 위험 대비 수익률을 극대화하는 최적 배분을 계산한다 (Optimization Theory). + 3. **위험 관리 (Risk Management):** VaR(Value at Risk)나 스트레스 테스트 등, 시스템이 감당할 수 있는 최대 손실 범위를 수학적으로 정의하고 관리한다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 시장은 본질적으로 예측 불가능한 '카오스'의 영역이다. 따라서 모델링 자체에 대한 겸손함(Humility)을 유지해야 하며, 모델이 실패할 경우를 대비하는 비상 계획이 필수적이다. +- **정책 변화:** 최근에는 강화학습 (RL)과 결합하여, 시장 상황이라는 환경 속에서 에이전트가 최적의 행동 정책을 학습하게 하는 방향으로 진화하고 있다. + +## 🔗 지식 연결 (Graph) +- Parent: [[Probability Theory]] +- Related: [[Reinforcement Learning in Economics]] , [[Risk Management in Finance]] , [[Stochastic Processes]] +- Raw Source: [[00_Raw/Quantitative Finance.md]] +--- \ No newline at end of file diff --git a/Frontend & Concurrency/Web Worker (웹 워커).md b/Frontend & Concurrency/Web Worker (웹 워커).md new file mode 100644 index 00000000..65bef19f --- /dev/null +++ b/Frontend & Concurrency/Web Worker (웹 워커).md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AI-049 +category: "[[10_Wiki/💡 Topics/Frontend & Concurrency]]" +confidence_score: 0.98 +tags: [webworker, concurrency, javascript, performance] +last_reinforced: 2026-06-XX +github_commit: "[P-Reinforce] Processed Web Worker (웹 워커)." +--- + +# [[Web Worker (웹 워커)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 웹 브라우저의 메인 스레드(Main Thread)가 UI 및 사용자 입력 처리라는 중요한 임무를 수행할 수 있도록, 무겁고 시간이 오래 걸리는 계산 작업을 별도의 백그라운드 스레드에서 분리 실행하는 기술이다. + +## 📖 구조화된 지식 (Synthesized Content) +- **문제 인식:** 웹 애플리케이션의 성능 저하 주범은 메인 스레드의 '블로킹(Blocking)' 현상이다. 복잡한 데이터 처리, 대용량 JSON 파싱, 이미지 필터링 등이 메인 스레드에서 실행되면 UI가 멈추는 (Jank) 현상이 발생한다. +- **Web Worker의 역할:** Web Worker는 OS 레벨의 독립된 스레드를 생성하여 JavaScript 코드를 백그라운드에서 실행시킨다. 이로 인해 메인 스레드는 항상 사용자와 상호작용할 준비 상태(Responsive)를 유지할 수 있다. +- **통신 방식과 제약:** + 1. **Message Passing:** Worker와 Main Thread 간의 데이터는 `postMessage` API를 통해 비동기적으로 전달되어야 한다. (데이터 복사/직렬화 과정이 필요하다). + 2. **SharedArrayBuffer & Atomics:** 성능 병목이 심할 경우, 메모리 전체를 공유하고 원자적 연산(Atomics)을 사용하여 통신 오버헤드를 극도로 줄이는 고급 기법도 가능하다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** Web Worker가 모든 문제를 해결하는 마법의 지팡이가 아니다. 스레드 간 데이터 전송 과정에서 발생하는 직렬화/역직렬화 비용(Serialization Overhead)을 고려해야 한다. +- **정책 변화:** 고성능 컴퓨팅이 요구되는 환경에서는 `SharedArrayBuffer`와 같은 고급 메모리 공유 기법과 함께, 웹 워커를 활용하여 병목 현상을 근본적으로 해결하는 아키텍처 설계가 표준화되고 있다. + +## 🔗 지식 연결 (Graph) +- Parent: [[Web Worker (웹 워커)]] +- Related: [[Concurrency]] , [[JavaScript 메모리 관리(JavaScript Memory Management)]] , [[SharedArrayBuffer]] +- Raw Source: [[00_Raw/Web Worker (웹 워커).md]] +--- \ No newline at end of file diff --git a/Game Design & Math/Algorithmic Game Theory.md b/Game Design & Math/Algorithmic Game Theory.md new file mode 100644 index 00000000..bae0f0d9 --- /dev/null +++ b/Game Design & Math/Algorithmic Game Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-CD6723 +category: "[[10_Wiki/💡 Topics/Game Design & Math]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Batch 11 - Wikified Algorithmic Game Theory" +--- + +# [[Algorithmic Game Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 작업 중 + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중 + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 신규 지식 카테고리화 및 연결성 강화. +- **정책 변화:** Game Design & Math 분야의 지식 자산 보호 및 네트워크 확장. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Algorithmic Game Theory.md]] +--- diff --git a/Game Design/ARG-Alternate-Reality-Games.md b/Game Design/ARG-Alternate-Reality-Games.md new file mode 100644 index 00000000..87d3fc13 --- /dev/null +++ b/Game Design/ARG-Alternate-Reality-Games.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AEB866 +category: "[[10_Wiki/💡 Topics/Game Design]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Mega Batch 2 - Wikified ARG-Alternate-Reality-Games" +--- + +# [[ARG-Alternate-Reality-Games]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 작업 중 + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중 + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 지식 자산화 및 기존 네트워크 연동 단계. +- **정책 변화:** Game Design 카테고리의 전문성 확보 및 링크 밀도 최적화. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/ARG-Alternate-Reality-Games.md]] +--- diff --git a/Game Design/Agency and Player Autonomy.md b/Game Design/Agency and Player Autonomy.md new file mode 100644 index 00000000..c97e69c7 --- /dev/null +++ b/Game Design/Agency and Player Autonomy.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-72AAF4 +category: "[[10_Wiki/💡 Topics/Game Design]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Batch 10 - Wikified Agency and Player Autonomy" +--- + +# [[Agency and Player Autonomy]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 핵심 내용 요약 예정 + +## 📖 구조화된 지식 (Synthesized Content) +세부 본문 내용 구성 예정 + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 신규 지식 유입에 따른 기존 지식과의 정합성 검증 단계. +- **정책 변화:** Game Design 분야의 체계적 지식 자산화 진행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Agency and Player Autonomy.md]] +--- diff --git a/Game Design/Albion Online (Full LootPlayer-Driven Production).md b/Game Design/Albion Online (Full LootPlayer-Driven Production).md new file mode 100644 index 00000000..3af923f1 --- /dev/null +++ b/Game Design/Albion Online (Full LootPlayer-Driven Production).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-750784 +category: "[[10_Wiki/💡 Topics/Game Design]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Batch 11 - Wikified Albion Online (Full Loot/Player-Driven Production)" +--- + +# [[Albion Online (Full Loot/Player-Driven Production)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 작업 중 + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중 + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 신규 지식 카테고리화 및 연결성 강화. +- **정책 변화:** Game Design 분야의 지식 자산 보호 및 네트워크 확장. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Albion Online (Full Loot_Player-Driven Production).md]] +--- diff --git a/Game Design/Arkane Studios.md b/Game Design/Arkane Studios.md new file mode 100644 index 00000000..7c857b24 --- /dev/null +++ b/Game Design/Arkane Studios.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-503A13 +category: "[[10_Wiki/💡 Topics/Game Design]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Mega Batch 2 - Wikified Arkane Studios" +--- + +# [[Arkane Studios]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 작업 중 + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중 + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 지식 자산화 및 기존 네트워크 연동 단계. +- **정책 변화:** Game Design 카테고리의 전문성 확보 및 링크 밀도 최적화. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Arkane Studios.md]] +--- diff --git a/Game Design/Cyber-Physical Systems (CPS).md b/Game Design/Cyber-Physical Systems (CPS).md new file mode 100644 index 00000000..70c6e259 --- /dev/null +++ b/Game Design/Cyber-Physical Systems (CPS).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5C9113 +category: "[[10_Wiki/💡 Topics/Game Design]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Cyber-Physical Systems (CPS)" +--- + +# [[Cyber-Physical Systems (CPS)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Game Design 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Cyber-Physical Systems (CPS).md]] +--- diff --git a/Game Design/Elite-Athletic-Development.md b/Game Design/Elite-Athletic-Development.md new file mode 100644 index 00000000..75e6f6fa --- /dev/null +++ b/Game Design/Elite-Athletic-Development.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6DB4E1 +category: "[[10_Wiki/💡 Topics/Game Design]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Elite-Athletic-Development" +--- + +# [[Elite-Athletic-Development]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Game Design 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Elite-Athletic-Development.md]] +--- diff --git a/Game Design/Post-Modernist Literature in Gaming.md b/Game Design/Post-Modernist Literature in Gaming.md new file mode 100644 index 00000000..dd31bbc1 --- /dev/null +++ b/Game Design/Post-Modernist Literature in Gaming.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-BC9437 +category: "[[10_Wiki/💡 Topics/Game Design]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Post-Modernist Literature in Gaming" +--- + +# [[Post-Modernist Literature in Gaming]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Game Design 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Post-Modernist Literature in Gaming.md]] +--- diff --git a/Game Design/Quantum-Game-Theory.md b/Game Design/Quantum-Game-Theory.md new file mode 100644 index 00000000..25053b79 --- /dev/null +++ b/Game Design/Quantum-Game-Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-238ED6 +category: "[[10_Wiki/💡 Topics/Game Design]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Quantum-Game-Theory" +--- + +# [[Quantum-Game-Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Game Design 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Quantum-Game-Theory.md]] +--- diff --git a/Game Design/Roguelike Procedural Generation.md b/Game Design/Roguelike Procedural Generation.md new file mode 100644 index 00000000..020d8e6c --- /dev/null +++ b/Game Design/Roguelike Procedural Generation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-537B8F +category: "[[10_Wiki/💡 Topics/Game Design]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Roguelike Procedural Generation" +--- + +# [[Roguelike Procedural Generation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Game Design 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Roguelike Procedural Generation.md]] +--- diff --git a/Game Design/Systems Biology.md b/Game Design/Systems Biology.md new file mode 100644 index 00000000..e8669e34 --- /dev/null +++ b/Game Design/Systems Biology.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-2A4288 +category: "[[10_Wiki/💡 Topics/Game Design]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Systems Biology" +--- + +# [[Systems Biology]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Game Design 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Systems Biology.md]] +--- diff --git a/Game Design/인문학적 게임 비평 및 서사학.md b/Game Design/인문학적 게임 비평 및 서사학.md new file mode 100644 index 00000000..300a3343 --- /dev/null +++ b/Game Design/인문학적 게임 비평 및 서사학.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-AC421C +category: "[[10_Wiki/💡 Topics/Game Design]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 인문학적 게임 비평 및 서사학" +--- + +# [[인문학적 게임 비평 및 서사학]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Game Design 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/인문학적 게임 비평 및 서사학.md]] +--- diff --git a/General Knowledge/2026-04-15.md b/General Knowledge/2026-04-15.md new file mode 100644 index 00000000..1a5b4941 --- /dev/null +++ b/General Knowledge/2026-04-15.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D3F316 +category: "[[10_Wiki/💡 Topics/General Knowledge]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 2026-04-15" +--- + +# [[2026-04-15]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** General Knowledge 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/2026-04-15.md]] +--- diff --git a/General Knowledge/Blog_Content_Rules.md b/General Knowledge/Blog_Content_Rules.md new file mode 100644 index 00000000..571b89bf --- /dev/null +++ b/General Knowledge/Blog_Content_Rules.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-1FF145 +category: "[[10_Wiki/💡 Topics/General Knowledge]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Blog_Content_Rules" +--- + +# [[Blog_Content_Rules]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** General Knowledge 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Blog_Content_Rules.md]] +--- diff --git a/General Knowledge/Blog_Title_Rules.md b/General Knowledge/Blog_Title_Rules.md new file mode 100644 index 00000000..ac69aaf4 --- /dev/null +++ b/General Knowledge/Blog_Title_Rules.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-566F32 +category: "[[10_Wiki/💡 Topics/General Knowledge]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Blog_Title_Rules" +--- + +# [[Blog_Title_Rules]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** General Knowledge 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Blog_Title_Rules.md]] +--- diff --git a/General Knowledge/Brand-Identity-Management.md b/General Knowledge/Brand-Identity-Management.md new file mode 100644 index 00000000..cf5e53d9 --- /dev/null +++ b/General Knowledge/Brand-Identity-Management.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-F8EDF9 +category: "[[10_Wiki/💡 Topics/General Knowledge]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Brand-Identity-Management" +--- + +# [[Brand-Identity-Management]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** General Knowledge 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Brand-Identity-Management.md]] +--- diff --git a/General Knowledge/Code Splitting Lazy Loading.md b/General Knowledge/Code Splitting Lazy Loading.md new file mode 100644 index 00000000..8f70d49f --- /dev/null +++ b/General Knowledge/Code Splitting Lazy Loading.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B933B1 +category: "[[10_Wiki/💡 Topics/General Knowledge]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Code Splitting Lazy Loading" +--- + +# [[Code Splitting Lazy Loading]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** General Knowledge 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Code Splitting & Lazy Loading.md]] +--- diff --git a/General Knowledge/Description-Logics.md b/General Knowledge/Description-Logics.md new file mode 100644 index 00000000..5b16b54e --- /dev/null +++ b/General Knowledge/Description-Logics.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-088907 +category: "[[10_Wiki/💡 Topics/General Knowledge]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Description-Logics" +--- + +# [[Description-Logics]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** General Knowledge 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Description-Logics.md]] +--- diff --git a/General Knowledge/Dopamine Signaling.md b/General Knowledge/Dopamine Signaling.md new file mode 100644 index 00000000..cd95038a --- /dev/null +++ b/General Knowledge/Dopamine Signaling.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-C204E9 +category: "[[10_Wiki/💡 Topics/General Knowledge]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Dopamine Signaling" +--- + +# [[Dopamine Signaling]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** General Knowledge 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Dopamine Signaling.md]] +--- diff --git a/General Knowledge/Markov-Random-Fields.md b/General Knowledge/Markov-Random-Fields.md new file mode 100644 index 00000000..0105ada7 --- /dev/null +++ b/General Knowledge/Markov-Random-Fields.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B14FE1 +category: "[[10_Wiki/💡 Topics/General Knowledge]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Markov-Random-Fields" +--- + +# [[Markov-Random-Fields]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** General Knowledge 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Markov-Random-Fields.md]] +--- diff --git a/General Knowledge/Metaverse Aesthetics.md b/General Knowledge/Metaverse Aesthetics.md new file mode 100644 index 00000000..a3b2f761 --- /dev/null +++ b/General Knowledge/Metaverse Aesthetics.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-30803A +category: "[[10_Wiki/💡 Topics/General Knowledge]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Metaverse Aesthetics" +--- + +# [[Metaverse Aesthetics]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** General Knowledge 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Metaverse Aesthetics.md]] +--- diff --git a/General Knowledge/Model-Free RL vs Model-Based RL.md b/General Knowledge/Model-Free RL vs Model-Based RL.md new file mode 100644 index 00000000..1ad169a1 --- /dev/null +++ b/General Knowledge/Model-Free RL vs Model-Based RL.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B8C5BC +category: "[[10_Wiki/💡 Topics/General Knowledge]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Model-Free RL vs Model-Based RL" +--- + +# [[Model-Free RL vs Model-Based RL]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** General Knowledge 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Model-Free RL vs Model-Based RL.md]] +--- diff --git a/General Knowledge/Motion-Capture-Retargeting.md b/General Knowledge/Motion-Capture-Retargeting.md new file mode 100644 index 00000000..7253426f --- /dev/null +++ b/General Knowledge/Motion-Capture-Retargeting.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-34FAC7 +category: "[[10_Wiki/💡 Topics/General Knowledge]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Motion-Capture-Retargeting" +--- + +# [[Motion-Capture-Retargeting]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** General Knowledge 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Motion-Capture-Retargeting.md]] +--- diff --git a/General Knowledge/Mycological Horror.md b/General Knowledge/Mycological Horror.md new file mode 100644 index 00000000..6cd5ba75 --- /dev/null +++ b/General Knowledge/Mycological Horror.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-1D7BB8 +category: "[[10_Wiki/💡 Topics/General Knowledge]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Mycological Horror" +--- + +# [[Mycological Horror]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** General Knowledge 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Mycological Horror.md]] +--- diff --git a/General Knowledge/OffscreenCanvas (멀티스레딩).md b/General Knowledge/OffscreenCanvas (멀티스레딩).md new file mode 100644 index 00000000..6425c663 --- /dev/null +++ b/General Knowledge/OffscreenCanvas (멀티스레딩).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-811DEC +category: "[[10_Wiki/💡 Topics/General Knowledge]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - OffscreenCanvas (멀티스레딩)" +--- + +# [[OffscreenCanvas (멀티스레딩)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** General Knowledge 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/OffscreenCanvas (멀티스레딩).md]] +--- diff --git a/General Knowledge/README.md b/General Knowledge/README.md new file mode 100644 index 00000000..571ee145 --- /dev/null +++ b/General Knowledge/README.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-698D8B +category: "[[10_Wiki/💡 Topics/General Knowledge]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - README" +--- + +# [[README]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** General Knowledge 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/README.md]] +--- diff --git a/General Knowledge/SharedArrayBuffer 보안 이슈와 Cross-Origin Isolation 설정법.md b/General Knowledge/SharedArrayBuffer 보안 이슈와 Cross-Origin Isolation 설정법.md new file mode 100644 index 00000000..024371d9 --- /dev/null +++ b/General Knowledge/SharedArrayBuffer 보안 이슈와 Cross-Origin Isolation 설정법.md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-3E2EC5 +category: "[[10_Wiki/💡 Topics/General Knowledge]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - SharedArrayBuffer 보안 이슈와 Cross-Origin Isolation 설정법" +--- + +# [[SharedArrayBuffer 보안 이슈와 Cross-Origin Isolation 설정법]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> `SharedArrayBuffer`는 멀티스레드 간 복사 비용 0으로 데이터를 공유할 수 있는 강력한 기능이지만, 타이밍 공격(Spectre 등)을 유발할 수 있는 보안 취약점이 존재하여 이를 안전하게 사용하려면 웹 서버에 **COOP 및 COEP HTTP 보안 헤더를 통한 Cross-Origin Isolation(교차 출처 격리)** 설정이 반드시 필요합니다. + +## 📖 구조화된 지식 (Synthesized Content) +**1. 보안 이슈의 배경: 스펙터(Spectre) 취약점** `SharedArrayBuffer`를 고해상도 타이머와 결합하면 CPU의 예측 실행(Speculative Execution) 과정에서 발생하는 미세한 시간 차이를 측정할 수 있습니다. 해커들은 이를 악용하여 같은 브라우저 프로세스 내에 로드된 다른 사이트의 메모리 데이터(비밀번호, 세션 등)를 훔쳐보는 **부채널 공격(스펙터 취약점)**이 가능함을 발견했습니다. 이로 인해 브라우저 벤더들은 기본적으로 이 API의 사용을 전면 차단했습니다. + +**2. Cross-Origin Isolation (교차 출처 격리)의 도입** 멀티스레딩의 뛰어난 성능적 이점을 포기할 수 없었기에, 브라우저는 현재 웹 페이지를 외부의 신뢰할 수 없는 리소스로부터 완전히 샌드박싱하여 격리하는 **'Cross-Origin Isolated'** 상태에서만 `SharedArrayBuffer`를 예외적으로 생성할 수 있도록 보안 정책을 변경했습니다. + +**3. 필수 HTTP 보안 헤더 설정법 (COOP / COEP)** 이 강력한 격리 환경을 활성화하려면, 웹 애플리케이션을 호스팅하는 서버(Nginx, Node.js, Vercel 등)가 HTML 문서를 응답할 때 반드시 다음 **두 가지 HTTP 헤더를 포함**하도록 설정해야 합니다. + +- **`Cross-Origin-Opener-Policy: same-origin` (COOP)**: 최상위 문서가 다른 출처의 문서(예: 타 사이트가 연 팝업창)와 브라우징 컨텍스트 그룹을 공유하지 못하도록 차단하여 해커의 메모리 간섭을 막습니다. +- **`Cross-Origin-Embedder-Policy: require-corp` (COEP)** (또는 `credentialless`): 명시적으로 CORS(교차 출처 리소스 공유) 허가를 받지 않은 모든 외부 리소스(외부 CDN 이미지, 서드파티 스크립트, iframe 등)가 내 페이지에 임베드되는 것을 원천적으로 차단합니다. + +**4. 설정 후 확인 및 주의사항** 서버 설정이 완료되면 클라이언트의 브라우저 콘솔에서 `crossOriginIsolated` 속성이 `true`로 반환되며, 비로소 에러 없이 `SharedArrayBuffer`를 사용할 수 있습니다. 단, 이 보안 정책은 매우 엄격하기 때문에 기존에 잘 불러와지던 **외부 이미지나 구글 애널리틱스 같은 스크립트가 렌더링 차단되는 사이드 이펙트**가 발생할 수 있습니다. 이를 해결하려면 모든 외부 리소스 태그에 `crossorigin="anonymous"` 속성을 추가하고 리소스 서버 측에서 CORS 헤더를 올바르게 열어주어야 합니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** General Knowledge 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Spectre Vulnerability]], [[HTTP Security Headers (COOP/COEP)]], [[CORS (Cross-Origin Resource Sharing)]], [[Web Worker Multi-threading]] +- **Projects/Contexts:** [[보안이 강화된 멀티스레드 기반 React WebGL 게임 엔진 구축]] +- **Contradictions/Notes:** 제공된 소스에 따르면 `SharedArrayBuffer`는 성능과 속도 면에서 가장 이상적이지만 로우 레벨(Low-level)의 원시 이진 데이터를 다루어야 해서 구현이 까다롭습니다. 여기에 더해 COOP/COEP 보안 헤더까지 설정해야 하므로 인프라 구축 및 외부 리소스 관리의 복잡성이 급격히 증가한다는 점을 프로젝트 기획 단계에서 반드시 고려해야 합니다. + +--- + +_Last updated: 2026-04-14_ +- Raw Source: [[00_Raw/2026-04-20/SharedArrayBuffer 보안 이슈와 Cross-Origin Isolation 설정법.md]] +--- diff --git a/General Knowledge/Variance-Rules.md b/General Knowledge/Variance-Rules.md new file mode 100644 index 00000000..10886599 --- /dev/null +++ b/General Knowledge/Variance-Rules.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-85151B +category: "[[10_Wiki/💡 Topics/General Knowledge]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Variance-Rules" +--- + +# [[Variance-Rules]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** General Knowledge 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Variance-Rules.md]] +--- diff --git a/General Knowledge/마크-스위프-컴팩트(Mark-Sweep-Compact).md b/General Knowledge/마크-스위프-컴팩트(Mark-Sweep-Compact).md new file mode 100644 index 00000000..49ff4761 --- /dev/null +++ b/General Knowledge/마크-스위프-컴팩트(Mark-Sweep-Compact).md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-F94637 +category: "[[10_Wiki/💡 Topics/General Knowledge]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 마크-스위프-컴팩트(Mark-Sweep-Compact)" +--- + +# [[마크-스위프-컴팩트(Mark-Sweep-Compact)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +* **마크(Mark) 단계:** + 가비지 컬렉터가 힙 내부의 모든 객체를 탐색하여 사용 중인 라이브 객체와 그렇지 않은 객체를 식별하는 단계이다 [8, 9]. 루트(Root) 객체부터 시작하여 포인터로 연결된 객체들을 깊이 우선 탐색(DFS) 방식으로 쫓아가며 도달 가능성을 확인한다 [10, 11]. 이 과정에서 객체들은 세 가지 색상(Tri-color)으로 분류되어 마킹된다 [4, 8]. 가비지 컬렉터가 아직 발견하지 못한 객체는 '흰색(White)', 발견되었지만 이웃 객체들의 처리가 완료되지 않은 상태는 '회색(Grey)', 그리고 객체 자신과 그 이웃까지 모두 처리가 완료된 상태는 '검은색(Black)'으로 표시된다 [8, 12]. + +* **스위프(Sweep) 단계:** + 마킹 단계가 끝난 후에도 도달할 수 없어 '흰색'으로 남아있는 데드 객체들의 연속된 범위를 스캔하는 단계이다 [4, 13, 14]. 가비지 컬렉터는 이 데드 객체 영역을 빈 공간(Free spaces)으로 변환하고 이를 가용 목록(Free lists)에 추가한다 [13, 14]. 가용 목록은 크기별(Small, Medium, Large 등)로 구분되어 관리되며, 이후 새로운 객체를 할당하거나 스캐빈저(Scavenger) 알고리즘에 의해 살아남은 객체들이 이전 세대(Old space)로 승격(Promotion)될 때 사용된다 [13, 14]. + +* **컴팩트(Compact) 단계:** + 힙 메모리의 단편화(Fragmentation)를 줄이기 위해, 빈 공간이 많아 파편화된 페이지에서 라이브 객체들을 가용 공간이나 완전히 새로운 페이지로 이주시키는 과정이다 [2, 15, 16]. 객체가 새로운 위치로 복사되면, 원본 객체의 첫 번째 워드에 새로운 위치를 가리키는 포워딩 주소(Forwarding address)가 남겨진다 [15, 17]. 대규모 힙 공간에서 객체를 이동시키고 이를 참조하는 모든 포인터를 일일이 업데이트하는 작업은 계산 비용이 크기 때문에, 모든 스위프 주기마다 컴팩트가 일어나는 것은 아니며 메모리 파편화가 심각할 때 선택적으로 수행된다 [7, 18]. + +* **성능 및 최적화 전략 (Orinoco 및 동시성 기법):** + 마크-스위프-컴팩트는 수백 메가바이트의 데이터를 처리하므로 애플리케이션 실행을 멈추는 긴 중단 시간(수백 밀리초 단위)을 초래할 수 있다 [2, 5]. V8 엔진의 Orinoco 프로젝트 등 최신 구현체들은 이를 해결하기 위해 백그라운드 스레드를 이용해 자바스크립트 실행과 동시에 마킹 작업을 수행하는 동시 마킹(Concurrent marking), 작업을 잘게 쪼개어 배분하는 점진적 마킹(Incremental marking), 그리고 당장 빈 공간이 필요해질 때까지 스위핑을 늦추는 지연 스위핑(Lazy sweeping) 기법 등을 도입하여 메인 스레드의 부담을 최소화하고 있다 [5, 19-21]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** General Knowledge 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[가비지 컬렉션(Garbage Collection)]], [[이전 세대(Old Generation/Space)]], [[스캐빈저(Scavenger)]], [[동시성 및 점진적 마킹(Concurrent & Incremental Marking)]] +- **Projects/Contexts:** [[V8 자바스크립트 엔진]], [[자바 가상 머신(JVM)]], [[Orinoco 프로젝트]] +- **Contradictions/Notes:** 소스 전반에서 마크-스위프-컴팩트의 기본 원리에는 차이가 없으나, 작동 환경(예: V8 엔진 대 IBM JVM)에 따라 이 알고리즘을 트리거하는 조건이나 조정 가능한 커맨드라인 옵션(`-Xcompactgc`, `--trace-gc` 등)은 구체적인 구현체에 따라 각기 다르게 제어된다는 점이 확인된다 [18, 22]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/마크-스위프-컴팩트(Mark-Sweep-Compact).md]] +--- diff --git a/General Knowledge/무제.md b/General Knowledge/무제.md new file mode 100644 index 00000000..afe88b10 --- /dev/null +++ b/General Knowledge/무제.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D69A80 +category: "[[10_Wiki/💡 Topics/General Knowledge]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 무제" +--- + +# [[무제]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** General Knowledge 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/무제.md]] +--- diff --git a/General Knowledge/이벤트 포워딩(Event Forwarding).md b/General Knowledge/이벤트 포워딩(Event Forwarding).md new file mode 100644 index 00000000..6ac7a117 --- /dev/null +++ b/General Knowledge/이벤트 포워딩(Event Forwarding).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-797EC7 +category: "[[10_Wiki/💡 Topics/General Knowledge]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 이벤트 포워딩(Event Forwarding)" +--- + +# [[이벤트 포워딩(Event Forwarding)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** General Knowledge 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/이벤트 포워딩(Event Forwarding).md]] +--- diff --git a/General Knowledge/환영합니다.md b/General Knowledge/환영합니다.md new file mode 100644 index 00000000..f6002d14 --- /dev/null +++ b/General Knowledge/환영합니다.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-BD84CA +category: "[[10_Wiki/💡 Topics/General Knowledge]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 환영합니다" +--- + +# [[환영합니다]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** General Knowledge 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/환영합니다!.md]] +--- diff --git a/Graphics & Performance/3D Gaussian Splatting (3DGS).md b/Graphics & Performance/3D Gaussian Splatting (3DGS).md new file mode 100644 index 00000000..807a59d4 --- /dev/null +++ b/Graphics & Performance/3D Gaussian Splatting (3DGS).md @@ -0,0 +1,37 @@ +--- +id: P-REINFORCE-AI-AC09DA +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Batch 9 - Wikified 3D Gaussian Splatting (3DGS)" +--- + +# [[3D Gaussian Splatting (3DGS)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 3D Gaussian Splatting (3DGS)은 3D 스플랫(splat)들로 구성된 명시적 표현을 사용하여 고품질의 실시간 렌더링을 구현하는 혁신적인 기법이다 [1, 2]. 각 3D 가우시안은 중심 위치, 3D 공분산 행렬, 최대 불투명도, 그리고 구면 조화(Spherical Harmonics) 계수를 활용한 시점 종속적 색상으로 정의된다 [2]. 올바른 렌더링을 위해 카메라로부터의 거리를 기준으로 가우시안들을 뒤에서 앞으로 정렬(depth sorting)하고 알파 블렌딩(alpha-blending)하는 과정이 필수적이며 [3, 4], 미분 가능한 특성 덕분에 브라우저 환경에서 고품질 재구성 및 생성적 3D 모델링에 활발히 응용되고 있다 [1]. + +## 📖 구조화된 지식 (Synthesized Content) +- **기본 동작 원리와 렌더링 구조:** + 3DGS는 장면을 구성하는 3D 가우시안들을 2D 이미지 평면으로 투영하여 렌더링을 수행한다 [2, 4]. 투영된 2D 공분산 행렬과 학습된 불투명도를 기반으로 각 픽셀에 대한 알파 기여도를 계산하며, 카메라 시점 방향에 따른 구면 조화 함수를 평가하여 반사 효과 및 최종 색상을 결정한다 [2, 4]. 투명도를 올바르게 처리하기 위해 수백만 개의 가우시안을 매 프레임마다 카메라와의 거리에 따라 뒤에서 앞으로 정렬해야 하는 막대한 연산이 요구된다 [3-5]. + +- **WebGL 환경에서의 성능 한계 및 오류:** + 기존의 WebGL API는 범용적인 GPU 연산(Compute) 기능을 지원하지 않아, 3DGS의 핵심인 깊이 정렬 작업을 JavaScript나 WebAssembly를 통해 CPU에 오프로드해야 한다 [6-8]. 이는 CPU가 정렬을 마친 뒤 큰 버퍼를 GPU로 업로드하고 드로우 콜을 발생시켜야 하는 심각한 동기화 병목 현상을 유발하며, 장면이 복잡해질수록 16.67ms의 프레임 예산을 맞추지 못하게 만든다 [6, 8]. 실제로 CesiumJS와 같은 시스템에서는 대규모 데이터셋 처리 시 1프레임 내에 정렬이 끝나지 않아 여러 개의 Promise 체인이 서로 간섭하는 경합 조건(race condition)이 발생하며, 이로 인해 모델이 깜빡이거나 렌더링되지 않는 WebGL 오류 및 마이크로 스터터링(micro-stuttering)이 보고되었다 [9-12]. + +- **WebGPU 및 WebSplatter를 통한 GPU 파이프라인 최적화:** + WebGL의 구조적 한계를 극복하기 위해 WebGPU의 컴퓨트 셰이더(Compute Shader)를 활용하는 접근법이 대두되었다 [6, 7, 13]. 대표적으로 WebSplatter 프레임워크는 깊이 정렬과 시점 적응형 평가를 모두 GPU 연산으로 이전하여 CPU-GPU 간의 동기화 오버헤드를 제거하였다 [6, 14]. 특히 WebGPU 환경에 글로벌 아토믹(global atomics) 기능이 부족한 점을 우회하기 위해, 하드웨어 스케줄링에 구애받지 않는 '대기 없는(wait-free) 계층적 기수 정렬(radix sort)' 알고리즘을 도입하였다 [6, 15, 16]. 또한, 래스터화 이전 단계에서 불투명도 및 시야 범위(Bounding Box)를 기준으로 화면 밖 스플랫을 선제적으로 제거하는 동적 컬링(culling)을 적용하여 메모리 대역폭과 오버드로우를 크게 줄였다 [15, 17-19]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 신규 문서로, 기존 정보와의 충돌 분석 예정. +- **정책 변화:** Graphics & Performance 카테고리의 지식 연결망 강화를 위한 표준 위키화 적용. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGPU]], [[WebGL]], [[Compute Shader]] +- **Projects/Contexts:** [[WebSplatter]], [[CesiumJS]] +- **Contradictions/Notes:** WebGL 기반의 기존 3DGS 구현은 정렬 작업을 CPU에 의존하므로 동기화 병목과 프레임 지연이 발생하지만, WebGPU 기반의 WebSplatter는 파이프라인 전체를 GPU에서 병렬 연산함으로써 기존 웹 뷰어 대비 최대 4.5배의 렌더링 속도 향상과 낮은 메모리 소모를 달성한다 [6, 8, 15, 20]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/3D Gaussian Splatting (3DGS).md]] +--- diff --git a/Graphics & Performance/ANGLE (Almost Native Graphics Layer Engine).md b/Graphics & Performance/ANGLE (Almost Native Graphics Layer Engine).md new file mode 100644 index 00000000..3235896a --- /dev/null +++ b/Graphics & Performance/ANGLE (Almost Native Graphics Layer Engine).md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-46B173 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - ANGLE (Almost Native Graphics Layer Engine)" +--- + +# [[ANGLE (Almost Native Graphics Layer Engine)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> ANGLE(Almost Native Graphics Layer Engine)은 주로 Windows 플랫폼의 웹 브라우저(Chrome, Firefox, Opera 등)에서 사용되는 그래픽 명령어 변환기입니다. 이 엔진은 WebGL의 OpenGL ES 호출을 Direct3D 11 또는 12 명령으로 변환하는 역할을 수행합니다 [1, 2]. 고도로 최적화되어 있지만, 변환 과정에서 각 드로우 콜(Draw call)마다 고정된 마이크로 레이턴시(Micro-latency)를 유발하는 성능적 특징이 있습니다 [1, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **역할 및 플랫폼:** ANGLE은 Windows 환경에서 Chrome, Firefox, Opera와 같은 주요 브라우저가 WebGL(OpenGL ES) 호출을 Direct3D 11 또는 12로 변환할 때 사용됩니다 [1, 2]. +- **명령어 변환 오버헤드:** 이 변환 과정은 고도로 최적화되어 있음에도 불구하고, 명령어 제출(Command submission) 단계에 상당한 마이크로 레이턴시를 추가합니다 [1]. 각 드로우 콜마다 수 마이크로초(microseconds)의 고정된 오버헤드가 발생합니다 [3]. +- **성능 병목 현상:** 수천 개의 드로우 콜이 발생하는 애플리케이션의 경우 이러한 작은 오버헤드들이 누적되어, GPU가 비교적 유휴 상태임에도 불구하고 CPU가 병목의 원인이 되는 현상(death by a thousand cuts)을 초래합니다 [3]. +- **디버깅 및 우회 방법:** 개발자는 네이티브 OpenGL 구현을 테스트하기 위해 ANGLE을 우회할 수 있습니다 [2]. Chrome에서는 `--use-gl=desktop` 명령줄 인수를 사용하여 시작하고, Firefox에서는 `about:config`에서 `webgl.prefer-native-gl`을 활성화하여 우회합니다 [2]. 현재 ANGLE이 사용 중인지는 WebGL Report나 `chrome://gpu/` 페이지에서 확인할 수 있습니다 [2]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGL]], [[OpenGL ES]], [[Direct3D]], [[Micro-latency]], [[Draw Call]] +- **Projects/Contexts:** [[Chrome]], [[Firefox]], [[Opera]] +- **Contradictions/Notes:** ANGLE은 브라우저에서 원활한 그래픽 처리를 위해 도입된 고도로 최적화된 변환기이지만, 드로우 콜이 많은 환경에서는 역설적이게도 이 변환 작업 자체가 누적되어 CPU 병목을 일으키는 주된 원인이 됩니다 [3]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/ANGLE (Almost Native Graphics Layer Engine).md]] +--- diff --git a/Graphics & Performance/ANGLE.md b/Graphics & Performance/ANGLE.md new file mode 100644 index 00000000..483050f8 --- /dev/null +++ b/Graphics & Performance/ANGLE.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-26A7F5 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Mega Batch - Wikified ANGLE" +--- + +# [[ANGLE]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> ANGLE(Almost Native Graphics Layer Engine)은 Windows 플랫폼에서 WebGL(OpenGL ES) 명령을 Direct3D 11 또는 12로 변환해 주는 변환기(translator)입니다 [1, 2]. Chrome, Firefox, Opera와 같은 브라우저에서 널리 사용되며, 고도로 최적화되어 있음에도 불구하고 그래픽 파이프라인의 명령 제출(command submission) 단계에서 마이크로 레이턴시(micro-latency)를 유발하는 주요 원인 중 하나로 작용합니다 [1-3]. + +## 📖 구조화된 지식 (Synthesized Content) +* **주요 기능 및 사용 환경:** Windows 플랫폼에서 Chrome, Firefox, Opera 등의 웹 브라우저는 WebGL API의 기반이 되는 OpenGL ES 호출을 Direct3D로 번역하기 위해 ANGLE을 사용합니다 [1, 2]. 일반적인 Windows 엔드 유저들은 기본적으로 ANGLE이 활성화된 상태로 웹 브라우저를 사용하게 됩니다 [2]. +* **마이크로 레이턴시(Micro-latency) 발생:** ANGLE의 변환 프로세스는 매우 고도로 최적화되어 있으나, 여전히 각 드로우 콜(draw call)마다 수 마이크로초(microseconds) 단위의 고정된 오버헤드를 발생시킵니다 [3]. 이는 그래픽 파이프라인의 명령 제출 단계에 상당한 마이크로 레이턴시를 추가합니다 [1, 4]. +* **CPU 병목 현상 유발:** 수천 개의 드로우 콜이 발생하는 3D 애플리케이션에서는 ANGLE로 인한 미세한 오버헤드가 지속적으로 누적됩니다 [3]. 이로 인해 GPU가 비교적 유휴(idle) 상태에 있음에도 불구하고 CPU가 처리 한계에 부딪히는 "가랑비에 옷 젖는(death by a thousand cuts)" 형태의 병목 현상이 발생할 수 있습니다 [3]. +* **테스트 및 디버깅:** 개발자는 성능 프로파일링이나 네이티브 OpenGL 구현을 테스트할 목적으로 특정 브라우저 명령줄 인수(예: Chrome의 `--use-gl=desktop`)를 사용하거나 설정을 변경하여 ANGLE을 우회(bypass)할 수 있습니다 [2]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 지식 자산화 및 기존 네트워크 연동 단계. +- **정책 변화:** Graphics & Performance 카테고리의 전문성 확보 및 링크 밀도 최적화. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGL]], [[OpenGL ES]], [[Direct3D]], [[Micro-latency]] +- **Projects/Contexts:** [[Web Graphics Pipelines]] +- **Contradictions/Notes:** ANGLE의 변환 작업은 "고도로 최적화(highly optimized)"되어 있지만, 역설적으로 많은 드로우 콜을 요구하는 환경에서는 이 최적화된 변환 작업조차 누적되어 CPU 병목의 주요 원인이 됩니다 [3]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/ANGLE.md]] +--- diff --git a/Graphics & Performance/Agency-Narrative Integration.md b/Graphics & Performance/Agency-Narrative Integration.md new file mode 100644 index 00000000..3567a743 --- /dev/null +++ b/Graphics & Performance/Agency-Narrative Integration.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-2E74EC +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Agency-Narrative Integration" +--- + +# [[Agency-Narrative Integration]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Agency-Narrative Integration.md]] +--- diff --git a/Graphics & Performance/Alpha Blending.md b/Graphics & Performance/Alpha Blending.md new file mode 100644 index 00000000..7963e00b --- /dev/null +++ b/Graphics & Performance/Alpha Blending.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-25F1DA +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Mega Batch - Wikified Alpha Blending" +--- + +# [[Alpha Blending]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 투명하거나 반투명한 객체를 렌더링할 때 시각적 결함 없이 정확한 투명도를 표현하기 위한 렌더링 혼합 기법입니다 [1]. 올바른 알파 블렌딩 결과를 얻기 위해서는 반드시 객체를 '뒤에서 앞으로(Back-to-Front)' 순서로 정렬하여 그려야 한다는 제약이 있습니다 [1]. 그 외 알파 블렌딩의 구체적인 수학적 원리나 연산식에 대해서는 소스에 관련 정보가 부족합니다. + +## 📖 구조화된 지식 (Synthesized Content) +- **투명도 렌더링과 정렬의 필수성:** 투명하거나 반투명한 3D 객체에서 올바른 알파 블렌딩(Alpha Blending) 결과를 얻어내려면, 렌더링 파이프라인에서 카메라와 멀리 있는 객체부터 가까운 객체 순으로 렌더링하는 '뒤에서 앞으로(Back-to-Front)' 정렬 과정이 필수적으로 동반되어야 합니다 [1]. +- **InstancedMesh 환경에서의 구조적 한계:** 대규모 렌더링 최적화에 쓰이는 `InstancedMesh`는 단일 드로우 콜 내에서 인스턴스들의 렌더링 순서를 동적으로 변경하는 기본 기능을 제공하지 않습니다 [1]. 따라서 카메라 시점이 변할 때마다 객체 간의 앞뒤 관계가 뒤섞이게 되며, 이로 인해 알파 블렌딩이 비정상적으로 계산되어 투명도가 깨지는 시각적 결함이 발생합니다 [1]. +- **해결 방식 및 병목 현상:** 알파 블렌딩을 위한 투명도 정렬(Transparency sorting) 문제를 해결하려면 매 프레임마다 카메라와의 거리를 계산하고 버퍼 내의 행렬 데이터를 재정렬(예: Radix Sort)하는 로직을 추가해야 합니다 [1, 2]. 그러나 수만 개의 객체에 대해 이를 수행할 경우 CPU 메인 스레드에 치명적인 부하를 야기하므로 성능과 품질 사이의 타협이 필요합니다 [1]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 지식 자산화 및 기존 네트워크 연동 단계. +- **정책 변화:** Graphics & Performance 카테고리의 전문성 확보 및 링크 밀도 최적화. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Transparency Sorting]], [[InstancedMesh]], [[Overdraw]] +- **Projects/Contexts:** 대규모 유리창 건물이나 투명한 숲 등 다수의 반투명 객체를 `InstancedMesh` 등을 사용하여 실시간으로 렌더링하고 최적화해야 하는 웹 그래픽스 및 게임 프로젝트 맥락 [1, 2]. +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. (제공된 소스에서는 알파 블렌딩 자체의 개념보다는, 투명 객체 렌더링 정렬 문제의 원인으로서만 간략히 언급되고 있습니다.) + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Alpha Blending.md]] +--- diff --git a/Graphics & Performance/Apple-Human-Interface-Guidelines.md b/Graphics & Performance/Apple-Human-Interface-Guidelines.md new file mode 100644 index 00000000..d9651b9b --- /dev/null +++ b/Graphics & Performance/Apple-Human-Interface-Guidelines.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D4F8B4 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Apple-Human-Interface-Guidelines" +--- + +# [[Apple-Human-Interface-Guidelines]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Apple-Human-Interface-Guidelines.md]] +--- diff --git a/Graphics & Performance/Augmented Reality (AR).md b/Graphics & Performance/Augmented Reality (AR).md new file mode 100644 index 00000000..33a973a6 --- /dev/null +++ b/Graphics & Performance/Augmented Reality (AR).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-003033 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Augmented Reality (AR)" +--- + +# [[Augmented Reality (AR)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Augmented Reality (AR).md]] +--- diff --git a/Graphics & Performance/Augmented Reality Navigation Systems.md b/Graphics & Performance/Augmented Reality Navigation Systems.md new file mode 100644 index 00000000..ad0b82ba --- /dev/null +++ b/Graphics & Performance/Augmented Reality Navigation Systems.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-054006 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Augmented Reality Navigation Systems" +--- + +# [[Augmented Reality Navigation Systems]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Augmented Reality Navigation Systems.md]] +--- diff --git a/Graphics & Performance/Autonomous Vehicle Perception.md b/Graphics & Performance/Autonomous Vehicle Perception.md new file mode 100644 index 00000000..93024317 --- /dev/null +++ b/Graphics & Performance/Autonomous Vehicle Perception.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A226DB +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Autonomous Vehicle Perception" +--- + +# [[Autonomous Vehicle Perception]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Autonomous Vehicle Perception.md]] +--- diff --git a/Graphics & Performance/BIM 모델 렌더링.md b/Graphics & Performance/BIM 모델 렌더링.md new file mode 100644 index 00000000..20dca128 --- /dev/null +++ b/Graphics & Performance/BIM 모델 렌더링.md @@ -0,0 +1,43 @@ +--- +id: P-REINFORCE-AUTO-B22078 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - BIM 모델 렌더링" +--- + +# [[BIM 모델 렌더링]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> BIM(건축 정보 모델) 및 CAD 모델 렌더링은 수십만 개의 고유하거나 반복되는 기하학적 요소로 이루어진 대규모 건설 데이터를 웹 브라우저 등에서 효율적으로 시각화하는 과정입니다 [1-3]. 이 과정에서는 막대한 드로우 콜(Draw call)과 메모리 대역폭 한계로 인한 성능 저하를 방지하기 위해 형상 병합(Merging), 인스턴싱(Instancing), 배칭(Batching) 등의 기법을 적재적소에 활용해야 합니다 [4-7]. 최근에는 WebGPU를 도입하여 500MB 이상의 거대 BIM 데이터를 실시간으로 렌더링하고 컴퓨트 셰이더를 통해 무거운 연산을 병렬 처리하는 방식이 대규모 건설 뷰어의 핵심 기술로 부상하고 있습니다 [8-10]. + +## 📖 구조화된 지식 (Synthesized Content) +- **BIM 모델의 구조적 특징과 렌더링 과제:** + BIM 또는 CAD 모델은 벽, 바닥, 파이프, 문, 창문 등 수많은 개별 부품(Component)으로 구성되어 있습니다 [1]. 이를 각각 개별적인 메쉬(Mesh)로 렌더링할 경우 CPU에서 GPU로 그리기 명령을 보내는 드로우 콜이 폭증하여 심각한 병목 현상이 발생합니다 [3]. 특히 통합 GPU 환경 등에서는 대용량 정점 데이터를 처리할 때 메모리 대역폭의 한계에 부딪혀 프레임 스터터링이 일어날 수 있습니다 [11, 12]. + +- **하이브리드 렌더링 및 최적화 전략 (Fragment 시스템):** + 건설 데이터의 렌더링 효율을 높이기 위해 IFC.js 프로젝트 등에서는 객체의 특성에 맞춘 하이브리드 방식을 제안합니다 [5, 13]. 벽이나 바닥처럼 폴리곤 수는 적으나 형태가 고유한 객체들은 단일 `BufferGeometry`로 병합(Merging)하여 드로우 콜을 최소화합니다 [5, 14]. 반면, 의자나 문 등 형태가 동일하고 폴리곤이 많은 객체는 메모리 사용량이 적은 `InstancedMesh`를 활용하여 수백, 수천 개의 복제본을 단 한 번의 드로우 콜로 렌더링합니다 [4-6]. + +- **BatchedMesh를 활용한 이질적 기하학 처리:** + Revit 등에서 추출한 모델 내에서 재질은 같으나 기하학적 형태가 다른 수많은 벽이나 부품들을 렌더링할 때는 `BatchedMesh`가 유용하게 사용됩니다 [6, 15, 16]. 이는 단일 렌더 콜로 거대한 어셈블리를 그리면서도 각 객체의 가시성과 변환 행렬, 색상 등을 개별적으로 쉽게 제어 및 수정할 수 있게 해줍니다 [7, 16]. + +- **WebGPU를 통한 대규모 건설 뷰어의 진화:** + 2026년 기준, 500MB 이상의 거대한 대형 건설 뷰어에서는 성능 한계를 극복하기 위해 WebGPU의 네이티브 기능이 필수적입니다 [8, 9]. WebGPU의 컴퓨트 셰이더(Compute Shader)를 활용하면 대규모 BIM 데이터 세트의 실시간 필터링, 물리 연산, 충돌 감지 등을 GPU에서 병렬로 처리하여 메인 스레드의 부하를 없애고 기존보다 100배 이상의 엄청난 처리 속도 향상을 이끌어낼 수 있습니다 [10, 17, 18]. + +- **CAD 데이터 특화 렌더링 최적화 기법:** + 거대한 좌표계를 가지는 CAD 모델 렌더링 시 32-bit 부동소수점 한계로 인해 모델이 떨리는 정밀도 저하(Precision collapse) 현상을 막기 위해 기하학적 데이터를 GPU에 업로드하기 전 기준점을 중심으로 좌표를 오프셋(Re-centering)하는 작업이 필요합니다 [19]. 또한 내부 구조가 겹겹이 존재하는 복잡한 어셈블리 모델은 오버드로우(Overdraw)가 심하므로, 색상 기록 없이 Z-버퍼만 채우는 깊이 사전 패스(Depth Pre-pass)를 수동으로 적용하여 프래그먼트 셰이더의 연산 부하를 획기적으로 줄일 수 있습니다 [20, 21]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[InstancedMesh]], [[BatchedMesh]], [[WebGPU]], [[Draw Call]] +- **Projects/Contexts:** [[IFC.js]], [[Revit 모델 렌더링]], [[대규모 건설 뷰어(Construction Viewers)]] +- **Contradictions/Notes:** 다양한 형태의 객체를 단일 드로우 콜로 처리하여 성능을 높이기 위해 `BatchedMesh`를 사용하는 것이 일반적으로 권장되지만, 수백만 개의 정점과 수십만 개의 서브 지오메트리가 있는 거대한 Revit 기반 건축 모델에 이를 그대로 적용할 경우, 내부 버퍼 업데이트와 데이터 복사 등의 오버헤드로 인해 오히려 CPU 사용량이 40~60% 이상 폭증하고 프레임(FPS)이 급락하는 심각한 성능 역전 현상이 보고되기도 하므로 데이터 규모에 따른 주의가 필요합니다 [15, 22-25]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/BIM 모델 렌더링.md]] +--- diff --git a/Graphics & Performance/BIM 모델 시뮬레이션.md b/Graphics & Performance/BIM 모델 시뮬레이션.md new file mode 100644 index 00000000..aa4723dc --- /dev/null +++ b/Graphics & Performance/BIM 모델 시뮬레이션.md @@ -0,0 +1,37 @@ +--- +id: P-REINFORCE-AUTO-B4BA95 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - BIM 모델 시뮬레이션" +--- + +# [[BIM 모델 시뮬레이션]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> BIM(Building Information Modeling) 모델 시뮬레이션은 수십만 개의 개별 부품으로 구성된 건축 및 건설 데이터를 웹 환경 등에서 실시간으로 렌더링하고 상호작용하는 기술입니다 [1, 2]. 이러한 대규모 데이터셋은 CPU와 GPU 간의 병목 현상을 쉽게 유발하므로 성능 유지를 위해 인스턴싱, 지오메트리 병합, 그리고 최신 그래픽스 API의 활용이 필수적입니다 [2, 3]. 최근에는 대형 모델 처리를 위해 WebGPU의 컴퓨트 셰이더를 활용하여 연산 부하를 획기적으로 낮추는 방법이 도입되고 있습니다 [4, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +* **BIM 데이터의 렌더링 한계** + BIM 및 CAD 모델은 벽, 바닥, 파이프, 공조 시스템 등 수천에서 수십만 개의 서로 다른 부품으로 구성되는 경우가 많습니다 [1-3]. 이 때문에 모든 객체가 동일한 기하학적 구조를 공유해야만 하는 **`InstancedMesh` 최적화 기법을 단독으로 적용하는 것은 불가능하거나 매우 비효율적**입니다 [3]. 예를 들어, 건물의 콘크리트 벽면들은 동일한 재질을 공유하지만 고유한 형태와 크기를 가지기 때문입니다 [6]. +* **하이브리드 및 배치(Batching) 렌더링 전략** + 문이나 창문처럼 기하학적 형태가 반복되는 객체는 인스턴싱(`InstancedMesh`)을 사용하고, 고유한 형태를 지닌 벽이나 바닥 같은 객체는 `BatchedMesh`를 사용하여 단일 드로우 콜로 묶어 처리하는 방식이 고려됩니다 [1, 7]. 하지만 1,200만 개 이상의 너무 거대한 폴리곤 데이터를 `BatchedMesh`로 묶을 경우, 버퍼 패킹 과정에서 오히려 CPU 오버헤드가 급증하여 일반적인 메쉬 렌더링보다 프레임이 심각하게 떨어지는 병목 현상이 보고되기도 합니다 [8-11]. +* **WebGPU와 컴퓨트 셰이더(Compute Shader)의 활용** + 대규모 BIM 데이터셋의 실시간 필터링, 충돌 감지, 구조 시뮬레이션과 같이 자원 소모가 큰 작업에는 **WebGPU의 컴퓨트 셰이더가 게임 체인저로 활용**됩니다 [4, 5]. 이는 CPU의 메인 스레드를 짓누르던 병목 작업들을 GPU의 수많은 코어에서 병렬로 처리하게 함으로써, 성능을 기존 대비 10배에서 100배까지 향상시킬 수 있습니다 [2, 5]. +* **프로젝트 규모에 따른 플랫폼 선택 기준** + 500MB 이하의 표준적인 BIM 뷰어나 모델 구성기(Configurator)를 개발할 때는, 빠르고 풍부한 생태계를 갖춘 **Three.js**를 사용하는 것이 엔지니어링 노력 대비 훌륭한 성능을 제공합니다 [12, 13]. 그러나 모델 용량이 500MB를 초과하는 도시 규모의 디지털 트윈이거나, 실시간 구조 응력 시뮬레이션 같은 극단적인 성능이 요구될 경우에는 직접적인 GPU 메모리 관리와 파이프라인 제어가 가능한 **Native WebGPU** 시스템을 구축하는 것이 필수적입니다 [14, 15]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGPU]], [[InstancedMesh]], [[BatchedMesh]], [[Compute Shader]] +- **Projects/Contexts:** [[대규모 건설 뷰어(Large-Scale Construction Viewers)]] +- **Contradictions/Notes:** 다양한 부품이 혼재된 BIM 모델 최적화를 위해 다중 드로우를 하나로 묶는 `BatchedMesh`가 대안으로 제시되지만, 정점 및 면(face)의 수가 1,000만 개 단위를 넘어갈 정도로 너무 큰 경우에는 과도한 버퍼 연산으로 인해 CPU 점유율이 오히려 치솟는 치명적인 성능 저하가 발생한다는 한계가 있습니다 [8, 9, 11]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/BIM 모델 시뮬레이션.md]] +--- diff --git a/Graphics & Performance/BVH.md b/Graphics & Performance/BVH.md new file mode 100644 index 00000000..5851c9fe --- /dev/null +++ b/Graphics & Performance/BVH.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-D211FC +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - BVH" +--- + +# [[BVH]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> BVH(Bounding Volume Hierarchy)는 3D 환경에서 빠르고 효율적인 레이캐스팅(Raycasting), 절두체 컬링(Frustum Culling) 및 공간 질의(Spatial Queries)를 가능하게 하는 정교한 공간 분할 자료구조입니다 [1, 2]. 이는 렌더링, 조명 및 그림자 연산, 충돌 처리, 자산의 메모리 로딩 등 광범위한 최적화를 주도하는 핵심 기반 기술입니다 [3]. Three.js 생태계에서는 주로 대규모 폴리곤이나 복잡한 인스턴스 씬에서의 성능을 극대화하기 위해 활용됩니다 [1, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +- **성능 최적화 및 고속 레이캐스팅:** BVH는 복잡한 기하학적 구조를 가진 대화형 씬에서 레이캐스팅을 가속화하는 데 필수적인 요소입니다 [4]. `three-mesh-bvh` 라이브러리를 사용할 경우 60fps 환경에서 8만 개 이상의 폴리곤에 대한 레이캐스팅을 병목 없이 수행할 수 있습니다 [4, 5]. +- **대규모 씬의 공간 분할(Spatial Partitioning):** BVH는 공간 분할 및 인덱싱(Indexing) 스키마를 통해 CPU 측의 연산 부담을 줄여줍니다 [3, 6]. 수만 개의 인스턴스가 존재하는 대규모 씬에서 겹쳐 있거나 가려진 객체를 정밀하게 선택(Lasso Selection 등)하려면 BVH와 같은 공간 분할 자료구조 구축이 필수적입니다 [2]. +- **InstancedMesh와의 통합 메커니즘:** 기본적으로 `three-mesh-bvh`는 `InstancedMesh` 내의 개별 기하학적 구조(Geometry)에 대한 BVH 기반 레이캐스팅은 지원하지만, 인스턴스 객체들의 전체 집합 자체를 대상으로 작동하지는 않습니다 [7, 8]. 그러나 `InstancedMesh2`와 같은 확장 라이브러리들은 내부적으로 BVH 공간 인덱스(Spatial Index)를 구축하여, 인스턴스 단위의 빠른 레이캐스팅과 개별 절두체 컬링(Frustum Culling)을 효과적으로 지원하도록 설계되었습니다 [9-12]. +- **API 및 유틸리티:** 개발 시 BVH의 바운딩 트리 구조를 시각화하기 위해 과거에 사용되던 `MeshBVHVisualizer` 클래스는 더 이상 사용되지 않으며(deprecated), 최신 라이브러리에서는 `MeshBVHHelper`의 사용을 권장합니다 [8, 13]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Raycasting]], [[Frustum Culling]], [[InstancedMesh]], [[Spatial Indexing]] +- **Projects/Contexts:** [[three-mesh-bvh]], [[InstancedMesh2]] +- **Contradictions/Notes:** 기본 `three-mesh-bvh` 라이브러리만으로는 `InstancedMesh`의 전체 인스턴스 집합에 대한 직접적인 공간 조회가 제한적이라는 점이 지적되지만 [7], 커뮤니티에서 개발된 `InstancedMesh2` 라이브러리가 BVH 공간 인덱스를 내장함으로써 이러한 한계를 성공적으로 극복하고 전체 인스턴스의 빠른 컬링 및 레이캐스팅을 가능하게 합니다 [10, 12]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/BVH.md]] +--- diff --git a/Graphics & Performance/Babylonjs.md b/Graphics & Performance/Babylonjs.md new file mode 100644 index 00000000..2be3b45c --- /dev/null +++ b/Graphics & Performance/Babylonjs.md @@ -0,0 +1,41 @@ +--- +id: P-REINFORCE-AUTO-852A59 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Babylonjs" +--- + +# [[Babylonjs]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Babylon.js는 수천에서 수만 개의 메쉬로 구성된 대규모 3D 씬을 웹 환경에서 렌더링하고 관리하는 데 사용되는 그래픽 엔진입니다. 렌더링 성능 및 메모리 최적화를 위해 MergeMesh, 인스턴스 메쉬(Instanced Meshes), 그리고 솔리드 파티클 시스템(Solid Particle System, SPS) 등의 기법을 지원합니다. 대규모 인스턴스 처리 시 발생하는 CPU 병목 현상을 극복하기 위해 하드웨어 제어력이 높은 WebGPU 기술의 도입이 적극적으로 논의되고 있습니다. + +## 📖 구조화된 지식 (Synthesized Content) +* **렌더링 최적화 기법** + 대량의 객체를 렌더링할 때 발생하는 메쉬 생성 시간, FPS 성능 저하, 메모리 소비 문제를 해결하기 위해 `MergeMesh`, 솔리드 파티클 시스템(SPS), 인스턴스 메쉬(Instanced Meshes) 기술이 주로 사용됩니다 [1, 2]. + +* **인스턴스 메쉬(Instanced Meshes)와 SPS의 특성 비교** + * **인스턴스 메쉬**: 지오메트리 복제를 방지하여 메모리 효율성이 높지만, 매 프레임마다 월드 매트릭스(World Matrix), 바운딩 박스, 바운딩 스피어 및 절두체(Frustum) 검사를 계산합니다 [3]. 인스턴스가 수만 개로 늘어나고 개별 스케일(Scale) 등이 적용될 경우 막대한 CPU 병목을 유발하여 프레임 속도를 급격히 떨어뜨립니다 [4, 5]. + * **솔리드 파티클 시스템(SPS)**: `setParticles()`가 호출될 때만 전용 월드 매트릭스를 계산하며 기본적으로 절두체 검사가 비활성화되어 있어 CPU 오버헤드가 적습니다. 런타임에 개별 파티클의 색상이나 재질을 유연하게 변경할 수 있는 장점이 있으나, 지오메트리와 색상 버퍼 데이터를 내부적으로 모두 복제하기 때문에 10만 개의 실린더를 렌더링할 때 약 600MB의 엄청난 메모리를 소모합니다 [1, 3, 6, 7]. + +* **CPU 병목 현상 및 완화 전략** + Babylon.js는 버퍼 내의 매트릭스를 재배열하는 방식으로 CPU 단에서 정렬(Sorting) 및 절두체 컬링(Frustum Culling)을 수행합니다 [8]. 따라서 렌더링 시 매 프레임마다 발생하는 월드 매트릭스 계산 부하를 줄이려면 `freezeWorldMatrix()` 함수를 사용하여 정적 객체의 연산을 비활성화하거나, 시야 밖의 객체 관리를 별도의 웹 워커(Web Worker)로 분리하는 기법이 권장됩니다 [4, 9]. + +* **한계와 WebGPU의 역할** + 현재의 WebGL 상태에서는 인스턴스 메쉬라 할지라도 수만 개의 객체를 처리하기에는 무리가 있습니다 [10]. 2,000개 미만의 메쉬에서는 원활하지만 그 이상의 거대한 스케일을 처리하기 위해서는 금속(하드웨어) 수준에 더 가깝게 접근할 수 있는 WebGPU를 대안으로 사용해야 합니다 [10]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Instanced Meshes]], [[Solid Particle System (SPS)]], [[Frustum Culling]], [[WebGPU]] +- **Projects/Contexts:** [[대규모 3D 환경 렌더링 최적화 프로젝트]] +- **Contradictions/Notes:** 인스턴스 메쉬는 지오메트리를 복제하지 않아 메모리가 절약되어야 하지만, 한 사용자는 10,000개의 인스턴스당 100MB의 힙 메모리가 증가(인스턴스당 약 8~10KB)한다는 프로파일링 결과를 제기했습니다 [7, 11]. 이에 대해 Babylon.js 개발진(Deltakosh)은 실제 인스턴스 1개당 차지하는 메모리는 약 400바이트 수준이라고 확인하며 오해를 정정했습니다 [12]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Babylon.js.md]] +--- diff --git a/Graphics & Performance/BatchedMesh 및 InstancedMesh 성능 벤치마크.md b/Graphics & Performance/BatchedMesh 및 InstancedMesh 성능 벤치마크.md new file mode 100644 index 00000000..e4cd1bb7 --- /dev/null +++ b/Graphics & Performance/BatchedMesh 및 InstancedMesh 성능 벤치마크.md @@ -0,0 +1,43 @@ +--- +id: P-REINFORCE-AUTO-6B3697 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - BatchedMesh 및 InstancedMesh 성능 벤치마크" +--- + +# [[BatchedMesh 및 InstancedMesh 성능 벤치마크]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> BatchedMesh와 InstancedMesh는 Three.js 환경에서 드로우 콜(Draw Call)을 줄여 렌더링 성능을 대폭 개선하는 대표적인 최적화 기법입니다 [1, 2]. InstancedMesh는 동일한 형태의 객체를 대량으로 그릴 때 탁월한 효율을 보이지만 다양한 지오메트리를 한 번에 처리할 수는 없으며, BatchedMesh는 서로 다른 지오메트리를 하나의 드로우 콜로 묶을 수 있는 높은 유연성을 제공합니다 [3, 4]. 하지만 벤치마크 사례 연구에 따르면, 대규모 객체를 처리할 때 BatchedMesh는 내부적인 객체 정렬 및 버퍼 업로드 오버헤드로 인해 오히려 심각한 CPU 병목 현상과 렌더링 성능 저하를 유발할 수 있음이 확인되었습니다 [5, 6]. + +## 📖 구조화된 지식 (Synthesized Content) +- **최적화 메커니즘과 적용 기준** + InstancedMesh는 동일한 기하학적 구조(BufferGeometry)와 재질(Material)을 공유하는 수많은 복제본을 단일 드로우 콜로 GPU에 전달해 처리합니다 [7, 8]. 고유한 지오메트리가 1,000개 미만이면서 수만 개의 복제본이 존재하는 환경에서 최상의 성능(`drawElementsInstanced`)을 발휘합니다 [9, 10]. 반면 BatchedMesh는 재질은 같으나 형태가 각기 다른 여러 지오메트리를 하나의 버퍼에 통합(`multiDrawElementsWEBGL` 활용)하여 한 번에 렌더링할 수 있으므로 지오메트리가 매우 다양한 씬에 적합합니다 [9, 11-13]. + +- **BatchedMesh의 대규모 씬 성능 병목 현상** + 실제 건축 BIM 모델이나 대규모 씬(예: 1,200만 개의 삼각형, 수십만 개의 고유 지오메트리)을 BatchedMesh로 렌더링한 벤치마크 테스트에서 막대한 성능 하락이 보고되었습니다 [5, 14, 15]. 동일한 환경에서 모든 객체를 하나로 병합한 Merged Mesh 방식이 60 FPS(CPU 15%, GPU 90%)의 성능을 보인 반면, BatchedMesh는 약 20 FPS 이하(CPU 40~60%, GPU 30%)로 프레임이 급락하며 극심한 CPU 부하를 보였습니다 [5, 15-17]. + +- **성능 저하의 주요 원인** + BatchedMesh의 CPU 오버헤드는 매 프레임마다 GPU로 그려야 할 부분의 '시작(starts)' 지점과 '카운트(counts)' 배열 데이터를 재업로드해야 하는 구조에서 비롯될 확률이 높습니다(약 20만 개 항목 기준 1.6MB의 데이터를 매 프레임 전송) [6, 18, 19]. 더불어 개별 객체마다 가시성을 판별하는 시야 절두체 컬링(Frustum Culling) 및 심도 정렬(Sorting) 작업이 CPU 자원을 크게 소모하며, 특히 정렬 기능을 켤 경우 `texSubImage2D` 작업 병목으로 인해 FPS가 30에서 9로 떨어지는 현상까지 관찰되었습니다 [20-22]. + +- **오버드로우(Overdraw)와 심도 정렬의 한계** + InstancedMesh는 내부적으로 인스턴스를 자동으로 정렬하지 않기 때문에, 불투명 객체들이 겹칠 때 발생하는 오버드로우 현상으로 인해 프래그먼트 바운드(Fragment-bound) 성능 저하를 겪을 수 있습니다 [23-25]. BatchedMesh는 이러한 문제를 덜기 위해 자체적인 정렬 기능을 제공하지만, 앞서 언급한 바와 같이 수많은 요소를 CPU에서 정렬하는 연산 자체가 새로운 렌더링 지연의 원인이 됩니다 [22, 24]. + +- **성능 벤치마크 기반의 선택 가이드라인** + 동적인 씬에서 객체의 종류가 1,000개 이하라면 InstancedMesh가 압도적으로 효율적입니다 [10, 26]. 만일 고유 객체가 1,000개 이상이라면 BatchedMesh를 고려할 수 있으나, 수만~수십만 개의 극대규모 객체 단위로 넘어가면 한계에 부딪힙니다 [10, 27]. 씬이 정적이라면 지오메트리를 하나의 거대한 버퍼로 완전히 병합(Merge)해버리는 것이 성능에 훨씬 이로우며, 매우 방대하고 동적인 처리가 필수적이라면 WebGPU 기반의 컴퓨트 셰이더와 간접 드로우(Indirect Draw) 파이프라인으로 전환하는 것이 근본적인 해결책입니다 [6, 28, 29]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[드로우 콜 (Draw Call)]], [[Frustum Culling (시야 절두체 컬링)]], [[오버드로우 (Overdraw)]] +- **Projects/Contexts:** [[Revit 및 BIM 건축 모델 렌더링 최적화]], [[WebGPU 및 Indirect Draw]] +- **Contradictions/Notes:** BatchedMesh는 여러 종류의 지오메트리 렌더링 시 발생하는 CPU의 드로우 콜 오버헤드를 줄이고 성능을 최적화하기 위해 고안되었으나, 대규모(10만 개 이상) 지오메트리 벤치마크 환경에서는 내부 상태 업데이트 및 버퍼 데이터 전송 부하로 인해 도리어 Merged Mesh 방식보다 CPU 사용량을 최대 3배 이상 폭증시키고 FPS를 심각하게 떨어뜨리는 역설적인 결과를 보입니다 [5, 15, 30]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/BatchedMesh 및 InstancedMesh 성능 벤치마크.md]] +--- diff --git a/Graphics & Performance/BatchedMesh.md b/Graphics & Performance/BatchedMesh.md new file mode 100644 index 00000000..b97497a1 --- /dev/null +++ b/Graphics & Performance/BatchedMesh.md @@ -0,0 +1,42 @@ +--- +id: P-REINFORCE-AUTO-AADCDE +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - BatchedMesh" +--- + +# [[BatchedMesh]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +* **동작 원리와 초기화:** + BatchedMesh는 렌더링 시 CPU의 명령 발행 횟수(드로우 콜)를 줄이기 위한 기술입니다. 초기화 시 `maxInstanceCount`(최대 인스턴스 수), `maxVertexCount`(최대 정점 수), `maxIndexCount`(최대 인덱스 수)와 인스턴스들이 공유할 단일 `material`을 정의합니다. 이후 여러 지오메트리를 추가(`addGeometry`)하고, 개별 인스턴스에 고유한 변환 행렬(Matrix)을 적용(`setMatrixAt`)하여 위치, 회전, 크기를 설정할 수 있습니다 [1-6]. + +* **InstancedMesh와의 차이점:** + InstancedMesh가 `instancedDraw`를 사용하여 동일한 지오메트리만을 수없이 복제하는 방식이라면, BatchedMesh는 `WEBGL_multi_draw` 확장(WebGPU에서는 indirect draw)을 활용하여 서로 다른 지오메트리를 한 번에 그릴 수 있습니다. 또한 `setVisibleAt` 메서드를 제공하여 개별 객체의 가시성(Visibility)을 제어할 수 있는 유연성을 갖추고 있습니다 [7-11]. + +* **성능 한계 및 병목 현상:** + BatchedMesh는 소규모 또는 다양한 지오메트리가 혼합된 씬(예: 각기 다른 모양의 수많은 벽이나 식물들)에서는 강력하지만, 확장성 측면에서 뚜렷한 한계를 보입니다. + * **버퍼 패킹 및 통신 오버헤드:** 인스턴스가 수만에서 수십만 개(예: 200,000개)로 늘어나면 GPU로 전송할 드로우 시작 지점 및 개수 버퍼 데이터가 커집니다. 매 프레임 이를 업데이트하고 `multiDrawElementsWEBGL`을 호출하는 데 막대한 CPU 자원이 소모됩니다 [11-14]. + * **정렬 및 컬링 비용:** 시야 절두체 컬링(`perObjectFrustumCulled`)과 투명도 처리를 위한 객체 정렬(`sortObjects`)을 수행할 때, 이 연산이 CPU의 메인 스레드를 장악하여 프레임 속도(FPS)를 60FPS에서 10~20FPS 수준으로 급락시키는 병목을 유발합니다 [13, 15-17]. + +* **최적화 적용 전략:** + 동적인 씬에서 고유한(Unique) 객체가 1,000개 이상일 때는 BatchedMesh(`multiDrawElementsWEBGL`)가 적합하지만, 고유 객체가 적고 인스턴스만 수십만 개인 경우에는 InstancedMesh(`drawElementsInstanced`)를 사용하는 것이 훨씬 효율적입니다 [18]. 모델의 삼각형 수가 천만 개를 넘어가거나 고정된 구조물이라면 지오메트리를 하나로 병합(Merging)하는 방식이 CPU 점유율 방어 측면에서 BatchedMesh보다 성능이 우수할 수 있습니다 [19-21]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[InstancedMesh]], [[Draw Call Optimization]], [[WEBGL_multi_draw]], [[Frustum Culling]] +- **Projects/Contexts:** [[Three.js 렌더링 최적화]], [[대규모 3D 건축 모델(BIM) 시각화]], [[InstancedMesh 사용 시 드로우 콜 최적화의 한계점 사례 연구]] +- **Contradictions/Notes:** 소스에서는 BatchedMesh가 여러 지오메트리를 한 번에 그려 드로우 콜을 획기적으로 줄여준다고 설명하지만, 동시에 인스턴스 수가 10만 개 이상이거나 1,200만 폴리곤 이상의 환경에서는 CPU의 버퍼 패킹 및 다중 드로우 처리 부하로 인해 병합된 일반 메쉬(Merged Mesh)나 InstancedMesh보다 FPS가 30~50% 이상 떨어지는 모순적 한계를 지니고 있음을 실증 사례로 지적합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/BatchedMesh.md]] +--- diff --git a/Graphics & Performance/Batching.md b/Graphics & Performance/Batching.md new file mode 100644 index 00000000..c9ad9e69 --- /dev/null +++ b/Graphics & Performance/Batching.md @@ -0,0 +1,38 @@ +--- +id: P-REINFORCE-AUTO-723577 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Batching" +--- + +# [[Batching]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Batching(배칭)은 렌더링 성능을 최적화하기 위해 여러 개의 렌더링 객체나 처리 명령을 하나의 그룹으로 묶어 일괄적으로 실행하는 기법입니다. 주로 3D 그래픽스(WebGL, WebGPU) 환경에서 GPU로 보내는 드로우 콜(Draw Call) 횟수를 줄여 성능 오버헤드를 최소화하는 데 사용됩니다. 또한 웹 개발 환경에서는 DOM의 읽기 및 쓰기 작업을 묶어 불필요한 레이아웃 재계산을 방지하는 목적으로도 활용됩니다. + +## 📖 구조화된 지식 (Synthesized Content) +* **드로우 콜(Draw Call) 최소화 전략** + 성능은 종종 실행되는 명령(드로우 콜)의 수에 크게 의존하기 때문에, 여러 그리기 호출을 하나의 WebGL 호출로 병합하는 배칭 기능은 성능 향상의 핵심입니다 [1, 2]. +* **3D 그래픽스 엔진에서의 활용** + * **Cesium:** 여러 객체를 하나의 명령으로 결합하기 위해 배칭을 사용합니다. 예를 들어, `BillboardCollection`은 가능한 한 많은 빌보드(Billboard)를 하나의 정점 버퍼(Vertex Buffer)에 저장하고, 이를 동일한 셰이더를 통해 렌더링함으로써 명령의 수를 대폭 줄입니다 [1]. 또한 엔진이 가시 절두체(Frustum)를 분할할 때마다 명령을 개별적으로 정렬 및 배칭(Batch)하여 작동 지연 시간을 최소화합니다 [3]. + * **Wonderland Engine:** 배칭 기능을 극한으로 적용하여, 수만 개의 동적 객체가 포함된 장면(Scene)을 자동으로 10개 미만의 드로우 콜로 렌더링해 냅니다 [2]. +* **WebGPU에서의 명령어 배칭(Command Batching)** + WebGPU는 명령어 기록과 제출을 분리하는 구조를 가집니다. 명령들은 명령 버퍼(Command buffers)에 기록된 후, 일괄적으로(in batches) GPU 큐(Queue)에 제출됩니다 [4]. 이는 프레임당 API 오버헤드를 크게 줄여주며, GPU 드라이버가 명령어 실행을 더 효과적으로 최적화할 수 있게 만듭니다 [4]. +* **UI 레이아웃 및 DOM 성능 최적화** + 웹 성능 지표(Core Web Vitals) 중 하나인 INP(Interaction to Next Paint)를 최적화하기 위해서도 배칭 개념이 쓰입니다. 읽기 작업 직후 쓰기 작업을 수행하여 발생하는 과도한 동기식 레이아웃 재계산(레이아웃 스래싱)을 방지하기 위해, DOM 읽기 및 쓰기 작업을 현명하게 배칭(Batch)하여 처리하는 것이 권장됩니다 [5]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Draw Calls]], [[WebGL]], [[WebGPU]], [[Interaction to Next Paint (INP)]] +- **Projects/Contexts:** [[Cesium]], [[Wonderland Engine]] +- **Contradictions/Notes:** 소스 내에서 배칭에 관한 상충되는 의견은 없으나, 3D 엔진에서의 '드로우 콜 병합'과 프론트엔드 최적화에서의 'DOM 연산 일괄 처리'라는 서로 다른 두 가지 시스템 컨텍스트에서 성능 개선을 위한 공통된 원리로 작용하고 있음을 보여줍니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Batching.md]] +--- diff --git a/Graphics & Performance/Behavioral Economics in Digital Ecosystems.md b/Graphics & Performance/Behavioral Economics in Digital Ecosystems.md new file mode 100644 index 00000000..d31d7f36 --- /dev/null +++ b/Graphics & Performance/Behavioral Economics in Digital Ecosystems.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-CAA259 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Behavioral Economics in Digital Ecosystems" +--- + +# [[Behavioral Economics in Digital Ecosystems]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Behavioral Economics in Digital Ecosystems.md]] +--- diff --git a/Graphics & Performance/Behavioral Economics.md b/Graphics & Performance/Behavioral Economics.md new file mode 100644 index 00000000..bb4e6489 --- /dev/null +++ b/Graphics & Performance/Behavioral Economics.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-612A46 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Behavioral Economics" +--- + +# [[Behavioral Economics]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Behavioral Economics.md]] +--- diff --git a/Graphics & Performance/Bio-mechanical-Modeling.md b/Graphics & Performance/Bio-mechanical-Modeling.md new file mode 100644 index 00000000..fe832a77 --- /dev/null +++ b/Graphics & Performance/Bio-mechanical-Modeling.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-8DE8EF +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Bio-mechanical-Modeling" +--- + +# [[Bio-mechanical-Modeling]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Bio-mechanical-Modeling.md]] +--- diff --git a/Graphics & Performance/Bioregionalism.md b/Graphics & Performance/Bioregionalism.md new file mode 100644 index 00000000..67130871 --- /dev/null +++ b/Graphics & Performance/Bioregionalism.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-01D600 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Bioregionalism" +--- + +# [[Bioregionalism]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Bioregionalism.md]] +--- diff --git a/Graphics & Performance/Bounding Volume Hierarchy (BVH).md b/Graphics & Performance/Bounding Volume Hierarchy (BVH).md new file mode 100644 index 00000000..9c460482 --- /dev/null +++ b/Graphics & Performance/Bounding Volume Hierarchy (BVH).md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-68A235 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Bounding Volume Hierarchy (BVH)" +--- + +# [[Bounding Volume Hierarchy (BVH)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +- **빠른 레이캐스팅과 공간 쿼리:** `three-mesh-bvh`와 같은 구현체는 Three.js 환경에서 8만 개 이상의 폴리곤에 대한 레이캐스팅을 60fps의 속도로 원활하게 수행할 수 있도록 지원합니다 [4]. 이는 복잡한 지오메트리를 가진 인터랙티브 씬이나 다수의 레이캐스트가 발생하는 상황에서 성능 저하를 방지하는 강력한 수단입니다 [4, 7]. +- **효율적인 공간 분할과 포괄적 최적화:** 잘 설계된 BVH 스키마는 공간을 효율적으로 분할하고 인덱싱하여, 렌더링뿐만 아니라 조명 및 그림자 계산, 충돌 감지(Collisions), 그리고 에셋의 다운로드와 메모리 로딩 및 폐기에 이르는 전방위적인 최적화를 주도할 수 있습니다 [3]. 특히 정적인(static) 객체에 대해 초기화 시점에 BVH를 계산해두면, CPU 연산 단계에서 해당 객체들을 화면에 그릴지(Culling) 여부를 극도로 빠르고 효율적으로 판별할 수 있습니다 [6, 8]. +- **InstancedMesh 환경에서의 적용:** 인스턴싱 기술(예: `InstancedMesh2` 라이브러리)에 BVH 형태의 공간 인덱스를 결합하면 개별 인스턴스에 대한 매우 빠른 레이캐스팅과 프러스텀 컬링을 구현할 수 있습니다 [5, 9, 10]. 기존 `InstancedMesh` 자체에 대해서는 전체 인스턴스 세트가 아닌 내부의 개별 지오메트리 단위로 BVH 기반 레이캐스팅을 수행하므로, 지오메트리에 대한 바운드 트리(bounds tree)를 생성하여 적용해야 합니다 [11, 12]. +- **도입 시의 기술적 난제와 트레이드오프:** 대규모 인스턴스 씬에서 여러 객체가 겹쳐 있거나 가려진 객체를 정밀하게 선택(GPU Picking의 한계 극복)하기 위해서는 BVH와 같은 정교한 공간 분할 자료구조를 별도로 구축해야 합니다 [2]. 하지만 이러한 고도화된 자료구조를 추가로 구축하는 과정은 `InstancedMesh`가 본래 제공하는 '사용의 단순함'이라는 장점을 퇴색시킬 수 있다는 구조적 한계를 동반합니다 [2]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Raycasting]], [[Frustum Culling]], [[InstancedMesh]], [[Spatial Partitioning]] +- **Projects/Contexts:** [[three-mesh-bvh]], [[InstancedMesh2]] +- **Contradictions/Notes:** BVH 모델을 씬에서 직접 시각화하여 확인하고자 할 때, 최신 라이브러리 환경에서는 기존에 사용되던 `MeshBVHVisualizer`가 더 이상 지원되지 않으므로(deprecated) 반드시 문서를 참조하여 `MeshBVHHelper`를 사용해야 합니다 [12]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Bounding Volume Hierarchy (BVH).md]] +--- diff --git a/Graphics & Performance/Buffer Allocation.md b/Graphics & Performance/Buffer Allocation.md new file mode 100644 index 00000000..6694e3ea --- /dev/null +++ b/Graphics & Performance/Buffer Allocation.md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-B20BA9 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Buffer Allocation" +--- + +# [[Buffer Allocation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 버퍼 할당(Buffer Allocation)은 WebGL 및 WebGPU 환경에서 정점, 인덱스, 인스턴스 변환 행렬 등의 데이터를 저장하기 위해 GPU 메모리 공간을 확보하는 과정입니다. 렌더링 중 동적으로 버퍼 크기를 늘리거나 빈번하게 데이터를 업데이트할 경우 심각한 프레임 지연 및 메모리 오류가 발생할 수 있습니다. 따라서 최대 예상치에 맞춰 사전에 버퍼를 할당하고, 재사용 가능한 영구적인 GPU 버퍼를 활용하는 것이 3D 애플리케이션 성능 최적화에 필수적입니다. + +## 📖 구조화된 지식 (Synthesized Content) +* **동적 버퍼 확장의 성능 병목 현상:** 인스턴싱(Instancing) 시스템이 초기에 낮은 버퍼 용량으로 시작하여 런타임에 동적으로 크기를 확장(Growing Buffer)하게 되면, 심각한 성능 지연(예: 앱 시작 시 수 초간의 멈춤 현상) 및 메모리 할당 오류가 발생할 수 있습니다 [1, 2]. +* **최대 용량 사전 할당 (Preallocation):** 이를 방지하기 위해 엔진 시작 시점에 예상되는 최대 인스턴스 수에 맞춰 충분한 크기의 버퍼를 사전에 할당하는 방식이 권장됩니다 [1]. 여유 용량(Excess capacity)을 미리 확보하는 것은 약간의 메모리 오버헤드를 발생시키지만, 실제 렌더링 연산 비용에는 부정적인 영향을 주지 않습니다 [3]. +* **GPU 영구 버퍼 및 업데이트 최소화:** WebGPU 환경에서 매 프레임 수많은 작은 버퍼를 반복 업데이트하는 것은 비용이 매우 큽니다 [4]. 따라서 `instancedArray`와 같은 영구적인 GPU 버퍼를 생성하여 사용하면 프레임 간 데이터가 유지되어, 성능 저하의 주원인인 CPU-GPU 간의 데이터 전송을 제거할 수 있습니다 [4, 5]. +* **오브젝트 풀링(Object Pooling) 활용:** 객체를 빈번하게 생성하고 파괴하는 작업은 버퍼 할당 오버헤드와 가비지 컬렉션(GC)에 의한 일시 정지를 유발합니다. 런타임 할당 스파이크를 피하려면 로딩 단계에서 풀을 미리 데워두는(Pre-warm) 방식의 오브젝트 풀링을 사용해야 합니다 [6]. +* **버퍼 재할당 시 메모리 누수 주의:** WebGL 컨텍스트는 디바이스에 따라 유한한 메모리 한도(일반적으로 256MB~1GB)를 가지며, 한도를 초과하면 뷰어가 다운될 수 있습니다 [7]. 또한, 기존의 인스턴스 메쉬 자원을 깔끔하게 폐기(Dispose)하지 못한 상태에서 동적으로 버퍼 용량을 늘리려 할 경우 메모리 누수가 발생할 수 있습니다 [8]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[GPU Instancing]], [[Memory Management]], [[Object Pooling]], [[Garbage Collection]] +- **Projects/Contexts:** [[Three.js]], [[Needle Engine]], [[WebGPU]] +- **Contradictions/Notes:** 소스에서는 실행 중 버퍼 크기를 동적으로 늘리는 방식(Dynamic Growth)은 성능 지연과 오류를 낳으므로, 초기에 넉넉하게 메모리 공간을 사전 할당(Preallocate)하는 방식이 훨씬 안정적이라고 강조합니다 [1-3]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Buffer Allocation.md]] +--- diff --git a/Graphics & Performance/BufferAttribute.md b/Graphics & Performance/BufferAttribute.md new file mode 100644 index 00000000..f4f24bf4 --- /dev/null +++ b/Graphics & Performance/BufferAttribute.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-7E5F3E +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - BufferAttribute" +--- + +# [[BufferAttribute]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> `BufferAttribute`는 Three.js에서 3D 모델의 지오메트리 데이터를 저장하고 관리하기 위해 사용되는 핵심 클래스입니다 [1, 2]. 이 클래스는 Web Worker와 메인 스레드 간에 데이터를 중복 복사 없이 효율적으로 공유할 수 있게 해주며, 데이터 압축을 통한 메모리 최적화를 지원합니다 [2, 3]. 또한, 파생 클래스인 `InstancedBufferAttribute`를 통해 인스턴스 기반 렌더링에서 객체별 고유 데이터를 GPU로 전송하는 필수적인 역할을 수행합니다 [4, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +- **메모리 최적화 및 제로 카피(Zero-copy) 아키텍처:** Electron 등 메모리가 제한적인 환경에서 Web Worker가 STL 데이터를 `SharedArrayBuffer`로 파싱하면, 메인 스레드는 이 공유 메모리 공간을 직접 가리키는 `BufferAttribute`를 생성할 수 있습니다. 이러한 '제로 카피' 아키텍처를 활용하면 데이터 중복 복사로 인한 메모리 오버헤드 없이 멀티스레드 지오메트리 생성이 가능합니다 [2]. +- **지오메트리 데이터 압축 지원:** `BufferAttribute`는 정규화된 정수 타입(normalized integer types)과 결합하여 지오메트리 압축을 지원함으로써 정점 버퍼의 크기를 대폭 줄일 수 있습니다 [3]. +- **다양한 타입의 파생 클래스 제공:** Three.js의 코어 API에는 데이터 타입 및 메모리 정밀도에 맞춰 `Float32BufferAttribute`, `Float16BufferAttribute`, `Int16BufferAttribute`, `Uint8BufferAttribute` 등 다양한 형태의 파생 클래스들이 존재합니다 [1]. +- **인스턴싱 연동 (InstancedBufferAttribute):** 대규모 객체 렌더링 시, 개별 인스턴스마다 다른 변환 행렬(`instanceMatrix`)이나 색상(`instanceColor`)을 적용하기 위해 파생 클래스인 `InstancedBufferAttribute`가 사용됩니다 [5, 6]. 또한, 텍스처 아틀라스 내에서 각 인스턴스별 텍스처 UV 오프셋을 전달하거나, 가시성(visibility) 및 컬링(culling) 상태 인덱스를 셰이더로 전달할 때도 핵심적으로 활용됩니다 [4, 7-9]. 매 프레임 수많은 지오메트리를 재생성하는 대신, `InstancedBufferAttribute` 일부만 갱신하여 렌더링 성능을 높일 수 있습니다 [10]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[InstancedBufferAttribute]], [[BufferGeometry]], [[SharedArrayBuffer]], [[InstancedMesh]] +- **Projects/Contexts:** [[WebGL/Three.js 대규모 CAD 렌더링 메모리 최적화]], [[다중 객체 드로우 콜 최적화 및 커스텀 셰이더 적용 맥락]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/BufferAttribute.md]] +--- diff --git a/Graphics & Performance/BufferGeometry.md b/Graphics & Performance/BufferGeometry.md new file mode 100644 index 00000000..cca2ca7f --- /dev/null +++ b/Graphics & Performance/BufferGeometry.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-2887C6 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - BufferGeometry" +--- + +# [[BufferGeometry]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> BufferGeometry는 Three.js의 핵심 3D 기하학 구조를 정의하는 객체이다 [1]. InstancedMesh 기술에서 수많은 인스턴스가 공통으로 공유하는 기하학적 데이터로 사용된다 [2, 3]. 또한 여러 개의 지오메트리를 단일 BufferGeometry로 병합하여 렌더링 과정에서 발생하는 드로우 콜(Draw Call)을 최소화하는 성능 최적화의 핵심 단위로도 활용된다 [4, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +* **InstancedMesh의 기본 데이터 레이어:** InstancedMesh 구조에서 BufferGeometry는 모든 개별 인스턴스가 공통으로 공유하는 기하학적 정의를 담당하는 주요 데이터 레이어이다 [2]. 다만, 하나의 InstancedMesh 인스턴스는 오직 하나의 BufferGeometry만을 참조할 수 있다는 기하학적 단일성의 제약이 존재한다 [6]. +* **지오메트리 병합(Merging)을 통한 최적화:** 정적인 환경이나 여러 개의 객체들을 렌더링할 때, `BufferGeometryUtils.mergeBufferGeometries()` 메서드를 사용하여 서로 다른 기하학적 데이터를 단일 BufferGeometry로 병합할 수 있다 [5, 7, 8]. 이를 통해 여러 객체를 단 한 번의 드로우 콜로 렌더링함으로써 CPU 오버헤드를 획기적으로 낮출 수 있다 [4]. +* **메모리 집약성 및 컬링(Culling) 효율의 한계:** 여러 객체를 하나의 BufferGeometry로 묶는 방식은 드로우 콜을 줄여주지만, 객체를 복제할 때마다 RAM 사용량이 정비례로 증가하는 메모리 집약적인 특성을 띤다 [4]. 더욱이 병합된 메쉬 전체가 하나의 단일 바운딩 볼륨(Bounding Volume)으로 취급되기 때문에, 화면 밖의 객체를 제외하는 시야 절두체 컬링(Frustum Culling)의 정밀도가 떨어지는 한계가 발생한다 [5]. +* **개별 항목의 식별 및 접근:** 여러 객체를 거대한 BufferGeometry 하나로 병합한 후 특정 개별 요소를 선택하거나 수정하는 것은 까다롭지만, 버퍼 내 각 객체의 위치(Position) 데이터를 저장하는 매핑(Map) 구조를 구축하여 개별 항목을 효율적으로 조회하고 제어할 수 있다 [4]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[InstancedMesh]], [[Draw Call]], [[BufferGeometryUtils]] +- **Projects/Contexts:** [[Three.js]], [[IFC.js Fragment]] +- **Contradictions/Notes:** 소스 문헌들은 성능 개선을 위해 객체들을 단일 BufferGeometry로 병합할 것을 권장하면서도, 이 방식이 드로우 콜을 최소화하는 대신 RAM 소모량을 높이고 시야 절두체 컬링의 효율을 저하시키는 트레이드오프(Trade-off)를 유발한다고 경고한다 [4, 5]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/BufferGeometry.md]] +--- diff --git a/Graphics & Performance/CPU Bottleneck.md b/Graphics & Performance/CPU Bottleneck.md new file mode 100644 index 00000000..ab449bed --- /dev/null +++ b/Graphics & Performance/CPU Bottleneck.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-944A15 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - CPU Bottleneck" +--- + +# [[CPU Bottleneck]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 3D 그래픽스 및 실시간 렌더링 환경에서 CPU 병목(CPU Bottleneck)이란, CPU가 렌더링 명령어(드로우 콜)를 준비하고 GPU로 전송하거나 필요한 데이터 연산을 처리하는 속도가 느려져 GPU가 제 성능을 발휘하지 못하고 대기(Starve)하게 되는 현상을 말합니다 [1]. 주로 개별 모델에 대한 과도한 드로우 콜 발행이나 자바스크립트 메인 스레드에서의 무거운 연산(애니메이션, 정렬, 컬링 등)으로 인해 발생하며 [2-4], 이를 해결하기 위해 인스턴싱(Instancing)이나 연산의 GPU 오프로딩 기법이 사용됩니다 [5, 6]. + +## 📖 구조화된 지식 (Synthesized Content) +- **드로우 콜 오버헤드 (Draw Call Overhead):** CPU 병목의 가장 주요한 원인입니다. CPU는 GPU에 그리기 명령을 내릴 때마다 변환 행렬, 셰이더 참조, 유니폼, 정점 버퍼 등의 렌더링 상태를 준비하고 통신해야 합니다 [2, 7]. 수백~수천 개의 개별 객체를 렌더링할 경우, 실제 폴리곤을 그리는 연산보다 CPU가 명령을 준비하고 발행하는 오버헤드가 시스템 버스에 막대한 부하를 가하여 병목을 유발합니다 [1, 7, 8]. +- **자바스크립트 메인 스레드 한계:** 웹 렌더링(Three.js 등) 환경에서 수만 개의 객체에 대해 수동으로 시야 절두체 컬링(Frustum Culling)을 계산하거나, 투명 객체의 깊이 정렬(예: Radix Sort)을 수행할 경우 막대한 CPU 연산 비용이 발생합니다 [4, 9]. 단일 스레드 기반인 자바스크립트에서 렌더링 루프 내의 대규모 배열 조작은 메인 스레드를 점유하여 프레임 드랍을 유발하는 치명적인 CPU 병목을 낳습니다 [4, 9]. +- **애니메이션 및 레이캐스팅 부하:** 스킨드 메시(Skinned Mesh)의 뼈대(Bone) 애니메이션 시스템은 매 프레임 CPU에서 행렬 업데이트 연산을 요구하므로 다수의 캐릭터가 있을 경우 렌더링 예산을 초과하는 CPU 시간을 소모합니다 [3]. 또한 수만 개의 인스턴스 환경에서 CPU 기반 레이캐스팅(Raycasting)을 수행하면 각 인스턴스의 행렬을 일일이 역산해야 하므로 즉각적인 반응을 불가능하게 만드는 동기화 병목이 발생합니다 [10]. +- **입자 시스템 및 물리 연산:** CPU를 활용한 파티클 시스템 업데이트는 일반적인 하드웨어 기준 약 50,000개 수준에서 CPU 병목에 도달합니다 [5]. 이러한 연산 병목은 WebGPU의 컴퓨트 셰이더(Compute Shaders)를 활용해 메인 스레드의 작업을 GPU 코어로 병렬 오프로드함으로써 해결할 수 있습니다 [5, 11]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Draw Call]], [[InstancedMesh]], [[Frustum Culling]] +- **Projects/Contexts:** [[Three.js]], [[WebGL]], [[WebGPU]] +- **Contradictions/Notes:** `InstancedMesh` 기술은 수천 개의 객체를 단 한 번의 드로우 콜로 처리하여 CPU 병목을 획기적으로 해결하는 기술로 알려져 있습니다 [6, 12]. 그러나 이 방식은 개별 객체의 컬링이나 정렬 같은 내부 최적화를 지원하지 않으므로, 이를 극복하기 위해 CPU 단에서 수동으로 위치를 검사하고 버퍼를 재정렬하는 로직을 추가할 경우 오히려 이전보다 더 극심한 CPU 연산 병목이 발생하는 역설적인 상황이 빈번하게 발생합니다 [4, 9]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/CPU Bottleneck.md]] +--- diff --git a/Graphics & Performance/CPU Overhead.md b/Graphics & Performance/CPU Overhead.md new file mode 100644 index 00000000..a641cf9f --- /dev/null +++ b/Graphics & Performance/CPU Overhead.md @@ -0,0 +1,37 @@ +--- +id: P-REINFORCE-AUTO-38FA31 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - CPU Overhead" +--- + +# [[CPU Overhead]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> CPU 오버헤드(CPU Overhead)는 웹 그래픽 렌더링 및 브라우저 실행 중에 중앙 처리 장치(CPU)에 가해지는 계산 부담 및 처리 지연을 의미합니다 [1, 2]. WebGL과 같은 기존 API에서는 단일 스레드 기반의 명령 제출과 JavaScript 실행이 CPU 병목 현상을 일으켜 GPU가 유휴 상태에 빠지게 만듭니다 [2, 3]. WebGPU와 같은 최신 API는 멀티 스레드 명령 생성과 컴퓨트 셰이더를 통한 연산 오프로딩을 통해 이러한 CPU 오버헤드를 대폭 감소시킵니다 [4, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +* **WebGL에서의 CPU 오버헤드 원인:** + WebGL은 단일 스레드 실행 모델로 작동하여 모든 드로우 콜(Draw call), 상태 변경, 리소스 업로드가 순차적으로 실행되며 메인 스레드를 차단합니다 [2, 3]. 또한 브라우저의 보안 검사, 프로세스 격리를 위한 마샬링(marshalling), 그리고 ANGLE을 통한 API 변환(OpenGL ES를 Direct3D로 변환) 과정은 드로우 콜마다 고정적인 오버헤드를 발생시킵니다 [6, 7]. 이는 결과적으로 GPU가 유휴 상태임에도 CPU가 병목이 되는 현상을 초래합니다 [6, 8]. + +* **성능 및 사용자 환경에 미치는 영향:** + CPU 오버헤드는 프레임 드롭, 미세 지연(Micro-latency) 및 화면 끊김(Stuttering)의 주요 원인이 됩니다 [3, 9, 10]. 예를 들어 3D 가우시안 스플래팅(3DGS)과 같은 데이터 집약적 렌더링에서 수백만 개의 객체를 CPU에서 정렬할 경우, CPU-GPU 간 대규모 버퍼 전송과 동기화 병목 현상이 발생하여 프레임 예산을 초과하게 됩니다 [11, 12]. 특히 모바일 기기에서는 높은 CPU 오버헤드가 과도한 전력 소비와 발열로 이어지며, 이는 곧 열 쓰로틀링(Thermal throttling)에 의한 심각한 성능 저하를 유발합니다 [13-15]. + +* **WebGPU와 구조적 최적화를 통한 해결:** + WebGPU는 멀티 스레드를 통한 렌더링 명령 준비와 명시적이고 정적인 리소스 관리(GPU 리소스 읽기 전용화 등)를 지원하여 CPU 측의 재검증 오버헤드를 획기적으로 줄입니다 [4, 5, 16-18]. 컴퓨트 셰이더를 사용하여 물리 시뮬레이션이나 입자 시스템 같은 연산 논리를 GPU로 오프로딩하면 CPU-GPU 간의 왕복 통신과 JavaScript 실행 지연을 최소화하는 'GPU 주도(GPU-driven)' 렌더링이 가능해집니다 [13, 19]. 또한, 엔진 차원에서는 인스턴싱이나 배칭(Batching)을 통해 절대적인 드로우 콜 횟수를 최소화하는 것이 오버헤드 감소의 핵심입니다 [8, 20]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGL]], [[WebGPU]], [[Draw Calls]], [[Micro-latency]], [[Compute Shaders]] +- **Projects/Contexts:** [[3D Gaussian Splatting (3DGS)]], [[WebSplatter]], [[ANGLE]] +- **Contradictions/Notes:** 제공된 소스들 사이에서 명백한 모순은 발견되지 않습니다. 모든 소스가 WebGL의 단일 스레드 아키텍처가 야기하는 CPU 병목 현상을 WebGPU의 멀티 스레드 도입 및 명시적 리소스 관리로 극복한다는 공통된 기술적 진화를 설명하고 있습니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/CPU Overhead.md]] +--- diff --git a/Graphics & Performance/Cel-Shading-Techniques.md b/Graphics & Performance/Cel-Shading-Techniques.md new file mode 100644 index 00000000..838bf8df --- /dev/null +++ b/Graphics & Performance/Cel-Shading-Techniques.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6E2113 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Cel-Shading-Techniques" +--- + +# [[Cel-Shading-Techniques]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Cel-Shading-Techniques.md]] +--- diff --git a/Graphics & Performance/Cellular Automata.md b/Graphics & Performance/Cellular Automata.md new file mode 100644 index 00000000..5765d0e0 --- /dev/null +++ b/Graphics & Performance/Cellular Automata.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5EDE2E +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Cellular Automata" +--- + +# [[Cellular Automata]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Cellular Automata.md]] +--- diff --git a/Graphics & Performance/Cesium.md b/Graphics & Performance/Cesium.md new file mode 100644 index 00000000..39c672d8 --- /dev/null +++ b/Graphics & Performance/Cesium.md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-8A58ED +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Cesium" +--- + +# [[Cesium]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 소스에 관련 정보가 부족합니다. 제공된 문서에서 Cesium은 3D 렌더링 중 메쉬 배칭(Mesh batching) 기능인 `Batched3DModel`을 지원하는 환경으로 매우 짧게 언급되며, 주로 Three.js의 `BatchedMesh` 성능과 비교하기 위한 대조군으로 등장합니다 [1, 2]. + +## 📖 구조화된 지식 (Synthesized Content) +소스에 관련 정보가 부족합니다. + +문서에 등장하는 Cesium과 관련된 단편적인 정보는 다음과 같습니다: +* **Batched3DModel 렌더링**: Cesium은 3D 모델을 처리할 때 `Batched3DModel`을 사용하여 메쉬 배칭(Mesh Batching)을 수행합니다 [1, 2]. +* **Three.js와의 성능 대조**: 한 사용자의 경험에 따르면, 1,200만 개의 삼각형과 1,600만 개의 정점으로 이루어진 대규모 모델을 렌더링할 때 Three.js의 `BatchedMesh`에서는 극심한 CPU 성능 소모 이슈가 발생했으나, Cesium에서 렌더링할 때는 그러한 문제가 발생하지 않았습니다 [1, 2]. 사용자는 두 시스템의 메쉬 배칭 구조가 상당히 유사할 것으로 추측하고 있습니다 [1, 2]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Batched3DModel]], [[BatchedMesh]] +- **Projects/Contexts:** [[Three.js BatchedMesh 성능 이슈 비교]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. 작성자는 Cesium의 배칭과 Three.js의 `BatchedMesh`가 매우 유사할 것이라고 추측하지만 [1, 2], 실제로 두 기술 간의 구체적인 아키텍처 차이나 성능 차이의 근본적 원인을 설명하는 기술적 정보는 소스에 존재하지 않습니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Cesium.md]] +--- diff --git a/Graphics & Performance/Chrome (Blink_Dawn).md b/Graphics & Performance/Chrome (Blink_Dawn).md new file mode 100644 index 00000000..8974db94 --- /dev/null +++ b/Graphics & Performance/Chrome (Blink_Dawn).md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-3115F7 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Chrome (Blink_Dawn)" +--- + +# [[Chrome (Blink_Dawn)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Chrome(Blink/Dawn)은 구글 크롬 브라우저의 핵심 엔진인 Blink와 WebGPU 백엔드인 Dawn을 지칭합니다 [1, 2]. 이들은 웹 환경에서 고성능 그래픽 및 연산 파이프라인을 처리하는 동시에, Spectre 및 Meltdown과 같은 보안 취약점을 방지하기 위해 정밀 타이머 접근을 제한하는 보안 메커니즘을 구현하고 있습니다 [1, 2]. 또한 개발자가 웹 애플리케이션의 성능 병목 현상을 식별할 수 있도록 심층적인 프로세스 트레이싱 및 프로파일링 환경을 제공합니다 [3-5]. + +## 📖 구조화된 지식 (Synthesized Content) +- **WebGPU 백엔드(Dawn)와 타임스탬프 양자화:** Dawn은 Chrome의 WebGPU 백엔드로 작동하며, 타이밍 기반의 정보 유출(timing-based information leaks)을 막기 위해 '타임스탬프 양자화(timestamp quantization)' 기능을 구현하고 있습니다 [1]. 이 기능은 쿼리의 해상도를 100 마이크로초 단위 등으로 의도적으로 낮추어 제공하며, 격리된 컨텍스트(isolated contexts)에 한해 이 해상도로 노출됩니다 [1, 6]. Dawn에는 "timestamp_quantization"이라는 디바이스 토글이 존재하며 이는 기본적으로 활성화되어 있습니다 [7]. 다만, 성능 프로파일링이 필요한 개발자의 경우 로컬 환경에서 "WebGPU Developer Features" 플래그를 활성화하여 이러한 양자화 제한을 우회할 수 있습니다 [1, 7]. +- **렌더링 엔진(Blink)의 보안 아키텍처 재설계:** Spectre와 Meltdown 취약점이 발견된 이후, 웹 타이밍 보안에 대한 근본적인 재설계가 이루어졌습니다 [2]. 이에 따라 Chrome의 Blink 엔진은 타이머 정밀도를 감소시키고 분기 없는(branchless) 보안 검사를 구현하는 형태의 2단계 방어 체계로 전환하여 공격자가 캐시 사이드 채널 공격을 위해 필요한 서브-마이크로초 단위의 타이밍 차이를 관찰하지 못하도록 조치했습니다 [2, 8]. +- **다중 프로세스 아키텍처 및 프로파일링:** Chrome의 `about:tracing` 도구를 사용하면 브라우저 내부의 다중 프로세스 아키텍처를 상세하게 검사할 수 있습니다 [3]. 특히 JavaScript가 실행되는 렌더러 프로세스인 "CrRendererMain" 스레드와 드라이버 인터페이스가 위치한 GPU 프로세스인 "CrGpuMain" 스레드 간의 통신과 부하를 분석하는 데 유용합니다 [3, 4, 9]. 엔지니어는 트레이스를 분석하여 "CrRendererMain"은 비어있으나 "CrGpuMain"이 계속 활성화되어 있는 것을 보고 시스템이 GPU 바운드(GPU bound) 상태인지 등을 정확히 파악할 수 있습니다 [4, 10, 11]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGPU]], [[Timestamp Queries]], [[Spectre and Meltdown]] +- **Projects/Contexts:** [[Chrome DevTools]], [[about:tracing]] +- **Contradictions/Notes:** 타임스탬프 쿼리 해상도와 관련하여 초기에는 격리된 컨텍스트(isolated contexts) 여부에 따라 다르게 노출되는 방안이 논의되었으나, 향후 W3C의 High Resolution Time 사양과 일치시켜 사이트 격리 여부와 관계없이 100 마이크로초(100us) 해상도를 허용하는 방향으로 GPU for the Web Community Group에서 합의를 이루었습니다 [6, 12, 13]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Chrome (Blink_Dawn).md]] +--- diff --git a/Graphics & Performance/Chrome WebGPU 구현.md b/Graphics & Performance/Chrome WebGPU 구현.md new file mode 100644 index 00000000..eca2fc5f --- /dev/null +++ b/Graphics & Performance/Chrome WebGPU 구현.md @@ -0,0 +1,37 @@ +--- +id: P-REINFORCE-AUTO-7CCB76 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Chrome WebGPU 구현" +--- + +# [[Chrome WebGPU 구현]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Chrome은 113 버전부터 WebGPU를 기본으로 활성화하여 차세대 웹 그래픽스 및 컴퓨팅 API를 지원하기 시작했습니다 [1, 2]. Chrome의 WebGPU 구현체는 'Dawn'이라는 백엔드와 'Tint' 셰이더 컴파일러를 기반으로 작동하며, 성능 향상과 보안 강화를 위한 다양한 기능(예: 16비트 부동소수점 지원, 타임스탬프 양자화 등)을 지속적으로 업데이트하고 있습니다 [3-5]. 초기 데스크톱 지원을 시작으로 현재는 Android 환경까지 지원을 확장하여 이식성 높고 강력한 GPU 가속 환경을 제공합니다 [6]. + +## 📖 구조화된 지식 (Synthesized Content) +* **Dawn 백엔드 및 구조:** + Chrome의 WebGPU 구현은 자체 백엔드 엔진인 'Dawn'과 셰이더 컴파일을 담당하는 'Tint'를 중심으로 구축되었습니다 [3, 7]. Chromium 프로젝트는 WebGPU 및 WGSL의 적합성 테스트(CTS)를 정기적으로 통합하여 이들 컴포넌트의 안정성과 스펙 준수 여부를 검증하고 있습니다 [3]. +* **성능 최적화 및 WGSL 확장:** + Chrome 120부터는 WGSL(WebGPU Shading Language)에서 16비트 부동소수점(`f16`) 타입을 지원합니다 [4]. 이는 32비트(`f32`) 타입 대비 메모리 사용량을 크게 줄여주어, WebLLM과 같은 대용량 머신러닝 모델을 브라우저에서 실행할 때 사전 채우기(prefill) 속도 28%, 디코딩 속도 41% 향상 등 극적인 성능 개선을 제공합니다 [4]. 더불어 `maxColorAttachmentBytesPerSample`, `maxStorageBuffersPerShaderStage` 등 파이프라인 리소스의 최대 제한(Limits)을 확장하여 더욱 복잡한 렌더링을 수용할 수 있도록 하였습니다 [8, 9]. +* **보안과 타임스탬프 쿼리(Timestamp Queries) 구현:** + GPU 명령의 실행 시간을 나노초 단위로 정밀 측정할 수 있는 타임스탬프 쿼리 기능이 구현되었습니다 [10]. 그러나 고해상도 타이머를 악용한 부채널 공격(예: Spectre)을 방지하기 위해, Chrome은 해당 타이밍 데이터의 해상도를 100마이크로초(100us) 단위로 강제 양자화(Quantization)하여 노출합니다 [5, 11, 12]. 성능 프로파일링이 필요한 개발자의 경우, `chrome://flags`에서 `enable-webgpu-developer-features` 및 `enable-unsafe-webgpu` 플래그를 활성화하여 이 양자화 조치를 끄고 정밀 측정을 수행할 수 있습니다 [7, 13]. +* **플랫폼 지원 확대:** + Chrome 121 버전부터는 Android 기기에서의 WebGPU 지원이 공식 추가되었으며, Windows 시스템에서는 셰이더 컴파일러를 기존 FXC에서 더 효율적인 DXC로 교체하여 컴파일 성능을 최적화했습니다 [6]. 이후로도 서브그룹(Subgroups) 기능 실험, 다중 간접 그리기(multi-draw indirect), HDR 톤 매핑 지원 등 매 버전마다 지속적으로 GPU 기능이 추가되고 있습니다 [6, 14-16]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Dawn]], [[WGSL]], [[타임스탬프 쿼리 (Timestamp Queries)]], [[f16 부동소수점]] +- **Projects/Contexts:** [[Chromium]], [[GPU for the Web Community Group]] +- **Contradictions/Notes:** 소스에 따르면 WebGPU 타임스탬프 쿼리의 노출 정책에 대한 변화가 있었습니다. 초기에는 보안 문제로 인해 "사이트 격리(Site isolation)가 된 컨텍스트에서만 100마이크로초로 노출하고 비격리 상태에서는 아예 노출하지 않는 방안"이 크롬 팀에 의해 제안되었습니다 [12]. 그러나 플랫폼 간의 상호 운용성(Interop) 문제를 지적하는 의견에 따라, 최종적으로는 격리 여부와 관계없이 고해상도 시간(hr-time) 스펙에 맞춰 일괄적으로 100마이크로초 해상도로 노출하는 것으로 합의되었습니다 [17, 18]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Chrome WebGPU 구현.md]] +--- diff --git a/Graphics & Performance/Chrome _ Blink WebGPU Implementation.md b/Graphics & Performance/Chrome _ Blink WebGPU Implementation.md new file mode 100644 index 00000000..ca5ae050 --- /dev/null +++ b/Graphics & Performance/Chrome _ Blink WebGPU Implementation.md @@ -0,0 +1,43 @@ +--- +id: P-REINFORCE-AUTO-4FF4D6 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Chrome _ Blink WebGPU Implementation" +--- + +# [[Chrome _ Blink WebGPU Implementation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Chrome과 Blink 엔진에서 WebGPU를 구현한 방식은 현대적인 GPU 파이프라인의 이점을 웹에 제공하면서도 하드웨어 보안을 유지하도록 설계되었습니다. 특히 타이밍 공격을 방지하기 위해 타임스탬프 쿼리에 양자화(Quantization)를 적용하여 해상도를 제한합니다. Chrome 백엔드 엔진인 Dawn을 기반으로 구동되며, 지속적인 업데이트(예: Chrome 120)를 통해 16비트 부동소수점 지원 및 GPU 리소스 할당 한계를 확장하여 성능과 개발자 경험을 향상시키고 있습니다. + +## 📖 구조화된 지식 (Synthesized Content) +* **Dawn 백엔드와 타임스탬프 양자화(Timestamp Quantization):** + Chrome의 WebGPU 백엔드인 Dawn과 Blink 엔진은 `timestamp-query`와 `GPUQuerySet`을 통해 연산 및 렌더링 패스 경계에서 나노초 단위의 정밀한 타이밍 측정이 가능한 API를 구현했습니다 [1, 2]. 그러나 Spectre 및 Meltdown과 같은 타이밍 기반의 사이드 채널 공격(Side-channel attacks)을 방지하기 위해, 브라우저 구현체는 타임스탬프 양자화를 강제하여 타이머의 해상도를 100 마이크로초 단위로 낮추어(Coarsening) 제공합니다 [1, 3-5]. + +* **사이트 격리(Site Isolation) 정책 변경:** + 타임스탬프 쿼리의 노출은 초기에는 사이트 격리 환경(Isolated contexts)에서는 100 마이크로초로 제한하고 비격리 환경에서는 아예 노출하지 않는 방향으로 제안되었습니다 [5]. 그러나 최종적으로 GPU for the Web Community Group의 합의를 거쳐, 사이트 격리 여부와 무관하게 `hr-time`의 해상도에 맞춰 항상 100 마이크로초 단위로 타임스탬프를 허용하는 것으로 변경 및 적용되었습니다 [6-8]. + +* **개발자 환경에서의 보안 우회:** + 성능 프로파일링을 위해 로컬 환경에서 정확한 나노초 단위의 타이밍 측정이 필요한 개발자는 `chrome://flags/#enable-webgpu-developer-features` 및 `chrome://flags/#enable-unsafe-webgpu` 플래그를 활성화하여 타임스탬프 양자화를 비활성화할 수 있습니다 [3, 9]. 이 경우 Dawn 내부의 `timestamp_quantization` 디바이스 토글이 해제된 상태로 WebGPU 디바이스가 요청됩니다 [9]. + +* **WGSL 기능 확장 및 리소스 제한 상향 (Chrome 120 기준):** + Chrome 120 업데이트부터 WebGPU 구현은 WGSL(WebGPU Shading Language)에서 16비트 부동소수점 값(`f16`)을 지원하기 시작했습니다. 이는 기존 `f32` 대비 메모리 사용량을 줄여 대규모 데이터를 처리하는 머신러닝(LLM 등) 구동 시 로딩 및 디코딩 속도를 대폭 향상시킵니다 [10, 11]. 이 외에도 `maxColorAttachmentBytesPerSample`을 최대 64바이트로 상향하고, `maxStorageBuffersPerShaderStage`를 최대 10개까지, `maxBindGroupsPlusVertexBuffers`의 기본값을 24로 늘리는 등 하드웨어 리소스의 한계를 확장했습니다 [12, 13]. + +* **상태 관리 및 어댑터 정보 간소화:** + 개발자 편의를 위해 `depthWriteEnabled`와 `depthCompare`와 같은 Depth-stencil 상태 속성이 항상 필수로 요구되지 않도록 동작이 개선되었습니다 [14]. 또한 `requestAdapterInfo()`를 호출할 때 "discrete GPU", "integrated GPU" 같은 디바이스 타입과 "D3D12", "metal", "vulkan" 등 백엔드 API에 대한 세부적인 정보를 조회할 수 있는 기능이 추가되었습니다 [14]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGPU Timestamp Queries]], [[Dawn]], [[Spectre and Meltdown]], [[WGSL]] +- **Projects/Contexts:** [[Chrome 120 WebGPU Updates]] +- **Contradictions/Notes:** 소스에 따르면, 타임스탬프 노출에 대한 초기 제안은 보안을 이유로 비격리 컨텍스트에서는 타임스탬프를 전혀 제공하지 않는 것이었으나 [5], 이후 상호 운용성(Interop) 문제를 해결하기 위해 GPU for the Web 커뮤니티 그룹의 합의를 거쳐 컨텍스트의 격리 여부와 상관없이 100 마이크로초 단위로 값을 제공하는 것으로 정책이 수정되었습니다 [6]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Chrome _ Blink WebGPU Implementation.md]] +--- diff --git a/Graphics & Performance/Chrome.md b/Graphics & Performance/Chrome.md new file mode 100644 index 00000000..d7496f2d --- /dev/null +++ b/Graphics & Performance/Chrome.md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-5D281C +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Chrome" +--- + +# [[Chrome]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Chrome은 웹 성능 표준과 최신 웹 그래픽 기술을 주도하는 Google의 웹 브라우저이다 [1, 2]. 강력한 개발자 도구인 Chrome DevTools를 제공하여 애플리케이션의 런타임 및 로드 성능을 심층적으로 분석할 수 있게 하며, WebGL 및 WebGPU와 같은 차세대 그래픽 API를 적극적으로 지원한다 [3, 4]. 또한 Chrome 사용자 환경 보고서(CrUX)를 통해 실제 사용자의 성능 데이터를 수집하여 Core Web Vitals를 측정하는 핵심적인 역할을 담당한다 [5, 6]. + +## 📖 구조화된 지식 (Synthesized Content) +- **웹 성능 측정 및 Core Web Vitals**: Chrome은 LCP, CLS, INP(기존 FID 대체)와 같은 Core Web Vitals 지표를 브라우저 단에서 직접 측정하며, 이를 Chrome UX Report (CrUX)를 통해 필드 데이터로 수집한다 [5-7]. 최근에는 교차 출처 이미지에 대한 LCP 측정 방식이나 텍스트 강조 시의 INP 처리 방식 등 지표의 정확도를 높이기 위해 측정 방식을 지속적으로 업데이트하고 있다 [8-10]. +- **Chrome DevTools 및 프로파일링**: Chrome DevTools의 Performance 패널을 통해 런타임 성능, CPU 및 네트워크 스로틀링(Throttling), 메인 스레드의 Flame chart 등을 분석할 수 있다 [11-13]. Chrome 129 버전부터는 Performance 탭에서 CrUX 필드 데이터와 로컬 데이터를 실시간으로 비교하는 Live metrics 기능이 추가되었다 [14, 15]. 또한 `about:tracing` 도구를 제공하여 `CrGpuMain`, `CrRendererMain` 등 CPU와 GPU의 저수준 활동을 나노초 단위로 정밀하게 프로파일링할 수 있다 [16-18]. +- **차세대 그래픽 기술 (WebGPU 및 WebGL) 지원**: Chrome은 113 버전부터 WebGPU를 기본적으로 지원하기 시작했으며 [2], Dawn이라는 WebGPU 백엔드를 사용한다 [19]. Chrome 120~146 버전에 걸쳐 WGSL의 16비트 부동소수점(`f16`) 지원, subgroup 기능, 호환성 모드(Compatibility mode) 등 WebGPU의 기능을 지속적으로 확장하고 있다 [20-22]. +- **보안 및 타이밍 제어**: Spectre 및 Meltdown과 같은 보안 취약점에 대응하기 위해, Chrome은 `performance.now()` 및 WebGPU 타임스탬프 쿼리의 정밀도를 제한(Quantization)한다 [19, 23, 24]. 교차 출처 격리(Cross-origin isolated) 상태에 따라 100 마이크로초 단위로 해상도를 낮추며, 개발자 플래그(`chrome://flags/`)를 통해서만 제한을 해제할 수 있도록 보안과 디버깅의 균형을 맞추고 있다 [19, 24, 25]. +- **실험적 기능 (Origin Trials) 및 AI 도입**: 웹 페이지가 전환될 때의 소프트 내비게이션(Soft navigations) 성능을 측정하기 위한 API 실험을 진행 중이며 [26], Speculation rules를 통해 미래의 내비게이션에 필요한 리소스를 미리 렌더링하는 기능도 지원한다 [10, 27]. 더 나아가 DevTools 내에 AI 디버깅 기능과 Model Context Protocol (MCP) 서버를 도입하여 성능 데이터를 기반으로 코드 변경을 자동화하는 실험도 제공하고 있다 [28, 29]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Chrome DevTools]], [[WebGPU]], [[Core Web Vitals]], [[CrUX]], [[WebGL]] +- **Projects/Contexts:** [[Interop 2025]], [[Baseline Project]] +- **Contradictions/Notes:** 타이밍 공격(Spectre 등) 보안 문제로 인해 WebGPU의 타임스탬프 쿼리나 `EXT_disjoint_timer_query`의 해상도를 하드웨어 성능 그대로 제공하지 못하고, Chrome 자체적으로 사이트 격리 상태에 따라 정밀도를 의도적으로 낮추어(Quantization) 노출해야만 하는 한계가 존재한다 [19, 23, 24]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Chrome.md]] +--- diff --git a/Graphics & Performance/Chromium WebGPU Implementation.md b/Graphics & Performance/Chromium WebGPU Implementation.md new file mode 100644 index 00000000..3c1c1100 --- /dev/null +++ b/Graphics & Performance/Chromium WebGPU Implementation.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-7025AF +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Chromium WebGPU Implementation" +--- + +# [[Chromium WebGPU Implementation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Chromium의 WebGPU 구현은 **Dawn**이라는 백엔드를 기반으로 하는 차세대 웹 그래픽 및 컴퓨팅 API입니다 [1, 2]. 보안 이슈를 방지하기 위한 타임스탬프 양자화(Timestamp Quantization)와 같은 세밀한 기능이 구현되어 있으며, 싱글 스레드 기반인 WebGL의 한계를 넘어 멀티 스레드 명령 생성과 강력한 컴퓨트 셰이더 기능을 통해 브라우저 내에서 고성능 그래픽과 병렬 연산을 지원합니다 [1, 3, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +* **Dawn 백엔드 및 구조:** Chromium에서 WebGPU API를 구동하는 내부 백엔드 엔진의 이름은 Dawn입니다 [1, 2]. 이 구현체는 WebGL의 기존 싱글 스레드 명령 제출 모델에서 벗어나, 여러 스레드에서 동시에 렌더링 명령을 준비(Multi-Threaded Command Generation)할 수 있도록 설계되어 CPU 오버헤드를 대폭 줄이고 GPU 활용도를 극대화합니다 [3]. +* **보안 및 타임스탬프 양자화 (Timestamp Quantization):** 고정밀 타이머를 악용한 캐시 사이드 채널 공격(예: Spectre 및 Meltdown)을 방지하기 위해, Blink 및 Dawn 구현체는 타임스탬프 쿼리 결과의 해상도를 100 마이크로초(µs)로 양자화(Coarsening)하여 제공합니다 [1, 5, 6]. Chrome은 초기에는 보안을 위해 격리되지 않은 컨텍스트(non-isolated contexts)에서 이를 완전히 비활성화하려 했으나, 최종적으로 웹 표준 상호 운용성을 고려해 격리 여부와 무관하게 100µs 해상도를 제공하는 것으로 합의되었습니다 [5-7]. 단, 로컬 개발 환경에서 정밀한 성능 프로파일링이 필요할 때는 `chrome://flags`에서 "WebGPU Developer Features" 및 "Unsafe WebGPU Support" 플래그를 켜서 이 양자화를 비활성화할 수 있습니다 [1, 2]. +* **버전별 주요 진화 과정:** Chrome 113 버전에서 WebGPU가 최초로 기본 활성화된 이후, Chromium 팀은 렌더링 및 머신러닝 기능 확장을 지속해 왔습니다 [8, 9]. 예를 들어, Chrome 120에서는 WGSL 내 16비트 부동소수점(`f16`) 지원을 추가하여 Llama2 모델과 같은 LLM 추론 속도를 비약적으로 향상시켰습니다 [10]. 이후 버전들에서는 서브그룹(Subgroup) 연산 확장, 3D 텍스처 포맷 지원, OpenGL ES 3.1 호환성 모드 등 다양한 GPU 메모리 및 파이프라인 한도(limits)를 상향 조정해나가고 있습니다 [11-14]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGPU]], [[Dawn]], [[Timestamp Quantization]], [[WGSL]] +- **Projects/Contexts:** [[Chromium Project]], [[GPU for the Web Community Group]] +- **Contradictions/Notes:** 타임스탬프 쿼리 기능 노출과 관련하여, 초기 Chromium(Blink) 인텐트는 Cross-Origin 격리되지 않은 컨텍스트에서 타임스탬프 쿼리를 완전히 비활성화할 계획을 세웠으나(보안 우려), 다른 브라우저 벤더 및 W3C 그룹과의 상호 운용성 논의를 거쳐 격리 여부와 무관하게 hr-time과 동일한 100µs 단위로 노출하는 방향으로 스펙 및 구현 방침이 변경되었습니다 [5-7]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Chromium WebGPU Implementation.md]] +--- diff --git a/Graphics & Performance/Cognitive Load Theory.md b/Graphics & Performance/Cognitive Load Theory.md new file mode 100644 index 00000000..ecd3a5f1 --- /dev/null +++ b/Graphics & Performance/Cognitive Load Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-29F633 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Cognitive Load Theory" +--- + +# [[Cognitive Load Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Cognitive Load Theory.md]] +--- diff --git a/Graphics & Performance/Cognitive-Load-Theory.md b/Graphics & Performance/Cognitive-Load-Theory.md new file mode 100644 index 00000000..ff8f722c --- /dev/null +++ b/Graphics & Performance/Cognitive-Load-Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B1006C +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Cognitive-Load-Theory" +--- + +# [[Cognitive-Load-Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Cognitive-Load-Theory.md]] +--- diff --git a/Graphics & Performance/Collaborative Learning Environments.md b/Graphics & Performance/Collaborative Learning Environments.md new file mode 100644 index 00000000..fa20385d --- /dev/null +++ b/Graphics & Performance/Collaborative Learning Environments.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-617D95 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Collaborative Learning Environments" +--- + +# [[Collaborative Learning Environments]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Collaborative Learning Environments.md]] +--- diff --git a/Graphics & Performance/Competitive Esports Ecosystems.md b/Graphics & Performance/Competitive Esports Ecosystems.md new file mode 100644 index 00000000..2a410c42 --- /dev/null +++ b/Graphics & Performance/Competitive Esports Ecosystems.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-69DA0B +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Competitive Esports Ecosystems" +--- + +# [[Competitive Esports Ecosystems]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Competitive Esports Ecosystems.md]] +--- diff --git a/Graphics & Performance/Complexity-Theory.md b/Graphics & Performance/Complexity-Theory.md new file mode 100644 index 00000000..bcc84c77 --- /dev/null +++ b/Graphics & Performance/Complexity-Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-F606A9 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Complexity-Theory" +--- + +# [[Complexity-Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Complexity-Theory.md]] +--- diff --git a/Graphics & Performance/Computational Ecology.md b/Graphics & Performance/Computational Ecology.md new file mode 100644 index 00000000..7b0b5354 --- /dev/null +++ b/Graphics & Performance/Computational Ecology.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-563573 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Computational Ecology" +--- + +# [[Computational Ecology]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Computational Ecology.md]] +--- diff --git a/Graphics & Performance/Computational Geometry.md b/Graphics & Performance/Computational Geometry.md new file mode 100644 index 00000000..1948eee8 --- /dev/null +++ b/Graphics & Performance/Computational Geometry.md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AI-053 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.97 +tags: [geometry, computational geometry, 3d, rendering] +last_reinforced: 2026-06-XX +github_commit: "[P-Reinforce] Processed Computational Geometry." +--- + +# [[Computational Geometry]] (계산 기하학) + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 수학적 알고리즘을 사용하여 컴퓨터가 점, 곡선, 다각형 같은 기하학적 객체들 사이의 관계와 공간 구조를 효율적으로 분석하고 조작하는 기술 분야이다. + +## 📖 구조화된 지식 (Synthesized Content) +- **정의:** 수학과 컴퓨터 과학이 만나는 영역으로, 현실 세계의 형태(건축물, 인체 모델, 게임 오브젝트 등)를 디지털로 표현하고 이를 바탕으로 물리적/시각적 시뮬레이션을 수행하는 기반 기술이다. +- **핵심 알고리즘 및 구조:** + 1. **메쉬 데이터 구조:** 3D 객체를 삼각형(Triangle)의 집합으로 근사화하여 저장하고 처리한다. (Vertices, Edges, Faces). + 2. **공간 분할 기법:** 대규모 데이터를 효율적으로 검색하기 위해 공간을 나누는 방법들 (예: Octree, BVH - Bounding Volume Hierarchy). 이는 렌더링의 성능(Culling)에 필수적이다. + 3. **좌표 변환 및 근사화:** 카메라 위치나 오브젝트 이동에 따른 좌표계 변환(Transformation Matrix), 그리고 복잡한 곡선을 단순화하는 과정이 포함된다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 기하학적 모델링은 단순히 형태를 만드는 것을 넘어, 물리 엔진과의 결합을 통해 '물리 법칙'을 시뮬레이션하고 그 결과를 예측하는 데 사용된다. +- **정책 변화:** 최신 트렌드는 하드웨어 가속(GPU)과 연동하여 복잡한 기하학적 계산(예: Ray Tracing)을 실시간으로 처리하는 방향으로 진화하고 있다. + +## 🔗 지식 연결 (Graph) +- Parent: [[Computational Geometry]] +- Related: [[Bounding Volume Hierarchy (BVH)]] , [[Three.js 렌더링 최적화]] , [[Physics-Based-Simulation]] +- Raw Source: [[00_Raw/Computational Geometry.md]] +--- \ No newline at end of file diff --git a/Graphics & Performance/Compute Shader.md b/Graphics & Performance/Compute Shader.md new file mode 100644 index 00000000..d577204b --- /dev/null +++ b/Graphics & Performance/Compute Shader.md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-38086E +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Compute Shader" +--- + +# [[Compute Shader]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 컴퓨트 셰이더(Compute Shader)는 자바스크립트 메인 스레드나 CPU가 처리하던 무거운 연산 작업을 수천 개의 GPU 코어를 활용해 병렬로 처리할 수 있게 해주는 WebGPU의 핵심 기능입니다 [1]. 주로 입자(Particle) 시스템, 물리 연산, 실시간 필터링, 그리고 대규모 객체의 가시성 판별(Culling)과 같은 범용 GPU 연산(GPGPU)에 사용되어, 기존 WebGL 기반 환경의 한계를 뛰어넘는 압도적인 성능 향상을 제공합니다 [1-3]. + +## 📖 구조화된 지식 (Synthesized Content) +* **대규모 데이터 연산 및 성능 향상:** CPU 기반의 입자 시스템은 일반적으로 5만 개 정도에서 성능 병목을 겪지만, WebGPU 컴퓨트 셰이더를 도입하면 이를 수백만 개 단위로 확장할 수 있습니다 [2, 4]. 예를 들어, 1만 개의 입자를 CPU에서 업데이트할 때 30ms가 걸리던 작업을 컴퓨트 셰이더를 사용하면 10만 개의 입자를 2ms 이내에 처리하여 150배 이상의 성능 향상을 얻을 수 있습니다 [5]. +* **주요 활용 분야:** 컴퓨트 셰이더는 충돌 감지(Collision detection), 실시간 조명 계산, 대규모 데이터 필터링, 구조 시뮬레이션 등에 효과적으로 적용됩니다 [1, 4]. 실시간 편집과 거대한 스케일이 필요한 절차적 지형 생성(Procedural terrain generation)도 가능하게 해줍니다 [6]. 또한, 메쉬의 정점 변환을 컴퓨트 단계에서 미리 처리해 버퍼에 저장해두고 여러 렌더 패스에서 재사용하는 '컴퓨트 스키닝(Compute Skinning)' 기법도 지원합니다 [5]. +* **메모리 활용 및 스토리지 텍스처:** 일반적인 텍스처와 달리 컴퓨트 셰이더 환경에서는 '스토리지 텍스처(Storage textures)'를 통해 셰이더 내에서 읽기와 쓰기 작업을 동시에 수행할 수 있으며, 이는 유체 시뮬레이션이나 이미지 처리 등에 필수적입니다 [7, 8]. 더불어 스레드 간 데이터 공유가 필요한 작업에서는 작업 그룹 변수(Workgroup variables)를 사용한 공유 메모리를 활용할 수 있는데, 이는 반복적인 데이터 접근 패턴에서 전역 메모리보다 10~100배 더 빠른 속도를 제공합니다 [6, 9]. +* **GPU 주도 렌더링(GPU-driven Rendering)과 간접 그리기:** 컴퓨트 셰이더는 간접 그리기(Indirect draw)와 결합하여 렌더링 파이프라인의 효율성을 극대화합니다 [9]. CPU가 인스턴스의 위치를 검사하고 그리기 명령을 준비하는 대신, 컴퓨트 셰이더가 직접 시야 포함 여부나 오클루전(가림 현상)을 판별한 뒤 시각적으로 유효한 객체들로만 간접 그리기 버퍼를 채웁니다 [3, 10, 11]. 이 방식을 통해 CPU와 GPU 간의 데이터 전송량을 거의 0으로 수렴하게 만들 수 있습니다 [3]. +* **렌더링 동기화:** 컴퓨트 셰이더가 포함된 씬을 렌더링할 때는 GPU 작업의 적절한 동기화가 필요합니다 [12]. 종속적인 렌더 패스가 시작되기 전에 컴퓨트 패스의 작업이 완전히 완료되도록 보장하기 위해 `renderAsync`와 같은 비동기 렌더링 방식의 사용이 권장됩니다 [12]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGPU]], [[GPU-driven Rendering]], [[Indirect Draw]], [[Frustum Culling]] +- **Projects/Contexts:** 대규모 건설 및 BIM 모델 플랫폼(수백만 개의 컴포넌트 렌더링 최적화) [13, 14], 엑스포 2025 오사카에 전시된 100만 파티클 유체 시뮬레이션 설치물(Hokusai) [15, 16]. +- **Contradictions/Notes:** 컴퓨트 셰이더는 최신 그래픽 API인 WebGPU에서 기본 지원되지만, 구형 WebGL이나 WebGL2 환경에서는 직접적으로 지원되지 않으므로 이를 활용하기 위해서는 반드시 WebGPU 기반의 렌더러 환경을 사용해야 한다는 제약이 있습니다 [3, 17]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Compute Shader.md]] +--- diff --git a/Graphics & Performance/Compute Shaders.md b/Graphics & Performance/Compute Shaders.md new file mode 100644 index 00000000..2f0bc0a9 --- /dev/null +++ b/Graphics & Performance/Compute Shaders.md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-B1DBB3 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Compute Shaders" +--- + +# [[Compute Shaders]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 컴퓨트 셰이더(Compute Shaders)는 WebGPU 환경에서 지원되는 기능으로, CPU의 메인 스레드에서 수행되던 무거운 범용 연산 작업을 GPU로 오프로드하는 핵심 기술입니다 [1, 2]. GPU의 수천 개 코어를 활용한 병렬 처리를 통해 물리 시뮬레이션, 충돌 감지, 대규모 파티클 시스템 등의 작업 성능을 비약적으로 향상시킵니다 [2]. 또한 간접 그리기(Indirect Drawing) 기술과 결합하여 CPU의 개입 없이 가시성을 판별하고 화면을 그리는 완전한 GPU 주도 렌더링(GPU-driven Rendering) 파이프라인을 구축하는 데 사용됩니다 [3, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +* **범용 GPU 연산 및 성능 향상:** 컴퓨트 셰이더는 물리 시뮬레이션, 충돌 감지, 유체 시뮬레이션, 이미지 처리, 대규모 데이터 필터링, 절차적 지형 생성 등 복잡한 연산을 CPU 대신 GPU에서 병렬로 처리합니다 [2, 5-8]. 기존 CPU 기반 파티클 업데이트는 약 5만 개 수준에서 병목이 발생하지만, WebGPU 컴퓨트 셰이더를 활용하면 10만 개의 파티클을 2ms 이내에 업데이트하여 최대 150배의 성능 향상을 내며 수백만 개의 유닛을 처리할 수 있습니다 [9-12]. +* **GPU 주도 렌더링 및 컬링 (GPU-driven Rendering & Culling):** 간접 그리기(Indirect Drawing) 명령과 결합하여 극도로 효율적인 렌더링 파이프라인을 구성합니다 [4, 13]. 컴퓨트 셰이더가 모든 인스턴스에 대해 시야 절두체(Frustum) 및 오클루전(Occlusion) 컬링 판별을 수행하고, 화면에 보이는 객체 정보만 원자적 카운터(Atomic Counter)를 통해 간접 그리기 버퍼에 추가합니다 [3, 4, 14]. 이를 통해 CPU와 GPU 간의 데이터 동기화 지연과 명령 발행 오버헤드가 사실상 0에 수렴하게 됩니다 [4, 15]. +* **데이터 공유 및 메모리 최적화:** 읽기와 쓰기가 모두 가능한 스토리지 텍스처(Storage Textures)를 활용해 GPU 기반 렌더링과 효과 처리를 유연하게 수행합니다 [6, 16]. 또한 스레드 간 데이터 공유가 필요한 경우, 반복 접근 패턴에서 전역 메모리보다 10~100배 더 빠른 작업 그룹 공유 메모리(Workgroup Shared Memory)를 활용할 수 있습니다 [7, 13]. +* **고급 연산 기법 지원:** 컴퓨트 단계에서 메쉬 정점 변환을 처리하고 그 결과를 버퍼에 저장해 불필요한 중복 연산을 제거하는 '컴퓨트 스키닝(Compute Skinning)'이 가능해집니다 [12]. 또한 glTF 모델에 흔히 쓰이는 8비트/16비트 정수 데이터를 32비트 포맷으로 압축 해제하는 작업도 렌더링 파이프라인 외곽에서 효율적으로 수행할 수 있습니다 [12]. +* **동기화 및 파이프라인 제어 베스트 프랙티스:** 연산 의존성이 높은 씬을 Three.js에서 렌더링할 때는 `renderAsync`를 사용하여 렌더 패스가 시작되기 전에 컴퓨트 패스가 완전히 끝나도록 동기화해야 합니다 [17]. 성능 처리량을 극대화하기 위해서는 스테이징 버퍼(Staging Buffers)를 활용한 이중 버퍼링(Double-buffering)을 적용하는 것이 좋으며, 디스패치 사이에 `await mapAsync()`를 호출할 경우 GPU 파이프라인을 멈추게 만들 수 있으므로 지양해야 합니다 [18]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** `[[WebGPU]]`, `[[GPU-driven Rendering]]`, `[[Indirect Drawing]]`, `[[Storage Textures]]`, `[[Frustum Culling]]` +- **Projects/Contexts:** `[[Three.js]]`, `[[Segments.ai]]`, `[[BIM Datasets]]` +- **Contradictions/Notes:** 컴퓨트 셰이더는 엄청난 성능 향상을 제공하지만 구형 API인 WebGL이나 WebGL 2에서는 지원되지 않아 WebGPU 환경이 필수적입니다 [1]. 또한 GPU 최적화를 제대로 다루지 못해 동기화 대기(`await mapAsync()`)를 남용할 경우, 오히려 GPU가 최대 60%의 시간 동안 유휴 상태(Idle)에 빠지는 병목 현상을 유발할 수 있습니다 [18]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Compute Shaders.md]] +--- diff --git a/Graphics & Performance/Computer-Vision-Synthesis.md b/Graphics & Performance/Computer-Vision-Synthesis.md new file mode 100644 index 00000000..59af25e9 --- /dev/null +++ b/Graphics & Performance/Computer-Vision-Synthesis.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-C1EBB8 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Computer-Vision-Synthesis" +--- + +# [[Computer-Vision-Synthesis]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Computer-Vision-Synthesis.md]] +--- diff --git a/Graphics & Performance/Creative Process.md b/Graphics & Performance/Creative Process.md new file mode 100644 index 00000000..8ae7245a --- /dev/null +++ b/Graphics & Performance/Creative Process.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-DF48CA +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Creative Process" +--- + +# [[Creative Process]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Creative Process.md]] +--- diff --git a/Graphics & Performance/Critical-Play.md b/Graphics & Performance/Critical-Play.md new file mode 100644 index 00000000..e42bd858 --- /dev/null +++ b/Graphics & Performance/Critical-Play.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-0C480C +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Critical-Play" +--- + +# [[Critical-Play]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Critical-Play.md]] +--- diff --git a/Graphics & Performance/Cultural-Heritage-Informatics.md b/Graphics & Performance/Cultural-Heritage-Informatics.md new file mode 100644 index 00000000..93a5c5c7 --- /dev/null +++ b/Graphics & Performance/Cultural-Heritage-Informatics.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-90A1AA +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Cultural-Heritage-Informatics" +--- + +# [[Cultural-Heritage-Informatics]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Cultural-Heritage-Informatics.md]] +--- diff --git a/Graphics & Performance/CyArk.md b/Graphics & Performance/CyArk.md new file mode 100644 index 00000000..c7bee9bb --- /dev/null +++ b/Graphics & Performance/CyArk.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-78F905 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - CyArk" +--- + +# [[CyArk]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/CyArk.md]] +--- diff --git a/Graphics & Performance/Cybertext Theory.md b/Graphics & Performance/Cybertext Theory.md new file mode 100644 index 00000000..024f5695 --- /dev/null +++ b/Graphics & Performance/Cybertext Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-896181 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Cybertext Theory" +--- + +# [[Cybertext Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Cybertext Theory.md]] +--- diff --git a/Graphics & Performance/DBpedia.md b/Graphics & Performance/DBpedia.md new file mode 100644 index 00000000..a4e39c25 --- /dev/null +++ b/Graphics & Performance/DBpedia.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-0B4232 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - DBpedia" +--- + +# [[DBpedia]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/DBpedia.md]] +--- diff --git a/Graphics & Performance/Data Array Textures.md b/Graphics & Performance/Data Array Textures.md new file mode 100644 index 00000000..e0b2ef96 --- /dev/null +++ b/Graphics & Performance/Data Array Textures.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-8AF01A +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Data Array Textures" +--- + +# [[Data Array Textures]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Data Array Textures(배열 텍스처)는 셰이더에서 인덱스를 통해 접근할 수 있는 여러 2D 텍스처들의 스택 또는 레이어 구조를 의미합니다 [1, 2]. 이는 여러 이미지를 단일 이미지로 패킹하는 전통적인 텍스처 아틀라스(Texture Atlas)의 문제점들을 해결하는 현대적인 접근 방식입니다 [2]. 특히 다양한 텍스처를 사용하는 여러 객체를 `BatchedMesh`와 결합하여 최소한의 드로우 콜(Draw Call)로 렌더링할 수 있게 해주어 3D 렌더링 성능 최적화에 핵심적인 역할을 합니다 [1, 2]. + +## 📖 구조화된 지식 (Synthesized Content) +- **주요 장점:** 배열 텍스처는 인접한 텍스처가 섞이는 경계 번짐(Edge bleeding) 현상을 제거하고, 네이티브 텍스처 래핑(Wrapping) 및 타일링(Tiling)을 지원하며, 교차 오염 없이 각 레이어별로 올바른 밉맵(Mipmap)을 생성할 수 있습니다 [2]. 또한 복잡한 UV 오프셋 계산이나 아틀라스 패킹 알고리즘이 필요하지 않아 셰이더 코드가 크게 단순화됩니다 [2]. +- **렌더링 성능 및 활용:** `BatchedMesh`와 함께 사용하면 셰이더 분기(Branching) 처리 대신 하드웨어 인덱싱을 직접 사용하여 한 번의 드로우 콜만으로 서로 다른 텍스처를 가진 수많은 객체를 렌더링할 수 있습니다 [2]. 또한 노멀 맵, 러프니스 맵, 메탈니스 맵 등을 TextureArray로 저장하여 객체별로 고유한 질감을 부여하거나 [3], 원거리 객체를 표시하기 위한 빌보드 임포스터(Billboard impostors)의 다각도 뷰를 텍스처 배열로 저장하여 렌더링하는 데에도 활용될 수 있습니다 [4]. +- **구조적 한계 및 단점:** 배열 텍스처 내에 포함되는 모든 텍스처는 반드시 동일한 크기(Dimensions)를 가져야만 합니다 [5]. 다양한 해상도를 섞어 써야 한다면 여러 개의 배열 텍스처를 생성하거나 기존의 텍스처 아틀라스를 사용해야 합니다 [5]. +- **메모리 및 호환성:** 텍스처 아틀라스가 메모리를 더 밀도 있게 패킹할 수 있는 반면, 배열 텍스처는 런타임에 모든 레이어의 메모리를 사전에 할당해야 하는 메모리 오버헤드가 있습니다 [5]. 이 기술은 WebGL2 환경을 요구하지만, 2025년 기준 브라우저 지원이 매우 우수하여 동일한 크기의 텍스처를 다루는 현대 웹 그래픽 프로젝트에서는 전통적 아틀라싱보다 뛰어난 성능을 발휘합니다 [5]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Texture Atlas]], [[BatchedMesh]], [[Draw Calls]], [[WebGL2]] +- **Projects/Contexts:** [[Three.js 성능 최적화]], [[빌보드 임포스터(Billboard Impostors)]] +- **Contradictions/Notes:** 소스에 따르면 Data Array Textures는 텍스처 아틀라스의 단점들을 완벽히 보완하는 현대적 대안이지만, '모든 텍스처의 크기가 같아야 한다'는 엄격한 제약과 '메모리 선할당'의 부담이 존재하므로, 가변적인 크기의 텍스처를 압축하거나 구형 WebGL1 환경을 지원해야 할 때는 여전히 텍스처 아틀라스(Texture Atlas)가 가치 있는 선택지로 남는다고 지적합니다 [5]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Data Array Textures.md]] +--- diff --git a/Graphics & Performance/Digital Sandbox Theory.md b/Graphics & Performance/Digital Sandbox Theory.md new file mode 100644 index 00000000..d022cb94 --- /dev/null +++ b/Graphics & Performance/Digital Sandbox Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A1EFBC +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Digital Sandbox Theory" +--- + +# [[Digital Sandbox Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Digital Sandbox Theory.md]] +--- diff --git a/Graphics & Performance/Digital Twin Visualization.md b/Graphics & Performance/Digital Twin Visualization.md new file mode 100644 index 00000000..fb69fef0 --- /dev/null +++ b/Graphics & Performance/Digital Twin Visualization.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-F0B4B1 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Digital Twin Visualization" +--- + +# [[Digital Twin Visualization]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Digital Twin Visualization.md]] +--- diff --git a/Graphics & Performance/Direct3D.md b/Graphics & Performance/Direct3D.md new file mode 100644 index 00000000..b54b6dba --- /dev/null +++ b/Graphics & Performance/Direct3D.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-D41B4F +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Direct3D" +--- + +# [[Direct3D]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Direct3D(D3D11, D3D12 등 포함)는 주요 네이티브 그래픽스 API로, Windows 환경의 웹 브라우저에서 그래픽 렌더링의 핵심 백엔드 역할을 합니다 [1, 2]. 최신 버전인 Direct3D 12는 Vulkan, Metal과 함께 차세대 웹 그래픽스 표준인 WebGPU의 설계와 아키텍처에 직접적인 영감을 준 현대적인 API입니다 [3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **WebGL 호출 변환 (ANGLE의 활용):** Windows 운영 체제에서 Chrome, Firefox, Opera 등의 웹 브라우저는 ANGLE(Almost Native Graphics Layer Engine)을 사용하여 WebGL(OpenGL ES) 호출을 Direct3D로 변환하여 처리합니다 [1]. (필요에 따라 개발자는 ANGLE을 우회하여 네이티브 OpenGL 구현을 테스트할 수 있습니다 [1]). +- **WebGPU 아키텍처 설계의 기반:** WebGPU는 기존의 노후화된 OpenGL 표준을 기반으로 구축된 WebGL과 달리, 처음부터 최신 GPU 하드웨어를 위해 설계되었습니다 [3]. 이 과정에서 Direct3D 12는 Vulkan, Metal과 같은 여타 최신 API들과 함께 WebGPU가 차용하고 참고한 핵심적인 현대 그래픽스 API로 평가받습니다 [3]. +- **WebGPU 백엔드 어댑터 지원:** WebGPU 환경에서 `requestAdapterInfo()`를 호출하여 확인할 수 있는 백엔드(backend) 속성 값에는 'D3D11'과 'D3D12'가 포함되어 있습니다 [2]. Chrome 115 릴리스에서는 Direct3D 11에 대한 실험적 지원(Experimental support)이 추가되기도 하였습니다 [4]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGL]], [[WebGPU]], [[ANGLE]], [[Vulkan]], [[Metal]] +- **Projects/Contexts:** [[브라우저 그래픽 렌더링 백엔드]], [[Chrome WebGPU 구현]] +- **Contradictions/Notes:** Direct3D 자체의 내부 구조나 깊이 있는 기술적 명세에 대해서는 소스에 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Direct3D.md]] +--- diff --git a/Graphics & Performance/Drama-Management-Systems.md b/Graphics & Performance/Drama-Management-Systems.md new file mode 100644 index 00000000..8f21b4f8 --- /dev/null +++ b/Graphics & Performance/Drama-Management-Systems.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6D19F6 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Drama-Management-Systems" +--- + +# [[Drama-Management-Systems]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Drama-Management-Systems.md]] +--- diff --git a/Graphics & Performance/Draw Call.md b/Graphics & Performance/Draw Call.md new file mode 100644 index 00000000..be333249 --- /dev/null +++ b/Graphics & Performance/Draw Call.md @@ -0,0 +1,39 @@ +--- +id: P-REINFORCE-AUTO-E9A644 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Draw Call" +--- + +# [[Draw Call]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 드로우 콜(Draw Call)은 CPU가 GPU에게 렌더링할 기하학적 구조, 재질 및 렌더링 상태를 전달하며 객체를 화면에 그리도록 지시하는 명령입니다 [1, 2]. 실제 그래픽을 렌더링하는 연산 자체보다, 렌더링을 준비하고 상태를 변경하는 과정에서 발생하는 CPU 오버헤드가 매우 커서 성능 병목의 주된 원인이 됩니다 [3-5]. 따라서 실시간 3D 그래픽 애플리케이션에서는 높은 프레임 속도 유지를 위해 인스턴싱, 배칭, 지오메트리 병합 등의 최적화 기법을 통해 드로우 콜의 횟수를 최소화해야 합니다 [6-9]. + +## 📖 구조화된 지식 (Synthesized Content) +* **드로우 콜의 작동 원리** + 드로우 콜이 발생할 때마다 시스템은 여러 단계를 거칩니다. 첫째, CPU가 변환 행렬, 셰이더 참조, 유니폼(Uniform) 및 정점 버퍼 등을 수집하여 준비합니다 [3]. 둘째, GPU 내에서 셰이더 프로그램 전환, 텍스처 바인딩, 렌더링 상태 구성 등의 렌더링 상태 변경(State Change)이 일어납니다 [3, 5, 10]. 셋째, 시스템 버스를 통해 CPU-GPU 간 통신이 이루어진 후 마지막으로 GPU가 실제 정점을 처리하고 렌더링하게 됩니다 [3]. + +* **드로우 콜 오버헤드와 CPU 병목** + 삼각형이 10개이든 10,000개이든 렌더링을 준비하는 1~3단계의 시간은 거의 동일하게 소모됩니다 [3]. 즉, 화면에 그리는 폴리곤의 개수보다 드로우 콜의 횟수가 성능에 훨씬 더 결정적인 영향을 미칩니다 [11]. 만약 수천 개의 객체를 개별적으로 렌더링한다면 CPU가 명령을 발행하는 속도가 GPU의 렌더링 속도를 따라가지 못해 병목 현상이 발생하고 GPU가 굶주리는(Starve) 상태가 됩니다 [6]. 일반적으로 원활한 60fps 성능을 유지하기 위해서는 프레임당 100회 미만의 드로우 콜을 목표로 하는 것이 좋으며 [11, 12], 기기나 브라우저에 따라 1,000~2,000회를 초과하면 CPU 바운드에 의한 심각한 프레임 저하가 발생합니다 [8]. + +* **주요 드로우 콜 최적화 기법** + * **인스턴싱(Instancing):** 동일한 기하학적 구조와 재질을 공유하는 여러 객체(예: 풀잎, 나무, 입자 등)의 경우, 변환 행렬만 다르게 적용하여 단 한 번의 드로우 콜로 수백~수천 개의 객체를 렌더링할 수 있습니다 (`InstancedMesh` 활용) [7, 13, 14]. + * **배칭(Batching) 및 병합(Merging):** 구조가 다르더라도 동일한 재질을 공유하는 객체들을 묶어 하나의 드로우 콜로 처리하거나(`BatchedMesh`), 아예 움직이지 않는 정적 객체들의 기하학적 구조를 하나로 병합(Geometry Merging)하여 호출 횟수를 획기적으로 줄입니다 [9, 15, 16]. + * **상태 변경 최소화:** 여러 개의 텍스처를 텍스처 아틀라스(Texture Atlases)나 데이터 배열 텍스처(Data Array Textures)로 결합하여, 드로우 콜 중간에 텍스처를 전환하며 발생하는 GPU 렌더링 상태 변경 오버헤드를 방지합니다 [17-19]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Render State]], [[CPU Bottleneck]], [[InstancedMesh]], [[BatchedMesh]], [[Geometry Merging]], [[Texture Atlas]] +- **Projects/Contexts:** [[Three.js]], [[WebGL]], [[WebGPU]], [[Unity]] +- **Contradictions/Notes:** 소스에 따르면, 드로우 콜을 1회로 줄이는 것(`InstancedMesh` 등의 도입)이 무조건 프레임 속도 상승으로 이어지지는 않습니다. 수만 개의 객체가 하나의 드로우 콜로 묶이게 되면 엔진의 시야 절두체 컬링(Frustum Culling) 정밀도가 떨어지거나 투명 객체의 정렬(Sorting) 부재로 인해 막대한 오버드로우(Overdraw)가 발생하여, 결과적으로 CPU 명령은 줄어도 GPU 연산량은 오히려 기하급수적으로 늘어나는 현상이 일어날 수 있습니다 [10, 20-22]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Draw Call.md]] +--- diff --git a/Graphics & Performance/Dual-Track-Agile.md b/Graphics & Performance/Dual-Track-Agile.md new file mode 100644 index 00000000..439a5702 --- /dev/null +++ b/Graphics & Performance/Dual-Track-Agile.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-92B7C5 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Dual-Track-Agile" +--- + +# [[Dual-Track-Agile]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Dual-Track-Agile.md]] +--- diff --git a/Graphics & Performance/Duolingo (Language Learning)] [Fitness Tracking Apps (Strava_Fitbit)] [EdTech Gamification] [FinTech Engagement Strategies.md b/Graphics & Performance/Duolingo (Language Learning)] [Fitness Tracking Apps (Strava_Fitbit)] [EdTech Gamification] [FinTech Engagement Strategies.md new file mode 100644 index 00000000..5525c230 --- /dev/null +++ b/Graphics & Performance/Duolingo (Language Learning)] [Fitness Tracking Apps (Strava_Fitbit)] [EdTech Gamification] [FinTech Engagement Strategies.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-259FF2 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Duolingo (Language Learning)] [Fitness Tracking Apps (Strava_Fitbit)] [EdTech Gamification] [FinTech Engagement Strategies" +--- + +# [[Duolingo (Language Learning)] [Fitness Tracking Apps (Strava_Fitbit)] [EdTech Gamification] [FinTech Engagement Strategies]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Duolingo (Language Learning)], [Fitness Tracking Apps (Strava_Fitbit)], [EdTech Gamification], [FinTech Engagement Strategies.md]] +--- diff --git a/Graphics & Performance/Dynamic Assessment.md b/Graphics & Performance/Dynamic Assessment.md new file mode 100644 index 00000000..991c166d --- /dev/null +++ b/Graphics & Performance/Dynamic Assessment.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-240DDB +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Dynamic Assessment" +--- + +# [[Dynamic Assessment]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Dynamic Assessment.md]] +--- diff --git a/Graphics & Performance/Dynamical Systems Theory.md b/Graphics & Performance/Dynamical Systems Theory.md new file mode 100644 index 00000000..c3fefa76 --- /dev/null +++ b/Graphics & Performance/Dynamical Systems Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9A39F2 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Dynamical Systems Theory" +--- + +# [[Dynamical Systems Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Dynamical Systems Theory.md]] +--- diff --git a/Graphics & Performance/EXT_disjoint_timer_query.md b/Graphics & Performance/EXT_disjoint_timer_query.md new file mode 100644 index 00000000..fe6603f2 --- /dev/null +++ b/Graphics & Performance/EXT_disjoint_timer_query.md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-496C9B +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - EXT_disjoint_timer_query" +--- + +# [[EXT_disjoint_timer_query]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> `EXT_disjoint_timer_query`는 렌더링 파이프라인을 멈추지 않고 GPU에서 실행되는 GL 명령어 세트의 소요 시간을 측정할 수 있게 해주는 WebGL API 확장 기능입니다 [1, 2]. 개발자들은 이를 통해 하드웨어 수준에서 명령어 실행의 시작과 끝을 기록하여 비동기 실행 모델의 미세 지연(Micro-latency)을 정확히 측정할 수 있었습니다 [1, 3]. 그러나 이 고정밀 타이머가 메모리 접근 패턴 관찰 등 부채널 공격(Side-channel attacks)에 악용될 수 있다는 보안상 취약점이 발견되어, 현재 대부분의 브라우저에서 비활성화되거나 정밀도가 크게 제한되었습니다 [3-5]. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Micro-latency]], [[Side-channel attacks]], [[Spectre and Meltdown]], [[Rowhammer attack]] +- **Projects/Contexts:** [[WebGL API]], [[WebGPU Timestamp Queries]] +- **Contradictions/Notes:** 소스 213은 Chrome이 Site Isolation이 적용된 플랫폼에서 `EXT_disjoint_timer_query`를 노출하여 작동한다고 보고하지만, 소스 380의 사용자는 Rowhammer 공격 방지를 이유로 "모든 브라우저에서 비활성화되어 전혀 작동하지 않는다(it is disabled in all browsers)"고 모순되게 주장합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/EXT_disjoint_timer_query.md]] +--- diff --git a/Graphics & Performance/Ecosystem-Modeling.md b/Graphics & Performance/Ecosystem-Modeling.md new file mode 100644 index 00000000..f0f3c9a0 --- /dev/null +++ b/Graphics & Performance/Ecosystem-Modeling.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6E0EC9 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Ecosystem-Modeling" +--- + +# [[Ecosystem-Modeling]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Ecosystem-Modeling.md]] +--- diff --git a/Graphics & Performance/EdTech (Gamified Learning).md b/Graphics & Performance/EdTech (Gamified Learning).md new file mode 100644 index 00000000..0d0a4236 --- /dev/null +++ b/Graphics & Performance/EdTech (Gamified Learning).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5D4E83 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - EdTech (Gamified Learning)" +--- + +# [[EdTech (Gamified Learning)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/EdTech (Gamified Learning).md]] +--- diff --git a/Graphics & Performance/Educational-Gamification.md b/Graphics & Performance/Educational-Gamification.md new file mode 100644 index 00000000..7ec5f3ca --- /dev/null +++ b/Graphics & Performance/Educational-Gamification.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-8F5AE3 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Educational-Gamification" +--- + +# [[Educational-Gamification]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Educational-Gamification.md]] +--- diff --git a/Graphics & Performance/Embodied Cognition in Virtual Reality.md b/Graphics & Performance/Embodied Cognition in Virtual Reality.md new file mode 100644 index 00000000..928b0d0a --- /dev/null +++ b/Graphics & Performance/Embodied Cognition in Virtual Reality.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-C2E060 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Embodied Cognition in Virtual Reality" +--- + +# [[Embodied Cognition in Virtual Reality]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Embodied Cognition in Virtual Reality.md]] +--- diff --git a/Graphics & Performance/Employee Engagement Systems.md b/Graphics & Performance/Employee Engagement Systems.md new file mode 100644 index 00000000..9e153748 --- /dev/null +++ b/Graphics & Performance/Employee Engagement Systems.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9F0879 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Employee Engagement Systems" +--- + +# [[Employee Engagement Systems]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Employee Engagement Systems.md]] +--- diff --git a/Graphics & Performance/Epidemiological Forecasting.md b/Graphics & Performance/Epidemiological Forecasting.md new file mode 100644 index 00000000..77b625c5 --- /dev/null +++ b/Graphics & Performance/Epidemiological Forecasting.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D5D1FD +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Epidemiological Forecasting" +--- + +# [[Epidemiological Forecasting]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Epidemiological Forecasting.md]] +--- diff --git a/Graphics & Performance/Epidemiological Modeling.md b/Graphics & Performance/Epidemiological Modeling.md new file mode 100644 index 00000000..8bde0fad --- /dev/null +++ b/Graphics & Performance/Epidemiological Modeling.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5B9D2F +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Epidemiological Modeling" +--- + +# [[Epidemiological Modeling]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Epidemiological Modeling.md]] +--- diff --git a/Graphics & Performance/Expressjs-Type-Extensions.md b/Graphics & Performance/Expressjs-Type-Extensions.md new file mode 100644 index 00000000..be49591a --- /dev/null +++ b/Graphics & Performance/Expressjs-Type-Extensions.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-1B7084 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Expressjs-Type-Extensions" +--- + +# [[Expressjs-Type-Extensions]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Express.js-Type-Extensions.md]] +--- diff --git a/Graphics & Performance/FXAA.md b/Graphics & Performance/FXAA.md new file mode 100644 index 00000000..304455ff --- /dev/null +++ b/Graphics & Performance/FXAA.md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-332A17 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - FXAA" +--- + +# [[FXAA]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> FXAA는 실시간 3D 렌더링 환경에서 사용되는 포스트 프로세싱(Post-processing) 안티앨리어싱(Anti-aliasing) 기법입니다. 화면 공간(Screen-space) 셰이더로 실행되어 오브젝트의 가장자리를 부드럽게 만들어 줍니다 [1]. 특히 모바일이나 저사양 기기에서 네이티브 안티앨리어싱을 대체하여 높은 렌더링 프레임 속도를 유지할 수 있도록 하는 매우 성능 효율적인 최적화 기술입니다 [1, 2]. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Anti-aliasing]], [[SMAA]], [[MSAA]], [[Post-Processing]] +- **Projects/Contexts:** [[Three.js]], [[WebGL]] +- **Contradictions/Notes:** 소스 간의 모순점은 없으며, 모든 소스가 공통적으로 무거운 네이티브 안티앨리어싱을 비활성화하고 FXAA를 포스트 프로세싱 후반부에 적용하는 것이 성능 확보에 필수적이라고 일관되게 권장합니다 [1-3]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/FXAA.md]] +--- diff --git a/Graphics & Performance/Fill Rate.md b/Graphics & Performance/Fill Rate.md new file mode 100644 index 00000000..1dac5711 --- /dev/null +++ b/Graphics & Performance/Fill Rate.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-477640 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Fill Rate" +--- + +# [[Fill Rate]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 'Fill Rate'는 그래픽 처리 장치(GPU)의 픽셀 처리 속도 및 성능을 나타내는 지표입니다 [1, 2]. 주로 복잡한 프래그먼트 셰이더(Fragment Shader) 연산이나 겹쳐진 투명한 객체들로 인해 발생하는 오버드로우(Overdraw)에 의해 직접적인 영향을 받으며, 효과적인 렌더링 최적화를 위해서는 CPU의 드로우 콜 병목과 구분하여 관리되어야 합니다 [1-3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **셰이더 복잡도에 따른 성능 저하**: 다수의 텍스처 룩업(Texture lookups), 수학적 연산 및 조건부 논리가 포함된 복잡한 프래그먼트 셰이더는 중급 사양의 GPU 환경에서 Fill Rate를 50~70%가량 크게 감소시킬 수 있습니다 [1]. +- **오버드로우(Overdraw)와 Fill Rate의 비례적 감소**: 투명한 기하학적 구조(예: 투명한 머리카락, 옷 레이어, 액세서리 등)가 겹칠 경우 동일한 픽셀이 한 프레임 내에서 5~10회 반복해서 렌더링되며, 이는 유효 Fill Rate를 그에 비례하여 크게 떨어뜨립니다 [3]. +- **성능 프로파일링에서의 역할**: 실시간 렌더링 최적화 전략을 세울 때는 씬의 병목 현상이 CPU의 명령 발행(Draw Call)에 있는지, 아니면 GPU의 픽셀 처리(Fill Rate/Overdraw) 한계에 있는지를 명확하게 구분해야 합니다 [2]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Overdraw]], [[Fragment Shaders]], [[GPU]] +- **Projects/Contexts:** [[Image-To-3D Models in Three.js]] +- **Contradictions/Notes:** 소스 내에서 Fill Rate와 관련된 상충되는 주장이나 모순은 발견되지 않았습니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Fill Rate.md]] +--- diff --git a/Graphics & Performance/Flow State Theory.md b/Graphics & Performance/Flow State Theory.md new file mode 100644 index 00000000..25b525a4 --- /dev/null +++ b/Graphics & Performance/Flow State Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-546D8F +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Flow State Theory" +--- + +# [[Flow State Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Flow State Theory.md]] +--- diff --git a/Graphics & Performance/Formal-Grammar.md b/Graphics & Performance/Formal-Grammar.md new file mode 100644 index 00000000..4fa3cbbd --- /dev/null +++ b/Graphics & Performance/Formal-Grammar.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-410500 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Formal-Grammar" +--- + +# [[Formal-Grammar]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Formal-Grammar.md]] +--- diff --git a/Graphics & Performance/Formalism-vs-Structuralism.md b/Graphics & Performance/Formalism-vs-Structuralism.md new file mode 100644 index 00000000..cb550c0a --- /dev/null +++ b/Graphics & Performance/Formalism-vs-Structuralism.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-AE318B +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Formalism-vs-Structuralism" +--- + +# [[Formalism-vs-Structuralism]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Formalism-vs-Structuralism.md]] +--- diff --git a/Graphics & Performance/Formalist Game Design.md b/Graphics & Performance/Formalist Game Design.md new file mode 100644 index 00000000..6442e3e0 --- /dev/null +++ b/Graphics & Performance/Formalist Game Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E0F58C +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Formalist Game Design" +--- + +# [[Formalist Game Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Formalist Game Design.md]] +--- diff --git a/Graphics & Performance/Fragment Shading.md b/Graphics & Performance/Fragment Shading.md new file mode 100644 index 00000000..61a98271 --- /dev/null +++ b/Graphics & Performance/Fragment Shading.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-809D81 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Fragment Shading" +--- + +# [[Fragment Shading]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 프래그먼트 셰이딩(Fragment Shading)은 렌더링 파이프라인 후반부에서 픽셀 단위의 렌더링 계산(퍼 픽셀 조명 연산 등)을 수행하여 최종 색상 값을 결정하는 프로세스이다 [1, 2]. 다수의 텍스처 룩업이나 복잡한 연산이 포함될 경우 필 레이트(Fill Rate)를 크게 저하시킬 수 있으며 [2], 동일 픽셀에 여러 번 렌더링 연산이 중첩되는 오버드로우(Overdraw) 현상이 발생할 경우 GPU 성능 병목의 주요 원인이 되기도 한다 [3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **픽셀 단위 연산의 수행:** 프래그먼트 셰이더는 픽셀의 최종 색상 값을 결정하는 픽셀 단위의 계산을 전담한다 [2]. 버텍스 셰이더(Vertex Shader)와 프래그먼트 셰이더 사이에서는 varying 변수를 통해 데이터가 전달되며 [4], 구워진 노멀 맵(baked normal maps) 등을 활용해 복잡한 표면 디테일을 픽셀 셰이딩(pixel shading) 방식으로 렌더링한다 [1]. +- **셰이더 복잡도와 필 레이트(Fill Rate):** 프래그먼트 셰이더 내에서 여러 텍스처를 조회하거나, 수학적 연산 및 조건 논리가 복잡해질 경우 중간 사양의 GPU에서는 필 레이트가 50-70%가량 감소할 수 있다 [2]. 특히 PBR(물리 기반 렌더링) 환경에서는 각 픽셀마다 다수의 텍스처 샘플링(알베도, 노멀, 메탈릭, 러프니스 등) 및 환경 반사 연산을 처리해야 하므로 프래그먼트 처리 시간이 급증하게 된다 [2]. +- **오버드로우(Overdraw)의 영향:** 프래그먼트 셰이딩 단계에서 나타나는 오버드로우는 투명한 기하학적 구조가 겹치거나 깊이 정렬(Depth sorting)이 효율적이지 않아 동일한 픽셀 위치에 렌더링 쓰기 작업이 여러 번 중첩되는 현상이다 [3, 5]. 이는 화면에 보이지 않는 픽셀의 연산에까지 GPU 자원을 낭비하게 만든다 [5]. +- **정렬 부재와 프래그먼트 바운드(Fragment-bound) 현상:** 불투명 객체를 렌더링할 때 객체를 '앞에서 뒤로(Front-to-Back)' 정렬하면 가려진 픽셀 연산을 일찍 종료하는 Early-Z 최적화를 통해 성능을 확보할 수 있다 [3]. 하지만 InstancedMesh처럼 인스턴스들이 정렬되지 않은 상태로 렌더링되는 경우 이 최적화가 불가능해 막대한 오버드로우 비용을 발생시키며, 결과적으로 전체 씬(Scene)의 렌더링이 프래그먼트 연산의 한계에 부딪히는 프래그먼트 바운드 상태에 빠질 수 있다 [3, 6]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Overdraw]], [[Vertex Shader]], [[Fill Rate]], [[PBR]] +- **Projects/Contexts:** [[Three.js WebGL Rendering Optimization]], [[InstancedMesh Performance Bottlenecks]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Fragment Shading.md]] +--- diff --git a/Graphics & Performance/Fragment-bound.md b/Graphics & Performance/Fragment-bound.md new file mode 100644 index 00000000..3f2f612a --- /dev/null +++ b/Graphics & Performance/Fragment-bound.md @@ -0,0 +1,35 @@ +--- +id: P-REINFORCE-AUTO-589695 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Fragment-bound" +--- + +# [[Fragment-bound]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 'Fragment-bound(프래그먼트 바운드)'는 3D 그래픽스 렌더링 파이프라인에서 GPU의 프래그먼트 셰이딩(픽셀 처리) 용량이 한계에 도달하여 전체 시스템의 성능 병목이 되는 상태를 의미합니다 [1, 2]. 이 상태는 주로 객체들이 카메라 기준 깊이(Depth)에 따라 정렬되지 않은 채 렌더링될 때, 동일한 픽셀에 여러 번 그리기 연산이 수행되는 '오버드로우(Overdraw)' 현상으로 인해 촉발됩니다 [1, 2]. 특히 연산 비용이 높은 재질을 사용할 때 이 병목 현상은 더욱 극심해집니다 [2, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **오버드로우(Overdraw)에 의한 연산 과부하:** + 프래그먼트 바운드 상태는 화면의 동일한 픽셀 영역에 대해 셰이더 연산과 쓰기 작업이 여러 번 중첩되어 발생하는 오버드로우에 의해 야기됩니다 [1, 2]. GPU가 최종 화면에 보이지 않고 가려질 픽셀까지 모두 계산하게 되면서 픽셀 처리 성능을 상회하는 부하가 발생합니다 [2]. +- **InstancedMesh의 정렬 부재와 병목:** + Three.js의 `InstancedMesh`는 단일 드로우 콜로 렌더링을 수행하지만 개별 인스턴스들의 렌더링 순서를 자동으로 정렬(Sorting)하지 않습니다 [1, 2]. 만약 카메라와 가장 멀리 있는 인스턴스가 먼저 그려지고 가까운 인스턴스가 나중에 그려진다면 막대한 오버드로우 비용이 발생하게 되며, 이로 인해 씬(Scene)이 프래그먼트 바운드 상태에 빠지게 됩니다 [2]. +- **재질(Material) 복잡도의 영향과 해결책:** + 복잡한 조명 및 그림자 연산이 포함된 `MeshStandardMaterial`과 같은 셰이더를 사용할 경우 프래그먼트 바운드 현상은 훨씬 더 심화됩니다 [2, 3]. 이 문제를 완화하기 위해서는 오버드로우의 비용 자체를 줄일 수 있는 단순한 `MeshBasicMaterial`을 사용하여 비교하거나 [3], 자동으로 인스턴스 정렬을 지원하는 `BatchedMesh`로 전환하여 렌더링 효율을 높이는 것이 대안으로 제시됩니다 [1]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Overdraw]], [[InstancedMesh]], [[MeshStandardMaterial]], [[BatchedMesh]] +- **Projects/Contexts:** [[Three.js 렌더링 성능 최적화]] +- **Contradictions/Notes:** 드로우 콜을 줄여 성능을 향상시키기 위해 고안된 `InstancedMesh`가, 정렬 기능의 부재로 인해 오히려 심각한 오버드로우와 프래그먼트 바운드를 유발하여 일반 `Mesh`를 여러 번 그릴 때보다 프레임 레이트(FPS)를 더 하락시킬 수 있다는 점이 주의사항으로 보고됩니다 [2, 4]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Fragment-bound.md]] +--- diff --git a/Graphics & Performance/Frustum Culling.md b/Graphics & Performance/Frustum Culling.md new file mode 100644 index 00000000..ed6bbc4d --- /dev/null +++ b/Graphics & Performance/Frustum Culling.md @@ -0,0 +1,39 @@ +--- +id: P-REINFORCE-AUTO-7A315B +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Frustum Culling" +--- + +# [[Frustum Culling]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 시야 절두체 컬링(Frustum Culling)은 카메라의 시야(View Frustum) 밖으로 벗어난 객체를 렌더링 연산에서 제외하여 불필요한 GPU 자원 소모를 방지하는 최적화 기법이다 [1]. 하지만 InstancedMesh를 적용할 경우 엔진 수준에서 전체를 단일 객체로 취급하므로, 모든 인스턴스를 포함하는 거대한 바운딩 볼륨을 기준으로 한 번만 컬링이 수행되는 '전부 아니면 전무(All-or-Nothing)' 방식으로 작동한다 [2]. 이로 인해 화면에 극히 일부의 인스턴스만 노출되더라도 보이지 않는 나머지 모든 인스턴스의 정점 변환 연산을 GPU가 강제로 수행해야 하는 구조적 한계를 야기한다 [2]. + +## 📖 구조화된 지식 (Synthesized Content) +- **InstancedMesh에서의 구조적 비효율성** + Three.js는 기본적으로 카메라 시야 밖의 객체를 자동으로 컬링해 드로우 콜 생성을 방지한다 [3]. 그러나 InstancedMesh를 사용하면 개별 인스턴스 단위의 네이티브 시야 절두체 컬링 기능이 상실된다 [4]. 엔진은 전체 인스턴스의 바운딩 볼륨만을 검사하기 때문에, 10,000개의 객체 중 단 1개만 시야에 들어와도 GPU는 9,999개의 보이지 않는 객체에 대한 정점 셰이더(Vertex Shader) 행렬 곱셈 연산을 처리해야 한다 [2]. 이는 특히 저사양 모바일 기기나 통합 GPU 환경에서 치명적인 GPU 점유율 상승 및 프레임 드랍을 유발한다 [2, 5]. + +- **수동 CPU 컬링의 병목 현상** + GPU 낭비를 막기 위해 자바스크립트(CPU) 수준에서 각 인스턴스의 위치를 카메라 평면과 대조하여 가시성을 판단하고 렌더링할 버퍼를 매 프레임 재구성(Reordering)할 수 있다 [5, 6]. 하지만 단일 스레드 특성을 갖는 자바스크립트에서 대규모 배열을 매번 순회하고 조작하는 것은 치명적인 CPU 메인 스레드 병목과 가비지 컬렉션(GC) 부하를 일으킨다 [5]. + +- **한계 극복을 위한 대안 전략** + 1. **공간 분할 기반 그룹화 전략**: 수만 개의 인스턴스를 하나의 거대한 InstancedMesh로 묶는 대신, 공간적으로 인접한 객체들을 100~500개 단위의 소규모 InstancedMesh로 분할 관리하는 방법이다. 이 경우 드로우 콜 횟수는 다소 증가하지만 시야 절두체 컬링 정밀도가 크게 향상되어 GPU의 무의미한 정점 연산을 극적으로 줄일 수 있다 [7]. + 2. **GPU 컴퓨트 컬링 및 간접 그리기(Indirect Draw)**: WebGPU 환경의 컴퓨트 셰이더(Compute Shader)를 활용해 GPU가 직접 인스턴스의 가시성을 판별하도록 처리하는 방식이다 [8, 9]. 판별 결과는 GPU 내부 버퍼에 저장되어 `drawIndirect` 명령으로 즉각 렌더링되므로, CPU 연산 및 CPU-GPU 간 데이터 전송 병목을 완벽히 회피할 수 있다 [9]. + 3. **확장 라이브러리 도입**: BVH(Bounding Volume Hierarchy)를 이용한 고속 공간 쿼리와 `InstancedBufferAttribute`를 활용한 간접 참조(Indirection) 방식을 통해 기존 InstancedMesh를 확장하여 효율적인 개별 컬링을 제공하는 `InstancedMesh2`와 같은 외부 라이브러리 활용이 대안이 될 수 있다 [10-12]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[InstancedMesh]], [[Draw Call]], [[WebGPU]], [[Bounding Volume Hierarchy (BVH)]] +- **Projects/Contexts:** [[Three.js]], [[InstancedMesh2]] +- **Contradictions/Notes:** InstancedMesh 기술은 드로우 콜 감소를 통해 CPU 병목을 획기적으로 해결할 수 있도록 설계되었으나, 동시에 개별 시야 절두체 컬링을 무력화시킴으로써 결과적으로 GPU 측면에 새로운 정점 연산 병목을 유발하는 모순적인 절충(Trade-off)을 요구한다 [5, 13]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Frustum Culling.md]] +--- diff --git a/Graphics & Performance/GPU Resources.md b/Graphics & Performance/GPU Resources.md new file mode 100644 index 00000000..9098529f --- /dev/null +++ b/Graphics & Performance/GPU Resources.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-4AA291 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - GPU Resources" +--- + +# [[GPU Resources]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> GPU 리소스는 Three.js 및 WebGL 환경에서 렌더링을 위해 할당되는 VRAM 자원으로, 기하학적 구조(Geometries), 재질(Materials), 텍스처(Textures), 렌더 타겟(Render targets) 등을 포함합니다 [1-3]. 브라우저 렌더링 엔진은 이러한 리소스들을 자동으로 가비지 컬렉트(Garbage Collect)하지 않기 때문에 사용이 끝나면 개발자가 직접 명시적으로 메모리에서 해제해야 합니다 [1]. 효율적인 GPU 리소스 관리가 이루어지지 않으면 심각한 메모리 누수(Memory Leaks)가 발생하며, 궁극적으로 브라우저의 제한된 GPU 메모리를 초과하여 컨텍스트 손실(Context Lost)과 화면 멈춤 현상을 유발합니다 [3, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +- **GPU 리소스의 구성 및 메모리 소비량:** 3D 모델을 렌더링할 때 GPU 메모리에는 정점 버퍼(Vertex buffers), 인덱스 버퍼(Index buffers), 텍스처 맵, 그리고 셰이더 프로그램 등이 할당됩니다 [3]. 고해상도 텍스처는 막대한 메모리를 차지하여, 단일 4K(4096x4096) 압축 해제 텍스처의 경우 VRAM의 64MB 이상을 단독으로 소비할 수 있습니다 [1, 5]. 추가적으로 후처리(Post-processing) 단계에서 사용되는 개별 렌더 타겟들 또한 프레임 버퍼 메모리를 추가 할당합니다 [2]. +- **명시적인 자원 해제(Disposal) 필수성:** Three.js 프레임워크는 GPU 리소스를 추적하여 자동으로 메모리에서 지워주지 않습니다 [1]. 따라서 메모리 누수를 방지하기 위해서는 에셋이 더 이상 필요하지 않을 때 반드시 `geometry.dispose()`, `material.dispose()`, `texture.dispose()` 함수를 호출해 GPU 자원을 명시적으로 해제해야 합니다 [1, 4, 6]. +- **특수 텍스처 및 빈번한 생성 객체 관리:** GLTF 모델 파일에서 `ImageBitmap` 형태로 로드된 텍스처 리소스의 경우, 기본 폐기 메서드 외에도 명시적으로 `texture.source.data.close?()`를 호출해 닫아주어야만 메모리가 새는 것을 막을 수 있습니다 [4, 7]. 또한 게임 내 탄환이나 파티클처럼 자주 생성되고 파괴되는 리소스의 경우 매번 새로 할당하지 않고 오브젝트 풀링(Object Pooling) 방식을 사용하여 메모리 할당 오버헤드를 막는 것이 좋습니다 [4, 7]. +- **리소스 한계 모니터링:** WebGL 컨텍스트의 가용 메모리 한도는 디바이스 환경에 따라 약 256MB에서 1GB 수준으로 제한적입니다 [3]. 이 용량을 초과해 GPU 리소스가 할당되면 컨텍스트 손실이 발생하여 애플리케이션이 충돌하게 됩니다 [3]. 이를 방지하기 위해서는 런타임 중에 `renderer.info.memory` 상태를 꾸준히 모니터링하여 텍스처나 지오메트리 수가 지속적으로 증가하는 메모리 누수 현상이 없는지 확인해야 합니다 [1, 4]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Memory Management]], [[Memory Leaks]], [[Textures]], [[VRAM]], [[Garbage Collection]] +- **Projects/Contexts:** [[Three.js]], [[WebGL]], [[WebGPU]] +- **Contradictions/Notes:** 소스에 관련 모순이나 충돌 정보는 없습니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/GPU Resources.md]] +--- diff --git a/Graphics & Performance/GPU for the Web Community Group.md b/Graphics & Performance/GPU for the Web Community Group.md new file mode 100644 index 00000000..8bdc6bcc --- /dev/null +++ b/Graphics & Performance/GPU for the Web Community Group.md @@ -0,0 +1,35 @@ +--- +id: P-REINFORCE-AUTO-518388 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - GPU for the Web Community Group" +--- + +# [[GPU for the Web Community Group]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> GPU for the Web Community Group은 Chrome, Firefox, Safari 등 주요 웹 브라우저의 대표자들로 구성되어 WebGPU와 같은 웹 그래픽 및 컴퓨팅 API의 표준과 새로운 기능을 논의하고 승인하는 조직입니다. 이들은 웹 플랫폼의 건전성과 상호 운용성을 위해 구현에 따라 달라지는(implementation-defined) 기능을 피하고, 결정론적이며 테스트 가능한 기능을 표준에 포함시키는 것을 원칙으로 합니다. 최근에는 개발자 도구 및 성능 측정을 위한 WebGPU 타임스탬프 쿼리(timestamp queries) 기능의 도입과 보안을 위한 양자화(quantization) 기준을 합의하는 역할을 수행했습니다. + +## 📖 구조화된 지식 (Synthesized Content) +* **구성원 및 주요 역할:** 이 그룹에는 Chrome, Firefox, Safari 등 주요 브라우저 벤더의 대표자들이 참여하고 있으며, WebGPU 명세에 새로운 기능을 도입할 때 상호 운용성(interoperability)을 확보하기 위한 합의(consensus)를 도출합니다 [1]. +* **표준화 원칙:** 그룹(WebGPU standard body)은 기본적으로 구현이 명확하지 않거나 선택적인(optional) 기능을 피하고, 상호 운용이 가능하며 테스트 스위트(test suite)로 뒷받침되는 결정론적인 기능을 갖추는 것을 목표로 합니다 [2-4]. +* **타임스탬프 쿼리(Timestamp Queries) 승인 사례:** + * WebGPU 애플리케이션의 GPU 명령 실행 시간을 정밀하게 측정하기 위한 타임스탬프 쿼리 기능이 타이밍 공격(timing attack)에 악용될 수 있다는 보안 우려가 있었습니다 [5, 6]. + * 그룹 내 논의를 통해, 사이트 격리(site isolation) 여부와 상관없이 hr-time(High Resolution Time)의 비격리 해상도인 100마이크로초(100us) 수준으로 양자화(coarsen)하여 타임스탬프를 허용하는 제안을 수용 및 승인했습니다 [7]. + * 이를 통해 브라우저 간의 상호 운용성 문제를 해결하고 플랫폼 표준에 맞춘 성능 측정 기능을 제공할 수 있게 되었습니다 [8, 9]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGPU]], [[Timestamp Queries]] +- **Projects/Contexts:** [[WebGPU API Standardization]], [[Chrome Intent to Ship]] +- **Contradictions/Notes:** 그룹은 일반적으로 구현에 따라 달라지거나 결정론적이지 않은 기능을 표준에서 배제하려고 노력하지만, 타임스탬프 쿼리와 같은 기능의 경우 예외적으로 보안(타이밍 공격 방지)과 성능 측정의 필요성 사이에서 양자화라는 타협점을 찾아야만 했습니다 [4]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/GPU for the Web Community Group.md]] +--- diff --git a/Graphics & Performance/GPU-driven Rendering.md b/Graphics & Performance/GPU-driven Rendering.md new file mode 100644 index 00000000..ce1b38a1 --- /dev/null +++ b/Graphics & Performance/GPU-driven Rendering.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-C35A51 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - GPU-driven Rendering" +--- + +# [[GPU-driven Rendering]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> GPU-driven Rendering(GPU 주도 렌더링)은 CPU가 렌더링할 객체를 판별하고 명령하는 대신, GPU가 무엇을 렌더링할지 스스로 결정하는 현대적인 렌더링 파이프라인 기법입니다 [1, 2]. 주로 컴퓨트 셰이더(Compute Shader)를 활용해 객체의 가시성을 GPU 내부에서 직접 평가한 후, 간접 그리기(Indirect Draw) 명령을 통해 화면에 출력합니다 [1, 3]. 이 방식을 사용하면 CPU와 GPU 간의 데이터 전송 및 통신 병목이 제거되어 수백만 개의 인스턴스를 극도로 효율적으로 처리할 수 있습니다 [1, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **가시성 판단의 GPU 이관 (Culling in Compute Shaders):** 기존의 렌더링 파이프라인에서는 CPU가 시야 절두체 컬링(Frustum Culling)이나 가림 현상(Occlusion)을 계산하여 병목이 발생했습니다 [2, 3]. GPU-driven Rendering에서는 이 역할을 GPU의 컴퓨트 셰이더로 넘겨, GPU가 직접 모든 객체와 인스턴스의 가시성을 판별하고 화면에 보일 객체의 렌더링 명령만 생성합니다 [2, 3]. +- **간접 그리기 (Indirect Draws) 활용:** 컴퓨트 셰이더가 가시성 평가를 마치면, 그 결과와 렌더링 명령을 GPU 내부 버퍼에 직접 기록합니다 [2, 3]. 이후 CPU의 개입 없이 `drawIndirect` 명령을 통해 GPU 내부 버퍼의 내용을 기반으로 렌더링을 수행하므로, CPU와 GPU 사이의 데이터 전송량이 거의 '0'에 수렴하게 됩니다 [1, 3]. +- **대규모 인스턴스 및 복잡한 연산 처리:** 이 기법은 매 프레임마다 GPU 수준의 컬링이 필요한 수백만 개의 인스턴스 렌더링에 필수적인 아키텍처입니다 [1]. 또한 읽기와 쓰기가 모두 허용되는 스토리지 텍스처(Storage Textures) 기술과 결합되어 유체 시뮬레이션, 이미지 처리 등 복잡한 환경에서도 핵심적인 역할을 수행합니다 [4]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Compute Shader]], [[Indirect Draw]], [[Frustum Culling]], [[WebGPU]] +- **Projects/Contexts:** [[Three.js]], [[InstancedMesh]] +- **Contradictions/Notes:** 대규모 객체를 렌더링할 때 'CPU 개별 컬링' 방식은 자바스크립트 연산 및 시스템 버스 전송에 막대한 병목을 유발하지만, 'GPU 주도 렌더링(GPU 컴퓨트 컬링)'은 구현 난이도가 매우 높은 대신 CPU 부하를 극도로 낮추고 전체적인 성능을 극대화한다는 뚜렷한 대비를 보입니다 [3, 5]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/GPU-driven Rendering.md]] +--- diff --git a/Graphics & Performance/GPURenderBundles.md b/Graphics & Performance/GPURenderBundles.md new file mode 100644 index 00000000..8be47836 --- /dev/null +++ b/Graphics & Performance/GPURenderBundles.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-BC7FBB +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - GPURenderBundles" +--- + +# [[GPURenderBundles]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> `GPURenderBundles` (렌더 번들)는 Native WebGPU 환경에서 제공되는 강력한 렌더링 최적화 도구입니다 [1]. 초기화 과정에서 파이프라인, 바인드 그룹(bind groups), 드로우 콜(draw calls)과 같은 명령을 미리 기록(pre-record)하고, 이후 렌더 루프에서 단 한 번의 호출로 이를 다시 재생(replay)할 수 있게 해줍니다 [1]. 이 방식을 통해 렌더링 성능에 병목을 일으키는 검증 작업(validation work)을 핵심 렌더링 경로 외부로 분리하여 대규모 객체를 극도로 효율적으로 처리할 수 있습니다 [1, 2]. + +## 📖 구조화된 지식 (Synthesized Content) +- **사전 기록을 통한 성능 극대화:** 렌더 루프 내에서 매 프레임마다 렌더링 명령을 GPU에 지시하는 대신, 초기화 단계에서 모든 명령을 `GPURenderBundles`에 묶어 저장합니다 [1, 2]. 렌더 루프에서는 이 번들을 호출하는 것만으로 복잡한 렌더링 명령을 즉시 실행할 수 있습니다 [1]. +- **드로우 콜 오버헤드 감소:** 이 접근법은 명령 검증(validation) 작업을 렌더 루프에서 제외시켜 CPU에서 GPU로 발생하는 오버헤드를 근본적으로 제거합니다 [2]. 간접 그리기(Indirect Drawing)와 함께 사용할 경우 매우 높은 드로우 콜 효율성(Draw Call Efficiency)을 달성할 수 있습니다 [3]. +- **초대형 데이터셋 처리:** `GPURenderBundles`를 활용하면 한 번의 호출로 100,000개 이상의 객체를 렌더링할 수 있습니다 [1, 2]. 이는 500MB를 초과하는 병원 캠퍼스나 공항 터미널과 같은 방대하고 복잡한 건설 모델을 실시간으로 렌더링하는 데 가장 이상적인 해결책을 제공합니다 [2]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Native WebGPU]], [[Indirect Drawing]], [[Draw Call Efficiency]], [[Bind Groups]] +- **Projects/Contexts:** [[대규모 건설 플랫폼 뷰어(Large-Scale Construction Viewers)]] +- **Contradictions/Notes:** 고수준 프레임워크인 Three.js WebGPU는 개발이 쉽지만 고유 객체 처리 시 UBO(Uniform Buffer Objects) 바인딩 오버헤드로 인해 약 1만~2만 개의 비인스턴스 객체 렌더링 시 프레임이 떨어질 수 있습니다. 반면, Native WebGPU는 초기화 및 파이프라인 구성의 복잡성(개발 속도 저하)을 감수하는 대신 `GPURenderBundles`를 통해 10만 개 이상의 고유 객체를 병목 없이 원활하게 처리할 수 있습니다 [2-4]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/GPURenderBundles.md]] +--- diff --git a/Graphics & Performance/GPU_WebGL 파이프라인의 미세 지연(Micro-latency) 측정 사례.md b/Graphics & Performance/GPU_WebGL 파이프라인의 미세 지연(Micro-latency) 측정 사례.md new file mode 100644 index 00000000..5216f924 --- /dev/null +++ b/Graphics & Performance/GPU_WebGL 파이프라인의 미세 지연(Micro-latency) 측정 사례.md @@ -0,0 +1,48 @@ +--- +id: P-REINFORCE-AUTO-035B08 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - GPU_WebGL 파이프라인의 미세 지연(Micro-latency) 측정 사례" +--- + +# [[GPU_WebGL 파이프라인의 미세 지연(Micro-latency) 측정 사례]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> GPU/WebGL 파이프라인의 미세 지연(Micro-latency)은 CPU, GPU 및 브라우저 추상화 계층 간의 상호작용에서 발생하는 서브 프레임(Sub-frame) 수준의 시간 지연을 의미하며, 사용자 몰입도를 저하시키는 주요 원인입니다 [1]. 이를 정확히 측정하기 위해 WebGL/WebGPU의 타이머 API, 브라우저 내부의 성능 프로파일링 도구, 그리고 고속 카메라와 오실로스코프를 활용한 하드웨어 기반 측정 등 다양한 접근법이 활용되고 있습니다 [2-6]. 그러나 보안 취약점(Spectre, Meltdown 등)으로 인해 정밀한 시간 측정 기능이 브라우저 차원에서 양자화(Quantization)되거나 제한되는 등 여러 측정 상의 제약이 따르고 있습니다 [3, 7]. + +## 📖 구조화된 지식 (Synthesized Content) +* **API 수준의 그래픽 타이머 측정 (API-Level Timing)** + * **WebGL 타이머 쿼리:** `EXT_disjoint_timer_query` 확장은 렌더링 파이프라인을 중단하지 않고 GPU 명령어 세트의 실행 시간을 측정할 수 있도록 고안되었습니다 [2, 8]. 그러나 이 고정밀 타이머가 Spectre 및 Meltdown과 같은 캐시 부채널 공격(Side-channel attacks)에 악용될 수 있다는 보안 연구 결과에 따라, 대부분의 브라우저 벤더는 해당 확장을 비활성화하거나 해상도를 엄격하게 양자화(Quantization)하였습니다 [2, 3, 9-11]. + * **WebGPU 타임스탬프 쿼리:** WebGPU는 `timestamp-query` 기능을 통해 나노초 단위의 정밀한 측정을 지원하도록 설계되었습니다 [3, 12]. 하지만 역시 타이밍 공격을 방지하기 위해 사이트 격리(Site isolation) 여부에 따라 타임스탬프의 해상도가 100 마이크로초 수준으로 양자화되거나 비격리 컨텍스트에서는 아예 노출되지 않는 보안 조치가 적용됩니다 [3, 7, 13, 14]. 개발자는 로컬 환경에서 브라우저 플래그(`enable-webgpu-developer-features`)를 켜서 이러한 제한을 우회할 수 있습니다 [7, 15]. + +* **브라우저 내부 프로파일링 도구 (Browser-Internal Profiling)** + * **Chrome DevTools (Performance 패널):** 애플리케이션의 런타임 트레이스를 캡처하여 메인 스레드 차단 및 프레임 드롭을 진단할 수 있습니다 [16]. CPU 스로틀링(Throttling) 기능을 통해 고사양 기기에서 모바일 기기의 성능을 시뮬레이션함으로써, 강력한 하드웨어 성능에 가려져 있던 미세 지연을 드러낼 수 있습니다 [4, 16]. + * **Chrome Tracing (`about:tracing`):** 브라우저의 다중 프로세스 아키텍처를 세밀하게 분석할 수 있습니다. "CrGpuMain"과 "CrRendererMain" 스레드의 활성 상태를 비교하여 시스템이 CPU 바운드인지 GPU 바운드인지 판별하며, 긴 가비지 컬렉션 주기나 네트워크 대기 등으로 인해 발생하는 유휴 시간(Idle-time) 미세 지연을 파악하는 데 필수적입니다 [4, 17-19]. + +* **하드웨어 지원 측정 방식 (Hardware-Assisted Latency Measurement)** + * 소프트웨어 기반의 측정은 디스플레이 컨트롤러나 물리적 모니터 자체에서 발생하는 지연을 포착할 수 없으므로, 매우 정밀한 연구를 위해서는 하드웨어 보조 기법이 요구됩니다 [5]. + * **고속 카메라 기법:** 1000Hz(밀리초당 1프레임)로 녹화하는 고속 카메라와 LED 입력 트리거를 사용하여, 버튼 클릭부터 디스플레이에 시각적 변화가 나타나기까지의 전체 "입력 대 디스플레이(Input-to-Display)" 지연을 측정합니다 [5]. + * **오실로스코프와 포토다이오드:** 모니터에 부착한 포토다이오드로 시각적 변화에 따른 빛의 강도 변화를 전압 스파이크로 감지하고, 이를 입력 장치의 전기 신호와 오실로스코프에서 비교하여 밀리초 미만의 정밀도로 종단 간 지연을 측정합니다 [6]. + +* **운영 체제 및 드라이버 수준의 미세 지연 오버헤드** + * **컨텍스트 생성 지연 (Context Creation Latency):** WebGL/WebGPU 컨텍스트 생성은 브라우저가 OS 그래픽 스택과 직접 소통해야 하는 동기식 작업으로 드라이버에 따라 심각한 지연을 유발합니다. (예: Mesa 50ms, NVIDIA 120ms, FGLRX 200ms) 이는 페이지 로드 시 메인 스레드의 가시적인 프리징을 야기합니다 [20-22]. + * **ANGLE 변환 오버헤드:** Windows 플랫폼에서는 WebGL의 OpenGL ES 호출을 Direct3D로 변환하기 위해 ANGLE 계층을 거치며, 드로우 콜(Draw call)마다 몇 마이크로초의 미세 지연이 부가됩니다. 이 지연은 수천 번의 드로우 콜이 발생하는 씬에서 누적되어 GPU가 여유로운 상황에서도 CPU 병목(Bottleneck) 현상을 일으킵니다 [21, 23, 24]. + +* **JavaScript 우회 측정 방법** + * 일부 브라우저(예: Chrome)에서는 성능 및 구조상의 이유로 `gl.finish()`가 비정상적으로 `gl.flush()`로 작동하기 때문에 렌더링 지연을 직접 측정할 수 없습니다 [11]. 이를 우회하기 위해 `gl.readPixels()`를 사용하여 단일 픽셀을 강제로 읽어 모든 그래픽 프로세스를 지연시키고 동기화한 뒤, 그 오버헤드를 `performance.now()`로 측정 및 차감하여 실제 작업의 렌더링 시간을 추정하는 기법이 활용되기도 합니다 [25, 26]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Spectre and Meltdown]], [[WebGPU Timestamp Queries]], [[EXT_disjoint_timer_query]] +- **Projects/Contexts:** [[Chrome DevTools Performance Panel]], [[ANGLE (Almost Native Graphics Layer Engine)]] +- **Contradictions/Notes:** 소스에 따르면 WebGL의 `gl.finish()` 함수는 본래 GPU 파이프라인의 실행 완료를 기다리는 기능이나, Chrome에서는 `gl.flush()`로 별칭(alias) 지정되어 있어, 이를 사용해 실제 렌더링 지연 시간을 측정하려는 시도는 작동하지 않습니다 [11, 27]. 또한 `EXT_disjoint_timer_query` 확장이나 `performance.now()` 등의 도구 역시 각각 보안 문제(캐시 기반 정보 유출) 및 제한적인 렌더링 조건 탓에 순수하고 완벽한 미세 지연 측정 도구로 사용하기에는 한계가 존재합니다 [3, 11, 28]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/GPU_WebGL 파이프라인의 미세 지연(Micro-latency) 측정 사례.md]] +--- diff --git a/Graphics & Performance/Game Studies (Academic Discipline).md b/Graphics & Performance/Game Studies (Academic Discipline).md new file mode 100644 index 00000000..071ec4b6 --- /dev/null +++ b/Graphics & Performance/Game Studies (Academic Discipline).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-EFF2C4 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Game Studies (Academic Discipline)" +--- + +# [[Game Studies (Academic Discipline)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Game Studies (Academic Discipline).md]] +--- diff --git a/Graphics & Performance/Game Theory (Economics).md b/Graphics & Performance/Game Theory (Economics).md new file mode 100644 index 00000000..d593f256 --- /dev/null +++ b/Graphics & Performance/Game Theory (Economics).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-329226 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Game Theory (Economics)" +--- + +# [[Game Theory (Economics)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Game Theory (Economics).md]] +--- diff --git a/Graphics & Performance/Game Theory and Market Equilibrium.md b/Graphics & Performance/Game Theory and Market Equilibrium.md new file mode 100644 index 00000000..5547fccf --- /dev/null +++ b/Graphics & Performance/Game Theory and Market Equilibrium.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-C0E0BE +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Game Theory and Market Equilibrium" +--- + +# [[Game Theory and Market Equilibrium]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Game Theory and Market Equilibrium.md]] +--- diff --git a/Graphics & Performance/Game Theory.md b/Graphics & Performance/Game Theory.md new file mode 100644 index 00000000..8529af61 --- /dev/null +++ b/Graphics & Performance/Game Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-69600C +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Game Theory" +--- + +# [[Game Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Game Theory.md]] +--- diff --git a/Graphics & Performance/Gamification-Design.md b/Graphics & Performance/Gamification-Design.md new file mode 100644 index 00000000..b3bb48e8 --- /dev/null +++ b/Graphics & Performance/Gamification-Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-8C354C +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Gamification-Design" +--- + +# [[Gamification-Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Gamification-Design.md]] +--- diff --git a/Graphics & Performance/Garbage Collection.md b/Graphics & Performance/Garbage Collection.md new file mode 100644 index 00000000..0982250d --- /dev/null +++ b/Graphics & Performance/Garbage Collection.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-F5453B +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Garbage Collection" +--- + +# [[Garbage Collection]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 가비지 컬렉션(Garbage Collection, GC)은 사용되지 않는 구형 데이터를 메모리에서 해제하는 자바스크립트 엔진의 메모리 관리 프로세스입니다 [1]. 하지만 Three.js와 같은 실시간 3D 렌더링 환경에서는 빈번한 객체 생성이나 메모리 한계 초과로 인해 가비지 컬렉터가 작동할 경우, 프레임이 일시적으로 멈추는(Stuttering) 심각한 성능 저하가 발생할 수 있습니다 [1-3]. 또한, Three.js는 GPU 자원에 대해 자동으로 가비지 컬렉션을 수행하지 않기 때문에 개발자의 명시적인 메모리 관리가 필수적입니다 [4]. + +## 📖 구조화된 지식 (Synthesized Content) +* **GPU 자원의 명시적 해제 필요성:** Three.js는 지오메트리, 머티리얼, 텍스처 등의 GPU 자원을 자동으로 가비지 컬렉트하지 않습니다 [4]. 따라서 단일 4K 텍스처가 64MB 이상의 VRAM을 차지하는 등 메모리 누수를 방지하려면, 사용이 끝난 자원은 반드시 `.dispose()` 메서드를 호출하여 명시적으로 GPU 메모리에서 해제해야 합니다 [4]. +* **프레임 멈춤(GC Pauses) 현상:** `useFrame`과 같은 렌더링 루프 내부에서 객체를 계속 생성하거나, 모바일 기기의 시스템 메모리 한계를 초과하는 무거운 텍스처를 사용하면 가비지 컬렉션이 강제로 트리거되어 프레임 멈춤 현상과 스터터링이 발생합니다 [2, 3]. +* **동적 버퍼 할당과 TypedArray 부하:** 대규모 인스턴스 렌더링 환경에서 버퍼 용량을 초과해 동적으로 버퍼를 계속 확장할 경우, 수십 메가바이트 단위의 `TypedArray`가 빈번하게 생성되고 파괴됩니다 [1]. 자바스크립트 엔진이 이 구형 배열 데이터를 해제하는 과정에서 가비지 컬렉터가 작동하여 메인 스레드의 점유 시간을 늘리고 프레임 드랍을 유발합니다 [1, 5]. +* **객체 풀링(Object Pooling)을 통한 GC 부하 완화:** 가비지 컬렉션으로 인한 할당 오버헤드와 멈춤 현상을 방지하기 위해서는, 총알이나 파티클처럼 자주 생성되고 파괴되는 엔티티에 대해 새로운 객체를 생성하는 대신 '객체 풀(Pool)'을 미리 구성하여 재사용하는 방식이 강력히 권장됩니다 [6]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Memory Management]], [[Object Pooling]], [[GPU Resources]] +- **Projects/Contexts:** [[Three.js]], [[WebGL]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Garbage Collection.md]] +--- diff --git a/Graphics & Performance/Geometry Merging.md b/Graphics & Performance/Geometry Merging.md new file mode 100644 index 00000000..71cc14ac --- /dev/null +++ b/Graphics & Performance/Geometry Merging.md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-4349BD +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Geometry Merging" +--- + +# [[Geometry Merging]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> **Geometry Merging(지오메트리 병합)**은 Three.js 등의 3D 렌더링 환경에서 정적(static)인 여러 개의 기하학적 데이터를 단일 `BufferGeometry`로 합치는 최적화 기법입니다. 이는 여러 개의 메쉬를 개별적으로 그릴 때 발생하는 **드로우 콜(Draw call)을 단 1회로 줄여주어** CPU 오버헤드를 크게 감소시킵니다. 하지만 개별 객체의 독립적인 이동이나 실시간 상호작용이 제한되며, 객체가 반복될 경우 메모리 사용량이 극심하게 증가한다는 뚜렷한 한계를 가집니다. + +## 📖 구조화된 지식 (Synthesized Content) +* **원리 및 렌더링 최적화 효과:** + `BufferGeometryUtils.mergeGeometries`와 같은 유틸리티를 사용하여 로드 타임에 여러 메쉬를 하나로 병합하는 방식입니다 [1, 2]. 이 방식은 독립적인 수많은 드로우 콜을 단 하나의 드로우 콜로 결합하므로, **드로우 콜 병목 현상을 완화하는 궁극적인 해결책**을 제공합니다 [3, 4]. 움직임이 필요 없는 정적 씬이나 다수의 부품이 조립된 CAD 렌더링 모델 등에서 높은 프레임 레이트를 유지하는 데 탁월한 효과를 발휘합니다 [4]. + +* **메모리 소모 및 상호작용의 한계:** + 병합된 지오메트리는 병합 전 개별 객체의 기하학적 데이터를 모두 고스란히 복제하여 메모리에 저장합니다. 따라서 수천 개의 동일한 객체(예: 의자)를 렌더링할 때 단일 기하 데이터만 참조하는 인스턴싱(Instancing)과 달리, **메모리(RAM 및 VRAM) 소모가 기하급수적으로 증가**하는 치명적인 단점이 있습니다 [3, 5, 6]. 또한 모든 데이터가 하나로 합쳐져 있으므로, **개별 객체의 위치, 회전, 색상을 실시간으로 변경하거나 개별적인 피킹(Picking) 등 상호작용을 구현하기가 매우 까다롭습니다** [6-8]. + +* **시야 절두체 컬링(Frustum Culling) 비효율성:** + 모든 객체가 하나의 거대한 메쉬로 병합되면 전체가 **단일 바운딩 볼륨(Bounding volume)으로 취급**됩니다. 이로 인해 합쳐진 덩어리의 극히 일부만 카메라 시야(Frustum)에 들어오더라도 화면에 보이지 않는 나머지 전체 영역까지 모두 렌더링 연산을 수행하게 되어, 결과적으로 GPU 성능의 비효율을 초래할 수 있습니다 [4]. + +* **실무적 대안 및 하이브리드 전략:** + 절두체 컬링의 문제를 완화하기 위해 공간적 인접성에 따라 메쉬를 나누어 병합하는 **'타일형 병합(Tiled merging)'** 전략이 권장됩니다 [4]. 또한, 메모리와 유연성 문제를 해결하기 위해 동적인 장면이 아니고 모델 크기가 작을 때(< 1GB)에만 병합을 적용하거나 [9], 정적인 저폴리곤 객체는 병합(Merging)하고 동적이거나 고폴리곤인 객체는 `InstancedMesh` 혹은 `BatchedMesh`를 사용하는 **하이브리드 시스템**이 대안으로 활용되기도 합니다 [10, 11]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Draw Call]], [[InstancedMesh]], [[BatchedMesh]], [[Frustum Culling]], [[BufferGeometry]] +- **Projects/Contexts:** [[IFC.js Fragment]], [[CAD Rendering Optimization]] +- **Contradictions/Notes:** 지오메트리 병합은 드로우 콜을 크게 줄여 렌더링 속도를 높이는 장점이 있지만, 단일 바운딩 박스로 묶이게 되어 시야 절두체 컬링 효율성이 떨어지고 메모리 사용량이 극도로 높아져 하드웨어 자원을 쉽게 고갈시킬 수 있다는 트레이드오프(Trade-off)가 존재합니다 [3, 4]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Geometry Merging.md]] +--- diff --git a/Graphics & Performance/Graph Theory in Level Design.md b/Graphics & Performance/Graph Theory in Level Design.md new file mode 100644 index 00000000..c059d8cb --- /dev/null +++ b/Graphics & Performance/Graph Theory in Level Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-7898CD +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Graph Theory in Level Design" +--- + +# [[Graph Theory in Level Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Graph Theory in Level Design.md]] +--- diff --git a/Graphics & Performance/HMD(Head-Mounted Display) 기반 엑서게임 환경.md b/Graphics & Performance/HMD(Head-Mounted Display) 기반 엑서게임 환경.md new file mode 100644 index 00000000..ab2366a0 --- /dev/null +++ b/Graphics & Performance/HMD(Head-Mounted Display) 기반 엑서게임 환경.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-E05076 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - HMD(Head-Mounted Display) 기반 엑서게임 환경" +--- + +# [[HMD(Head-Mounted Display) 기반 엑서게임 환경]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> HMD(Head-Mounted Display) 기반 엑서게임 환경은 가상현실(VR) 기술을 활용하여 사용자의 신체적 운동과 게임 플레이를 결합한 몰입형 시스템입니다. 이 환경은 현실감 넘치는 3D 공간과 전방위적인 시야를 제공함으로써 사용자가 운동의 신체적 피로를 잊게 하고 지속적으로 운동에 참여할 수 있는 강력한 동기를 부여합니다 [1]. 그러나 높은 몰입감을 제공하는 대신, 신체 움직임과 시각적 자극의 불일치로 인해 화면 기반(Screen-based) 환경보다 VR 멀미(VR Sickness)나 시각적 피로를 유발할 가능성이 더 크다는 특징을 지닙니다 [2]. + +## 📖 구조화된 지식 (Synthesized Content) +- **몰입감과 운동 동기 부여:** HMD 기반의 VR 엑서게임은 사용자를 가상 세계의 목표와 서사에 깊이 빠져들게 하여 신체적 노력에서 오는 고통을 효과적으로 분산시킵니다 [1]. 이러한 실재감(Presence)과 몰입은 사용자의 엑서게임 동기와 지속적인 참여를 이끌어내는 가장 핵심적인 요소입니다 [1]. +- **VR 멀미(VR Sickness)의 발생:** HMD를 착용한 채로 활발한 신체 움직임이 요구되는 엑서게임을 플레이할 경우, 일반적인 대형 화면 기반 게임에 비해 메스꺼움, 방향 감각 상실 등 시뮬레이터 멀미 증상이 더 높게 나타날 수 있습니다 [2, 3]. 이러한 VR 멀미는 게임의 실재감을 깨뜨리고 즐거움과 동기를 저하시키며 인지 능력과 작업 수행 능력을 떨어뜨릴 수 있습니다 [3]. +- **시각적 부작용 및 노출 시간의 영향:** HMD 사용 시 발생하는 눈의 폭주(Vergence)와 조절(Accommodation) 간의 불일치는 깊이 지각에 혼란을 주어 두통, 눈의 피로, 시야 겹침 현상 등의 안구 운동 관련 증상을 초래할 수 있습니다 [3, 4]. 인기 VR 엑서게임인 'Beat Saber'를 활용한 연구에 따르면, 게임 노출 시간이 길어질수록(예: 10분 대비 50분) 즉각적인 멀미 증상과 시각/인지적 영향이 유의미하게 증가하는 것으로 나타났습니다 [5-7]. +- **사후 회복 및 안전 권고:** 대부분의 사용자는 장시간 HMD 엑서게임을 수행한 후 멀미 증상이나 인지 및 시각적 변화를 겪더라도, VR 기기를 벗고 약 40분의 휴식을 취하면 기준선(Baseline) 수준으로 정상 회복됩니다 [6, 7]. 따라서 HMD 엑서게임을 안전하게 활용하기 위해서는 긴 시간 플레이하기 전 짧은 세션을 통해 멀미 발생 여부를 테스트하고, 플레이 종료 후 충분한 대기 및 휴식 시간을 갖는 것이 권장됩니다 [8]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[VR 멀미(VR Sickness)]], [[실재감(Presence)]], [[폭주-조절 불일치(Vergence-Accommodation Conflict)]] +- **Projects/Contexts:** [[Beat Saber]], [[가상현실(VR) 자전거 시뮬레이터]] +- **Contradictions/Notes:** HMD 기반 엑서게임은 기존 화면 기반 게임과 비교했을 때 사용자에게 더 높은 몰입감을 제공하여 운동 효과를 극대화할 수 있지만, 반대로 신체 움직임 증가와 시각적 자극으로 인해 VR 멀미의 유발 가능성을 높인다는 양면적인 모순을 가집니다 [2]. 노출 시간에 비례해 멀미 증상이 증가하지만 대부분 40분 이내에 자연 회복되므로 적절한 휴식과 함께 병행해야 합니다 [6, 9]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/HMD(Head-Mounted Display) 기반 엑서게임 환경.md]] +--- diff --git a/Graphics & Performance/HTML5 Canvas.md b/Graphics & Performance/HTML5 Canvas.md new file mode 100644 index 00000000..5e209e96 --- /dev/null +++ b/Graphics & Performance/HTML5 Canvas.md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-6AA980 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - HTML5 Canvas" +--- + +# [[HTML5 Canvas]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> HTML5 Canvas는 웹 브라우저 내에서 3D 장면이나 그래픽 등 모든 그리기 콘텐츠(drawing contents)를 담는 HTML 요소입니다 [1]. 주로 자바스크립트를 통해 WebGL 또는 WebGPU 컨텍스트를 가져와 GPU에서 하드웨어 가속을 통해 직접 렌더링을 수행하는 대상 화면으로 사용됩니다 [1, 2]. 제공된 소스에서는 독립적인 주제라기보다는 WebGL 및 WebGPU 파이프라인이 그래픽을 출력하는 기본 바탕으로서 단편적으로 언급됩니다. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGL]], [[WebGPU]], [[GPU Rendering]] +- **Projects/Contexts:** [[3D Web-based HMI]], [[LearnWebGL]], [[Chrome DevTools Performance]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. 소스 데이터 내에서 HTML5 Canvas 자체의 2D API나 내부 동작 원리에 대한 깊이 있는 설명은 존재하지 않으며, WebGL 및 WebGPU 렌더링을 위한 HTML 요소로서의 역할만 제한적으로 다뤄지고 있습니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/HTML5 Canvas.md]] +--- diff --git a/Graphics & Performance/High Resolution Time.md b/Graphics & Performance/High Resolution Time.md new file mode 100644 index 00000000..c39e24c6 --- /dev/null +++ b/Graphics & Performance/High Resolution Time.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-05BDE3 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - High Resolution Time" +--- + +# [[High Resolution Time]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> High Resolution Time(HR-time)은 웹 브라우저 환경에서 고정밀로 시간을 측정하기 위해 사용되는 사양(Spec) 및 메커니즘을 의미한다. 그러나 Spectre나 Meltdown 같은 타이밍 기반의 사이드 채널 공격을 방지하기 위해 이 사양은 `performance.now()`와 같은 측정 도구의 해상도를 의도적으로 제한(Coarsening)하고 있다. 최근 WebGPU의 타임스탬프 쿼리 기능 역시 이 HR-time 사양의 기준을 참조하여 보안과 성능 측정의 균형을 맞추고 있다. + +## 📖 구조화된 지식 (Synthesized Content) +- **보안 취약점에 따른 정밀도 제한 (Coarsening):** Spectre 및 Meltdown과 같은 캐시 사이드 채널 공격은 서브 마이크로초(sub-microsecond) 수준의 미세한 타이밍 차이를 이용해 메모리 접근 패턴을 파악한다 [1]. 이를 막기 위해 브라우저 엔진들은 `performance.now()`와 같은 타이머의 정밀도를 시스템의 격리 상태(isolation status)에 따라 1ms 또는 100 마이크로초(µs) 단위로 낮추었다 [1]. +- **지터(Jitter)의 도입:** 일부 브라우저 구현에서는 반환되는 시간 값에 작고 무작위적인 변동인 '지터(Jitter)'를 추가하여, 공격자가 통계적 평균을 통해 고정밀 시계를 재구성하는 것을 방지한다 [1]. +- **컨텍스트에 따른 해상도 차이:** High Resolution Time 사양(HR-time spec)은 크로스 오리진 격리(cross-origin isolated) 컨텍스트에서는 5µs로, 격리되지 않은(non-isolated) 컨텍스트에서는 100µs(또는 구현이 선호하는 더 거친 수준)로 해상도를 제한하도록 권장한다 [2]. +- **WebGPU 타임스탬프 쿼리(Timestamp Queries) 연동:** WebGPU 환경에서 GPU 연산 소요 시간을 측정하는 타임스탬프 쿼리 기능도 타이밍 공격의 위험이 있어 정밀도 조정이 필요했다 [3-5]. 이에 따라 GPU for the Web 커뮤니티 그룹은 타임스탬프 값을 HR-time 사양을 참조하여 격리 여부와 무관하게 비격리 해상도 기준인 100µs로 제한(quantization)하기로 합의하여 일관성 있는 보안 조치를 적용하였다 [6-8]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Spectre and Meltdown]], [[WebGPU Timestamp Queries]], [[performance.now()]] +- **Projects/Contexts:** [[High Resolution Time spec (#4175)]] +- **Contradictions/Notes:** 소스 내에 특별한 모순은 없으나, High Resolution Time의 정밀도는 적용되는 보안 격리 환경(Isolated vs Non-isolated) 및 브라우저 엔진의 방어 메커니즘에 따라 5µs, 100µs, 1ms 등 상이하게 적용된다는 점을 유의해야 한다 [1, 2]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/High Resolution Time.md]] +--- diff --git a/Graphics & Performance/Human-Centered Design.md b/Graphics & Performance/Human-Centered Design.md new file mode 100644 index 00000000..e34e93b8 --- /dev/null +++ b/Graphics & Performance/Human-Centered Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-AFA55D +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Human-Centered Design" +--- + +# [[Human-Centered Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Human-Centered Design.md]] +--- diff --git a/Graphics & Performance/Human-Computer-Interaction-HCI.md b/Graphics & Performance/Human-Computer-Interaction-HCI.md new file mode 100644 index 00000000..d5183dd8 --- /dev/null +++ b/Graphics & Performance/Human-Computer-Interaction-HCI.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-7D2F0C +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Human-Computer-Interaction-HCI" +--- + +# [[Human-Computer-Interaction-HCI]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Human-Computer-Interaction-HCI.md]] +--- diff --git a/Graphics & Performance/IFCjs (Fragment).md b/Graphics & Performance/IFCjs (Fragment).md new file mode 100644 index 00000000..48fb7fc2 --- /dev/null +++ b/Graphics & Performance/IFCjs (Fragment).md @@ -0,0 +1,42 @@ +--- +id: P-REINFORCE-AUTO-8A58BF +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - IFCjs (Fragment)" +--- + +# [[IFCjs (Fragment)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Fragment는 대규모 3D 기하학적 환경을 효율적으로 렌더링하기 위해 IFC.js 개발자들이 고안한 하이브리드 최적화 시스템이다 [1, 2]. 이 시스템은 단일 인터페이스 내에서 로우 폴리(low-poly) 고유 객체를 위한 지오메트리 병합과 하이 폴리(high-poly) 반복 객체를 위한 인스턴싱의 장점을 결합한다 [2]. 이를 통해 메모리 소비와 드로우 콜(Draw call) 횟수 간의 최적의 균형을 달성하면서 개별 객체의 빠른 검색 및 조작 기능을 제공하는 것을 목표로 한다 [1, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +* **개발 목적 및 배경:** + 건물 모델과 같이 수천 개에서 수백만 개의 객체로 구성된 거대한 씬(scene)을 렌더링할 때, 기존의 모든 객체를 `BufferGeometry`로 병합하는 방식은 램(RAM) 메모리를 지나치게 많이 소비하는 한계가 있었고, `InstancedMesh`를 사용하는 방식은 재질(Material) 수만큼 드로우 콜이 늘어나는 단점이 있었다 [4, 5]. Fragment는 이러한 문제를 해결하여 메모리와 FPS 측면 모두에서 효율성을 달성하고, 개별 객체를 빠르게 검색하고 하이라이트할 수 있도록 설계되었다 [1, 6]. + +* **하이브리드 아키텍처:** + Fragment는 다음과 같이 객체의 특성에 따라 두 가지 최적화 방식을 혼합하여 사용한다. + * **병합 (Merging):** 벽이나 바닥처럼 고유하면서 폴리곤 수가 적은(low-poly) 객체들은 하나 또는 여러 개의 `BufferGeometry`로 병합하여 드로우 콜을 최소화한다 [2, 7]. + * **인스턴싱 (Instancing):** 문, 가구, 창문과 같이 동일한 형태가 반복되면서 폴리곤 수가 많은(high-poly) 객체들은 각각 `InstancedMesh`로 구성하여 메모리 소비를 대폭 줄인다 [2, 7]. + +* **구조적 특징 및 저장 방식:** + 공통된 Fragment 인터페이스를 통해 1,000개의 동일한 의자가 하나의 인스턴스화된 Fragment가 될 수도 있고, 프로젝트의 모든 벽면이 병합된 단일 Fragment가 될 수도 있다 [6, 7]. 영속성(persistence) 수준에서는 각 Fragment당 하나의 GLB 파일을 저장하는 방식을 고려하여 설계되었다 [7]. 모든 Fragment가 비슷한 수의 정점(vertices)과 드로우 콜을 가지도록 하여 시스템 부하의 균형을 맞춘다 [3]. + +* **성능 및 결과:** + 초기 프로토타입 구현 결과, 1,000개의 의자와 4개의 벽으로 구성된 씬을 단 3번의 드로우 콜(선택용 드로우 콜 제외)과 10MB 미만의 메모리만으로 렌더링하는 데 성공했다 [6]. 또한 100MB 이상의 대형 IFC 모델을 모바일 기기에서도 Autodesk Forge에 필적하는 속도로 빠르게 로드하는 훌륭한 성능을 보여주었다 [8]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[BufferGeometry]], [[InstancedMesh]], [[Draw Call]] +- **Projects/Contexts:** [[IFC.js]], [[Three.js]] +- **Contradictions/Notes:** 소스에 따르면, Fragment와 같은 자체적인 최적화 시스템 구축 외에도 대규모 환경 최적화를 위해 다중 그리기(Multidrawing), LOD(Level of Detail), 오클루전 컬링(Occlusion Culling) 등의 추가적인 방법론도 함께 검토되었다 [2]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/IFC.js (Fragment).md]] +--- diff --git a/Graphics & Performance/ISO 9241 Standards.md b/Graphics & Performance/ISO 9241 Standards.md new file mode 100644 index 00000000..460c7c0d --- /dev/null +++ b/Graphics & Performance/ISO 9241 Standards.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-CA7B1B +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - ISO 9241 Standards" +--- + +# [[ISO 9241 Standards]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/ISO 9241 Standards.md]] +--- diff --git a/Graphics & Performance/Immersive Educational Simulations.md b/Graphics & Performance/Immersive Educational Simulations.md new file mode 100644 index 00000000..53ea8753 --- /dev/null +++ b/Graphics & Performance/Immersive Educational Simulations.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-7C1550 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Immersive Educational Simulations" +--- + +# [[Immersive Educational Simulations]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Immersive Educational Simulations.md]] +--- diff --git a/Graphics & Performance/Indirect Draw.md b/Graphics & Performance/Indirect Draw.md new file mode 100644 index 00000000..ea3b6438 --- /dev/null +++ b/Graphics & Performance/Indirect Draw.md @@ -0,0 +1,37 @@ +--- +id: P-REINFORCE-AUTO-8EEC8D +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Indirect Draw" +--- + +# [[Indirect Draw]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Indirect Draw(간접 그리기)는 렌더링할 객체의 수와 정보를 CPU가 아닌 GPU가 컴퓨트 셰이더(Compute Shader)의 연산 결과를 바탕으로 직접 결정하여 화면에 그리는 GPU 주도 렌더링(GPU-driven rendering) 기법이다 [1, 2]. 이 방식을 사용하면 시야 절두체 컬링(Frustum Culling)이나 오클루전(Occlusion) 컬링의 결과를 GPU 내부 버퍼에 저장하고 `drawIndirect` 명령으로 바로 출력하므로, CPU와 GPU 간의 데이터 전송량 및 동기화 지연을 거의 0으로 줄일 수 있다 [2, 3]. 매 프레임 수백만 개의 인스턴스를 GPU에서 직접 컬링하고 렌더링해야 하는 대규모 3D 환경에서 필수적인 성능 최적화 기술로 활용된다 [1, 2]. + +## 📖 구조화된 지식 (Synthesized Content) +* **작동 원리 및 GPU 주도 렌더링 (GPU-Driven Rendering):** + 전통적인 렌더링 파이프라인과 달리, Indirect Draw는 컴퓨트 셰이더를 통해 GPU가 객체의 가시성을 직접 판별하도록 설계되었다 [2, 4]. 컬링 테스트(Cull test)를 통과하여 화면에 보여야 할 객체가 발견되면, 간접 그리기 명령(draw indirect command)의 인스턴스 카운트(instanceCount) 매개변수를 증가시키고 가시성이 확인된 객체에 대해서만 렌더링 명령을 버퍼에 추가(append)하는 방식으로 작동한다 [4, 5]. + +* **성능 최적화 및 CPU 병목 해소:** + 렌더링을 위한 데이터와 명령 버퍼가 GPU 내부에서 생성되고 직접 참조되므로(`drawIndexedIndirect` 등), CPU와 GPU 간의 무거운 메모리 전송 및 동기화 지연이 제거된다 [2, 3]. 이는 구조적으로 "CPU가 GPU에게 무엇을 할지 지시하는 방식"에서 벗어나 "GPU가 스스로 무엇을 렌더링할지 지시하는 시스템"으로의 그래픽스 패러다임 전환을 의미한다 [3]. + +* **지원 환경 및 한계 극복:** + WebGPU, Vulkan 등 최신 그래픽스 API 환경에서 주로 활용되며, Three.js에서도 WebGPU 도입과 함께 적극 활용되고 있다 [2, 6, 7]. 매우 복잡하고 방대한 객체를 다룰 때, 기존의 InstancedMesh나 BatchedMesh가 CPU 기반 데이터 업데이트 및 버퍼 패킹으로 인해 겪게 되는 성능 저하 한계를 근본적으로 극복할 수 있는 기술로 평가받는다 [2, 8, 9]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[GPU-Driven Rendering]], [[Compute Shader]], [[Frustum Culling]], [[WebGPU]] +- **Projects/Contexts:** [[Three.js WebGPURenderer]], [[BatchedMesh]], [[Vulkan]] +- **Contradictions/Notes:** 대규모 지오메트리를 처리할 때 BatchedMesh만으로는 CPU의 버퍼 업로드 병목이 발생할 수 있어 근본적인 성능 문제를 피하기 어려우며, 이를 해결하기 위해서는 WebGPU 환경의 Indirect Draw 지원이 필수적이라는 점이 소스에서 한계점(pushing the limits)으로 지적된다 [9]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Indirect Draw.md]] +--- diff --git a/Graphics & Performance/InstancedMesh (드로우 콜 최적화).md b/Graphics & Performance/InstancedMesh (드로우 콜 최적화).md new file mode 100644 index 00000000..9e78853c --- /dev/null +++ b/Graphics & Performance/InstancedMesh (드로우 콜 최적화).md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-86F967 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - InstancedMesh (드로우 콜 최적화)" +--- + +# [[InstancedMesh (드로우 콜 최적화)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> `InstancedMesh`는 **동일한 기하구조(Geometry)와 재질(Material)을 공유하는 수많은 객체를 단 1회의 드로우 콜(Draw Call)만으로 GPU에서 렌더링**하여, CPU의 오버헤드를 극적으로 줄이고 애플리케이션의 프레임 레이트(FPS)를 비약적으로 향상시키는 3D 그래픽스 핵심 최적화 기법입니다. + +## 📖 구조화된 지식 (Synthesized Content) +**1. 드로우 콜(Draw Call)의 개념과 성능 병목** 모든 3D 장면에서 메시는 각각의 드로우 콜을 발생시키며, 이 횟수가 많아질수록 CPU가 GPU에 렌더링 명령을 내리는 오버헤드가 급증합니다. 매끄러운 60FPS를 유지하기 위한 렌더링의 골든 룰은 **프레임당 드로우 콜을 100회 미만으로 유지**하는 것이며, 폴리곤(삼각형)의 수보다 드로우 콜의 횟수가 성능에 훨씬 치명적인 영향을 미칩니다. + +**2. InstancedMesh의 작동 원리** 1,000개의 나무나 총알을 개별적인 메시(Mesh)로 렌더링하면 1,000번의 드로우 콜이 발생합니다. 하지만 `InstancedMesh`를 사용하면 **단 1번의 드로우 콜만으로 GPU 내부에서 해당 객체를 1,000번 복제하여 렌더링**할 수 있습니다. 한 부동산 데모 프로젝트의 경우, 수많은 의자 객체들을 인스턴싱 렌더링으로 변경하여 드로우 콜을 9,000회에서 300회로 줄인 사례가 있습니다. + +**3. 성능 이득과 활용 방식** 인스턴싱 최적화를 적용하면 드로우 콜 횟수가 $N$(객체 수)에서 1로 줄어들어, 내장형 GPU 환경에서 대규모 데이터셋 렌더링 시 **프레임 레이트를 10배 이상 향상**시킬 수 있습니다. 또한, 각 인스턴스는 동일한 형태를 공유하더라도 인스턴스별 속성(per-instance attributes)을 통해 **서로 다른 위치, 회전, 크기(Scale) 및 색상을 독립적으로 가질 수 있습니다**. + +**4. 오브젝트 풀링과의 결합** 실시간 게임 아키텍처에서는 총알이나 파티클과 같이 자주 생성되고 사라지는 객체를 개별 메시로 관리하지 않고, **하나의 `InstancedMesh`를 고정된 오브젝트 풀(Pool)로 관리하며 변환 행렬(Matrix)만 업데이트**하는 방식을 사용해 메모리 파편화 방지와 렌더링 최적화를 동시에 달성합니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Draw Call Optimization (드로우 콜 최적화)]], [[BatchedMesh]], [[Object Pooling (오브젝트 풀링)]], [[React Three Fiber 자산 최적화]] +- **Projects/Contexts:** [[대규모 파티클 시스템 최적화]], [[수만 개의 데이터를 표현하는 3D 산점도(Scatter Plot) 시각화]], [[숲, 군중 등 반복 객체가 많은 3D 씬]] +- **Contradictions/Notes:** `InstancedMesh`는 성능 개선에 탁월하지만, **모든 인스턴스가 반드시 동일한 기하구조(Geometry)와 재질(Material)을 공유해야 한다는 설계적 제약**이 따릅니다. 만약 재질은 같으나 형태(Geometry)가 서로 다른 여러 객체들을 묶어 드로우 콜을 1회로 줄이려면, R156 버전에 도입된 `BatchedMesh`를 사용하는 것이 더 적합합니다. +- Raw Source: [[00_Raw/2026-04-20/InstancedMesh (드로우 콜 최적화).md]] +--- diff --git a/Graphics & Performance/InstancedMesh2.md b/Graphics & Performance/InstancedMesh2.md new file mode 100644 index 00000000..32293ec3 --- /dev/null +++ b/Graphics & Performance/InstancedMesh2.md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-0E2591 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - InstancedMesh2" +--- + +# [[InstancedMesh2]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> InstancedMesh2는 Three.js의 기본 `InstancedMesh`를 확장하여 성능과 기능을 대폭 강화한 오픈 소스 라이브러리이다 [1-3]. 이 라이브러리는 개별 인스턴스에 대한 절두체 컬링(Frustum culling), 공간 인덱스(BVH)를 이용한 빠른 레이캐스팅, 정렬(Sorting), 개별 가시성 관리 및 LOD 기능을 제공한다 [2-5]. 특히 기존 인스턴싱 기술로 처리하기 까다로웠던 개별 애니메이션 상태를 가진 스킨드 메쉬(Skinned Mesh)의 인스턴싱을 지원하여 대규모 3D 환경을 효율적으로 렌더링하는 데 활용된다 [1, 3, 6]. + +## 📖 구조화된 지식 (Synthesized Content) +* **핵심 기능 및 최적화 기법** + * **인스턴스별 절두체 컬링 및 가시성 제어:** 개별 인스턴스 단위로 가시성을 관리하고 절두체 컬링을 수행한다 [2, 3, 5]. 이를 통해 카메라 뷰 내부에 존재하는 인스턴스의 뼈대(Bone) 계산만 수행하는 등 연산을 극도로 최적화할 수 있으며, `onFrustumEnter`를 사용해 인스턴스 렌더링 여부를 정밀하게 제어할 수 있다 [1, 7]. + * **BVH 기반 빠른 레이캐스팅:** `three-mesh-bvh` 라이브러리 설계에 착안한 공간 인덱스(Spatial index)를 포함하여, 수많은 인스턴스가 배치된 환경에서도 빠른 레이캐스팅과 컬링을 지원한다 [3-5, 8]. + * **LOD 및 애니메이션(Skinning) 최적화:** 객체의 거리(LOD)에 따라 기하학적 구조(Geometry)뿐 아니라 뼈대(Bones) 연산까지 축소하고, 거리에 비례하여 애니메이션 FPS를 0에서 60까지 조절할 수 있다 [1, 6, 9, 10]. 이를 통해 모바일 기기에서도 2만 개 이상의 스킨드 인스턴스를 무리 없이 구동할 수 있다 [1]. + * **정렬(Sorting):** 렌더링 시 투명도 문제를 방지하기 위해, 내부적으로 BatchedMesh에 기반한 기수 정렬(Radix sort) 기능을 제공한다 [11, 12]. + +* **내부 아키텍처 및 데이터 구조** + * **간접 참조(Indirection) 기반 인덱싱:** 라이브러리 초기 버전과 달리, `InstancedBufferAttribute`를 활용하여 렌더링될 인스턴스 인덱스를 간접적으로 관리한다 [12]. 이는 GPU로 데이터를 보내기 전 컬링, 선택적 렌더링, 정렬 작업을 배열의 물리적 재정렬 없이 빠르게 수행할 수 있게 한다 [12]. + * **SquareDataTexture의 활용:** 인스턴스의 행렬(Matrix) 및 주요 데이터를 저장하는 데 `DataTexture`의 확장 버전인 `SquareDataTexture`를 사용한다 [12]. 이 방식은 부분 업데이트(Partial Updates)를 지원하여 전체 데이터를 갱신할 필요 없이 변경된 일부 인스턴스의 정보만 갱신하도록 돕는다 [8, 12]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[InstancedMesh]], [[Frustum culling]], [[BVH]], [[LOD]], [[SkinnedMesh]], [[BatchedMesh]] +- **Projects/Contexts:** [[agargaro의 오픈 소스 라이브러리]], [[20k skinned instances demo]] +- **Contradictions/Notes:** + - `SquareDataTexture`를 활용한 부분 업데이트 기능이 연속되지 않은 메모리 접근과 부가적인 함수 호출로 인해 CPU 오버헤드를 유발할 수 있다는 우려가 제기되었으나, 소수의 인스턴스만 변하는 상황에서는 상당한 대역폭 절약 효과가 있다고 라이브러리 개발자(@agargaro)가 반론했습니다 [8, 13, 14]. + - 이러한 고급 기능들이 유용함에도 불구하고, Three.js의 메인 코어에 병합하기에는 내부 셰이더 변경과 기존 코드 호환성 파괴(Breaking changes) 등 유지보수 복잡성이 너무 커서 외부 라이브러리로 분리 개발되고 있습니다 [15, 16]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/InstancedMesh2.md]] +--- diff --git a/Graphics & Performance/Instancing.md b/Graphics & Performance/Instancing.md new file mode 100644 index 00000000..bac9d6dc --- /dev/null +++ b/Graphics & Performance/Instancing.md @@ -0,0 +1,37 @@ +--- +id: P-REINFORCE-AUTO-2752BF +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Instancing" +--- + +# [[Instancing]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 인스턴싱(Instancing)은 웹 그래픽스 렌더링 및 UI 디자인 소프트웨어에서 성능을 최적화하기 위해 동일한 객체를 효율적으로 반복 처리하는 기법입니다. WebGL이나 WebGPU 환경에서는 단일 드로우 콜(draw call)로 동일한 메쉬나 형태를 대량으로 그려내어 CPU 및 GPU 오버헤드를 줄이는 핵심 기술로 사용됩니다 [1, 2]. 반면 Figma와 같은 디자인 도구에서는 원본 컴포넌트의 복제본을 의미하며, 인스턴스 내부의 구조적 최적화 여부가 소프트웨어 성능에 직접적인 영향을 미칩니다 [3, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +- **웹 그래픽스 렌더링 최적화 (WebGL & WebGPU):** + - **드로우 콜(Draw Call) 감소:** WebGL 애플리케이션에서 성능을 극대화하는 가장 중요한 비결은 드로우 콜 횟수를 최소화하는 것입니다 [5]. 동일한 메쉬를 여러 번 호출하여 그리는 대신 인스턴싱 기법을 사용하면 대량의 메쉬를 단일 함수 호출로 렌더링할 수 있어 성능 오버헤드를 크게 줄일 수 있습니다 [1]. + - **WebGPU를 활용한 가우시안 렌더링 (WebSplatter):** WebGPU 기반의 3D Gaussian Splatting 프레임워크인 WebSplatter는 래스터화 단계에서 인스턴스화된 드로우 콜(instanced draw call)을 통해 각 가우시안을 단일 쿼드(두 개의 삼각형)로 제출하여 렌더링합니다 [2]. 렌더 패스(Render pass) 내부에서 `passEncoder.draw(vertexCount, instanceCount)` 명령을 호출하여, 지정된 정점 및 인스턴스 수만큼 버텍스 셰이더와 프래그먼트 셰이더의 실행을 트리거합니다 [6]. + - **관련 WebGL 확장 기능:** WebGL 생태계에서는 이와 같은 인스턴싱을 지원하기 위해 `ANGLE_instanced_arrays`라는 확장(Extension) 기능을 제공합니다 [7]. + +- **디자인 시스템 및 UI 도구(Figma)에서의 인스턴스:** + - **성능 저하의 원인:** 대규모 디자인 파일에서 복잡한 중첩 구조를 가진 컴포넌트를 사용할 때, 인스턴스 내부에 불필요하게 포함된 숨겨진 레이어(hidden layers)는 파일의 렌더링과 업데이트 속도를 크게 늦출 수 있습니다 [3, 8, 9]. + - **인스턴스 최적화 방안:** 구조 컴포넌트의 사용을 줄이고, 대신 별도의 변형(variants) 개수를 늘려 인스턴스 내의 숨겨진 레이어들을 제거하면 프로토타입 동작이 눈에 띄게 부드러워지며 성능이 크게 향상됩니다 [4, 10]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Draw Calls]], [[WebGL]], [[WebGPU]], [[Gaussian Splatting]] +- **Projects/Contexts:** [[Wonderland Engine]], [[WebSplatter]], [[Figma]] +- **Contradictions/Notes:** 주어진 소스 데이터 내에서 '인스턴스(Instancing)'라는 용어는 3D 그래픽스 하드웨어 가속을 위한 렌더링 효율화 기법(WebGL/WebGPU)과, 디자인 도구 내에서 원본 객체를 복제해 사용하는 개체 단위(Figma)라는 두 가지 상이한 맥락에서 설명되고 있습니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Instancing.md]] +--- diff --git a/Graphics & Performance/Instructional Systems Design (ISD).md b/Graphics & Performance/Instructional Systems Design (ISD).md new file mode 100644 index 00000000..3e2f5524 --- /dev/null +++ b/Graphics & Performance/Instructional Systems Design (ISD).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-03221B +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Instructional Systems Design (ISD)" +--- + +# [[Instructional Systems Design (ISD)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Instructional Systems Design (ISD).md]] +--- diff --git a/Graphics & Performance/Instructional-Design.md b/Graphics & Performance/Instructional-Design.md new file mode 100644 index 00000000..748d8ae6 --- /dev/null +++ b/Graphics & Performance/Instructional-Design.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-FFEC9C +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Instructional-Design" +--- + +# [[Instructional-Design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Instructional-Design.md]] +--- diff --git a/Graphics & Performance/Interactive Storytelling.md b/Graphics & Performance/Interactive Storytelling.md new file mode 100644 index 00000000..97537aee --- /dev/null +++ b/Graphics & Performance/Interactive Storytelling.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-355ABB +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Interactive Storytelling" +--- + +# [[Interactive Storytelling]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Interactive Storytelling.md]] +--- diff --git a/Graphics & Performance/Interactive-Storytelling.md b/Graphics & Performance/Interactive-Storytelling.md new file mode 100644 index 00000000..fc3b2718 --- /dev/null +++ b/Graphics & Performance/Interactive-Storytelling.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6D7369 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Interactive-Storytelling" +--- + +# [[Interactive-Storytelling]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Interactive-Storytelling.md]] +--- diff --git a/Graphics & Performance/Internet of Things (IoT) Telemetry.md b/Graphics & Performance/Internet of Things (IoT) Telemetry.md new file mode 100644 index 00000000..c56e6eb5 --- /dev/null +++ b/Graphics & Performance/Internet of Things (IoT) Telemetry.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D09D7C +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Internet of Things (IoT) Telemetry" +--- + +# [[Internet of Things (IoT) Telemetry]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Internet of Things (IoT) Telemetry.md]] +--- diff --git a/Graphics & Performance/Intrinsic Motivation.md b/Graphics & Performance/Intrinsic Motivation.md new file mode 100644 index 00000000..f55c0518 --- /dev/null +++ b/Graphics & Performance/Intrinsic Motivation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D1BB71 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Intrinsic Motivation" +--- + +# [[Intrinsic Motivation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Intrinsic Motivation.md]] +--- diff --git a/Graphics & Performance/JavaScript.md b/Graphics & Performance/JavaScript.md new file mode 100644 index 00000000..1bf25931 --- /dev/null +++ b/Graphics & Performance/JavaScript.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-4A99EB +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - JavaScript" +--- + +# [[JavaScript]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> JavaScript는 단일 페이지 애플리케이션을 구축하고 WebGL, WebGPU와 같은 웹 브라우저 API를 제어하는 데 사용되는 핵심 스크립팅 언어입니다 [1, 2]. 애플리케이션 로직, 이벤트 처리 및 데이터 준비에 필수적이지만, 브라우저의 메인 스레드에서 무거운 JavaScript를 실행하거나 가비지 컬렉션이 발생하면 심각한 성능 병목 현상이 생길 수 있습니다 [3-5]. 따라서 최근의 웹 성능 최적화는 JavaScript 페이로드를 줄이고, 실행 시간을 분할하며, 무거운 연산을 GPU로 오프로드하는 방향으로 발전하고 있습니다 [6, 7]. + +## 📖 구조화된 지식 (Synthesized Content) +* **웹 그래픽(WebGL 및 WebGPU)에서의 역할:** JavaScript는 브라우저의 WebGL 및 WebGPU API와 상호 작용하기 위한 인터페이스 언어입니다 [2, 8]. WebGL 환경에서 JavaScript 프로그램은 CPU에서 실행되며, 3D 모델 데이터 변환, 버퍼 객체 생성, 유니폼(Uniform) 변수 설정 및 드로우 콜(Draw call) 발행 등의 작업을 수행합니다 [9, 10]. 그러나 JavaScript 프로그램과 GPU 간의 빈번한 통신 및 브라우저 API 호출은 렌더링 속도를 저하시키는 큰 오버헤드를 발생시킵니다 [11, 12]. 이러한 문제를 해결하기 위해 등장한 WebGPU는 애니메이션이나 정렬과 같은 로직을 GPU의 컴퓨트 셰이더(Compute shader)로 직접 오프로드하여 JavaScript 런타임으로 인한 메인 스레드 병목 현상을 획기적으로 줄여줍니다 [6, 13, 14]. +* **성능 영향 및 최적화:** JavaScript 실행은 INP(Interaction to Next Paint) 및 TBT(Total Blocking Time)와 같은 코어 웹 바이탈(Core Web Vitals) 성능 지표에 직접적인 영향을 미칩니다 [7, 15]. 메인 스레드를 50ms 이상 차단하는 긴 작업(Long tasks)은 사용자 상호 작용에 대한 응답을 지연시킵니다 [7]. 또한, JavaScript의 가비지 컬렉션(Garbage Collection) 프로세스는 개발자가 제어할 수 없는 시점에 일시 중지를 유발하여 렌더링 끊김(Stutter)이나 불규칙한 프레임 속도를 발생시킬 수 있습니다 [4, 8]. 이를 최적화하기 위해 개발자는 긴 작업을 더 작은 비동기 청크로 분할하고, 필수적이지 않은 JS를 지연 로드(Defer/Lazy load)하며, 가비지가 없는(garbage-free) 코드를 작성해야 합니다 [7, 16, 17]. +* **성능 모니터링 및 디버깅:** Chrome DevTools의 성능(Performance) 패널은 JavaScript 성능을 프로파일링하는 데 필수적인 도구입니다 [3]. 이 도구를 통해 개발자는 메인 스레드 활동의 플레임 차트(Flame chart)를 분석하고, JavaScript 함수의 세부 호출 스택을 확인하며, 강제 동기식 레이아웃(Forced synchronous layouts)을 유발하거나 상호 작용 처리를 지연시키는 특정 스크립트를 식별할 수 있습니다 [3, 18, 19]. 또한, Long Animation Frames API를 기반으로 사용자 상호 작용을 지연시키는 스크립트의 레이아웃 작업 및 스크립팅 작업 비율을 확인할 수 있습니다 [20]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** `[[WebGL]]`, `[[WebGPU]]`, `[[Interaction to Next Paint (INP)]]`, `[[Garbage Collection]]`, `[[Chrome DevTools]]` +- **Projects/Contexts:** `[[Three.js]]`, `[[웹 그래픽 성능 최적화(Web Graphics Performance Optimization)]]` +- **Contradictions/Notes:** WebGL을 구동하기 위해 JavaScript는 필수적이지만, CPU 측의 JavaScript 실행 및 상태 유효성 검사 오버헤드가 오히려 렌더링 성능을 제한하는 가장 큰 병목으로 작용합니다. 이로 인해 3D 렌더링 산업은 JavaScript의 개입을 줄이고 GPU의 병렬 연산을 극대화할 수 있는 WebGPU로 빠르게 전환하는 추세입니다 [5, 6, 13]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/JavaScript.md]] +--- diff --git a/Graphics & Performance/Knowledge-Graphs.md b/Graphics & Performance/Knowledge-Graphs.md new file mode 100644 index 00000000..cca80eb8 --- /dev/null +++ b/Graphics & Performance/Knowledge-Graphs.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9FC608 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Knowledge-Graphs" +--- + +# [[Knowledge-Graphs]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Knowledge-Graphs.md]] +--- diff --git a/Graphics & Performance/Looking-Glass-Studios.md b/Graphics & Performance/Looking-Glass-Studios.md new file mode 100644 index 00000000..197310c1 --- /dev/null +++ b/Graphics & Performance/Looking-Glass-Studios.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-83E00E +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Looking-Glass-Studios" +--- + +# [[Looking-Glass-Studios]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Looking-Glass-Studios.md]] +--- diff --git a/Graphics & Performance/Loot Box Regulation (EU_China Compliance).md b/Graphics & Performance/Loot Box Regulation (EU_China Compliance).md new file mode 100644 index 00000000..997abbcc --- /dev/null +++ b/Graphics & Performance/Loot Box Regulation (EU_China Compliance).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-4B1863 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Loot Box Regulation (EU_China Compliance)" +--- + +# [[Loot Box Regulation (EU_China Compliance)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Loot Box Regulation (EU_China Compliance).md]] +--- diff --git a/Graphics & Performance/Ludology.md b/Graphics & Performance/Ludology.md new file mode 100644 index 00000000..73e5e30f --- /dev/null +++ b/Graphics & Performance/Ludology.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-397611 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Ludology" +--- + +# [[Ludology]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Ludology.md]] +--- diff --git a/Graphics & Performance/MDA Framework.md b/Graphics & Performance/MDA Framework.md new file mode 100644 index 00000000..24558e35 --- /dev/null +++ b/Graphics & Performance/MDA Framework.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-14D7A9 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - MDA Framework" +--- + +# [[MDA Framework]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/MDA Framework.md]] +--- diff --git a/Graphics & Performance/MDA-Framework.md b/Graphics & Performance/MDA-Framework.md new file mode 100644 index 00000000..9ae0b496 --- /dev/null +++ b/Graphics & Performance/MDA-Framework.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D62F53 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - MDA-Framework" +--- + +# [[MDA-Framework]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/MDA-Framework.md]] +--- diff --git a/Graphics & Performance/Markov Decision Process (MDP).md b/Graphics & Performance/Markov Decision Process (MDP).md new file mode 100644 index 00000000..236bbedf --- /dev/null +++ b/Graphics & Performance/Markov Decision Process (MDP).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-14D223 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Markov Decision Process (MDP)" +--- + +# [[Markov Decision Process (MDP)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Markov Decision Process (MDP).md]] +--- diff --git a/Graphics & Performance/Markov Decision Processes.md b/Graphics & Performance/Markov Decision Processes.md new file mode 100644 index 00000000..99470b95 --- /dev/null +++ b/Graphics & Performance/Markov Decision Processes.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-336A60 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Markov Decision Processes" +--- + +# [[Markov Decision Processes]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Markov Decision Processes.md]] +--- diff --git a/Graphics & Performance/Mathematical Game Theory.md b/Graphics & Performance/Mathematical Game Theory.md new file mode 100644 index 00000000..349a3947 --- /dev/null +++ b/Graphics & Performance/Mathematical Game Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5BCF2D +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Mathematical Game Theory" +--- + +# [[Mathematical Game Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Mathematical Game Theory.md]] +--- diff --git a/Graphics & Performance/Measure Theory.md b/Graphics & Performance/Measure Theory.md new file mode 100644 index 00000000..4fd2a024 --- /dev/null +++ b/Graphics & Performance/Measure Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-06771D +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Measure Theory" +--- + +# [[Measure Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Measure Theory.md]] +--- diff --git a/Graphics & Performance/Memory Leak Prevention 메모리 누수 방지.md b/Graphics & Performance/Memory Leak Prevention 메모리 누수 방지.md new file mode 100644 index 00000000..e114c95f --- /dev/null +++ b/Graphics & Performance/Memory Leak Prevention 메모리 누수 방지.md @@ -0,0 +1,49 @@ +--- +id: P-REINFORCE-AUTO-21F91F +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Memory Leak Prevention 메모리 누수 방지" +--- + +# [[Memory Leak Prevention 메모리 누수 방지]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> React 애플리케이션 및 WebGL/Three.js 환경에서 해제되지 않은 타이머, 이벤트 리스너, 외부 객체 참조, 또는 GPU 자원으로 인해 시간이 지날수록 메모리 점유율이 증가하여 앱이 느려지거나 크래시되는 현상을 막기 위한 필수적인 자원 관리 및 최적화 기법입니다. + +## 📖 구조화된 지식 (Synthesized Content) +**1. React의 주요 메모리 누수 원인과 클린업(Cleanup)** React 앱이 시간이 지날수록 느려지는 가장 흔한 원인은 언마운트(Unmount)된 컴포넌트의 잔재가 계속 남아 메모리를 점유하는 경우입니다. + +- **미해제 타이머:** `setInterval`이나 `setTimeout`을 실행한 뒤 정리하지 않으면 백그라운드에서 계속 동작합니다. `useEffect`의 클린업(return) 함수에서 `clearInterval` 등을 반드시 호출해야 합니다. +- **미해제 이벤트 리스너:** `window.addEventListener`를 통해 등록한 이벤트도 컴포넌트가 사라질 때 `window.removeEventListener`로 해제해야 합니다. +- **열려있는 웹소켓 연결:** 연결이 열린 채로 방치되지 않도록 클린업 시점에 `ws.close()`를 호출하여 연결을 닫아주어야 합니다. + +**2. 거대한 객체 참조 유지 방지** `useRef` 등을 사용하여 거대한 데이터 세트나 클로저를 참조하고 있는 경우, 컴포넌트 사용이 끝난 후에도 가비지 컬렉터(GC)가 해당 메모리를 회수하지 못합니다. + +- 이를 방지하기 위해 작업이 완료된 거대한 객체 참조에는 명시적으로 `null`을 할당(`processedRef.current = null`)하여 메모리를 해제할 수 있도록 도와야 합니다. + +**3. Three.js / WebGL에서의 GPU 메모리 누수 방지** Three.js나 React Three Fiber(R3F)와 같은 3D 환경에서는 메모리 관리가 더욱 치명적입니다. 자바스크립트는 힙 메모리를 가비지 컬렉션(GC) 하지만, **Three.js는 GPU 자원(Geometry, Material, Texture 등)을 자동으로 가비지 컬렉션하지 않습니다**. + +- 사용이 끝난 3D 객체는 반드시 명시적으로 `.dispose()` 메서드를 호출하여 VRAM 메모리 누수를 막아야 합니다 (예: 4K 텍스처 하나가 64MB 이상의 VRAM을 낭비할 수 있습니다). +- GLTF 모델의 텍스처(ImageBitmap 형태)는 누수를 막기 위해 `texture.source.data.close?.()`와 같이 명시적인 닫기 호출도 필요합니다. + +**4. 메모리 누수 탐지 및 모니터링 (Debugging & Monitoring)** + +- **Chrome DevTools Memory Profiler:** 특정 사용자 행동 전후의 힙 스냅샷(Heap Snapshots)을 찍어 비교하고, 할당 타임라인(Allocation Timelines)을 통해 가비지 컬렉션되어야 할 객체가 그대로 남아있는지 추적하여 누수 지점을 찾아냅니다. +- 개발 환경에서는 `performance.memory.usedJSHeapSize`를 모니터링하여 메모리 점유율이 일정 수치(예: 200MB)를 넘어가면 경고(Alert)를 발생시키도록 감시 코드를 작성해 선제적으로 대응할 수 있습니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[useEffect 클린업(Cleanup)]], [[Garbage Collection (GC) 최적화]], [[Three.js 자원 해제 (Dispose)]], [[Chrome DevTools Memory Profiler]] +- **Projects/Contexts:** [[장기 실행되는 실시간 대시보드 최적화]], [[대규모 WebGL/R3F 3D 게임 환경의 메모리 관리]] +- **Contradictions/Notes:** 최신 자바스크립트 엔진은 매우 훌륭한 가비지 컬렉터(GC)를 갖추고 있으나, DOM 이벤트, 브라우저 API(타이머, 소켓), WebGL GPU 메모리 등 '자바스크립트 엔진 외부의 자원'과 연결된 참조는 GC가 임의로 판단해 지울 수 없습니다. 따라서 외부 자원과의 연결 고리는 개발자가 직접 끊어주어야만 완벽한 메모리 관리가 가능합니다. + +--- + +_Last updated: 2026-04-14_ +- Raw Source: [[00_Raw/2026-04-20/Memory Leak Prevention 메모리 누수 방지.md]] +--- diff --git a/Graphics & Performance/Memory Leaks.md b/Graphics & Performance/Memory Leaks.md new file mode 100644 index 00000000..f539f638 --- /dev/null +++ b/Graphics & Performance/Memory Leaks.md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-5A05AF +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Memory Leaks" +--- + +# [[Memory Leaks]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Three.js 및 WebGL 환경에서 메모리 누수(Memory Leaks)는 GPU 리소스가 자동으로 가비지 컬렉션(Garbage Collection)되지 않아 VRAM 등 메모리 사용량이 지속적으로 증가하는 현상을 의미합니다 [1]. 이는 주로 지오메트리, 재질, 텍스처 등의 렌더링 리소스를 코드 상에서 명시적으로 해제하지 않았을 때 발생합니다 [1, 2]. 메모리 누수를 방지하려면 렌더러 정보를 통한 지속적인 모니터링과 올바른 메모리 관리 기법의 적용이 필수적입니다 [2]. + +## 📖 구조화된 지식 (Synthesized Content) +* **GPU 리소스의 수동 해제:** Three.js는 GPU 리소스를 자동으로 가비지 컬렉션하지 않기 때문에, 더 이상 사용하지 않는 자원은 반드시 개발자가 직접 **`geometry.dispose()`, `material.dispose()`, `texture.dispose()`, `renderTarget.dispose()`**를 호출하여 해제해야 합니다 [1-3]. +* **GLTF ImageBitmap 특수 처리:** GLTF 모델에서 불러온 텍스처는 `ImageBitmap` 객체로 로드되므로 누수를 막기 위한 추가적인 처리가 필요합니다 [3]. 이러한 텍스처는 일반적인 `dispose()` 외에도 반드시 **`texture.source.data.close?.()`**를 호출하여 명시적으로 닫아주어야 ImageBitmap 객체의 메모리 누수를 막을 수 있습니다 [2, 3]. +* **오브젝트 풀링(Object Pooling) 도입:** 런타임 중 빈번하게 생성되고 파괴되는 오브젝트(예: 총알, 파티클, 적 등)는 메모리 할당 오버헤드와 이로 인한 가비지 컬렉션 지연(GC pauses)을 유발할 수 있습니다 [3]. 이를 방지하기 위해 새로운 객체를 매번 할당하는 대신 기존 객체를 재활용하는 **객체 풀링(Object Pooling)** 패턴을 구현해야 합니다 [2, 3]. +* **메모리 누수 모니터링:** 런타임에 메모리 누수가 발생하고 있는지 확인하려면 **`renderer.info.memory`** 지표를 주기적으로 모니터링해야 합니다 [1, 2]. 해당 지표에서 지오메트리와 텍스처의 카운트가 떨어지지 않고 계속해서 상승하기만 한다면, 명확한 메모리 누수로 판단할 수 있습니다 [1, 2]. +* **에셋 스트리밍(Asset Streaming) 및 메모리 한계:** WebGL 컨텍스트는 제한된 메모리 용량(통상 256MB~1GB)을 지니고 있어 이를 초과하면 브라우저 크래시나 프리징이 발생할 수 있습니다 [4]. 무한한 크기의 씬이라도 카메라에서 100 유닛 이상 멀어진 자원들에 대해 `dispose()`를 호출해 메모리를 해제하는 스트리밍 방식을 적용하면, 활성화된 모델만 메모리에 유지하여 메모리 누수 및 고갈을 방지할 수 있습니다 [5]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Garbage Collection]], [[Object Pooling]], [[Dispose()]], [[ImageBitmap]] +- **Projects/Contexts:** [[Three.js Memory Management]], [[Asset Streaming in WebGL]] +- **Contradictions/Notes:** 소스 간의 모순점은 발견되지 않았으며, 제공된 소스들은 모두 공통적으로 Three.js 엔진 환경에서 메모리 누수를 방지하기 위해 '사용이 끝난 자원의 명시적 해제(dispose)'가 절대적으로 필요함을 강조하고 있습니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Memory Leaks.md]] +--- diff --git a/Graphics & Performance/Memory Management.md b/Graphics & Performance/Memory Management.md new file mode 100644 index 00000000..7a5da45d --- /dev/null +++ b/Graphics & Performance/Memory Management.md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-F27A16 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Memory Management" +--- + +# [[Memory Management]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 3D 웹 렌더링 및 그래픽스 환경에서 'Memory Management(메모리 관리)'는 시스템의 제한된 RAM과 GPU VRAM을 효율적으로 통제하여 애플리케이션의 크래시, 메모리 누수, 그리고 가비지 컬렉션(GC)으로 인한 프레임 지연을 방지하는 필수적인 최적화 과정입니다 [1, 2]. 이는 불필요한 GPU 자원의 명시적 폐기, 객체 풀링, 버퍼의 사전 할당 및 텍스처 압축 기술을 포괄합니다 [3-6]. + +## 📖 구조화된 지식 (Synthesized Content) +- **명시적 자원 폐기 및 누수 방지:** Three.js와 같은 엔진은 GPU 자원을 자동으로 가비지 컬렉션(GC)하지 않으므로, 사용이 끝난 Geometry, Material, Texture, Render Target은 반드시 명시적으로 폐기(`dispose()`)해야 합니다 [3, 4, 7, 8]. 특히 GLTF 모델에서 불러온 ImageBitmap 텍스처는 `close()`를 호출해야 메모리 누수를 차단할 수 있습니다 [4, 7]. 렌더러의 메모리 지표(`renderer.info.memory`)를 모니터링하여 누수 여부를 지속적으로 확인해야 합니다 [1, 3, 7]. +- **가비지 컬렉션(GC) 부하 최소화:** 런타임 중 빈번하게 생성 및 파괴되는 객체에 대해서는 매번 새로 메모리를 할당하는 대신 객체 풀링(Object Pooling)을 사용하여 할당 오버헤드와 GC로 인한 일시적인 프레임 끊김(Stuttering) 현상을 방지해야 합니다 [2, 4, 7]. +- **동적 버퍼 할당 문제 통제:** 인스턴싱 환경에서 인스턴스 수가 변경될 때 버퍼 용량을 동적으로 확장하게 두면 잦은 메모리 재할당과 가비지 컬렉션 부하를 야기합니다 [2, 5, 9]. 이를 피하기 위해 최대 예상 인스턴스 수에 맞춰 초기 버퍼를 미리 크게 할당(Preallocate)하거나 링 버퍼(Ring Buffer) 구조를 활용하는 것이 권장됩니다 [2, 5]. +- **텍스처 및 지오메트리 압축:** 4K 해상도와 같은 고해상도 텍스처는 하나당 64MB 이상의 VRAM을 소모하며, 기기의 메모리 한계를 초과할 경우 브라우저 크래시를 유발할 수 있습니다 [1, 3, 10]. KTX2나 Basis Universal 같은 GPU 압축 텍스처 포맷을 도입하면 대역폭 및 메모리 사용량을 75% 이상 절감할 수 있으며 [6, 11, 12], 지오메트리 속성 역시 정밀도를 낮춰 양자화(Quantization)함으로써 버퍼 크기를 대폭 줄일 수 있습니다 [13]. 텍스처는 한 번만 로드하여 캐시한 뒤 여러 곳에서 재사용해야 합니다 [4, 14]. +- **멀티스레딩 환경의 메모리 최적화:** Electron과 같은 환경에서 대규모 CAD 모델을 로드할 때 메인 스레드와 워커 간의 메시지 전달(Structured Cloning)은 메모리 사용량을 두 배로 폭증시킬 위험이 있습니다 [15]. 이를 방지하기 위해 `SharedArrayBuffer`를 활용하여 메모리 복사 없이(Zero-copy) 데이터를 공유하는 아키텍처를 도입해야 합니다 [15, 16]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Garbage Collection]], [[Object Pooling]], [[Texture Compression]], [[GPU Resources]], [[Buffer Allocation]] +- **Projects/Contexts:** [[Three.js]], [[WebGL]], [[Electron]], [[Needle Engine]] +- **Contradictions/Notes:** 웹 기반 프론트엔드 개발에서는 자바스크립트의 자동 메모리 관리에 의존하기 쉬우나, 소스에 따르면 WebGL과 같은 GPU 자원은 가비지 컬렉터의 대상이 아니므로 개발자가 수동으로 자원 해제를 관리해야만 크래시와 누수를 막을 수 있다고 강력히 지적합니다 [3, 7, 17]. 또한, 드로우 콜을 줄이는 인스턴싱 기법이 성능에 유리해 보이지만, 동적으로 크기가 늘어나는 버퍼를 방치할 경우 오히려 심각한 가비지 컬렉션 병목을 초래해 전체 성능을 깎아먹을 수 있음을 경고합니다 [2, 9]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Memory Management.md]] +--- diff --git a/Graphics & Performance/MeshStandardMaterial 조명 연산.md b/Graphics & Performance/MeshStandardMaterial 조명 연산.md new file mode 100644 index 00000000..2b6f7c2f --- /dev/null +++ b/Graphics & Performance/MeshStandardMaterial 조명 연산.md @@ -0,0 +1,35 @@ +--- +id: P-REINFORCE-AUTO-56F596 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - MeshStandardMaterial 조명 연산" +--- + +# [[MeshStandardMaterial 조명 연산]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> MeshStandardMaterial은 금속성-거칠기(metallic-roughness) 워크플로우를 사용하는 물리 기반 렌더링(PBR) 모델을 기반으로 한 Three.js의 재질입니다 [1]. 이 재질은 에너지 보존 법칙과 프레넬 반사(Fresnel reflections)와 같은 복잡한 조명 연산을 필요로 하므로, 세밀한 사실성을 제공하지만 Three.js 내에서 가장 연산 비용이 높은 재질 중 하나로 꼽힙니다 [1]. + +## 📖 구조화된 지식 (Synthesized Content) +* **조명 연산의 구조 및 복잡성:** + MeshStandardMaterial의 조명 연산은 알베도(albedo), 노멀(normal), 금속성(metallic), 거칠기(roughness), 앰비언트 오클루전(AO) 등의 다양한 텍스처 맵과 환경 반사를 결합하여 이루어집니다 [1, 2]. 이 과정에서 화면에 보이는 픽셀(프래그먼트) 하나당 15~20개의 텍스처 샘플을 처리해야 하며, 수십 번의 복잡한 수학적 연산이 요구됩니다 [2]. +* **성능 병목 현상 및 프래그먼트 바운드(Fragment-bound):** + 연산이 매우 무겁기 때문에 수많은 객체가 화면에 겹쳐서 렌더링되는 오버드로우(Overdraw) 현상이 발생할 경우, 중복된 조명 연산으로 인해 씬이 프래그먼트 바운드 상태에 빠지며 심각한 성능 저하를 유발합니다 [3]. 예를 들어 내장 그래픽(iGPU) 환경에서 이 재질을 사용해 100만 개 이상의 삼각형을 렌더링할 경우, 프래그먼트 프로세서가 포화되어 프레임 레이트가 30 이하로 급락할 수 있습니다 [1]. +* **조명 연산 최적화 기법:** + MeshStandardMaterial을 유지하면서 수백 개 이상의 다양한 객체를 최적화하여 그리기 위해, 각 객체의 재질 속성(색상, 방출, 거칠기, 금속성 등)을 하나의 데이터 텍스처에 패킹(packing)하는 기법이 활용될 수 있습니다 [4]. 이후 `onBeforeCompile`을 통해 셰이더가 기존 유니폼(Uniform) 대신 해당 텍스처의 값을 읽도록 수정하면, 동일한 셰이더를 공유하면서 단 한 번의 드로우 콜로 다양한 물리 기반 속성을 렌더링할 수 있습니다 [4]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Physically Based Rendering (PBR)]], [[오버드로우 (Overdraw)]], [[프래그먼트 바운드 (Fragment-bound)]] +- **Projects/Contexts:** [[Three.js 대규모 씬 최적화]] +- **Contradictions/Notes:** 극도의 사실성을 제공하는 현대적인 표준 재질이지만, 연산량이 많아 저사양 하드웨어에서는 비물리 기반의 MeshPhongMaterial 등 보다 가벼운 조명 모델을 사용하는 것이 추천될 만큼 렌더링 비용 면에서 뚜렷한 트레이드오프가 존재합니다 [1, 5]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/MeshStandardMaterial 조명 연산.md]] +--- diff --git a/Graphics & Performance/Meta Quest_Horizon OS.md b/Graphics & Performance/Meta Quest_Horizon OS.md new file mode 100644 index 00000000..a9cd0704 --- /dev/null +++ b/Graphics & Performance/Meta Quest_Horizon OS.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-65D468 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Meta Quest_Horizon OS" +--- + +# [[Meta Quest_Horizon OS]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Meta Quest_Horizon OS.md]] +--- diff --git a/Graphics & Performance/Metal.md b/Graphics & Performance/Metal.md new file mode 100644 index 00000000..119efe29 --- /dev/null +++ b/Graphics & Performance/Metal.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-939802 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Metal" +--- + +# [[Metal]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Metal은 주요 제조업체의 독점적인 차세대 네이티브 GPU API 중 하나입니다 [1]. Vulkan, Direct3D 12(DX12)와 함께 노후화된 OpenGL 표준을 대체하는 웹용 차세대 그래픽 API인 WebGPU의 설계와 프로그래밍 모델에 직접적인 영감을 제공한 핵심 기술입니다 [1-3]. + +## 📖 구조화된 지식 (Synthesized Content) +* **WebGPU 설계의 기반:** WebGPU는 노후화된 OpenGL 표준에 의존하지 않고, Metal을 비롯한 현대적인 네이티브 API(Vulkan, DX12 등)를 수용하도록 밑바닥부터 새롭게 설계되었습니다 [1-3]. +* **명시적(Explicit) 렌더링 접근법:** WebGPU는 Metal과 같은 현대 API들이 사용하는 명시적 접근 방식을 채택했습니다. 기존의 가변적인 전역 상태(global state) 모델 대신 불변하는 파이프라인 객체, 바인드 그룹(bind groups), 커맨드 버퍼를 사용하여 렌더링을 구성함으로써 드라이버 최적화를 극대화하고 버그를 줄입니다 [4]. +* **WebGPU 백엔드(Backend) 어댑터:** Chrome 등의 브라우저에서 개발자 기능을 활성화한 후 WebGPU 어댑터 정보(`requestAdapterInfo()`)를 요청할 때, 실행을 담당하는 백엔드 중 하나로 "metal"이 식별되어 사용될 수 있습니다 [5]. +* **성능 최적화 동향:** WebGPU의 지속적인 업데이트 과정에서 Metal 백엔드 환경을 위한 최적화가 이루어지고 있으며, 일례로 Chrome 130 릴리스에서는 Metal 상에서의 셰이더 컴파일 시간이 개선된 바 있습니다 [6]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGPU]], [[Vulkan]], [[Direct3D 12 (DX12)]], [[OpenGL]] +- **Projects/Contexts:** [[WebGPU Backend]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Metal.md]] +--- diff --git a/Graphics & Performance/Metaverse Architecture.md b/Graphics & Performance/Metaverse Architecture.md new file mode 100644 index 00000000..cbcb3a05 --- /dev/null +++ b/Graphics & Performance/Metaverse Architecture.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-7BDD7C +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Metaverse Architecture" +--- + +# [[Metaverse Architecture]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Metaverse Architecture.md]] +--- diff --git a/Graphics & Performance/Micro-latency.md b/Graphics & Performance/Micro-latency.md new file mode 100644 index 00000000..cf0f995a --- /dev/null +++ b/Graphics & Performance/Micro-latency.md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-B64E78 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Micro-latency" +--- + +# [[Micro-latency]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 웹 그래픽 파이프라인에서 마이크로 레이턴시(Micro-latency)는 60Hz 디스플레이 기준 16.67ms와 같은 엄격한 시간 예산 내에서 하드웨어와 소프트웨어 구성 요소가 동기화할 때 발생하는 미세한 지연을 의미합니다 [1]. 이는 JavaScript 엔진의 가비지 컬렉션, WebGL 및 ANGLE과 같은 API 변환, OS의 컨텍스트 생성, 디스플레이 하드웨어 등 여러 계층에서 복합적으로 발생하며 [2-5], 이러한 미세 지연이 누적되면 프레임 누락이나 인지 가능한 끊김(Stuttering) 현상으로 이어집니다 [1, 5]. 최근에는 Spectre 및 Meltdown과 같은 보안 취약점 완화 조치로 인해 시스템의 기본 마이크로 레이턴시가 소폭 증가하기도 했습니다 [6, 7]. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGL]], [[WebGPU]], [[Spectre and Meltdown]], [[EXT_disjoint_timer_query]], [[ANGLE (Almost Native Graphics Layer Engine)]] +- **Projects/Contexts:** [[WebSplatter (3D Gaussian Splatting)]], [[CesiumJS]], [[Figma]] +- **Contradictions/Notes:** 소스에 따르면, 성능 분석을 위한 정밀한 마이크로 레이턴시 측정의 필요성과 시스템 보안(Spectre/Meltdown 공격 방어) 사이에 명확한 상충(Conflict)이 존재합니다. 고정밀 타이머가 사이드 채널 공격에 악용될 수 있다는 연구 결과에 따라 브라우저 벤더들은 `EXT_disjoint_timer_query`를 비활성화하거나 타이머 해상도를 인위적으로 낮추는(Quantization) 타협안을 채택해야만 했습니다 [6, 10-12, 18]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Micro-latency.md]] +--- diff --git a/Graphics & Performance/Minecraft.md b/Graphics & Performance/Minecraft.md new file mode 100644 index 00000000..09338166 --- /dev/null +++ b/Graphics & Performance/Minecraft.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A3F579 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Minecraft" +--- + +# [[Minecraft]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Minecraft.md]] +--- diff --git a/Graphics & Performance/Minecraft_ Education Edition.md b/Graphics & Performance/Minecraft_ Education Edition.md new file mode 100644 index 00000000..18eb5c70 --- /dev/null +++ b/Graphics & Performance/Minecraft_ Education Edition.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-7091B6 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Minecraft_ Education Edition" +--- + +# [[Minecraft_ Education Edition]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Minecraft_ Education Edition.md]] +--- diff --git a/Graphics & Performance/Mobile Gaming Monetization Strategies.md b/Graphics & Performance/Mobile Gaming Monetization Strategies.md new file mode 100644 index 00000000..a36eedfe --- /dev/null +++ b/Graphics & Performance/Mobile Gaming Monetization Strategies.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-48096A +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Mobile Gaming Monetization Strategies" +--- + +# [[Mobile Gaming Monetization Strategies]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Mobile Gaming Monetization Strategies.md]] +--- diff --git a/Graphics & Performance/Multi-threaded Architecture.md b/Graphics & Performance/Multi-threaded Architecture.md new file mode 100644 index 00000000..4c927d37 --- /dev/null +++ b/Graphics & Performance/Multi-threaded Architecture.md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-4271F6 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Multi-threaded Architecture" +--- + +# [[Multi-threaded Architecture]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 자바스크립트의 단일 스레드(Single-thread) 제약을 극복하기 위해 웹 워커(Web Worker)와 OffscreenCanvas를 활용하여 무거운 CPU 연산이나 3D 그래픽 렌더링을 백그라운드로 분리하고, 메인 스레드와 고효율로 상태를 동기화하여 매끄러운 반응성을 보장하는 진보된 애플리케이션 설계 패턴입니다. + +## 📖 구조화된 지식 (Synthesized Content) +**1. 멀티스레딩의 필요성과 Web Worker 분리** 자바스크립트는 기본적으로 단일 스레드 환경이므로 대규모 데이터 정렬, 이미지 처리, 물리 연산 등 무거운 작업을 수행하면 메인 스레드가 블로킹되어 UI가 멈추는 프리징(Freezing) 현상이 발생합니다. 이를 방지하기 위해 무거운 연산을 웹 워커(Web Worker)로 오프로딩(Offloading)하면, UI 상호작용은 메인 스레드에서 방해 없이 처리하고 연산은 백그라운드 스레드에서 병렬로 진행할 수 있습니다. React 앱에서는 `@koale/useworker`와 같은 훅 기반 라이브러리를 통해 워커 설정을 단순화하여 활용할 수 있습니다. + +**2. OffscreenCanvas와 WebGL/R3F 렌더링 분리** 복잡한 3D 씬을 다루는 WebGL 애플리케이션이나 Three.js/React Three Fiber(R3F) 환경의 경우 렌더링 연산 자체가 메인 스레드 자원을 크게 소모합니다. `OffscreenCanvas`를 사용하면 DOM과 Canvas API를 분리하여 캔버스의 제어권을 웹 워커로 넘길 수 있습니다. 이 구조에서는 렌더링과 DOM 조작이 물리적으로 분리되어 서로의 성능에 영향을 주지 않으며, 메인 스레드의 트래픽(과부하)과 무관하게 워커에서 부드러운 애니메이션을 독립적으로 유지할 수 있습니다. + +**3. 대리 인터랙션(Event Forwarding) 시스템** 웹 워커 내부에는 DOM이나 `window` 객체가 존재하지 않으므로 사용자의 마우스 클릭, 터치 등의 이벤트를 직접 수신할 수 없습니다. 따라서 메인 스레드에서 이벤트를 캡처한 뒤, 이벤트의 타입과 포인터 좌표 등 필수 데이터만 워커로 전달(`postMessage`)하여 워커 내부에서 상호작용 및 레이캐스팅(Raycasting)을 처리하도록 하는 이벤트 포워딩 파이프라인 구축이 필수적입니다. + +**4. 고효율 상태 동기화 (State Synchronization)** 메인 스레드(React DOM UI)와 워커(WebGL 씬 또는 연산 로직) 양쪽에서 동일한 앱 상태를 읽고 써야 하는 경우, 스레드 간 상태 동기화가 가장 큰 과제가 됩니다. + +- **프록시 및 델타 동기화:** Valtio와 같은 프록시 기반 상태 관리 도구를 사용하여 로컬 저장소를 구축한 뒤, 상태가 변할 때마다 변경된 작업 내용(Operations/Delta)만 `Broadcast Channel API`를 통해 상대 스레드에 전달하여 동기화합니다. +- **SharedArrayBuffer:** 지연 시간이 극도로 낮아야 하는 환경이나 ECS 기반의 게임에서는 두 스레드가 메모리를 직접 공유하는 `SharedArrayBuffer`를 사용하여 직렬화(Serialization) 및 복사 비용 없이 원자적(Atomic) 연산을 수행합니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Web Worker (웹 워커)]], [[OffscreenCanvas]], [[SharedArrayBuffer]], [[상태 관리 최적화 (Zustand, Jotai, Valtio)]] +- **Projects/Contexts:** [[고성능 실시간 상호작용 시스템을 위한 React 기반 게임 엔진 아키텍처]], [[대규모 데이터 분석 및 시각화 대시보드]] +- **Contradictions/Notes:** 멀티스레딩이 무조건적인 성능 향상을 가져오지는 않습니다. 메인 스레드와 워커 스레드 간에 데이터를 주고받는 과정(`postMessage`)에는 직렬화로 인한 오버헤드(약 5~10ms)가 수반됩니다. 따라서 연산 시간이 50ms 미만인 비교적 가벼운 작업을 워커로 분리하면, 통신 비용이 연산 시간보다 커져 오히려 전체 성능이 하락할 수 있으므로 철저한 프로파일링을 기반으로 병목 구간에만 도입해야 합니다. + +--- + +_Last updated: 2026-04-15_ +- Raw Source: [[00_Raw/2026-04-20/Multi-threaded Architecture.md]] +--- diff --git a/Graphics & Performance/NASA-Jet-Propulsion-Laboratory-Software-Standards.md b/Graphics & Performance/NASA-Jet-Propulsion-Laboratory-Software-Standards.md new file mode 100644 index 00000000..f5130205 --- /dev/null +++ b/Graphics & Performance/NASA-Jet-Propulsion-Laboratory-Software-Standards.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-33A414 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - NASA-Jet-Propulsion-Laboratory-Software-Standards" +--- + +# [[NASA-Jet-Propulsion-Laboratory-Software-Standards]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/NASA-Jet-Propulsion-Laboratory-Software-Standards.md]] +--- diff --git a/Graphics & Performance/NVIDIA Omniverse.md b/Graphics & Performance/NVIDIA Omniverse.md new file mode 100644 index 00000000..04954343 --- /dev/null +++ b/Graphics & Performance/NVIDIA Omniverse.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-068667 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - NVIDIA Omniverse" +--- + +# [[NVIDIA Omniverse]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/NVIDIA Omniverse.md]] +--- diff --git a/Graphics & Performance/Narrative-Branching-Models.md b/Graphics & Performance/Narrative-Branching-Models.md new file mode 100644 index 00000000..c236262d --- /dev/null +++ b/Graphics & Performance/Narrative-Branching-Models.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-4FC48D +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Narrative-Branching-Models" +--- + +# [[Narrative-Branching-Models]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Narrative-Branching-Models.md]] +--- diff --git a/Graphics & Performance/Narratology.md b/Graphics & Performance/Narratology.md new file mode 100644 index 00000000..9962f67e --- /dev/null +++ b/Graphics & Performance/Narratology.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-BAAE58 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Narratology" +--- + +# [[Narratology]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Narratology.md]] +--- diff --git a/Graphics & Performance/Needle Engine.md b/Graphics & Performance/Needle Engine.md new file mode 100644 index 00000000..48241f79 --- /dev/null +++ b/Graphics & Performance/Needle Engine.md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-8D909B +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Needle Engine" +--- + +# [[Needle Engine]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Needle Engine은 3D 렌더링 및 웹 애플리케이션 개발을 지원하는 엔진이다 [1]. 동일한 객체(예: 나무)를 반복적으로 렌더링할 때 발생하는 드로우 콜 증가를 막기 위해 GPU 인스턴싱(GPU Instancing) 및 `InstancedMesh`를 활용한 최적화를 제공한다 [1, 2]. 내부적으로 인스턴싱 버퍼가 런타임에 동적으로 증가하면 성능 지연이 발생할 수 있으므로, 버퍼 사전 할당이나 프로그래밍 방식의 인스턴스 생성이 권장된다 [2, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **다중 인스턴스 처리와 드로우 콜 최적화**: 수많은 반복 객체를 렌더링할 때 씬에 개별 객체로 배치하면 엔진이 이를 독립적으로 처리하여 드로우 콜이 크게 증가한다 [1]. Needle Engine에서는 이를 해결하기 위해 명시적으로 GPU 인스턴싱을 사용하여 여러 객체를 하나의 인스턴싱 배치로 통합하는 방식을 취해야 한다 [1]. +- **동적 버퍼 확장 문제 및 대안**: 인스턴싱 시스템은 초기에 낮은 버퍼 용량으로 시작하며, 런타임에 인스턴스가 추가되어 버퍼가 동적으로 늘어날 경우(`[Instancing] Growing Buffer`) 성능 지연(Stall) 및 메모리 할당 오류가 발생할 수 있다 [3]. 이를 방지하려면 `RendererInstancing.d.ts.md` 소스의 `InstancingHandler.getStartInstanceCount`를 오버라이드하여, 엔진 시작 시 예상되는 최대 인스턴스 수만큼 버퍼를 미리 할당하는 방법이 권장된다 [3]. +- **프로그래밍 방식의 InstancedMesh 활용**: 외부 툴(예: 블렌더)에서 단일 에셋을 익스포트한 후, 코드 상에서 `InstancedMesh` 객체를 생성하여 프로그래밍 방식으로 런타임에 인스턴스화하면 버퍼의 동적 확장 문제를 피할 수 있다 [2]. +- **오버드로우(Overdraw) 관리**: 인스턴싱을 적용하더라도 나뭇잎과 같은 투명한(Transparent) 재질을 겹쳐서 렌더링하면 오버드로우로 인해 렌더링 성능이 크게 저하될 수 있다 [4]. 이를 불투명(Opaque) 및 컷아웃(Cutout) 모드로 변경하면 프레임 속도를 대폭 개선할 수 있다 [5]. +- **압축 환경에서의 버그 해결**: 프로덕션 빌드나 프리뷰 압축 적용 시 텍스처 누락이나 인스턴싱 렌더링 오류가 발생할 수 있으며, 이는 임포트 설정을 점검하거나 `@needle-tools/engine` 패키지(예: `3.19.11-beta.1`) 업데이트를 통해 해결할 수 있다 [2, 6, 7]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[GPU Instancing]], [[InstancedMesh]], [[Draw Call]], [[Overdraw]] +- **Projects/Contexts:** [[Needle Engine 다중 인스턴스(Multiple Instance) 렌더링 최적화 논의]] +- **Contradictions/Notes:** Needle Engine 어시스턴트는 성능 지연 방지를 위해 `InstancingHandler.getStartInstanceCount`를 사용해 버퍼를 사전 할당할 것을 제안했지만, 실제 사용자는 이 방식이 매칭되는 모든 렌더러마다 해당 크기의 배열을 반복해서 할당하기 때문에 의도한 최적화 효과를 완전히 얻기 어렵다고 보고했다 [3, 8]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Needle Engine.md]] +--- diff --git a/Graphics & Performance/Object Pooling.md b/Graphics & Performance/Object Pooling.md new file mode 100644 index 00000000..8a8a1653 --- /dev/null +++ b/Graphics & Performance/Object Pooling.md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-18523F +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Object Pooling" +--- + +# [[Object Pooling]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Object Pooling(오브젝트 풀링)은 총알, 파티클, 적 캐릭터와 같이 런타임 중 빈번하게 생성되고 파괴되는 개체들의 성능을 최적화하기 위해 사용되는 메모리 관리 기법입니다 [1]. 매번 새로운 객체를 메모리에 할당하는 대신, 사전에 생성해 둔 객체들의 풀(Pool)을 구축하여 이를 재사용하는 방식으로 동작합니다 [1]. 이를 통해 애플리케이션 실행 중 발생하는 메모리 할당 오버헤드와 가비지 컬렉션(Garbage Collection, GC)으로 인한 프레임 멈춤 현상을 효과적으로 방지할 수 있습니다 [1, 2]. 대규모 3D 씬과 동적인 렌더링 환경에서는 안정적인 메모리 제어와 누수 방지를 위해 객체 풀링 전략을 사전에 수립하는 것이 필수적입니다 [3, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +- **가비지 컬렉션(GC) 부하 및 오버헤드 방지:** 객체의 지속적인 생성과 소멸은 가비지 컬렉터를 잦게 작동시켜 시스템에 부하를 줍니다. 객체 풀링을 도입하면 빈번하게 사용되는 리소스를 재사용하므로, 메모리 할당 오버헤드와 GC에 의한 일시 정지(Pauses)를 피할 수 있습니다 [1]. +- **프리워밍(Pre-warming) 전략:** 런타임에 객체를 할당할 때 생기는 갑작스러운 성능 저하(Allocation spike)를 피하기 위해, 애플리케이션 로딩 단계에서 풀을 미리 생성하고 데워두는(Pre-warm) 방식이 강력히 권장됩니다 [1]. +- **메모리 누수(Memory Leak) 관리:** Three.js와 같은 3D 그래픽스 환경에서 메모리 누수를 처리하는 핵심 지침 중 하나는, 수명이 짧고 빈번히 등장하는 리소스들에 대해 자원 풀링(Resource pooling)을 구현하여 메모리 할당을 통제하는 것입니다 [3]. +- **메쉬 재활용(Recycling Meshes)을 통한 CPU 최적화:** 한 번에 너무 많은 메쉬를 처리해야 할 때, 논리적인 데이터 맵을 사용하여 객체의 상태를 추적하고, 화면에 보이는 객체만을 '사전 빌드된 메쉬 풀(pool of pre-built meshes)'을 이용해 렌더링함으로써 CPU 부담을 크게 낮출 수 있습니다 [2]. +- **대규모 메모리 대역폭 제어:** 동적인 환경에서 인스턴스 버퍼가 한계를 초과하여 재할당되는 일이 잦아지면 치명적인 GC 부하가 발생합니다. 이를 방지하기 위해 엄격한 메모리 예산 설정과 함께 객체 풀링 전략이 사전에 철저히 수립되어야 합니다 [4]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Memory Management]], [[Garbage Collection]], [[Memory Leaks]] +- **Projects/Contexts:** [[Three.js]], [[Babylon.js]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. (주어진 소스 내에서 오브젝트 풀링의 효과나 방식에 대해 상충하는 의견은 존재하지 않으며, 모두 성능 최적화를 위해 적극적으로 권장하고 있습니다.) + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Object Pooling.md]] +--- diff --git a/Graphics & Performance/OffscreenCanvas Safari 제약 사항.md b/Graphics & Performance/OffscreenCanvas Safari 제약 사항.md new file mode 100644 index 00000000..706d9a9c --- /dev/null +++ b/Graphics & Performance/OffscreenCanvas Safari 제약 사항.md @@ -0,0 +1,35 @@ +--- +id: P-REINFORCE-AUTO-600505 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - OffscreenCanvas Safari 제약 사항" +--- + +# [[OffscreenCanvas Safari 제약 사항]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Safari 브라우저에서는 `OffscreenCanvas`와 WebGL의 결합 사용이 아직 완전히 지원되지 않아, 워커 스레드와 메인 스레드용 렌더링 코드를 별도로 유지보수하거나 폴백(Fallback)을 구현해야 하는 치명적인 제약이 있습니다. + +## 📖 구조화된 지식 (Synthesized Content) +**1. OffscreenCanvas와 WebGL 지원 부족** Safari 브라우저에서는 오프스크린 캔버스와 WebGL을 함께 사용하는 환경(`offscreen canvas + webgl`)이 아직 제대로 지원되지 않습니다. 이러한 한계 때문에 워커 내부에서 DOM과 통신(`postMessage`)해야 하는 복잡한 구조를 구현할 때 큰 제약이 따릅니다. + +**2. 코드 분기(Fork)의 강제 및 유지보수 부담** Safari의 지원 부족 문제로 인해, 개발자들은 앱을 웹 워커에서 실행되는 버전과 메인 스레드에서 실행되는 폴백(Fallback) 버전의 두 갈래(two forks)로 나누어 유지보수해야만 했습니다. 이러한 호환성 이슈와 개발의 번거로움은 Three.js 생태계에서 OffscreenCanvas 기술이 오랫동안 대중화되지 못했던 가장 큰 원인 중 하나였습니다. + +**3. 해결책 및 우회 전략 (Fallback & Broadcast API)** 최근에는 `@react-three/offscreen`과 같은 라이브러리를 통해 이 문제를 비교적 쉽게 해결할 수 있습니다. 해당 라이브러리는 `fallback` 프롭(Prop)을 제공하여, Safari처럼 OffscreenCanvas를 지원하지 않는 환경에서는 자동으로 기존처럼 메인 스레드에서 씬(Scene)이 렌더링되도록 우회해 줍니다. 또한, Safari 환경의 한계를 고려하여 3D 씬을 철저히 독립적으로(Self-contained) 구성하는 것이 좋으며, 부득이하게 DOM과 통신해야 할 경우 `postMessage` 대신 웹 브로드캐스트 API(Web Broadcast API)를 사용하는 것이 권장됩니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[OffscreenCanvas]], [[Web Worker (웹 워커)]], [[React Three Fiber (R3F)]], [[Cross-browser Compatibility (크로스 브라우저 호환성)]] +- **Projects/Contexts:** [[고성능 멀티스레드 React 앱 아키텍처]], [[실시간 3D 웹 게임 렌더링 환경]] +- **Contradictions/Notes:** Safari 브라우저가 2025년 9월(v26)부터 WebGPU 지원을 시작하는 등 그래픽 지원 범위를 넓혀가고 있으나, `OffscreenCanvas`를 활용한 WebGL 멀티스레드 렌더링에 대해서는 여전히 제약이 보고되고 있으므로 프로덕션 환경에서는 반드시 메인 스레드용 `fallback` 컴포넌트를 제공해야 안정성을 보장할 수 있습니다. + +--- + +_Last updated: 2026-04-15_ +- Raw Source: [[00_Raw/2026-04-20/OffscreenCanvas Safari 제약 사항.md]] +--- diff --git a/Graphics & Performance/OffscreenCanvas 기반 멀티스레드 렌더링 구현.md b/Graphics & Performance/OffscreenCanvas 기반 멀티스레드 렌더링 구현.md new file mode 100644 index 00000000..7e839d80 --- /dev/null +++ b/Graphics & Performance/OffscreenCanvas 기반 멀티스레드 렌더링 구현.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-58B572 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - OffscreenCanvas 기반 멀티스레드 렌더링 구현" +--- + +# [[OffscreenCanvas 기반 멀티스레드 렌더링 구현]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/OffscreenCanvas 기반 멀티스레드 렌더링 구현.md]] +--- diff --git a/Graphics & Performance/OffscreenCanvas.md b/Graphics & Performance/OffscreenCanvas.md new file mode 100644 index 00000000..e0247c6e --- /dev/null +++ b/Graphics & Performance/OffscreenCanvas.md @@ -0,0 +1,39 @@ +--- +id: P-REINFORCE-AUTO-715F80 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - OffscreenCanvas" +--- + +# [[OffscreenCanvas]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> **OffscreenCanvas**는 DOM과 분리된 백그라운드 스레드(웹 워커)에서 그래픽 렌더링을 수행할 수 있게 해주는 웹 API로, 무거운 3D 렌더링이나 캔버스 연산 중에도 메인 스레드의 UI 반응성을 쾌적하게 유지할 수 있도록 돕는 핵심 최적화 기술입니다. + +## 📖 구조화된 지식 (Synthesized Content) +**1. DOM 의존성 분리 및 Web Worker 활용** 기존의 캔버스 렌더링은 `` 문서의 `` 요소(DOM)와 직접적으로 결합되어 있어 메인 스레드에서만 실행이 가능했습니다. 하지만 OffscreenCanvas는 이름 그대로 화면 밖(Off-screen)에서 동작하여 DOM과의 동기화 과정을 생략합니다. 이 덕분에 DOM에 접근할 수 없는 웹 워커(Web Worker) 환경에서도 Canvas API와 WebGL을 사용하여 백그라운드 렌더링이 가능해집니다. + +**2. 메인 스레드 차단 방지 (Unblocking Main Thread)** 복잡한 Three.js 씬이나 무거운 2D/3D 연산을 메인 스레드에서 실행하면 UI가 멈추는(Freezing) 현상이 발생할 수 있습니다. `transferControlToOffscreen()` 메서드를 호출하여 캔버스의 제어권을 워커 스레드로 넘기면(Offloading), 무거운 그래픽 연산이 메인 스레드(사용자의 스크롤, 클릭 등 상호작용)와 독립적으로 실행되어 시각적인 버벅거림(Jank) 없이 부드러운 애니메이션을 보장합니다. + +**3. 이벤트 포워딩(Event Forwarding)과 통신 오버헤드** 웹 워커 내부에는 `window`나 `document` 객체가 존재하지 않으므로 사용자의 마우스 클릭, 터치 등의 이벤트를 직접 수신할 수 없습니다. 따라서 OffscreenCanvas를 인터랙티브하게 사용하려면 메인 스레드에서 DOM 이벤트를 캡처한 뒤, 좌표 등의 정보를 `postMessage` API를 통해 워커로 전달(Forwarding)하는 추가적인 래핑(Wrapping) 작업이 필요합니다. + +**4. 상태 동기화 (State Synchronization)** DOM을 제어하는 React 메인 앱과 WebGL을 렌더링하는 워커 스레드는 메모리를 공유하지 않기 때문에 애플리케이션 상태를 양쪽에서 읽고 써야 할 경우 상태 동기화가 필수적입니다. 이를 해결하기 위해 `SharedArrayBuffer`를 통해 메모리를 직접 공유하거나, `Valtio`와 같은 프록시 기반 상태 관리 도구와 `Broadcast Channel API`를 결합하여 변경된 데이터(Delta)만 메시지로 주고받는 구조를 구현해야 합니다. + +**5. React 생태계 통합 (React Three Fiber)** R3F 생태계에서는 `@react-three/offscreen` 패키지를 통해 손쉽게 구현할 수 있습니다. 기존의 `` 대신 이 패키지의 ``를 사용하면 이벤트 포워딩과 Three.js 인터페이스 패치 작업이 자동으로 처리되어, 개발자가 작성한 코드를 수정할 필요 없이 워커에서 실행되도록 만들어줍니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Web Worker (웹 워커)]], [[Multi-threaded Architecture (멀티스레드 아키텍처)]], [[React Three Fiber (R3F)]], [[Valtio (Proxy State 관리)]], [[SharedArrayBuffer]] +- **Projects/Contexts:** [[고성능 멀티스레드 React 앱 아키텍처]], [[무거운 렌더링 연산을 동반하는 WebGL 데이터 시각화]] +- **Contradictions/Notes:** OffscreenCanvas 기능은 과거 Safari 브라우저에서 오랫동안 완벽히 지원되지 않아 프로젝트를 메인 스레드용과 워커용 두 갈래(Fork)로 유지보수해야 하는 치명적인 단점이 있었습니다. 2025년 9월(Safari v26)부터 지원이 확대되었으나, 완벽한 크로스 브라우저 호환성을 위해서는 API 지원 여부를 감지하여 워커를 지원하지 않는 환경에서는 메인 스레드에서 렌더링이 이루어지도록 `fallback` 컴포넌트를 반드시 제공해야 합니다. + +--- + +_Last updated: 2026-04-15_ +- Raw Source: [[00_Raw/2026-04-20/OffscreenCanvas.md]] +--- diff --git a/Graphics & Performance/Open Metaverse Framework.md b/Graphics & Performance/Open Metaverse Framework.md new file mode 100644 index 00000000..1367e6a1 --- /dev/null +++ b/Graphics & Performance/Open Metaverse Framework.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-4C9A2B +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Open Metaverse Framework" +--- + +# [[Open Metaverse Framework]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Open Metaverse Framework.md]] +--- diff --git a/Graphics & Performance/Open-World Design Paradigms.md b/Graphics & Performance/Open-World Design Paradigms.md new file mode 100644 index 00000000..fd6464a5 --- /dev/null +++ b/Graphics & Performance/Open-World Design Paradigms.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B36DC4 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Open-World Design Paradigms" +--- + +# [[Open-World Design Paradigms]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Open-World Design Paradigms.md]] +--- diff --git a/Graphics & Performance/OpenGL ES 20.md b/Graphics & Performance/OpenGL ES 20.md new file mode 100644 index 00000000..b152d200 --- /dev/null +++ b/Graphics & Performance/OpenGL ES 20.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-8560F5 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - OpenGL ES 20" +--- + +# [[OpenGL ES 20]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> OpenGL ES 2.0은 2011년에 도입된 크로스 플랫폼 웹 그래픽 라이브러리인 WebGL의 근간이 되는 그래픽 API입니다 [1, 2]. 이 아키텍처는 전역 그래픽 상태를 설정하고 유지하는 상태 머신(state-machine) 설계를 사용하며, 자바스크립트 코드를 GPU 명령으로 변환하는 역할을 수행합니다 [2, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +* **WebGL의 핵심 기반:** WebGL은 OpenGL ES 2.0을 기반으로 구축되어, 웹 브라우저에서 자바스크립트를 이용해 3D 장면을 렌더링할 수 있도록 지원하는 라이브러리입니다 [1, 2]. +* **상태 머신(State-Machine) 모델:** OpenGL ES 2.0에서 상속된 상태 머신 설계를 따라 렌더링을 처리합니다. 바인딩된 텍스처, 활성 셰이더, 블렌드 모드 등의 전역 상태(global state)를 한 번 설정하면 개발자가 이를 명시적으로 변경할 때까지 해당 상태가 지속적으로 유지됩니다 [3]. +* **구조적 한계 및 병목 현상:** 이 아키텍처는 2011년 당시에는 합리적인 구조였으나, 2011년 사양에 기능이 고정되어 있어 현대 GPU의 발전된 기능을 활용할 수 없다는 근본적인 한계를 지닙니다 [3, 4]. 또한 규모가 커질수록 상태 변경을 잊어버려 발생하는 미세한 버그나, 단일 스레드 기반의 명령 제출로 인한 CPU 병목 현상 등을 유발합니다 [3]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGL]], [[WebGPU]], [[State-machine design]] +- **Projects/Contexts:** [[Web Graphics Rendering API]], [[3D Web-based HMI]] +- **Contradictions/Notes:** 소스 내에 직접적인 모순은 없으나, OpenGL ES 2.0 기반의 상태 머신 모델이 개발 초기(2011년)에는 타당한 설계였음에도 불구하고 오늘날의 대규모 그래픽 처리에서는 심각한 버그와 병목 현상의 원인이 되고 있음이 지적됩니다 [3, 4]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/OpenGL ES 2.0.md]] +--- diff --git a/Graphics & Performance/OpenGL ES.md b/Graphics & Performance/OpenGL ES.md new file mode 100644 index 00000000..bb562acf --- /dev/null +++ b/Graphics & Performance/OpenGL ES.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-D76AA6 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - OpenGL ES" +--- + +# [[OpenGL ES]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> OpenGL ES(특히 OpenGL ES 2.0)는 웹 기반 3D 렌더링을 지원하는 크로스 플랫폼 그래픽 라이브러리인 WebGL의 기반이 되는 그래픽 API입니다 [1, 2]. 텍스처나 셰이더 등의 전역 상태가 한 번 설정되면 변경될 때까지 유지되는 상태 머신(State-machine) 디자인을 채택하고 있습니다 [3]. 2011년경의 사양에 고정되어 있어, 최신 GPU의 고급 기능을 활용하기에는 아키텍처상 근본적인 한계를 지니고 있습니다 [3, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +- **WebGL의 기술적 토대:** WebGL은 OpenGL ES 2.0을 기반으로 구축되어 JavaScript 코드를 GPU 명령어로 변환하며, 지난 10년 이상 웹 3D 렌더링의 핵심 역할을 수행해 왔습니다 [1, 2]. +- **작동 방식과 호환성:** OpenGL ES 2.0에서 상속받은 상태 머신(State-machine) 모델을 사용하여 렌더링 상태를 관리합니다 [3]. Windows 환경의 브라우저(Chrome, Firefox, Opera 등)는 ANGLE이라는 기술을 사용하여 WebGL(OpenGL ES) 호출을 Direct3D로 변환하는 방식으로 구동됩니다 [5]. +- **구조적 한계:** WebGL이 OpenGL ES 2.0을 기반으로 설계된 탓에, 기능 세트가 2011년 사양에 묶여 있는 근본적인 한계가 존재합니다 [4]. 이로 인해 최신 GPU의 컴퓨트 셰이더(Compute shader)나 고급 텍스처 포맷 등을 활용할 수 없으며, 규모가 커질수록 전역 상태 관리로 인한 미묘한 버그나 CPU 병목 현상이 발생하기 쉽습니다 [3, 4]. +- **최신 브라우저 동향:** Chrome 146 등의 최신 업데이트에서는 WebGPU가 OpenGL ES 3.1 위에서 호환 모드(compatibility mode)로 동작할 수 있도록 지원하는 기능이 추가되고 있습니다 [6]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGL]], [[WebGPU]], [[ANGLE]] +- **Projects/Contexts:** [[3D Web-based HMI]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/OpenGL ES.md]] +--- diff --git a/Graphics & Performance/Opera.md b/Graphics & Performance/Opera.md new file mode 100644 index 00000000..d297a163 --- /dev/null +++ b/Graphics & Performance/Opera.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-71E521 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Opera" +--- + +# [[Opera]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Opera는 웹 환경에서 그래픽 및 렌더링 기술을 구동하기 위해 사용되는 웹 브라우저 중 하나입니다. 업로드된 소스에서는 브라우저의 독립적인 특징보다는 WebGL 및 WebGPU와 같은 웹 그래픽 API의 호환성 및 지원 여부를 설명할 때 제한적으로만 언급됩니다. 전반적으로 Opera에 초점을 맞춘 상세한 설명은 존재하지 않으므로 소스에 관련 정보가 부족합니다. + +## 📖 구조화된 지식 (Synthesized Content) +* **ANGLE을 통한 WebGL 변환:** Windows 운영 체제 환경에서 Opera 브라우저는 Chrome, Firefox와 마찬가지로 WebGL(OpenGL ES) 호출을 Direct3D로 변환하기 위해 ANGLE 기술을 사용합니다 [1]. +* **WebGPU 지원 현황:** 2026년 1월 기준으로, Opera는 Chrome, Edge 브라우저와 함께 데스크톱 플랫폼 전반에서 차세대 그래픽 API인 WebGPU를 공식적으로 탑재하여(ship) 지원하고 있습니다 [2]. +* **`EXT_disjoint_timer_query` 확장 기능 호환성:** WebGL 렌더링 파이프라인을 지연시키지 않고 GL 명령의 실행 시간을 측정하는 `EXT_disjoint_timer_query` 기능에 대해, 데스크톱용 Opera(버전 57 이상)는 부분적인 지원(Partial support)을 제공합니다 [3, 4]. 그러나 모바일 환경인 Opera Android(버전 34-46)에서는 해당 기능을 지원하지 않는 것으로 확인됩니다 [4]. +* **한계:** Opera 브라우저의 전반적인 아키텍처나 기능에 대해서는 소스에 관련 정보가 부족합니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGL]], [[WebGPU]], [[ANGLE]] +- **Projects/Contexts:** [[웹 브라우저 그래픽 API 호환성]] +- **Contradictions/Notes:** 데스크톱 Opera는 특정 WebGL 확장 기능(`EXT_disjoint_timer_query`)을 부분적으로나마 지원하지만, 모바일(Android) 버전의 Opera에서는 해당 기능이 전혀 지원되지 않는 등 플랫폼에 따른 지원 격차가 존재합니다 [4]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Opera.md]] +--- diff --git a/Graphics & Performance/Operant Conditioning.md b/Graphics & Performance/Operant Conditioning.md new file mode 100644 index 00000000..4c96f36c --- /dev/null +++ b/Graphics & Performance/Operant Conditioning.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-8BF017 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Operant Conditioning" +--- + +# [[Operant Conditioning]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Operant Conditioning.md]] +--- diff --git a/Graphics & Performance/PBR.md b/Graphics & Performance/PBR.md new file mode 100644 index 00000000..7ced945b --- /dev/null +++ b/Graphics & Performance/PBR.md @@ -0,0 +1,37 @@ +--- +id: P-REINFORCE-AUTO-773FEF +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - PBR" +--- + +# [[PBR]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> PBR(Physically-Based Rendering)은 현실 세계의 물질 물리 법칙을 적용하여 사실적인 시각 효과를 달성하는 렌더링 방법론입니다 [1]. 알베도(albedo), 노멀(normal), 메탈릭(metallic), 러프니스(roughness), 앰비언트 오클루전(ambient occlusion) 등의 다중 텍스처 맵을 조합하여 표면 속성을 세밀하게 정의합니다 [2]. 사실감을 표현하는 최신 표준 기술이지만, 에너지 보존 법칙과 프레넬(Fresnel) 반사 등의 복잡한 계산을 수반하기 때문에 그래픽 연산 비용이 매우 높다는 특징이 있습니다 [3]. + +## 📖 구조화된 지식 (Synthesized Content) +* **물리 기반 속성 정의와 워크플로우:** + PBR은 주로 메탈릭-러프니스 워크플로우를 기반으로 실제와 같은 재질을 표현합니다. 표면의 금속성을 정의하는 메탈릭 맵과 표면 미세 구조의 거칠기를 정의하는 러프니스 맵을 통해 물리적 정확도를 확보합니다 [1, 3]. + +* **높은 연산 비용과 성능 병목:** + 풀(Full) PBR 재질을 환경 반사와 함께 렌더링할 경우, 눈에 보이는 픽셀마다 15~20개의 텍스처 샘플링과 수십 번의 수학적 연산이 요구됩니다 [2]. Three.js에서 PBR을 구현한 `MeshStandardMaterial`은 가장 컴퓨팅 비용이 높은 재질로, 내장된 그래픽 하드웨어(예: Intel UHD) 환경에서 100만 개 이상의 삼각형을 처리할 때 프래그먼트 프로세서를 포화시켜 프레임 속도를 30 FPS 이하로 떨어뜨릴 수 있습니다 [3, 4]. + +* **PBR 최적화 기법 (텍스처 채널 패킹):** + 메모리 대역폭의 한계를 극복하기 위해 텍스처 채널 패킹(Texture Channel Packing) 기술이 사용됩니다 [1]. 메탈릭 값을 블루(B) 채널에, 러프니스 값을 그린(G) 채널에 저장하여 여러 장의 텍스처를 하나로 병합합니다 [1]. 이렇게 5개의 개별 텍스처를 3개(알베도-알파, 노멀, 메탈릭-러프니스 결합)로 줄인 간소화된 PBR 셰이더를 사용하면 텍스처 대역폭 요구량을 50%까지 감소시키면서도 PBR의 정확도를 온전히 유지할 수 있습니다 [1, 5]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[MeshStandardMaterial]], [[Texture Channel Packing]], [[Metallic Maps]], [[Roughness Maps]] +- **Projects/Contexts:** [[Three.js 웹 렌더링 최적화]], [[Image-To-3D 모델 브라우저 배포]] +- **Contradictions/Notes:** PBR 방식(예: MeshStandardMaterial)은 궁극적인 사실주의를 제공하지만 연산 비용이 높아 고사양 워크스테이션에 적합합니다. 저사양이나 내장 그래픽(iGPU) 환경에서 성능을 우선시해야 할 경우에는 상대적으로 연산량이 적은 비물리 기반의 Blinn-Phong 모델(예: MeshPhongMaterial)을 사용하는 것이 더 나을 수 있습니다 [3, 4]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/PBR.md]] +--- diff --git a/Graphics & Performance/Perlin Noise.md b/Graphics & Performance/Perlin Noise.md new file mode 100644 index 00000000..ef50da18 --- /dev/null +++ b/Graphics & Performance/Perlin Noise.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-0374D8 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Perlin Noise" +--- + +# [[Perlin Noise]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Perlin Noise.md]] +--- diff --git a/Graphics & Performance/Physics Engine Integration.md b/Graphics & Performance/Physics Engine Integration.md new file mode 100644 index 00000000..940fc8e4 --- /dev/null +++ b/Graphics & Performance/Physics Engine Integration.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-DE2C95 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Physics Engine Integration" +--- + +# [[Physics Engine Integration]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Physics Engine Integration.md]] +--- diff --git a/Graphics & Performance/Positive Psychology.md b/Graphics & Performance/Positive Psychology.md new file mode 100644 index 00000000..1853d339 --- /dev/null +++ b/Graphics & Performance/Positive Psychology.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-52AEE2 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Positive Psychology" +--- + +# [[Positive Psychology]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Positive Psychology.md]] +--- diff --git a/Graphics & Performance/Positive-Psychology.md b/Graphics & Performance/Positive-Psychology.md new file mode 100644 index 00000000..c6cc997d --- /dev/null +++ b/Graphics & Performance/Positive-Psychology.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-88BB17 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Positive-Psychology" +--- + +# [[Positive-Psychology]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Positive-Psychology.md]] +--- diff --git a/Graphics & Performance/Post-Acute-Care-Models.md b/Graphics & Performance/Post-Acute-Care-Models.md new file mode 100644 index 00000000..ff0a04fd --- /dev/null +++ b/Graphics & Performance/Post-Acute-Care-Models.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D22D50 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Post-Acute-Care-Models" +--- + +# [[Post-Acute-Care-Models]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Post-Acute-Care-Models.md]] +--- diff --git a/Graphics & Performance/Post-humanism.md b/Graphics & Performance/Post-humanism.md new file mode 100644 index 00000000..4e69ecb2 --- /dev/null +++ b/Graphics & Performance/Post-humanism.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-1C09D2 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Post-humanism" +--- + +# [[Post-humanism]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Post-humanism.md]] +--- diff --git a/Graphics & Performance/Probabilistic-Graphical-Models.md b/Graphics & Performance/Probabilistic-Graphical-Models.md new file mode 100644 index 00000000..e36341a1 --- /dev/null +++ b/Graphics & Performance/Probabilistic-Graphical-Models.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A9AAF3 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Probabilistic-Graphical-Models" +--- + +# [[Probabilistic-Graphical-Models]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Probabilistic-Graphical-Models.md]] +--- diff --git a/Graphics & Performance/Problem-Solving-Theory.md b/Graphics & Performance/Problem-Solving-Theory.md new file mode 100644 index 00000000..3572da86 --- /dev/null +++ b/Graphics & Performance/Problem-Solving-Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-7E994F +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Problem-Solving-Theory" +--- + +# [[Problem-Solving-Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Problem-Solving-Theory.md]] +--- diff --git a/Graphics & Performance/Procedural-Animation.md b/Graphics & Performance/Procedural-Animation.md new file mode 100644 index 00000000..08e178a6 --- /dev/null +++ b/Graphics & Performance/Procedural-Animation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-737A68 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Procedural-Animation" +--- + +# [[Procedural-Animation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Procedural-Animation.md]] +--- diff --git a/Graphics & Performance/R3F 3D 게임 환경의 메모리 관리.md b/Graphics & Performance/R3F 3D 게임 환경의 메모리 관리.md new file mode 100644 index 00000000..d1dba4a3 --- /dev/null +++ b/Graphics & Performance/R3F 3D 게임 환경의 메모리 관리.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-7C6FD2 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - R3F 3D 게임 환경의 메모리 관리" +--- + +# [[R3F 3D 게임 환경의 메모리 관리]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/R3F 3D 게임 환경의 메모리 관리.md]] +--- diff --git a/Graphics & Performance/RDF와 OWL.md b/Graphics & Performance/RDF와 OWL.md new file mode 100644 index 00000000..58764dba --- /dev/null +++ b/Graphics & Performance/RDF와 OWL.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-58CF7B +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - RDF와 OWL" +--- + +# [[RDF와 OWL]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/RDF와 OWL.md]] +--- diff --git a/Graphics & Performance/Radix Sort.md b/Graphics & Performance/Radix Sort.md new file mode 100644 index 00000000..65f96bde --- /dev/null +++ b/Graphics & Performance/Radix Sort.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-846BA8 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Radix Sort" +--- + +# [[Radix Sort]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Radix Sort(기수 정렬)는 대규모 데이터 세트를 처리할 때 매우 높은 효율을 낼 수 있는 복잡한 정렬 알고리즘입니다 [1]. Three.js의 `BatchedMesh`에서 겹치는 인스턴스의 렌더링 순서(Depth sorting)를 해결하기 위해 사용된 적이 있으나 단순성을 위해 대체되었으며, 현재는 확장 라이브러리인 `InstancedMesh2`의 예제 등에서 활용되고 있습니다 [1, 2]. + +## 📖 구조화된 지식 (Synthesized Content) +- **성능 이점:** 대규모 데이터 세트를 정렬해야 하는 상황에서 다른 정렬 방식에 비해 최대 7배가량 빠른 성능을 제공할 수 있습니다 [1]. +- **Three.js 생태계에서의 활용 및 제외:** `BatchedMesh`는 여러 인스턴스가 겹칠 때 발생할 수 있는 시각적 오류를 방지하고자 심도 정렬(Depth sorting)을 구현하는 데 Radix Sort 알고리즘을 사용했습니다 [1, 2]. 하지만 코드 구현의 단순성을 위해 현재는 이보다 간단한 알고리즘으로 대체되었습니다 [1]. +- **InstancedMesh2에서의 제공:** 공식 `BatchedMesh`에서는 제외되었으나, 이를 기반으로 개발된 `InstancedMesh2` 라이브러리에서는 여전히 Radix Sort를 활용한 인스턴스 정렬 예제를 제공하고 있습니다 [1]. +- **한계:** Radix Sort 알고리즘 고유의 구체적인 동작 방식이나 기술적 메커니즘에 대해서는 소스에 관련 정보가 부족합니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[BatchedMesh]], [[InstancedMesh2]] +- **Projects/Contexts:** [[Three.js]], [[Depth Sorting]] +- **Contradictions/Notes:** Radix Sort는 대규모 데이터에서 7배 빠른 성능을 제공하는 훌륭한 장점이 있음에도 불구하고, 공식 `BatchedMesh`에서는 라이브러리 내부 구조의 단순성(simplicity)을 유지하기 위해 제거되었다는 특징이 있습니다 [1]. 그 외 알고리즘 작동 원리에 대해서는 소스에 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Radix Sort.md]] +--- diff --git a/Graphics & Performance/Raycaster.md b/Graphics & Performance/Raycaster.md new file mode 100644 index 00000000..d6b0ddd9 --- /dev/null +++ b/Graphics & Performance/Raycaster.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-D7A57A +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Raycaster" +--- + +# [[Raycaster]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Raycaster(레이캐스터)는 가상의 광선(Ray)과 3D 장면 내 객체 간의 교차점을 계산하여 충돌을 감지하는 기법이자 Three.js의 핵심 클래스(`THREE.Raycaster`)입니다 [1-3]. 주로 마우스 클릭과 같은 사용자 상호작용(오브젝트 피킹)을 구현하여 카메라 시점이나 특정 위치에서 어떤 객체가 선택되었는지 판별하는 데 필수적으로 사용됩니다 [4-6]. + +## 📖 구조화된 지식 (Synthesized Content) +- **동작 원리 및 사용법:** Raycaster는 시작점과 방향을 명시적으로 지정하거나(`raycaster.set`), 화면의 픽셀 좌표와 카메라를 기준으로 광선을 설정(`raycaster.setFromCamera`)하여 작동합니다 [3, 5]. 이후 `intersectObjects` 메서드를 통해 광선과 교차하는 대상들을 거리가 가까운 순서대로 정렬된 배열 형태로 반환받을 수 있으며, 반환된 데이터에는 교차한 객체(`.object`)와 월드 좌표계 기준의 교차점(`.point`) 정보가 포함됩니다 [6, 7]. +- **InstancedMesh 적용 시의 한계와 병목:** 일반적인 메쉬의 레이캐스팅은 CPU 단에서 수행되는데, `InstancedMesh`의 경우 수많은 인스턴스의 변환 행렬을 CPU가 개별적으로 역산하여 교차 여부를 판별해야 하므로 인스턴스 수에 비례하여 막대한 연산 병목이 발생합니다 [8]. 특히 애니메이션이나 기하학적 변환이 GPU 셰이더 내에서만 연산된 경우, CPU 레이캐스터는 변환된 위치를 알지 못해 객체의 초기 위치만 검사하게 되며 이는 피킹 불가능 상태인 '데이터 불일치'를 유발합니다 [8, 9]. +- **인스턴스 변환 시 바운딩 볼륨 업데이트:** Three.js r151 버전 이후부터 `InstancedMesh`는 바운딩 볼륨 연산을 지원합니다 [10]. 런타임에 인스턴스의 위치나 형태를 변환한 후 레이캐스팅이 정상적으로 작동하게 하려면, `computeBoundingSphere()` 및 `computeBoundingBox()`를 반드시 호출해야 합니다 [10-12]. 레이캐스터가 연산 최적화를 위해 바운딩 볼륨을 이용한 빠른 사전 테스트(early-out testing)를 거치기 때문입니다 [12]. +- **성능 최적화 (BVH 도입):** 80,000개 이상의 다각형을 갖는 복잡한 장면이나 잦은 레이캐스팅이 필요한 환경에서는 기본 Raycaster만으로는 성능을 보장하기 어렵습니다 [13, 14]. 이를 해결하기 위해 공간 분할 트리 알고리즘을 구현한 `three-mesh-bvh` 라이브러리를 사용하면 레이캐스팅 속도를 비약적으로 향상시킬 수 있으며, 확장 라이브러리인 `InstancedMesh2`도 빠른 레이캐스팅을 위해 BVH를 적극적으로 활용합니다 [13, 15-17]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Three.js]], [[InstancedMesh]], [[three-mesh-bvh]], [[Bounding Volume]] +- **Projects/Contexts:** [[3D Object Picking]], [[Interaction in WebGL]] +- **Contradictions/Notes:** 소스에 따르면 레이캐스팅은 CPU 기반 연산이므로, GPU 셰이더(Compute Shader 등)를 통해 동적으로 애니메이션 처리된 기하학적 구조에 대해서는 CPU가 변환을 알지 못해 기본 레이캐스터로 올바른 피킹을 수행할 수 없습니다 [8, 9]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Raycaster.md]] +--- diff --git a/Graphics & Performance/Raycasting.md b/Graphics & Performance/Raycasting.md new file mode 100644 index 00000000..e37cff15 --- /dev/null +++ b/Graphics & Performance/Raycasting.md @@ -0,0 +1,43 @@ +--- +id: P-REINFORCE-AUTO-BD8B44 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Raycasting" +--- + +# [[Raycasting]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Raycasting(레이캐스팅)은 가상의 광선(Ray)과 3D 환경 내 객체들 간의 교차점을 감지하는 계산 기법입니다 [1, 2]. 3D 씬 내에서 사용자가 화면을 클릭하여 특정 객체를 선택(Picking)하거나 드래그하는 등의 사용자 상호작용(Interaction)을 구현할 때 필수적으로 사용됩니다 [3-5]. Three.js 환경에서는 `THREE.Raycaster` 클래스를 통해 이 기능을 수행할 수 있습니다 [2, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +* **기본 작동 원리** + * Raycaster는 시작점(주로 카메라)에서 특정 방향으로 무한히 뻗어가는 광선을 사용합니다 [2]. 카메라와 화면 좌표(마우스 클릭 위치 등)를 기반으로 광선을 설정할 수 있습니다 [6]. + * `intersectObjects` 메서드를 호출하면 광선과 교차하는 객체들의 배열을 거리순으로 반환합니다. 반환된 항목에는 교차된 대상 객체(`item.object`)와 세계 좌표계 기준의 정확한 교차 지점(`item.point`) 정보가 포함됩니다 [7-10]. +* **성능 최적화 기법 (BVH 도입)** + * 복잡한 지오메트리를 상대로 반복적인 레이캐스팅을 수행하면 성능 저하가 발생할 수 있습니다. + * 이를 해결하기 위해 공간 분할 구조인 `three-mesh-bvh`(Bounding Volume Hierarchy) 라이브러리를 활용하면, 80,000개 이상의 폴리곤에 대해서도 60fps로 매우 빠른 레이캐스팅(Fast Raycasting) 쿼리를 수행할 수 있습니다 [11-13]. +* **InstancedMesh 환경에서의 제약 및 고려사항** + * `InstancedMesh`는 네이티브 레이캐스터를 지원하지만, 초기에는 모든 인스턴스 멤버의 모든 삼각형을 검사해야 하여 성능상 한계가 있었습니다 [14, 15]. + * Three.js r151 버전 이후부터는 바운딩 볼륨(Bounding Volume)을 통한 빠른 조기 종료(Early-out) 테스트를 지원하여 속도가 개선되었습니다 [16, 17]. 그러나 인스턴스를 이동시키는 등 변환이 발생한 후에는 반드시 `computeBoundingSphere()`와 `computeBoundingBox()`를 수동으로 재계산해주어야 레이캐스팅이 정상 작동합니다 [16, 18]. + * 일부 커스텀 구현(예: A-Frame용 컴포넌트)에서는 유연성과 성능 확보를 위해 `InstancedMesh` 자체에 대한 직접적인 레이캐스팅 대신, 동일한 형태의 보이지 않는 메시(Invisible Mesh)를 멤버별로 생성하여 레이캐스팅의 타겟으로 삼는 우회법을 사용하기도 합니다 [15, 19, 20]. +* **셰이더 애니메이션과의 충돌** + * 애니메이션과 위치 변환이 CPU를 거치지 않고 GPU 셰이더 내부에서 독자적으로 계산되는 경우, CPU는 객체의 최종 변환 상태를 알지 못합니다. 이로 인해 CPU 기반의 레이캐스팅 연산이 불가능해지거나 오작동할 수 있습니다 [14, 21]. +* **대안 기술 (GPU Picking)** + * 복잡한 연산이 필요한 레이캐스팅의 대안으로, 객체의 고유 ID를 색상으로 화면 밖(Off-screen) 픽셀 버퍼에 그린 뒤 렌더링된 픽셀 색상을 읽어 객체를 식별하는 'GPU 피킹(Color-based Picking)' 기술도 존재합니다 [22, 23]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[THREE.Raycaster]], [[Bounding Volume Hierarchy (BVH)]], [[InstancedMesh]], [[GPU Picking]] +- **Projects/Contexts:** [[3D 사용자 상호작용 및 마우스 피킹 (Picking)]] 구현, [[three-mesh-bvh]] 라이브러리 연동 +- **Contradictions/Notes:** `InstancedMesh`를 사용할 때 GPU 성능 이점은 크지만, 각 인스턴스마다 CPU 기반 레이캐스팅을 처리하거나 개별 정밀도를 조작하는 데는 유연성이 떨어집니다 [15]. 또한 셰이더로 지오메트리를 변경하면 CPU 레이캐스팅과 데이터 불일치가 발생하므로 설계 시 주의가 필요합니다 [21]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Raycasting.md]] +--- diff --git a/Graphics & Performance/React 19 Compiler의 Threejs 런타임 성능 개선 원리.md b/Graphics & Performance/React 19 Compiler의 Threejs 런타임 성능 개선 원리.md new file mode 100644 index 00000000..63b9f7a5 --- /dev/null +++ b/Graphics & Performance/React 19 Compiler의 Threejs 런타임 성능 개선 원리.md @@ -0,0 +1,37 @@ +--- +id: P-REINFORCE-AUTO-777FEC +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - React 19 Compiler의 Threejs 런타임 성능 개선 원리" +--- + +# [[React 19 Compiler의 Threejs 런타임 성능 개선 원리]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> React 19 컴파일러는 빌드 타임에 코드의 값, 컴포넌트, 콜백 함수를 자동으로 메모이제이션하여 잦은 가비지 컬렉션(GC)과 불필요한 리렌더링을 차단함으로써, React Three Fiber(R3F) 기반 3D 게임의 프레임 레이트(FPS)를 안정화하고 런타임 성능을 획기적으로 개선합니다. + +## 📖 구조화된 지식 (Synthesized Content) +**1. 자동 참조 안정성(Reference Stability) 확보를 통한 리렌더링 방지** React 환경에서는 부모 컴포넌트의 상태가 변할 때마다 하위 컴포넌트들이 기본적으로 모두 리렌더링됩니다. 특히 인라인 함수나 객체가 매 렌더링마다 새로운 참조(Reference)를 생성하면, 하위에 있는 무거운 3D 컴포넌트(Mesh, Material 등)가 불필요하게 렌더링을 반복하게 됩니다. React 19 컴파일러는 `useMemo`나 `useCallback` 없이도 안전한 모든 곳에 메모이제이션을 자동 적용하여 참조 안정성을 확보해 주므로, 무거운 3D 객체의 무의미한 재생성을 막아줍니다. + +**2. 가비지 컬렉션(GC) 스파이크 억제** 실시간 3D 게임에서 가장 치명적인 성능 저하 원인 중 하나는 단기간에 수많은 객체가 생성되고 버려지면서 발생하는 가비지 컬렉션 멈춤(Stop-the-world) 현상입니다. 컴파일러가 연산 결과와 콜백 함수를 자동으로 캐싱하면 렌더링마다 버려지는 객체의 생성이 크게 줄어들어, 메모리 파편화 및 GC로 인한 프레임 드랍(Lag)을 효과적으로 억제할 수 있습니다. + +**3. 재조정(Reconciliation) 오버헤드 감소로 메인 스레드 확보** React의 가상 DOM 트리를 비교하는 재조정(Reconciliation) 과정은 CPU 연산 비용이 높습니다. 컴파일러 적용 시 순수 컴포넌트의 90% 이상, 연산 값의 85% 이상이 자동으로 캐싱되어 렌더링 소요 시간이 단축됩니다. 덕분에 메인 스레드의 부하가 줄어들어, 게임 루프가 물리 엔진 연산이나 렌더링 로직 처리에 더 많은 자원을 온전히 사용할 수 있게 됩니다. + +**4. 수동 최적화의 한계 및 휴먼 에러 극복** 과거에는 복잡한 3D 씬을 구성할 때 개발자가 직접 모든 의존성 배열을 관리하며 수동으로 메모이제이션을 해야 했고, 이 과정에서 실수가 발생하기 쉬웠습니다. 컴파일러는 이러한 보일러플레이트 코드를 제거하고 빌드 타임에 최적화를 보장하므로, 개발자는 미세한 메모이제이션에 신경 쓰는 대신 Three.js 씬 그래프 최적화 등 근본적인 엔진 아키텍처에 더 집중할 수 있습니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[React 19 Compiler]], [[React Three Fiber (R3F)]], [[가비지 컬렉션(GC) 최적화]], [[불필요한 리렌더링 방지]] +- **Projects/Contexts:** [[고성능 실시간 상호작용 시스템을 위한 React 기반 게임 엔진 아키텍처]] +- **Contradictions/Notes:** React 19 컴파일러가 선언적 UI의 리렌더링 성능을 비약적으로 높여주지만, 게임의 근본적인 안티 패턴까지 해결해 주지는 않습니다. 예를 들어, 매 프레임 실행되는 `useFrame` 루프 내부에서 React 상태(`setState`)를 업데이트하거나 객체를 새로 생성(`new Vector3()`)하는 것은 여전히 치명적입니다. 빈번하게 변하는 3D 객체의 위치나 회전값 등은 컴파일러에 의존할 것이 아니라, 반드시 참조(Ref)를 사용하여 직접 변형(Direct Mutation)해야 합니다. + +--- + +_Last updated: 2026-04-15_ +- Raw Source: [[00_Raw/2026-04-20/React 19 Compiler의 Three.js 런타임 성능 개선 원리.md]] +--- diff --git a/Graphics & Performance/React Three Fiber (R3F).md b/Graphics & Performance/React Three Fiber (R3F).md new file mode 100644 index 00000000..bad68b0c --- /dev/null +++ b/Graphics & Performance/React Three Fiber (R3F).md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-979529 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - React Three Fiber (R3F)" +--- + +# [[React Three Fiber (R3F)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> React Three Fiber(R3F)는 Three.js에 React의 렌더링 패러다임과 멘탈 모델을 더해주는 라이브러리입니다 [1]. WebGPU와 같은 최신 렌더링 기술을 지원하며 비동기 `gl` prop 팩토리를 통해 원활하게 통합할 수 있어 건축 대시보드와 같은 환경에서 유용하게 사용됩니다 [2]. 하지만 React 특유의 상태 기반 렌더링 방식으로 인해 고유한 성능 문제(pitfalls)가 발생할 수 있으므로 렌더링과 메모리 관리에 세심한 주의가 필요합니다 [1]. + +## 📖 구조화된 지식 (Synthesized Content) +- **상태 관리 및 애니메이션 루프:** R3F에서 성능을 최적화하기 위한 핵심 규칙은 Three.js의 변이(mutation)를 React의 상태 변경(`setState`)이 아닌 `useFrame` 내부에서 처리하는 것입니다 [1]. 프레임 속도에 독립적인 움직임을 구현하려면 `delta` 값을 사용해야 하며, 가비지 컬렉션(GC)을 유발하는 객체 생성 작업은 절대 `useFrame` 내부에서 수행해서는 안 됩니다 [1, 3]. +- **렌더링 횟수 제어:** 애니메이션이 없는 정적인 씬에서는 `frameloop="demand"` 옵션을 사용하여 매 프레임 렌더링되는 것을 방지함으로써 리소스(모바일의 경우 배터리)를 절약할 수 있습니다 [1]. 필요한 경우에만 렌더링을 갱신하려면 수동으로 `invalidate()` 함수를 호출해야 합니다 [1]. +- **컴포넌트 최적화 및 자원 관리:** 불필요한 리렌더링을 방지하기 위해 비용이 많이 드는 컴포넌트는 `React.memo`로 감싸는 것이 좋습니다 [3]. 또한, 컴포넌트를 완전히 언마운트했다가 다시 마운트하면 버퍼가 재생성되고 셰이더가 다시 컴파일되는 비용이 발생하므로, 대신 가시성(visibility)을 토글하는 방식이 권장됩니다 [3]. React 컴포넌트가 언마운트될 때는 클린업(cleanup) 함수를 사용하여 메모리에 남은 GPU 자원을 폐기해야 합니다 [4]. +- **에셋 로딩 및 생태계 활용:** R3F는 React Suspense와 원활하게 통합되어 렌더링 지연을 관리할 수 있으며 [5], `useGLTF.preload`를 통해 모델이 필요하기 전에 미리 로드할 수 있습니다 [3]. 복잡한 구현 없이 LOD(Level of Detail)를 적용하려면 Drei 라이브러리의 `` 컴포넌트를 사용하고 [3, 6], 드롭인(drop-in) 성능 모니터링을 위해서는 `r3f-perf`를 활용할 수 있습니다 [3]. 정적 씬의 런타임 라이트맵 베이킹에는 `@react-three/lightmap`을 사용할 수 있습니다 [7]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Three.js]], [[WebGPU]], [[Drei]] +- **Projects/Contexts:** [[React-based construction dashboards]] +- **Contradictions/Notes:** 소스 내에서 상충되는 주장은 없으나, R3F가 React 기반임에도 불구하고 렌더링 루프 최적화를 위해 React의 핵심 패턴 중 하나인 상태 변경(`setState`)을 `useFrame` 안에서 피하라고 경고하는 등 [1] 패러다임 간의 조율이 필요하다는 점을 강조합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/React Three Fiber (R3F).md]] +--- diff --git a/Graphics & Performance/React Three Fiber 자산 최적화 (Asset Optimization).md b/Graphics & Performance/React Three Fiber 자산 최적화 (Asset Optimization).md new file mode 100644 index 00000000..f4748777 --- /dev/null +++ b/Graphics & Performance/React Three Fiber 자산 최적화 (Asset Optimization).md @@ -0,0 +1,50 @@ +--- +id: P-REINFORCE-AUTO-C16818 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - React Three Fiber 자산 최적화 (Asset Optimization)" +--- + +# [[React Three Fiber 자산 최적화 (Asset Optimization)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> React Three Fiber(R3F) 환경에서 3D 모델(GLTF), 텍스처 등의 자산 크기를 대폭 줄이고, GPU 메모리 점유를 최소화하며 초기 로딩 속도와 렌더링 성능을 극대화하기 위한 압축 및 파이프라인 관리 기법입니다. + +## 📖 구조화된 지식 (Synthesized Content) +**1. GLTF/GLB 포맷 사용 및 JSX 변환** 웹 3D 생태계의 표준인 GLTF 혹은 바이너리 형태인 GLB 포맷을 최우선으로 사용합니다. GLB는 지오메트리, 재질, 텍스처, 애니메이션을 하나의 파일로 압축하여 로딩 속도가 빠릅니다. 또한 `@react-three/gltfjsx` 도구를 활용하면 GLTF 모델을 재사용 및 제어 가능한 React JSX 컴포넌트로 자동 변환하여 효율적으로 관리할 수 있습니다. + +**2. Draco 및 Meshopt를 통한 지오메트리 압축** + +- **Draco:** Google의 Draco 압축을 사용하면 지오메트리 파일 크기를 **90~95%까지 획기적으로 감소**시킬 수 있습니다. 압축 해제는 메인 스레드 차단을 막기 위해 웹 워커(Web Worker)에서 비동기적으로 수행됩니다. +- **Meshopt:** Draco와 유사한 압축률을 제공하면서도 압축 해제 속도가 더 빠를 수 있는 대안이므로 프로젝트 환경에 맞춰 선택적으로 테스트해 적용할 수 있습니다. + +**3. KTX2 기반 텍스처 압축 (GPU 메모리 최적화)** 일반적인 PNG나 JPEG 이미지는 파일 크기가 작더라도 VRAM(GPU 메모리)에 올라갈 때 압축이 완전히 풀려 막대한 메모리(예: 200KB PNG가 20MB 이상의 VRAM 차지)를 소모합니다. 반면 **KTX2(Basis Universal) 형식은 GPU 내에서도 압축된 상태를 유지하여 VRAM 메모리 사용량을 약 10배 줄여줍니다**. + +- **UASTC:** 고품질이 필요한 노멀 맵(Normal Map)이나 주요 텍스처에 사용합니다. +- **ETC1S:** 파일 크기 절감이 중요한 환경 맵이나 보조 에셋에 사용합니다. + +**4. LOD (Level of Detail) 구현** 카메라와의 거리에 따라 모델의 디테일을 조절하여 렌더링 부하를 줄입니다. `@react-three/drei` 라이브러리의 `` 컴포넌트를 사용하면, 거리에 맞춰 High-poly 모델과 Low-poly 모델이 자동으로 스왑(Swap)되어 대규모 씬에서 프레임 레이트를 30~40% 향상시킬 수 있습니다. + +**5. 사전 로딩(Preloading)과 점진적 로딩(Progressive Loading)** + +- **프리로딩:** 씬이 화면에 나타나기 전에 `useGLTF.preload('/model.glb')`를 호출하여 렌더링 지연(Pop-in)을 방지합니다. +- **점진적 로딩 / Suspense:** 로딩 시간이 길어질 수 있는 거대한 모델의 경우, React의 `}>`를 활용해 우선 가벼운 플레이스홀더(스켈레톤 지오메트리나 저해상도 모델)를 즉시 띄워두고 백그라운드에서 고해상도 에셋을 불러오도록 처리합니다. + +**6. 텍스처 아틀라싱(Texture Atlasing) 및 메시 병합** 여러 개의 텍스처를 하나의 큰 이미지 맵(Atlas)으로 합치거나, 동일한 재질을 공유하는 여러 정적 메시(Mesh)를 하나로 병합(Merge)하여 **드로우 콜(Draw Call)과 텍스처 바인딩 횟수를 최소화**해야 모바일 기기에서도 원활한 성능을 보장할 수 있습니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Code Splitting & Lazy Loading]], [[Draw Call Optimization (드로우 콜 최적화)]], [[Memory Leak Prevention (메모리 누수 방지)]], [[웹 워커(Web Worker)]] +- **Projects/Contexts:** [[대규모 WebGL/R3F 3D 쇼핑몰 제품 컨피규레이터]], [[모바일 환경을 타겟으로 하는 웹 기반 3D 게임]] +- **Contradictions/Notes:** 지오메트리나 텍스처를 과도하게 압축(Draco, KTX2)하면 다운로드되는 파일 크기와 GPU 메모리는 대폭 줄어들지만, 클라이언트의 웹 워커에서 이를 압축 해제(Decompression)하는 과정에서 CPU 연산 비용과 디코더 로딩 지연이 발생합니다. 따라서, 복잡도가 낮고 빠른 즉각적 렌더링이 필요한 에셋의 경우 오히려 압축 없이 원본을 사용하는 것이 TTI(Time to Interactive) 면에서 더 유리할 수도 있으므로 Trade-off를 고려해야 합니다. + +--- + +_Last updated: 2026-04-14_ +- Raw Source: [[00_Raw/2026-04-20/React Three Fiber 자산 최적화 (Asset Optimization).md]] +--- diff --git a/Graphics & Performance/React Three Fiber에서 Rapier 물리 엔진 최적화하기.md b/Graphics & Performance/React Three Fiber에서 Rapier 물리 엔진 최적화하기.md new file mode 100644 index 00000000..029580c6 --- /dev/null +++ b/Graphics & Performance/React Three Fiber에서 Rapier 물리 엔진 최적화하기.md @@ -0,0 +1,39 @@ +--- +id: P-REINFORCE-AUTO-95FEB9 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - React Three Fiber에서 Rapier 물리 엔진 최적화하기" +--- + +# [[React Three Fiber에서 Rapier 물리 엔진 최적화하기]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> React Three Fiber(R3F) 환경에서 `@react-three/rapier`를 사용할 때, 대규모 `InstancedRigidBodies` 적용, 비트마스크 기반의 충돌 필터링, Rust 메모리 에러 방지를 위한 상태 캐싱, 그리고 렌더링 루프 분리를 통해 연산 오버헤드를 극적으로 줄이는 고성능 물리 엔진 최적화 기법입니다. + +## 📖 구조화된 지식 (Synthesized Content) +**1. InstancedRigidBodies를 활용한 대규모 물리 객체 처리** 수백, 수천 개의 물리 객체(총알, 파편 등)를 개별 ``로 렌더링하면 물리 연산과 드로우 콜 오버헤드로 인해 프레임이 급락합니다. 이를 방지하려면 Three.js의 `InstancedMesh`를 ``로 감싸서 사용해야 합니다. 이 방식을 사용하면 수천 개의 인스턴스에 대한 위치, 회전, 물리적 상태를 배열(`InstancedRigidBodyProps[]`) 형태로 단 번에 초기화하고 단일 드로우 콜로 렌더링할 수 있어 성능이 비약적으로 향상됩니다. + +**2. interactionGroups를 통한 충돌 및 솔버 연산 최소화** 모든 객체가 서로 충돌 여부를 계산하게 두면 엔진에 큰 부하를 줍니다. Rapier에서는 `collisionGroups` 및 `solverGroups` 속성에 비트마스크(Bitmask)를 설정하여 상호작용할 대상을 제한할 수 있습니다. 라이브러리에서 제공하는 `interactionGroups` 헬퍼 함수를 사용해 객체가 속한 그룹과 상호작용할 그룹을 명시(예: `interactionGroups(0,)`)함으로써 불필요한 충돌 연산을 원천적으로 차단해야 합니다. + +**3. Physics Hooks 캐싱을 통한 Rust 메모리 에일리어싱 에러 방지** 복잡한 일방향 플랫폼(One-way platform) 등 고급 충돌 필터링을 위해 `useFilterContactPair` 훅을 사용할 때, 물리 스텝 진행 도중 `translation()`이나 `linvel()` 같은 RigidBody 속성에 직접 접근하면 WASM(Rust) 계층에서 에일리어싱 에러가 발생합니다. 이를 방지하려면 반드시 `useBeforePhysicsStep` 훅을 사용해 물리 스텝 시작 전에 필요한 객체들의 상태(위치, 속도 등)를 자바스크립트 `Map` 등 캐시(Cache) 메모리에 미리 저장해 두고, 필터링 훅에서는 이 캐시된 데이터만 읽도록 설계해야 합니다. + +**4. On-demand Rendering 및 물리 스텝 수동 제어** 기본적으로 `@react-three/rapier`는 프레임이 렌더링될 때마다 물리 시뮬레이션을 업데이트합니다. 하지만 화면의 시각적 업데이트가 필요 없을 때도 물리 연산이 필요하거나, 반대로 물리 연산을 일시정지하고 싶다면 ``를 설정하여 렌더링 루프와 물리 루프를 분리할 수 있습니다. 또한 `useRapier().step()` 메서드를 통해 물리 시뮬레이션을 수동으로 진행(Manual stepping)시킬 수도 있습니다. + +**5. 센서(Sensor) 활용 및 충돌 이벤트 내 React 상태 업데이트 지양** 물리적 반발력이나 밀어내기 연산이 필요 없고 오직 '영역에 들어왔는지(Overlapping)' 여부만 판별해야 한다면 해당 콜라이더에 `sensor` 속성을 부여해야 불필요한 솔버(Solver) 연산을 줄일 수 있습니다. 또한, `onCollisionEnter`와 같은 빈번한 충돌 이벤트 내부에서 React의 `setState`를 호출하면 심각한 리렌더링 지연이 발생하므로, 전역 상태 변경이 아닌 이상 명령형(Imperative) 파티클 시스템에 직접 신호를 보내 처리하는 것이 바람직합니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[InstancedMesh (드로우 콜 최적화)]], [[Web Worker (웹 워커)]], [[Garbage Collection (GC) 최적화]], [[Object Pooling (오브젝트 풀링)]] +- **Projects/Contexts:** [[고성능 실시간 상호작용 시스템을 위한 React 기반 게임 엔진 아키텍처]] +- **Contradictions/Notes:** Rapier의 스냅샷(Snapshot) 기능(`world.takeSnapshot()`)을 이용해 물리 세계의 상태를 저장하고 복원할 수 있지만, 복원 시점의 객체 생성 순서나 식별자가 스냅샷 캡처 시점과 정확히 일치하지 않으면 RigidBody들이 엉키는(Scramble) 버그가 발생하므로 상태 직렬화에 각별한 주의가 필요합니다. + +--- + +_Last updated: 2026-04-15_ +- Raw Source: [[00_Raw/2026-04-20/React Three Fiber에서 Rapier 물리 엔진 최적화하기.md]] +--- diff --git a/Graphics & Performance/React 기반 게임 엔진 아키텍처.md b/Graphics & Performance/React 기반 게임 엔진 아키텍처.md new file mode 100644 index 00000000..1d41f3e4 --- /dev/null +++ b/Graphics & Performance/React 기반 게임 엔진 아키텍처.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-1B0F24 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - React 기반 게임 엔진 아키텍처" +--- + +# [[React 기반 게임 엔진 아키텍처]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/React 기반 게임 엔진 아키텍처.md]] +--- diff --git a/Graphics & Performance/React 동시성 기능 (Concurrent Features).md b/Graphics & Performance/React 동시성 기능 (Concurrent Features).md new file mode 100644 index 00000000..f9277c95 --- /dev/null +++ b/Graphics & Performance/React 동시성 기능 (Concurrent Features).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A689F7 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - React 동시성 기능 (Concurrent Features)" +--- + +# [[React 동시성 기능 (Concurrent Features)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/React 동시성 기능 (Concurrent Features).md]] +--- diff --git a/Graphics & Performance/Redux-Reducer-Pattern.md b/Graphics & Performance/Redux-Reducer-Pattern.md new file mode 100644 index 00000000..0fc07bad --- /dev/null +++ b/Graphics & Performance/Redux-Reducer-Pattern.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B7CB54 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Redux-Reducer-Pattern" +--- + +# [[Redux-Reducer-Pattern]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Redux-Reducer-Pattern.md]] +--- diff --git a/Graphics & Performance/Revit glTF Export.md b/Graphics & Performance/Revit glTF Export.md new file mode 100644 index 00000000..5f21a562 --- /dev/null +++ b/Graphics & Performance/Revit glTF Export.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-E2D208 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Revit glTF Export" +--- + +# [[Revit glTF Export]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Revit glTF Export는 Revit에서 작성된 건축 및 건물 모델을 웹 3D 환경에서 효율적으로 렌더링하기 위해 glTF 형식으로 내보내는 과정입니다 [1, 2]. 이 과정에서는 성능 최적화를 위해 동일한 재질을 가진 메쉬를 병합하는 동시에, 병합된 모델 내에서도 개별 객체를 식별하고 제어하기 위해 특수한 glTF 확장 기능과 정점 데이터 속성을 함께 활용합니다 [3, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +- **재질 기반의 메쉬 병합:** Revit 모델(예: 콘크리트 벽체 등)을 glTF로 내보낼 때, 드로우 콜을 줄이고 렌더링을 최적화하기 위해 동일한 재질을 공유하는 메쉬들을 그룹화합니다 [1, 3]. 건물의 벽체들은 재질은 같지만 기하학적 형태가 대부분 고유하기 때문에 일반적인 `InstancedMesh`로는 처리할 수 없어 데이터를 병합(Merge)하거나 `BatchedMesh`를 통해 관리하게 됩니다 [4]. +- **glTF 확장 기능(Extensions)의 적용:** 기하학적 데이터를 하나로 병합한 후에도, 사용자가 특정 벽체를 개별적으로 선택(Pick)하거나 가시성(Visibility) 및 색상을 동적으로 변경할 수 있어야 합니다 [4]. 이를 구현하기 위해 모델을 내보낼 때 `EXT_instance_features`, `EXT_mesh_features`, `EXT_mesh_gpu_instancing`과 같은 glTF 확장 기능을 추가하여 데이터를 구성합니다 [3]. +- **정점 식별 속성(Feature ID) 할당:** 병합된 모델 내에서 서로 다른 배치를 구분하기 위해 각 정점(Vertex)에 `_FEATURE_ID_0`과 같은 특수 속성을 할당합니다. 렌더러(Three.js 등)는 모델을 로드할 때 이 속성을 파싱하여, 단일 객체로 병합된 상태에서도 내부의 서로 다른 기하학적 파트를 식별하고 개별적인 제어를 수행할 수 있습니다 [3, 5]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[BatchedMesh]], [[glTF Extensions]], [[Three.js]] +- **Projects/Contexts:** [[건축 및 BIM(Building Information Modeling) 3D 뷰어 구현]] +- **Contradictions/Notes:** Revit에서 내보낸 1,200만 개 이상의 삼각형과 1,600만 개 이상의 정점을 포함하는 거대한 glTF 모델을 다룰 때, 개별 객체 제어를 위해 `BatchedMesh`를 사용하면 단순히 병합된 일반 `Mesh`로 렌더링할 때보다 오히려 CPU 사용량이 40~60%까지 급증하고 프레임 속도(FPS)가 급격히 떨어지는 성능 저하 현상이 보고되고 있습니다 [1, 2, 6, 7]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Revit glTF Export.md]] +--- diff --git a/Graphics & Performance/Revit 모델 렌더링.md b/Graphics & Performance/Revit 모델 렌더링.md new file mode 100644 index 00000000..12857f90 --- /dev/null +++ b/Graphics & Performance/Revit 모델 렌더링.md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-EC4298 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Revit 모델 렌더링" +--- + +# [[Revit 모델 렌더링]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 소스에 관련 정보가 부족합니다. 제공된 텍스트에서는 Revit 모델을 Three.js와 같은 웹 그래픽 환경으로 내보내어 렌더링하는 과정에서 발생한 특정 사용자의 워크플로우와 성능 병목 사례만이 제한적으로 언급되어 있습니다. + +## 📖 구조화된 지식 (Synthesized Content) +소스에 관련 정보가 부족합니다. 제공된 문서 내에서 확인할 수 있는 단편적인 Revit 모델 렌더링 시도 및 사례는 다음과 같습니다. + +* **glTF 포맷 변환 및 데이터 구조화:** 한 사용자는 Revit에서 제작된 건물 모델을 glTF 형식으로 추출하고, Three.js 환경에서 가시성을 관리하기 위해 동일한 재질을 가진 메쉬들을 병합하는 방식을 사용했습니다 [1, 2]. 이 과정에서 객체의 배치를 구분하기 위해 `EXT_instance_features`, `EXT_mesh_features`, `EXT_mesh_gpu_instancing` 등의 확장을 추가하고, 각 정점에 `_FEATURE_ID_0` 속성을 할당하여 파싱하는 과정을 거쳤습니다 [3, 4]. +* **고유 지오메트리에 따른 렌더링 방식의 제약:** Revit 건물 모델 내의 벽체들은 콘크리트라는 동일한 재질을 공유하지만, 각기 고유한 기하학적 형태(Geometry)를 가지고 있어 단일 형태를 복제하는 `InstancedMesh`를 적용하기 어려웠습니다 [5]. 따라서 개별 벽체를 선택(Picking)하거나 가시성 및 색상을 동적으로 변경하기 위한 목적으로, 다양한 지오메트리를 하나로 묶을 수 있는 `BatchedMesh`를 채택해야만 했습니다 [5]. +* **대규모 모델에서의 성능 병목 문제:** 약 1,200만 개의 삼각형과 1,600만 개의 정점, 약 10만 개 이상의 지오메트리로 구성된 대규모 Revit 모델을 `BatchedMesh`를 활용해 렌더링할 경우 심각한 성능 저하가 보고되었습니다 [6, 7]. 일반적인 `Mesh`로 렌더링할 때는 60 FPS(CPU 15%, GPU 90%)가 유지되었으나, `BatchedMesh` 적용 시 CPU 사용량이 40% 이상으로 급증하며 프레임 레이트가 10~20 FPS 수준으로 크게 하락했습니다 [1, 8, 9]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[BatchedMesh]], [[glTF]], [[Three.js]] +- **Projects/Contexts:** [[대규모 건축 모델의 웹 기반 시각화 및 최적화 테스트]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. 한편 사례를 통해, 일반적인 렌더링 횟수를 줄이기 위해 도입하는 `BatchedMesh` 최적화 기법이 거대한 규모의 Revit 파생 모델(수천만 정점 및 수십만 지오메트리)에서는 막대한 CPU 오버헤드를 유발하여 오히려 렌더링 성능을 저하시키는 모순적인 결과를 낳는다는 것을 확인할 수 있습니다 [1, 8, 10]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Revit 모델 렌더링.md]] +--- diff --git a/Graphics & Performance/Robotics-Control-Systems.md b/Graphics & Performance/Robotics-Control-Systems.md new file mode 100644 index 00000000..28a8bc81 --- /dev/null +++ b/Graphics & Performance/Robotics-Control-Systems.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A9830E +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Robotics-Control-Systems" +--- + +# [[Robotics-Control-Systems]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Robotics-Control-Systems.md]] +--- diff --git a/Graphics & Performance/Role-Playing-Games (RPGs).md b/Graphics & Performance/Role-Playing-Games (RPGs).md new file mode 100644 index 00000000..58522c59 --- /dev/null +++ b/Graphics & Performance/Role-Playing-Games (RPGs).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5C3932 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Role-Playing-Games (RPGs)" +--- + +# [[Role-Playing-Games (RPGs)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Role-Playing-Games (RPGs).md]] +--- diff --git a/Graphics & Performance/Rowhammer attack.md b/Graphics & Performance/Rowhammer attack.md new file mode 100644 index 00000000..9f413063 --- /dev/null +++ b/Graphics & Performance/Rowhammer attack.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-80DA6E +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Rowhammer attack" +--- + +# [[Rowhammer attack]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Rowhammer 공격은 WebGL을 사용하여 GPU에서 실행되었던 심각한 보안 취약점 공격입니다 [1]. 이 공격은 고정밀 타임스탬프 쿼리를 활용하여 캐시 적중 실패율(cache miss rates)을 관찰하고, 이를 통해 GPU의 물리적 메모리 레이아웃을 파악합니다 [1]. 이후 파악된 메모리에서 특정 비트를 반전(flip)시켜 페이지 테이블을 조작하고 악의적인 작업을 수행하도록 유도합니다 [1]. 과거에는 막기 어려운 공격으로 보고되었으나, 현재는 최신 RAM에 적용된 완화(mitigations) 기술을 통해 방어할 수 있습니다 [1]. + +## 📖 구조화된 지식 (Synthesized Content) +* **공격 원리 및 실행:** 이 공격은 WebGL 환경에서 타임스탬프 쿼리(timestamp queries)로부터 얻은 고정밀 타임스탬프(high precision timestamps)를 반드시 필요로 합니다 [1]. 공격자는 이를 통해 캐시 적중 실패율을 관찰하고 GPU 상의 물리적 메모리 배치를 알아냅니다 [1]. +* **페이지 테이블 조작:** 메모리 구조를 파악한 뒤에는 타겟으로 삼은 특정 비트를 Rowhammer 기법으로 반전시킵니다 [1]. 이 과정을 통해 페이지 테이블(page table)을 속여 시스템이 은밀하고 악의적인 동작(insidious action)을 실행하도록 만듭니다 [1]. +* **공격의 한계 및 최신 방어 동향:** 이 공격은 매우 명확하게 정의된 TLB(Translation Lookaside Buffer) 설계를 가진 특정 기기에만 제한적으로 적용되었습니다 [1]. 한때는 막을 수 없는(couldn't plug) 실질적이고 심각한 공격으로 평가받았으나, 이후 최신 RAM 하드웨어에 Rowhammer 방어 기술(mitigations)이 도입되면서 이러한 유형의 공격은 예방 가능해졌습니다 [1]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGL]], [[GPU]], [[Timestamp queries]], [[TLB design]], [[Cache miss rates]] +- **Projects/Contexts:** WebGPU의 [[High Resolution Time spec]] 이슈 논의 과정 중, 고해상도 타임스탬프가 야기할 수 있는 심각한 보안 위협(타이밍 공격)의 과거 사례로 언급되었습니다 [1]. +- **Contradictions/Notes:** 소스에 따르면 보고된 당시에는 막을 수 없는(couldn't plug) 공격이었으나, 현재는 하드웨어(최신 RAM)의 개선으로 인해 더 이상 유효하지 않은 것으로 보입니다 [1]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Rowhammer attack.md]] +--- diff --git a/Graphics & Performance/Rowhammer.md b/Graphics & Performance/Rowhammer.md new file mode 100644 index 00000000..8b8427f5 --- /dev/null +++ b/Graphics & Performance/Rowhammer.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-13F9F1 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Rowhammer" +--- + +# [[Rowhammer]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Rowhammer는 WebGL을 통해 GPU 상에서 실행되어 물리적 메모리의 특정 비트를 반전시키는 심각한 보안 공격 기법입니다 [1]. 이 공격은 고정밀 타임스탬프 쿼리를 이용해 캐시 미스율을 관찰하고 GPU의 물리적 메모리 레이아웃을 파악하는 방식으로 이루어집니다 [1]. 한때 막을 수 없었던 위협적인 공격이었으나, 특정 장치에만 국한되어 발생하며 최신 RAM의 방어 기술을 통해 완화되었습니다 [1]. + +## 📖 구조화된 지식 (Synthesized Content) +- **공격 원리:** 과거에 보고된 Rowhammer 공격은 타임스탬프 쿼리(timestamp queries)에서 얻은 고정밀 타임스탬프를 필수적으로 요구했습니다 [1]. 공격자는 이를 통해 캐시 미스율(cache miss rates)을 관찰하고 GPU의 물리적 메모리 레이아웃을 파악할 수 있었습니다 [1]. +- **시스템 조작:** 확보한 메모리 레이아웃 정보를 바탕으로 특정 비트를 목표로 삼아 반전(flip)시킴으로써, 페이지 테이블(page table)을 속이고 악의적인(insidious) 조작을 수행할 수 있습니다 [1]. +- **한계 및 방어(Mitigations):** 이 공격은 매우 명확하게 정의된 TLB(Translation Lookaside Buffer) 설계를 가진 특정 장치에만 제한적으로 적용되었습니다 [1]. 또한, 최신 RAM(newer RAM)에 도입된 Rowhammer 완화 기술을 통해 이러한 공격을 방지할 수 있습니다 [1]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGL]], [[Timestamp Queries]], [[TLB (Translation Lookaside Buffer)]] +- **Projects/Contexts:** [[High Resolution Time spec 논의]] (GPU 타임스탬프 해상도를 제한(coarsen)하여 보안 취약점을 방지해야 한다는 논의 중, 고정밀 타임스탬프를 악용한 실제 공격 사례로 언급됨 [1]) +- **Contradictions/Notes:** 소스에 따르면 Rowhammer는 초기에 "막을 수 없었던 최초의 실질적이고 심각한 공격(the first real, serious attack we couldn't plug)"으로 평가되었으나, 현재는 최신 RAM 하드웨어의 발전으로 회피가 가능해졌습니다 [1]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Rowhammer.md]] +--- diff --git a/Graphics & Performance/SLA-Definition.md b/Graphics & Performance/SLA-Definition.md new file mode 100644 index 00000000..00fafdd3 --- /dev/null +++ b/Graphics & Performance/SLA-Definition.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-37BE33 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - SLA-Definition" +--- + +# [[SLA-Definition]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/SLA-Definition.md]] +--- diff --git a/Graphics & Performance/SaaS-Retention-Strategies.md b/Graphics & Performance/SaaS-Retention-Strategies.md new file mode 100644 index 00000000..0199383d --- /dev/null +++ b/Graphics & Performance/SaaS-Retention-Strategies.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B5B823 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - SaaS-Retention-Strategies" +--- + +# [[SaaS-Retention-Strategies]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/SaaS-Retention-Strategies.md]] +--- diff --git a/Graphics & Performance/Sandbox-Simulation.md b/Graphics & Performance/Sandbox-Simulation.md new file mode 100644 index 00000000..e831c294 --- /dev/null +++ b/Graphics & Performance/Sandbox-Simulation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D0C092 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Sandbox-Simulation" +--- + +# [[Sandbox-Simulation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Sandbox-Simulation.md]] +--- diff --git a/Graphics & Performance/Search-Based Procedural Content Generation (SBPCG).md b/Graphics & Performance/Search-Based Procedural Content Generation (SBPCG).md new file mode 100644 index 00000000..10473674 --- /dev/null +++ b/Graphics & Performance/Search-Based Procedural Content Generation (SBPCG).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-8371CD +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Search-Based Procedural Content Generation (SBPCG)" +--- + +# [[Search-Based Procedural Content Generation (SBPCG)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Search-Based Procedural Content Generation (SBPCG).md]] +--- diff --git a/Graphics & Performance/Semantic Versioning (SemVer) in Type Safety.md b/Graphics & Performance/Semantic Versioning (SemVer) in Type Safety.md new file mode 100644 index 00000000..540d81e4 --- /dev/null +++ b/Graphics & Performance/Semantic Versioning (SemVer) in Type Safety.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-882353 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Semantic Versioning (SemVer) in Type Safety" +--- + +# [[Semantic Versioning (SemVer) in Type Safety]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Semantic Versioning (SemVer) in Type Safety.md]] +--- diff --git a/Graphics & Performance/Semantic-Web-Technologies.md b/Graphics & Performance/Semantic-Web-Technologies.md new file mode 100644 index 00000000..75026bcb --- /dev/null +++ b/Graphics & Performance/Semantic-Web-Technologies.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-BB1892 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Semantic-Web-Technologies" +--- + +# [[Semantic-Web-Technologies]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Semantic-Web-Technologies.md]] +--- diff --git a/Graphics & Performance/Semantic-Web.md b/Graphics & Performance/Semantic-Web.md new file mode 100644 index 00000000..10b2f189 --- /dev/null +++ b/Graphics & Performance/Semantic-Web.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-8C1755 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Semantic-Web" +--- + +# [[Semantic-Web]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Semantic-Web.md]] +--- diff --git a/Graphics & Performance/Semiotics in Media.md b/Graphics & Performance/Semiotics in Media.md new file mode 100644 index 00000000..37a6c364 --- /dev/null +++ b/Graphics & Performance/Semiotics in Media.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A79FEB +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Semiotics in Media" +--- + +# [[Semiotics in Media]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Semiotics in Media.md]] +--- diff --git a/Graphics & Performance/Sensor Fusion.md b/Graphics & Performance/Sensor Fusion.md new file mode 100644 index 00000000..0f797fa5 --- /dev/null +++ b/Graphics & Performance/Sensor Fusion.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-AA5A99 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Sensor Fusion" +--- + +# [[Sensor Fusion]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Sensor Fusion.md]] +--- diff --git a/Graphics & Performance/Service-Dominant-Logic.md b/Graphics & Performance/Service-Dominant-Logic.md new file mode 100644 index 00000000..5e24b0cc --- /dev/null +++ b/Graphics & Performance/Service-Dominant-Logic.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-625B63 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Service-Dominant-Logic" +--- + +# [[Service-Dominant-Logic]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Service-Dominant-Logic.md]] +--- diff --git a/Graphics & Performance/SharedArrayBuffer.md b/Graphics & Performance/SharedArrayBuffer.md new file mode 100644 index 00000000..ac1fc23d --- /dev/null +++ b/Graphics & Performance/SharedArrayBuffer.md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-C22BDF +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - SharedArrayBuffer" +--- + +# [[SharedArrayBuffer]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> SharedArrayBuffer는 다중 스레드 환경에서 Web Worker와 메인 스레드 간에 데이터를 공유할 때 메모리 과부하를 방지하기 위해 사용되는 기술입니다 [1]. 전통적인 데이터 전달 방식과 달리 메모리를 복제하지 않는 제로 카피(Zero-copy) 아키텍처를 구현할 수 있게 해줍니다 [1]. 이를 통해 Electron과 같은 환경에서 대규모 3D 모델을 로드하고 파싱할 때 메모리 안정성을 획기적으로 유지할 수 있습니다 [1, 2]. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Web Worker]], [[Structured Cloning]], [[BufferAttribute]], [[Zero-copy architecture]] +- **Projects/Contexts:** [[Electron 기반 WebGL CAD 렌더링 최적화]] +- **Contradictions/Notes:** 소스에서는 워커를 활용할 때 기존의 Structured Cloning을 사용할 경우 데이터가 전체 복사되어 OOM이 발생할 위험이 크지만, SharedArrayBuffer를 사용하면 복사 과정을 없애(Zero-copy) 이러한 메모리 오버헤드를 완벽히 방지할 수 있다고 대조하여 설명합니다 [1]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/SharedArrayBuffer.md]] +--- diff --git a/Graphics & Performance/Simulations of Social Systems.md b/Graphics & Performance/Simulations of Social Systems.md new file mode 100644 index 00000000..e1ba8ec5 --- /dev/null +++ b/Graphics & Performance/Simulations of Social Systems.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6349BA +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Simulations of Social Systems" +--- + +# [[Simulations of Social Systems]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Simulations of Social Systems.md]] +--- diff --git a/Graphics & Performance/Simultaneous Localization and Mapping (SLAM).md b/Graphics & Performance/Simultaneous Localization and Mapping (SLAM).md new file mode 100644 index 00000000..c6b628ae --- /dev/null +++ b/Graphics & Performance/Simultaneous Localization and Mapping (SLAM).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-72B40F +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Simultaneous Localization and Mapping (SLAM)" +--- + +# [[Simultaneous Localization and Mapping (SLAM)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Simultaneous Localization and Mapping (SLAM).md]] +--- diff --git a/Graphics & Performance/SkinnedMesh.md b/Graphics & Performance/SkinnedMesh.md new file mode 100644 index 00000000..6f412f89 --- /dev/null +++ b/Graphics & Performance/SkinnedMesh.md @@ -0,0 +1,42 @@ +--- +id: P-REINFORCE-AUTO-1189F7 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - SkinnedMesh" +--- + +# [[SkinnedMesh]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> SkinnedMesh는 뼈대(Bone) 계층 구조를 기반으로 한 애니메이션(예: 캐릭터의 얼굴 뼈대나 손가락 움직임 등)을 구현할 때 사용되는 3D 객체 타입입니다 [1-3]. 단일 객체로는 원활하게 동작하지만 대량으로 렌더링할 경우 심각한 CPU 병목 현상을 유발하며 [4], 정점이 다수의 본 행렬에 영향을 받는 특성상 대규모 렌더링 최적화 기법인 InstancedMesh와 기본적으로 호환되지 않는 물리적 한계를 지닙니다 [3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **동작 원리와 성능 병목:** + SkinnedMesh의 각 정점은 여러 개의 본(Bone) 변환 행렬에 의해 영향을 받아 변형됩니다 [3]. 따라서 화면에 100개에서 1,000개 이상의 많은 SkinnedMesh를 개별적으로 렌더링하려고 시도할 경우, 연산 부하로 인해 심각한 CPU 병목 현상에 직면하게 됩니다 [4]. + +- **InstancedMesh 연동의 구조적 한계:** + Three.js의 기본 InstancedMesh는 본 기반의 스킨드 애니메이션을 지원하지 않습니다 [3]. 각 인스턴스마다 고유한 포즈를 취하게 하려면 개별 인스턴스별로 전체 본 행렬 세트를 GPU로 전송해야 하는데(예: 100개의 인스턴스가 각각 60개의 본을 가질 경우 매 프레임 6,000개의 행렬 데이터 전송 필요), 이는 인스턴스 속성 버퍼의 제한 용량을 쉽게 초과하게 만듭니다 [3]. + +- **애니메이션 시스템(AnimationMixer)의 비호환성:** + Three.js의 표준 애니메이션 시스템인 `AnimationMixer`는 개별 객체의 시간축을 개별적으로 관리하도록 설계되어 있어, 단일 드로우 콜로 여러 객체를 처리하는 InstancedMesh의 구조와 호환되지 않습니다 [3]. 각 인스턴스마다 다른 애니메이션 재생 상태를 적용하려면 셰이더에서 직접 인스턴스 ID 기반으로 시간 오프셋을 계산하는 등 복잡한 작업이 필요합니다 [3]. + +- **스킨드 메쉬 렌더링 최적화 전략:** + - **본 텍스처(Bone Texture) 도입:** GPU 전송 한계를 극복하기 위해 모든 애니메이션 변환 행렬 데이터를 '본 텍스처(Bone Texture)' 또는 텍스처 아틀라스에 구워 넣고, 커스텀 셰이더 단계에서 이를 샘플링해 애니메이션을 구현하는 우회 파이프라인이 사용됩니다 [1, 3, 5]. + - **애니메이션 LOD(Level of Detail):** 거리가 먼 SkinnedMesh 인스턴스의 경우 계산해야 할 본의 개수를 줄이거나(예: 손가락이나 발의 굽힘 뼈대 연산 생략), 애니메이션 업데이트 주기를 낮추어 본 텍스처의 크기와 연산량을 줄이는 방식이 필수적입니다 [6-9]. + - **커스텀 라이브러리 활용:** 커뮤니티에서는 기본 기능의 한계를 보완하기 위해, 개별 애니메이션 믹서 제어, LOD 시스템, 그리고 절두체 컬링(Frustum Culling) 기능을 포함하여 2만 개 이상의 스킨드 인스턴스 처리를 가능하게 하는 `InstancedMesh2`와 같은 확장 라이브러리를 활용하기도 합니다 [6, 10-13]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[InstancedMesh]], [[InstancedMesh2]], [[AnimationMixer]], [[Bone Texture]], [[Level of Detail (LOD)]] +- **Projects/Contexts:** [[Three.js 엔진의 대규모 군중 렌더링 및 애니메이션 처리]] +- **Contradictions/Notes:** 엔진의 공식 기능 상으로는 데이터 전송량의 기하급수적 증가 및 `AnimationMixer`와의 아키텍처 충돌 문제로 스킨드 메쉬의 대규모 인스턴싱이 불가능하다고 지적되지만 [3], 개발자들은 본 텍스처를 활용한 셰이더 커스터마이징이나 `InstancedMesh2` 라이브러리를 적용하여 각기 다른 애니메이션을 가진 수만 개의 SkinnedMesh를 단일 혹은 최소한의 드로우 콜로 최적화하여 렌더링하는 데 성공하고 있습니다 [3, 6, 12]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/SkinnedMesh.md]] +--- diff --git a/Graphics & Performance/Skybound Protocol 기술 메뉴얼 및 개발자 가이드.md b/Graphics & Performance/Skybound Protocol 기술 메뉴얼 및 개발자 가이드.md new file mode 100644 index 00000000..ece37881 --- /dev/null +++ b/Graphics & Performance/Skybound Protocol 기술 메뉴얼 및 개발자 가이드.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-19F4EF +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Skybound Protocol 기술 메뉴얼 및 개발자 가이드" +--- + +# [[Skybound Protocol 기술 메뉴얼 및 개발자 가이드]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Skybound Protocol 기술 메뉴얼 및 개발자 가이드.md]] +--- diff --git a/Graphics & Performance/Smart City Digital Twins.md b/Graphics & Performance/Smart City Digital Twins.md new file mode 100644 index 00000000..a8c92edc --- /dev/null +++ b/Graphics & Performance/Smart City Digital Twins.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-888FC9 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Smart City Digital Twins" +--- + +# [[Smart City Digital Twins]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Smart City Digital Twins.md]] +--- diff --git a/Graphics & Performance/Smart-City-Frameworks.md b/Graphics & Performance/Smart-City-Frameworks.md new file mode 100644 index 00000000..8cb59abb --- /dev/null +++ b/Graphics & Performance/Smart-City-Frameworks.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-28F252 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Smart-City-Frameworks" +--- + +# [[Smart-City-Frameworks]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Smart-City-Frameworks.md]] +--- diff --git a/Graphics & Performance/Sorting.md b/Graphics & Performance/Sorting.md new file mode 100644 index 00000000..beef0248 --- /dev/null +++ b/Graphics & Performance/Sorting.md @@ -0,0 +1,42 @@ +--- +id: P-REINFORCE-AUTO-9C6ABB +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Sorting" +--- + +# [[Sorting]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 3D 렌더링 환경에서 정렬(Sorting)은 카메라와의 거리를 기준으로 객체의 렌더링 순서를 결정하는 핵심 프로세스입니다. 불투명한 객체는 앞에서 뒤로(Front-to-Back) 정렬하여 오버드로우를 최소화하고, 투명한 객체는 뒤에서 앞으로(Back-to-Front) 정렬하여 알파 블렌딩(Alpha Blending)을 올바르게 표현하기 위해 필수적입니다. 그러나 수많은 객체를 다루는 인스턴싱 환경에서는 매 프레임 정렬을 계산하고 버퍼를 재배열하는 과정이 심각한 CPU 병목 현상을 유발할 수 있습니다 [1, 2]. + +## 📖 구조화된 지식 (Synthesized Content) +- **정렬의 목적과 필요성** + 불투명한 물체를 앞에서 뒤로 정렬하면 뒤에 가려진 픽셀 연산을 조기에 종료(Early-Z)할 수 있어 GPU 성능이 향상됩니다 [1]. 반면 투명도를 가진 객체의 경우, 시각적인 오류 없이 올바른 알파 블렌딩 결과를 얻기 위해 반드시 뒤에서 앞으로 렌더링해야 합니다 [2, 3]. + +- **InstancedMesh의 정렬 한계** + 기본적으로 Three.js의 `InstancedMesh`는 단일 드로우 콜 내에서 객체의 렌더링 순서를 동적으로 변경하거나 자동 정렬하는 기능을 제공하지 않습니다 [1, 2]. 정렬을 구현하려면 매 프레임 카메라와의 거리를 계산하고 색상, 변환 행렬 등 모든 인스턴스 속성 데이터를 재정렬해야 하므로 막대한 CPU 오버헤드가 발생합니다 [2, 4]. + +- **정렬 알고리즘 및 처리 비용** + 수만 개의 객체를 정렬하기 위해 기수 정렬(Radix Sort)과 같은 알고리즘을 사용할 수 있으나, 이를 메인 스레드에서 실행하면 CPU에 치명적인 부하를 주어 프레임 드랍을 유발합니다 [2, 5]. 실제로 `BatchedMesh`에서 `.sortObjects` 옵션을 활성화하면 `texSubImage2D` 함수 등의 호출로 인해 CPU 사용량이 급증하고 프레임 속도가 30FPS에서 9FPS로 떨어지는 등 성능이 크게 저하되는 사례가 확인되었습니다 [6-8]. + +- **대안적 정렬 기법** + - **인디렉션(Indirection) 활용:** `InstancedMesh2`와 같은 확장 라이브러리는 렌더링할 인스턴스 인덱스를 관리하는 별도의 `InstancedBufferAttribute`를 사용하여, 실제 행렬 데이터를 직접 섞지 않고도 효율적으로 정렬 및 컬링을 수행합니다 [9]. + - **다중 그리기(Multi-Draw) 확장:** WebGL의 `multi_draw` 기능을 사용하면 단일 드로우 콜을 유지하면서 인스턴스 그리기의 순서를 지정할 수 있어 정렬 문제를 완화할 수 있습니다 [3, 10]. + - **인덱스 버퍼 업데이트:** 정점 버퍼(Vertex Buffer) 대신 인덱스 버퍼(Index Buffer)를 업데이트하여 객체를 정렬하거나 인스턴스화하는 것도 오버헤드를 줄이는 효과적인 저수준 최적화 기법입니다 [11]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[InstancedMesh]], [[BatchedMesh]], [[Overdraw]], [[Alpha Blending]], [[Frustum Culling]], [[Radix Sort]] +- **Projects/Contexts:** [[Three.js]], [[InstancedMesh2]] +- **Contradictions/Notes:** 투명도 및 오버드로우 해결을 위해 정렬이 필수적이지만, 정렬 연산 자체(버퍼 재배열 등)가 CPU에 큰 부하를 가하기 때문에 오히려 전체 프레임 레이트를 떨어뜨리는 역설적인 결과를 낳을 수 있습니다. 이는 GPU 압박과 CPU 병목 사이의 가혹한 절충안을 요구합니다 [1, 2, 7, 8]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Sorting.md]] +--- diff --git a/Graphics & Performance/Spatial Partitioning.md b/Graphics & Performance/Spatial Partitioning.md new file mode 100644 index 00000000..4665462b --- /dev/null +++ b/Graphics & Performance/Spatial Partitioning.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-1BF809 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Spatial Partitioning" +--- + +# [[Spatial Partitioning]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 공간 분할(Spatial Partitioning)은 3D 그래픽스에서 대규모 씬(Scene)의 수많은 객체나 복잡한 기하학적 구조를 효율적으로 렌더링하고 관리하기 위한 최적화 기법입니다. 3D 공간을 BVH(Bounding Volume Hierarchy)나 옥트리(Octree)와 같은 계층적 인덱스 자료구조로 분할하여 관리함으로써, 시스템이 시야 밖의 객체를 조기에 연산에서 제외(Culling)할 수 있게 합니다 [1]. 이를 통해 광선 추적(Raycasting) 상호작용의 속도를 높이고, 프러스텀 컬링의 효율성을 극대화하여 CPU 및 GPU의 과부하를 방지하는 핵심적인 역할을 수행합니다 [1-3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **자료구조의 종류:** 주로 BVH(Bounding Volume Hierarchy) 및 옥트리(Octree)와 같은 계층적 공간 인덱스(Hierarchical spatial index)를 활용하여 전체 씬을 여러 공간 노드로 나눕니다 [1, 4]. 한편, 실내 건축(Arch domain) 환경과 같은 특수한 경우에는 방(Room)과 문(Portal)을 연결하는 공간-포털(Cell-portal) 접근법이 매우 직관적이고 효과적인 공간 분할법으로 채택되기도 합니다 [5]. +- **시야 절두체 컬링(Frustum Culling) 최적화:** 렌더러는 상위 레벨의 공간 노드를 카메라의 시야 프러스텀과 먼저 대조하여, 노드가 시야 내에 있을 때만 개별 컴포넌트 하위로 탐색해 내려갑니다 [1]. 이를 통해 보이지 않는 객체의 교차 테스트와 바운딩 스피어 계산을 과감히 생략할 수 있어 연산 자원을 대폭 절약할 수 있습니다 [1]. 대량의 `InstancedMesh` 환경에서도 전체를 하나로 관리하기보다는 공간적으로 인접한 소규모 인스턴스 그룹 단위로 분할 관리하는 전략을 취해야 컬링 정밀도가 높아져 GPU 낭비를 막을 수 있습니다 [3]. +- **레이캐스팅 가속 (Raycasting Acceleration):** 수만 개의 폴리곤 또는 대규모 인스턴스 씬에서 사용자의 피킹(Picking) 상호작용을 즉각적으로 처리하려면 정교한 공간 분할 자료구조 구축이 필수적입니다 [6]. `three-mesh-bvh`와 같은 라이브러리는 공간 인덱싱(BVH)을 구현하여 8만 개 이상의 폴리곤에 대해서도 60fps를 유지하며 매우 빠른 레이캐스팅과 공간 쿼리(Spatial queries) 성능을 제공합니다 [2, 7]. +- **대규모 환경 및 로딩 관리:** 거대한 오픈 월드 엔진이나 대형 건축물 씬에서 공간 인덱싱은 단순한 렌더링 가속을 넘어, 라이팅(Lighting), 충돌(Collisions), 에셋의 RAM 메모리 로드 및 폐기, 그리고 청크 단위의 월드 콘텐츠 스트리밍(Chunked world content streaming) 등 여러 시스템의 부하를 조율하는 핵심적인 뼈대 역할을 수행합니다 [5, 8]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Frustum Culling]], [[BVH (Bounding Volume Hierarchy)]], [[Octree]], [[InstancedMesh]], [[Raycasting]] +- **Projects/Contexts:** [[three-mesh-bvh]], [[Tesseract Engine]] +- **Contradictions/Notes:** 대규모 환경에서 레이캐스팅 및 렌더링 최적화를 위해 공간 인덱스(Spatial index)를 활용하는 것은 명확한 성능 향상을 제공하지만, 이러한 공간 분할 자료구조를 구축하고 유지하는 데에는 상당한 복잡성(non-trivial complexity)이 수반되며 구현 난이도가 높다는 개발자들의 논의가 존재합니다 [6, 9]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Spatial Partitioning.md]] +--- diff --git a/Graphics & Performance/Special Education Interventions.md b/Graphics & Performance/Special Education Interventions.md new file mode 100644 index 00000000..03dc19fc --- /dev/null +++ b/Graphics & Performance/Special Education Interventions.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B2C5F1 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Special Education Interventions" +--- + +# [[Special Education Interventions]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Special Education Interventions.md]] +--- diff --git a/Graphics & Performance/Spectre and Meltdown.md b/Graphics & Performance/Spectre and Meltdown.md new file mode 100644 index 00000000..97697a61 --- /dev/null +++ b/Graphics & Performance/Spectre and Meltdown.md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-8FCA7F +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Spectre and Meltdown" +--- + +# [[Spectre and Meltdown]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Spectre와 Meltdown은 현대 프로세서의 투기적 실행(speculative execution) 과정에서 발생하는 취약점을 악용하여, 공격자가 접근 권한이 없는 메모리 영역의 비밀 데이터를 읽을 수 있게 하는 보안 결함이다 [1, 2]. 웹 브라우저 환경에서는 캐시 적중률과 메모리 접근 패턴의 미세한 시간 차이를 측정하는 타이밍 공격을 통해 이 취약점이 실행될 수 있다 [3-6]. 이를 방지하기 위해 브라우저 엔진들은 타이머의 정밀도를 낮추고 분기 없는 보안 검사를 도입하였으며, 이는 결과적으로 GPU 및 WebGL 파이프라인 연산의 미세 지연(micro-latency)을 소폭 증가시켰다 [7-9]. + +## 📖 구조화된 지식 (Synthesized Content) +- **투기적 실행과 메모리 접근 타이밍 악용:** + Spectre와 Meltdown은 CPU가 성능 향상을 위해 분기문의 결과를 예측하고 미리 코드를 실행하는 '투기적 실행'을 악용한다 [2]. CPU는 예측이 틀렸을 경우 실행 상태를 롤백하지만, 이 과정에서 메인 메모리에서 L1 캐시로 데이터를 로드한 흔적은 그대로 남게 된다 [2, 5]. 공격자는 고정밀 타이머를 사용하여 특정 메모리 배열(예: `otherArray`과 `otherArray[10]`)에 대한 접근 속도 차이를 측정함으로써 캐시에 로드된 데이터를 추론하는 타이밍 기반 정보 유출 공격을 수행할 수 있다 [5, 6]. WebKit과 같은 JavaScript 엔진에서 악의적인 스크립트가 실행될 경우, 경계 검사(bounds check)나 타입 검사를 우회하여 프로세스 주소 공간의 임의의 메모리를 읽을 위험이 있다 [11, 12]. + +- **브라우저의 보안 완화 조치 (타이머 정밀도 감소 및 지터 도입):** + 고해상도 타이밍 공격을 막기 위해 WebKit과 Blink 등의 브라우저 엔진은 `performance.now()`의 정밀도를 1ms 또는 100 마이크로초 수준으로 대폭 낮추고, 반환되는 시간 값에 무작위 변동성인 '지터(jitter)'를 추가하였다 [7, 9, 13]. 또한, 고해상도 타이머를 생성하는 데 악용될 수 있는 `SharedArrayBuffer`를 비활성화하였다 [9]. WebGPU의 `timestamp-query` 기능 역시 타이밍 공격 우려로 인해 양자화(quantization)를 적용하여 격리된 컨텍스트에서도 해상도를 100 마이크로초로 제한하였다 [14-16]. 과거 WebGL에서는 `EXT_disjoint_timer_query` 확장을 통해 프레임 지연을 정밀하게 측정할 수 있었으나, 이 역시 동일한 보안 이유로 인해 최신 브라우저들에서 비활성화되거나 제한되었다 [3, 4]. + +- **분기 없는 보안 검사(Branchless Security Checks) 도입:** + 브라우저는 타이머 조작 외에도 투기적 실행 자체의 부작용을 방어하기 위해 인덱스 마스킹(Index Masking)과 포인터 포이즈닝(Pointer Poisoning) 같은 분기 없는 보안 검사 기법을 도입했다 [17, 18]. 인덱스 마스킹은 비트 연산을 사용하여 투기적 실행 중에도 배열 인덱스가 항상 유효한 범위 내에 있도록 강제한다 [17, 19]. 포인터 포이즈닝은 포인터에 임의의 값을 XOR 연산하여, 잘못된 투기적 분기가 일어날 경우 매핑되지 않은 유효하지 않은 메모리를 가리키도록 유도한다 [17, 20]. + +- **그래픽스 파이프라인의 미세 지연(Micro-latency)에 미치는 영향:** + 이러한 보안 완화 조치들은 웹 타이밍 보안을 위해 필수적이지만, JavaScript 엔진과 JIT(Just-In-Time) 컴파일러가 수행하는 그래픽스 실행 중요 경로(critical path)에 추가적인 명령어를 삽입하게 만든다 [8]. 결과적으로 이는 그래픽스 파이프라인 내에서 수행되는 모든 연산의 기본 미세 지연(base micro-latency)을 약간 증가시키는 원인이 된다 [8]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[EXT_disjoint_timer_query]], [[Timestamp Queries Quantization]], [[Branchless Security Checks]] +- **Projects/Contexts:** [[WebKit Security Mitigations]], [[WebGPU / WebGL Timing API Security]] +- **Contradictions/Notes:** 소스에는 Spectre 및 Meltdown 취약점으로 인해 도입된 브라우저 엔진의 보안 조치(타이머 정밀도 하향, 분기 없는 보안 검사 추가 등)가 그래픽스 파이프라인의 전반적인 미세 지연을 증가시킨다는 사실은 설명되어 있으나 [8], 루트 주제에서 명시한 '브라우저 메모리 할당 시점별' 미세 지연의 변화를 직접적으로 측정한 구체적인 실험 사례나 수치에 대해서는 소스에 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Spectre and Meltdown.md]] +--- diff --git a/Graphics & Performance/Speculative Biology.md b/Graphics & Performance/Speculative Biology.md new file mode 100644 index 00000000..e1ce2dab --- /dev/null +++ b/Graphics & Performance/Speculative Biology.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-FF5504 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Speculative Biology" +--- + +# [[Speculative Biology]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Speculative Biology.md]] +--- diff --git a/Graphics & Performance/Spring Framework.md b/Graphics & Performance/Spring Framework.md new file mode 100644 index 00000000..c27ab742 --- /dev/null +++ b/Graphics & Performance/Spring Framework.md @@ -0,0 +1,38 @@ +--- +id: P-REINFORCE-AUTO-C45BD6 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Spring Framework" +--- + +# [[Spring Framework]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Spring Framework는 자바(Java) 환경에서 사용되는 프레임워크로, 주로 내장된 DI(의존성 주입) 컨테이너를 통해 컴포넌트 간의 결합도를 낮추는 역할을 합니다 [1]. 또한 런타임 시점에 적용되는 Spring AOP를 지원하여 트랜잭션 관리 및 캐시 처리와 같은 횡단 관심사의 모듈화를 돕습니다 [2, 3]. 다만 제공된 문헌에는 Spring Framework의 전반적인 아키텍처나 생태계 전반을 다루는 내용이 없어, 소스에 관련 정보가 부족합니다. + +## 📖 구조화된 지식 (Synthesized Content) +* **의존성 주입(DI)과 결합도 감소** + Spring Framework는 내장된 의존성 주입(Dependency Injection) 컨테이너를 제공하여 SOLID 원칙 중 하나인 의존성 역전 원칙(Dependency Inversion Principle, DIP)을 훨씬 쉽게 구현할 수 있도록 지원합니다 [1]. 이를 통해 소프트웨어 컴포넌트들을 효과적으로 분리(decoupling)하고 유연한 설계를 가능하게 합니다 [1]. + +* **Spring AOP (관점 지향 프로그래밍) 지원** + * **런타임 위빙(Runtime Weaving):** Spring AOP는 애플리케이션의 실제 코드와 Aspect를 결합하는 위빙 과정에 있어 프로그램 실행 시점에 적용되는 런타임 위빙 방식을 사용합니다 [2]. + * **조인 포인트(Join Point)의 한계:** 프로그램 실행 중 Aspect를 적용할 수 있는 지점인 조인 포인트에 대해, Spring AOP는 오직 '메서드 실행 시점'만을 지원합니다 [4]. 따라서 이보다 더 세부적인 제어가 필요한 상황에서는 AspectJ를 대신 사용해야 합니다 [5]. + * **주요 활용 사례:** 데이터베이스 트랜잭션을 관리하는 `@Transactional` 어노테이션과 성능 개선을 위해 자주 호출되는 메서드 결과를 캐싱하는 Spring Cache 라이브러리는 모두 이러한 AOP 기능을 활용하여 구현되어 있습니다 [3]. + +*(전체적인 웹 모듈, 데이터 접근 기술, 부트스트랩 과정 등 프레임워크의 상세 아키텍처에 대해서는 소스에 관련 정보가 부족합니다.)* + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Dependency Injection (DI)]], [[Aspect-Oriented Programming (AOP)]] +- **Projects/Contexts:** [[SOLID Principles]], [[객체 지향 프로그래밍 (OOP)]] +- **Contradictions/Notes:** 소스에 따르면 Spring AOP는 런타임에 적용되어 유용한 모듈화를 제공하지만, 오직 메서드 실행 시점의 조인 포인트만 지원하는 한계가 있어 더 정밀한 제어를 원할 경우 AspectJ 사용이 권장됩니다 [4, 5]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Spring Framework.md]] +--- diff --git a/Graphics & Performance/Structuralism.md b/Graphics & Performance/Structuralism.md new file mode 100644 index 00000000..f2492510 --- /dev/null +++ b/Graphics & Performance/Structuralism.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-569BE2 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Structuralism" +--- + +# [[Structuralism]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Structuralism.md]] +--- diff --git a/Graphics & Performance/Surgical-Robotics.md b/Graphics & Performance/Surgical-Robotics.md new file mode 100644 index 00000000..0bf6770e --- /dev/null +++ b/Graphics & Performance/Surgical-Robotics.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-C5C20D +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Surgical-Robotics" +--- + +# [[Surgical-Robotics]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Surgical-Robotics.md]] +--- diff --git a/Graphics & Performance/Systemic-Design-Frameworks.md b/Graphics & Performance/Systemic-Design-Frameworks.md new file mode 100644 index 00000000..ba86633b --- /dev/null +++ b/Graphics & Performance/Systemic-Design-Frameworks.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-3308A5 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Systemic-Design-Frameworks" +--- + +# [[Systemic-Design-Frameworks]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Systemic-Design-Frameworks.md]] +--- diff --git a/Graphics & Performance/Systems Theory.md b/Graphics & Performance/Systems Theory.md new file mode 100644 index 00000000..9e83912d --- /dev/null +++ b/Graphics & Performance/Systems Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B5E5CB +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Systems Theory" +--- + +# [[Systems Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Systems Theory.md]] +--- diff --git a/Graphics & Performance/TLB design.md b/Graphics & Performance/TLB design.md new file mode 100644 index 00000000..4ca8a5a8 --- /dev/null +++ b/Graphics & Performance/TLB design.md @@ -0,0 +1,36 @@ +--- +id: P-REINFORCE-AUTO-3CAF83 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - TLB design" +--- + +# [[TLB design]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 소스에 관련 정보가 부족합니다. 제공된 문헌에는 TLB design(Translation Lookaside Buffer 설계)에 대한 직접적이고 구체적인 정의나 기술적 설명이 포함되어 있지 않습니다. + +## 📖 구조화된 지식 (Synthesized Content) +소스에 관련 정보가 부족합니다. + +제공된 소스에서 'TLB design'과 관련하여 파악할 수 있는 유일한 단편적인 정보는 다음과 같습니다: + +* **GPU 보안 취약점과의 연관성:** 과거 WebGL을 통해 GPU에서 Rowhammer 공격을 실행한 심각한 보안 사례가 보고된 바 있습니다. 공격자들은 고정밀 타임스탬프 쿼리를 이용해 캐시 미스율을 확인하고 GPU의 물리적 메모리 레이아웃을 파악하여 특정 비트를 조작(flip)했습니다 [1]. +* **특정 설계에 국한된 공격:** 이 정교한 공격이 가능했던 이유는 공격 대상이 된 기기가 "매우 명확하게 정의된 TLB 설계(TLB design)"를 가지고 있었기 때문입니다. 즉, 특정 TLB 설계 구조가 해당 보안 취약점(Rowhammer)이 성립하기 위한 조건 중 하나로 작용했습니다 [1]. +* **최신 하드웨어의 방어:** 이러한 특정 TLB 설계를 타겟으로 한 공격은 최신 RAM에 적용된 Rowhammer 방어 기법(mitigations)을 통해 예방되었습니다 [1]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Rowhammer]], [[WebGL]] +- **Projects/Contexts:** [[WebGPU High Resolution Time Spec]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/TLB design.md]] +--- diff --git a/Graphics & Performance/TSL (Three Shader Language).md b/Graphics & Performance/TSL (Three Shader Language).md new file mode 100644 index 00000000..7336f19b --- /dev/null +++ b/Graphics & Performance/TSL (Three Shader Language).md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-C8966B +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - TSL (Three Shader Language)" +--- + +# [[TSL (Three Shader Language)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> TSL (Three Shader Language)은 Three.js의 노드 기반 머티리얼 시스템입니다 [1]. 셰이더를 한 번 작성하면 WebGPU용 WGSL과 WebGL용 GLSL로 자동 컴파일되어 실행될 수 있게 해줍니다 [1, 2]. 로우 레벨(Raw) 셰이더를 직접 작성하는 것을 대체하며, 향후 Three.js에서 커스텀 셰이더를 구현하기 위한 권장 방식입니다 [1, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **교차 컴파일 및 자동화**: TSL은 GLSL과 WGSL 두 개의 별도 코드베이스를 유지할 필요가 없도록 교차 컴파일을 지원합니다 [3]. 또한, 유니폼(Uniform)과 속성(Attribute) 데이터 처리를 자동으로 핸들링하여 개발 복잡도를 줄여줍니다 [3]. +- **동적 노드 머티리얼(Node Materials) 제어**: TSL 기반의 노드 머티리얼은 합성(Composable)이 가능하며, `positionNode`, `colorNode`, `normalNode`와 같은 속성을 통해 프로그래밍 방식으로 제어할 수 있어 기존 WebGL에서는 커스텀 셰이더가 필요했던 효과들을 동적으로 구현할 수 있습니다 [3, 4]. +- **재사용 가능한 셰이더 로직(Fn 패턴)**: `Fn` 패턴을 사용하여 재사용 가능한 셰이더 함수를 작성할 수 있습니다 [5]. 이렇게 작성된 함수는 한 번 컴파일된 후 여러 머티리얼에 걸쳐 재사용이 가능합니다 [5]. +- **내장 노이즈 함수**: TSL에는 MaterialX 노이즈 함수가 기본적으로 내장되어 있어, 외부 라이브러리에 의존하지 않고도 노이즈 효과를 구현할 수 있습니다 [5]. +- **WebGPU 네이티브 포스트 프로세싱**: WebGPU 기반의 프로젝트에서는 `pmndrs/postprocessing` 라이브러리 대신 TSL 노드를 사용하는 Three.js 내장 포스트 프로세싱을 사용하는 것이 컴퓨트 셰이더를 완벽히 지원하는 네이티브 해결책입니다 [6]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGPU]], [[WebGL]], [[WGSL]], [[GLSL]], [[Node Material]] +- **Projects/Contexts:** [[Three.js]] +- **Contradictions/Notes:** 소스 간의 모순점은 없으나, 이전의 렌더링 방식과 달리 별도의 GLSL/WGSL 코드를 직접 작성하는 것보다 TSL을 사용하는 것이 코드 유지보수 및 교차 호환성 측면에서 명백히 우월하다고 강조하고 있습니다 [3]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/TSL (Three Shader Language).md]] +--- diff --git a/Graphics & Performance/Temporal-Logic.md b/Graphics & Performance/Temporal-Logic.md new file mode 100644 index 00000000..614f1891 --- /dev/null +++ b/Graphics & Performance/Temporal-Logic.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-8C33E2 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Temporal-Logic" +--- + +# [[Temporal-Logic]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Temporal-Logic.md]] +--- diff --git a/Graphics & Performance/Texture Compression.md b/Graphics & Performance/Texture Compression.md new file mode 100644 index 00000000..4383bb5d --- /dev/null +++ b/Graphics & Performance/Texture Compression.md @@ -0,0 +1,39 @@ +--- +id: P-REINFORCE-AUTO-B90AAF +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Texture Compression" +--- + +# [[Texture Compression]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 텍스처 압축(Texture Compression)은 웹 기반 3D 애플리케이션(예: Three.js)에서 GPU 메모리(VRAM) 소비와 파일 다운로드 크기를 획기적으로 줄이기 위한 필수 최적화 기술입니다 [1-3]. PNG나 JPEG와 같은 일반적인 이미지 포맷이 GPU 메모리 내에서 압축이 완전히 풀리는 것과 달리, KTX2나 Basis Universal 같은 포맷은 GPU 상에서도 압축된 상태를 유지하여 하드웨어 가속 압축 해제를 지원합니다 [1, 3]. 이를 통해 메모리 대역폭 요구량을 줄이고 저사양 기기에서의 브라우저 크래시나 프레임 저하를 방지할 수 있습니다 [2, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +* **VRAM 점유율 및 메모리 효율성 향상** + PNG 및 JPEG 텍스처는 파일 크기가 작더라도 GPU 메모리(VRAM)에 로드될 때 압축이 완전히 해제됩니다 [1]. 예를 들어 200KB 크기의 PNG 파일이나 비압축 RGBA 포맷의 4096×4096 해상도 텍스처는 VRAM에서 각각 20MB 이상, 최대 64MB까지 공간을 차지할 수 있습니다 [1, 2]. 모바일 기기 등에서 텍스처 메모리가 500MB를 초과하면 가비지 컬렉션 지연 및 프레임 끊김 현상이 발생합니다 [2]. KTX2 및 Basis Universal과 같은 GPU 친화적 압축 포맷을 사용하면 텍스처가 GPU 상에서 압축된 상태로 유지되어 메모리 사용량을 75%에서 최대 약 10배까지 줄일 수 있습니다(예: 64MB에서 8-16MB로 감소) [1, 3, 4]. +* **Basis Universal 및 플랫폼 호환성** + Basis Universal은 다양한 GPU 포맷을 지원하며, 로드 시점에 데스크톱(BC7), 모바일(ASTC), iOS(PVRTC) 등 각 플랫폼에 맞는 포맷으로 자동 트랜스코딩됩니다 [3, 4]. 블록 압축 알고리즘을 통해 시각적 품질을 보존하면서도 파일 크기를 PNG 대비 75~90% 줄여주며, 4:1에서 8:1 수준의 압축률을 제공하여 텍스처 다운로드 시간도 크게 단축합니다 [3, 4]. +* **압축 알고리즘 선택 (UASTC vs ETC1S)** + 에셋의 특성에 따라 적절한 압축 방식을 선택해야 합니다. + * **UASTC:** 파일 크기는 상대적으로 크지만 더 높은 품질을 제공하므로, 노멀 맵(Normal maps)이나 중요도가 높은 히어로 텍스처(Hero textures)에 적합합니다 [1, 5]. + * **ETC1S:** 품질은 수용 가능한 수준이면서 파일 크기를 더 작게 만들 수 있어, 디퓨즈(Diffuse) 텍스처, 환경 텍스처 및 보조 에셋에 적합합니다 [1, 5]. +* **구현 및 툴 활용** + Three.js에서 Draco 및 KTX2를 사용하려면 초기 설정 시 적절한 디코더 경로를 구성해야 합니다 [6]. 또한 시각적인 품질 저하 없이 얼마나 압축할 수 있는지 확인하기 위해 Shopify의 `gltf-compressor`와 같은 도구를 사용하여 압축 전후를 대조하고 최적의 값을 찾는 것이 권장됩니다 [5]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[KTX2]], [[Basis Universal]], [[UASTC]], [[ETC1S]], [[VRAM]] +- **Projects/Contexts:** [[Three.js]], [[WebGL]], [[gltf-compressor]] +- **Contradictions/Notes:** 소스에 내용 충돌은 없으며, PNG/JPEG 포맷은 파일 크기(예: 200KB)가 작더라도 GPU 메모리에 올라갈 때 압축이 해제되어 막대한 VRAM(예: 20MB+)을 소모하므로 KTX2와 같은 전용 텍스처 압축 기술이 필수적이라고 일관되게 강조하고 있습니다 [1]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Texture Compression.md]] +--- diff --git a/Graphics & Performance/The Rapture Setting.md b/Graphics & Performance/The Rapture Setting.md new file mode 100644 index 00000000..cd931f18 --- /dev/null +++ b/Graphics & Performance/The Rapture Setting.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-180DD3 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - The Rapture Setting" +--- + +# [[The Rapture Setting]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/The Rapture Setting.md]] +--- diff --git a/Graphics & Performance/The-Space-Syntax-Laboratory.md b/Graphics & Performance/The-Space-Syntax-Laboratory.md new file mode 100644 index 00000000..fea0bce1 --- /dev/null +++ b/Graphics & Performance/The-Space-Syntax-Laboratory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-64715F +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - The-Space-Syntax-Laboratory" +--- + +# [[The-Space-Syntax-Laboratory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/The-Space-Syntax-Laboratory.md]] +--- diff --git a/Graphics & Performance/Three Shader Language (TSL).md b/Graphics & Performance/Three Shader Language (TSL).md new file mode 100644 index 00000000..377ecb42 --- /dev/null +++ b/Graphics & Performance/Three Shader Language (TSL).md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-1AF9EB +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Three Shader Language (TSL)" +--- + +# [[Three Shader Language (TSL)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> TSL(Three Shader Language)은 WebGPU의 WGSL과 WebGL의 GLSL로 모두 컴파일될 수 있는 Three.js의 노드 기반 머티리얼 및 셰이더 시스템입니다 [1]. 개발자가 셰이더 코드를 한 번만 작성하면 여러 플랫폼에서 실행 가능하도록 자동 교차 컴파일을 지원하여 코드 중복을 방지합니다 [1-3]. 유니폼 및 속성 관리를 자동으로 처리해주며, 향후 Three.js에서 커스텀 셰이더를 개발하기 위한 권장 방식으로 평가받고 있습니다 [1, 2, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +* **단일 코드베이스와 자동 교차 컴파일:** TSL은 원시(raw) GLSL 또는 WGSL을 직접 작성하여 두 개의 셰이더 코드베이스를 유지해야 하는 수고를 덜어줍니다 [2]. 작성된 코드는 WebGPU 및 WebGL 환경 모두에 맞춰 자동으로 교차 컴파일되며, 유니폼(uniforms) 및 속성(attributes) 처리 역시 TSL이 자동으로 관리합니다 [2, 4]. +* **노드 기반 머티리얼 제어:** TSL의 노드 머티리얼은 조합이 가능(composable)하며, `positionNode`, `colorNode`, `normalNode`와 같은 속성을 수용하여 프로그래밍 방식의 제어를 지원합니다 [2, 5]. 이를 통해 기존 WebGL 환경에서는 별도의 복잡한 커스텀 셰이더를 작성해야만 했던 동적인 렌더링 효과를 더 쉽게 구현할 수 있습니다 [5]. +* **코드 재사용성 및 내장 함수:** 개발자는 `Fn` 패턴을 활용하여 재사용 가능한 TSL 함수를 작성할 수 있으며, 이 함수들은 한 번 컴파일된 후 여러 머티리얼에 걸쳐 자유롭게 재사용할 수 있습니다 [6]. 또한, MaterialX 노이즈 함수와 같은 유용한 기능들이 내장되어 있어 외부 라이브러리에 의존하지 않고도 노이즈 관련 셰이더 로직을 구현할 수 있습니다 [6]. +* **WebGPU 포스트 프로세싱 지원:** WebGPU 기반 프로젝트의 경우, TSL 노드와 결합된 Three.js의 내장(native) 포스트 프로세싱 기능을 사용하는 것이 권장됩니다 [7]. 이는 전체 컴퓨트 셰이더(compute shader) 지원이 통합된 WebGPU용 네이티브 솔루션으로 작동합니다 [7]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGPU]], [[WebGL]], [[WGSL]], [[GLSL]], [[Node Material]] +- **Projects/Contexts:** [[Three.js 크로스 플랫폼 커스텀 셰이더 및 포스트 프로세싱 개발]] +- **Contradictions/Notes:** 기존 WebGL 프로젝트에서는 외부 라이브러리인 `pmndrs/postprocessing`이 여전히 훌륭한 선택지로 평가되지만, WebGPU 프로젝트 환경에서는 TSL 노드 기반의 Three.js 네이티브 포스트 프로세싱을 사용하는 것으로 개발 방식이 전환될 것을 권장하고 있습니다 [7]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Three Shader Language (TSL).md]] +--- diff --git a/Graphics & Performance/Three.js 렌더링 최적화.md b/Graphics & Performance/Three.js 렌더링 최적화.md new file mode 100644 index 00000000..8496b87d --- /dev/null +++ b/Graphics & Performance/Three.js 렌더링 최적화.md @@ -0,0 +1,29 @@ +--- +id: P-REINFORCE-AI-046 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.97 +tags: [three.js, webgl, rendering, optimization] +last_reinforced: 2026-06-XX +github_commit: "[P-Reinforce] Processed Three.js WebGL 렌더링 최적화." +--- + +# [[Three.js 렌더링 최적화]] (이전 배치와 동일한 내용) + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 대규모 웹 환경에서 WebGL 기반 3D 씬을 구현할 때, 단순한 모델 로딩 이상의 관점에서 드로우 콜 감소, 자원 재활용, 그리고 GPU/CPU 부하 분산을 통해 성능 병목을 해결하는 것이 핵심이다. + +## 📖 구조화된 지식 (Synthesized Content) +- **성능 최적화의 목표:** 웹 브라우저 환경에서 높은 프레임률(60FPS 이상)을 유지하면서 복잡한 3D 시각화를 구현하는 것이다. 주요 병목 구간은 CPU/GPU 자원 관리와 데이터 전송량에 있다. +- **핵심 기술 및 전략:** (생략 - 핵심 내용은 이미 위키화 되어있음) + 1. **드로우 콜 최적화 (Draw Call Optimization):** Instancing, Batching을 통해 GPU 부하를 줄인다. + 2. **자원 관리 (Resource Management):** Dispose() 호출을 통한 메모리 누수 방지 및 효율적인 자원 재활용. + 3. **렌더링 기법 개선:** LOD, Culling 등 하드웨어 기반 최적화 적용. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **정책 변화:** WebGPU의 도입은 기존 WebGL의 한계를 뛰어넘는 가장 중요한 패러다임 전환점이며, 이를 활용한 컴퓨팅 기능(Compute Shader)이 핵심 트렌드로 부상 중이다. + +## 🔗 지식 연결 (Graph) +- Parent: [[WebGL Optimization]] +- Related: [[InstancedMesh]] , [[Draw Call Optimization]] , [[WebGPU]] +- Raw Source: [[00_Raw/Three.js WebGL 렌더링 최적화.md]] +--- \ No newline at end of file diff --git a/Graphics & Performance/Threejs WebGL Rendering Optimization.md b/Graphics & Performance/Threejs WebGL Rendering Optimization.md new file mode 100644 index 00000000..a5099969 --- /dev/null +++ b/Graphics & Performance/Threejs WebGL Rendering Optimization.md @@ -0,0 +1,51 @@ +--- +id: P-REINFORCE-AUTO-46187E +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Threejs WebGL Rendering Optimization" +--- + +# [[Threejs WebGL Rendering Optimization]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Three.js WebGL 렌더링 최적화는 3D 웹 애플리케이션의 프레임 속도를 향상시키고 메모리 사용량을 줄이기 위한 기술적 접근 방식을 의미합니다 [1, 2]. 이 최적화의 핵심은 CPU와 GPU 간의 병목 현상을 유발하는 드로우 콜(Draw Call) 횟수를 최소화하고, 메모리 대역폭을 효율적으로 관리하는 것입니다 [3, 4]. 이를 위해 `InstancedMesh`, `BatchedMesh`, 기하학 병합(Geometry Merging), 텍스처 압축, 그리고 시야 절두체 컬링(Frustum Culling)과 같은 다양한 기법이 활용되며, 2026년 도입된 WebGPU 기술은 컴퓨트 셰이더를 통해 렌더링 한계를 더욱 확장시켰습니다 [3, 5-8]. + +## 📖 구조화된 지식 (Synthesized Content) +**드로우 콜 최적화 (Draw Call Optimization)** +* CPU가 GPU에 렌더링 명령을 내리는 드로우 콜은 상태 변경 및 준비 과정에서 막대한 오버헤드를 발생시킵니다 [4, 9, 10]. 매끄러운 60fps 성능을 유지하기 위해 프레임당 드로우 콜을 100회 미만으로 유지하는 것이 권장됩니다 [11-13]. +* 동일한 기하학적 구조와 재질을 가진 객체가 수백, 수천 개 반복될 때는 단일 드로우 콜로 렌더링을 처리할 수 있는 `InstancedMesh`를 사용하는 것이 가장 효율적입니다 [11, 14, 15]. +* 반면 재질은 공유하지만 각기 다른 기하학적 구조를 가진 객체들을 렌더링할 때는 `BatchedMesh`를 사용하여 하나의 드로우 콜로 묶을 수 있습니다 [5, 16, 17]. +* 정적인 환경 객체(건물, 지형 등)는 `BufferGeometryUtils`를 사용하여 로드 시점에 하나의 기하학으로 병합(Merge)하는 것이 유리합니다 [6, 16, 18]. 단, 병합된 객체는 개별적으로 애니메이션을 주거나 독립적인 컬링(Culling)을 적용할 수 없는 단점이 있습니다 [6, 18]. + +**메모리 및 에셋 관리 (Memory and Asset Management)** +* Three.js는 GPU 리소스를 자동으로 가비지 컬렉션(Garbage Collect)하지 않으므로, 사용이 끝난 기하학, 재질, 텍스처, 렌더 타겟은 반드시 `.dispose()`를 호출하여 GPU 메모리에서 명시적으로 삭제해야 메모리 누수를 막을 수 있습니다 [19-21]. +* 3D 모델의 기하학적 데이터를 Draco로 압축하면 파일 크기를 90~95%까지 줄일 수 있으며, KTX2 (Basis Universal) 텍스처 압축을 사용하면 일반 PNG 대비 GPU 메모리(VRAM) 사용량을 대폭 절감할 수 있습니다 [12, 22-24]. +* 수많은 작은 텍스처들은 텍스처 아틀라스(Texture Atlas)나 배열 텍스처(Data Array Texture)로 결합하여 텍스처 바인딩 횟수를 줄여야 합니다 [25-27]. + +**InstancedMesh의 구조적 한계와 성능 병목** +* **비효율적인 절두체 컬링(Frustum Culling):** `InstancedMesh`는 내부의 개별 인스턴스가 아닌, 전체 인스턴스를 포함하는 거대한 바운딩 볼륨을 기준으로 컬링을 수행합니다 [28]. 즉, 단 하나의 인스턴스만 시야에 있어도 화면 밖의 모든 인스턴스에 대해 강제적인 정점 연산이 발생하여 GPU 자원이 낭비될 수 있습니다 [28, 29]. +* **오버드로우(Overdraw) 발생:** `InstancedMesh` 내의 인스턴스들은 렌더링 순서가 자동 정렬되지 않으므로 앞뒤 객체 간 오버드로우(동일 픽셀 영역에 중복 계산)가 발생합니다 [30, 31]. 이는 불투명 객체의 프래그먼트 병목을 유발하고 투명한 객체에서는 심각한 시각적 오류를 발생시킵니다 [31, 32]. +* **레이캐스팅(Raycasting) 제약:** 움직이는 인스턴스들에 대해 레이캐스팅이 정상 작동하려면 인스턴스 행렬이 변경된 후 반드시 `computeBoundingSphere()`와 `computeBoundingBox()`를 호출하여 바운딩 볼륨을 다시 계산해야 합니다 [33, 34]. + +**셰이더, LOD 및 WebGPU 렌더링 파이프라인** +* 카메라 거리에 따라 고해상도 메쉬를 저해상도 메쉬나 단순한 임포스터(빌보드)로 교체하는 LOD (Level of Detail) 시스템을 구현하면 프레임 속도를 크게 방어할 수 있습니다 [13, 35-37]. +* 저사양 통합 GPU 환경에서는 오버드로우로 인한 픽셀 처리 부하를 줄이기 위해 먼저 깊이(Depth)만 렌더링한 후(색상 쓰기 비활성화), 실제 렌더링에서 깊이 테스트를 EQUAL로 설정하여 가려진 픽셀 연산을 생략하는 'Depth Pre-Pass' 기법이 효과적입니다 [38, 39]. 또한 물리 기반 렌더링인 `MeshStandardMaterial` 대신 계산 비용이 저렴한 `MeshPhongMaterial`을 활용하면 성능 향상에 도움이 됩니다 [40, 41]. +* 2026년 기준, WebGL에서 WebGPU(`WebGPURenderer`)로 전환하면 컴퓨트 셰이더(Compute Shaders)를 활용하여 CPU가 처리하던 대규모 파티클 시스템 업데이트, 물리 시뮬레이션 연산 등을 GPU 병렬 처리로 넘겨 비약적인 성능 향상(최대 100배)을 이룰 수 있습니다 [7, 42-45]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Draw Call]], [[InstancedMesh]], [[BatchedMesh]], [[Level of Detail (LOD)]], [[Frustum Culling]], [[WebGPU]] +- **Projects/Contexts:** [[Segments.ai WebGPU Migration]], [[InstancedMesh2 Library]], [[Three.js WebGPURenderer (r171+)]] +- **Contradictions/Notes:** + - `BatchedMesh`는 다수의 고유 기하학 객체를 단일 드로우 콜로 묶어주는 훌륭한 최적화 도구이지만 [5, 16], 20만 개가 넘는 수준의 과도하게 많은 지오메트리에 적용할 경우 버퍼의 draw "starts" 및 "counts" 데이터를 매 프레임 업데이트해야 하는 오버헤드로 인해 오히려 CPU 사용률이 폭증하고 기존의 Merged Mesh 방식보다 성능이 크게 저하되는 현상이 발생할 수 있습니다 [46-49]. + - `InstancedMesh`는 드로우 콜을 혁신적으로 줄여주지만, 인스턴스들이 정렬되지 않아 막대한 오버드로우를 유발하므로, 객체가 겹치는 씬의 경우 여러 개의 개별 Mesh를 공유 속성으로 렌더링하는 것보다 오히려 프레임 속도가 더 떨어지는 역설적인 상황이 발생할 수 있습니다 [30, 31, 50]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Three.js WebGL Rendering Optimization.md]] +--- diff --git a/Graphics & Performance/Threejs WebGPU 파티클 예제.md b/Graphics & Performance/Threejs WebGPU 파티클 예제.md new file mode 100644 index 00000000..42b4651d --- /dev/null +++ b/Graphics & Performance/Threejs WebGPU 파티클 예제.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-A9D3D4 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Threejs WebGPU 파티클 예제" +--- + +# [[Threejs WebGPU 파티클 예제]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Three.js에서 전통적인 CPU 기반의 파티클 업데이트는 약 5만 개 수준에서 병목 현상이 발생하지만, WebGPU 컴퓨트 셰이더를 활용하면 이를 수백만 개 단위로 확장할 수 있습니다 [1]. WebGPU 파티클 예제들은 `instancedArray`와 같은 GPU 영구 버퍼를 사용하여 CPU와 GPU 간의 데이터 전송 부하를 제거하는 방식을 보여줍니다 [1]. 이러한 최적화 기술은 Expo 2025 Osaka와 같은 실제 프로젝트에서 100만 개의 파티클을 지연 없이 실시간으로 렌더링하는 데 성공적으로 적용되었습니다 [2, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +* **성능 한계 돌파:** 일반적인 하드웨어 환경에서 CPU를 이용해 파티클을 업데이트할 경우 보통 50,000개 정도에서 성능 병목이 발생합니다 [1]. 하지만 파티클 시스템을 WebGPU의 컴퓨트 셰이더(Compute Shaders)로 이동시키면 한계를 수백만 개 수준으로 끌어올릴 수 있습니다 [1]. +* **영구적인 GPU 버퍼 사용 (`instancedArray`):** Three.js WebGPU 파티클 예제에서는 `instancedArray`를 사용하여 프레임 간 데이터가 유지되는 영구적인 GPU 버퍼를 생성합니다 [1]. 이 방식은 전통적인 파티클 시스템에서 성능 저하의 주원인이었던 CPU와 GPU 간의 데이터 전송 과정을 완전히 제거하여 성능을 극대화합니다 [1]. +* **대규모 실제 적용 사례:** 고성능 WebGPU 파티클 시스템의 강력함을 보여주는 대표적인 실제 사례로 2025년 오사카 엑스포(Expo 2025 Osaka)의 "Waves of Connection" (Hokusai 인스톨레이션)이 있습니다 [2, 3]. 이 프로젝트에서는 98인치 4K 디스플레이 환경에서 100만 개의 파티클을 이용한 유체 시뮬레이션을 지연 현상 없이 실시간으로 렌더링했으며, 다인원 바디 트래킹까지 원활하게 처리했습니다 [2, 3]. +* **컴퓨트 셰이더의 연산 확장성:** 파티클 렌더링 외에도 물리 연산, 충돌 감지, 실시간 데이터 필터링 등 연산 집약적인 작업들은 WebGPU 컴퓨트 셰이더를 통해 수천 개의 GPU 코어에서 병렬로 처리될 수 있습니다 [4, 5]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGPU Compute Shaders]], [[instancedArray]] +- **Projects/Contexts:** [[Expo 2025 Osaka]], [[Waves of Connection]] +- **Contradictions/Notes:** 소스 내용에 따르면, WebGPU 파티클 예제는 WebGL 기반의 단일 스레드 CPU 처리 한계(약 5만 개)를 극복하기 위해 컴퓨트 셰이더 연산과 영구적인 GPU 데이터 할당 구조를 결합하여 수십 배 이상의 파티클을 렌더링할 수 있는 방향으로 발전하고 있습니다 [1, 5, 6]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Three.js WebGPU 파티클 예제.md]] +--- diff --git a/Graphics & Performance/Threejs 대규모 렌더링 최적화 파이프라인.md b/Graphics & Performance/Threejs 대규모 렌더링 최적화 파이프라인.md new file mode 100644 index 00000000..2c1c069a --- /dev/null +++ b/Graphics & Performance/Threejs 대규모 렌더링 최적화 파이프라인.md @@ -0,0 +1,35 @@ +--- +id: P-REINFORCE-AUTO-8E841B +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Threejs 대규모 렌더링 최적화 파이프라인" +--- + +# [[Threejs 대규모 렌더링 최적화 파이프라인]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Three.js 대규모 렌더링 최적화 파이프라인은 수많은 3D 객체를 브라우저 환경에서 매끄럽게 렌더링하기 위해 CPU와 GPU 간의 통신 오버헤드, 즉 드로우 콜(Draw Call)과 메모리 병목 현상을 극복하는 일련의 기술적 아키텍처입니다 [1, 2]. 주로 InstancedMesh와 BatchedMesh를 통한 드로우 콜 최소화, Draco 및 KTX2 등을 이용한 에셋 압축, 절두체 컬링(Frustum Culling) 및 LOD 시스템을 활용하여 그래픽 자원의 낭비를 줄입니다 [3-6]. 최근에는 WebGPU와 컴퓨트 셰이더(Compute Shader)가 도입되어 렌더링 제어 및 가시성 판단 연산을 GPU로 대거 이관함으로써, 더욱 막대한 규모의 씬을 유연하게 처리할 수 있는 차세대 파이프라인으로 진화하고 있습니다 [7-9]. + +## 📖 구조화된 지식 (Synthesized Content) +- **드로우 콜(Draw Call) 최소화 전략:** 실시간 렌더링 성능을 저하시키는 가장 결정적인 요인은 CPU가 렌더링 상태를 변경하고 GPU에 명령을 내리는 드로우 콜의 오버헤드입니다 [2, 10]. 원활한 60fps를 유지하려면 프레임당 드로우 콜을 100회 미만으로 타겟팅해야 합니다 [4, 11]. 이를 위해 동일한 기하학적 구조와 재질을 공유하는 객체는 `InstancedMesh`를 활용하여 수천 개를 단일 드로우 콜로 처리하며 [4, 5, 12], 재질은 같으나 지오메트리가 다양한 객체들은 `BatchedMesh`를 통해 최적화합니다 [13-15]. 정적인 배경이나 환경 모델은 `BufferGeometryUtils`를 사용해 하나의 지오메트리로 병합(Merging)하는 방법이 사용됩니다 [13, 16]. +- **가시성 판단(Culling) 및 정렬 한계 극복:** `InstancedMesh`는 엔진 내부에서 단일 객체로 취급되기 때문에, 기본 절두체 컬링이 개별 인스턴스에는 작동하지 않는 '전부 아니면 전무' 방식의 한계를 가집니다 [17]. 이로 인해 화면 밖의 객체까지 정점 연산이 강제되고, 거리 기반 자동 정렬의 부재로 인해 막대한 오버드로우(Overdraw) 현상을 일으킬 수 있습니다 [18, 19]. 이에 대응하기 위해 BVH(Bounding Volume Hierarchy)를 결합하여 인스턴스 단위의 개별 컬링과 정렬을 지원하는 확장 라이브러리(예: `InstancedMesh2`)를 사용하거나 [20-22], 거리에 따라 모델 해상도를 낮추는 LOD(Level of Detail) 기법을 함께 적용하여 연산량을 제한합니다 [6, 11, 23]. +- **메모리 대역폭 및 에셋 최적화:** 대형 어셈블리 모델이나 포인트 클라우드의 VRAM 고갈과 대역폭 한계를 막는 것은 파이프라인의 핵심입니다. Draco 압축을 통해 지오메트리 파일 크기를 최대 95%까지 축소시키고 [3, 24], KTX2나 Basis Universal 포맷을 적용하여 텍스처가 압축된 상태로 GPU 메모리에 상주하도록 만들어 메모리 소비를 약 10배 절감합니다 [3, 25]. 또한 다양한 재질의 텍스처를 하나의 텍스처 아틀라스(Texture Atlas)나 배열 텍스처(Data Array Textures)로 결합하면 텍스처 바인딩으로 인한 상태 변경 비용을 크게 줄일 수 있습니다 [26-29]. +- **WebGPU 기반 차세대 렌더링 파이프라인:** 2026년 기준, Three.js(r171 이상)의 `WebGPURenderer` 및 TSL(Three Shader Language) 도입으로 대규모 렌더링 구조가 혁신적으로 변화했습니다 [7, 30]. 일반적인 CPU 한계를 초과하던 100만 개 이상의 파티클 연산, 물리 시뮬레이션, 복잡한 군중 애니메이션 등을 컴퓨트 셰이더(Compute Shader)를 통한 GPU-driven Rendering으로 병렬 처리할 수 있게 되었습니다 [31-34]. Native WebGPU 수준에서는 `GPURenderBundles` 및 Indirect Drawing 기술을 통해 500MB 이상의 초대형 건설/BIM 데이터셋에서도 강력한 성능 향상을 이끌어냅니다 [35, 36]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** `[[InstancedMesh]]`, `[[BatchedMesh]]`, `[[WebGPU]]`, `[[Draw Call (드로우 콜)]]`, `[[Frustum Culling (절두체 컬링)]]`, `[[LOD (Level of Detail)]]`, `[[Overdraw (오버드로우)]]`, `[[Compute Shader (컴퓨트 셰이더)]]` +- **Projects/Contexts:** `[[InstancedMesh2 (agargaro)]]`, `[[Three.js r171 WebGPURenderer]]`, `[[Segments.ai]]`, `[[Fragment (IFC.js)]]` +- **Contradictions/Notes:** + - `InstancedMesh`는 드로우 콜을 줄여 성능을 크게 향상시키도록 설계되었으나, 불투명도 및 복잡한 셰이더 환경에서는 인스턴스 정렬 부재로 인한 심각한 오버드로우(Overdraw)를 유발해 일반 개별 Mesh(Shared attributes)를 사용할 때보다 프레임 레이트(FPS)가 오히려 낮아지는 역설적인 사례가 보고되고 있습니다 [18, 19]. + - `BatchedMesh` 역시 다수의 기하학적 구조를 통합하는 유용한 기술이지만, 약 20만 개 수준의 대량 지오메트리에 적용할 시 버퍼 데이터 업로드 등의 이유로 CPU 사용량이 30~50% 급증하며 병합된 기하학(Merged Geometry)보다 현저히 성능이 하락하는 구조적 병목이 제기되고 있습니다 [37-39]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Three.js 대규모 렌더링 최적화 파이프라인.md]] +--- diff --git a/Graphics & Performance/Threejs 렌더링 성능 최적화.md b/Graphics & Performance/Threejs 렌더링 성능 최적화.md new file mode 100644 index 00000000..47bc9add --- /dev/null +++ b/Graphics & Performance/Threejs 렌더링 성능 최적화.md @@ -0,0 +1,46 @@ +--- +id: P-REINFORCE-AUTO-4EE7A9 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Threejs 렌더링 성능 최적화" +--- + +# [[Threejs 렌더링 성능 최적화]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Three.js 렌더링 성능 최적화는 브라우저 환경에서 3D 씬을 부드럽게 렌더링하기 위해 CPU와 GPU 간의 병목 현상을 줄이고 하드웨어 자원의 효율성을 극대화하는 일련의 기법을 의미합니다. 가장 핵심적인 목표는 CPU 오버헤드를 유발하는 드로우 콜(Draw Call) 횟수를 프레임당 100회 미만으로 유지하는 것이며, 이를 위해 인스턴싱(Instancing)과 배칭(Batching) 같은 기술이 필수적으로 사용됩니다 [1-5]. 또한, 에셋 압축, 메모리 관리, 셰이더 및 시야 절두체 컬링(Frustum Culling) 조정, WebGPU와 컴퓨트 셰이더의 도입 등을 통해 전반적인 연산 부하를 다각도로 최적화합니다 [1, 6-8]. + +## 📖 구조화된 지식 (Synthesized Content) +* **드로우 콜(Draw Call) 최적화** + * **InstancedMesh:** 동일한 기하학적 구조(Geometry)와 재질(Material)을 가진 수천 개의 객체를 단 한 번의 드로우 콜로 렌더링하여 CPU-GPU 간 명령 발행 오버헤드를 대폭 감소시킵니다 [2, 9-11]. 하지만 기본적으로 전체 인스턴스를 하나로 묶어 단일 시야 절두체 컬링을 수행하므로 화면 밖의 객체까지 연산할 수 있으며, 깊이 정렬이 자동 지원되지 않아 오버드로우(Overdraw)로 인한 프래그먼트 셰이더 병목을 유발할 수 있습니다 [12-15]. + * **BatchedMesh:** 재질은 동일하지만 기하학적 구조가 다른 여러 객체를 하나의 드로우 콜로 묶어 렌더링할 수 있는 객체입니다 [16-19]. 복잡하고 이질적인 부품이 많은 모델에 유용하지만, 정렬(Sorting) 및 개별 객체 컬링을 수행하는 과정과 멀티 드로우(`multiDrawElementsWEBGL`) API의 오버헤드로 인해 정점 수가 매우 많은 상황에서는 CPU 점유율이 40~60%까지 치솟고 프레임률이 급락하는 성능 저하가 발생할 수 있습니다 [19-22]. + * **지오메트리 병합 (Geometry Merging):** 움직이지 않는 정적인 객체들은 로딩 시점에 `BufferGeometryUtils`를 사용하여 하나의 메쉬로 병합함으로써 드로우 콜을 1회로 줄일 수 있습니다 [16, 23-25]. 하지만 이는 메모리 사용량을 크게 증가시키고 개별 객체의 제어나 컬링이 불가능해지는 단점이 있습니다 [23-25]. + +* **에셋 압축 및 메모리 관리** + * 모델의 기하학적 용량을 90-95% 줄여주는 Draco 압축과, VRAM 내에서 압축 상태를 유지해 텍스처 메모리 사용량을 대폭 줄여주는 KTX2 또는 Basis Universal 텍스처 포맷 사용이 강력히 권장됩니다 [3, 26-29]. + * Three.js는 GPU 리소스를 자동으로 가비지 컬렉트하지 않으므로, 사용이 끝난 `geometry`, `material`, `texture` 및 렌더 타겟에 대해 반드시 `.dispose()`를 호출하여 메모리 누수를 방지해야 합니다 [30-33]. + +* **시각적 최적화 및 셰이더 기법** + * **LOD (Level of Detail):** 카메라와의 거리에 따라 객체를 단순한 폴리곤 버전을 사용하거나 임포스터(Billboard Impostor)로 교체하여 프래그먼트 연산 비용과 삼각형 수를 극적으로 줄일 수 있습니다 [7, 34-37]. 단, LOD는 드로우 콜 자체를 줄여주지는 않으므로 병목의 원인에 맞춰 사용해야 합니다 [38]. + * 다수의 텍스처 바인딩 비용을 줄이기 위해 여러 텍스처를 한 이미지에 담는 텍스처 아틀라스(Texture Atlas)나 최신의 데이터 배열 텍스처(Data Array Textures)를 활용하여 상태 변경(State Change)을 최소화합니다 [39-42]. + * 연산량이 많은 조명과 그림자는 정적 씬의 경우 라이트맵이나 주변 차폐 맵(AO Maps)으로 사전에 구워(Baking) 연산을 완전히 대체해야 합니다 [43-45]. 모바일 환경에서는 셰이더 변수 정밀도를 `mediump`로 낮춰 성능을 2배가량 향상시킬 수 있습니다 [46]. + +* **WebGPU 시대의 도래 (2026년 기준)** + * Three.js r171부터 도입된 WebGPURenderer는 무거운 드로우 콜 환경이나 수백만 개의 파티클 연산에 컴퓨트 셰이더(Compute Shaders)를 적용하여 CPU의 단일 스레드 한계를 극복하고 100배 이상의 성능 향상을 가능하게 합니다 [8, 47-49]. + * TSL (Three Shader Language)을 사용하면 WGSL(WebGPU)과 GLSL(WebGL) 양쪽 모두에서 호환되는 크로스 플랫폼 커스텀 셰이더를 구축할 수 있습니다 [50, 51]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[드로우 콜 (Draw Call)]], [[InstancedMesh]], [[BatchedMesh]], [[LOD (Level of Detail)]], [[WebGPU]] +- **Projects/Contexts:** [[Three.js r171 WebGPU 도입]], [[IFC.js Fragment 아키텍처]], [[InstancedMesh2 라이브러리]] +- **Contradictions/Notes:** 다양한 지오메트리를 한 번에 렌더링하기 위해 제안된 `BatchedMesh`는 드로우 콜 최적화의 훌륭한 대안으로 소개되지만[18], 다른 소스에서는 1,000만 개가 넘는 트라이앵글 환경에서 인스턴싱 또는 일반 `Merged Mesh`보다 CPU 점유율을 비정상적으로 높이고 프레임률을 크게 떨어뜨리는 심각한 구조적 오버헤드가 있음을 상반되게 지적하고 있습니다[19-22]. 또한 `InstancedMesh` 역시 만능이 아니며 정렬의 부재로 인해 발생하는 심각한 오버드로우(Overdraw) 때문에 일반 메쉬 렌더링보다 느려지는 병목 사례가 보고되고 있습니다[13, 14]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Three.js 렌더링 성능 최적화.md]] +--- diff --git a/Graphics & Performance/Threejs 렌더링 최적화.md b/Graphics & Performance/Threejs 렌더링 최적화.md new file mode 100644 index 00000000..445a6b75 --- /dev/null +++ b/Graphics & Performance/Threejs 렌더링 최적화.md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-13670A +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Threejs 렌더링 최적화" +--- + +# [[Threejs 렌더링 최적화]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Three.js 렌더링 최적화는 웹 환경에서 3D 그래픽을 부드럽고 효율적으로 구동하기 위해 CPU와 GPU 간의 병목 현상을 해소하는 일련의 기술적 과정입니다 [1-3]. 핵심 목표는 초당 프레임 수(FPS)를 안정적으로 유지하기 위해 드로우 콜(Draw Call) 횟수를 최소화하고, 메모리 대역폭을 효율적으로 관리하는 것입니다 [4-7]. 이를 위해 인스턴싱(Instancing), 배칭(Batching), 에셋 압축, 디테일 수준(LOD) 조절 및 최신 WebGPU API의 도입이 필수적으로 요구됩니다 [4, 8-10]. + +## 📖 구조화된 지식 (Synthesized Content) +- **드로우 콜(Draw Call)의 최소화:** 드로우 콜은 CPU가 GPU에게 렌더링을 지시하는 명령으로, 과도한 호출에 따른 오버헤드는 성능을 저하시키는 가장 큰 원인입니다 [3, 11, 12]. 원활한 60fps를 유지하기 위해서는 프레임당 드로우 콜을 100회 미만으로 유지하는 것이 권장됩니다 [5, 8, 13]. +- **InstancedMesh와 BatchedMesh 활용:** 동일한 기하학적 구조와 재질을 가진 반복적인 객체(예: 나무, 군중)를 렌더링할 때는 `InstancedMesh`를 사용하여 단일 드로우 콜로 수많은 객체를 렌더링해야 합니다 [5, 14-16]. 반면, 재질은 동일하지만 지오메트리가 서로 다른 객체들을 그룹화하여 렌더링할 때는 `BatchedMesh`를 사용하는 것이 효율적입니다 [17-20]. +- **에셋 및 메모리 최적화:** 지오메트리 파일 크기를 최대 95%까지 줄여주는 Draco 압축을 사용하고, VRAM 사용량을 대폭 감소시키며 GPU에서 직접 압축이 해제되는 KTX2 및 Basis Universal 텍스처 형식을 적용해야 합니다 [8, 21-23]. 또한 사용이 끝난 지오메트리, 재질, 텍스처, 렌더 타겟 등은 반드시 `.dispose()`를 호출하여 명시적으로 GPU 메모리를 해제해야 누수를 방지할 수 있습니다 [24-27]. +- **LOD(Level of Detail) 및 컬링:** 카메라와의 거리에 따라 폴리곤 수가 적은 모델이나 임포스터(Impostor)로 교체하여 렌더링 연산을 줄이는 LOD 시스템을 구현해야 합니다 [13, 28-31]. 더불어 보이지 않는 객체를 렌더링에서 제외하는 절두체 컬링(Frustum Culling)이 올바르게 동작하도록 바운딩 박스를 관리해야 합니다 [32, 33]. +- **WebGPU 및 TSL 전환:** Three.js r171 버전부터 정식 지원되는 `WebGPURenderer`는 대규모 데이터셋 처리와 컴퓨트 집약적인 효과(파티클, 물리 연산 등)에서 기존 대비 수 배에서 100배 이상의 성능 향상을 제공합니다 [34-37]. 새로운 TSL(Three Shader Language)을 사용하면 단일 코드로 작성된 셰이더를 WebGPU와 WebGL 모두에 호환되게 배포할 수 있습니다 [38-40]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Draw Call]], [[InstancedMesh]], [[BatchedMesh]], [[WebGPU]], [[Level of Detail (LOD)]], [[Texture Compression]] +- **Projects/Contexts:** [[Utsubo]], [[Segments.ai]], [[InstancedMesh2 library]] +- **Contradictions/Notes:** `InstancedMesh`는 드로우 콜을 획기적으로 줄여주지만, 엔진 수준에서 개별 인스턴스에 대한 절두체 컬링과 깊이 정렬(Sorting)이 불가능하여 오버드로우(Overdraw)가 유발됩니다. 이로 인해 픽셀 연산이 무거운 씬에서는 오히려 일반 메쉬 방식보다 프레임 레이트가 하락할 수 있다는 한계가 지적됩니다 [41-44]. 대안으로 꼽히는 `BatchedMesh` 역시 수십만 개 단위의 복잡한 기하학적 데이터와 인스턴스를 처리할 때는 심각한 CPU 병목 현상 및 성능 저하를 야기할 수 있습니다 [20, 45-48]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Three.js 렌더링 최적화.md]] +--- diff --git a/Graphics & Performance/Threejs 모바일 렌더링 최적화.md b/Graphics & Performance/Threejs 모바일 렌더링 최적화.md new file mode 100644 index 00000000..bdefe553 --- /dev/null +++ b/Graphics & Performance/Threejs 모바일 렌더링 최적화.md @@ -0,0 +1,49 @@ +--- +id: P-REINFORCE-AUTO-E3AAE4 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Threejs 모바일 렌더링 최적화" +--- + +# [[Threejs 모바일 렌더링 최적화]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Three.js 모바일 렌더링 최적화는 제한된 컴퓨팅 파워, 메모리 대역폭 및 배터리 용량을 가진 모바일 기기 환경에서 3D 장면을 원활하게 구동하기 위한 일련의 기술적 접근이다. 이 최적화는 셰이더 정밀도 조절, 텍스처 및 폴리곤 수 제한, 드로우 콜(Draw Call) 감소, 배터리 절약을 위한 렌더링 루프 제어 등을 포함한다 [1-4]. 이를 통해 모바일 브라우저에서도 60fps의 안정적인 프레임 속도를 유지하고 메모리 한계로 인한 애플리케이션 크래시를 방지할 수 있다 [5, 6]. + +## 📖 구조화된 지식 (Synthesized Content) +* **셰이더 및 정밀도 최적화** + * 모바일 GPU는 `mediump` 정밀도를 처리할 때 `highp`보다 대략 2배 빠른 속도를 내므로, 깊이 계산이나 위치 등 필수적인 경우를 제외하고는 기본적으로 `mediump`를 사용해야 한다 [1]. + * 버텍스 셰이더와 프래그먼트 셰이더 사이에서 데이터를 전달하는 varying 변수의 개수를 모바일 GPU에 맞춰 3개 이하로 최소화해야 한다 [1]. + +* **메모리 및 텍스처 관리** + * 모바일 기기는 보통 2~4GB의 제한된 시스템 메모리를 가지며, 텍스처 메모리가 500MB를 초과하면 가비지 컬렉션(GC)으로 인한 일시 중지와 심각한 프레임 끊김이 발생한다 [5]. + * 이를 해결하기 위해 Basis Universal이나 KTX2와 같은 GPU 친화적인 압축 텍스처를 사용해야 한다. 이러한 포맷은 모바일 플랫폼에 따라 ASTC(Android)나 PVRTC(iOS)로 로드 시 변환되어 메모리 사용량을 대폭 줄여준다 [7]. + * 다수의 텍스처를 사용하는 대신, 텍스처 아틀라스(Texture Atlas)로 결합하여 텍스처 바인딩 횟수를 줄이는 것이 모바일 GPU의 렌더링 오버헤드를 크게 감소시키는 방법이다 [8, 9]. + +* **드로우 콜 및 지오메트리 제한** + * 프로세서 성능이 상대적으로 낮은 모바일 브라우저에서는 1,000~2,000회의 드로우 콜 한계치에 도달하면 CPU 병목으로 인한 성능 저하가 눈에 띄게 나타난다 [4]. + * 모바일 브라우저(iOS Safari, Chrome Mobile 등) 환경에서는 화면당 폴리곤 개수를 50,000~100,000개 수준으로 제한해야 매끄러운 렌더링이 보장된다 [3]. + +* **그림자 및 안티앨리어싱 설정 타협** + * 섀도우 맵 렌더링은 리소스 소모가 크므로, 모바일의 경우 섀도우 맵 크기를 512에서 1024 사이로 작게 설정하는 것이 바람직하다 [10]. + * 렌더링 파이프라인 구성 시 고비용의 네이티브 안티앨리어싱(MSAA)을 비활성화하고, 그 대신 포스트 프로세싱인 FXAA를 사용하면 모바일 기기에서도 성능 부하를 5~10% 수준으로 낮추면서 60fps를 유지할 수 있다 [6]. + +* **배터리 절약 및 오류 복구(Context Management)** + * 정적인 씬(Static scenes)의 경우 리액트 기반 환경(R3F 등)에서 `frameloop="demand"` 옵션을 사용하여 불필요한 프레임 렌더링을 방지함으로써 모바일 기기의 배터리를 아껴야 한다 [2]. + * 모바일 환경에서는 WebGL 컨텍스트 손실(Context lost)이 발생할 수 있으므로, 리스너(`webglcontextlost`)를 등록하여 이를 감지하고 우아하게 복구하는(gracefully recover) 예외 처리가 필수적이다 [11]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[드로우 콜 최적화 (Draw Call Optimization)]], [[텍스처 압축 (Texture Compression)]], [[셰이더 정밀도 (Shader Precision)]], [[가비지 컬렉션 (Garbage Collection)]] +- **Projects/Contexts:** [[React Three Fiber (R3F)]], [[Basis Universal / KTX2]] +- **Contradictions/Notes:** 소스에서는 모바일 환경 구현 시 시각적 품질과 성능 간의 직접적인 타협(trade-off)을 강조한다. 데스크톱 환경에서는 다중 텍스처 파일과 MSAA, 4096 크기의 섀도우 맵 활용이 가능하지만, 모바일 기기에서는 동일한 구성을 유지할 경우 프레임 속도 저하와 발열, 메모리 부족으로 인한 강제 종료를 유발할 수 있으므로 극단적인 간소화(FXAA, 아틀라스 텍스처, 512~1024 섀도우 등)를 필수적으로 도입해야 함을 명시한다 [5, 6, 10]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Three.js 모바일 렌더링 최적화.md]] +--- diff --git a/Graphics & Performance/Threejs 자원 해제 (Dispose).md b/Graphics & Performance/Threejs 자원 해제 (Dispose).md new file mode 100644 index 00000000..a3707f54 --- /dev/null +++ b/Graphics & Performance/Threejs 자원 해제 (Dispose).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5ED3CA +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Threejs 자원 해제 (Dispose)" +--- + +# [[Threejs 자원 해제 (Dispose)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Three.js 자원 해제 (Dispose).md]] +--- diff --git a/Graphics & Performance/Threejs.md b/Graphics & Performance/Threejs.md new file mode 100644 index 00000000..50f1b223 --- /dev/null +++ b/Graphics & Performance/Threejs.md @@ -0,0 +1,39 @@ +--- +id: P-REINFORCE-AUTO-A5498B +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Threejs" +--- + +# [[Threejs]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Three.js는 WebGL 및 WebGPU를 사용하여 웹 브라우저에서 애니메이션 3D 컴퓨터 그래픽스를 생성하고 표시할 수 있도록 지원하는 크로스 브라우저 자바스크립트 라이브러리이자 API이다 [1, 2]. 브라우저, GPU, 자바스크립트 간의 복잡한 상호작용을 추상화하여 개발자가 고성능의 3D 환경을 쉽게 구축할 수 있도록 돕는다 [3]. 2026년을 기점으로 프로덕션 수준의 WebGPU 렌더러와 TSL(Three Shader Language)이 도입되면서, 단순한 시각화를 넘어 수백만 개의 파티클 연산이나 대규모 CAD 모델 처리까지 가능한 고성능 플랫폼으로 진화했다 [4-7]. + +## 📖 구조화된 지식 (Synthesized Content) +* **렌더링 파이프라인 및 드로우 콜(Draw Call) 최적화:** + 실시간 3D 렌더링에서 CPU가 GPU에 렌더링을 명령하는 '드로우 콜'은 시스템 오버헤드의 주된 원인으로 꼽힌다 [8-10]. Three.js는 이를 최소화하기 위해 단일 기하학(Geometry)과 재질(Material)을 공유하는 객체들을 한 번에 렌더링하는 `InstancedMesh`, 다양한 기하학적 구조를 동일한 재질 하에 하나로 묶어 처리하는 `BatchedMesh`, 그리고 정적 객체들을 로드 시점에 병합해버리는 `BufferGeometryUtils.mergeBufferGeometries` 기법을 지원한다 [11-15]. +* **WebGPU와 TSL(Three Shader Language)의 도입:** + 릴리즈 r171부터 도입된 WebGPURenderer는 `forceWebGL`이 필요한 상황을 제외하면 WebGL 2 자동 폴백 기능을 지원하는 "제로 설정(zero-config)" 방식으로 쉽게 적용할 수 있다 [4, 5, 16]. 새롭게 도입된 TSL은 단일 코드로 WGSL과 GLSL 양쪽 모두에 컴파일되는 노드 기반의 재질 시스템이며, 컴퓨트 셰이더(Compute Shaders)를 통해 물리 연산, 충돌 감지, 수백만 단위의 대규모 파티클 시스템 렌더링 등 병렬 처리를 GPU로 오프로딩할 수 있게 해준다 [5, 17-20]. +* **메모리 및 애셋 관리의 중요성:** + Three.js는 GPU 리소스를 자동으로 가비지 컬렉션(Garbage Collection)하지 않으므로, 사용이 끝난 지오메트리, 재질, 텍스처는 반드시 `.dispose()` 메서드를 호출해 명시적으로 해제해야만 VRAM 누수를 막을 수 있다 [21, 22]. 모델 로드 시 대역폭과 메모리를 아끼기 위해 Draco 지오메트리 압축, KTX2 및 Basis Universal과 같은 GPU 네이티브 텍스처 압축 기술이 필수적이며 [23-25], 카메라 거리에 따라 다각형 수를 조절하는 LOD(Level of Detail) 기능으로 렌더링 부하를 동적으로 줄일 수 있다 [26-28]. +* **인스턴싱(Instancing)의 구조적 한계:** + `InstancedMesh`는 성능 향상에 필수적인 도구지만 몇 가지 한계가 있다. 엔진 수준에서 전체 인스턴스를 아우르는 하나의 경계 볼륨(Bounding Volume)을 기준으로 시야 절두체 컬링(Frustum Culling)을 처리하기 때문에, 시야 밖에 있는 인스턴스에 대해서도 GPU 정점 연산을 수행하는 비효율이 발생한다 [29, 30]. 또한, 객체들의 심도에 따른 자동 정렬(Depth Sorting)을 제공하지 않아, 투명한 객체가 겹쳐 있거나 복잡한 셰이더를 사용할 경우 심각한 오버드로우(Overdraw)를 유발하여 GPU 프래그먼트 처리 병목을 초래할 수 있다 [31-34]. +* **사용자 입력과 레이캐스팅(Raycasting):** + 사용자의 마우스나 터치 입력을 통한 화면 상의 3D 객체 선택(피킹)은 `Raycaster` 객체를 통해 수행된다 [35, 36]. 하지만 `InstancedMesh`에서 개별 인스턴스의 행렬(위치/회전/축척)을 동적으로 변경할 경우, 레이캐스팅이 정상 작동하려면 변경 직후 반드시 `.computeBoundingSphere()` 및 `.computeBoundingBox()`를 호출하여 바운딩 볼륨을 갱신해야 한다 [37, 38]. 다량의 인스턴스가 존재하는 환경에서 충돌 및 선택의 속도를 높이려면 `three-mesh-bvh` 같은 공간 분할(Spatial Indexing) 라이브러리를 활용하는 것이 권장된다 [39, 40]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGPU]], [[InstancedMesh]], [[BatchedMesh]], [[TSL (Three Shader Language)]], [[Raycaster]], [[LOD (Level of Detail)]] +- **Projects/Contexts:** [[React Three Fiber (R3F)]], [[IFC.js]], [[InstancedMesh2]] +- **Contradictions/Notes:** 일반적으로 `InstancedMesh`는 드로우 콜을 1회로 줄여 렌더링 성능을 획기적으로 높인다고 알려져 있으나, 인스턴스의 자동 정렬 기능이 없어 오버드로우(Overdraw)가 빈번하게 발생할 경우 단일 메쉬를 분할하여 그릴 때보다 오히려 프레임 속도(FPS)가 급락할 수 있습니다 [4, 31-33]. 또한 여러 다른 지오메트리를 하나의 렌더 호출로 묶어주는 `BatchedMesh` 역시, 지나치게 많은 수의 정점과 데이터를 렌더링할 경우 패킹 및 컬링 연산 때문에 극심한 CPU 과부하와 성능 저하를 야기할 수 있다는 한계가 보고되고 있습니다 [41, 42]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Three.js.md]] +--- diff --git a/Graphics & Performance/Timestamp Quantization.md b/Graphics & Performance/Timestamp Quantization.md new file mode 100644 index 00000000..fe097b1c --- /dev/null +++ b/Graphics & Performance/Timestamp Quantization.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-B27B31 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Timestamp Quantization" +--- + +# [[Timestamp Quantization]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 타임스탬프 양자화(Timestamp Quantization)는 WebGPU 등 웹 그래픽 API에서 발생할 수 있는 타이밍 공격(Timing Attack) 및 기기 핑거프린팅을 방지하기 위해, 타이머 쿼리의 해상도를 의도적으로 조대화(coarsening)하여 낮추는 보안 메커니즘입니다 [1-3]. 고정밀 타이밍 정보가 캐시 사이드 채널 공격이나 Rowhammer 공격 등에 악용되는 것을 막기 위해 브라우저 엔진은 타임스탬프의 측정 해상도를 100 마이크로초(µs)와 같은 표준 단위로 제한합니다 [1, 4-6]. + +## 📖 구조화된 지식 (Synthesized Content) +* **도입 배경 및 보안 위협:** WebGPU의 타임스탬프 쿼리는 GPU 명령어의 실행 시간을 나노초(nanosecond) 단위로 정밀하게 측정할 수 있도록 지원합니다 [6, 7]. 그러나 이러한 고해상도 타이밍 정보는 캐시 적중률과 메모리 접근 패턴을 관찰 가능하게 만들어 Spectre, Meltdown과 같은 사이드 채널 공격이나 GPU 물리적 메모리 구조를 파악해 조작하는 Rowhammer 공격에 악용될 수 있습니다 [1, 5, 8-10]. +* **양자화 및 조대화(Coarsening) 적용:** 이러한 보안 위협을 완화하기 위해 Chrome의 WebGPU 백엔드인 Dawn 및 Blink 엔진 등은 타임스탬프 양자화를 구현합니다 [1, 2]. WebGPU 표준 기구 및 브라우저 벤더들은 High Resolution Time(hr-time) 사양과 일치하도록 GPU 타임스탬프를 비격리 컨텍스트와 동일하게 100 마이크로초(100µs) 해상도로 조대화하는 방식을 채택했습니다 [4-6, 11]. +* **개발자 도구를 통한 예외 처리:** 성능 프로파일링을 위해 고정밀 측정이 필요한 개발자를 위해, Chrome에서는 로컬 환경에서 `chrome://flags/#enable-webgpu-developer-features` 플래그를 활성화하여 이 양자화(제한)를 우회하고 본래의 나노초 단위 정밀도를 사용할 수 있는 예외를 제공합니다 [2, 12]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGPU]], [[Timing Attack]], [[Side-channel Attack]], [[Spectre]], [[Rowhammer]], [[High Resolution Time]] +- **Projects/Contexts:** [[Chrome (Blink/Dawn)]], [[GPU for the Web Community Group]] +- **Contradictions/Notes:** Chrome의 초기 제안에서는 교차 출처 격리(cross-origin isolated) 상태에 따라 격리된 컨텍스트에서는 100µs 해상도를 제공하고 비격리 컨텍스트에서는 타임스탬프를 아예 노출하지 않으려 했습니다 [3, 13]. 그러나 상호운용성(interoperability) 문제와 모호한 사양에 대한 지적이 제기되었고, 최종적으로는 사이트 격리 상태와 무관하게 항상 100µs 해상도로 타임스탬프를 허용하는 방안이 합의되었습니다 [5, 11, 14]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Timestamp Quantization.md]] +--- diff --git a/Graphics & Performance/Timestamp Queries Quantization.md b/Graphics & Performance/Timestamp Queries Quantization.md new file mode 100644 index 00000000..abf01f46 --- /dev/null +++ b/Graphics & Performance/Timestamp Queries Quantization.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-788E1E +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Timestamp Queries Quantization" +--- + +# [[Timestamp Queries Quantization]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 타임스탬프 쿼리 양자화(Timestamp Queries Quantization)는 WebGPU 애플리케이션에서 GPU 명령의 실행 시간을 측정할 때 그 정밀도를 의도적으로 낮추는 보안 메커니즘입니다 [1], [2], [3], [4]. 개발자는 타임스탬프 쿼리를 통해 나노초 단위의 정밀한 데이터를 얻을 수 있지만, 이는 Spectre나 Rowhammer와 같은 캐시 기반 타이밍 공격(Timing attack)에 악용될 수 있습니다 [5], [1], [2], [6]. 이를 방지하기 위해 브라우저 엔진은 반환되는 타이머의 해상도를 100 마이크로초(µs) 수준으로 낮추어 보안과 성능 분석의 균형을 맞춥니다 [1], [7], [3], [4]. + +## 📖 구조화된 지식 (Synthesized Content) +- **도입 배경 및 보안 위협:** WebGPU의 타임스탬프 쿼리는 패스(pass)의 시작과 끝 등 GPU 워크로드의 실행 시간을 나노초 단위까지 정밀하게 측정할 수 있도록 지원합니다 [2], [4]. 하지만 고정밀 타이머는 악의적인 공격자가 캐시 적중률과 물리적 메모리 구조를 파악하여 Spectre, Meltdown, Rowhammer 같은 사이드 채널 공격을 수행하거나 기기 지문을 수집(Fingerprinting)하는 데 사용될 수 있습니다 [5], [1], [8], [6]. 과거 WebGL의 `EXT_disjoint_timer_query` 확장 역시 동일한 보안 문제로 인해 브라우저에서 비활성화되거나 제한된 바 있습니다 [5], [1], [9]. +- **양자화(Quantization/Coarsening)의 동작 방식:** 타이밍 공격을 방어하기 위해 Chrome의 Blink 및 Dawn과 같은 엔진은 타임스탬프 쿼리의 해상도를 인위적으로 낮추는 '양자화(또는 조대화, Coarsening)'를 구현했습니다 [7], [3]. 본래 격리된 컨텍스트(Isolated context)에서만 100 마이크로초 해상도를 제공하고 비격리 환경에서는 노출하지 않으려 했으나 [7], [3], 이후 브라우저 간 상호 운용성을 확보하고 High Resolution Time 사양과 일치시키기 위해 사이트 격리 여부와 무관하게 100 마이크로초(100µs)의 해상도를 제공하는 것으로 최종 합의되었습니다 [10], [11]. +- **개발자 환경에서의 우회:** 100 마이크로초 단위의 해상도는 단일 프레임 내의 정밀한 GPU 마이크로 지연 시간(Micro-latency)을 분석하기에는 지나치게 거칠 수 있습니다 [7], [12]. 따라서 정밀한 로컬 프로파일링이 필요한 개발자는 Chrome 브라우저에서 `chrome://flags/#enable-webgpu-developer-features` 플래그를 활성화하여 양자화 제한을 해제하고, 나노초 단위의 원본 타임스탬프 데이터를 획득할 수 있습니다 [7], [13], [14], [4]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGPU]], [[Timing Attack]], [[Spectre]], [[EXT_disjoint_timer_query]] +- **Projects/Contexts:** [[High Resolution Time Spec]], [[Chrome DevTools]] +- **Contradictions/Notes:** 초기 WebGPU 사양 제안에서는 사이트 격리(Site isolation) 여부에 따라 타임스탬프 쿼리 제공 여부를 차등 적용(비격리 시 완전히 미노출)하려 했으나 [3], 이후 표준화 논의 과정에서 상호 운용성을 위해 모든 컨텍스트에 대해 100 마이크로초의 해상도를 일괄 제공하도록 정책이 변경되었습니다 [10], [11]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Timestamp Queries Quantization.md]] +--- diff --git a/Graphics & Performance/Timestamp Queries.md b/Graphics & Performance/Timestamp Queries.md new file mode 100644 index 00000000..6d351fd3 --- /dev/null +++ b/Graphics & Performance/Timestamp Queries.md @@ -0,0 +1,39 @@ +--- +id: P-REINFORCE-AUTO-77D993 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Timestamp Queries" +--- + +# [[Timestamp Queries]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Timestamp Queries(타임스탬프 쿼리)는 WebGL 및 WebGPU와 같은 웹 그래픽 파이프라인에서 GPU 명령 세트의 경과 시간을 나노초 단위까지 정밀하게 측정할 수 있게 해주는 기능입니다 [1-3]. 렌더링 파이프라인을 지연시키지 않으면서 GPU 작업 부하의 성능과 동작에 대한 깊은 통찰력을 제공하는 데 필수적입니다 [3, 4]. 그러나 고정밀 타이머가 사이드 채널 공격(예: Spectre 및 Meltdown)에 악용될 수 있다는 보안 취약점 때문에, 최신 브라우저 환경에서는 타이머의 정밀도를 의도적으로 낮추는 양자화(Quantization) 기법이 적용됩니다 [2, 5, 6]. + +## 📖 구조화된 지식 (Synthesized Content) +* **WebGL에서의 타이머 쿼리 한계:** + 기존 WebGL은 `EXT_disjoint_timer_query` 확장을 통해 렌더링 파이프라인의 중단 없이 GL 명령의 지속 시간을 측정할 수 있었습니다 [1, 4]. 하지만 이 고정밀 타이밍 기능이 캐시 적중률을 관찰하여 Spectre 및 Meltdown과 같은 사이드 채널 공격에 악용될 수 있음이 밝혀지면서, 대부분의 브라우저 공급업체는 이 확장을 비활성화하거나 타이머 값에 엄격한 양자화 및 클램핑을 적용했습니다 [2]. +* **WebGPU 타임스탬프 쿼리 도입:** + WebGPU는 `timestamp-query` 기능과 `GPUQuerySet`을 통해 렌더링 및 컴퓨트 패스의 시작과 끝에서 매우 정밀한(나노초 단위) 측정을 지원합니다 [2, 3]. 이 기능은 텐서플로우(Tensorflow.js)와 같은 복잡한 GPU 작업 부하의 동작을 파악하고 최적화하는 데 널리 활용됩니다 [7]. +* **보안을 위한 양자화(Quantization) 및 거칠기(Coarsening) 적용:** + 고정밀 타이머를 통한 지문 수집(Fingerprinting) 및 타이밍 공격을 방지하기 위해 WebGPU는 타임스탬프 값을 양자화합니다 [2, 5]. WebGPU 제안 초기에는 사이트 격리(Site isolation) 여부에 따라 격리된 컨텍스트에서는 100 마이크로초(µs) 해상도로, 격리되지 않은 컨텍스트에서는 쿼리 자체를 노출하지 않는 방식을 고려했습니다 [5, 8]. +* **교차 출처(Cross-origin) 및 하드웨어 특성을 반영한 정책 변경:** + 이후 논의 과정에서 GPU 타임스탬프는 고립된 컨텍스트 간에도 공유될 수 있으며 GPU 캐시를 통한 타이밍 공격 위험이 여전히 존재함이 확인되었습니다 [6]. 상호 운용성(Interop)을 높이고 보안을 유지하기 위해, 사이트의 교차 출처 격리(cross-origin isolated) 상태와 무관하게 항상 고해상도 시간 사양(HR-time)에 맞추어 100 마이크로초(µs)로 해상도를 거칠게 만드는(coarsening) 것으로 최종 정책이 합의되었습니다 [6, 9]. +* **개발자를 위한 예외 처리:** + 성능 프로파일링을 위해 실제 나노초 단위의 정밀한 측정값이 필요한 개발자는 로컬 환경에서 "WebGPU Developer Features" 또는 "Unsafe WebGPU Support" 같은 특정 브라우저 플래그를 활성화하여 이러한 양자화 제한을 일시적으로 우회할 수 있습니다 [8, 10]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGL Timer Queries]], [[Spectre and Meltdown]], [[WebGPU]], [[Timestamp Quantization]] +- **Projects/Contexts:** [[EXT_disjoint_timer_query]], [[High Resolution Time Spec]] +- **Contradictions/Notes:** 초기 WebGPU 구현 제안에서는 사이트 격리 상태에 따라 타임스탬프 쿼리의 노출 여부와 해상도를 다르게 적용하려고 했으나(격리 시 100µs, 비격리 시 미노출) [5], 브라우저 간의 상호 운용성 부족 및 GPU의 격리 한계를 이유로 격리 상태와 관계없이 모든 GPU 작업에 대해 일괄적으로 100µs 해상도를 적용하도록 사양이 수정되었습니다 [6, 9]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Timestamp Queries.md]] +--- diff --git a/Graphics & Performance/Turtle-Graphics.md b/Graphics & Performance/Turtle-Graphics.md new file mode 100644 index 00000000..ddc4a9dc --- /dev/null +++ b/Graphics & Performance/Turtle-Graphics.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-51C40D +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Turtle-Graphics" +--- + +# [[Turtle-Graphics]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Turtle-Graphics.md]] +--- diff --git a/Graphics & Performance/TypedArray.md b/Graphics & Performance/TypedArray.md new file mode 100644 index 00000000..1cf82548 --- /dev/null +++ b/Graphics & Performance/TypedArray.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-DEE006 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - TypedArray" +--- + +# [[TypedArray]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> TypedArray는 Three.js 등의 WebGL 렌더링 환경에서 정점 데이터나 인스턴스의 속성값(예: `Float32Array`를 통한 UV 오프셋 등)을 저장하고 GPU로 전달하기 위해 사용되는 자바스크립트의 데이터 구조입니다 [1, 2]. 대규모 그래픽 데이터를 처리하는 데 사용되지만, 동적 환경에서 잦은 할당 및 해제는 성능 저하를 일으킬 수 있습니다 [3]. 다만 본 문서의 전반적인 작동 원리나 세부 명세에 대해서는 **소스에 관련 정보가 부족합니다.** + +## 📖 구조화된 지식 (Synthesized Content) +* **소스에 관련 정보가 부족합니다.** TypedArray에 대한 포괄적이고 전문적인 원리는 소스 데이터에 명시되어 있지 않으며, 주로 Three.js의 메모리 관리 및 성능 최적화 문맥에서 제한적으로 언급됩니다. +* **데이터 버퍼 할당 및 활용:** Three.js에서 `InstancedMesh` 등을 사용하여 개별 인스턴스에 고유한 텍스처 UV 오프셋이나 기타 속성을 부여할 때, `Float32Array`와 같은 TypedArray를 기반으로 `InstancedBufferAttribute`를 생성하여 GPU에 데이터를 전달합니다 [1, 2]. +* **가비지 컬렉션(GC) 부하 및 성능 병목:** 객체의 수가 동적으로 변하여 `InstancedMesh`의 초기 할당 용량(Capacity)을 초과하게 되면, 엔진은 더 큰 버퍼를 할당하고 기존 데이터를 복사해야 합니다 [3]. 이 과정에서 수십 메가바이트 단위의 TypedArray가 빈번하게 생성되고 파괴될 경우 자바스크립트 엔진의 가비지 컬렉터가 작동하게 되며, 이는 렌더링 프레임이 일시적으로 멈추는 스터터링(Stuttering) 현상의 직접적인 원인이 됩니다 [3]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[InstancedMesh]], [[InstancedBufferAttribute]], [[Garbage Collection]] +- **Projects/Contexts:** [[Three.js 메모리 관리 및 렌더링 최적화]] +- **Contradictions/Notes:** 제공된 소스는 TypedArray 자체의 기능적 설명보다는, 이를 활용한 대규모 인스턴스 환경에서 동적 버퍼 확장이 유발하는 메모리 해제와 생성의 위험성(프레임 드랍)을 경고하는 데 초점을 맞추고 있습니다 [3]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/TypedArray.md]] +--- diff --git a/Graphics & Performance/USD - Universal Scene Description.md b/Graphics & Performance/USD - Universal Scene Description.md new file mode 100644 index 00000000..75f47a9f --- /dev/null +++ b/Graphics & Performance/USD - Universal Scene Description.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B0E0B6 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - USD - Universal Scene Description" +--- + +# [[USD - Universal Scene Description]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/USD - Universal Scene Description.md]] +--- diff --git a/Graphics & Performance/UV Offset.md b/Graphics & Performance/UV Offset.md new file mode 100644 index 00000000..73780076 --- /dev/null +++ b/Graphics & Performance/UV Offset.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-FF2C8C +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - UV Offset" +--- + +# [[UV Offset]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> UV Offset(UV 오프셋)은 3D 모델에 텍스처의 특정 영역을 매핑하기 위해 UV 좌표를 조정하거나 계산하는 기법입니다 [1, 2]. 실시간 렌더링 최적화 환경에서는 여러 텍스처를 하나로 합친 텍스처 아틀라스(Texture Atlas)와 함께 주로 사용됩니다 [3, 4]. 특히 수많은 인스턴스를 렌더링할 때 각 인스턴스의 속성으로 UV 오프셋을 전달함으로써, 단일 드로우 콜(Draw Call) 내에서 개별 인스턴스마다 다른 텍스처 이미지를 적용할 수 있게 해줍니다 [5, 6]. + +## 📖 구조화된 지식 (Synthesized Content) +* **텍스처 아틀라스 매핑 (Texture Atlas Mapping):** 텍스처 바인딩 횟수와 드로우 콜을 줄이기 위해 여러 텍스처를 단일 텍스처 아틀라스로 병합할 때, 개발자는 메쉬 영역이 아틀라스의 올바른 위치를 참조하도록 UV 좌표를 조정(UV Offset 계산)해야 합니다 [1-4]. +* **InstancedMesh에서의 구현 방식:** `InstancedMesh`를 통해 수천 개의 개별 인스턴스에 각기 다른 텍스처를 부여하기 위해서는 단일 재질(Material)의 확산 맵(Diffuse map)으로 텍스처 아틀라스를 지정해야 합니다 [5, 7]. 이후 각 인스턴스마다 텍스처 오프셋을 정의하는 추가적인 인스턴스 버퍼 속성(예: `uvOffsets`)을 기하구조(Geometry)에 주입합니다 [5, 6, 8]. 구체적으로는 `Float32Array`를 사용해 각 인스턴스의 x/y 오프셋 좌표 배열을 생성한 뒤, 셰이더를 수정하여 이 `uvOffsets` 속성을 기반으로 각 인스턴스의 텍스처 위치를 이동(Offset)시키도록 렌더링합니다 [8-10]. +* **한계 및 현대적 대안:** 텍스처 아틀라스를 위한 복잡한 UV 오프셋 계산 알고리즘은 까다로울 뿐만 아니라, 인접한 텍스처 간에 픽셀이 섞이는 경계선 블리딩(Edge Bleeding) 현상을 유발할 수 있습니다 [2, 6]. 이러한 단점을 극복하기 위해 WebGL2부터 지원되는 데이터 배열 텍스처(Data Array Textures)를 활용하면, 복잡한 UV 오프셋 연산이나 패킹 없이 인덱스 접근만으로 다중 텍스처를 처리할 수 있습니다 [2, 11]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Texture Atlas]], [[InstancedMesh]], [[BufferAttribute]] +- **Projects/Contexts:** [[Three.js]], [[WebGL Optimization]] +- **Contradictions/Notes:** 텍스처 아틀라스와 UV 오프셋의 조합은 인스턴싱 최적화를 위해 필수적이지만 UV 연산의 복잡성과 경계선 블리딩(Edge Bleeding)이라는 한계를 가지며, 소스에 따르면 이를 완전히 회피하기 위한 대안으로 데이터 배열 텍스처(Data Array Textures)의 사용이 제안됩니다 [2, 11]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/UV Offset.md]] +--- diff --git a/Graphics & Performance/UX Design Gamification.md b/Graphics & Performance/UX Design Gamification.md new file mode 100644 index 00000000..f8bfd08d --- /dev/null +++ b/Graphics & Performance/UX Design Gamification.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-C3544E +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - UX Design Gamification" +--- + +# [[UX Design Gamification]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/UX Design & Gamification.md]] +--- diff --git a/Graphics & Performance/UX-Design-Architecture.md b/Graphics & Performance/UX-Design-Architecture.md new file mode 100644 index 00000000..0dc5a16b --- /dev/null +++ b/Graphics & Performance/UX-Design-Architecture.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6A1026 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - UX-Design-Architecture" +--- + +# [[UX-Design-Architecture]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/UX-Design-Architecture.md]] +--- diff --git a/Graphics & Performance/Unity.md b/Graphics & Performance/Unity.md new file mode 100644 index 00000000..93df94a9 --- /dev/null +++ b/Graphics & Performance/Unity.md @@ -0,0 +1,44 @@ +--- +id: P-REINFORCE-AUTO-6033D2 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Unity" +--- + +# [[Unity]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Unity는 2D 및 3D 프로젝트를 개발할 수 있는 소프트웨어 엔진 및 플랫폼입니다 [1]. 그래픽 렌더링 파이프라인, 물리 시스템, 씬(Scene) 및 게임 오브젝트(GameObject) 구성을 지원하며, 높은 그래픽 성능을 달성하기 위한 다양한 도구를 제공합니다 [1, 2]. 특히 화면에 기하학적 구조를 그리기 위해 그래픽 API에 명령을 내리는 드로우 콜(Draw call)과 렌더 상태 변경(Render-state changes)을 최적화하는 아키텍처가 핵심적으로 다뤄집니다 [3, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +- **드로우 콜(Draw Calls) 및 성능 최적화** + Unity는 기하학적 구조, 텍스처, 셰이더 등의 정보를 그래픽 API에 전달하여 화면을 그리기 위해 드로우 콜을 발생시킵니다 [3]. 재질을 변경하는 등의 렌더 상태(Render state) 변경 과정은 CPU 자원을 매우 많이 소모하므로, 드로우 콜의 총 횟수를 줄이고 렌더 상태 변경이 적게 일어나도록 호출을 구성하는 것이 성능 최적화의 핵심입니다 [4, 5]. + +- **드로우 콜 최적화 기법** + Unity는 드로우 콜과 렌더 상태 변경을 최적화하기 위해 다음과 같은 내장 방법들을 제공합니다 [2]. + - **GPU 인스턴싱(GPU Instancing):** 나무나 덤불처럼 씬에 반복적으로 나타나는 동일한 메쉬의 여러 복사본을 동시에 렌더링합니다 [2]. + - **드로우 콜 배칭(Draw Call Batching):** 움직이지 않는 정적 게임 오브젝트들의 메쉬를 사전에 결합하는 '정적 배칭(Static batching)'과, CPU에서 동일한 속성을 가진 정점들을 그룹화하여 한 번의 드로우 콜로 렌더링하는 '동적 배칭(Dynamic batching)'이 있습니다 [2]. + - **수동 메쉬 결합:** `Mesh.CombineMeshes` 함수를 사용하여 다수의 메쉬를 수동으로 단일 메쉬로 병합해 한 번의 호출로 렌더링합니다 [2]. + - **SRP 배처(SRP Batcher):** 스크립터블 렌더 파이프라인(SRP) 환경에서, 동일한 셰이더 변형(Shader variant)을 사용하는 재질에 대해 드로우 콜을 준비하는 CPU 소요 시간을 줄여줍니다 [2]. + +- **최적화 적용 우선순위** + 여러 최적화 기법이 중복으로 설정될 경우, Unity는 가장 높은 우선순위의 방법을 적용합니다. 우선순위는 1. SRP 배처 및 정적 배칭, 2. GPU 인스턴싱, 3. 동적 배칭 순입니다 [6, 7]. 예를 들어, 객체에 정적 배칭이 성공적으로 적용되면 해당 객체의 GPU 인스턴싱은 비활성화됩니다 [7]. + +- **외부 도구와의 연동** + Needle Engine과 같은 도구와 함께 사용될 때, 성능 문제나 텍스처 누락 등을 해결하기 위해 Unity 환경 내에서 "Copy Project Info Into Clipboard" 기능을 사용하여 특정 설정 상태를 외부로 복사하고 디버깅할 수 있습니다 [8]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[GPU Instancing]], [[Draw Call Batching]], [[Scriptable Render Pipeline (SRP)]], [[GameObject]] +- **Projects/Contexts:** [[Needle Engine]], [[Optimizing draw calls]] +- **Contradictions/Notes:** Unity는 여러 드로우 콜 최적화 옵션을 지원하지만 기법 간에 충돌이 발생할 수 있습니다. 렌더러가 인스턴싱 셰이더를 사용하더라도 정적 배칭(Static batching)이 적용되는 경우 Unity는 자동으로 GPU 인스턴싱을 비활성화하며, 인스펙터(Inspector) 창에 정적 배칭을 끄라는 경고 메시지를 표시합니다 [7]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Unity.md]] +--- diff --git a/Graphics & Performance/Urban-Resilience-Planning.md b/Graphics & Performance/Urban-Resilience-Planning.md new file mode 100644 index 00000000..e34c8b3e --- /dev/null +++ b/Graphics & Performance/Urban-Resilience-Planning.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D2E4D4 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Urban-Resilience-Planning" +--- + +# [[Urban-Resilience-Planning]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Urban-Resilience-Planning.md]] +--- diff --git a/Graphics & Performance/User-Story-Mapping.md b/Graphics & Performance/User-Story-Mapping.md new file mode 100644 index 00000000..90b68f1f --- /dev/null +++ b/Graphics & Performance/User-Story-Mapping.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-1AFDC8 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - User-Story-Mapping" +--- + +# [[User-Story-Mapping]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/User-Story-Mapping.md]] +--- diff --git a/Graphics & Performance/Utsubo.md b/Graphics & Performance/Utsubo.md new file mode 100644 index 00000000..aa2b1dd8 --- /dev/null +++ b/Graphics & Performance/Utsubo.md @@ -0,0 +1,37 @@ +--- +id: P-REINFORCE-AUTO-468135 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Utsubo" +--- + +# [[Utsubo]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Utsubo는 브랜드 웹사이트부터 물리적 설치물에 이르기까지 Three.js 개발을 전문으로 하는 기술 중심의 인터랙티브 크리에이티브 스튜디오이다 [1, 2]. 이들은 2024년 초에 최초의 프로덕션 WebGPU Three.js 환경 중 하나를 구축하여 출시했으며, WebGPU 성능 모니터링을 위한 `stats-gl`과 같은 도구를 개발하는 등 Three.js 생태계 발전에 적극적으로 기여하고 있다 [1]. + +## 📖 구조화된 지식 (Synthesized Content) +* **스튜디오 개요 및 전문 분야:** + Utsubo는 브랜드 웹사이트 제작부터 박물관 및 호텔을 위한 인터랙티브 설치물에 이르기까지 폭넓은 영역에서 Three.js 개발을 전문으로 하는 기술 우선(Technology-First) 크리에이티브 스튜디오이다 [1-3]. 이들은 테크 기업 및 브랜드 등과 협력하여 차세대 3D 웹 경험을 구축하고 있다 [3]. +* **WebGPU 및 생태계 기여:** + Utsubo는 2024년 초 2024.utsubo.com을 통해 업계 최초 수준의 프로덕션 WebGPU Three.js 경험을 출시했다 [1]. 또한 WebGL 및 WebGPU 성능 모니터링을 위해 설계된 `stats-gl`과 같은 핵심 도구를 포함하여 Three.js 생태계에 활발하게 기여하고 있다 [1, 4]. Utsubo의 CEO이자 공동 창립자인 조슬린 르카뮈(Jocelyn Lecamus)는 Three.js가 단순한 웹사이트를 넘어 수백만 개의 데이터 포인트를 실시간으로 처리하는 애플리케이션으로 진화하고 있다고 강조한 바 있다 [5, 6]. +* **주요 프로젝트 및 포트폴리오:** + * **utsubo.com:** 수상 경력에 빛나는 고사양 3D 웹 경험(Award-winning 3D heavy experience)을 제공한다 [1]. + * **호쿠사이(Hokusai) 설치물:** 2025 오사카 엑스포(Expo 2025 Osaka)에서 100만 개의 파티클을 활용한 유체 시뮬레이션을 구현하여 선보였다 [1]. + * **Segments.ai:** WebGPU로의 마이그레이션을 지원하여 기존 대비 100배의 성능 향상을 이끌어냈다 [1]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Three.js]], [[WebGPU]], [[stats-gl]] +- **Projects/Contexts:** [[Expo 2025 Osaka]], [[Segments.ai]] +- **Contradictions/Notes:** 소스에 관련된 모순 정보나 반대 주장이 부족합니다. (제공된 소스는 모두 Utsubo의 성과와 기술적 기여를 일관되게 긍정적으로 설명하고 있습니다.) + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Utsubo.md]] +--- diff --git a/Graphics & Performance/VIA-Classification.md b/Graphics & Performance/VIA-Classification.md new file mode 100644 index 00000000..30808914 --- /dev/null +++ b/Graphics & Performance/VIA-Classification.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-19F48C +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - VIA-Classification" +--- + +# [[VIA-Classification]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/VIA-Classification.md]] +--- diff --git a/Graphics & Performance/VR 엑서게임 (VR Exergaming).md b/Graphics & Performance/VR 엑서게임 (VR Exergaming).md new file mode 100644 index 00000000..2840eb88 --- /dev/null +++ b/Graphics & Performance/VR 엑서게임 (VR Exergaming).md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-E1E503 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - VR 엑서게임 (VR Exergaming)" +--- + +# [[VR 엑서게임 (VR Exergaming)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> VR 엑서게임(VR Exergaming)은 운동(Exercise)과 게임 플레이(Gameplay)를 3D 가상 환경에 결합하여 신체 활동을 촉진하고 사람들의 좌식 생활 습관을 개선하는 활동을 말합니다 [1, 2]. 사용자에게 360도 공간과 신체 추적 기능을 제공하여 높은 몰입감을 유도하며, 이를 통해 운동에 수반되는 육체적 피로를 잊게 만들고 지속적인 참여 동기를 부여합니다 [2]. 대표적인 예시로 '비트 세이버(Beat Saber)'가 있으며, 실제 테니스와 맞먹는 에너지를 소모할 정도로 신체적, 심리적 이점을 모두 제공하는 도구로 주목받고 있습니다 [3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **육체적 및 심리적 이점**: VR 엑서게임은 달리기나 에어로빅과 비견될 만한 생리학적 건강 증진 효과를 제공합니다 [1]. 특히 가상현실이 제공하는 강력한 몰입감과 존재감(Presence)은 사용자가 게임 목표에 깊이 빠져드는 '몰입(Flow)' 상태를 촉진하여, 전통적인 형태의 운동보다 훨씬 큰 즐거움과 운동 지속성을 이끌어냅니다 [1, 2]. +- **VR 멀미(VR Sickness)와 부작용**: VR 엑서게임 보급의 주요 장애물 중 하나는 메스꺼움, 눈의 피로(안구 운동 이상), 방향 감각 상실 등을 유발하는 VR 멀미입니다 [4, 5]. 엑서게임의 특성상 높은 수준의 사용자 움직임과 시각적 자극이 동시에 요구되기 때문에 멀미 발생 가능성이 크며, 이는 사용자의 몰입을 깨뜨리고 과제 수행 능력 및 즐거움을 저하시킬 수 있습니다 [4, 6]. +- **노출 시간과 잔여 효과(Aftereffects)**: 10분과 50분의 VR 노출을 비교한 연구에 따르면, 노출 시간이 길어질수록 VR 종료 직후 더 심각한 멀미 증상이 보고되었습니다 [7]. HMD 기기 사용으로 인해 눈의 조절(Accommodation) 및 수렴(Convergence)에 시각적 변화가 일어날 수 있으나 [8], 전반적인 그룹 평균을 보았을 때 VR 종료 후 40분이 지나면 시각, 인지, 주관적 멀미 증상이 대부분 기준치로 회복되는 것으로 나타났습니다 [7, 9]. +- **인지적 영향**: VR 엑서게임은 단기적인 인지 및 결정 시간에 심각한 악영향을 주지 않습니다 [10, 11]. 오히려 10분간의 게임 플레이 직후에는 게임 내에서 요구되는 빠른 운동 동작의 결과로 사용자의 움직임 속도(Movement speed)가 소폭 빨라지는 긍정적인 현상도 관찰되었습니다 [11]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Flow State]], [[VR 멀미 (VR Sickness)]] +- **Projects/Contexts:** [[Beat Saber]] +- **Contradictions/Notes:** 평균적인 그룹 데이터로는 VR 엑서게임 종료 40분 후 멀미 증상이 모두 회복되는 것으로 나타나지만, 개별 데이터에 따르면 50분 플레이 후 약 14%의 사용자는 40분 뒤에도 여전히 높은 수준의 멀미를 겪고 있어 심각한 개인차가 존재함을 알 수 있습니다 [12]. 또한, 문헌에 따라 VR 노출이 사용자의 반응 시간(Reaction time)에 미치는 영향이 긍정적이라는 연구와 부정적이라는 연구가 혼재되어 있습니다 [13]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/VR 엑서게임 (VR Exergaming).md]] +--- diff --git a/Graphics & Performance/Varying Variables.md b/Graphics & Performance/Varying Variables.md new file mode 100644 index 00000000..2d525a55 --- /dev/null +++ b/Graphics & Performance/Varying Variables.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-9ED1C2 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Varying Variables" +--- + +# [[Varying Variables]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Varying Variables(베어링 변수)는 3D 그래픽 파이프라인에서 버텍스 셰이더(vertex shaders)와 프래그먼트 셰이더(fragment shaders) 간에 데이터를 전송하는 역할을 하는 변수입니다 [1]. 모바일 기기에서의 렌더링 성능을 위해 사용량을 최소화해야 하는 셰이더 최적화 대상 중 하나입니다 [1]. + +## 📖 구조화된 지식 (Synthesized Content) +소스에 관련 정보가 부족합니다. 제공된 소스에서는 이 주제에 대한 깊이 있는 기술적 설명은 포함되어 있지 않으며, Three.js 셰이더 성능 최적화 관점에서의 단편적인 지침만 다음과 같이 제공됩니다. + +* **데이터 전송**: Varying 변수는 버텍스 셰이더에서 프래그먼트 셰이더로 데이터를 넘겨주는 역할을 수행합니다 [1]. +* **모바일 GPU 최적화**: 모바일 GPU 환경에서 셰이더 성능을 높이기 위해서는 Varying 변수의 개수를 3개 미만으로 유지하여 사용을 최소화하는 것이 권장됩니다 [1]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Vertex Shader]], [[Fragment Shader]], [[Mobile GPU]] +- **Projects/Contexts:** [[Three.js Performance Optimization]] (Shaders & Materials 최적화 팁) +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Varying Variables.md]] +--- diff --git a/Graphics & Performance/Vertex Shader.md b/Graphics & Performance/Vertex Shader.md new file mode 100644 index 00000000..91a294b6 --- /dev/null +++ b/Graphics & Performance/Vertex Shader.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-E201D0 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Vertex Shader" +--- + +# [[Vertex Shader]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 버텍스 셰이더(Vertex Shader)는 렌더링 파이프라인에서 정점(Vertex)의 연산을 처리하는 셰이더 단계입니다 [1, 2]. 주로 인스턴스화된 메쉬(Instanced Mesh) 기반의 애니메이션을 처리하거나, 메쉬 데이터의 복제 없이 무작위 축척 및 회전 등을 절차적으로 변형하는 데 사용됩니다 [3, 4]. 계산된 데이터는 Varying 변수를 통해 프래그먼트 셰이더(Fragment Shader)로 전달됩니다 [1]. + +## 📖 구조화된 지식 (Synthesized Content) +- **인스턴싱 및 절차적 기하학 변형:** 버텍스 셰이더는 인스턴스 메쉬에 적용되어 다수의 이미지를 월드 공간에서 움직이도록 하는 애니메이션 로직을 수행할 수 있습니다 [3]. 또한, 커스텀 버텍스 셰이더를 통해 메쉬 데이터를 복제하지 않고도 인스턴스별로 무작위 축척(Scale), 회전 오프셋, 정점 변위(Vertex Displacement) 등의 절차적 변형을 가하여 다양성을 만들어낼 수 있습니다 [4]. +- **프래그먼트 셰이더와의 데이터 전송:** 버텍스 셰이더에서 처리된 데이터는 Varying 변수를 통해 프래그먼트 셰이더로 전달됩니다 [1]. 모바일 GPU 환경에서 성능을 최적화하기 위해서는 이 Varying 변수의 사용을 3개 미만으로 최소화하는 것이 권장됩니다 [1]. +- **성능 병목과 연산 부하:** 버텍스 셰이더 단계에서 수행되는 행렬 곱셈 등의 연산은 렌더링되는 인스턴스의 수가 늘어날수록 선형적으로 증가합니다 [2]. 시야 절두체 컬링(Frustum Culling)이 제대로 이루어지지 않을 경우, 화면에 실제로 그려지는 영역이 적더라도 보이지 않는 객체에 대해 강제로 버텍스 셰이더 연산이 수행되어 GPU 점유율을 100%까지 상승시키고 프레임 드랍을 유발할 수 있습니다 [2]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Fragment Shader]], [[Instancing]], [[Varying Variables]] +- **Projects/Contexts:** [[대규모 인스턴스 렌더링 최적화]], [[모바일 GPU 셰이더 성능 관리]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. (버텍스 셰이더 자체의 구체적인 내부 문법이나 근본적인 그래픽스 파이프라인 원리에 대한 상세한 설명은 제공된 소스에 포함되어 있지 않습니다.) + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Vertex Shader.md]] +--- diff --git a/Graphics & Performance/Virtual Reality (VR) Storytelling.md b/Graphics & Performance/Virtual Reality (VR) Storytelling.md new file mode 100644 index 00000000..2daa3111 --- /dev/null +++ b/Graphics & Performance/Virtual Reality (VR) Storytelling.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-C15945 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Virtual Reality (VR) Storytelling" +--- + +# [[Virtual Reality (VR) Storytelling]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Virtual Reality (VR) Storytelling.md]] +--- diff --git a/Graphics & Performance/Voxel-based Rendering.md b/Graphics & Performance/Voxel-based Rendering.md new file mode 100644 index 00000000..ed841921 --- /dev/null +++ b/Graphics & Performance/Voxel-based Rendering.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-89D12F +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Voxel-based Rendering" +--- + +# [[Voxel-based Rendering]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Voxel-based Rendering.md]] +--- diff --git a/Graphics & Performance/Vulkan.md b/Graphics & Performance/Vulkan.md new file mode 100644 index 00000000..13014750 --- /dev/null +++ b/Graphics & Performance/Vulkan.md @@ -0,0 +1,35 @@ +--- +id: P-REINFORCE-AUTO-DDC386 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Vulkan" +--- + +# [[Vulkan]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Vulkan은 Metal, Direct3D 12와 함께 WebGPU 설계의 기반이 된 현대적인 그래픽스 API입니다 [1]. 단일 스레드와 상태 저장(Stateful)에 의존하는 WebGL이나 d3d9 같은 구형 API와 달리, 드로우 콜(Draw call) 오버헤드 처리에 훨씬 효율적인 아키텍처를 가집니다 [1, 2]. 조건부 렌더링(Conditional Rendering)이나 간접 그리기(Indirect drawing) 등 최신 렌더링 파이프라인을 구현하는 데 강력한 성능을 제공합니다 [3, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +루트 주제인 Vulkan에 대한 전반적이고 상세한 아키텍처 설명은 소스에 관련 정보가 부족합니다. 제공된 데이터에서 확인 가능한 핵심적인 특징과 활용 사례는 다음과 같습니다. + +* **최신 그래픽스 API로의 기준점**: WebGPU는 구형 WebGL의 단일 스레드 및 상태 저장 한계를 극복하기 위해 만들어졌으며, 이때 Vulkan, Metal, Direct3D 12와 같은 최신 그래픽스 API의 구동 방식을 벤치마킹했습니다 [1]. +* **드로우 콜(Draw Call) 비용 완화**: 수많은 객체를 그릴 때 발생하는 드로우 콜 횟수는 성능에 직결되지만, d3d9과 같은 과거 API에 비해 Vulkan 환경에서는 드로우 콜 증가로 인한 성능 저하(오버헤드)가 상대적으로 적습니다 [2]. +* **조건부 렌더링(Conditional Rendering) 확장**: Vulkan은 조건부 렌더링이라는 확장 기능을 통해, GPU상에서 객체들을 자체적으로 평가하고 컬링(Culling) 테스트를 통과한(즉, 화면에 보여야 하는) 드로우 콜만 자동으로 실행하도록 처리할 수 있습니다 [3, 5]. +* **그래픽스 프로그래밍 활용 사례**: 커뮤니티 내에서 Vulkan은 간접 그리기 및 빛 컬링(Light Culling) 기능이 들어간 Forward+ 렌더러 구축이나 [4], 스펙트럴 렌더링(Spectral Rendering)을 지원하는 패스트레이서(Pathtracer) 개발 등 고성능 사용자 정의 렌더러 제작에 활발히 쓰이고 있습니다 [6]. 또한 OpenGL에서 활용하는 GPU 기반 인스턴싱 및 컬링 제어 로직을 Vulkan에도 동일하게 적용할 수 있습니다 [7]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGPU]], [[Direct3D 12]], [[Metal]], [[Conditional Rendering]] +- **Projects/Contexts:** [[Vulkan Forward+ Renderer]], [[Vulkan Pathtracer]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. Vulkan 기술 자체를 깊이 있게 다루는 문헌은 없으며, 대부분 WebGPU의 성능을 설명하기 위한 비교 대상이나 그래픽스 개발자들의 프로젝트 제목 및 질의응답 속에서 단편적으로만 등장합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Vulkan.md]] +--- diff --git a/Graphics & Performance/WEBGL_multi_draw.md b/Graphics & Performance/WEBGL_multi_draw.md new file mode 100644 index 00000000..cef37257 --- /dev/null +++ b/Graphics & Performance/WEBGL_multi_draw.md @@ -0,0 +1,39 @@ +--- +id: P-REINFORCE-AUTO-C71621 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - WEBGL_multi_draw" +--- + +# [[WEBGL_multi_draw]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> `WEBGL_multi_draw`는 한 번의 드로우 콜(Draw Call)로 정렬된 다수의 드로우 요청을 한꺼번에 제출할 수 있게 해주는 WebGL 확장 기능(Extension)입니다 [1, 2]. Three.js에서는 `BatchedMesh`가 이 API를 활용하여 동일한 재질을 공유하지만 각기 다른 기하학적 구조(Geometry)를 가진 여러 객체들을 묶어 렌더링하는 데 사용됩니다 [3-5]. 다양한 고유 객체들을 처리할 때 기존의 개별 호출 방식에 비해 엄청난 성능 향상을 제공하지만, 브라우저 호환성 문제와 대규모 씬에서의 오버헤드 한계를 동시에 안고 있습니다 [6, 7]. + +## 📖 구조화된 지식 (Synthesized Content) +* **BatchedMesh에서의 활용과 최적화 기능** + Three.js의 `BatchedMesh` 클래스는 `WEBGL_multi_draw` (구체적으로 `multiDraw` API)를 내부적으로 활용합니다 [1, 2]. 이를 통해 메모리에서 지오메트리를 중복시키지 않으면서도 지오메트리별 정렬(Sorting), 시야 절두체 컬링(Frustum Culling), 가시성 전환(Visibility Toggling), 인스턴싱 등의 기능을 단일 드로우 콜 내에서 수행할 수 있습니다 [2]. +* **InstancedDraw와의 성능 비교** + 수십만 개(예: 10만 개 이상)의 동일한 인스턴스를 그릴 때는 `InstancedMesh`가 사용하는 `instancedDraw`가 더 우수한 성능을 발휘합니다 [3]. 반면, 1,000개 이상의 각기 다른 '고유한(unique)' 지오메트리 객체들을 그려야 할 때는 `multiDrawElementsWEBGL`이 매우 유용합니다 [8]. 10만 개의 고유 지오메트리를 기존의 바인딩 및 렌더링 호출(`bindVertexArray` + `drawElements`)로 처리하는 것과 비교하면, `multiDraw` 방식이 수천 배 더 빠른 속도를 제공합니다 [9]. +* **인스턴싱 지원 변형 (Instanced Variants)** + 이 확장 기능에는 `multiDrawArraysInstancedWEBGL` 및 `multiDrawElementsInstancedWEBGL`과 같은 인스턴싱 지원 변형 함수도 포함되어 있습니다 [10]. 이들은 수천 개의 고유 객체와 다수의 인스턴스가 혼합된 복잡한 환경에서 객체들을 하나의 드로우 콜로 묶어 렌더링할 수 있게 해줍니다 [8]. +* **브라우저 호환성 제약** + Firefox 브라우저에서는 현재 `WEBGL_multi_draw` 확장을 지원하지 않습니다 [6, 11]. 이로 인해 Three.js 환경에서는 Firefox 지원을 위해 `gl_DrawID`를 에뮬레이트하는 속성을 추가하고, 지원되지 않을 경우 각 메쉬마다 새로운 드로우 콜을 생성하도록 하는 대체 수단(Fallback)이 필요합니다 [12]. +* **성능 병목 현상 및 기술적 한계** + 지오메트리 수가 20만 개에 달할 정도로 규모가 커지면 `BatchedMesh` 사용 시 오히려 CPU 점유율이 치솟고 프레임이 심각하게 떨어지는 문제가 보고되었습니다 [13, 14]. 이는 매 프레임마다 드로우 "시작점(starts)"과 "카운트(counts)" 정보를 담은 약 1.6MB 규모의 버퍼 데이터를 GPU로 업로드해야 하는 통신 오버헤드나, 인디렉트 텍스처 업데이트 지연과 관련이 있을 것으로 추정됩니다 [7, 15]. 또한 인스턴스 렌더링을 적용할 때 `multiDrawArraysInstancedWEBGL` 방식으로는 셰이더 내에서 특정 행렬이나 색상에 접근하기 위한 인스턴스 ID를 직접 검색할 방법이 없어 부가적인 텍스처 우회 처리가 요구되는 한계도 있습니다 [16]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[BatchedMesh]], [[InstancedMesh]], [[Draw Call]] +- **Projects/Contexts:** [[Three.js]], [[WebGL]] +- **Contradictions/Notes:** `WEBGL_multi_draw`는 다수의 고유 객체를 그릴 때 CPU의 드로우 콜 병목을 해소하기 위해 설계되었으나 [1, 9], 역설적으로 특정 임계치(예: 수십만 단위)를 넘어서면 관련 버퍼 업로드 및 GPU 텍스처 업데이트 비용 때문에 오히려 병합된 지오메트리(Merged Geometry) 방식보다 성능이 30~50% 더 악화되는 실증적 모순이 관찰되었습니다 [7, 17, 18]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/WEBGL_multi_draw.md]] +--- diff --git a/Graphics & Performance/Waves of Connection.md b/Graphics & Performance/Waves of Connection.md new file mode 100644 index 00000000..1fcc67b8 --- /dev/null +++ b/Graphics & Performance/Waves of Connection.md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-74AA0F +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Waves of Connection" +--- + +# [[Waves of Connection]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 'Waves of Connection'은 2025년 오사카 엑스포(Expo 2025 Osaka)에서 전시된 설치 작품입니다 [1]. 이 프로젝트는 Three.js WebGPU를 활용하여 98인치 4K 디스플레이 상에 100만 개의 파티클을 실시간으로 렌더링했습니다 [1]. 특히 눈에 띄는 지연(lag) 없이 다수의 사람의 움직임을 추적하는 다인원 바디 트래킹(multi-person body tracking) 기술을 구현하여 WebGPU의 뛰어난 성능을 입증한 사례로 꼽힙니다 [1]. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Three.js WebGPU]], [[Particle System]] +- **Projects/Contexts:** [[Expo 2025 Osaka]] +- **Contradictions/Notes:** 소스 내에서 'Waves of Connection'에 대한 정보는 Three.js WebGPU와 Native WebGPU의 성능을 비교하며 WebGPU의 압도적인 렌더링 성능 향상(100만 개 파티클 실시간 처리)을 보여주기 위한 단편적인 사례로만 언급되었습니다. 그 외의 배경지식이나 세부 내용은 소스에 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Waves of Connection.md]] +--- diff --git a/Graphics & Performance/WebAssembly.md b/Graphics & Performance/WebAssembly.md new file mode 100644 index 00000000..09de59d0 --- /dev/null +++ b/Graphics & Performance/WebAssembly.md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-E798C0 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - WebAssembly" +--- + +# [[WebAssembly]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 소스에 관련 정보가 부족합니다. 제공된 소스에서 WebAssembly(Wasm)에 대한 근본적인 정의나 포괄적인 설명은 찾을 수 없습니다. 다만, 웹 브라우저 환경에서 JavaScript와 함께 실행되어 CPU 기반의 복잡한 연산을 보조하거나, C/C++ 등의 언어로 작성된 코드를 웹에서 디버깅 및 구동할 수 있게 해주는 기술로 단편적으로 확인됩니다 [1-3]. + +## 📖 구조화된 지식 (Synthesized Content) +소스에 관련 정보가 부족합니다. 하지만 문서 내에서 제한적으로 확인 가능한 WebAssembly의 주요 특징과 활용 맥락은 다음과 같습니다: + +* **WebGL의 한계 보완 및 CPU 오프로딩:** WebGL API는 범용 GPU 연산(Compute Shader)을 기본적으로 지원하지 않습니다. 따라서 3D Gaussian Splatting과 같이 대규모 데이터 정렬(Sorting)이 필요한 복잡한 작업은 GPU에서 수행되지 못하고, JavaScript나 WebAssembly를 통해 CPU로 오프로드(Offloaded)되어 실행됩니다 [2, 4, 5]. +* **메모리 자원 및 디버깅:** WebAssembly 메모리는 디바이스의 제한된 시스템 자원을 소모합니다. 특히 iOS 기기에서는 통합 메모리(Unified memory) 구조로 인해 WebAssembly 메모리가 텍스처 등 다른 자원과 RAM 제한을 공유하므로, 한도를 초과할 경우 브라우저 탭이 정지되거나 새로고침될 수 있습니다 [6]. 개발자는 Chrome DevTools의 메모리 검사기 패널(Memory Inspector)을 통해 Wasm 메모리를 분석할 수 있으며, C/C++ WebAssembly 코드의 디버깅도 수행할 수 있습니다 [1, 7]. 또한, Rust 기반의 Naga 프로젝트를 활용해 WebAssembly 트랜스파일러(Transpiler)를 구축하는 방법도 언급됩니다 [8]. +* **하드웨어 보안 취약점 (Spectre):** WebKit과 같은 브라우저 엔진은 웹 사이트를 렌더링하기 위해 신뢰할 수 없는(Untrusted) JavaScript 및 WebAssembly 코드가 사용자의 프로세서에서 직접 실행되는 것을 허용해야 합니다 [3]. 이러한 구조적 특징 때문에, 공격자가 제어하는 WebAssembly 코드는 Spectre 및 Meltdown과 같은 하드웨어 취약점을 악용하는 데 사용될 수 있으며, 결과적으로 호스트 프로세스의 전체 주소 공간을 불법적으로 읽어낼 수 있는 이론적인 보안 위험을 야기합니다 [3, 9]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGL]], [[JavaScript]], [[Spectre]] +- **Projects/Contexts:** [[3D Gaussian Splatting]], [[Chrome DevTools]], [[WebKit]] +- **Contradictions/Notes:** 소스에 WebAssembly의 구체적인 설계 구조나 동작 원리에 대한 포괄적인 정보가 부족합니다. 제공된 문헌들은 주로 WebGL의 연산 한계를 설명할 때의 대안(CPU 오프로딩 수단)이나 브라우저 보안 및 디버깅 툴을 설명하는 맥락에서만 WebAssembly를 부가적으로 언급하고 있습니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/WebAssembly.md]] +--- diff --git a/Graphics & Performance/WebGL 20.md b/Graphics & Performance/WebGL 20.md new file mode 100644 index 00000000..746f54b9 --- /dev/null +++ b/Graphics & Performance/WebGL 20.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-DDA796 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - WebGL 20" +--- + +# [[WebGL 20]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> WebGL 2.0은 웹 브라우저 환경에서 3D 그래픽을 렌더링하기 위한 API로, 브라우저가 WebGPU를 지원하지 않는 환경에서 WebGPURenderer가 자동으로 사용하는 대체(Fallback) 렌더러 역할을 합니다 [1, 2]. 최신 Three.js 개발 환경에서는 TSL(Three Shader Language)을 통해 WebGPU와 WebGL에서 모두 작동하는 크로스 플랫폼 셰이더를 작성할 수 있습니다 [1-3]. WebGL 2.0은 텍스처 배열(Data Array Textures)과 BatchedMesh 같은 기능을 지원하여 전통적인 WebGL 1.0의 한계를 극복하고 렌더링 성능을 높일 수 있는 강력한 기반을 제공합니다 [4, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +* **Three.js에서의 WebGL 2.0 자동 폴백(Fallback):** 브라우저가 WebGPU를 지원하지 않을 경우 WebGPURenderer는 별도의 코드 분기 없이 자동으로 WebGL 2.0 렌더러로 동작합니다 [1, 2]. 개발자는 WebGPU 지원 환경에서 WebGL 폴백 동작을 테스트하거나 WebGPU에 없는 특정 WebGL 확장 기능을 사용해야 할 때 `forceWebGL: true` 옵션을 사용하여 강제로 WebGL 모드를 활성화할 수 있습니다 [6, 7]. 단, 프로덕션 환경이 WebGL 전용일 경우에는 번들 크기 축소를 위해 WebGLRenderer를 직접 사용하는 것이 권장됩니다 [7]. +* **고급 텍스처 및 배칭(Batching) 지원:** WebGL 2.0은 데이터 텍스처 배열(Data Array Textures) 기능을 지원하여, 기존 텍스처 아틀라스(Texture Atlas)의 치명적 단점인 가장자리 번짐(edge bleeding) 문제를 해결합니다 [4, 8, 9]. 이 기능은 2025년 기준 최신 브라우저 환경에서 우수한 호환성을 자랑하며, BatchedMesh와 결합하면 단일 드로우 콜(Draw call)만으로 여러 개의 다양한 텍스처를 가진 객체들을 매우 효율적으로 렌더링할 수 있습니다 [4, 5, 8]. +* **성능 및 메모리 관리의 한계:** WebGL 파이프라인에서는 렌더링 명령마다 CPU 오버헤드가 발생하여 실질적으로 1,000~2,000개의 드로우 콜(Draw call) 한계에 도달할 때 성능이 눈에 띄게 저하됩니다 [10]. 더불어 WebGL 컨텍스트는 브라우저와 기기에 따라 보통 256MB에서 1GB 수준의 유한한 메모리를 가지며, 이를 초과할 경우 컨텍스트 손실(Context Lost) 현상과 함께 뷰어가 멈추게 됩니다 [11, 12]. 따라서 메모리 누수를 방지하기 위해서는 폐기된 지오메트리나 머티리얼을 명시적으로 해제해야 하며, 모바일 등에서 컨텍스트가 손실될 경우에 대비해 우아하게(gracefully) 복구하는 로직이 필수적입니다 [12-14]. +* **셰이더 파이프라인의 통합:** TSL(Three Shader Language) 시스템의 도입으로, 개발자는 기존처럼 GLSL(WebGL)과 WGSL(WebGPU)의 두 가지 셰이더 코드베이스를 이중으로 유지할 필요가 없어졌습니다 [3, 15]. 하나의 TSL 코드가 각 백엔드에 맞게 자동 컴파일을 지원합니다 [3]. 포스트 프로세싱(Post-processing)의 경우, WebGL 프로젝트에서는 여전히 `pmndrs/postprocessing` 라이브러리가 가장 우수한 성능을 발휘하지만, TSL 기반 포스트 프로세싱도 혼용이 가능해졌습니다 [16]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGPU]], [[Three.js]], [[Draw Calls]], [[BatchedMesh]], [[TSL (Three Shader Language)]] +- **Projects/Contexts:** [[WebGPURenderer Fallback]] +- **Contradictions/Notes:** 소스에 따르면 WebGPU는 멀티스레드 명령 생성과 Compute Shader 연산을 통해 복잡한 시뮬레이션 및 데이터 처리가 가능하지만, WebGL은 싱글 스레드 및 상태 기반 접근 방식을 취하고 있어 1,000~2,000회 이상의 빈번한 드로우 콜 발생 시 CPU에서 극심한 렌더링 성능 병목(Bottleneck) 현상이 발생한다는 뚜렷한 대비가 관찰됩니다 [10, 17, 18]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/WebGL 2.0.md]] +--- diff --git a/Graphics & Performance/WebGL API.md b/Graphics & Performance/WebGL API.md new file mode 100644 index 00000000..635240b9 --- /dev/null +++ b/Graphics & Performance/WebGL API.md @@ -0,0 +1,37 @@ +--- +id: P-REINFORCE-AUTO-32752F +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - WebGL API" +--- + +# [[WebGL API]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> WebGL(Web Graphics Library)은 웹 브라우저의 HTML5 `` 요소 내에서 하드웨어 가속을 통해 실시간 3D 및 2D 그래픽을 렌더링하기 위한 저수준(low-level) 크로스 플랫폼 애플리케이션 프로그래밍 인터페이스(API)입니다 [1-3]. OpenGL ES 2.0을 기반으로 구축되었으며, 자바스크립트(JavaScript) 코드를 GPU 명령어로 변환하여 그래픽 처리 장치(GPU)에서 직접 실행되도록 설계되었습니다 [2, 4]. 2011년에 도입된 이후 웹 기반 3D 그래픽의 핵심 기반으로 사용되어 왔으나, 단일 스레드 실행 및 전역 상태 머신 모델과 같은 아키텍처의 한계로 인해 CPU 병목 현상이 발생하는 등 최신 하드웨어 성능을 온전히 끌어내기에는 제약이 존재합니다 [4-7]. + +## 📖 구조화된 지식 (Synthesized Content) +* **작동 방식 및 렌더링 파이프라인:** +WebGL은 프로그래머 친화적이라기보다는 빠른 하드웨어 렌더링을 위해 최적화된 저수준 API로, 하드웨어 회로의 스위치를 직접 조작하는 것과 같은 역할을 수행합니다 [3]. 렌더링을 위해서는 HTML 캔버스 요소에서 WebGL 컨텍스트(`gl`)를 가져오고, 정점 셰이더(vertex shader)와 단편 셰이더(fragment shader)를 컴파일하여 렌더링 프로그램으로 링크해야 합니다 [8]. 이후 GPU 메모리에 버퍼 객체를 생성하여 모델 데이터를 복사하고, 자바스크립트 코드에서 `drawArrays()` 등과 같은 명령을 호출하여 화면에 그래픽을 그립니다 [8-10]. + +* **성능 최적화 및 브라우저 오버헤드:** +WebGL은 브라우저 환경에서 실행되므로 보안을 위한 유효성 검사와 자바스크립트 호출을 변환하는 마샬링(marshalling) 과정에서 네이티브 환경 대비 오버헤드가 발생합니다 [11]. 컨텍스트 스위칭과 CPU-자바스크립트 프로그램 및 GPU 간의 데이터 통신은 렌더링 속도를 저하시키는 주된 원인입니다 [12, 13]. 따라서 고성능을 얻으려면 `getError()`, `getParameter()` 같이 비용이 큰 호출을 피하고, 배치(batching)나 인스턴싱(instancing) 기술을 활용해 드로우 콜(Draw Call) 횟수를 최소화해야 합니다 [10, 14]. 더불어 예측할 수 없는 가비지 컬렉션(Garbage Collection)으로 인한 렌더링 끊김을 막기 위해 가비지를 생성하지 않는 엄격한 자바스크립트 작성 방식이 요구됩니다 [15, 16]. + +* **아키텍처의 구조적 한계:** +WebGL의 핵심적인 문제는 기반이 되는 아키텍처가 2011년 GPU 설계(OpenGL ES 2.0)에 머물러 있어 최신 그래픽 하드웨어의 기능을 충분히 활용할 수 없다는 점입니다 [4, 17]. 첫째, 단일 스레드 실행 모델로 인해 모든 드로우 콜과 상태 변경이 순차적으로 처리되어, GPU가 작업을 기다리는 동안 CPU에 과부하(병목 현상)가 발생합니다 [5, 7]. 둘째, 전역 상태 머신(global state machine)에 의존하므로 드로우 콜마다 매개변수를 개별적으로 설정해야 하며, 이 과정에서 CPU 측의 반복적인 상태 유효성 검사가 수반됩니다 [6, 18]. 셋째, 컴퓨트 셰이더(Compute Shader)를 지원하지 않아 입자 시스템이나 물리 시뮬레이션 같은 대규모 병렬 연산 작업조차 렌더링 오버헤드로 병목을 겪고 있는 CPU에서 수행해야 합니다 [19]. 이러한 한계들로 인해 오늘날 웹 산업에서는 멀티 스레드 명령 생성 및 컴퓨트 셰이더를 지원하는 차세대 API인 WebGPU로의 전환이 활발히 진행 중입니다 [20-23]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[OpenGL ES 2.0]], [[GPU]], [[HTML5 Canvas]], [[WebGPU]], [[JavaScript]] +- **Projects/Contexts:** [[Three.js]], [[WebGLRenderingContext]] +- **Contradictions/Notes:** 소스에 따르면 WebGL은 단일 스레드 실행과 컴퓨트 셰이더 미지원 등의 구조적 단점 때문에 성능에 민감하고 대규모 연산이 필요한 최신 3D 경험에서는 한계가 명확하여 WebGPU로 대체되고 있습니다 [7, 19, 23]. 하지만 보편적이고 폭넓은 브라우저 호환성이 필요한 프로덕션 환경(모든 기기에서 동작해야 하는 경우)에서는 WebGPU의 지원이 아직 완벽하지 않기 때문에 여전히 WebGL이 가장 안전하고 적절한 선택(또는 폴백)으로 간주됩니다 [24-26]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/WebGL API.md]] +--- diff --git a/Graphics & Performance/WebGL Optimization.md b/Graphics & Performance/WebGL Optimization.md new file mode 100644 index 00000000..f5eacea4 --- /dev/null +++ b/Graphics & Performance/WebGL Optimization.md @@ -0,0 +1,35 @@ +--- +id: P-REINFORCE-AUTO-655682 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - WebGL Optimization" +--- + +# [[WebGL Optimization]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> WebGL 최적화는 웹 브라우저 환경에서 3D 그래픽스의 렌더링 속도와 메모리 효율성을 향상시키기 위한 체계적인 기술과 방법론을 의미합니다 [1, 2]. 주된 목적은 CPU와 GPU 간의 통신 오버헤드를 유발하는 드로우 콜(Draw Call)을 최소화하여 안정적인 60 FPS 프레임 레이트를 유지하는 것입니다 [2, 3]. 이를 위해 기하학적 구조 인스턴싱(Instancing), 텍스처 압축, 디테일 수준(LOD) 제어, 그리고 브라우저 메모리 한계를 고려한 자원 해제 등의 최적화 기법이 복합적으로 적용됩니다 [4-6]. + +## 📖 구조화된 지식 (Synthesized Content) +* **드로우 콜 최적화 (Draw Call Optimization):** CPU가 GPU에게 렌더링을 명령하는 '드로우 콜'은 WebGL 렌더링 성능을 떨어뜨리는 가장 큰 병목 현상입니다 [7, 8]. WebGL 환경에서는 CPU-GPU 통신 오버헤드를 막기 위해 프레임당 드로우 콜을 100회 미만으로 타겟팅하는 것이 좋으며, 1,000~2,000회에 도달하면 심각한 성능 저하가 발생합니다 [9, 10]. 이를 해결하기 위해 동일한 기하학적 구조를 반복 렌더링하는 `InstancedMesh`, 다양한 구조라도 동일한 재질이면 병합 처리하는 `BatchedMesh`, 그리고 정적 객체의 지오메트리 병합(Geometry Merging) 기술을 필수적으로 활용해야 합니다 [9, 11-13]. +* **에셋 및 텍스처 압축 (Asset & Texture Optimization):** 웹 환경의 메모리 대역폭을 고려하여, 폴리곤 수는 모바일 및 웹 뷰어 기준 10,000개에서 100,000개 사이로 유지(Decimation/Retopology)하는 것이 권장됩니다 [14, 15]. 또한 일반 PNG 텍스처는 GPU 메모리를 과도하게 점유하므로 KTX2나 Basis Universal과 같이 GPU 친화적인 압축 형식을 사용하여 메모리 사용량을 75~90%가량 줄이고, 텍스처 아틀라스(Texture Atlas)로 여러 텍스처를 하나로 병합해 바인딩 횟수를 감소시켜야 합니다 [16-18]. +* **메모리 파이프라인 관리 (Memory Pipeline Management):** WebGL 컨텍스트는 브라우저 환경에서 대개 256MB~1GB의 메모리 한계를 지니고 있어 한계를 초과하면 브라우저가 충돌합니다 [6]. 따라서 사용하지 않는 지오메트리, 재질, 텍스처는 가비지 컬렉터에 의존하지 않고 명시적으로 `.dispose()`를 호출해 GPU 메모리에서 해제해야 합니다 [19, 20]. 또한 카메라 시야 범위 밖의 연산을 건너뛰게 하는 시야 절두체 컬링(Frustum Culling), 거리에 따라 객체 디테일을 동적으로 줄이거나 빌보드 임포스터로 대체하는 LOD(Level of Detail) 시스템 적용도 필수입니다 [21-24]. +* **셰이더 연산 간소화 (Shader & Overdraw Optimization):** 모바일 GPU에서는 연산 속도를 2배 이상 높일 수 있도록 `mediump` 정밀도를 사용하는 것이 유리합니다 [25]. 프래그먼트 셰이더 내에서 분기문(Conditionals)은 GPU 병렬 처리를 방해하므로 `mix()` 및 `step()` 함수로 대체하고, 다중 텍스처 조회를 줄이기 위해 여러 PBR 데이터를 RGBA 채널에 압축(Packing)해야 대역폭을 절약할 수 있습니다 [26, 27]. 또한 보이지 않는 투명한 기하학적 구조가 겹쳐 불필요하게 렌더링 연산을 반복하는 오버드로우(Overdraw)를 최소화해야 합니다 [28]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Draw Call]], [[InstancedMesh]], [[BatchedMesh]], [[Frustum Culling]], [[Level of Detail (LOD)]] +- **Projects/Contexts:** [[Three.js]] +- **Contradictions/Notes:** + - `InstancedMesh`는 드로우 콜을 1회로 줄여주어 강력하지만, 단일 엔진 객체로 취급되기 때문에 인스턴스 각각에 대한 시야 절두체 컬링(Frustum Culling)이 개별 적용되지 않는 한계가 있습니다 [29]. 따라서 화면에 하나의 인스턴스만 걸쳐 있어도 보이지 않는 나머지 인스턴스의 정점 연산까지 수행해야 하는 GPU 낭비가 발생할 수 있습니다 [29]. + - 오버드로우(Overdraw) 관점에서도 `InstancedMesh`는 자동 정렬(Sorting) 기능을 지원하지 않아 뒤에 있는 객체가 덮어 씌워지면서 픽셀 처리에 병목을 일으킬 수 있으므로, 상황에 따라서는 오히려 개별 메쉬나 정적 지오메트리 병합(Merging)을 활용하는 것이 더 높은 FPS를 제공할 수 있다고 지적합니다 [30-32]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/WebGL Optimization.md]] +--- diff --git a/Graphics & Performance/WebGL 모바일 GPU 성능 관리.md b/Graphics & Performance/WebGL 모바일 GPU 성능 관리.md new file mode 100644 index 00000000..efe2a670 --- /dev/null +++ b/Graphics & Performance/WebGL 모바일 GPU 성능 관리.md @@ -0,0 +1,39 @@ +--- +id: P-REINFORCE-AUTO-3EE85A +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - WebGL 모바일 GPU 성능 관리" +--- + +# [[WebGL 모바일 GPU 성능 관리]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> WebGL 모바일 GPU 성능 관리는 처리 능력과 메모리 용량이 제한적인 모바일 디바이스 환경에서 3D 애플리케이션이 부드럽게 구동될 수 있도록 렌더링 부하를 줄이는 기술적 과정입니다. 모바일 브라우저는 처리 가능한 폴리곤 수와 드로우 콜(Draw Call)에 뚜렷한 한계가 있으며, 이를 극복하기 위해 셰이더 정밀도 조절, 텍스처 압축, 배터리 소모 관리 등의 다각적인 최적화가 요구됩니다 [1-4]. + +## 📖 구조화된 지식 (Synthesized Content) +* **모바일 하드웨어의 렌더링 및 메모리 한계:** + 모바일 브라우저(iOS Safari, Chrome Mobile 등)는 장면당 5만에서 10만 개의 폴리곤을 처리하는 것이 권장되며, 드로우 콜이 1,000~2,000회를 넘어가면 CPU 병목 현상으로 인한 성능 저하가 눈에 띄게 나타납니다 [2, 3]. 특히 2~4GB의 시스템 메모리를 가진 기기에서는 텍스처 메모리가 500MB를 초과할 경우 가비지 컬렉션(GC)으로 인한 멈춤 및 프레임 끊김 현상이 심각하게 발생할 수 있습니다 [4]. +* **셰이더 및 데이터 정밀도 최적화:** + 모바일 GPU는 `mediump` 정밀도 처리 속도가 `highp`보다 약 2배 빠르므로, 깊이 계산이나 위치 정보 등 필수적인 경우를 제외하고는 기본적으로 `mediump` 정밀도를 사용하는 것이 유리합니다 [1]. 또한, 버텍스 셰이더와 프래그먼트 셰이더 간에 데이터를 전달하는 Varying 변수의 개수도 모바일 기기의 한계를 고려하여 3개 이하로 최소화해야 합니다 [1]. +* **텍스처 및 렌더링 옵션 조율:** + 여러 텍스처를 하나로 결합하는 텍스처 아틀라스(Texture Atlas)를 활용하면 모바일 GPU에서 큰 부담이 되는 텍스처 바인딩 오버헤드를 획기적으로 줄일 수 있습니다 [5]. 추가적으로 Basis Universal과 같은 툴을 이용해 모바일 특화 포맷(iOS의 PVRTC, 안드로이드의 ASTC 등)으로 트랜스코딩하여 메모리 사용량을 줄여야 하며 [6], 섀도우 맵의 크기는 모바일에 맞게 512에서 1024 사이로 설정해야 합니다 [7]. 모바일 기기에서 60fps를 유지하기 위해서는 기본 네이티브 안티앨리어싱(MSAA)을 비활성화하고, 그 대신 FXAA와 같은 포스트 프로세싱 기반의 안티앨리어싱을 적용하는 것이 좋습니다 [8]. +* **전력 보존 및 상태 관리:** + 씬(Scene)이 정적일 때 매 프레임 렌더링을 하지 않는 온디맨드(`frameloop="demand"`) 렌더링 방식을 사용해 모바일 디바이스의 배터리 소모를 줄여야 합니다 [9]. 이와 함께 모바일 환경 특성상 WebGL 컨텍스트 유실(Context lost) 현상이 발생할 수 있으므로, 이를 감지하고 자연스럽게 복구할 수 있는 이벤트 리스너 처리가 필수적입니다 [10]. +* **컬링 부재 시 모바일 성능 치명타:** + 개별적인 인스턴스에 대해 시야 절두체 컬링(Frustum culling)이 이루어지지 않을 경우, 보이지 않는 객체에 대한 정점 셰이더의 행렬 연산이 인스턴스 수에 비례해 선형적으로 증가하므로, 저사양 모바일 기기나 통합 GPU 환경에서는 치명적인 성능 저하를 일으킬 수 있습니다 [11]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Draw Calls]], [[Texture Atlas]], [[셰이더 정밀도 (Mediump/Highp)]], [[Varying Variables]], [[FXAA]] +- **Projects/Contexts:** [[Three.js 모바일 렌더링 최적화]], [[모바일 기반 WebGL 애플리케이션 개발]] +- **Contradictions/Notes:** 모바일 환경 최적화를 위해 다양한 기법을 동원하더라도, 텍스처 메모리를 500MB 이하로 통제하지 않으면 가비지 컬렉션(GC) 멈춤 현상으로 최적화 효과가 상쇄될 수 있으므로 메모리 사용량에 대한 엄격한 제한이 우선되어야 합니다 [4]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/WebGL 모바일 GPU 성능 관리.md]] +--- diff --git a/Graphics & Performance/WebGL.md b/Graphics & Performance/WebGL.md new file mode 100644 index 00000000..6cf38599 --- /dev/null +++ b/Graphics & Performance/WebGL.md @@ -0,0 +1,35 @@ +--- +id: P-REINFORCE-AUTO-7B2955 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - WebGL" +--- + +# [[WebGL]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> **WebGL**은 플러그인 없이 웹 브라우저에서 2D 및 3D 그래픽을 렌더링하기 위한 저수준(Low-level) JavaScript API입니다. 원시 WebGL은 직접 다루기 매우 복잡하고 장황하지만, **Three.js**나 **React Three Fiber(R3F)** 같은 라이브러리를 통해 추상화되어 현대 웹의 고성능 3D 인터랙티브 그래픽과 게임 엔진을 구현하는 핵심 기반 기술로 사용됩니다. + +## 📖 구조화된 지식 (Synthesized Content) +**1. WebGL의 복잡성과 Three.js의 역할** WebGL 자체는 셰이더 코드와 버퍼를 직접 다루어야 하는 매우 저수준(Low-level)의 시스템입니다. 이러한 복잡성을 줄이고자 개발된 것이 Three.js 라이브러리이며, 개발자에게 씬(Scene), 카메라, 기하구조(Geometry), 재질(Material), 렌더러 등의 추상화된 객체를 제공하여 WebGL 렌더링 파이프라인을 훨씬 쉽게 구축할 수 있도록 지원합니다. + +**2. WebGL의 메모리 및 자원 관리 (가비지 컬렉션 한계)** JavaScript의 일반적인 힙 메모리와 달리, WebGL이 사용하는 GPU 자원(VRAM에 올라간 텍스처, 기하구조, 재질, 렌더 타겟 등)은 브라우저의 가비지 컬렉터(GC)에 의해 자동으로 회수되지 않습니다. 따라서 심각한 메모리 누수와 GPU 크래시를 방지하려면, 사용이 끝난 자원에 대해 반드시 명시적으로 `.dispose()` 메서드를 호출하여 직접 메모리를 해제해야 합니다. GLTF 모델에서 로드된 `ImageBitmap` 텍스처의 경우 `.close()` 호출도 필요합니다. + +**3. 성능 최적화와 드로우 콜(Draw Call)** WebGL 렌더링의 주된 성능 병목은 CPU가 GPU에게 그리기 명령을 내리는 **'드로우 콜(Draw Call)'**에서 발생합니다. 부드러운 60FPS를 유지하기 위한 황금률은 프레임당 드로우 콜을 100회 미만으로 유지하는 것입니다. 수백, 수천 개의 동일한 객체를 그릴 때는 개별 메시(Mesh)를 생성하지 않고, 단 1회의 드로우 콜만으로 GPU 내부에서 객체를 복제하는 `InstancedMesh` 최적화 기법을 사용해야 합니다. 모바일 WebGL 환경의 셰이더에서는 `mediump` 정밀도를 사용하여 연산 성능을 2배가량 향상시킬 수 있습니다. + +**4. OffscreenCanvas를 통한 메인 스레드 분리** 복잡한 WebGL 3D 씬 연산은 메인 스레드를 블로킹하여 사용자 UI의 반응성을 크게 떨어뜨릴 수 있습니다. 이를 해결하기 위해 `OffscreenCanvas` API를 사용하여 WebGL 렌더링 컨텍스트를 DOM에서 완전히 분리하고, **웹 워커(Web Worker)**라는 백그라운드 스레드에서 WebGL을 실행할 수 있습니다. 이 멀티스레드 아키텍처는 무거운 그래픽 연산 중에도 UI가 매끄럽게 동작하도록 보장합니다. + +**5. 차세대 WebGPU와의 공존과 TSL** 현재 WebGL 2는 브라우저의 97% 이상을 커버하는 가장 안정적이고 널리 쓰이는 표준입니다. 하지만 수십만 개의 입자를 제어하거나 고성능 물리 연산을 처리하는 컴퓨트 셰이더(Compute Shaders) 기능의 부재로 인해, 차세대 그래픽스 API인 **WebGPU**로 전환되는 추세입니다. 이에 대응하여 최신 Three.js는 **TSL (Three Shader Language)**이라는 노드 기반 셰이더 시스템을 도입했습니다. TSL로 작성된 코드는 WebGPU용 WGSL과 WebGL용 GLSL로 동시 컴파일되며, WebGPU를 지원하지 않는 브라우저에서는 **자동으로 WebGL 2로 폴백(Fallback)**되도록 설계되어 호환성과 성능을 모두 잡고 있습니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Three.js]], [[React Three Fiber (R3F)]], [[WebGPU Compute Shaders]], [[OffscreenCanvas]], [[InstancedMesh (드로우 콜 최적화)]], [[Memory Leak Prevention (메모리 누수 방지)]] +- **Projects/Contexts:** [[브라우저 기반 3D 데이터 시각화 및 디지털 트윈]], [[멀티스레드 기반 고성능 웹 게임 엔진]] +- **Contradictions/Notes:** WebGL 파이프라인에서 `EffectComposer` 등을 활용해 커스텀 후처리(Post-processing)를 적용할 경우, WebGL의 내장 안티앨리어싱(AA) 기능이 무효화되는 제약이 있습니다. 이를 해결하려면 파이프라인 마지막 단계에 SMAA나 FXAA 효과 패스를 수동으로 추가해 주어야 시각적 품질을 유지할 수 있습니다. +- Raw Source: [[00_Raw/2026-04-20/WebGL.md]] +--- diff --git a/Graphics & Performance/WebGL2.md b/Graphics & Performance/WebGL2.md new file mode 100644 index 00000000..28be87ba --- /dev/null +++ b/Graphics & Performance/WebGL2.md @@ -0,0 +1,35 @@ +--- +id: P-REINFORCE-AUTO-208D23 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - WebGL2" +--- + +# [[WebGL2]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> WebGL2는 웹 브라우저 환경에서 3D 그래픽스를 렌더링하기 위해 사용되는 그래픽 API입니다 [1, 2]. 최신 Three.js 생태계에서는 차세대 API인 WebGPU로의 전환이 이루어지고 있으나, WebGPU를 지원하지 않는 브라우저에서는 WebGL 2가 자동 대체(Fallback) 수단으로서 핵심적인 역할을 수행합니다 [3, 4]. WebGL1과 비교했을 때 데이터 배열 텍스처(Data Array Textures)를 지원하고 텍스처 아틀라스의 블리딩(Bleeding) 현상을 더 쉽게 제어할 수 있는 등 진보된 기능을 제공하지만, WebGPU와 달리 컴퓨트 셰이더(Compute Shaders)를 지원하지 않는 한계가 있습니다 [1, 5, 6]. + +## 📖 구조화된 지식 (Synthesized Content) +- **WebGPU의 자동 대체(Fallback) 시스템:** + Three.js(r171 버전 이후)에서 제공하는 `WebGPURenderer`는 사용자의 브라우저가 WebGPU를 지원하지 않을 경우, 별도의 코드 분기 없이 자동으로 WebGL 2 환경으로 전환하여 호환성을 유지합니다 [3, 7]. 개발자는 디버깅이나 아직 WebGPU에서 지원하지 않는 특정 WebGL 확장 기능을 사용하기 위해 `forceWebGL: true` 옵션으로 강제 WebGL 렌더링 모드를 활성화할 수 있습니다 [8, 9]. +- **데이터 배열 텍스처(Data Array Textures) 및 렌더링 최적화:** + WebGL2는 데이터 배열 텍스처 기술을 지원하여 여러 텍스처를 셰이더 내에서 인덱스로 접근할 수 있는 스택 형태로 제공합니다 [1, 10]. 이 방식은 텍스처 아틀라싱의 주요 단점인 인접 텍스처 간의 경계선 블리딩(Edge Bleeding) 문제를 해결하고 네이티브 래핑(Wrapping)을 지원합니다 [1, 10]. 또한 WebGL2 환경에서는 WebGL1에 비해 아틀라스 블리딩 처리가 훨씬 수월합니다 [6]. +- **성능 및 기능적 한계:** + WebGL2는 현대 렌더링의 필수 기술로 자리 잡은 컴퓨트 셰이더(Compute Shaders)를 지원하지 않습니다 [5]. 따라서 GPU 병렬 처리를 통한 복잡한 물리 연산, 대규모 파티클 시스템 업데이트, GPU 주도의 정밀한 컬링(GPU-driven Culling) 등은 불가능하며, 이러한 한계를 극복하기 위해 대규모 프로젝트에서는 WebGPU로의 아키텍처 전환이 권장되고 있습니다 [2, 5, 11]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGPU]], [[Three.js]], [[Data Array Textures]], [[Compute Shaders]] +- **Projects/Contexts:** [[Three.js WebGPURenderer 자동 폴백 지원]], [[BatchedMesh 및 드로우 콜 최적화 파이프라인]] +- **Contradictions/Notes:** 소스에 따르면 WebGL 2는 현재 널리 지원되는 강력한 그래픽 API이지만, 컴퓨트 셰이더를 통한 GPU 기반의 병렬 가시성 연산(Compute Culling)이나 대규모 간접 드로우(Indirect Draw) 부재로 인해 렌더링 성능 최적화의 기술적 한계점에 도달해 있습니다 [2, 5, 11]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/WebGL2.md]] +--- diff --git a/Graphics & Performance/WebGLRenderingContext.md b/Graphics & Performance/WebGLRenderingContext.md new file mode 100644 index 00000000..181904e3 --- /dev/null +++ b/Graphics & Performance/WebGLRenderingContext.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-47CDF1 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - WebGLRenderingContext" +--- + +# [[WebGLRenderingContext]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> WebGLRenderingContext는 HTML 캔버스(canvas) 요소에 대한 WebGL 컨텍스트를 보유하는 자바스크립트 객체입니다 [1, 2]. 개발자들 사이에서 일반적으로 `gl`이라고 명명되며, 애플리케이션은 이 객체를 통해 하드웨어 그래픽 파이프라인의 모든 WebGL 기능(API)에 접근하고 제어합니다 [1, 2]. 이 컨텍스트를 생성하는 작업은 브라우저가 동기적으로 OpenGL 컨텍스트를 생성하도록 강제하므로 운영 체제나 시스템 환경에 따라 속도가 느려질 수 있습니다 [3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **컨텍스트의 획득 및 역할:** 모델 데이터를 렌더링하기 위한 전처리 과정 중 하나로, 먼저 HTML 캔버스 요소를 가져온 뒤 해당 요소의 WebGL 컨텍스트(WebGLRenderingContext)를 얻어야 합니다 [1]. 모든 WebGL 기능은 이 객체를 통해서만 접근할 수 있으며 [2], 필요에 따라 `getExtension()` 메서드를 호출하여 `EXT_disjoint_timer_query`와 같은 추가적인 WebGL 확장(Extension) 기능들을 사용할 수도 있습니다 [4]. +- **초기화에 따른 성능 비용:** WebGLRenderingContext의 생성은 비용이 많이 드는 작업입니다. 리눅스(Linux) 환경의 경우 드라이버에 따라 50ms에서 200ms까지 소요될 수 있습니다 [3]. 특히 듀얼 GPU를 탑재한 Mac 시스템에서는 컨텍스트 생성 시 외장 그래픽 모드로의 전환을 유발하여 약 1초가량의 심각한 지연을 발생시키기도 합니다 [5, 6]. 이로 인해 실제 WebGL 호출이 필요한 시점까지 컨텍스트 생성을 지연시키지 않으면 페이지 로드 속도가 크게 저하될 수 있습니다 [3, 7, 8]. +- **브라우저 가용성:** 파이어폭스(Firefox) 브라우저의 공식 빌드에서는 하드웨어 GPU가 블랙리스트에 등록되어 있더라도 WebGLRenderingContext가 항상 존재합니다 (빌드 시 완전히 비활성화된 경우 제외) [9]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGL]], [[OpenGL]], [[GPU]] +- **Projects/Contexts:** [[Modernizr]], [[LearnWebGL]] +- **Contradictions/Notes:** 소스 간의 모순된 내용은 없으나, WebGLRenderingContext 생성에 따른 성능 지연 문제와 관련해 페이지 로드 시 불필요하게 컨텍스트를 생성하지 않아야 한다는 점이 강조됩니다 [3, 7]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/WebGLRenderingContext.md]] +--- diff --git a/Graphics & Performance/WebGPU Compute Shader.md b/Graphics & Performance/WebGPU Compute Shader.md new file mode 100644 index 00000000..2b633cf9 --- /dev/null +++ b/Graphics & Performance/WebGPU Compute Shader.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-B03C61 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - WebGPU Compute Shader" +--- + +# [[WebGPU Compute Shader]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> WebGPU Compute Shader는 범용 GPU 연산을 수행하여 메인 스레드(CPU)의 과중한 작업을 GPU 코어로 분산시키는 렌더링 기술이다 [1, 2]. InstancedMesh를 사용할 때 발생하는 가시성 판단(컬링) 및 데이터 전송 병목 현상을 극복하기 위해 GPU 주도 렌더링(GPU-driven Rendering)을 구현하는 데 핵심적인 역할을 한다 [2]. 이를 통해 수백만 개의 파티클이나 대규모 인스턴스의 물리 연산 및 컬링을 CPU 개입 없이 GPU 내부에서 병렬로 직접 처리할 수 있다 [1-3]. + +## 📖 구조화된 지식 (Synthesized Content) +* **GPU 주도 컬링 및 간접 그리기(Indirect Draw):** InstancedMesh의 근본적인 문제인 'CPU 기반 가시성 판단 오버헤드'를 해결하기 위해 활용된다 [2]. 컴퓨트 셰이더가 모든 인스턴스의 시야 포함 여부(Frustum Culling)와 가림 현상(Occlusion)을 직접 판별하고, 시야에 존재하는 인스턴스 정보만 GPU 내부 버퍼에 담아 간접 그리기(`drawIndirect` 또는 간접 버퍼) 명령으로 출력한다 [2, 4, 5]. 이로 인해 CPU와 GPU 간의 데이터 전송량이 거의 0에 수렴하게 되며, 수백만 개의 인스턴스 렌더링에 필수적인 최적화를 제공한다 [2, 6]. +* **대규모 연산의 병렬 처리:** 기존 CPU 기반의 시스템은 약 50,000개 수준의 파티클 업데이트에서 성능 병목을 겪지만, WebGPU 컴퓨트 셰이더를 활용하면 수백만 개 단위의 연산으로 한계를 확장할 수 있다 [3]. 파티클뿐만 아니라 물리 시뮬레이션이나 대규모 지형의 실시간 절차적 생성(Procedural generation) 등 연산 집약적인 작업을 GPU에서 실시간으로 처리할 수 있다 [1, 7]. +* **작업 그룹 공유 메모리와 렌더링 동기화:** 컴퓨트 셰이더 내에서 스레드 간 데이터 공유가 필요한 경우, 전역 메모리보다 10~100배 빠른 작업 그룹 공유 메모리(workgroup shared memory)를 활용하여 성능을 높일 수 있다 [1, 6]. 또한, 씬에 컴퓨트 셰이더 작업이 포함된 경우, 종속된 렌더 패스가 시작되기 전에 컴퓨트 패스가 완전히 끝나도록 보장하기 위해 비동기 렌더링(`renderAsync`)을 사용하여 GPU 작업을 동기화해야 한다 [8]. +* **스토리지 텍스처(Storage Textures) 활용:** 일반 텍스처와 달리 컴퓨트 셰이더 내에서 읽기와 쓰기가 모두 가능한 스토리지 텍스처를 지원한다 [9]. 이는 유체 시뮬레이션, 이미지 처리, 그리고 GPU 주도 렌더링 등 복잡한 효과를 구현하는 데 필수적인 요소로 작용한다 [9]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[GPU-driven Rendering]], [[Indirect Draw]], [[Frustum Culling]], [[Draw Call]] +- **Projects/Contexts:** [[대규모 건축물 및 지형 뷰어(BIM)]], [[Three.js WebGPU 파티클 예제]], [[실시간 물리 및 유체 시뮬레이션]] +- **Contradictions/Notes:** 컴퓨트 셰이더를 통해 GPU 단에서 컬링 및 피킹 처리를 최적화할 수 있으나, 다른 인스턴스에 의해 가려진 객체들을 포함하여 올가미(Lasso) 그룹 선택을 하는 것과 같은 복잡한 상호작용은 컴퓨트 셰이더만으로는 간단히 해결되지 않으며, 깊이 벗기기(depth-peeling)와 같은 추가적인 셰이더 작업이나 웹 워커가 필요할 수 있다 [10]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/WebGPU Compute Shader.md]] +--- diff --git a/Graphics & Performance/WebGPU Compute Shaders.md b/Graphics & Performance/WebGPU Compute Shaders.md new file mode 100644 index 00000000..1a789a27 --- /dev/null +++ b/Graphics & Performance/WebGPU Compute Shaders.md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-1903E0 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - WebGPU Compute Shaders" +--- + +# [[WebGPU Compute Shaders]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> WebGPU Compute Shader는 JavaScript의 메인 스레드에서 수행되던 무거운 범용 연산을 수많은 GPU 코어를 활용해 병렬로 처리할 수 있게 해주는 기능입니다 [1]. CPU 기반 연산의 병목 현상을 해소하여 수백만 개의 파티클이나 대규모 복잡한 시뮬레이션을 실시간으로 처리할 수 있도록 돕습니다 [2, 3]. Three.js와 같은 라이브러리를 통해 접근성이 크게 향상되었으며, 대규모 데이터 필터링, 물리 시뮬레이션, GPU 주도 렌더링 등 고성능이 요구되는 작업에 필수적으로 사용됩니다 [1, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +* **성능 향상 및 병목 해소:** 기존 CPU 기반의 업데이트는 약 50,000개의 파티클에서 병목 현상이 발생했으나, WebGPU 컴퓨트 셰이더를 사용하면 이를 수백만 개 단위로 확장할 수 있습니다 [2]. 실제로 CPU에서 프레임당 30ms가 걸리던 10,000개의 파티클 업데이트 작업을 컴퓨트 셰이더를 통해 100,000개의 파티클을 2ms 이내에 처리하는 수준(약 150배 향상)으로 대폭 개선할 수 있습니다 [3]. +* **주요 활용 사례:** 컴퓨트 셰이더는 충돌 감지, 대규모 데이터 필터링, 실시간 조명, 물리 연산 등 병렬 처리가 필요한 작업에 매우 적합합니다 [1, 4-6]. 또한 실시간 편집과 거대한 규모를 지원하는 절차적 지형 생성(Procedural terrain generation)에도 사용됩니다 [6]. 애니메이션 시퀀스를 위한 '컴퓨트 스키닝(Compute skinning)' 기법에도 활용되어, 컴퓨트 단계에서 메쉬 정점 변환을 계산해 버퍼에 저장하고 렌더링 패스에서 재사용함으로써 중복 계산을 없앨 수 있습니다 [3]. +* **스토리지 텍스처(Storage Textures) 활용:** 일반 텍스처와 달리 컴퓨트 셰이더에서 읽기와 쓰기가 모두 가능하며, 유체 시뮬레이션, 이미지 처리, GPU 주도 렌더링과 같은 효과를 구현하는 데 필수적입니다 [5, 7]. +* **메모리 및 동기화 관리:** 스레드 간 데이터 공유가 필요한 컴퓨트 셰이더의 경우, 전역 메모리보다 10~100배 빠른 작업 그룹 공유 메모리(Workgroup shared memory)를 활용할 수 있습니다 [6, 8]. 연산이 포함된 씬을 렌더링할 때는 `renderAsync`(또는 `renderer.computeAsync`)를 사용하여 GPU 작업을 동기화하고, 종속된 렌더 패스가 시작되기 전에 컴퓨트 패스가 완료되도록 보장해야 합니다 [9, 10]. +* **간접 그리기(Indirect Draws)와의 결합:** 컴퓨트 셰이더의 연산 결과를 바탕으로 GPU가 스스로 무엇을 렌더링할지 결정하게 하는 간접 그리기 기능을 활용할 수 있습니다 [8]. 이를 통해 CPU-GPU 간의 동기화 지연을 제거하고 초당 프레임 수준의 GPU 기반 컬링(Culling)을 효율적으로 수행할 수 있습니다 [8, 11, 12]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Storage Textures]], [[Indirect Draws]], [[TSL (Three Shader Language)]], [[Compute Skinning]] +- **Projects/Contexts:** [[Three.js r171+]] (WebGPURenderer 도입 및 TSL 통합으로 컴퓨트 셰이더 지원 [13-17]), [[BIM Datasets]] (대규모 데이터 필터링 및 병렬 처리 적용 맥락 [3]), [[Expo 2025 Osaka]] (100만 개 파티클 유체 시뮬레이션 적용 사례 [18, 19]) +- **Contradictions/Notes:** WebGL이나 WebGL2 환경에서는 컴퓨트 셰이더가 지원되지 않으며 WebGPU 환경에서만 동작합니다 [20]. Three.js의 TSL과 렌더러를 사용하면 비교적 쉽게 컴퓨트 셰이더를 구현할 수 있지만, 네이티브 WebGPU를 사용할 경우 더 세밀한 직접 제어 및 다중 패스 물리 연산 등이 가능한 대신 그래픽스 파이프라인에 대한 매우 높은 기술적 숙련도가 요구된다는 트레이드오프가 존재합니다 [1, 4, 10]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/WebGPU Compute Shaders.md]] +--- diff --git a/Graphics & Performance/WebGPU Performance Profiling.md b/Graphics & Performance/WebGPU Performance Profiling.md new file mode 100644 index 00000000..1180e184 --- /dev/null +++ b/Graphics & Performance/WebGPU Performance Profiling.md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-A8AA46 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - WebGPU Performance Profiling" +--- + +# [[WebGPU Performance Profiling]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> WebGPU Performance Profiling은 WebGPU API를 활용하는 웹 애플리케이션에서 컴퓨트 및 렌더 패스 경계에서의 GPU 명령 실행 시간을 정밀하게 측정하고 분석하는 과정입니다 [1, 2]. 개발자는 이를 통해 성능 병목 현상을 식별하고 최적화할 수 있으나, 타이밍 기반의 보안 공격을 방지하기 위해 타임스탬프의 정밀도가 의도적으로 낮춰져(Quantization) 제공됩니다 [1, 3, 4]. 하드웨어 수준의 타이머 접근이 제한될 경우, 개발자는 브라우저 내부의 트레이싱 도구를 활용하여 시스템 수준의 프로파일링을 수행할 수 있습니다 [5, 6]. + +## 📖 구조화된 지식 (Synthesized Content) +* **타임스탬프 쿼리(Timestamp Queries):** + WebGPU는 `timestamp-query` 기능과 `GPUQuerySet`을 도입하여 컴퓨트 패스와 렌더 패스의 시작 및 종료 지점에서 나노초 단위의 정밀한 실행 시간 측정을 지원합니다 [1, 2]. 이는 개발자가 GPU 작업 부하의 성능과 동작에 대한 심층적인 통찰력을 얻을 수 있도록 돕는 핵심 프로파일링 수단입니다 [2]. + +* **보안을 위한 양자화(Quantization) 및 정밀도 저하:** + 고해상도 타이머는 Spectre나 Rowhammer와 같은 캐시 사이드 채널 공격(타이밍 공격)에 악용될 수 있습니다 [1, 7, 8]. 이러한 보안 취약점을 완화하기 위해, 브라우저 벤더들은 타임스탬프 쿼리의 해상도를 100 마이크로초 단위로 제한하는 양자화(Coarsening/Quantization)를 적용합니다 [3, 4, 9]. 교차 출처 격리(Cross-origin isolated) 상태와 무관하게 고해상도 시간(High Resolution Time) 사양에 맞춰 100 마이크로초의 해상도를 제공하는 방향으로 합의가 이루어졌습니다 [10, 11]. + +* **로컬 개발 환경에서의 정밀도 제어:** + Chrome 브라우저에서는 디버깅 및 성능 최적화를 위해 개발자가 정밀도 제한을 직접 해제할 수 있습니다. `chrome://flags/#enable-webgpu-developer-features` 플래그를 활성화하면 타임스탬프 양자화를 비활성화할 수 있습니다 [3, 12]. 단, `timestamp-query` 기능 자체는 실험적이므로 `chrome://flags/#enable-unsafe-webgpu` 지원 플래그가 함께 필요할 수 있습니다 [12]. + +* **브라우저 내부 트레이싱 및 프로파일링 도구:** + 하드웨어 타이머를 사용할 수 없거나 불충분한 경우, Chrome DevTools의 Performance 패널이나 `chrome://tracing`(`about:tracing`)과 같은 시스템 수준의 브라우저 프로파일링 도구를 사용할 수 있습니다 [5, 13]. 이 도구들을 통해 `CrGpuMain`(GPU 프로세스)과 `CrRendererMain`(렌더러 프로세스) 스레드의 활동을 추적하여, 현재 애플리케이션의 성능 병목이 GPU 바운드인지 CPU 바운드인지 시각적으로 파악할 수 있습니다 [6, 14, 15]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Timestamp Queries]], [[Timing Attacks]], [[Chrome DevTools]] +- **Projects/Contexts:** [[High Resolution Time Spec]], [[Chromium WebGPU Implementation]] +- **Contradictions/Notes:** WebGPU 사양 원문에서는 타이밍 공격에 대한 우려로 인해 타임스탬프 쿼리를 선택적(optional) 기능으로 명시하고 신뢰할 수 있는 환경으로 노출을 제한할 수 있다고 규정했습니다 [4, 16]. 하지만, GPU for the Web 커뮤니티 그룹은 개발자의 성능 프로파일링 요구를 충족하면서도 보안을 유지하기 위해, 해상도를 100 마이크로초로 낮추는 조건 하에 사이트 격리(site isolation) 여부와 상관없이 타임스탬프 쿼리를 허용하기로 합의했습니다 [9, 10]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/WebGPU Performance Profiling.md]] +--- diff --git a/Graphics & Performance/WebGPU Timestamp Queries.md b/Graphics & Performance/WebGPU Timestamp Queries.md new file mode 100644 index 00000000..fd1cbb57 --- /dev/null +++ b/Graphics & Performance/WebGPU Timestamp Queries.md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-1F8BE6 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - WebGPU Timestamp Queries" +--- + +# [[WebGPU Timestamp Queries]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> WebGPU Timestamp Queries는 WebGPU 애플리케이션이 컴퓨트(Compute) 및 렌더(Render) 패스의 경계 등에서 GPU 명령이 실행되는 데 걸리는 시간을 나노초 단위까지 정밀하게 측정할 수 있도록 지원하는 API 기능입니다 [1, 2]. 고해상도 타이머를 악용한 캐시 사이드 채널 공격(예: Spectre)을 방지하기 위해 브라우저 환경에서는 일반적으로 해상도를 100마이크로초로 제한하는 타임스탬프 양자화(Timestamp Quantization)가 적용됩니다 [3, 4]. 한편, 루트 주제인 '브라우저 메모리 할당 시점별 미세 지연 측정 사례'와 관련하여, 타임스탬프 쿼리를 직접적으로 메모리 할당 시점과 연계하여 측정한 구체적인 사례는 소스에 관련 정보가 부족합니다. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Micro-latency]], [[Timestamp Quantization]], [[Timing Attacks (Spectre/Meltdown)]] +- **Projects/Contexts:** [[WebGPU Performance Profiling]], [[Browser Security Mitigations]] +- **Contradictions/Notes:** 소스 [5]에서는 보안을 위해 비격리 컨텍스트(Non-isolated contexts)에서 타임스탬프 쿼리 기능을 아예 노출하지 않는 방향을 주장하지만, 소스 [6]에서는 GPU for the Web Community Group의 추후 합의를 통해 사이트 격리 여부와 무관하게 100마이크로초 해상도로 기능을 항상 허용하는 것으로 변경되었음을 보여줍니다. 또한 루트 주제에서 요구한 '브라우저 메모리 할당 시점별' 구체적 지연 측정 사례에 대해서는 소스에 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/WebGPU Timestamp Queries.md]] +--- diff --git a/Graphics & Performance/WebGPU _ WebGL Timing API Security.md b/Graphics & Performance/WebGPU _ WebGL Timing API Security.md new file mode 100644 index 00000000..96883ddb --- /dev/null +++ b/Graphics & Performance/WebGPU _ WebGL Timing API Security.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-B3C1E7 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - WebGPU _ WebGL Timing API Security" +--- + +# [[WebGPU _ WebGL Timing API Security]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> WebGPU와 WebGL의 타이밍 API는 GPU 명령어의 실행 시간을 측정하는 도구이지만, 높은 정밀도의 타이밍 데이터가 보안 취약점으로 악용될 수 있어 엄격한 보안 모델이 적용됩니다 [1-3]. 과거 WebGL의 `EXT_disjoint_timer_query`와 같은 확장 기능은 캐시 적중률 및 메모리 접근 패턴을 노출시켜 Spectre, Meltdown, Rowhammer 등의 부채널 공격(Side-channel attack)에 악용되었습니다 [2, 4, 5]. 이에 대응하여 브라우저 벤더들은 고정밀 타이머를 비활성화하거나, 시간의 정밀도를 의도적으로 낮추는 '양자화(Quantization)' 기법을 도입하여 보안과 성능 분석 간의 균형을 맞추고 있습니다 [2, 6, 7]. + +## 📖 구조화된 지식 (Synthesized Content) +* **보안 위협의 배경:** WebGL에서 제공하던 `EXT_disjoint_timer_query` 등의 고정밀 타이머는 밀리초 미만의 정밀도로 GPU 실행 시간을 측정할 수 있었습니다 [1]. 하지만 보안 연구자들은 이러한 높은 해상도의 타이밍 데이터가 L1 캐시와 메인 메모리 간의 지연 시간 차이를 관찰하게 해준다는 사실을 발견했습니다 [8]. 이를 통해 캐시 부채널 공격을 수행하거나 물리적 메모리 구조를 파악하여 Rowhammer 공격 및 기기 지문 수집(Device Fingerprinting)에 악용될 수 있음이 밝혀졌습니다 [2, 4, 5]. +* **브라우저의 완화 조치 (Mitigations):** Spectre 및 Meltdown과 같은 보안 위협을 완화하기 위해 브라우저 엔진은 `performance.now()`의 타이머 정밀도를 1ms 또는 100 마이크로초 단위로 낮추고 측정값에 무작위 변동성(Jitter)을 도입했습니다 [9, 10]. 또한, 공격에 악용될 여지가 있는 `EXT_disjoint_timer_query` 확장을 브라우저 전반에서 비활성화하거나 사이트 격리(Site Isolation)가 적용된 특정 환경에서만 제한적으로 노출했습니다 [4, 11, 12]. 부가적으로 분기 처리를 통한 정보 유출을 막기 위해 인덱스 마스킹(Index Masking)과 포인터 포이즈닝(Pointer Poisoning)과 같은 분기 없는 보안 검사(Branchless security checks) 기법이 적용되었습니다 [13-16]. +* **WebGPU 타이밍 API 보안 모델:** WebGPU는 나노초 단위의 정밀도를 제공하는 `timestamp-query` 기능을 도입했지만, 타이밍 공격 우려로 인해 명세에서는 이를 신뢰할 수 있는 환경에만 노출할 수 있는 선택적(optional) 기능으로 정의했습니다 [2, 3]. 크롬(Chrome)을 비롯한 브라우저 엔진 및 GPU for the Web 커뮤니티 그룹은 보안과 상호 운용성을 확보하기 위해 '타임스탬프 양자화(Timestamp Quantization)'를 표준 방어 기법으로 채택했습니다 [3, 7, 17]. +* **타임스탬프 양자화(Timestamp Quantization) 적용:** 일반적인 웹 환경에서는 타이머 해상도를 100 마이크로초 단위로 낮추어(Coarsening) 타이밍 공격을 방지합니다 [6, 17]. 성능 프로파일링이 필수적인 개발자의 경우, 로컬 환경에서 전용 브라우저 플래그("WebGPU Developer Features" 및 "Unsafe WebGPU Support")를 명시적으로 활성화해야만 양자화가 해제된 나노초 단위의 정밀한 측정값을 얻을 수 있습니다 [6, 18]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Spectre and Meltdown]], [[Cache Side-Channel Attack]], [[Timestamp Quantization]], [[Rowhammer Attack]] +- **Projects/Contexts:** [[Chrome / Blink WebGPU Implementation]], [[WebKit Security Mitigations]] +- **Contradictions/Notes:** 초기 WebGPU 보안 모델의 제안에서는 사이트 격리(Site Isolation) 여부에 따라 타임스탬프 노출 및 정밀도를 다르게 적용할 계획이었습니다(격리 컨텍스트에서는 100µs 해상도를 제공하고, 비격리 컨텍스트에서는 노출하지 않음) [3]. 그러나 브라우저 간 상호 운용성(Interop) 문제를 해결하기 위해, GPU for the Web 커뮤니티 그룹은 사이트 격리 여부와 무관하게 모든 상황에서 100 마이크로초(100µs) 해상도로 통일하여 허용하는 것으로 최종 합의를 변경했습니다 [17]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/WebGPU _ WebGL Timing API Security.md]] +--- diff --git a/Graphics & Performance/WebGPU 대규모 건설 뷰어.md b/Graphics & Performance/WebGPU 대규모 건설 뷰어.md new file mode 100644 index 00000000..5cea4648 --- /dev/null +++ b/Graphics & Performance/WebGPU 대규모 건설 뷰어.md @@ -0,0 +1,35 @@ +--- +id: P-REINFORCE-AUTO-BF6C28 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - WebGPU 대규모 건설 뷰어" +--- + +# [[WebGPU 대규모 건설 뷰어]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> WebGPU 대규모 건설 뷰어는 WebGPU 기술을 활용하여 거대한 건축, 엔지니어링 및 건설 데이터(BIM 모델, LiDAR 포인트 클라우드 등)를 브라우저에서 실시간으로 렌더링하는 플랫폼입니다. 2026년 기준 500MB 미만의 모델이나 빠른 프로토타이핑에는 접근성이 높은 Three.js의 WebGPU가 주로 사용되며, 500MB를 초과하는 초대형 병원 캠퍼스, 공항 터미널 또는 복잡한 구조 시뮬레이션에는 강력한 제어력과 렌더 번들 기능을 갖춘 네이티브 WebGPU가 권장됩니다. 이 기술은 컴퓨트 셰이더 등을 통해 기존 WebGL 대비 드로우 콜 오버헤드를 획기적으로 줄이고 최대 100배 이상의 성능 향상을 제공합니다. + +## 📖 구조화된 지식 (Synthesized Content) +* **Three.js 기반 WebGPU 뷰어 (500MB 이하 모델):** + Three.js(r171 이상)의 `WebGPURenderer`는 대규모 건설 플랫폼 개발을 간소화합니다. TSL(Three Shader Language)을 통해 콘크리트, 반사 유리, 강철 마감 등 건축용 맞춤형 재질을 단일 코드베이스로 구현할 수 있습니다. 반복적인 요소(빔, 기둥, 볼트 등)가 많은 건축 모델의 경우 `InstancedMesh` 또는 `BatchedMesh`를 활용하여 드로우 콜을 90% 이상 줄일 수 있어 성능 확보에 유리합니다. +* **네이티브 WebGPU (500MB 초과 대규모 워크로드):** + 500MB가 넘는 거대한 BIM 모델이나 실시간 구조 응력 시뮬레이션을 다루는 경우, 네이티브 WebGPU의 저수준 제어가 필수적입니다. 스토리지 버퍼를 사용하여 수십만 개의 개별 객체 변환 행렬을 단일 버퍼로 압축하고, `GPURenderBundles` 및 간접 그리기(`drawIndexedIndirect`)를 통해 최대 100,000개 이상의 객체를 CPU-GPU 동기화 지연 없이 단일 호출로 효율적으로 렌더링합니다. +* **컴퓨트 셰이더를 활용한 대규모 데이터 처리:** + 충돌 감지, 현장 분석, 대규모 BIM 데이터의 실시간 필터링 등 연산 집약적인 작업을 자바스크립트 메인 스레드에서 GPU로 오프로드합니다. 컴퓨트 셰이더를 통해 수백만 개의 점으로 이루어진 LiDAR 포인트 클라우드나 파티클 시스템을 렌더링할 때 CPU 연산 대비 100배~150배의 획기적인 속도 향상을 달성할 수 있습니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Three.js WebGPU]], [[Native WebGPU]], [[BIM (Building Information Modeling)]], [[LiDAR Point Cloud]], [[Compute Shaders]], [[GPURenderBundles]] +- **Projects/Contexts:** [[Segments.ai]] (LiDAR 포인트 클라우드 레이블링 도구를 WebGPU로 전환하여 100배 성능 향상), [[Expo 2025 Osaka]] ("Waves of Connection" 설치물에서 4K 디스플레이에 100만 개 파티클을 지연 없이 실시간 렌더링) +- **Contradictions/Notes:** Three.js의 WebGPU는 추상화 레이어를 통해 빠르고 쉬운 뷰어 개발을 가능하게 하지만, 고유한 객체가 10,000~20,000개를 초과할 경우 UBO(Uniform Buffer Object) 바인딩 오버헤드로 인해 프레임 저하(예: 15 FPS)가 발생할 수 있습니다. 반면 네이티브 WebGPU는 막대한 데이터도 원활하게 처리할 수 있으나, 파이프라인 및 셰이더에 대한 깊은 지식이 요구되어 개발 속도가 상대적으로 느립니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/WebGPU 대규모 건설 뷰어.md]] +--- diff --git a/Graphics & Performance/WebGPU.md b/Graphics & Performance/WebGPU.md new file mode 100644 index 00000000..bddae76f --- /dev/null +++ b/Graphics & Performance/WebGPU.md @@ -0,0 +1,37 @@ +--- +id: P-REINFORCE-AUTO-C06372 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - WebGPU" +--- + +# [[WebGPU]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> WebGPU는 웹 브라우저 환경에서 고성능 3D 그래픽 및 연산을 처리하기 위해 설계된 차세대 그래픽 API이다 [1]. 기존 WebGL의 한계를 극복하고 컴퓨트 셰이더(Compute Shaders), 직접적인 메모리 관리, 멀티스레딩 등 최신 하드웨어 기능을 웹에서 사용할 수 있게 해준다 [2, 3]. Three.js와 같은 라이브러리를 통해 쉽게 도입할 수 있으며, 특히 드로우 콜(Draw Call)이 집중된 씬이나 대규모 물리 연산에서 기존 WebGL 대비 비약적인 성능 향상을 제공한다 [4-6]. + +## 📖 구조화된 지식 (Synthesized Content) +* **브라우저 지원 및 Three.js 도입:** + WebGPU는 Chrome, Edge, Firefox, Safari(v26, 2025년 9월 이후) 등 모든 주요 브라우저에서 지원되어 상용화 준비를 마쳤다 [7]. Three.js 환경에서는 r171 버전부터 별도의 복잡한 설정 없이 `WebGPURenderer`를 비동기로 초기화하여 손쉽게 사용할 수 있으며, WebGPU를 지원하지 않는 기기에서는 자동으로 WebGL 2로 대체(Fallback)되는 기능을 제공한다 [2, 8, 9]. +* **성능 향상과 컴퓨트 셰이더(Compute Shaders):** + WebGPU는 드로우 콜이 많은 환경과 입자(Particle) 및 물리 시뮬레이션 같은 연산 집약적인 작업에서 2~10배의 성능 향상을 보여준다 [4]. 기존 CPU 기반 시스템에서는 약 5만 개의 파티클에서 병목 현상이 발생했으나, WebGPU의 컴퓨트 셰이더를 활용하면 수백만 개의 파티클을 오프스레드로 처리할 수 있다 [10, 11]. 연산 스레드 간 데이터 공유를 위한 작업 그룹 공유 메모리를 제공하며, 절차적 지형 생성 및 실시간 유체 시뮬레이션에 탁월하다 [12, 13]. +* **바인딩 모델 및 데이터 전송 최적화:** + WebGL의 개별 바인딩 방식과 달리, WebGPU는 리소스를 '바인드 그룹(Bind Groups)' 단위로 일괄 처리하여 드로우 콜 간의 상태 전환 오버헤드를 최소화한다 [14]. 또한 `instancedArray`를 사용하여 프레임 간 유지되는 GPU 버퍼를 생성함으로써 CPU-GPU 간 데이터 전송 병목을 제거하고, 읽기 및 쓰기가 동시에 가능한 스토리지 텍스처(Storage Textures)를 지원한다 [10, 14, 15]. +* **Native WebGPU vs Three.js WebGPU:** + 500MB 이상의 대형 건설 뷰어나 BIM 모델 같은 방대한 데이터셋을 다룰 때는 Three.js의 추상화 계층을 거치지 않는 Native WebGPU가 필수적일 수 있다 [16]. Native WebGPU는 `GPURenderBundles`를 통해 10만 개 이상의 객체를 효율적으로 단일 호출로 재생할 수 있으며, 간접 그리기(`drawIndexedIndirect`)를 사용하여 CPU-GPU 동기화 지연을 완전히 제거하는 등 훨씬 정밀한 메모리 관리와 파이프라인 제어를 가능하게 한다 [3, 17, 18]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGL]], [[Compute Shaders]], [[Three Shader Language (TSL)]], [[GPURenderBundles]], [[Draw Call]] +- **Projects/Contexts:** [[Three.js]], [[Segments.ai]], [[Expo 2025 Osaka]] +- **Contradictions/Notes:** Three.js의 WebGPU 렌더러는 개발 속도를 비약적으로 높여주고 사용이 쉽지만, 수만 개의 고유 객체를 처리할 때 발생하는 UBO(Uniform Buffer Object) 바인딩 오버헤드와 메타데이터 메모리 소비로 인해 초대규모 데이터셋(500MB 이상)에서는 Native WebGPU 성능에 미치지 못한다는 벤치마크 결과가 있다 [18-21]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/WebGPU.md]] +--- diff --git a/Graphics & Performance/Winning Ways for your Mathematical Plays.md b/Graphics & Performance/Winning Ways for your Mathematical Plays.md new file mode 100644 index 00000000..c33aa248 --- /dev/null +++ b/Graphics & Performance/Winning Ways for your Mathematical Plays.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A3A3FC +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Winning Ways for your Mathematical Plays" +--- + +# [[Winning Ways for your Mathematical Plays]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Winning Ways for your Mathematical Plays.md]] +--- diff --git a/Graphics & Performance/Wonderland Engine.md b/Graphics & Performance/Wonderland Engine.md new file mode 100644 index 00000000..5eb9c9d4 --- /dev/null +++ b/Graphics & Performance/Wonderland Engine.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-F85BEF +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Wonderland Engine" +--- + +# [[Wonderland Engine]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Wonderland Engine(원더랜드 엔진)은 웹 환경을 위한 차세대 고성능 3D 엔진입니다 [1]. 이 엔진은 프로덕션 수준의 성능으로 제품 구성기, 시각화 및 대화형 3D 경험을 구축할 수 있도록 설계되었습니다 [1]. WebGL 성능 최적화 원칙을 극한으로 적용하여, 개발자가 성능 병목 현상을 고민하지 않고 프로젝트 자체에만 집중할 수 있는 환경을 제공합니다 [2]. + +## 📖 구조화된 지식 (Synthesized Content) +- **극단적인 배칭(Batching)을 통한 드로우 콜 최적화:** WebGL 성능 저하의 주된 원인 중 하나인 드로우 콜(Draw call)을 줄이기 위해 Wonderland Engine은 여러 호출을 하나로 병합하는 배칭 기능을 극단적인 수준으로 활용합니다 [3, 4]. 이를 통해 수만 개의 동적 객체가 포함된 씬(Scene)도 자동으로 10번 미만의 드로우 콜만 사용하여 렌더링할 수 있습니다 [4]. +- **포괄적인 WebXR 지원:** WebXR 기술을 기반으로 AR(증강현실, Zappar 지원), VR(가상현실) 및 혼합 현실(Mixed Reality) 애플리케이션 개발을 강력하게 지원합니다 [5]. +- **개발 도구 및 기능:** 자체적인 Wonderland Editor와 CLI, 컴포넌트 레지스트리 등을 제공하며, Prefab, GLTF/GLB 모델 로딩, 커스텀 셰이더 작성 등 3D 그래픽 작업에 필요한 다양한 리소스를 다룰 수 있습니다 [5, 6]. JavaScript 및 TypeScript를 활용하여 컴포넌트를 작성할 수 있으며, Unity 환경에서 Wonderland로 작업물을 가져올 수 있는 기능(Unity to Wonderland)도 지원합니다 [5, 6]. +- **안정적인 렌더링 환경 제공:** 가비지 컬렉션(Garbage Collection)으로 인한 예기치 않은 렌더링 끊김 현상을 방지하고, 안정적인 프레임률(Framerate)을 보장하기 위해 브라우저 오버헤드를 피하는 최적화 기술이 엔진 내부에 엄격하게 적용되어 있습니다 [2, 7, 8]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGL]], [[WebXR]], [[Draw Calls]], [[Batching]] +- **Projects/Contexts:** [[Interactive 3D Experiences]] +- **Contradictions/Notes:** 소스에 모순되는 내용은 없으나, WebGL이 복잡한 3D 그래픽을 렌더링하기에 느리다는 개발자들의 일반적인 오해와 달리, Wonderland Engine은 극한의 엔진 최적화(드로우 콜 최소화 등)를 통해 웹에서도 압도적인 3D 렌더링 성능을 낼 수 있음을 보여줍니다 [4, 9]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Wonderland Engine.md]] +--- diff --git a/Graphics & Performance/XState-Library.md b/Graphics & Performance/XState-Library.md new file mode 100644 index 00000000..620aa913 --- /dev/null +++ b/Graphics & Performance/XState-Library.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-7C6A30 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - XState-Library" +--- + +# [[XState-Library]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/XState-Library.md]] +--- diff --git a/Graphics & Performance/instancedArray.md b/Graphics & Performance/instancedArray.md new file mode 100644 index 00000000..3e697e68 --- /dev/null +++ b/Graphics & Performance/instancedArray.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-FF8159 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - instancedArray" +--- + +# [[instancedArray]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> `instancedArray`는 렌더링 프레임 간에도 유지되는 영구적인 GPU 버퍼(GPU-persistent buffers)를 생성하는 기능입니다 [1]. 이 기능을 활용하면 기존 파티클 시스템 등에서 성능 저하의 주원인으로 꼽히는 CPU와 GPU 간의 데이터 전송을 제거할 수 있습니다 [1]. 특히 매 프레임마다 업데이트되는 파티클 데이터에 적용하여, 비용이 많이 드는 WebGPU 버퍼 쓰기 작업을 최소화하는 데 핵심적인 역할을 합니다 [2]. + +## 📖 구조화된 지식 (Synthesized Content) +- **GPU 영구 버퍼의 생성:** `instancedArray`는 프레임이 넘어가더라도 데이터가 유지되는 영구적인 GPU 버퍼를 만듭니다 [1]. +- **CPU-GPU 데이터 전송 병목 해소:** 전통적인 파티클 시스템에서는 상태 변화를 매 프레임 CPU에서 계산하여 GPU로 넘겨주어야 했으며, 이는 심각한 성능 저하를 일으킵니다. `instancedArray`는 이러한 반복적인 데이터 전송(CPU-GPU data transfer) 과정을 완전히 제거하여 성능을 대폭 향상시킵니다 [1]. +- **WebGPU 버퍼 업데이트 최소화:** WebGPU 환경에서는 버퍼 쓰기(buffer writes) 비용이 매우 높습니다. 따라서 프레임마다 다수의 작은 버퍼를 지속적으로 업데이트하는 대신, 매 프레임 변경이 필요한 파티클 데이터 관리에 `instancedArray`를 사용하는 것이 권장됩니다 [2]. +- **TSL(Three Shader Language) 지원:** `instancedArray`는 Three.js의 새로운 노드 기반 셰이더 시스템인 TSL(Three Shader Language)에서 지원하는 주요 기능 중 하나로 활용됩니다 [3]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGPU]], [[TSL]], [[Particle Systems]] +- **Projects/Contexts:** [[Three.js 성능 최적화 (Utsubo의 2026 가이드)]] +- **Contradictions/Notes:** 소스 내에 이 주제와 관련하여 상충하는 주장이나 반대 의견은 존재하지 않습니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/instancedArray.md]] +--- diff --git a/Graphics & Performance/three-mesh-bvh.md b/Graphics & Performance/three-mesh-bvh.md new file mode 100644 index 00000000..03f0e467 --- /dev/null +++ b/Graphics & Performance/three-mesh-bvh.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-150C10 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - three-mesh-bvh" +--- + +# [[three-mesh-bvh]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> three-mesh-bvh는 Three.js 메시에 대한 광선 투사(Raycasting) 속도를 높이고 공간 쿼리를 가능하게 하는 BVH(Bounding Volume Hierarchy) 구현 라이브러리입니다 [1]. 초당 60프레임(60fps) 환경에서 8만 개 이상의 다각형(polygon)에 대한 빠른 광선 투사를 지원합니다 [2]. 복잡한 기하학적 구조를 가진 대화형 3D 씬(scene)의 상호작용 성능을 최적화하는 데 필수적인 도구로 활용됩니다 [2]. + +## 📖 구조화된 지식 (Synthesized Content) +- **핵심 성능 및 역할:** three-mesh-bvh는 Three.js 애플리케이션에서 광선 투사 연산을 효과적으로 가속화합니다 [1]. 수많은 폴리곤이 있는 복잡한 씬에서도 60fps를 유지하면서 정밀한 인터랙션 및 충돌 감지를 수행할 수 있도록 돕습니다 [2]. +- **InstancedMesh와의 호환성:** 이 라이브러리는 `InstancedMesh` 환경에서도 활용될 수 있습니다 [3]. 기하학적 구조(geometry)에 대한 경계 트리(bounds tree)를 생성하면, 인스턴스화된 메시에 속한 개별 지오메트리 단위로 BVH 기반 광선 투사를 수행할 수 있습니다 [3], [4]. 다만, 인스턴스화된 객체 세트(set of instanced objects) 전체를 대상으로 기본 작동하는 것은 아닙니다 [3]. +- **API 변경 사항:** 라이브러리의 버전이 업데이트됨에 따라 기존에 사용되던 시각화 도구인 `MeshBVHVisualizer`는 더 이상 사용되지 않습니다(deprecated) [4]. 따라서 최신 버전에서는 `MeshBVHHelper` 문서를 참조하여 사용해야 합니다 [4]. +- **생태계 내 영향력:** Three.js 기반 애플리케이션의 성능 병목을 해결하고 디버깅을 돕는 주요 도구 중 하나로 평가받고 있습니다 [5]. 또한, 널리 쓰이는 외부 확장 라이브러리인 InstancedMesh2가 자체적인 BVH 기반 빠른 광선 투사 기능을 구현하는 데 핵심적인 영감을 제공하기도 했습니다 [6]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Raycasting]], [[InstancedMesh]], [[Bounding Volume Hierarchy (BVH)]] +- **Projects/Contexts:** [[Three.js Performance Optimization]], [[InstancedMesh2]] +- **Contradictions/Notes:** 소스에 따르면 구버전에서 사용되던 시각화 클래스인 `MeshBVHVisualizer`는 현재 지원이 중단(deprecated)되었으므로, 사용자는 `MeshBVHHelper`로 교체하여 사용해야 합니다 [4]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/three-mesh-bvh.md]] +--- diff --git a/Graphics & Performance/threejs Issue _30352.md b/Graphics & Performance/threejs Issue _30352.md new file mode 100644 index 00000000..d1c6088e --- /dev/null +++ b/Graphics & Performance/threejs Issue _30352.md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-AE68EC +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - threejs Issue _30352" +--- + +# [[threejs Issue _30352]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> three.js Issue #30352는 공유 속성을 가진 여러 개의 일반 `Mesh` 객체를 렌더링할 때보다 `InstancedMesh`를 사용할 때 성능이 오히려 크게 저하되는 현상을 보고한 이슈입니다 [1, 2]. 이 현상의 주요 원인은 `InstancedMesh`가 내부 인스턴스들을 렌더링할 때 앞뒤로 자동 정렬(Sorting)하지 않아 발생하는 막대한 오버드로우(Overdraw) 비용 때문입니다 [3, 4]. 즉, 단일 드로우 콜로 인한 CPU 연산 감소 이득보다 불필요한 픽셀 처리 부하가 더 커지면서 씬이 프래그먼트 바운드(Fragment-bound) 상태에 빠지는 구조적 한계를 보여주는 사례입니다 [5]. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[InstancedMesh]], [[Overdraw]], [[BatchedMesh]], [[Fragment-bound]] +- **Projects/Contexts:** [[three.js]] +- **Contradictions/Notes:** 이론적으로 `InstancedMesh`는 드로우 콜 횟수를 1회로 줄여주어 렌더링 성능을 향상시켜야 하지만, 이슈 #30352의 사례에서는 개별 정렬 부재로 인한 오버드로우 비용 때문에 오히려 개별 드로우 콜(5,000회)을 수행하는 일반 `Mesh` 방식보다 성능이 떨어지는 모순적인 결과를 보여줍니다 [1, 2, 5]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/three.js Issue _30352.md]] +--- diff --git a/Graphics & Performance/가상현실(VR).md b/Graphics & Performance/가상현실(VR).md new file mode 100644 index 00000000..72d10585 --- /dev/null +++ b/Graphics & Performance/가상현실(VR).md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-13DD7A +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 가상현실(VR)" +--- + +# [[가상현실(VR)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 가상현실(VR)은 헤드마운트 디스플레이(HMD)와 신체 추적 기술 등을 통해 사용자가 가상 세계에 실제로 존재하는 것처럼 느끼게 하는 컴퓨터 생성 3D 환경입니다 [1-3]. 이 기술은 교육, 의료, 게임, 군사 훈련 등 다양한 분야에서 몰입형 상호작용과 시뮬레이션을 제공하는 데 활용됩니다 [3, 4]. 하지만 감각 정보의 불일치로 인한 VR 멀미(VR Sickness)와 복잡한 인터페이스로 인한 높은 인지 부하(Cognitive Load) 등의 부작용이 사용자 경험을 저해하는 주요 과제로 남아 있습니다 [5-7]. + +## 📖 구조화된 지식 (Synthesized Content) +- **가상현실의 정의 및 현존감(Presence):** VR은 사실적인 3D 환경, 360도 공간, 그리고 신체 추적 기술을 결합하여 사용자가 물리적 현실이 아닌 가상 세계에 있다는 심리적 상태인 '현존감'을 유도합니다 [1, 2]. 이를 통해 기존 평면 미디어로는 불가능했던 깊은 수준의 디지털 상호작용을 가능하게 합니다 [4]. +- **교육 및 정서적 활용 효과:** 교육 환경에서 VR은 가상 교실, 실험실, 역할극 등을 제공하여 추상적인 개념의 이해를 돕고 학습 참여도를 높입니다 [3]. 또한 긍정적인 감정을 유발하여 불안과 스트레스를 감소시키며, 학습자의 심리적 회복탄력성(Resilience)과 몰입(Flow) 상태를 강화하는 데 효과적인 도구로 활용됩니다 [8-10]. 신체 활동을 동반하는 엑서게임(Exergame) 환경에서는 VR이 육체적 피로에 대한 주의를 분산시키고 지속적인 운동 동기를 부여합니다 [2]. +- **인지 부하(Cognitive Load)와 충실도 패러독스(Fidelity Paradox):** VR 환경에서의 상호작용은 시각, 청각, 촉각 등 다량의 감각 정보를 동시에 처리해야 하므로 사용자의 작업 기억에 높은 인지 부하를 발생시킬 수 있습니다 [11, 12]. 특히, 현실감을 극대화하기 위해 설계된 고충실도 햅틱 장갑(Haptic Glove)과 같은 인터페이스는 기기의 무게, 트래킹 오류, 물리적 저항 등으로 인해 오히려 기기 조작에 주의를 빼앗기게 만들어 인지적 마찰을 증가시키고 사용성을 떨어뜨리는 '충실도 패러독스(Fidelity Paradox)'를 유발합니다 [13-15]. +- **VR 멀미(VR Sickness) 및 감각적 충돌:** HMD를 사용하는 많은 VR 사용자는 메스꺼움, 방향 감각 상실, 시각적 피로 등의 멀미 증상을 겪습니다 [6]. 이는 사용자가 보는 시각적 움직임과 신체의 전정 감각 간의 불일치, 그리고 디스플레이 내에서의 폭주-조절 불일치(Vergence-accommodation conflict)에 의해 발생합니다 [7]. 노출 시간이 길어질수록 멀미 증상이 심해지는 경향이 있으며, VR 사용을 종료한 후에도 증상이 사라지기까지 일정 시간의 회복기가 필요합니다 [16-18]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[현존감(Presence)]], [[인지 부하(Cognitive Load)]], [[VR 멀미(VR Sickness)]], [[몰입(Flow State)]] +- **Projects/Contexts:** [[교육용 몰입형 시뮬레이션(Educational Immersive Simulations)]], [[기능성 게임(Serious Games)]], [[엑서게임(Exergaming)]] +- **Contradictions/Notes:** 일반적으로 가상현실 인터페이스가 실제 현실의 감각(Fidelity)을 완벽하게 재현할수록 사용자 몰입과 성과가 향상될 것이라 가정하지만, 연구 결과에 따르면 장비의 기술적 복잡성과 물리적 제약이 오히려 사용자의 주의를 분산시켜 인지적 과부하를 초래하는 '충실도 패러독스(Fidelity Paradox)'가 존재함이 확인되었습니다 [13, 14, 19, 20]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/가상현실(VR).md]] +--- diff --git a/Graphics & Performance/고성능 3D WebGL 게임 렌더링 엔진.md b/Graphics & Performance/고성능 3D WebGL 게임 렌더링 엔진.md new file mode 100644 index 00000000..fd85a31e --- /dev/null +++ b/Graphics & Performance/고성능 3D WebGL 게임 렌더링 엔진.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-BD05D2 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 고성능 3D WebGL 게임 렌더링 엔진" +--- + +# [[고성능 3D WebGL 게임 렌더링 엔진]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/고성능 3D WebGL 게임 렌더링 엔진.md]] +--- diff --git a/Graphics & Performance/고성능 멀티스레드 React 앱 아키텍처.md b/Graphics & Performance/고성능 멀티스레드 React 앱 아키텍처.md new file mode 100644 index 00000000..cf926c8d --- /dev/null +++ b/Graphics & Performance/고성능 멀티스레드 React 앱 아키텍처.md @@ -0,0 +1,42 @@ +--- +id: P-REINFORCE-AUTO-87DB97 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 고성능 멀티스레드 React 앱 아키텍처" +--- + +# [[고성능 멀티스레드 React 앱 아키텍처]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 자바스크립트의 단일 스레드(Single-thread) 제약을 극복하기 위해 웹 워커(Web Worker)와 OffscreenCanvas를 활용하여 무거운 CPU 연산이나 3D 그래픽 렌더링을 백그라운드로 분리하고, 메인 스레드와 고효율로 상태를 동기화하여 초당 60프레임(FPS)의 매끄러운 반응성을 보장하는 진보된 애플리케이션 설계 패턴입니다. + +## 📖 구조화된 지식 (Synthesized Content) +**1. 멀티스레딩의 필요성과 Web Worker 분리** 자바스크립트는 기본적으로 단일 스레드 환경이므로 대규모 데이터 정렬, 이미지/비디오 처리, 물리 연산 등 무거운 작업을 수행하면 메인 스레드가 블로킹되어 UI가 멈추는 현상(Freezing)이 발생합니다. 이를 방지하기 위해 무거운 연산을 웹 워커(Web Worker)로 오프로딩(Offloading)하면, UI 상호작용은 메인 스레드에서 방해 없이 60FPS로 처리하고 연산은 백그라운드 스레드에서 병렬로 진행할 수 있습니다. React 앱에서는 `@koale/useworker`와 같은 훅 기반 라이브러리를 통해 워커 설정을 단순화하여 활용할 수 있습니다. + +**2. OffscreenCanvas와 WebGL/R3F 렌더링 분리** 복잡한 3D 씬을 다루는 WebGL 애플리케이션의 경우 렌더링 자체가 메인 스레드를 크게 소모합니다. `@react-three/offscreen` 라이브러리나 네이티브 API를 사용하면 캔버스의 제어권을 `OffscreenCanvas`로 넘겨 웹 워커 환경에서 React Three Fiber(R3F) 혹은 Three.js를 실행할 수 있습니다. 이 구조에서는 렌더링과 DOM 조작이 물리적으로 분리되어 서로의 성능에 영향을 주지 않습니다. + +**3. 대리 인터랙션(Event Forwarding) 시스템** 웹 워커 내부에는 DOM이나 `window` 객체가 존재하지 않으므로 사용자의 마우스 클릭, 터치 등의 이벤트를 직접 수신할 수 없습니다. 따라서 메인 스레드에서 이벤트를 캡처한 뒤, 포인터 좌표 등의 필수 데이터만 워커로 전달(postMessage)하여 워커 내부에서 상호작용을 처리하도록 하는 이벤트 포워딩 파이프라인 구축이 필수적입니다. + +**4. 고효율 상태 동기화 (State Synchronization)** 메인 스레드(React DOM UI)와 워커(WebGL 씬 또는 연산 로직) 양쪽에서 동일한 앱 상태를 읽고 써야 하는 경우, 스레드 간 상태 동기화가 가장 큰 과제가 됩니다. + +- **프록시 및 델타 동기화:** Valtio와 같은 프록시 기반 상태 관리 도구를 사용하여 로컬 저장소를 구축한 뒤, 상태가 변할 때마다 변경된 작업 내용(Operations/Delta)만 Broadcast Channel API를 통해 상대 스레드에 전달하여 동기화합니다. +- **SharedArrayBuffer:** 엔티티 컴포넌트 시스템(ECS) 기반의 게임이나 지연 시간이 극도로 낮아야 하는 환경에서는 스레드 간 메모리를 직접 공유하는 `SharedArrayBuffer`를 사용하여 직렬화(Serialization)/복사 비용 없이 원자적(Atomic) 연산을 수행합니다. + +**5. 서드파티 스크립트 오프로딩 (Partytown)** 애널리틱스, 광고, 챗봇 등 외부 서드파티 스크립트는 통제할 수 없는 메인 스레드 블로킹의 주요 원인입니다. `Partytown`과 같은 도구를 도입하면 이러한 서드파티 스크립트의 실행을 웹 워커로 옮겨 메인 스레드 부하를 원천적으로 차단할 수 있습니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Web Worker (웹 워커)]], [[OffscreenCanvas]], [[SharedArrayBuffer]], [[Valtio (Proxy State 관리)]], [[Event Forwarding (이벤트 포워딩)]] +- **Projects/Contexts:** [[대규모 데이터 분석 및 시각화 대시보드]], [[고성능 실시간 WebGL 게임 엔진]], [[서드파티 스크립트가 많은 엔터프라이즈 앱 성능 개선]] +- **Contradictions/Notes:** 멀티스레딩이 무조건적인 성능 향상을 가져오지는 않습니다. 스레드 간에 메시지를 주고받는 과정(Message passing)에는 직렬화로 인한 오버헤드(약 5~10ms)가 수반됩니다. 연산 시간이 50ms 미만인 비교적 가벼운 작업을 워커로 분리하면 오히려 통신 비용이 연산 시간보다 커져 성능이 하락할 수 있으므로 철저한 프로파일링을 기반으로 병목 구간에만 선택적으로 적용해야 합니다. + +--- + +_Last updated: 2026-04-15_ +- Raw Source: [[00_Raw/2026-04-20/고성능 멀티스레드 React 앱 아키텍처.md]] +--- diff --git a/Graphics & Performance/교육 심리학 및 교수법 설계.md b/Graphics & Performance/교육 심리학 및 교수법 설계.md new file mode 100644 index 00000000..724f12b2 --- /dev/null +++ b/Graphics & Performance/교육 심리학 및 교수법 설계.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5D01FE +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 교육 심리학 및 교수법 설계" +--- + +# [[교육 심리학 및 교수법 설계]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/교육 심리학 및 교수법 설계.md]] +--- diff --git a/Graphics & Performance/기업 문화 진단 및 개선.md b/Graphics & Performance/기업 문화 진단 및 개선.md new file mode 100644 index 00000000..eb764fd7 --- /dev/null +++ b/Graphics & Performance/기업 문화 진단 및 개선.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-7FF20D +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 기업 문화 진단 및 개선" +--- + +# [[기업 문화 진단 및 개선]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/기업 문화 진단 및 개선.md]] +--- diff --git a/Graphics & Performance/대규모 3D 건축 모델(BIM) 시각화.md b/Graphics & Performance/대규모 3D 건축 모델(BIM) 시각화.md new file mode 100644 index 00000000..d88b07f7 --- /dev/null +++ b/Graphics & Performance/대규모 3D 건축 모델(BIM) 시각화.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-750154 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 대규모 3D 건축 모델(BIM) 시각화" +--- + +# [[대규모 3D 건축 모델(BIM) 시각화]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 대규모 3D 건축 모델(BIM) 시각화는 수십만에서 수백만 개의 개별 컴포넌트로 구성된 복잡한 건축 및 산업 환경을 웹 브라우저 등에서 실시간으로 렌더링하는 기술을 의미합니다 [1-3]. 이를 원활하게 처리하기 위해서는 드로우 콜(Draw Call) 병목 현상과 메모리 한계를 극복해야 하며, 객체의 고유성 여부에 따라 형상 병합(Batching)과 인스턴싱(Instancing)을 혼합하는 하이브리드 최적화 및 WebGPU의 컴퓨트 셰이더와 같은 최신 그래픽 API 기술이 필수적으로 요구됩니다 [4-7]. + +## 📖 구조화된 지식 (Synthesized Content) +- **드로우 콜 병목과 기하학적 데이터의 한계:** BIM 및 CAD 모델은 벽, 바닥, 배관, 창문 등 수많은 개별 부품으로 구성되며, 이를 개별 메쉬(Mesh)로 렌더링할 경우 막대한 드로우 콜 오버헤드가 발생하여 CPU가 GPU의 처리 속도를 따라가지 못하는 병목 현상이 발생합니다 [2, 8, 9]. 또한, CAD 데이터는 매우 큰 좌표계를 사용하는 경우가 많아 32비트 부동소수점 환경에서 렌더링 시 정점 스내핑(Vertex snapping)이나 떨림(Jitter) 현상이 발생할 수 있으므로, GPU 업로드 전 기하학적 경계 상자의 중심을 기준으로 좌표계를 재조정(Origin-shifting)하는 정밀도 관리가 필요합니다 [10, 11]. +- **BatchedMesh와 InstancedMesh를 활용한 최적화:** 방대한 환경을 시각화할 때는 객체의 특성에 맞춰 렌더링을 최적화해야 합니다. 문이나 가구, 패스너(Fastener)처럼 동일한 형상과 재질이 반복되는 고폴리곤 객체에는 `InstancedMesh`를 사용하여 드로우 콜과 메모리 사용량을 최소화하는 것이 적합합니다 [1, 4, 6]. 반면, 콘크리트 벽이나 배관처럼 동일한 재질을 공유하지만 기하학적 형태가 모두 다른 고유 객체들의 경우 `InstancedMesh` 적용이 불가능하므로, 여러 지오메트리를 하나의 드로우 콜로 묶으면서도 개별 객체의 가시성과 변환을 제어할 수 있는 `BatchedMesh`나 `BufferGeometry` 병합 방식이 효과적입니다 [4, 6-8]. IFC.js의 'Fragment' 아키텍처는 이러한 두 방식을 혼합하여 저폴리곤 고유 객체는 병합하고 고폴리곤 반복 객체는 인스턴싱하는 하이브리드 접근법을 사용합니다 [4, 12, 13]. +- **WebGPU 및 컴퓨트 셰이더(Compute Shader)의 도입:** 차세대 그래픽 API인 WebGPU는 대규모 BIM 데이터세트를 다루는 데 있어 획기적인 성능 향상을 제공합니다 [5, 14]. 컴퓨트 셰이더를 활용하면 충돌 감지, 실시간 필터링, 물리 시뮬레이션 등 CPU에서 병목을 일으키는 무거운 작업들을 수천 개의 GPU 코어에서 병렬로 처리할 수 있습니다 [5, 14, 15]. 또한, 네이티브 WebGPU의 렌더 번들(`GPURenderBundles`) 및 간접 그리기(`drawIndexedIndirect`) 기능을 통해 수십만 개의 객체를 효율적으로 렌더링하여 CPU-GPU 동기화 지연을 제거할 수 있습니다 [16, 17]. +- **가시성 판별 및 메모리 관리:** 방대한 환경에서는 화면에 보이지 않는 객체를 렌더링에서 제외하기 위해 CPU 단에서 BVH(Bounding Volume Hierarchy)나 옥트리(Octree)와 같은 공간 분할 자료구조를 적용하여 절두체 컬링(Frustum Culling)을 수행해야 합니다 [18, 19]. 더불어, Z-버퍼만을 먼저 계산하여 가려진 파편(Fragment) 연산을 사전에 폐기하는 뎁스 프리패스(Depth Pre-Pass) 기법은 오버드로우를 줄이는 데 유효합니다 [11, 20]. 메모리 관리 측면에서는 웹 워커(Web Worker)와 `SharedArrayBuffer`를 사용하여 메인 스레드 차단 및 메모리의 중복 복사 없이 기하학적 데이터를 디코딩해야 하며, 씬에 변경 사항이 있을 때만 렌더링을 갱신하는 'Render-on-Demand' 방식을 통해 통합 GPU의 과부하 및 발열을 방지해야 합니다 [11, 21, 22]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[InstancedMesh]], [[BatchedMesh]], [[WebGPU]], [[Compute Shader]], [[Draw Call]], [[Occlusion Culling]], [[Level of Detail (LOD)]] +- **Projects/Contexts:** [[IFC.js (Fragment)]], [[Revit glTF Export]] +- **Contradictions/Notes:** 성능 최적화 기법으로 흔히 권장되는 `THREE.LOD` (Level of Detail)는 방대하고 동적으로 생성/변경되는 산업용 플랜트나 BIM 씬에서는 적합하지 않을 수 있습니다. 모든 LOD 단계의 메쉬를 GPU 메모리에 유지해야 하고, 런타임에 동적으로 지오메트리 단순화 버전을 생성하는 오버헤드가 커서 오히려 성능을 저하시킬 수 있기 때문입니다. 이러한 환경에서는 드로우 콜을 줄이는 배칭(Batching)이나 인스턴싱이 우선적으로 고려되어야 합니다 [3, 23-26]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/대규모 3D 건축 모델(BIM) 시각화.md]] +--- diff --git a/Graphics & Performance/대규모 건설 뷰어(Construction Viewers).md b/Graphics & Performance/대규모 건설 뷰어(Construction Viewers).md new file mode 100644 index 00000000..12441a2d --- /dev/null +++ b/Graphics & Performance/대규모 건설 뷰어(Construction Viewers).md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-9E35B0 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 대규모 건설 뷰어(Construction Viewers)" +--- + +# [[대규모 건설 뷰어(Construction Viewers)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 대규모 건설 뷰어(Construction Viewers)는 수천에서 수백만 개의 객체로 구성된 거대한 BIM(Building Information Modeling) 및 CAD 데이터를 웹 브라우저 환경 등에서 실시간으로 렌더링하고 시각화하는 플랫폼이다 [1-3]. 복잡한 기하학적 구조, 고유한 형태의 벽체나 배관, 반복되는 가구 등을 효율적으로 처리하고 사용자와의 상호작용을 지원하기 위해 Three.js, WebGPU, 그리고 다양한 렌더링 최적화 기법이 필수적으로 요구된다 [4-6]. + +## 📖 구조화된 지식 (Synthesized Content) +- **렌더링 방식 및 최적화 전략:** 대규모 건설 뷰어에서는 성능 병목인 드로우 콜(Draw call)을 줄이는 것이 핵심이다 [1]. 콘크리트 벽이나 바닥처럼 폴리곤 수가 적지만 형태가 고유한 객체는 기하학적 구조를 하나로 병합(Geometry Merging)하거나 `BatchedMesh`를 사용하여 렌더링한다 [4, 7]. 반면, 문, 창문, 가구 등 폴리곤 수가 많고 반복되는 객체는 메모리 소비를 최소화하기 위해 `InstancedMesh`를 활용한다 [7, 8]. IFC.js 프로젝트 등에서는 이러한 특성을 혼합하여 저폴리곤 고유 객체는 병합하고 고폴리곤 반복 객체는 인스턴싱하는 하이브리드(Fragment) 시스템을 설계하여 활용하기도 한다 [7, 9]. +- **Three.js와 WebGPU의 역할:** 2026년 기준, 500MB 이하의 일반적인 BIM 뷰어나 구성기(Configurator) 모델은 Three.js의 `WebGPURenderer` 등을 통해 빠르고 효율적으로 개발할 수 있다 [10, 11]. 그러나 병원 캠퍼스나 공항 터미널과 같이 500MB를 초과하는 거대한 건설 모델, 수백만 개의 LiDAR 포인트 클라우드, 또는 실시간 구조 시뮬레이션을 다루는 플랫폼의 경우, 메모리를 직접 제어할 수 있는 Native WebGPU의 도입이 필수적이다 [10, 12, 13]. WebGPU의 컴퓨트 셰이더(Compute Shader)는 충돌 감지, 현장 분석, 구조 시뮬레이션 등의 무거운 데이터 처리를 병렬로 수행하여 압도적인 성능 향상을 제공한다 [14, 15]. +- **상호작용 및 가시성 관리:** 건설 뷰어는 사용자가 개별 객체(벽, 배관 등)를 클릭하여 선택(Picking)하고 가시성, 색상, 치수 등을 동적으로 수정할 수 있어야 한다 [4, 6, 16]. 이를 위해 모델 로드 시 Vertex 속성(예: `_FEATURE_ID_0`)을 부여해 배치를 구분하거나 [17], 공간 분할(Spatial Indexing), 오클루전 컬링(Occlusion Culling), 룸-포털(Cell-portal) 기반의 가시성 제어 기법을 적용하여 거대한 씬의 상호작용 속도를 유지한다 [18, 19]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[BIM(Building Information Modeling)]], [[WebGPU]], [[BatchedMesh]], [[InstancedMesh]] +- **Projects/Contexts:** [[IFC.js]], [[Revit]], [[Segments.ai]] +- **Contradictions/Notes:** 동일한 재질의 객체를 묶어 가시성을 개별 관리하기 위해 `BatchedMesh`가 유용하게 쓰일 수 있지만, 수백만 개의 삼각형과 수십만 개의 고유 형상이 포함된 복잡한 Revit 추출 모델 등에서는 `BatchedMesh`를 사용했을 때 CPU 사용량이 급증하고 프레임률(FPS)이 오히려 크게 하락하는 심각한 성능 병목 현상이 보고되기도 한다 [20-23]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/대규모 건설 뷰어(Construction Viewers).md]] +--- diff --git a/Graphics & Performance/대규모 건축물 및 지형 뷰어(BIM).md b/Graphics & Performance/대규모 건축물 및 지형 뷰어(BIM).md new file mode 100644 index 00000000..d29aa004 --- /dev/null +++ b/Graphics & Performance/대규모 건축물 및 지형 뷰어(BIM).md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-73ED53 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 대규모 건축물 및 지형 뷰어(BIM)" +--- + +# [[대규모 건축물 및 지형 뷰어(BIM)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 대규모 건축물 및 지형 뷰어(BIM)는 병원 캠퍼스, 공항 터미널, 도시 규모의 디지털 트윈 등 500MB를 초과하는 방대한 규모의 3D 모델을 실시간으로 시각화하는 시스템이다 [1, 2]. 이러한 모델은 보, 기둥, HVAC 시스템과 같이 수십만 개의 개별 구성 요소로 이루어져 있어 막대한 렌더링 부하를 유발한다 [3]. 이를 원활하게 렌더링하고 시각적 상호작용을 지원하기 위해서는 WebGPU, BatchedMesh, 공간 분할 알고리즘 등 드로우 콜(Draw Call)을 최소화하고 메모리를 관리하는 고도의 최적화 기술이 필수적으로 요구된다 [3-5]. + +## 📖 구조화된 지식 (Synthesized Content) +- **BIM 모델의 렌더링 병목 현상:** BIM 및 CAD 데이터 모델은 벽, 바닥, 파이프 등 수많은 고유 부품과 객체로 구성되어 있어 이를 개별적으로 렌더링할 경우 드로우 콜 오버헤드로 인해 심각한 CPU 및 GPU 병목이 발생한다 [3, 6, 7]. 특히 콘크리트 벽체처럼 동일한 재질을 공유하되 각기 다른 기하학적 형태를 지닌 객체들은 단일 기하학적 구조만 지원하는 `InstancedMesh`를 그대로 적용하기 어렵다는 구조적 한계가 있다 [4, 8]. +- **BatchedMesh와 InstancedMesh의 하이브리드 활용:** 고유한 형태를 가진 저폴리곤 객체(벽, 바닥 등)는 `BatchedMesh`나 기하학 병합(Geometry Merging)을 통해 드로우 콜을 줄이고, 반복되는 고폴리곤 객체(문, 가구, 창문 등)는 `InstancedMesh`로 처리하는 하이브리드 최적화(예: Fragment 시스템) 방식이 대안으로 사용된다 [4, 9, 10]. `BatchedMesh`는 단일 드로우 콜로 여러 다른 기하학적 구조를 렌더링하면서도 개별 객체의 가시성과 색상을 독립적으로 제어할 수 있어 BIM 시각화 요구사항에 부합한다 [4, 11]. +- **WebGPU 및 컴퓨트 셰이더 도입:** 500MB 이상의 거대한 건축 모델이나 실시간 구조 시뮬레이션을 다룰 때는 자바스크립트의 단일 스레드 한계를 극복할 수 있는 Native WebGPU의 도입이 권장된다 [12-14]. 컴퓨트 셰이더(Compute Shader)를 활용하면 대규모 BIM 데이터셋의 실시간 필터링이나 충돌 감지 연산을 수천 개의 GPU 코어에서 병렬로 처리할 수 있어, 기존 CPU 처리 방식 대비 압도적인 성능 향상을 달성할 수 있다 [15, 16]. +- **가시성 판별(Culling) 및 메모리 최적화:** 뷰어의 성능을 안정적으로 유지하기 위해 화면에 보이지 않는 객체를 렌더링 파이프라인에서 제외하는 최적화가 필수적이다. CPU 기반의 공간 분할(Octree/BVH) 기술이나, GPU 컴퓨트 셰이더를 활용해 시야 포함 여부와 가림 현상(Occlusion)을 판별하는 GPU 주도 렌더링(GPU-driven Rendering) 기법이 적용된다 [5, 17, 18]. 더불어, 메모리 대역폭 한계와 크래시 현상을 극복하기 위해 텍스처 아틀라스를 사용하거나 Web Worker와 `SharedArrayBuffer`를 연계한 제로 카피(Zero-copy) 데이터 디코딩 구조가 활용된다 [19, 20]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGPU]], [[BatchedMesh]], [[InstancedMesh]], [[Compute Shader]], [[Draw Call]], [[Frustum Culling]] +- **Projects/Contexts:** [[Three.js]], [[IFC.js]], [[Cesium]] +- **Contradictions/Notes:** 소스에 따르면 `BatchedMesh`는 BIM 모델처럼 다양한 기하학적 객체를 통합하는 데 필수적이라고 평가받지만 [4], 1,000만 개 이상의 정점과 다수의 고유 기하학을 포함하는 환경에서 정렬(Sort) 및 개별 절두체 컬링(perObjectFrustumCulled) 기능을 활성화할 경우, 도리어 단순 병합 메쉬(Merged Mesh)보다 30~50% 더 심각한 CPU 성능 저하를 일으킬 수 있다는 실증적 한계가 보고되고 있습니다 [21-26]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/대규모 건축물 및 지형 뷰어(BIM).md]] +--- diff --git a/Graphics & Performance/대규모 파티클 시스템 최적화.md b/Graphics & Performance/대규모 파티클 시스템 최적화.md new file mode 100644 index 00000000..cd91254c --- /dev/null +++ b/Graphics & Performance/대규모 파티클 시스템 최적화.md @@ -0,0 +1,39 @@ +--- +id: P-REINFORCE-AUTO-A0A931 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 대규모 파티클 시스템 최적화" +--- + +# [[대규모 파티클 시스템 최적화]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 대규모 파티클 시스템을 최적화하려면 CPU 연산 병목과 메모리 할당으로 인한 가비지 컬렉션(GC) 스파이크를 방지하는 것이 핵심입니다. 이를 위해 **WebGPU 연산 셰이더(Compute Shaders)**, **InstancedMesh**, **오브젝트 풀링(Object Pooling)**, 그리고 **데이터 지향 설계(ECS/SoA)**를 종합적으로 활용해야 합니다. + +## 📖 구조화된 지식 (Synthesized Content) +**1. WebGPU 연산 셰이더(Compute Shaders) 및 GPU 영구 버퍼 도입** 전통적인 CPU 기반의 파티클 업데이트 방식은 일반적인 하드웨어 환경에서 파티클이 약 50,000개에 도달하면 심각한 성능 병목 현상을 일으킵니다. 처리량을 수백만 개 수준으로 끌어올리려면 연산 작업을 WebGPU의 연산 셰이더로 이전해야 합니다. 이때 `instancedArray`를 사용하여 프레임 간에 유지되는 GPU 영구 버퍼(Persistent GPU buffers)를 생성하면, 파티클 시스템의 성능을 저하시키는 주된 원인인 CPU-GPU 간의 데이터 전송 오버헤드를 원천적으로 제거할 수 있습니다. + +**2. 버퍼 업데이트의 일괄 처리 (Batching)** CPU 측에서 부득이하게 파티클 버퍼를 업데이트해야 할 경우, 수많은 작은 버퍼를 개별적으로 업데이트하는 것은 매우 높은 처리 비용을 유발합니다. 따라서 파티클 데이터를 크기가 큰 하나의 `Float32Array`에 모은 뒤, 단 한 번의 일괄 업데이트(Single batched update)로 처리하여 프레임당 버퍼 쓰기 횟수를 최소화해야 합니다. + +**3. InstancedMesh를 통한 드로우 콜(Draw Call) 최적화** 수만 개의 파티클을 개별적인 Three.js 메시(Mesh)로 렌더링하면 엄청난 수의 드로우 콜이 발생하여 프레임 레이트가 급락합니다. 시각적 렌더링 성능을 극대화하려면 **동일한 기하구조와 재질을 공유하는 `InstancedMesh`**를 사용해야 합니다. 이를 활용하면 수천, 수만 개의 파티클 인스턴스를 단 1회의 드로우 콜만으로 GPU에서 복제하여 렌더링할 수 있습니다. + +**4. 오브젝트 풀링(Object Pooling)을 통한 GC 스파이크 방지** 파티클처럼 아주 짧은 시간 동안 생성되고 사라지는 객체를 매번 새로 생성(`new Object()`)하고 삭제하면, 힙 메모리가 급격히 파편화되며 가비지 컬렉터(GC)에 엄청난 부하를 줍니다. 이는 화면이 뚝뚝 끊기는 'Stop-the-world' 프리징 현상의 주범입니다. 이를 해결하려면 **미리 고정된 크기의 오브젝트 풀(Fixed Pool)을 생성해 두고, 파티클을 새로 할당하는 대신 풀 안의 비활성 파티클 상태를 갱신하여 재사용**해야 런타임 메모리 할당 오버헤드를 피할 수 있습니다. + +**5. ECS 기반의 데이터 지향 설계 (Structure of Arrays, SoA)** 자바스크립트 스레드에서 대규모 파티클 상태를 시뮬레이션해야 한다면, 객체 지향 방식 대신 이전 대화에서 다룬 `bitECS`와 같은 데이터 지향 설계(ECS) 라이브러리를 적극 활용하는 것이 좋습니다. 파티클 속성 데이터를 무거운 JS 객체가 아닌 **연속된 메모리 블록(`TypedArray`) 기반의 SoA 구조로 저장**하면, CPU 캐시 적중률이 극대화되어 수천 개의 파티클 엔티티를 1ms 이내의 짧은 시간 안에 초고속으로 일괄 연산할 수 있습니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGPU Compute Shaders]], [[InstancedMesh (드로우 콜 최적화)]], [[Object Pooling (오브젝트 풀링)]], [[Garbage Collection (GC) 최적화]], [[Data-Oriented Design (bitECS)]] +- **Projects/Contexts:** [[초대규모 파티클 및 엔티티 시뮬레이션 (React Three Fiber)]], [[고성능 실시간 상호작용 웹 게임 아키텍처]] +- **Contradictions/Notes:** 연산 셰이더와 영구 GPU 버퍼를 사용해 수백만 개의 파티클을 제어하는 방식이 압도적으로 빠르지만, 이는 WebGPU 환경에서만 온전히 동작하며 WebGL 환경으로 폴백(Fallback)될 경우 이 수준의 동시성을 기대하기 어렵다는 제약이 있습니다. + +--- + +_Last updated: 2026-04-14_ +- Raw Source: [[00_Raw/2026-04-20/대규모 파티클 시스템 최적화.md]] +--- diff --git a/Graphics & Performance/마이크로 프론트엔드.md b/Graphics & Performance/마이크로 프론트엔드.md new file mode 100644 index 00000000..f54332c3 --- /dev/null +++ b/Graphics & Performance/마이크로 프론트엔드.md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-E74AFF +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 마이크로 프론트엔드" +--- + +# [[마이크로 프론트엔드]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 마이크로 프론트엔드는 거대하고 복잡한 프론트엔드 애플리케이션을 백엔드의 마이크로서비스처럼 작고 독립적인 여러 조각으로 나누어 개발하는 아키텍처 접근 방식입니다 [1]. 이 방식을 통해 각 비즈니스 기능별로 전담 팀이 구성되어 선호하는 기술 스택을 활용해 독립적으로 모듈을 개발, 테스트 및 배포할 수 있습니다 [1-3]. 전통적인 모놀리식 프론트엔드 구조의 한계를 극복하고 팀의 자율성, 애플리케이션의 확장성 및 유지보수성을 향상시키는 데 목적이 있습니다 [2, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +- **동작 원리 및 아키텍처 패턴:** 호스트 애플리케이션이 런타임 통합(웹 컴포넌트, iframe 등), 동적 로딩, 모듈 페더레이션, 서버 사이드 합성 등을 활용하여 개별 마이크로 프론트엔드들을 로드하고 결합합니다 [5]. 아키텍처 구현 시에는 각 모듈이 특정 라우트를 담당하는 라우트 기반 합성이나, 단일 페이지 내에 위젯처럼 임베딩되는 컴포넌트 기반 합성 등을 적용할 수 있습니다 [6]. +- **독립성과 통신 방식:** 각 팀의 코드와 스타일은 충돌하지 않도록 철저히 격리되어야 합니다 [7]. 모듈 간의 통신은 독립성을 해치지 않도록 커스텀 이벤트, 공유 상태 스토어, URL 매개변수 등을 활용하는 가벼운 통신 규약(Contract)을 통해 이루어져야 하며, 전역 변수 사용은 피해야 합니다 [7-9]. +- **도입의 이점:** 대규모 웹 애플리케이션에서 기능 중심의 모듈화를 통해 팀 간의 기술적 간섭을 차단하고 개발 속도를 높일 수 있습니다 [3, 10]. 또한, 시스템 전체를 중단시키지 않고도 레거시 코드의 점진적인 업그레이드가 가능합니다 [4]. +- **도전 과제 및 한계점:** 분산된 코드베이스와 빌드 파이프라인 관리로 인해 시스템 복잡성이 크게 증가합니다 [8]. 여러 모듈과 자바스크립트 번들이 로드되면서 초기 로딩 성능에 오버헤드가 발생할 수 있으며, 공유 의존성의 버전 불일치나 CSS 스타일 누수와 같은 문제도 흔히 발생합니다 [3, 8]. +- **적용 시 주의사항:** 이 아키텍처는 데브옵스(DevOps) 기반의 자동화 파이프라인과 모니터링 체계가 필수적입니다 [9]. 프로젝트의 규모가 작거나, 기능들이 서로 강하게 결합되어 있거나, 적절한 데브옵스 지원이 없는 환경에서는 오버헤드가 커지므로 도입을 피해야 합니다 [11]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[마이크로서비스 아키텍처]], [[모놀리식 프론트엔드]], [[관심사의 분리(SoC)]], [[모듈 페더레이션(Module Federation)]], [[웹 컴포넌트(Web Components)]] +- **Projects/Contexts:** [[Spotify의 스쿼드(Squad) 모델 및 웹 플레이어]], [[Netflix의 대시보드 및 도구 현대화]], [[Zalando와 Amazon의 이커머스 모듈화]] +- **Contradictions/Notes:** 마이크로 프론트엔드는 팀 간 의존성을 줄이고 자율성과 확장성을 높여주지만, 동시에 초기 로딩 성능 저하 및 빌드/배포 파이프라인의 복잡성 증가라는 뚜렷한 트레이드오프(Trade-off)를 수반합니다 [3, 8]. 소규모 프로젝트의 경우 오히려 관리 부담이 가중될 수 있어 권장되지 않습니다 [11]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/마이크로 프론트엔드.md]] +--- diff --git a/Graphics & Performance/만성 질환 행동 수정 개입.md b/Graphics & Performance/만성 질환 행동 수정 개입.md new file mode 100644 index 00000000..b6e1c5eb --- /dev/null +++ b/Graphics & Performance/만성 질환 행동 수정 개입.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-2F0833 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 만성 질환 행동 수정 개입" +--- + +# [[만성 질환 행동 수정 개입]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/만성 질환 행동 수정 개입.md]] +--- diff --git a/Graphics & Performance/명령형 직접 조작 (Imperative Manipulation).md b/Graphics & Performance/명령형 직접 조작 (Imperative Manipulation).md new file mode 100644 index 00000000..3196719b --- /dev/null +++ b/Graphics & Performance/명령형 직접 조작 (Imperative Manipulation).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-2E3155 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 명령형 직접 조작 (Imperative Manipulation)" +--- + +# [[명령형 직접 조작 (Imperative Manipulation)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/명령형 직접 조작 (Imperative Manipulation).md]] +--- diff --git a/Graphics & Performance/모바일 기반 WebGL 애플리케이션 개발.md b/Graphics & Performance/모바일 기반 WebGL 애플리케이션 개발.md new file mode 100644 index 00000000..97afdd1f --- /dev/null +++ b/Graphics & Performance/모바일 기반 WebGL 애플리케이션 개발.md @@ -0,0 +1,47 @@ +--- +id: P-REINFORCE-AUTO-18A5BC +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 모바일 기반 WebGL 애플리케이션 개발" +--- + +# [[모바일 기반 WebGL 애플리케이션 개발]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 모바일 기반 WebGL 애플리케이션 개발은 상대적으로 부족한 시스템 메모리와 프로세서 성능을 지닌 모바일 브라우저 환경에서 매끄러운 3D 렌더링(60fps)을 구현하고 배터리 소모를 최소화하는 데 중점을 두는 기술적 접근입니다. 제한된 하드웨어 리소스를 극복하기 위해 엄격한 폴리곤 수 및 드로우 콜(Draw Call) 제한, 텍스처 메모리 압축, 셰이더 정밀도 하향, 그리고 디바이스 특성을 고려한 전원 및 컨텍스트 관리 기법이 복합적으로 동원됩니다. + +## 📖 구조화된 지식 (Synthesized Content) +* **지오메트리 및 드로우 콜 한계 관리** + * 모바일 브라우저(iOS Safari, Chrome Mobile, Firefox Mobile 등)는 씬 당 50,000에서 100,000 폴리곤을 처리하는 것이 가장 적합합니다 [1]. + * 드로우 콜이 1,000에서 2,000회를 초과할 경우 모바일 프로세서에서 병목 현상이 발생하여 심각한 성능 저하로 이어집니다 [2]. + +* **메모리 및 텍스처 최적화** + * 시스템 메모리가 2~4GB에 불과한 모바일 기기에서는 텍스처 메모리 사용량이 500MB를 초과할 때 가비지 컬렉션(GC)으로 인한 일시 정지와 심각한 프레임 끊김이 발생합니다 [3]. + * 모바일 GPU의 오버헤드를 크게 줄이려면 여러 텍스처를 하나의 아틀라스(Atlas) 텍스처로 결합하여 다중 텍스처 바인딩을 피해야 합니다 [4]. + * Basis Universal 포맷을 사용하면 텍스처를 모바일 환경에 맞는 GPU 압축 포맷(iOS의 PVRTC, 모바일의 ASTC 등)으로 로드 시점에 맞게 트랜스코딩하여 메모리 점유율을 크게 낮출 수 있습니다 [5]. + +* **셰이더 및 렌더링 파이프라인 튜닝** + * 모바일 GPU는 `mediump` 정밀도를 `highp`보다 약 2배 빠른 속도로 처리하므로, 깊이(depth) 계산이나 위치 좌표 등 꼭 필요한 경우를 제외하고는 `mediump`를 사용해야 합니다 [6]. + * 버텍스 셰이더와 프래그먼트 셰이더 간 데이터를 전달하는 varying 변수는 모바일 GPU 환경에서 3개 이하로 최소화해야 합니다 [6]. + * 퍼포먼스를 확보하기 위해 네이티브 멀티샘플링 안티앨리어싱(MSAA)을 비활성화하고, 그 대신 FXAA를 마지막 패스에 적용해야 모바일에서 60fps를 안정적으로 유지할 수 있습니다 [7]. + * 그림자 맵(Shadow map)의 크기는 모바일 기기에 맞게 512에서 1024 해상도로 설정하는 것이 적절합니다 [8]. + +* **배터리 절약 및 모바일 예외 상황 처리** + * React Three Fiber 등에서 정적인 씬을 구현할 때 `frameloop="demand"` 옵션을 설정하여 불필요한 프레임 렌더링을 멈춤으로써 모바일 기기의 배터리를 아낄 수 있습니다 [9]. + * 모바일 환경에서는 WebGL 컨텍스트가 유실(context lost)되는 현상이 발생할 수 있으므로, 해당 이벤트를 수신하여 자연스럽게 복구되도록 처리해야 합니다 [10]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[드로우 콜 최적화(Draw Call Optimization)]], [[텍스처 압축 및 아틀라스(Texture Compression & Atlas)]], [[셰이더 정밀도 최적화(Shader Precision Optimization)]], [[가비지 컬렉션 관리(Garbage Collection Management)]] +- **Projects/Contexts:** [[Three.js WebGL 렌더링]], [[모바일 환경의 메모리 병목]] +- **Contradictions/Notes:** 뼈대 텍스처의 부분 업데이트(partial texture updates)와 같은 특정 세부 렌더링 최적화 기법은 일부 모바일 기기와 Firefox 브라우저 환경에서는 오히려 속도를 느리게 만드는 부작용(역효과)이 보고되었습니다 [11, 12]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/모바일 기반 WebGL 애플리케이션 개발.md]] +--- diff --git a/Graphics & Performance/브라우저 그래픽 렌더링 백엔드.md b/Graphics & Performance/브라우저 그래픽 렌더링 백엔드.md new file mode 100644 index 00000000..455b55b5 --- /dev/null +++ b/Graphics & Performance/브라우저 그래픽 렌더링 백엔드.md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-102878 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 브라우저 그래픽 렌더링 백엔드" +--- + +# [[브라우저 그래픽 렌더링 백엔드]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 브라우저 그래픽 렌더링 백엔드는 WebGL이나 WebGPU와 같은 웹 그래픽 API의 명령을 물리적 GPU가 실행할 수 있는 명령어로 변환하고 전달하는 기반 시스템입니다 [1, 2]. Windows 환경에서는 ANGLE과 같은 브라우저 추상화 계층을 사용하여 OpenGL ES 호출을 Direct3D로 변환하는 역할을 수행합니다 [1, 3]. 최근의 WebGPU 환경에서는 Dawn과 같은 백엔드를 통해 Vulkan, Metal, Direct3D 12 등 차세대 네이티브 GPU API와 직접적으로 상호작용하여 렌더링 성능을 극대화합니다 [2, 4, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGL]], [[WebGPU]], [[ANGLE]], [[Dawn]], [[마이크로 레이턴시(Micro-latency)]] +- **Projects/Contexts:** [[Google Chrome]], [[Mozilla Firefox]] +- **Contradictions/Notes:** Windows 환경의 ANGLE 백엔드는 WebGL 호환성을 훌륭하게 제공하지만, OpenGL ES를 Direct3D로 변환하는 과정에서 본질적인 오버헤드를 동반합니다. 수천 개의 드로우 콜이 발생하는 복잡한 씬에서는 GPU가 유휴 상태임에도 불구하고 CPU 병목 현상과 마이크로 레이턴시가 누적되어 성능 저하를 일으킬 수 있습니다 [6]. 이를 우회하여 네이티브 OpenGL 구현을 테스트하기 위해 Chrome에서 `--use-gl=desktop` 플래그를 사용하기도 합니다 [3]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/브라우저 그래픽 렌더링 백엔드.md]] +--- diff --git a/Graphics & Performance/서비스 디자인 (Service Design).md b/Graphics & Performance/서비스 디자인 (Service Design).md new file mode 100644 index 00000000..c0cf9fdc --- /dev/null +++ b/Graphics & Performance/서비스 디자인 (Service Design).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-DB809B +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 서비스 디자인 (Service Design)" +--- + +# [[서비스 디자인 (Service Design)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/서비스 디자인 (Service Design).md]] +--- diff --git a/Graphics & Performance/셰이더 정밀도 (Mediump_Highp).md b/Graphics & Performance/셰이더 정밀도 (Mediump_Highp).md new file mode 100644 index 00000000..72c354cc --- /dev/null +++ b/Graphics & Performance/셰이더 정밀도 (Mediump_Highp).md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-B2C911 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 셰이더 정밀도 (Mediump_Highp)" +--- + +# [[셰이더 정밀도 (Mediump_Highp)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 셰이더 정밀도(Mediump/Highp)는 3D 그래픽스의 셰이더 연산에서 변수의 데이터 정확도를 결정하는 설정입니다. 모바일 GPU 환경에서 `mediump`(중간 정밀도)는 `highp`(고정밀도)보다 약 2배 빠른 속도로 처리됩니다 [1]. 따라서 깊이 계산이나 위치 연산과 같이 높은 정밀도가 반드시 필요한 경우에만 `highp`를 사용하고, 그 외에는 `mediump`를 사용하는 것이 모바일 성능 최적화의 핵심입니다 [1]. + +## 📖 구조화된 지식 (Synthesized Content) +* **모바일 환경에서의 성능 최적화:** 셰이더 최적화는 전문가와 초보자를 구분 짓는 중요한 요소입니다 [1]. 특히 모바일 기기에서는 셰이더의 작은 변화만으로도 2배의 성능 향상을 얻을 수 있습니다 [1]. +* **처리 속도 차이:** 모바일 GPU는 `mediump` 정밀도를 연산할 때 `highp` 정밀도에 비해 대략 2배 빠른 속도를 보여줍니다 [1]. +* **Highp의 선별적 사용:** 모든 변수에 고정밀도를 사용하는 것은 모바일 성능에 악영향을 미칩니다. `highp`는 깊이 계산(depth calculations)이나 객체의 위치(positions) 파악과 같이 고도의 정확도가 필수적으로 요구되는 작업에만 제한적으로 사용해야 합니다 [1]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[셰이더 최적화]], [[깊이 계산 (Depth Calculations)]] +- **Projects/Contexts:** [[Three.js 모바일 성능 최적화]] +- **Contradictions/Notes:** 소스에 관련 정보가 제한적이며, 주어진 자료 내에서 셰이더 정밀도에 대한 이견이나 추가적인 구체적 작동 원리에 대한 소스에 관련 정보가 부족합니다 [1]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/셰이더 정밀도 (Mediump_Highp).md]] +--- diff --git a/Graphics & Performance/스토리지 텍스처(Storage Textures).md b/Graphics & Performance/스토리지 텍스처(Storage Textures).md new file mode 100644 index 00000000..a33dcbc6 --- /dev/null +++ b/Graphics & Performance/스토리지 텍스처(Storage Textures).md @@ -0,0 +1,31 @@ +--- +id: P-REINFORCE-AUTO-F28DA7 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 스토리지 텍스처(Storage Textures)" +--- + +# [[스토리지 텍스처(Storage Textures)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 스토리지 텍스처(Storage Textures)는 일반적인 텍스처와 달리 컴퓨트 셰이더(Compute Shaders) 내에서 데이터의 읽기와 쓰기 작업이 모두 가능한 특수한 텍스처입니다 [1]. 복잡한 그래픽 처리 및 시뮬레이션을 GPU 상에서 직접 수행하기 위한 핵심적인 역할을 담당합니다 [1, 2]. + +## 📖 구조화된 지식 (Synthesized Content) +* **읽기 및 쓰기 동시 지원:** 기존의 일반 텍스처들은 셰이더 내에서 일반적으로 읽기 전용으로 작동하지만, 스토리지 텍스처는 컴퓨트 셰이더에서 양방향(읽기 및 쓰기) 접근을 허용합니다 [1]. +* **주요 활용 분야:** 이러한 읽기/쓰기 특성 덕분에 높은 컴퓨팅 연산이 필요한 그래픽 작업에 필수적입니다. 소스에서 명시된 대표적인 적용 사례로는 유체 시뮬레이션(fluid simulation), 이미지 처리(image processing), 그리고 GPU 기반 렌더링(GPU-driven rendering)이 있습니다 [1, 2]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[컴퓨트 셰이더(Compute Shaders)]], [[웹GPU(WebGPU)]] +- **Projects/Contexts:** [[유체 시뮬레이션(Fluid simulation)]], [[이미지 처리(Image processing)]], [[GPU 기반 렌더링(GPU-driven rendering)]] +- **Contradictions/Notes:** 소스에서는 스토리지 텍스처의 특징을 설명하기 위해 일반 텍스처(regular textures)와 대조하고 있으며, 일반 텍스처는 컴퓨트 셰이더에서 읽고 쓰기를 동시에 할 수 없다는 점을 강조합니다 [1]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/스토리지 텍스처(Storage Textures).md]] +--- diff --git a/Graphics & Performance/실시간 렌더링 파이프라인.md b/Graphics & Performance/실시간 렌더링 파이프라인.md new file mode 100644 index 00000000..8ebfe365 --- /dev/null +++ b/Graphics & Performance/실시간 렌더링 파이프라인.md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-8DF18B +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 실시간 렌더링 파이프라인" +--- + +# [[실시간 렌더링 파이프라인]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 실시간 렌더링 파이프라인은 CPU와 GPU 간의 통신을 통해 3D 객체를 화면에 실시간으로 그려내는 일련의 과정이다 [1]. 이 과정은 CPU가 렌더링 상태를 설정하고 명령을 전달하는 드로우 콜(Draw Call) 단계로 시작하여, GPU가 정점을 변환하고 픽셀을 계산하여 화면에 출력하는 단계로 구성된다 [1, 2]. 파이프라인의 성능은 주로 이 두 장치 간의 통신 오버헤드와 데이터 전송 효율성, 그리고 GPU의 병목 현상을 어떻게 최적화하느냐에 따라 결정된다 [1, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[드로우 콜 (Draw Call)]], [[하드웨어 인스턴싱 (Hardware Instancing)]], [[프래그먼트 셰이딩 (Fragment Shading)]], [[오버드로우 (Overdraw)]] +- **Projects/Contexts:** [[Three.js]], [[WebGPU]], [[Unity]], [[BatchedMesh]] +- **Contradictions/Notes:** 실시간 렌더링 파이프라인에서 드로우 콜을 줄이기 위해 도입하는 InstancedMesh 기법은 CPU 오버헤드는 획기적으로 낮추지만, 가시성 판단 로직(시야 절두체 컬링) 부재와 객체 자동 정렬 기능의 한계로 인해 오히려 GPU 측(프래그먼트 처리 등)에 새로운 병목과 막대한 오버드로우 비용을 유발할 수 있다는 기술적 딜레마가 존재한다 [7-9, 15]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/실시간 렌더링 파이프라인.md]] +--- diff --git a/Graphics & Performance/실시간 물리 및 유체 시뮬레이션.md b/Graphics & Performance/실시간 물리 및 유체 시뮬레이션.md new file mode 100644 index 00000000..10c84a97 --- /dev/null +++ b/Graphics & Performance/실시간 물리 및 유체 시뮬레이션.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-4173D4 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 실시간 물리 및 유체 시뮬레이션" +--- + +# [[실시간 물리 및 유체 시뮬레이션]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 실시간 물리 및 유체 시뮬레이션은 입자의 움직임과 복잡한 물리적 상호작용을 실시간으로 계산하여 시각화하는 기술입니다. 과거에는 CPU에서 관련 계산을 수행하여 처리량에 한계가 있었으나, 최근에는 WebGPU와 컴퓨트 셰이더(Compute Shaders)를 활용해 연산을 GPU로 오프로드(Offload)하는 방식이 도입되었습니다. 이를 통해 수십만에서 수백만 개에 달하는 입자 시스템과 유체 역학을 웹 브라우저 상에서 지연 없이 부드럽게 렌더링할 수 있게 되었습니다. + +## 📖 구조화된 지식 (Synthesized Content) +* **컴퓨트 셰이더를 활용한 성능 극대화:** 기존 CPU 기반의 입자 시스템 연산은 일반적인 하드웨어 환경에서 약 5만 개의 입자를 처리할 때 병목 현상에 직면합니다 [1]. 그러나 WebGPU의 컴퓨트 셰이더를 활용하면 수백만 개의 입자와 물리 시뮬레이션을 병렬로 처리할 수 있어 성능이 획기적으로 향상됩니다 [1-3]. 예를 들어, CPU에서 10,000개의 입자를 업데이트하는 데 프레임당 30ms가 소요되는 반면, WebGPU 컴퓨트 셰이더를 사용하면 100,000개의 입자를 2ms 미만으로 업데이트할 수 있어 최대 150배의 성능 향상을 이룰 수 있습니다 [4]. +* **유체 시뮬레이션과 스토리지 텍스처(Storage Textures):** 유체 시뮬레이션과 같이 실시간으로 읽기와 쓰기가 모두 필요한 복잡한 연산에는 스토리지 텍스처가 필수적으로 사용됩니다 [5, 6]. 일반 텍스처와 달리 스토리지 텍스처는 컴퓨트 셰이더 내에서 데이터를 동시에 읽고 쓸 수 있게 지원하므로, 유체 역학 시뮬레이션 및 GPU 기반 렌더링을 효율적으로 구현할 수 있도록 돕습니다 [5, 6]. +* **대규모 물리 연산의 GPU 오프로딩:** 네이티브 WebGPU 환경에서는 충돌 감지나 구조 시뮬레이션과 같이 리소스가 많이 드는 물리 연산을 수천 개의 GPU 코어에서 병렬로 실행할 수 있습니다 [4, 7]. 이는 자바스크립트 메인 스레드의 부하를 크게 줄여주며, 성능이 매우 중요한 실시간 시뮬레이션에서 강력한 이점을 제공합니다 [8]. +* **물리 엔진 통합 지원:** Three.js 생태계 내에서는 AmmoPhysics, JoltPhysics, RapierPhysics 등 다양한 서드파티 물리 엔진과의 통합을 지원하여 보다 쉽게 물리 시뮬레이션을 구현할 수 있는 환경을 제공하고 있습니다 [9, 10]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGPU]], [[컴퓨트 셰이더(Compute Shaders)]], [[스토리지 텍스처(Storage Textures)]], [[입자 시스템(Particle Systems)]] +- **Projects/Contexts:** [[오사카 엑스포 2025 호쿠사이 인스톨레이션(Hokusai installation)]] (Utsubo 스튜디오가 개발하여 98인치 4K 디스플레이에서 100만 개의 입자로 구성된 유체 시뮬레이션을 다중 인물 신체 추적과 함께 지연 없이 실시간으로 구현한 프로젝트 [11, 12]) +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. (소스 내에서 물리 및 유체 시뮬레이션에 대한 상충되는 주장은 발견되지 않으며, 단순히 CPU 기반 처리와 GPU 컴퓨트 셰이더 기반 처리 간의 극적인 성능 차이와 이점만이 일관되게 강조되고 있습니다 [1, 4].) + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/실시간 물리 및 유체 시뮬레이션.md]] +--- diff --git a/Graphics & Performance/실시간 물리 시뮬레이션 동기화.md b/Graphics & Performance/실시간 물리 시뮬레이션 동기화.md new file mode 100644 index 00000000..4deb289a --- /dev/null +++ b/Graphics & Performance/실시간 물리 시뮬레이션 동기화.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6A6001 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 실시간 물리 시뮬레이션 동기화" +--- + +# [[실시간 물리 시뮬레이션 동기화]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/실시간 물리 시뮬레이션 동기화.md]] +--- diff --git a/Graphics & Performance/웹 브라우저 그래픽 API 호환성.md b/Graphics & Performance/웹 브라우저 그래픽 API 호환성.md new file mode 100644 index 00000000..c930a1d3 --- /dev/null +++ b/Graphics & Performance/웹 브라우저 그래픽 API 호환성.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-7B4FF5 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 웹 브라우저 그래픽 API 호환성" +--- + +# [[웹 브라우저 그래픽 API 호환성]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 웹 브라우저 그래픽 API 호환성은 WebGL 및 WebGPU와 같은 웹 기반 3D 그래픽 기술이 다양한 웹 브라우저, 운영 체제, 하드웨어 환경에서 일관되게 작동하고 최적화되는 정도를 의미합니다 [1-3]. WebGL은 폭넓게 지원되지만 OS별 그래픽 계층 변환 오버헤드와 브라우저 보안 제약의 영향을 크게 받으며, 차세대 표준인 WebGPU는 최신 하드웨어 기술을 활용하나 브라우저별 파편화가 존재하고 WebGL과 하위 호환되지 않습니다 [4-6]. 따라서 성능 최적화를 위해서는 대상 하드웨어 아키텍처와 브라우저별 API 지원 범위를 고려한 플랫폼 교차적 설계가 필수적입니다 [7, 8]. + +## 📖 구조화된 지식 (Synthesized Content) +- **플랫폼별 WebGL 구현 차이 및 오버헤드:** WebGL은 OpenGL ES 2.0을 기반으로 하는 크로스 플랫폼 라이브러리이지만 운영 체제마다 구현 메커니즘이 다릅니다 [1]. 예를 들어 Windows 환경에서 Chrome, Firefox, Opera는 ANGLE(Almost Native Graphics Layer Engine) 계층을 사용하여 WebGL 호출을 Direct3D 11 또는 12로 변환하는데, 이 과정에서 드로콜(Draw call)당 마이크로 지연(Micro-latency)이 발생하여 CPU 병목 현상을 유발할 수 있습니다 [4, 9, 10]. 반면 Safari(macOS 및 iOS)에서는 `bufferSubData()`와 같은 특정 WebGL 호출에서 비직관적으로 큰 오버헤드가 발생합니다 [11, 12]. 듀얼 GPU를 사용하는 Mac의 경우, WebGL 컨텍스트가 수명 주기 동안 GPU를 전환하는 것이 공식적인 보안 문제로 취급되어 외장 GPU 모드로 강제 전환해야 하므로 약 1초의 컨텍스트 생성 지연이 발생하기도 합니다 [13]. +- **보안 정책에 따른 타이머 및 확장 기능 호환성:** 브라우저 환경에서는 악성 웹사이트로부터의 보호를 위해 모든 그래픽 API 호출에 대한 안전성 검사(Marshalling)가 필요합니다 [14]. 특히 Spectre, Meltdown, Rowhammer 같은 타이밍 기반의 사이드 채널 공격을 방지하기 위해 여러 브라우저 벤더는 `EXT_disjoint_timer_query`와 같은 고정밀 GPU 타이머 쿼리 기능의 지원을 중단하거나 비활성화했습니다 [15-20]. 이후 WebGPU 환경에서도 동일한 보안 우려로 인해 교차 출처 격리(Cross-origin isolated) 상태인 컨텍스트에서만 타임스탬프 쿼리 정밀도를 100 마이크로초(µs)로 제한(Quantization)하여 노출하도록 호환성 표준을 조율했습니다 [21-23]. +- **WebGPU의 브라우저 지원 파편화 및 비호환성:** 차세대 API인 WebGPU는 Vulkan, Metal, Direct3D 12 등의 네이티브 GPU API를 공통된 구조로 브라우저에 제공하지만, 기존 WebGL과는 하위 호환성을 전혀 지원하지 않아 프레임워크 사용자들에게 "업그레이드 충격"을 유발합니다 [5, 6, 24]. 2025년 및 2026년 기준, Chrome과 Edge는 데스크톱에서 안정적으로 지원되는 반면, Safari는 macOS 26 및 iOS 26부터 기본 지원이 도입되었고, Firefox는 Windows(버전 141) 등 특정 플랫폼에서만 작동하거나 불안정한 오류가 보고되는 등 브라우저와 모바일 OS별 지원 수준에 아직 큰 차이가 존재합니다 [3, 25, 26]. +- **크로스 플랫폼 하드웨어 스케줄링의 제약:** WebGPU는 범용 컴퓨팅(Compute Shaders)을 웹에 도입했으나, 크로스 플랫폼 호환성 유지를 위해 특정 하드웨어 스케줄링 순서나 세밀한 전역 원자성(Global atomics)을 보장하지 않습니다 [7, 27]. 따라서 CUDA 등 기존 네이티브 환경에서 사용되던 동기화 방식(예: 작업 그룹 간 Spin-wait)을 WebGPU에 그대로 이식할 경우, Apple M1과 같은 특정 칩셋 환경에서 무한 대기(Busy-wait)를 유발하여 심각한 성능 저하나 실행 실패를 일으킬 수 있습니다 [7, 28]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGL]], [[WebGPU]], [[ANGLE]], [[Spectre 및 Meltdown]], [[타이머 쿼리 제한(Timer Query Quantization)]] +- **Projects/Contexts:** [[3D Gaussian Splatting(3DGS) 웹 렌더링]], [[크로스 플랫폼 성능 프로파일링]] +- **Contradictions/Notes:** WebGL의 `EXT_disjoint_timer_query` 확장 기능에 대해 `caniuse.com`의 지원 정보나 일부 문서가 최신 호환성 상태(보안 문제로 인한 브라우저별 비활성화 조치 등)를 정확히 반영하지 못하고 상충되는 정보를 제공했던 혼선이 존재했습니다 [17, 29]. 또한, WebGPU는 그래픽 성능과 리소스 제어권을 크게 향상시키지만 WebGL과 하위 호환되지 않으므로, 보편적 접근성이 필요한 프로젝트의 경우 WebGPU 지원이 대중화되기 전까지 WebGL 기반의 폴백(Fallback) 렌더링 환경을 유지해야만 하는 제약이 있습니다 [6, 25, 30]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/웹 브라우저 그래픽 API 호환성.md]] +--- diff --git a/Graphics & Performance/입자 시스템(Particle Systems).md b/Graphics & Performance/입자 시스템(Particle Systems).md new file mode 100644 index 00000000..2f3c5769 --- /dev/null +++ b/Graphics & Performance/입자 시스템(Particle Systems).md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-1C7197 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 입자 시스템(Particle Systems)" +--- + +# [[입자 시스템(Particle Systems)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 입자 시스템(Particle Systems)은 게임이나 3D 그래픽 환경에서 유체, 총알, 특수 효과 등 수많은 개체를 효율적으로 렌더링하고 관리하기 위한 기법입니다 [1, 2]. 전통적인 CPU 기반의 입자 업데이트는 연산 한계로 인해 약 5만 개 부근에서 성능 병목에 도달하지만, WebGPU의 컴퓨트 셰이더를 활용하면 처리량을 수백만 개 단위로 끌어올릴 수 있습니다 [1, 3]. 또한 프레임워크에 따라 InstancedMesh나 Solid Particle System(SPS)을 활용하여 드로우 콜(Draw call)을 줄이고 렌더링 성능을 최적화할 수 있습니다 [4-6]. + +## 📖 구조화된 지식 (Synthesized Content) +- **컴퓨트 셰이더(Compute Shaders) 및 WebGPU 활용:** 전통적인 방식의 입자 시스템에서 발생하는 CPU-GPU 간 데이터 전송은 심각한 성능 저하를 초래합니다 [1]. 이를 극복하기 위해 입자 시스템을 WebGPU의 컴퓨트 셰이더로 마이그레이션하면 처리 가능한 입자 수를 수백만 개 단위로 크게 늘릴 수 있습니다 [1, 3]. +- **GPU 영구 버퍼 및 객체 풀링:** `instancedArray`를 사용하여 프레임 간에도 유지되는 GPU 영구 버퍼를 생성하면, 입자 데이터를 매 프레임 업데이트할 때 발생하는 데이터 전송 병목을 제거할 수 있습니다 [1, 7]. 또한, 잦은 생성과 소멸이 일어나는 입자들은 객체 풀링(Object pooling) 기법을 사용하여 런타임 메모리 할당 오버헤드와 가비지 컬렉션(GC)으로 인한 멈춤 현상을 방지해야 합니다 [2]. +- **인스턴싱(Instancing)과 커스텀 셰이더 결합:** 반복되는 입자 객체에 `InstancedMesh`를 사용하면 드로우 콜을 단일화할 수 있습니다 [4]. 이러한 인스턴싱에 커스텀 정점 셰이더(Vertex shader)를 결합하여 절차적으로 형상을 변형하면, 메시 데이터를 추가로 복제하지 않고도 입자 효과의 다양성을 확보하는 데 매우 효과적입니다 [8]. +- **Solid Particle System (SPS)와 인스턴스 메시 비교 (Babylon.js 사례):** Babylon.js 환경에서는 Solid Particle System(SPS)를 사용하여 수많은 입자의 상태(재질 등)를 관리할 수 있습니다 [9]. SPS는 `setParticles()` 호출 시에만 가벼운 전용 월드 행렬을 계산하며 프러스텀 테스트(Frustum test)가 기본적으로 비활성화되어 있어, 50 정점 미만의 수많은 저폴리곤 입자 처리에 인스턴스 메시보다 더 유리합니다 [5, 6]. 하지만 SPS는 원본 기하학적 데이터(Geometry)를 내부적으로 복제하여 처리하므로, 메모리 소비량 측면에서는 인스턴싱 방식에 비해 훨씬 무겁다는 단점이 있습니다 [10, 11]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGPU]], [[컴퓨트 셰이더(Compute Shaders)]], [[InstancedMesh]], [[Solid Particle System (SPS)]] +- **Projects/Contexts:** [[Hokusai installation]] - 엑스포 2025 오사카(Expo 2025 Osaka)에서 100만 개의 입자 기반 유체 시뮬레이션을 WebGPU로 구현한 프로젝트입니다 [12]. +- **Contradictions/Notes:** Babylon.js 환경의 Solid Particle System(SPS)는 저폴리곤 입자의 CPU 연산 성능 면에서는 우수하지만, 입자별로 기하학적 데이터를 복제해야 하므로 메모리 점유율 측면에서는 인스턴스 메시(InstancedMesh) 방식에 비해 비효율적이라는 트레이드오프(Trade-off)가 존재합니다 [6, 10, 11]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/입자 시스템(Particle Systems).md]] +--- diff --git a/Graphics & Performance/조직 행동론의 직무 몰입 연구.md b/Graphics & Performance/조직 행동론의 직무 몰입 연구.md new file mode 100644 index 00000000..5a2112d2 --- /dev/null +++ b/Graphics & Performance/조직 행동론의 직무 몰입 연구.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6B36D0 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 조직 행동론의 직무 몰입 연구" +--- + +# [[조직 행동론의 직무 몰입 연구]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/조직 행동론의 직무 몰입 연구.md]] +--- diff --git a/Graphics & Performance/컴퓨트 셰이더(Compute Shaders).md b/Graphics & Performance/컴퓨트 셰이더(Compute Shaders).md new file mode 100644 index 00000000..b4b1e303 --- /dev/null +++ b/Graphics & Performance/컴퓨트 셰이더(Compute Shaders).md @@ -0,0 +1,42 @@ +--- +id: P-REINFORCE-AUTO-C4EB25 +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 컴퓨트 셰이더(Compute Shaders)" +--- + +# [[컴퓨트 셰이더(Compute Shaders)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 컴퓨트 셰이더(Compute Shaders)는 JavaScript 메인 스레드에서 수행되던 무거운 작업을 수천 개의 GPU 코어에서 병렬로 처리하도록 오프로드하는 범용 GPU 연산(general-purpose GPU computation) 기술입니다 [1]. 주로 WebGPU 환경에서 사용되며, 파티클 시스템, 물리 시뮬레이션, 대규모 데이터 필터링 등의 CPU 병목 현상을 획기적으로 해결하여 렌더링 성능을 극대화하는 데 필수적인 역할을 합니다 [2-4]. + +## 📖 구조화된 지식 (Synthesized Content) +* **파티클 및 물리 시뮬레이션 처리 한계 돌파** + 기존 CPU 기반 파티클 업데이트는 일반적인 하드웨어에서 약 50,000개 부근에서 성능 병목에 도달하지만, WebGPU 컴퓨트 셰이더를 사용하면 이를 수백만 개 단위로 확장할 수 있습니다 [2, 3]. 예를 들어, CPU에서 프레임당 30ms가 소요되던 10,000개의 파티클 업데이트 작업을 컴퓨트 셰이더로 전환하면 100,000개의 파티클을 2ms 이내에 업데이트할 수 있어 약 150배의 성능 향상을 얻을 수 있습니다 [4]. 또한, 대규모 유체 시뮬레이션 및 물리 연산에도 탁월한 성능을 발휘합니다 [5, 6]. + +* **고급 데이터 처리 및 GPU 주도 렌더링(GPU-driven Rendering)** + 컴퓨트 셰이더는 충돌 감지(Collision detection), 실시간 조명, 대규모 BIM 데이터셋의 실시간 필터링 등 다수의 데이터 스트림을 병렬로 처리하는 데 유용합니다 [1, 3, 4]. 실시간 편집이 가능한 대규모 절차적 지형(Procedural terrain)을 생성하거나 [6], 컴퓨트 셰이더의 출력을 기반으로 GPU가 렌더링 대상을 직접 결정하는 간접 그리기(Indirect draws)를 수행하여 수백만 개의 인스턴스와 가시성 컬링(Culling)을 효율적으로 처리할 수 있습니다 [7, 8]. + +* **컴퓨트 스키닝 (Compute Skinning)** + 컴퓨트 셰이더는 컴퓨트 단계에서 메쉬 정점 변환을 처리하여 그 결과를 버퍼에 저장할 수 있게 해줍니다 [4]. 이렇게 저장된 데이터는 다수의 렌더링 패스에서 재사용할 수 있어 중복 계산을 없앨 수 있으며, 조립 과정을 보여주는 애니메이션 처리 등에 매우 효율적입니다 [4]. + +* **핵심 구현 메커니즘 및 동기화 최적화** + * **스토리지 텍스처(Storage textures):** 일반 텍스처와 달리 읽기와 쓰기를 모두 허용하여 컴퓨트 셰이더 내에서 유체 시뮬레이션 및 이미지 처리 작업이 가능하게 합니다 [5, 9]. + * **작업 그룹 공유 메모리(Workgroup shared memory):** 스레드 간 데이터 공유가 필요할 때 전역 메모리보다 10~100배 빠른 접근 속도를 제공합니다 [6, 7]. + * **렌더링 동기화 및 이중 버퍼링:** 컴퓨트 셰이더가 포함된 씬은 GPU 작업이 종속된 렌더링 패스 이전에 완료되도록 `renderAsync`를 사용하여 비동기 렌더링을 수행해야 합니다 [10]. 또한 성능을 높이려면 스테이징 버퍼(Staging buffers)를 활용한 이중 버퍼링(Double-buffering) 기법을 사용해야 하며, 파이프라인 지연을 방지하기 위해 디스패치 간에 `await mapAsync()` 사용을 피해야 합니다 [11]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebGPU]], [[GPU-driven Rendering]], [[TSL (Three Shader Language)]], [[Storage Textures]] +- **Projects/Contexts:** [[Three.js WebGPURenderer]], [[Native WebGPU]], [[대규모 건설/BIM 플랫폼 (Large-Scale Construction Viewers)]] +- **Contradictions/Notes:** 컴퓨트 셰이더를 통한 GPU 병렬 연산은 압도적인 성능 향상을 가져오지만, 작업 디스패치 사이에 `await mapAsync()`를 무분별하게 사용하면 GPU 파이프라인이 멈추고 최대 60%의 시간 동안 GPU가 유휴 상태에 빠지는 성능 저하 역효과가 발생할 수 있으므로 주의해야 합니다 [11]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/컴퓨트 셰이더(Compute Shaders).md]] +--- diff --git a/Graphics & Performance/프래그먼트 바운드(Fragment-bound).md b/Graphics & Performance/프래그먼트 바운드(Fragment-bound).md new file mode 100644 index 00000000..a74dedb3 --- /dev/null +++ b/Graphics & Performance/프래그먼트 바운드(Fragment-bound).md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-8CAEFF +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 프래그먼트 바운드(Fragment-bound)" +--- + +# [[프래그먼트 바운드(Fragment-bound)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 프래그먼트 바운드(Fragment-bound)는 3D 렌더링 파이프라인에서 GPU의 프래그먼트(픽셀) 연산 부하가 극심해져 전체 렌더링 성능과 프레임 레이트(FPS)를 제한하는 병목 상태를 의미합니다. 주로 화면에 그려지는 객체들이 렌더링 순서대로 정렬되지 않아 동일한 픽셀 위치에 렌더링 계산이 여러 번 중첩되는 오버드로우(Overdraw) 현상으로 인해 발생합니다. 무거운 조명 연산이 포함된 재질을 사용할 때 이 상태에 더욱 쉽게 빠지게 됩니다 [1, 2]. + +## 📖 구조화된 지식 (Synthesized Content) +- **발생 원인과 오버드로우(Overdraw):** 프래그먼트 바운드 상태는 렌더링 파이프라인의 후반부인 프래그먼트 셰이딩(Fragment Shading) 단계의 과부하로 발생합니다. 주된 원인은 오버드로우로, 불투명한 물체를 '앞에서 뒤로(Front-to-Back)' 정렬하지 않고 렌더링하여 뒤에 가려질 픽셀에 대해서도 GPU가 불필요한 계산을 중복해서 수행할 때 일어납니다 [2]. +- **InstancedMesh의 구조적 한계:** `InstancedMesh` 기술은 드로우 콜(Draw Call)을 줄여 CPU 오버헤드를 낮추는 데 효과적이지만, 인스턴스들에 대한 자동 정렬 기능을 제공하지 않습니다 [1, 2]. 따라서 카메라에서 멀리 있는 인스턴스가 먼저 그려지고 가까운 인스턴스가 나중에 그려지는 배치가 발생하면, 오버드로우 비용이 GPU의 픽셀 처리 성능을 상회하게 되어 프래그먼트 바운드 상태를 유발합니다 [2]. +- **재질(Material) 복잡도의 영향:** 오버드로우로 인한 프래그먼트 바운드 현상은 복잡한 조명 연산이 포함된 `MeshStandardMaterial`과 같은 무거운 재질을 사용할 때 그 심각성이 극대화됩니다 [1, 2]. +- **성능 개선 대안:** 프래그먼트 바운드 병목을 해결하기 위한 대안 중 하나로 `BatchedMesh`를 사용할 수 있습니다. `InstancedMesh`와 달리 `BatchedMesh`는 인스턴스들의 정렬(sorted)을 지원하므로 오버드로우를 효과적으로 줄일 수 있습니다 [1]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[오버드로우(Overdraw)]], [[InstancedMesh]], [[BatchedMesh]], [[프래그먼트 셰이딩(Fragment Shading)]] +- **Projects/Contexts:** [[Three.js 렌더링 성능 최적화]], [[MeshStandardMaterial 조명 연산]] +- **Contradictions/Notes:** 소스에 따르면 `InstancedMesh`는 CPU의 드로우 콜 병목을 해소하기 위해 도입되지만, 내부 정렬(Sorting)의 부재로 인해 오히려 GPU 측에서 프래그먼트 바운드라는 새로운 형태의 성능 병목을 유발할 수 있는 구조적 트레이드오프를 지니고 있습니다 [1, 2]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/프래그먼트 바운드(Fragment-bound).md]] +--- diff --git a/Graphics & Performance/프래그먼트 셰이딩(Fragment Shading).md b/Graphics & Performance/프래그먼트 셰이딩(Fragment Shading).md new file mode 100644 index 00000000..7c53d55c --- /dev/null +++ b/Graphics & Performance/프래그먼트 셰이딩(Fragment Shading).md @@ -0,0 +1,39 @@ +--- +id: P-REINFORCE-AUTO-CE737D +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 프래그먼트 셰이딩(Fragment Shading)" +--- + +# [[프래그먼트 셰이딩(Fragment Shading)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 프래그먼트 셰이딩(Fragment Shading)은 그래픽 렌더링 파이프라인의 후반부 단계로, 최종 색상 값을 결정하기 위해 픽셀 단위의 연산을 실행하는 과정이다 [1, 2]. 주로 텍스처 데이터 샘플링, 픽셀 단위 조명(per-pixel lighting), 알파(투명도) 값을 계산하여 표면의 디테일을 구현하는 역할을 수행한다 [1, 3, 4]. 화면에 보이는 픽셀에 대해 계산을 수행하므로, 픽셀이 중첩되어 여러 번 렌더링되는 오버드로우(Overdraw)가 발생하거나 복잡한 셰이더를 사용할 경우 GPU 성능 저하 및 프레임 지연의 주요 원인이 된다 [1, 2]. + +## 📖 구조화된 지식 (Synthesized Content) +- **역할 및 데이터 처리:** + 프래그먼트 셰이더는 정점 셰이더(Vertex Shader)로부터 Varying 변수를 통해 데이터를 전달받아 픽셀 단위로 처리한다 [5]. 이 셰이더는 픽셀 셰이딩이라 불리는 조명 계산, 노멀 맵을 활용한 미세한 표면 디테일 모사, 그리고 텍스처에 따른 알파(Alpha) 값 연산 등을 담당한다 [3, 4]. 이 밖에도 폰트 벡터 데이터를 바탕으로 프래그먼트 셰이더 내에서 직접 텍스트를 재렌더링하는 기법도 존재한다 [6, 7]. + +- **성능 병목과 오버드로우(Overdraw):** + 여러 개의 텍스처 샘플링과 복잡한 수학적 연산 및 조건문이 포함된 PBR(Physically Based Rendering) 재질 같은 복잡한 셰이더는 중간 사양 GPU의 필 레이트(Fill rate)를 50~70%까지 감소시킬 수 있다 [1]. 특히 동일한 픽셀 위치에 여러 번 쓰기 작업이 중첩되는 오버드로우(Overdraw) 현상이 발생하면 씬(Scene) 전체가 '프래그먼트 바운드(Fragment-bound)' 상태에 빠져 심각한 프레임 처리 지연이 발생한다 [2]. + +- **프래그먼트 셰이더 최적화 기법:** + - **거리 기반 및 가시성 최적화:** 동적 LOD(Level of Detail) 전환을 활용하면 픽셀 레벨의 GPU 프래그먼트 처리 연산을 60~75%가량 줄일 수 있다 [8]. 또한 뎁스 프리패스(Depth Pre-Pass)를 구현하면 GPU가 값비싼 메인 셰이더 연산에 진입하기 전에 가려진 프래그먼트를 미리 폐기(Discard)하여 프래그먼트 셰이더의 부하를 최대 30%까지 감소시킨다 [9]. + - **재질(Material) 모델 단순화:** 연산량이 많은 `MeshStandardMaterial`은 프래그먼트 프로세서를 포화 상태로 만들 수 있으므로, 하드웨어 성능이 제한적인 환경에서는 픽셀별 스펙큘러 하이라이트만 제공하는 `MeshPhongMaterial`이나 조명 연산을 배제한 플랫 셰이딩(Flat Shaded) 커스텀 셰이더를 사용하여 프래그먼트 연산 비용을 최소화해야 한다 [10, 11]. + - **절차적 렌더링(Procedural Rendering):** 엣지(Edge)나 와이어프레임을 그릴 때 별도의 기하학적 도형을 추가로 그리지 않고, 무게중심 좌표계(Barycentric Coordinate)를 이용해 프래그먼트 셰이더 내에서 절차적으로 엣지까지의 거리를 계산하여 렌더링하는 것이 훨씬 효율적이다 [12]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Overdraw]], [[Vertex Shader]], [[Level of Detail (LOD)]], [[Physically Based Rendering (PBR)]] +- **Projects/Contexts:** [[Three.js]], [[WebGL]] +- **Contradictions/Notes:** 시각적인 현실감을 제공하는 PBR 모델의 재질은 사실적인 빛 반사를 구현하지만 프래그먼트 셰이더에서 수많은 연산과 텍스처 샘플링을 요구한다. 따라서 내장 GPU(iGPU)와 같은 저사양 하드웨어 환경에서는 성능을 크게 저하시키며, 오히려 연산량이 적은 Phong 모델이나 플랫 셰이딩 재질을 사용하는 것이 높은 프레임 레이트 유지를 위해 필수적이라고 소스는 설명한다 [1, 10, 11]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/프래그먼트 셰이딩(Fragment Shading).md]] +--- diff --git a/Graphics & Performance/헤드 마운트 디스플레이(HMD).md b/Graphics & Performance/헤드 마운트 디스플레이(HMD).md new file mode 100644 index 00000000..8a067ac4 --- /dev/null +++ b/Graphics & Performance/헤드 마운트 디스플레이(HMD).md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-F31E1F +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 헤드 마운트 디스플레이(HMD)" +--- + +# [[헤드 마운트 디스플레이(HMD)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 헤드 마운트 디스플레이(HMD)는 사용자가 컴퓨터로 생성된 3D 가상 현실(VR) 또는 혼합 현실(MR) 환경과 상호작용할 수 있도록 머리에 착용하는 디스플레이 기기입니다 [1]. 이 기기들은 시각, 청각, 햅틱 등 다양한 감각 정보를 제공하여 높은 몰입감을 선사하지만, 높은 인지 부하(Cognitive Load)와 VR 멀미(VR Sickness)를 유발할 수 있는 부작용도 존재합니다 [2-4]. 최근의 HMD는 무선 사용, 풀 컬러 패스스루, 향상된 해상도 및 시야각을 갖추어 교육, 시뮬레이션 훈련, 엔터테인먼트 등 다양한 분야에서 널리 활용되고 있습니다 [5-7]. + +## 📖 구조화된 지식 (Synthesized Content) +* **HMD의 주요 특징 및 기술 발전:** 최근 시장을 주도하는 MR 및 VR HMD(예: Meta Quest Pro, Meta Quest 3, Apple Vision Pro, HTC Vive Pro 등)는 풀 컬러 패스스루(pass-through) 기능, 케이블 없이 독립적으로 구동되는 무선 사용 환경, 팬케이크 렌즈, 향상된 시야각(예: 수평 110도) 및 4K 이상의 고해상도를 지원합니다 [5, 7-10]. 또한 HMD에 내장된 카메라를 통해 사용자의 맨손을 추적(Hand tracking)함으로써 별도의 컨트롤러 없이도 자연스러운 인터랙션이 가능해졌습니다 [11]. +* **활용 목적 및 긍정적 효과:** HMD가 만들어내는 3D 디지털 환경은 사용자가 물리적으로 그곳에 존재하는 듯한 강렬한 '현존감(Presence)'을 부여합니다 [12, 13]. 이를 바탕으로 교육 현장에서는 현실에서 재현하기 힘든 가상 교실이나 실험실을 구현하며 [1], 의료 및 군사 시뮬레이션, 복잡한 데이터 시각화 등 작업 수행 능력과 인지적 학습 결과를 개선하는 데 사용됩니다 [6, 14]. 더불어 엑서게임(Exergaming) 등에서는 플레이어가 신체적 피로를 잊고 게임과 서사에 몰입하도록 돕는 핵심 장치로 기능합니다 [13]. +* **한계점 및 사용상 주의사항:** HMD 기반의 상호작용은 시각적, 청각적, 햅틱 정보를 동시에 쏟아내어 사용자의 작업 기억 용량을 초과하는 '인지 과부하(Cognitive overload)'를 초래할 수 있으며, 이는 의사결정과 학습 효율을 떨어뜨릴 수 있습니다 [2, 3]. 이와 함께 시각적 정보와 전정 기관의 신체적 경험 간의 불일치, 그리고 폭주-조절 불일치(vergence-accommodation conflicts)는 구역질, 방향 감각 상실, 안구 피로 등 'VR 멀미(VR Sickness)'를 일으키며, 이는 몰입도를 깨고 기기의 지속적인 채택을 방해하는 가장 큰 장벽으로 작용합니다 [4, 15]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[가상 현실(Virtual Reality)]], [[혼합 현실(Mixed Reality)]], [[인지 부하(Cognitive Load)]], [[VR 멀미(VR Sickness)]] +- **Projects/Contexts:** [[비트 세이버(Beat Saber) 엑서게임 연구]], [[Meta Quest 시리즈 및 HTC Vive Pro 활용 사례]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/헤드 마운트 디스플레이(HMD).md]] +--- diff --git a/Graphics & Performance/헤드마운트 디스플레이 (HMD).md b/Graphics & Performance/헤드마운트 디스플레이 (HMD).md new file mode 100644 index 00000000..9fbccd28 --- /dev/null +++ b/Graphics & Performance/헤드마운트 디스플레이 (HMD).md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-3585FE +category: "[[10_Wiki/💡 Topics/Graphics & Performance]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - 헤드마운트 디스플레이 (HMD)" +--- + +# [[헤드마운트 디스플레이 (HMD)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 헤드마운트 디스플레이(HMD)는 사용자가 컴퓨터로 생성된 3D 환경과 상호작용할 수 있도록 머리에 착용하는 하드웨어 장치(헤드셋)로, 주로 가상현실(VR) 및 혼합현실(MR) 경험을 제공하는 데 사용됩니다 [1, 2]. 최근의 HMD는 시야각, 디스플레이 지연 시간, 해상도가 크게 개선되었으며, 풀 컬러 패스스루 및 독립형(standalone) 무선 사용과 같은 기술적 발전을 이루었습니다 [3-6]. 그러나 향상된 몰입감을 제공하는 반면, 과도한 인지 부하, 폭주-조절 불일치(vergence-accommodation conflict)로 인한 시각적 결함, 그리고 높은 VR 멀미(VR sickness) 발생률과 같은 사용자 경험의 과제도 함께 수반합니다 [7-9]. + +## 📖 구조화된 지식 (Synthesized Content) +- **기술적 발전 및 주요 기기:** 최신 HMD 장치로는 메타 퀘스트(Meta Quest) 2, 3, Pro 시리즈, 애플 비전 프로(Apple Vision Pro), HTC 바이브 프로(HTC Vive Pro) 등이 있습니다 [4, 10, 11]. 이들 기기는 데스크톱 PC에 연결할 필요 없는 독립형 모드, 고해상도(예: 눈당 1832 × 1920 픽셀, 90Hz), 넓은 시야각, 낮은 지연 시간 등을 바탕으로 사용자에게 최적화된 성능을 제공합니다 [5, 6, 11]. +- **적용 분야:** HMD는 사용자가 기존 미디어로는 불가능했던 방식으로 디지털 환경에 몰입할 수 있게 해줍니다 [1]. 주로 비트 세이버(Beat Saber)와 같은 엑서게임(Exergame) 플레이와 교육 현장에서의 현실적인 3D 시나리오 학습, 그리고 인지 및 신체 반응 시뮬레이션 등에 폭넓게 활용됩니다 [2, 10, 12]. +- **시각적 및 인지적 한계:** HMD 착용 시 망막의 깊이 지각 단서인 폭주(vergence)와 조절(accommodation)이 분리되는 불일치 현상이 발생할 수 있습니다 [13]. 이로 인해 두통, 눈의 통증, 피로, 복시와 같은 안구 운동 증상 및 시각적 피로가 유발될 수 있습니다 [8, 13]. 또한, 복잡한 가상 및 혼합현실 환경은 시각, 청각, 햅틱 정보를 동시에 처리해야 하므로 사용자에게 과도한 인지 부하(Cognitive Load)를 초래할 위험이 있습니다 [14, 15]. +- **VR 멀미(VR Sickness) 및 부작용:** HMD 기반 가상현실 연구에 따르면 사용자의 약 15.6%가 VR 멀미로 인해 사용을 중단하는 것으로 나타났습니다 [16]. 이러한 멀미는 시각적 경험과 신체적(전정 기관) 경험의 불일치, 시뮬레이션 된 움직임, HMD의 착용 핏, 연령, 자세의 안정성 등 다양한 요인에 의해 발생합니다 [8, 9, 17]. 이에 따라 HMD 제조사들은 사용 설명서를 통해 30분에서 1시간 단위로 사용 시간을 제한하거나 휴식을 취하도록 하는 안전 권장 사항을 명시하고 있습니다 [18]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[가상현실 (VR)]], [[혼합현실 (MR)]], [[VR 멀미 (VR Sickness)]], [[폭주-조절 불일치 (Vergence-Accommodation Conflict)]], [[인지 부하 (Cognitive Load)]] +- **Projects/Contexts:** [[비트 세이버 (Beat Saber) 등 엑서게임]], [[교육 및 훈련용 VR 시뮬레이션]] +- **Contradictions/Notes:** HMD는 대형 화면을 사용하는 것보다 사용자에게 훨씬 더 깊은 몰입감을 제공할 수 있는 수단이지만, 역설적으로 화면 기반 환경보다 시뮬레이터 멀미 설문지(SSQ) 점수가 실질적으로 더 높게 나타나 VR 멀미를 더 많이 유발한다는 취약점이 존재합니다 [9]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/헤드마운트 디스플레이 (HMD).md]] +--- diff --git a/Graphics/3D_Gaussian_Splatting.md b/Graphics/3D_Gaussian_Splatting.md new file mode 100644 index 00000000..7d839564 --- /dev/null +++ b/Graphics/3D_Gaussian_Splatting.md @@ -0,0 +1,29 @@ +--- +id: P-REINFORCE-3DGS-001 +category: "[[10_Wiki/💡 Topics/Graphics]]" +confidence_score: 0.95 +tags: [graphics, rendering, ai] +last_reinforced: 2026-04-20 +github_commit: "initial-reinforce" +--- + +# [[3D Gaussian Splatting (3DGS)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 포인트 클라우드를 넘어서 공간을 가속화된 가우시안 타원체로 표현함으로써 실시간 렌더링의 새로운 지평을 열다. + +## 📖 구조화된 지식 (Synthesized Content) +- **추출된 패턴:** 복잡한 메시 구조 없이도 밀도 있는 포인트 클라우드에서 가우시안 파라미터를 최적화하여 사실적인 부피감을 구현하는 비선형 최적화 패턴. +- **세부 내용:** + - 타일 기반의 가시성 정렬을 통한 고속 렌더링. + - 미분 가능한 렌더링(Differentiable Rendering)을 통한 파라미터 학습. + - NeRF 대안으로서의 압도적 렌더링 속도 확보. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 메시에 기반한 전통적인 래스터화 방식과 개념적으로 충돌하나, 성능 면에서 우위를 점함. +- **정책 변화:** 렌더링 효율성(w1) 가중치를 높게 평가하여 그래픽스 카테고리의 최상단 지식으로 배치. + +## 🔗 지식 연결 (Graph) +- **Parent:** [[10_Wiki/💡 Topics/Graphics]] +- **Related:** [[NeRF]], [[Point-Cloud]], [[Radiance-Fields]] +- **Raw Source:** [[00_Raw/2026-04-20/3D Gaussian Splatting (3DGS).md]] diff --git a/Graphics/3D_Web_HMI.md b/Graphics/3D_Web_HMI.md new file mode 100644 index 00000000..8bf448ac --- /dev/null +++ b/Graphics/3D_Web_HMI.md @@ -0,0 +1,29 @@ +--- +id: P-REINFORCE-HMI-001 +category: "[[10_Wiki/💡 Topics/Graphics]]" +confidence_score: 0.90 +tags: [web, hmi, interface, 3d] +last_reinforced: 2026-04-20 +github_commit: "initial-reinforce" +--- + +# [[3D Web-based HMI]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 산업용 제어 인터페이스를 브라우저 환경에서 3D로 시각화하여 정보의 직관성과 조작성을 극대화하다. + +## 📖 구조화된 지식 (Synthesized Content) +- **추출된 패턴:** 물리적 장비의 디지털 트윈을 웹 소켓 기반 실시간 데이터와 바인딩하여 3D 공간에서 인터랙션을 구현하는 추상화 패턴. +- **세부 내용:** + - Three.js/React Three Fiber를 활용한 저사양 기기 최적화. + - 실시간 텔레메트리 데이터의 가상화 매핑. + - 사용자 경험(UX) 중심의 직관적 물리 인터페이스 설계. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 2D 평면 스카다(SCADA) 시스템에서 입체적 모니터링 환경으로의 전환. +- **정책 변화:** 구조적 연결성(w2) 관점에서 디지털 트윈 아키텍처와 통합 분석 필요성 제기. + +## 🔗 지식 연결 (Graph) +- **Parent:** [[10_Wiki/💡 Topics/Graphics]] +- **Related:** [[Three.js]], [[Digital-Twin]], [[SCADA]] +- **Raw Source:** [[00_Raw/2026-04-20/3D Web-based HMI.md]] diff --git a/Graphics/Digital_Twin.md b/Graphics/Digital_Twin.md new file mode 100644 index 00000000..a248c676 --- /dev/null +++ b/Graphics/Digital_Twin.md @@ -0,0 +1,29 @@ +--- +id: P-REINFORCE-GRAPHICS-003 +category: "[[10_Wiki/💡 Topics/Graphics]]" +confidence_score: 0.92 +tags: [graphics, digital-twin, hmi, iot] +last_reinforced: 2026-04-20 +github_commit: "batch-reinforce-04" +--- + +# [[Digital Twin Interfaces]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 물리적 실체와 디지털 가상물을 실시간 데이터 혈류로 연결하여 예측 가능한 미래를 설계하는 인터페이스 기술. + +## 📖 구조화된 지식 (Synthesized Content) +- **추출된 패턴:** IoT 센서 데이터의 가상화 매핑 및 실시간 렌더링을 통한 물리-가상 동기화 패턴. +- **세부 내용:** + - 고해상도 3D 모델링과 실시간 텔레메트리의 결합. + - 시뮬레이션을 통한 장애 예측 및 선제적 유지보수 UI. + - 데이터 시각화를 넘어선 가상 환경에서의 물리적 조작성 확보. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 정적인 3D 모델에서 살아 움직이는 '데이터 기반 생명체'로의 개념 진화. +- **정책 변화:** 구조적 연결성(w2) 관점에서 3D_Web_HMI와의 기술적 통합 시너지 분석. + +## 🔗 지식 연결 (Graph) +- **Parent:** [[10_Wiki/💡 Topics/Graphics]] +- **Related:** [[3D_Web_HMI]], [[IoT]], [[Predictive-Maintenance]] +- **Raw Source:** [[00_Raw/2026-04-20/Digital Twin Interfaces.md]] diff --git a/Graphics/Predictive_Maintenance.md b/Graphics/Predictive_Maintenance.md new file mode 100644 index 00000000..45986235 --- /dev/null +++ b/Graphics/Predictive_Maintenance.md @@ -0,0 +1,29 @@ +--- +id: P-REINFORCE-GRAPHICS-004 +category: "[[10_Wiki/💡 Topics/Graphics]]" +confidence_score: 0.93 +tags: [graphics, digital-twin, maintenance, ai] +last_reinforced: 2026-04-20 +github_commit: "batch-reinforce-05" +--- + +# [[Predictive Maintenance (PdM)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 과거의 고장 패턴을 학습하여 미래의 이상 징후를 사전에 포착함으로써 시스템 가동 중단을 원천 차단하는 지능형 유지보수 체계. + +## 📖 구조화된 지식 (Synthesized Content) +- **추출된 패턴:** 센서 데이터의 이상 탐지(Anomaly Detection)와 잔여 수명 예측(RUL)을 통해 정비 시점을 최적화하는 패턴. +- **세부 내용:** + - 진동, 온도, 전력 소모 등 시계열 데이터의 특징 추출 및 분석. + - 확률론적 모델(Bayesian) 및 딥러닝(RNN/LSTM) 기반의 고장 확률 산출. + - 디지털 트윈과 결합하여 가상 환경에서 정비 시뮬레이션 수행. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 고장 후 수리(Reactive)나 정기 점검(Preventive)에서 데이터 기반 실시간 대응(Predictive)으로의 전환. +- **정책 변화:** 성능 가중치(w1) 관점에서 가동 시간(Uptime) 극대화를 위한 핵심 전략으로 배치. + +## 🔗 지식 연결 (Graph) +- **Parent:** [[10_Wiki/💡 Topics/Graphics]] +- **Related:** [[Digital_Twin]], [[Anomaly-Detection]], [[IoT]] +- **Raw Source:** [[00_Raw/2026-04-20/Predictive Maintenance (PdM).md]] diff --git a/Graphics/VPS_NeRF.md b/Graphics/VPS_NeRF.md new file mode 100644 index 00000000..ac6d1276 --- /dev/null +++ b/Graphics/VPS_NeRF.md @@ -0,0 +1,29 @@ +--- +id: P-REINFORCE-GRAPHICS-005 +category: "[[10_Wiki/💡 Topics/Graphics]]" +confidence_score: 0.94 +tags: [graphics, nerf, vps, navigation] +last_reinforced: 2026-04-20 +github_commit: "batch-reinforce-05" +--- + +# [[VPS & NeRF (Visual Positioning System)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 이미지 기반의 정밀 위치 측정 기술과 신경망 기반 공간 재구성을 결합하여 현실 세계를 완벽한 디지털 좌표계로 변환하다. + +## 📖 구조화된 지식 (Synthesized Content) +- **추출된 패턴:** 대규모 이미지 데이터셋에서 특징점을 추출하고, NeRF 기법을 통해 빈 공간의 시점을 보간하여 조밀한 공간 지도를 생성하는 패턴. +- **세부 내용:** + - GPS의 한계를 넘어서는 cm 단위의 정밀한 야외/실내 위치 인식. + - Neural Radiance Fields를 활용한 사실적 공간 지도 생성 및 업데이트. + - AR(Augmented Reality) 서비스의 기반 기술로서의 공간 앵커링(Anchoring). + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 단순 포인트 클라우드 매칭에서 연속적인 신경망 공간 표현체로의 진화. +- **정책 변화:** 기술적 가중치(w1)를 높게 설정하여 메타버스 카테고리의 핵심 브리지 지식으로 배치. + +## 🔗 지식 연결 (Graph) +- **Parent:** [[10_Wiki/💡 Topics/Graphics]] +- **Related:** [[CV_Synthesis]], [[3D_Gaussian_Splatting]], [[SLAM]] +- **Raw Source:** [[00_Raw/2026-04-20/Visual Positioning Systems (VPS).md]] diff --git a/Health & Science/ACL-Injury-Prevention-Protocols.md b/Health & Science/ACL-Injury-Prevention-Protocols.md new file mode 100644 index 00000000..c76baa6f --- /dev/null +++ b/Health & Science/ACL-Injury-Prevention-Protocols.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AI-CEA4CC +category: "[[10_Wiki/💡 Topics/Health & Science]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Batch 9 - Wikified ACL-Injury-Prevention-Protocols" +--- + +# [[ACL-Injury-Prevention-Protocols]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> + +## 📖 구조화된 지식 (Synthesized Content) + + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 신규 문서로, 기존 정보와의 충돌 분석 예정. +- **정책 변화:** Health & Science 카테고리의 지식 연결망 강화를 위한 표준 위키화 적용. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/ACL-Injury-Prevention-Protocols.md]] +--- diff --git a/Health & Science/Arthrokinematics.md b/Health & Science/Arthrokinematics.md new file mode 100644 index 00000000..ced5ab88 --- /dev/null +++ b/Health & Science/Arthrokinematics.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-EC0439 +category: "[[10_Wiki/💡 Topics/Health & Science]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Mega Batch 2 - Wikified Arthrokinematics" +--- + +# [[Arthrokinematics]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 작업 중 + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중 + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 지식 자산화 및 기존 네트워크 연동 단계. +- **정책 변화:** Health & Science 카테고리의 전문성 확보 및 링크 밀도 최적화. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Arthrokinematics.md]] +--- diff --git a/Health & Science/Athletic Peak Performance.md b/Health & Science/Athletic Peak Performance.md new file mode 100644 index 00000000..af186aea --- /dev/null +++ b/Health & Science/Athletic Peak Performance.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-7BA64D +category: "[[10_Wiki/💡 Topics/Health & Science]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Mega Batch 2 - Wikified Athletic Peak Performance" +--- + +# [[Athletic Peak Performance]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 작업 중 + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중 + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 지식 자산화 및 기존 네트워크 연동 단계. +- **정책 변화:** Health & Science 카테고리의 전문성 확보 및 링크 밀도 최적화. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Athletic Peak Performance.md]] +--- diff --git a/Health & Science/Biomedical-Engineering.md b/Health & Science/Biomedical-Engineering.md new file mode 100644 index 00000000..e911c682 --- /dev/null +++ b/Health & Science/Biomedical-Engineering.md @@ -0,0 +1,29 @@ +--- +id: P-REINFORCE-AI-058 +category: "[[10_Wiki/💡 Topics/Health & Science]]" +confidence_score: 0.97 +tags: [biomedical engineering, biomechanics, medical device, robotics] +last_reinforced: 2026-06-XX +github_commit: "[P-Reinforce] Processed Biomedical-Engineering." +--- + +# [[Biomedical-Engineering]] (생체 의학 공학) + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 생명 과학적 지식(Biology)과 공학 기술(Engineering)을 융합하여, 인체의 문제를 진단하고 치료하며 기능을 보조하는 의료 장비 및 시스템을 설계하는 학문이다. + +## 📖 구조화된 지식 (Synthesized Content) +- **핵심 분야:** 생체 신호를 측정/해석하는 것부터 시작하여, 이를 기계적으로 교정하거나 대체하는 데까지 포괄한다. + 1. **신호 처리 및 진단:** EEG(뇌파), EMG(근전도) 등 생체 신호를 측정하고 노이즈를 제거하며 의미 있는 정보를 추출하는 과정 (Signal Processing). + 2. **운동학/역학:** 인체의 움직임을 수학적으로 모델링하여, 부상이나 기능 저하의 원인을 분석한다 (Biomechanics). + 3. **장치 개발 및 제어:** 보조 공학(Assistive Technology)을 개발하고, 로봇 공학에 접목하여 운동 기능을 대체/강화하는 시스템을 구축한다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 의료 분야는 윤리적 문제와 법규(Regulatory Affairs)가 가장 큰 제약이다. 기술의 우수성만으로는 상용화될 수 없으며, 임상 시험 및 규제 준수가 필수적임을 인지해야 한다. +- **정책 변화:** AI 기반으로 방대한 의료 데이터를 학습하여 진단 정확도를 높이는 것이 중요해지고 있으며, 개인정보보호(HIPAA 등)와 결합된 데이터 보안 아키텍처가 핵심 트렌드이다. + +## 🔗 지식 연결 (Graph) +- Parent: [[Biomedical-Engineering]] +- Related: [[Biomechanics]] , [[Assistive Technology]] , [[Signal Processing]] +- Raw Source: [[00_Raw/Biomedical-Engineering.md]] +--- \ No newline at end of file diff --git a/Health/ACL_Prevention.md b/Health/ACL_Prevention.md new file mode 100644 index 00000000..a4921dad --- /dev/null +++ b/Health/ACL_Prevention.md @@ -0,0 +1,29 @@ +--- +id: P-REINFORCE-HEALTH-001 +category: "[[10_Wiki/💡 Topics/Health]]" +confidence_score: 0.89 +tags: [health, sports, injury, prevention] +last_reinforced: 2026-04-20 +github_commit: "batch-reinforce-01" +--- + +# [[ACL Injury Prevention Protocols]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 전방십자인대 부상 위험을 최소화하기 위해 바이오메카닉 분석과 신경근 훈련을 결합한 과학적 예방 체계. + +## 📖 구조화된 지식 (Synthesized Content) +- **추출된 패턴:** 점프 착지 및 방향 전환 시 무릎 정렬을 최적화하는 신경근 제어(Neuromuscular Control) 강화 패턴. +- **세부 내용:** + - 고유수용성 감각(Proprioception) 훈련을 통한 관절 안정화. + - 햄스트링 강화 및 콰드-햄스트링 균형 최적화. + - 연령 및 성별에 따른 맞춤형 부상 방지 프로그램 설계. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 단순 근력 강화에서 움직임의 질(Quality of Movement) 중심 예방으로 진화. +- **정책 변화:** 지식 연결성(w2) 관점에서 바이오메카닉과 스포츠 심리학의 연계성 강화. + +## 🔗 지식 연결 (Graph) +- **Parent:** [[10_Wiki/💡 Topics/Health]] +- **Related:** [[Neuromuscular-Control]], [[Sports-Science]], [[Proprioception]] +- **Raw Source:** [[00_Raw/2026-04-20/ACL-Injury-Prevention-Protocols.md]] diff --git a/Infrastructure & Automation/Edge Computing.md b/Infrastructure & Automation/Edge Computing.md new file mode 100644 index 00000000..02df04fb --- /dev/null +++ b/Infrastructure & Automation/Edge Computing.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AI-043 +category: "[[10_Wiki/💡 Topics/Infrastructure & Automation]]" +confidence_score: 0.98 +tags: [edge, computing, iot, distributed] +last_reinforced: 2026-06-XX +github_commit: "[P-Reinforce] Processed Edge_Computing.md" +--- + +# [[Edge Computing]] (엣지 컴퓨팅) + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 데이터 생성 지점(엣지 디바이스) 근처에서 데이터를 처리하고 분석하여, 네트워크 병목 현상과 낮은 지연 시간을 해결하는 분산 컴퓨팅 아키텍처이다. + +## 📖 구조화된 지식 (Synthesized Content) +- **정의:** 중앙 집중형 클라우드 서버를 거치지 않고, 최종 사용자 장치(IoT 센서, 스마트 디바이스 등)와 가까운 곳에서 데이터 처리 및 분석을 수행하는 컴퓨팅 모델. +- **필요성 및 동기:** + 1. **Latency Criticality (저지연):** 자율 주행, 실시간 의료 모니터링 등 지연 시간에 민감한 서비스에 필수적이다. 클라우드 전송 시간을 최소화한다. + 2. **Bandwidth Constraint (대역폭 제한):** 대규모 IoT 센서 데이터의 폭주를 줄이고 필터링하여 중앙 서버로 보내는 양을 최적화한다. + 3. **Privacy & Security:** 민감 데이터를 로컬에서 처리하고 익명화할 수 있어 보안과 개인정보 보호 측면에서 유리하다. +- **아키텍처 패턴:** + - **지능형 계층 구조:** 센서(Level 1) $\rightarrow$ 게이트웨이/엣지 서버(Level 2, Edge Computing 수행) $\rightarrow$ 클라우드(Level 3, 대규모 학습 및 관리). + - **분산 컴퓨팅 기술 활용:** 컨테이너 오케스트레이션 (K3s, AWS IoT Greengrass 등)과 분산 데이터베이스가 주로 사용된다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 엣지 컴퓨팅이 클라우드를 대체하는 것이 아니라, '보완'하여 시스템의 전반적인 성능을 끌어올리는 개념임을 명확히 해야 한다. 하이브리드 아키텍처가 표준이다. +- **정책 변화:** 에너지 효율성과 장치 자원 제약(Resource Constraints)을 고려한 경량화된 AI 모델 배포(TinyML) 기술이 중요한 트렌드로 부상하고 있다. + +## 🔗 지식 연결 (Graph) +- Parent: [[Internet of Things (IoT) Telemetry]] +- Related: [[Distributed-Systems-Engineering]] , [[Real-Time-Game-Engines]] , [[Autonomous Vehicle Perception]] +- Raw Source: [[00_Raw/Edge_Computing.md]] +--- \ No newline at end of file diff --git a/Memory & Systems/Allocation Timeline.md b/Memory & Systems/Allocation Timeline.md new file mode 100644 index 00000000..ba0b6a84 --- /dev/null +++ b/Memory & Systems/Allocation Timeline.md @@ -0,0 +1,35 @@ +--- +id: P-REINFORCE-B75DFC +category: "[[10_Wiki/💡 Topics/Memory & Systems]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Mega Batch - Wikified Allocation Timeline" +--- + +# [[Allocation Timeline]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> **Allocation Timeline**(또는 Allocation instrumentation on timeline)은 Chrome DevTools의 Memory 패널에서 제공하는 프로파일링 도구로, 시간 경과에 따른 메모리 할당을 기록하고 추적하여 애플리케이션의 메모리 누수를 진단하는 데 사용됩니다 [1-3]. 이 도구는 힙 프로파일러(Heap Profiler)의 상세한 스냅샷 정보와 타임라인 패널의 증분 업데이트 및 추적 기능을 결합하여 객체의 생성 위치와 유지 경로(retaining path)를 실시간으로 식별할 수 있게 해줍니다 [2, 4, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +- **동작 원리와 데이터 수집:** Allocation Timeline은 레코딩이 진행되는 동안 주기적으로(최대 50ms 단위로 자주) 힙 스냅샷을 캡처하고, 레코딩이 종료될 때 마지막 스냅샷을 한 번 더 찍어 데이터를 구성합니다 [3, 6, 7]. 할당된 각 객체에는 `@` 기호 뒤에 고유한 객체 ID가 부여되는데, 이 ID는 여러 스냅샷에 걸쳐 지속되므로 메모리 주소가 변경되더라도 힙 상태를 정확하게 비교할 수 있게 해줍니다 [6, 7]. +- **타임라인 시각화 및 막대(Bar)의 의미:** 타임라인 상단의 막대는 힙에서 새 객체가 할당된 시점과 그 크기(막대의 높이)를 나타냅니다 [3, 5, 8]. + - **파란색 막대 (Blue bars):** 타임라인 종료 시점까지 가비지 컬렉션(GC)되지 않고 메모리에 여전히 살아있는(live) 객체를 의미합니다 [1, 3, 8, 9]. + - **회색 막대 (Gray bars):** 타임라인 동안 할당되었으나 이후 가비지 컬렉터에 의해 성공적으로 수거되어 해제된 객체를 나타냅니다 [1, 3, 8, 9]. +- **메모리 누수(Memory Leak) 진단 과정:** 특정 사용자 작업(예: 할당 및 해제 버튼 클릭)을 반복할 때 **파란색 막대가 지속적으로 남는다면 이는 메모리 누수가 발생했을 가능성을 나타내는 주요 지표**입니다 [9, 10]. 분석 시 마우스를 드래그하여 특정 시간대로 확대(zoom in)하면, 해당 기간 동안 할당된 후 예상 수명을 넘겨 해제되지 않은 객체만 `Constructor` 창에 필터링하여 볼 수 있습니다 [1, 10-12]. +- **원인 식별 및 스택 트레이스 추적:** `Constructor` 창에서 특정 생성자를 클릭하면 `Retainers` 창에 해당 객체를 메모리에 유지시키는 참조 경로(retaining tree)가 표시됩니다 [11, 13]. 또한 할당된 타임라인 도구는 할당 당시의 스택 트레이스(stack trace)를 제공하므로, 개발자는 메모리 누수를 유발한 객체가 코드의 정확히 어느 부분에서 생성되었는지 파악하고 불필요한 참조를 수정할 수 있습니다 [1, 14, 15]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 지식 자산화 및 기존 네트워크 연동 단계. +- **정책 변화:** Memory & Systems 카테고리의 전문성 확보 및 링크 밀도 최적화. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Heap Snapshot]], [[Garbage Collection]], [[Memory Leak]], [[Retaining Path]], [[V8 Heap Architecture]] +- **Projects/Contexts:** [[Chrome DevTools]], [[V8 Engine]] +- **Contradictions/Notes:** 소스 전반에 걸쳐 내용의 모순은 없습니다. 다양한 소스가 일관되게 Allocation Timeline의 파란색/회색 막대의 의미와 메모리 누수를 추적하기 위한 스택 트레이스 및 Retainer 분석의 유용성을 강조하고 있습니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Allocation Timeline.md]] +--- diff --git a/Metaverse & Devices/Apple Vision Pro Ecosystem.md b/Metaverse & Devices/Apple Vision Pro Ecosystem.md new file mode 100644 index 00000000..53e44b13 --- /dev/null +++ b/Metaverse & Devices/Apple Vision Pro Ecosystem.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-546548 +category: "[[10_Wiki/💡 Topics/Metaverse & Devices]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Mega Batch - Wikified Apple Vision Pro Ecosystem" +--- + +# [[Apple Vision Pro Ecosystem]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 핵심 요약 작업 진행 중 + +## 📖 구조화된 지식 (Synthesized Content) +본문 상세 구성 진행 중 + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 지식 자산화 및 기존 네트워크 연동 단계. +- **정책 변화:** Metaverse & Devices 카테고리의 전문성 확보 및 링크 밀도 최적화. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Apple Vision Pro Ecosystem.md]] +--- diff --git a/Metaverse/Architecture.md b/Metaverse/Architecture.md new file mode 100644 index 00000000..a6ff9f14 --- /dev/null +++ b/Metaverse/Architecture.md @@ -0,0 +1,29 @@ +--- +id: P-REINFORCE-METAVERSE-001 +category: "[[10_Wiki/💡 Topics/Metaverse]]" +confidence_score: 0.88 +tags: [metaverse, architecture, digital-twin, spatial] +last_reinforced: 2026-04-20 +github_commit: "batch-reinforce-03" +--- + +# [[Metaverse Architecture]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 가상 공간의 물리적 제약을 넘어 사용자의 사회적 상호작용과 경제 활동을 최적화하는 디지털 공간 설계의 미학. + +## 📖 구조화된 지식 (Synthesized Content) +- **추출된 패턴:** 실감형 렌더링, 네트워크 레이턴시 관리, 사용자 아바타 인터랙션을 하나로 엮는 공간 컴퓨팅 아키텍처 패턴. +- **세부 내용:** + - 디지털 트윈 기술을 통한 현실 세계와의 동기화. + - 사용자 저작 도구(UGC)를 활용한 개방형 생태계 구축. + - 신뢰할 수 있는 가상 경제 시스템(Blockchain/Tokenomics)과의 결합. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 단순 3D 게임 공간에서 현실의 연장선인 '지속적인 가상 세계'로 개념 확장. +- **정책 변화:** 지식 구조(w2) 관점에서 게임 디자인 이론과의 융합 필요성 강조. + +## 🔗 지식 연결 (Graph) +- **Parent:** [[10_Wiki/💡 Topics/Metaverse]] +- **Related:** [[Digital-Twin]], [[Spatial-Computing]], [[Avatar-Interaction]] +- **Raw Source:** [[00_Raw/2026-04-20/Metaverse Architecture.md]] diff --git a/Metaverse/Spatial_Computing.md b/Metaverse/Spatial_Computing.md new file mode 100644 index 00000000..7ff81a59 --- /dev/null +++ b/Metaverse/Spatial_Computing.md @@ -0,0 +1,29 @@ +--- +id: P-REINFORCE-METAVERSE-002 +category: "[[10_Wiki/💡 Topics/Metaverse]]" +confidence_score: 0.94 +tags: [metaverse, spatial-computing, ar, vr, xr] +last_reinforced: 2026-04-20 +github_commit: "batch-reinforce-04" +--- + +# [[Spatial Computing]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 화면 속에 갇혀 있던 디지털 정보를 우리가 발 딛고 서 있는 물리적 공간으로 끌어내어 확장하는 계산 패러다임. + +## 📖 구조화된 지식 (Synthesized Content) +- **추출된 패턴:** 사용자의 시선, 손동작, 공간의 기하학적 구조를 인식하여 디지털 콘텐츠를 현실에 고정(Anchoring)하는 공간 인식 패턴. +- **세부 내용:** + - SLAM(Simultaneous Localization and Mapping)을 기반으로 한 정밀 위치 추적. + - 6DOF(Degree of Freedom) 인터랙션 설계 표준. + - 가상과 현실이 중첩되는 혼합 현실(XR) 생태계의 UI/UX 문법. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 2D 평면 기반 인터페이스(GUI)에서 공간 기반 인터페이스(ZUI/SUI)로의 대대적 이동. +- **정책 변화:** 사용자 만족도(w3) 피드백에 따라 공간 피로도 감소를 위한 설계 지침 비중 상향. + +## 🔗 지식 연결 (Graph) +- **Parent:** [[10_Wiki/💡 Topics/Metaverse]] +- **Related:** [[Architecture]], [[MR]], [[SLAM]] +- **Raw Source:** [[00_Raw/2026-04-20/Spatial Computing.md]] diff --git a/Physics & Simulation/Aerospace Flight Simulation.md b/Physics & Simulation/Aerospace Flight Simulation.md new file mode 100644 index 00000000..34b3f74c --- /dev/null +++ b/Physics & Simulation/Aerospace Flight Simulation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-FE444C +category: "[[10_Wiki/💡 Topics/Physics & Simulation]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Batch 10 - Wikified Aerospace Flight Simulation" +--- + +# [[Aerospace Flight Simulation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 핵심 내용 요약 예정 + +## 📖 구조화된 지식 (Synthesized Content) +세부 본문 내용 구성 예정 + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 신규 지식 유입에 따른 기존 지식과의 정합성 검증 단계. +- **정책 변화:** Physics & Simulation 분야의 체계적 지식 자산화 진행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Aerospace Flight Simulation.md]] +--- diff --git a/Programming & Formal Methods/Type Theory.md b/Programming & Formal Methods/Type Theory.md new file mode 100644 index 00000000..4d1c1b5c --- /dev/null +++ b/Programming & Formal Methods/Type Theory.md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AI-054 +category: "[[10_Wiki/💡 Topics/Programming & Formal Methods]]" +confidence_score: 0.96 +tags: [type theory, formal verification, type system, compiler] +last_reinforced: 2026-06-XX +github_commit: "[P-Reinforce] Processed Type Theory." +--- + +# [[Type Theory]] (타입 이론) + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 프로그래밍 언어의 타입 시스템을 수학적 공리(Axiom)와 논리학에 기반하여 분석하고, 프로그램의 안전성과 정확성을 컴파일 타임에 증명하는 학문이다. + +## 📖 구조화된 지식 (Synthesized Content) +- **정의:** 타입을 단순히 데이터의 분류를 넘어, 시스템이 가질 수 있는 '속성'과 '규칙'으로 바라보는 접근법이다. 프로그램의 정적 분석을 수학적 증명 과정으로 확장한다. +- **주요 개념:** + 1. **타입 추론 (Type Inference):** 코드를 작성할 때 타입을 명시하지 않아도 컴파일러가 타입 규칙에 따라 자동으로 타입을 유추하는 능력. + 2. **계산 가능성(Computability) 및 안전성:** 타입 이론의 궁극적 목표는 프로그램이 어떤 조건에서도 예측 불가능한 오류 없이 동작함을 수학적으로 증명하는 것이다 (Formal Verification). + 3. **Advanced Features:** 고급 언어 기능인 추상 데이터 타입, 범주론적 접근 등은 컴파일러 설계 자체를 학문적으로 다룬다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 완벽한 타입 안전성(Type Safety)을 달성하는 것은 매우 어려우며, 실제 개발에서는 '실용적인 타협점' (예: Runtime Validation, Zod 사용)이 필요하다. +- **정책 변화:** 타입 시스템은 언어 차원의 기능뿐만 아니라, 도메인 모델링(DDD)의 규칙을 코드로 강제하는 도구로 활용되어 그 가치가 극대화되고 있다. + +## 🔗 지식 연결 (Graph) +- Parent: [[Type Safety]] +- Related: [[Formal Methods in Software Engineering]] , [[Algebraic-Data-Types]] , [[TypeScript Type System]] +- Raw Source: [[00_Raw/Type Theory.md]] +--- \ No newline at end of file diff --git a/Programming & Language/API 응답 및 에러 핸들링 아키텍처.md b/Programming & Language/API 응답 및 에러 핸들링 아키텍처.md new file mode 100644 index 00000000..576101e7 --- /dev/null +++ b/Programming & Language/API 응답 및 에러 핸들링 아키텍처.md @@ -0,0 +1,37 @@ +--- +id: P-REINFORCE-AUTO-B2F9C0 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - API 응답 및 에러 핸들링 아키텍처" +--- + +# [[API 응답 및 에러 핸들링 아키텍처]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> API 응답 및 에러 핸들링 아키텍처는 시스템 내에서 발생하는 에러를 예상 가능한 것과 그렇지 않은 것으로 구분하고, 이를 클라이언트에게 일관되고 예측 가능한 형태로 전달하기 위한 설계 방식입니다. 주로 '예외 던지기(throw exceptions)' 대신 명시적인 결과 객체(Result 타입)나 식별 가능한 유니온(Discriminated Unions)을 활용하여 타입 안전성을 확보하고, 컨트롤러 계층에서 응답의 제어 흐름을 명확히 관리하는 것을 목표로 합니다. + +## 📖 구조화된 지식 (Synthesized Content) +* **에러의 분류와 처리 철학** + 에러는 애플리케이션 관점에서 '예상 가능한 에러(Expected errors)'와 '예상치 못한 에러(Unexpected errors/Defects)'로 나뉩니다 [1, 2]. 400 Bad Request나 504 Gateway Timeout 같은 예상 가능한 에러는 예외(Exception)로 던지기보다는 명시적인 에러 타입으로 반환하여 시스템이 복구 가능하도록 제어해야 합니다 [1]. +* **Result 패턴을 통한 명시적 에러 반환** + 에러 발생 시 무분별하게 예외를 던지면 제어 흐름을 파악하기 어렵고 타입 시스템에서 반환 타입을 명확히 알 수 없습니다 [3]. 이를 해결하기 위해 함수형 프로그래밍 언어에서 영감을 받은 `Result` 타입(예: `neverthrow` 라이브러리의 `Ok`, `Err`)을 사용하여, 함수가 어떤 에러를 발생시킬 수 있는지 명시적으로 선언하는 방식이 권장됩니다 [4-6]. 이 방식을 통해 컴파일러 수준에서 모든 에러 상황을 처리하도록 강제할 수 있습니다 [7]. +* **식별 가능한 유니온(Discriminated Unions)을 이용한 응답 모델링** + API 응답을 다룰 때는 식별 가능한 유니온을 활용하는 것이 이상적입니다 [8, 9]. 응답 객체에 `status: "success"`나 `status: "error"`와 같은 공통 속성(판별자)을 두어 성공 시에는 데이터(data)를, 에러 시에는 에러 메시지(error)를 포함하도록 모델링하면, TypeScript의 완전성 검사(Exhaustiveness Checking)를 통해 처리되지 않은 상태가 없도록 컴파일 시점에 검증할 수 있습니다 [8, 9]. +* **메타데이터 활용과 컨트롤러 중심의 제어 흐름** + 응답 객체에 `_tag`와 같은 메타데이터 속성을 포함하여 내부 로직 및 응답 객체를 구분하면, 마이크로서비스 및 클라이언트 환경 간에 일관된 제어 흐름을 제공할 수 있습니다 [10, 11]. 또한 컨트롤러는 요청과 응답의 모든 흐름을 관리해야 하며, 전역 Catch-all 미들웨어는 비즈니스 로직의 제어 흐름을 담당하는 대신 오직 예상치 못한 결함을 처리하고 개발자에게 알리는 용도로만 사용해야 합니다 [12, 13]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Result Type]], [[Discriminated Unions]], [[Exception Handling]] +- **Projects/Contexts:** [[TypeScript API Development]], [[Server Architecture]] +- **Contradictions/Notes:** 전역 예외 처리기(Global Exception Handler)를 두고 컨트롤러에서 예외를 발생시키는 방식이 코드가 깔끔해진다고 선호하는 개발자들도 있지만, Result 패턴을 지지하는 개발자들은 예외를 던지는 방식이 제어 흐름을 끊고 타입 시스템으로 에러를 파악할 수 없게 하므로 예상 가능한 에러는 명시적인 타입으로 반환해야 한다고 반대합니다 [7, 14-16]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/API 응답 및 에러 핸들링 아키텍처.md]] +--- diff --git a/Programming & Language/AST (추상 구문 트리).md b/Programming & Language/AST (추상 구문 트리).md new file mode 100644 index 00000000..b0254d67 --- /dev/null +++ b/Programming & Language/AST (추상 구문 트리).md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-7DEA60 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - AST (추상 구문 트리)" +--- + +# [[AST (추상 구문 트리)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> AST(추상 구문 트리)는 소스 코드를 파싱하여 얻어지는 코드의 추상적인 구문 및 문법적 구조를 표현하는 트리 형태의 데이터 구조입니다 [1, 2]. 이는 코드의 구문적 특성과 어휘적 특성을 보존하지만, 띄어쓰기나 들여쓰기와 같은 레이아웃(Layout) 특성은 캡처하지 못한다는 특징을 지닙니다 [2, 3]. AST는 코드 스타일을 분석하는 코드 문체론(Code Stylometry)이나 코드를 실행하지 않고 취약점을 탐지하는 정적 애플리케이션 보안 테스트(SAST) 등 다양한 소스 코드 분석 기술의 핵심적인 기반 모델로 활용됩니다 [2, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +* **구조적 특성 및 추상화:** AST는 소스 코드를 구문 분석(Parsing)하여 프로그램의 문법적 구조를 트리로 모델링하여 생성됩니다 [4]. 구체 구문 트리(CST)와 비교했을 때 AST는 들여쓰기, 공백 등의 코드 레이아웃 특성을 생략하고 추상화합니다 [2]. 따라서 코드를 포맷팅하여 간격을 변경하거나 철저히 재들여쓰기(re-indent)를 수행하더라도 구문 분석 후에는 구조가 동일한 AST가 도출됩니다 [3]. +* **정적 애플리케이션 보안 테스트(SAST)에서의 활용:** SAST 도구는 프로그램의 구조와 구문을 평가할 때 소스 코드를 파싱하여 AST를 구축합니다 [4]. 구축된 AST 구조 위에서 다양한 분석 기법을 적용함으로써, 코드를 실제 실행하지 않고도 코딩 실수, 보안 취약점 및 성능 병목 현상과 같은 잠재적 문제들을 찾아냅니다 [4]. +* **코드 문체론(Code Stylometry) 및 작성자 식별:** 기계 학습 기반의 코드 문체론에서 AST는 개발자가 언어의 문법 구조를 어떻게 조직화하는지 나타내는 구문적 특징(Syntactic features)을 추출하는 수단으로 사용됩니다 [2]. AST 노드의 조합이나 노드 유형 기반의 특징들은 소스 코드 및 실행 파일로부터 작성자를 식별하는 강력한 지표로 활용됩니다 [5, 6]. +* **린팅(Linting) 등 도구에서의 활용:** 정적 분석을 돕는 ESLint와 같은 도구에서도 AST가 활용됩니다. 예를 들어 `eslint-plugin-jsx-a11y` 플러그인은 JSX 구조 내의 접근성 문제에 대하여 즉각적인 AST 린팅 피드백을 제공하여 개발자를 돕습니다 [7]. 또한, 디컴파일된 바이너리를 `Joern`과 같은 도구를 통해 파싱하여 AST를 구성한 뒤 다양한 코드 특징을 추출할 수도 있습니다 [6]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[CST (구체 구문 트리)]], [[SAST (정적 애플리케이션 보안 테스트)]], [[Code Stylometry (코드 문체론)]] +- **Projects/Contexts:** [[ESLint]], [[Joern]] +- **Contradictions/Notes:** 소스에 따르면 코드 작성자 식별(Authorship Attribution) 작업 시 AST 모델만을 사용하면 들여쓰기나 공백 등 개인의 레이아웃 코딩 스타일이 캡처되지 않는 한계가 있습니다 [2]. 실제로 실험 결과, AST 기반 접근 방식보다 이러한 레이아웃 요소를 포함하는 CST(구체 구문 트리)를 사용할 때 작성자 식별 정확도가 눈에 띄게(약 17%) 향상되는 것으로 나타납니다 [8, 9]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/AST (추상 구문 트리).md]] +--- diff --git a/Programming & Language/AST(Abstract Syntax Tree).md b/Programming & Language/AST(Abstract Syntax Tree).md new file mode 100644 index 00000000..f55bc9c5 --- /dev/null +++ b/Programming & Language/AST(Abstract Syntax Tree).md @@ -0,0 +1,37 @@ +--- +id: P-REINFORCE-AUTO-C7BE0D +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - AST(Abstract Syntax Tree)" +--- + +# [[AST(Abstract Syntax Tree)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> AST(Abstract Syntax Tree, 추상 구문 트리)는 소스 코드를 파싱하여 프로그래밍 언어의 문법적 구조를 트리 형태로 표현한 데이터 구조입니다. 공백이나 들여쓰기 같은 표면적인 레이아웃 정보는 배제하고 본질적인 구문 특징과 알고리즘 구조만을 보존하는 것이 특징입니다 [1]. 주로 SAST(정적 애플리케이션 보안 테스트), 린팅(Linting), 그리고 코드 작성자를 식별하는 코드 스타일로메트리(Code Stylometry) 분야에서 코드를 분석하는 핵심 기반으로 사용됩니다 [1, 2]. + +## 📖 구조화된 지식 (Synthesized Content) +* **AST의 구조적 특징 및 CST와의 차이** + AST는 소스 코드를 구문 분석(Parsing)하여 만들어지며, 컴파일러나 분석 도구가 코드를 이해하는 추상적인 뼈대 역할을 합니다 [1, 2]. 코드의 들여쓰기나 줄 바꿈 등 레이아웃 속성을 철저히 보존하는 CST(Concrete Syntax Tree)와 달리, AST는 이러한 레이아웃 특징을 무시합니다 [1, 3]. 따라서 코드를 포맷팅하거나 여백을 크게 수정하더라도 구문이 동일하다면 파싱 후 생성되는 AST의 구조는 변하지 않습니다 [3]. + +* **정적 분석(Static Analysis) 및 보안 스캐닝에서의 역할** + 소프트웨어의 취약점을 찾는 SAST 도구들은 소스 코드를 실행하지 않고 파싱하여 AST를 구축한 뒤, 여기에 다양한 분석 기법을 적용하여 코드의 논리적 오류와 보안 문제를 탐지합니다 [2]. 또한, `eslint-plugin-jsx-a11y`와 같은 린터 플러그인들은 AST를 기반으로 정적 검사를 수행해 코드 오류에 대한 즉각적인 피드백을 제공합니다 [4]. AI를 활용한 코드 리뷰 시스템 역시 조건문, 루프, try-catch 구조 등의 AST 노드 수를 인지하는 방식으로 코드의 구조적 복잡도를 계산합니다 [5]. + +* **코드 스타일로메트리(작성자 식별)에서의 활용** + 기계학습을 활용해 소스 코드의 작성자를 추적하는 '코드 스타일로메트리' 연구에서 AST는 작성자 고유의 구문적(Syntactic) 특성을 추출하는 표준적인 표현 방식으로 사용됩니다 [1, 6]. 작성자가 선호하는 문법 구조, 노드의 바이그램(bigram), 트리 전체의 노드 수, 너비와 깊이 등 AST 기반의 특징들은 표면적인 타이포그래피나 변수명보다 위조하기가 훨씬 어려워 작성자의 고유한 알고리즘적 특징을 포착하는 데 매우 중요하게 활용됩니다 [7-9]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[CST(Concrete Syntax Tree)]], [[정적 애플리케이션 보안 테스트(SAST)]], [[코드 스타일로메트리(Code Stylometry)]], [[정적 분석(Static Analysis)]] +- **Projects/Contexts:** [[기계학습 기반의 소스 코드 저자 식별 연구]], [[AI 기반 코드 복잡도 분석(카카오)]], [[정적 보안 취약점 스캐닝 파이프라인]] +- **Contradictions/Notes:** AST 기반의 분석은 작성자의 본질적인 프로그래밍 구조를 파악하고 위조 공격에 강하다는 장점이 있지만, 공백이나 들여쓰기 등 개발자의 개성이 묻어나는 '레이아웃 특징'을 담지 못합니다. 이로 인해 소스 코드 작성자 식별 실험에서 AST 기반 모델(51.00%)은 레이아웃 정보까지 포함하는 CST 기반 모델(67.86%)에 비해 상대적으로 낮은 정확도를 보였습니다 [10, 11]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/AST(Abstract Syntax Tree).md]] +--- diff --git a/Programming & Language/Abstract Syntax Tree (AST).md b/Programming & Language/Abstract Syntax Tree (AST).md new file mode 100644 index 00000000..e4f68822 --- /dev/null +++ b/Programming & Language/Abstract Syntax Tree (AST).md @@ -0,0 +1,37 @@ +--- +id: P-REINFORCE-AI-696634 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Batch 9 - Wikified Abstract Syntax Tree (AST)" +--- + +# [[Abstract Syntax Tree (AST)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 추상 구문 트리(AST, Abstract Syntax Tree)는 소스 코드를 파싱(Parsing)한 후 해당 언어의 문법적 구조를 계층적으로 표현한 트리 형태의 데이터 구조입니다 [1, 2]. 구체적 구문 트리(CST)와 달리 여백, 들여쓰기, 주석 등과 같은 레이아웃 및 스타일적 요소를 추상화하여 배제하며, 주로 소스 코드의 구문(syntax) 및 일부 어휘(lexical)적 특징만을 보존합니다 [1, 3, 4]. 이러한 특성 덕분에 주로 정적 애플리케이션 보안 테스트(SAST) 도구에서 오류를 분석하거나, 기계 학습을 통한 코드 저자 식별(Code Stylometry) 모델에서 코드를 표현하는 핵심 기반으로 폭넓게 활용됩니다 [1, 2, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +* **AST의 기본 구조와 특징:** + AST는 소스 코드를 구문 분석하여 생성되며, 개발자가 언어의 문법 구조를 어떻게 조직했는지를 나타냅니다 [1]. 코드 내에서 들여쓰기를 재조정하는 등 레이아웃이나 시각적 형태를 변경하는 소스 대 소스(source-to-source) 변환이 발생하더라도, 파싱 후 생성되는 AST의 구조는 동일하게 유지됩니다 [3]. 전처리 과정을 거친 AST 표현에서는 기본적으로 주석이나 지시어(directives)가 포함되지 않으며, 매크로 역시 확장되지 않은 상태로 맵핑됩니다 [4]. 또한, Eclipse와 같은 환경에서 AST 노드는 단순한 1대1 매핑 구조가 아니라, 구문적 역할에 따라 여러 AST 인터페이스를 다중으로 구현하는 등 복잡한 클래스 계층(다형성) 구조를 띠게 됩니다 [6]. + +* **정적 애플리케이션 보안 테스트(SAST)에서의 활용:** + 정적 분석 기술은 프로그램을 실행하지 않고 소스 코드 자체를 평가하는 데 사용됩니다. 이 과정에서 SAST 도구들은 소스 코드를 파싱하여 추상 구문 트리(AST)를 구축합니다 [2]. 구축된 AST를 기반으로 다양한 분석 기법을 적용하여 코딩 실수, 보안 취약점, 성능 병목 현상 등 잠재적인 문제를 탐지해 냅니다 [2]. + +* **코드 스타일로메트리(저자 식별)에서의 역할:** + 코드의 저자를 자동 식별하는 기계 학습 기반의 코드 스타일로메트리(Code Stylometry) 연구에서 AST는 소스 코드를 표현하는 주요 수단으로 쓰입니다 [1, 5]. AST는 레이아웃적 특징을 포착하지는 못하지만, 개발자 특유의 추상적인 구문적 특징과 본질적인 코딩 스타일을 추출하는 데 탁월합니다 [7]. 실제 연구에 따르면, 파싱된 코드의 AST 노드 유형의 유니그램(unigram) 빈도나 가능한 모든 AST 노드 바이그램(bigram)의 tf-idf 값 등은 특정 프로그래머를 식별하는 데 매우 강력하고 핵심적인 특징(Feature)으로 작용하는 것으로 보고되었습니다 [5, 8]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 신규 문서로, 기존 정보와의 충돌 분석 예정. +- **정책 변화:** Programming & Language 카테고리의 지식 연결망 강화를 위한 표준 위키화 적용. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Concrete Syntax Tree (CST)]], [[Static Application Security Testing (SAST)]], [[Code Stylometry]], [[Parsing]] +- **Projects/Contexts:** [[기계 학습 기반 저자 식별 (Machine Learning-based Code Stylometry)]], [[Eclipse C/C++ Development Tools (CDT)]], [[코드 정적 분석 도구]] +- **Contradictions/Notes:** 소스 코드의 본질적이고 구문적인 스타일을 분석하는 데는 AST가 핵심적으로 사용되지만, 코드의 들여쓰기, 공백과 같은 시각적 레이아웃 특징을 담아내지는 못합니다. 따라서 포맷팅이나 난독화 등이 프로그래머의 식별 가능성에 미치는 영향을 분석해야 할 경우에는 AST보다는 이를 모두 포함하는 구체적 구문 트리(CST)를 사용하는 것이 더 효과적이라는 지적이 있습니다 [1, 3, 7]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Abstract Syntax Tree (AST).md]] +--- diff --git a/Programming & Language/Advanced-Design-Patterns-in-TypeScript.md b/Programming & Language/Advanced-Design-Patterns-in-TypeScript.md new file mode 100644 index 00000000..f1814798 --- /dev/null +++ b/Programming & Language/Advanced-Design-Patterns-in-TypeScript.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-82084D +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Batch 10 - Wikified Advanced-Design-Patterns-in-TypeScript" +--- + +# [[Advanced-Design-Patterns-in-TypeScript]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 핵심 내용 요약 예정 + +## 📖 구조화된 지식 (Synthesized Content) +세부 본문 내용 구성 예정 + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 신규 지식 유입에 따른 기존 지식과의 정합성 검증 단계. +- **정책 변화:** Programming & Language 분야의 체계적 지식 자산화 진행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Advanced-Design-Patterns-in-TypeScript.md]] +--- diff --git a/Programming & Language/Albion Online (Full Loot_Player-Driven Production).md b/Programming & Language/Albion Online (Full Loot_Player-Driven Production).md new file mode 100644 index 00000000..dace6460 --- /dev/null +++ b/Programming & Language/Albion Online (Full Loot_Player-Driven Production).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-DCA70F +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Albion Online (Full Loot_Player-Driven Production)" +--- + +# [[Albion Online (Full Loot_Player-Driven Production)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Albion Online (Full Loot_Player-Driven Production).md]] +--- diff --git a/Programming & Language/Algebraic-Data-Types-in-TypeScript.md b/Programming & Language/Algebraic-Data-Types-in-TypeScript.md new file mode 100644 index 00000000..0fe9229f --- /dev/null +++ b/Programming & Language/Algebraic-Data-Types-in-TypeScript.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-9FC7C3 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Batch 11 - Wikified Algebraic-Data-Types-in-TypeScript" +--- + +# [[Algebraic-Data-Types-in-TypeScript]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 작업 중 + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중 + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 신규 지식 카테고리화 및 연결성 강화. +- **정책 변화:** Programming & Language 분야의 지식 자산 보호 및 네트워크 확장. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Algebraic-Data-Types-in-TypeScript.md]] +--- diff --git a/Programming & Language/Allocation Timeline(할당 타임라인).md b/Programming & Language/Allocation Timeline(할당 타임라인).md new file mode 100644 index 00000000..8e1bd65a --- /dev/null +++ b/Programming & Language/Allocation Timeline(할당 타임라인).md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-891010 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Allocation Timeline(할당 타임라인)" +--- + +# [[Allocation Timeline(할당 타임라인)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Allocation Timeline(할당 타임라인)은 Chrome 및 Edge DevTools에서 제공하는 프로파일링 도구로, 적절하게 가비지 컬렉션(Garbage Collection)되지 않고 메모리를 계속 점유하는 객체를 찾아 메모리 누수를 추적하는 데 사용됩니다 [1, 2]. 이 도구는 힙 프로파일러의 상세한 스냅샷 정보와 타임라인 패널의 점진적 추적 기능을 결합하여, 기록 중 발생하는 모든 메모리 할당을 스택 트레이스와 함께 기록합니다 [1-3]. 결과적으로 시각적인 막대(파란색 및 회색)를 통해 메모리에 남아있는 객체와 이미 수거된 객체를 구별하여 보여줍니다 [3-5]. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Garbage Collection]], [[Memory Leak]], [[Heap Snapshot]] +- **Projects/Contexts:** [[Chrome DevTools]], [[V8 Engine]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Allocation Timeline(할당 타임라인).md]] +--- diff --git a/Programming & Language/Ambient Contexts.md b/Programming & Language/Ambient Contexts.md new file mode 100644 index 00000000..f3745772 --- /dev/null +++ b/Programming & Language/Ambient Contexts.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-138364 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Mega Batch - Wikified Ambient Contexts" +--- + +# [[Ambient Contexts]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 핵심 요약 작업 진행 중 + +## 📖 구조화된 지식 (Synthesized Content) +본문 상세 구성 진행 중 + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 지식 자산화 및 기존 네트워크 연동 단계. +- **정책 변화:** Programming & Language 카테고리의 전문성 확보 및 링크 밀도 최적화. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Ambient Contexts.md]] +--- diff --git a/Programming & Language/Ambient Declarations.md b/Programming & Language/Ambient Declarations.md new file mode 100644 index 00000000..244c0401 --- /dev/null +++ b/Programming & Language/Ambient Declarations.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-F31A94 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Mega Batch - Wikified Ambient Declarations" +--- + +# [[Ambient Declarations]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 핵심 요약 작업 진행 중 + +## 📖 구조화된 지식 (Synthesized Content) +본문 상세 구성 진행 중 + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 지식 자산화 및 기존 네트워크 연동 단계. +- **정책 변화:** Programming & Language 카테고리의 전문성 확보 및 링크 밀도 최적화. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Ambient Declarations.md]] +--- diff --git a/Programming & Language/AppSec (애플리케이션 보안).md b/Programming & Language/AppSec (애플리케이션 보안).md new file mode 100644 index 00000000..42db74c5 --- /dev/null +++ b/Programming & Language/AppSec (애플리케이션 보안).md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-C35C99 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - AppSec (애플리케이션 보안)" +--- + +# [[AppSec (애플리케이션 보안)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 애플리케이션 보안(AppSec)은 잠재적인 위협과 취약점으로부터 소프트웨어 애플리케이션을 보호하기 위한 일련의 활동과 방식을 의미합니다 [1, 2]. 소프트웨어 개발 수명 주기(SDLC)의 모든 단계에 보안을 통합하여 코드가 프로덕션 환경에 배포되기 전에 코드 수준의 결함을 조기에 발견하고 수정하는 것을 목표로 합니다 [3, 4]. 이를 위해 SAST, DAST, SCA 등 다양한 자동화된 보안 테스트 도구와 인간의 수동 코드 리뷰를 결합하여 애플리케이션의 전반적인 보안 태세를 강화합니다 [4-6]. + +## 📖 구조화된 지식 (Synthesized Content) +* **주요 AppSec 도구 및 방법론:** AppSec은 포괄적인 보안을 제공하기 위해 여러 종류의 도구를 조합하여 사용합니다. 소스 코드 자체를 분석하여 논리적 취약점을 찾는 정적 애플리케이션 보안 테스트(SAST), 실행 중인 애플리케이션을 외부에서 테스트하여 런타임 문제를 잡는 동적 애플리케이션 보안 테스트(DAST), 오픈소스 및 서드파티 라이브러리의 알려진 취약점과 라이선스를 분석하는 소프트웨어 구성 분석(SCA), 그리고 런타임 환경에 내장되어 정적 분석과 동적 분석의 장점을 결합하는 대화형 애플리케이션 보안 테스트(IAST)가 대표적입니다 [4, 6-9]. +* **SDLC 통합 및 시프트 레프트(Shift-Left):** 현대 AppSec의 핵심은 취약점 탐지 및 조치 과정을 개발 초기 단계로 앞당기는 '시프트 레프트' 전략입니다 [10, 11]. IDE 플러그인이나 CI/CD 파이프라인, 풀 리퀘스트(PR) 단계에 보안 검사를 내장함으로써, 개발자가 코드를 작성하는 즉시 실시간으로 문제를 인지하고 수정할 수 있어 프로덕션 이후에 결함을 수정하는 것보다 시간과 비용을 크게 절감할 수 있습니다 [3, 10, 12, 13]. +* **AppSec에서의 AI 활용:** 인공지능(AI)과 대형 언어 모델(LLM)의 도입으로 AppSec 도구들은 단순한 규칙 기반 패턴 매칭을 넘어 코드의 문맥과 의미를 이해하는 수준으로 진화하고 있습니다 [14, 15]. AI 기반 정적 분석 도구들은 데이터 흐름(Data flow) 및 오염 분석(Taint analysis)을 통해 파일 간 경계를 넘나드는 복잡한 취약점을 파악하고, 오탐지(False Positive)율을 크게 낮춥니다 [16-18]. 나아가 취약점에 대한 자동 수정 코드(Auto-fix)를 생성하여 개발자의 워크플로우 내에서 즉각적인 픽스를 제안합니다 [18-20]. +* **수동 리뷰와 자동화 도구의 하이브리드 접근:** 자동화된 AppSec 도구는 확장성과 속도 면에서 뛰어나 수천 줄의 코드를 몇 초 만에 스캔하지만, 비즈니스 로직이나 아키텍처 설계의 의도를 파악하는 데는 한계(Context Blindness)가 있습니다 [21-23]. 따라서 강력한 보안을 위해서는 자동화 도구가 일상적인 구문 오류와 알려진 취약점(예: SQL 인젝션, XSS 패턴 등)을 일차적으로 걸러내고, 인간 리뷰어가 인증 로직, 데이터 암호화, 크로스 서비스 영향 등 컨텍스트와 도메인 전문성이 중요한 고위험 영역의 리뷰에 집중하는 하이브리드 접근 방식이 필수적입니다 [5, 24, 25]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[SAST (정적 애플리케이션 보안 테스트)]], [[DAST (동적 애플리케이션 보안 테스트)]], [[SCA (소프트웨어 구성 분석)]], [[SDLC (소프트웨어 개발 수명 주기)]] +- **Projects/Contexts:** [[시프트 레프트(Shift-Left) 전략]], [[하이브리드 코드 리뷰 프로세스]] +- **Contradictions/Notes:** 자동화된 AppSec 도구는 코드베이스 전체를 빠르고 일관되게 스캔하여 구문적 취약점을 찾아내지만, 비즈니스 로직이나 아키텍처의 의도를 이해하지 못해 오탐지(False Positives)를 유발할 수 있습니다. 따라서 도구에만 전적으로 의존하는 것은 위험하며, 복잡한 비즈니스 로직과 컨텍스트에 민감한 보안 위협을 식별하기 위해서는 반드시 인간 전문가에 의한 수동 코드 리뷰(Manual Code Review)가 병행되어야 한다고 소스들은 강조합니다 [23, 24, 26, 27]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/AppSec (애플리케이션 보안).md]] +--- diff --git a/Programming & Language/Assignability-Relation.md b/Programming & Language/Assignability-Relation.md new file mode 100644 index 00000000..2161547f --- /dev/null +++ b/Programming & Language/Assignability-Relation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-E1BF3A +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.95 +tags: [] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Mega Batch 2 - Wikified Assignability-Relation" +--- + +# [[Assignability-Relation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 작업 중 + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중 + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 지식 자산화 및 기존 네트워크 연동 단계. +- **정책 변화:** Programming & Language 카테고리의 전문성 확보 및 링크 밀도 최적화. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Assignability-Relation.md]] +--- diff --git a/Programming & Language/Athletic-Performance-Optimization.md b/Programming & Language/Athletic-Performance-Optimization.md new file mode 100644 index 00000000..e6049a79 --- /dev/null +++ b/Programming & Language/Athletic-Performance-Optimization.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-18F4BB +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Athletic-Performance-Optimization" +--- + +# [[Athletic-Performance-Optimization]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Athletic-Performance-Optimization.md]] +--- diff --git a/Programming & Language/Authorship Attribution.md b/Programming & Language/Authorship Attribution.md new file mode 100644 index 00000000..16dff010 --- /dev/null +++ b/Programming & Language/Authorship Attribution.md @@ -0,0 +1,39 @@ +--- +id: P-REINFORCE-AUTO-750690 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Authorship Attribution" +--- + +# [[Authorship Attribution]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +* **발전 배경과 개념:** + 저자 식별은 본래 손글씨나 문서의 물리적 특성을 주관적으로 감정하던 것에서 출발하여, 글의 내용과 어휘, 문법 등 '문체(Style)'를 통계적으로 분석하는 문체론(Stylometry)으로 발전했습니다 [3, 6, 7]. 1980년대 후반부터는 이 기법론이 소프트웨어에도 적용되기 시작하여, 프로그래머가 작성한 소스 코드나 실행 파일에서 고유한 프로그래밍 스타일을 추출하는 '코드 문체론(Code Stylometry)'으로 확장되었습니다 [1, 2]. +* **주요 식별 특징 (Features):** + 코드 문체론에서는 작성자의 스타일을 크게 세 가지 범주로 나누어 분석합니다. 첫째, 문자와 단어의 사용 패턴을 보는 '어휘적(Lexical) 특징', 둘째, 파싱된 추상 구문 트리(AST)의 구조를 분석하는 '구문적(Syntactic) 특징', 셋째, 띄어쓰기와 들여쓰기 등을 포함하는 '레이아웃(Layout) 특징'입니다 [8]. 컴파일된 실행 파일(Binary)의 경우 레이아웃과 주석이 제거되지만, 데이터 구조의 선택, 시스템/라이브러리 호출 패턴, 제어 흐름 그래프(CFG), 레지스터 흐름 등을 통해 여전히 작성자를 식별할 수 있습니다 [9-12]. +* **응용 분야와 프라이버시 위협:** + 이 기술은 코드 클론 탐지, 저작권 분쟁 해결, 표절 탐지(Plagiarism Detection) 및 유실된 저자 정보 복원 등에 매우 효과적으로 사용됩니다 [4, 13, 14]. 그러나 사이버 범죄자 추적을 넘어, 억압적인 정권 하에서 익명으로 검열 우회 도구나 프라이버시 강화 기술을 개발하는 오픈소스 기여자들의 신원을 노출시키는 데 악용될 수 있다는 심각한 우려가 제기되고 있습니다 [4, 5, 15, 16]. +* **코드 포맷팅과 축소화(Minification)의 영향:** + 개발자들이 코드의 일관성을 위해 Black과 같은 코드 포맷터(Formatter)나, 파일 크기를 줄이기 위한 축소기(Minifier)를 사용하면 작성자 고유의 레이아웃 특징 등이 훼손되어 저자 식별의 정확도가 유의미하게 하락합니다 [17-20]. 연구에 따르면, 구체 구문 트리(CST) 기반 분석에서 포맷팅과 축소화를 거친 코드는 원본에 비해 식별 정확도가 최대 18%가량(68%에서 50% 수준으로) 떨어졌습니다 [20, 21]. 하지만 이러한 하락에도 불구하고 무작위 추측 확률에 비해서는 월등히 높은 정확도를 보였으며, 단순히 포맷팅이나 축소화를 적용하는 것만으로는 저자 식별을 완전히 피할 수 없다는 것이 확인되었습니다 [21-24]. +* **적대적 코드 문체론 (Adversarial Code Stylometry):** + 저자 식별 기술에 대응하기 위해, 기계학습 모델(예: 랜덤 포레스트)의 결정 트리를 분석하여 자신의 코딩 스타일을 난독화(Obfuscation)하거나 다른 특정 개발자의 스타일을 정교하게 모방(Mimicry)하도록 돕는 연구가 진행되었습니다 [25, 26]. 이 기술을 자동화한 'StyleCounsel'과 같은 시스템은 사용자의 코드가 다른 사람의 코드로 오분류되도록 소스 코드 수정 권장 사항을 도출해 내며, 저자 식별 기술이 의도적인 조작에 취약할 수 있음을 입증했습니다 [25, 27, 28]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Code Stylometry]], [[Plagiarism Detection]], [[Code Formatting]], [[Adversarial Code Stylometry]] +- **Projects/Contexts:** [[Google Code Jam]] (소스 코드 저자 식별 연구에서 광범위하게 사용되는 주요 데이터셋), [[StyleCounsel]] (적대적 저자 식별 회피를 돕기 위해 개발된 도구) +- **Contradictions/Notes:** 소스코드가 컴파일되면 주석, 들여쓰기, 변수명 등이 파괴되므로 작성자의 흔적이 사라질 것이라 예상하기 쉽지만, 실제로는 컴파일러 최적화 수준과 관계없이 실행 파일 내 제어 흐름과 데이터 구조 선택 방식 등의 정보가 남아 있어 상당한 정확도로 저자 식별(Executable Code Attribution)이 가능합니다 [29, 30]. 또한, 포맷터와 Minifier의 사용이 코드 문체론을 교란하기는 하나 식별을 완벽히 방어해주지는 못합니다 [24, 31]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Authorship Attribution.md]] +--- diff --git a/Programming & Language/Autotelic Personality.md b/Programming & Language/Autotelic Personality.md new file mode 100644 index 00000000..f696bfab --- /dev/null +++ b/Programming & Language/Autotelic Personality.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-75E436 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Autotelic Personality" +--- + +# [[Autotelic Personality]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Autotelic Personality.md]] +--- diff --git a/Programming & Language/Autotelic-Personality.md b/Programming & Language/Autotelic-Personality.md new file mode 100644 index 00000000..1f3164a1 --- /dev/null +++ b/Programming & Language/Autotelic-Personality.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-13B1BE +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Autotelic-Personality" +--- + +# [[Autotelic-Personality]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Autotelic-Personality.md]] +--- diff --git a/Programming & Language/BM25 알고리즘 (Best Match 25).md b/Programming & Language/BM25 알고리즘 (Best Match 25).md new file mode 100644 index 00000000..3d0bec71 --- /dev/null +++ b/Programming & Language/BM25 알고리즘 (Best Match 25).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-CA15D0 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - BM25 알고리즘 (Best Match 25)" +--- + +# [[BM25 알고리즘 (Best Match 25)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/BM25 알고리즘 (Best Match 25).md]] +--- diff --git a/Programming & Language/Beat Saber 엑서게임 연구(Beat Saber Exergaming Study).md b/Programming & Language/Beat Saber 엑서게임 연구(Beat Saber Exergaming Study).md new file mode 100644 index 00000000..963c4ea3 --- /dev/null +++ b/Programming & Language/Beat Saber 엑서게임 연구(Beat Saber Exergaming Study).md @@ -0,0 +1,39 @@ +--- +id: P-REINFORCE-AUTO-C3E3B9 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Beat Saber 엑서게임 연구(Beat Saber Exergaming Study)" +--- + +# [[Beat Saber 엑서게임 연구(Beat Saber Exergaming Study)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 이 연구는 전 세계적으로 인기 있는 상업용 VR 엑서게임인 '비트 세이버(Beat Saber)'를 짧은 시간(10분)과 긴 시간(50분) 동안 플레이했을 때 사용자의 시력, 인지 능력, 그리고 주관적 VR 멀미에 미치는 사후 영향(aftereffects)을 조사한 연구이다 [1], [2], [3]. VR 엑서게임은 신체 활동을 장려하는 잠재력이 크지만, 사용자가 겪는 멀미나 시각적/인지적 후유증이 그 활용을 제한할 수 있기 때문에 이에 대한 안전성과 회복 시간을 파악하는 것을 목적으로 한다 [1], [4]. + +## 📖 구조화된 지식 (Synthesized Content) +* **연구 설계 및 참가자:** + 연구는 36명의 참가자를 대상으로 수행되었으며, 참가자들은 HTC Vive Pro HMD를 착용하고 비트 세이버를 플레이했다 [2], [5]. 참가자들은 각각 다른 날에 10분(짧은 노출)과 50분(긴 노출) 동안 게임을 수행하는 반복 측정 개체 내 설계(repeated measures within-subject design) 방식으로 실험에 참여했다 [2], [6]. +* **측정 지표 및 시점:** + 시력(조절 및 폭주), 인지 능력(CANTAB 5선택 반응 시간), 그리고 주관적 VR 멀미(시뮬레이터 멀미 설문지, SSQ) 지표를 VR 노출 전, 노출 직후, 그리고 노출 40분 후(지연 측정) 등 총 3번의 시점에 걸쳐 측정했다 [2], [7], [8], [9]. +* **시력 및 인지 부문 결과:** + 멀미로 인해 실험을 중도 포기한 참가자는 없어 게임의 내약성은 긍정적으로 평가되었다 [10], [11]. 시각의 조절(accommodation) 및 폭주(convergence) 기능은 노출 시간에 관계없이 게임 직후에 변화를 보였으나, 40분 후에는 모두 기준치로 회복되었다 [10]. 인지적 측면인 반응 시간에서는 우려할 만한 저하가 관찰되지 않았으며, 오히려 10분 노출 직후에는 참가자들의 움직임 속도가 약간 빨라진 것으로 나타났다 [10], [12]. +* **VR 멀미(SSQ) 부문 결과:** + 총 SSQ 점수는 VR 노출 직후 급격히 증가했으며, 10분 노출에 비해 50분 노출에서 유의미하게 더 높은 멀미 증상이 보고되었다 [10], [13]. 전반적인 그룹 평균으로 보면 40분 후에는 멀미 점수가 기준치로 떨어졌으나, 50분 노출 그룹의 약 14%(7명 중 1명 꼴)는 40분이 지난 시점에서도 여전히 높은 수준의 멀미를 호소했다 [10], [14]. 또한 짧은 노출에서 멀미를 크게 느낀 참가자는 긴 노출에서도 심한 증상을 겪을 확률이 거의 확실한 것으로 나타났다 [10], [4]. +* **안전 권고사항:** + 이러한 결과를 바탕으로, 연구진은 사용자가 긴 시간 VR을 플레이하기 전에 짧은 세션으로 미리 테스트해 볼 것을 권장한다 [4]. 또한, VR 기기 사용을 마친 후 운전과 같이 부상 위험을 초래할 수 있는 활동을 수행하기 전에는 멀미 후유증이 완전히 사라질 수 있도록 충분한 대기 시간(예: 최소 40분 이상)을 가져야 한다고 조언한다 [4]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[가상현실(VR)]], [[엑서게임(Exergaming)]], [[VR 멀미(VR Sickness)]], [[시뮬레이터 멀미 설문지(SSQ)]] +- **Projects/Contexts:** [[비트 세이버(Beat Saber)]] +- **Contradictions/Notes:** 그룹 전체의 평균 데이터를 보면 40분의 휴식 후 멀미 수치가 원래 수준으로 회복되는 것처럼 보이지만, 개인 단위의 데이터를 살펴보면 50분 플레이 후 약 14%의 사용자는 여전히 심각한 수준의 멀미를 경험하므로 평균 수치만으로 부작용이 완전히 사라졌다고 단정하기는 어렵다 [10], [14]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Beat Saber 엑서게임 연구(Beat Saber Exergaming Study).md]] +--- diff --git a/Programming & Language/Beat Saber.md b/Programming & Language/Beat Saber.md new file mode 100644 index 00000000..e248b044 --- /dev/null +++ b/Programming & Language/Beat Saber.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-711498 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Beat Saber" +--- + +# [[Beat Saber]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 'Beat Saber'는 모션 트래킹 기술을 활용해 플레이어가 가상현실 속에서 광선검을 휘둘러 리듬에 맞춰 표적을 베고 장애물을 피하는 인기 VR 리듬 엑서게임(Exergame)입니다 [1]. 전 세계적으로 200만 장 이상 판매된 성공적인 상업 게임으로, 햅틱 및 시청각 피드백을 통해 높은 몰입감을 제공합니다 [1, 2]. 실제 테니스와 맞먹는 에너지 소모량을 바탕으로 신체 활동을 돕는 유용한 도구로 인정받고 있으며, VR 멀미(VR sickness) 및 몰입 상태(Flow state)를 분석하는 학술 연구에서도 널리 활용되고 있습니다 [2, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **게임의 특징과 신체적 효과:** Beat Games에서 개발한 Beat Saber는 플레이어에게 햅틱, 청각, 그리고 성과 기반 피드백을 제공하여 강렬한 몰입감을 선사합니다 [1]. 가상현실 건강 및 운동 연구소(VR Health Institute)에 따르면, 이 게임을 플레이할 때 소모되는 에너지는 실제 테니스를 치는 것과 유사합니다 [2]. 사용자들은 몰입형 환경이 운동의 힘든 강도로부터 주의를 분산시켜 주며, 현실에서의 운동과 비슷한 신체 활동 효과를 얻을 수 있다고 평가합니다 [4]. +- **VR 사후 효과(Aftereffects) 및 멀미 연구 도구:** 이 게임은 단기(10분) 및 장기(50분) VR 노출이 사용자의 시각, 인지, 웰빙 및 VR 멀미에 미치는 영향을 조사하는 연구의 테스트 베드로 사용되었습니다 [2, 5]. 연구 결과, Beat Saber는 멀미로 인한 중도 포기자가 발생하지 않을 정도로 전반적으로 플레이어들에게 잘 수용되는(well tolerated) 것으로 나타났습니다 [6, 7]. 발생하는 즉각적인 사후 효과 역시 대부분 일시적이었으며 게임 종료 40분 후 기저 수준으로 회복되었으나, 장시간(50분) 플레이한 일부 참가자(약 14%)는 회복 후에도 여전히 높은 수준의 멀미를 경험한 것으로 확인되었습니다 [6, 8]. +- **몰입(Flow) 상태 유도 및 검증:** Beat Saber는 플레이어의 기술과 과제의 난이도 간의 균형을 맞추기 용이한 통제된 싱글 플레이어 게임이라는 특성이 있습니다 [3]. 이러한 장점 덕분에 e스포츠 및 게임 환경에서 플레이어의 신경 생리학적 몰입 상태(Flow state)를 안정적으로 유도하고 측정하기 위한 실험실 기반의 고충실도 검증(high-fidelity validation) 연구 모델에서도 핵심적인 과제로 제안 및 활용됩니다 [3]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[VR Exergame]], [[VR Sickness]], [[Flow State]] +- **Projects/Contexts:** [[가상현실 노출 사후 효과(VR Aftereffects) 연구]], [[몰입 상태 예측 프레임워크(Flow State Prediction Framework)]] +- **Contradictions/Notes:** 소스 연구에 따르면 Beat Saber 플레이 후의 사후 효과(멀미 등)는 전반적으로 일시적이며 40분 내에 기저 수준으로 회복되어 멀미로 인한 실험 탈락자가 없었지만 [6, 7], 장시간(50분) 노출될 경우 특정 사용자 집단(약 14%)에서는 게임 종료 40분 후에도 여전히 높은 수준의 멀미가 유지되는 등 개인의 민감도와 노출 시간에 따라 상이한 결과가 나타납니다 [6, 8]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Beat Saber.md]] +--- diff --git a/Programming & Language/Beat Saber를 활용한 VR 엑서게임 후유증 연구(VR Exergaming Aftereffects).md b/Programming & Language/Beat Saber를 활용한 VR 엑서게임 후유증 연구(VR Exergaming Aftereffects).md new file mode 100644 index 00000000..6a87ee3a --- /dev/null +++ b/Programming & Language/Beat Saber를 활용한 VR 엑서게임 후유증 연구(VR Exergaming Aftereffects).md @@ -0,0 +1,49 @@ +--- +id: P-REINFORCE-AUTO-180522 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Beat Saber를 활용한 VR 엑서게임 후유증 연구(VR Exergaming Aftereffects)" +--- + +# [[Beat Saber를 활용한 VR 엑서게임 후유증 연구(VR Exergaming Aftereffects)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 이 연구는 인기 있는 가상현실(VR) 엑서게임인 'Beat Saber'를 각각 10분과 50분 동안 플레이한 후, 사용자의 시각, 인지 기능, 그리고 VR 멀미(VR Sickness)에 미치는 영향을 분석했습니다 [1], [2]. 연구 결과, 게임 직후 시각적 조절 및 폭주 능력의 변화와 멀미 증상이 증가했으나, 대부분의 경우 40분의 휴식 후 기준치로 회복되었습니다 [3]. 인지 기능 측면에서는 부정적인 후유증이 없었으며 오히려 단기 플레이 후 움직임 속도가 일시적으로 향상되었으나, 장시간(50분) 플레이한 일부 개인(약 14%)은 40분이 지나도 높은 수준의 멀미를 겪는 등 개인차가 큰 것으로 나타났습니다 [4], [5]. + +## 📖 구조화된 지식 (Synthesized Content) +- **연구 목적 및 설계** + - VR 엑서게임이 유발할 수 있는 시각, 인지, 웰빙(멀미) 측면의 후유증을 평가하기 위해 36명의 참가자를 대상으로 HTC Vive Pro HMD를 사용하여 Beat Saber 플레이 전, 직후, 그리고 40분 후(late)의 상태를 측정했습니다 [1], [6]. + - 노출 시간에 따른 차이를 확인하기 위해 단기(10분) 노출과 장기(50분) 노출로 나누어 실험을 진행했습니다 [1]. + +- **시각적 영향 (조절 및 폭주)** + - 10분 및 50분 노출 모두 VR 경험 직후 참가자의 안구 조절(accommodation)과 폭주(convergence) 기능에 유의미한 변화가 발생했습니다 [7], [8]. + - 이러한 시각적 변화는 노출 시간에 크게 영향을 받지 않았고(처음 10분 이내에 발생), 40분이 지난 후에는 모두 기준치로 회복되는 단기적 현상이었습니다 [9]. 이는 HMD의 폭주-조절 불일치(vergence-accommodation conflicts)에 기인한 것으로 보입니다 [9]. + +- **인지적 영향** + - 반응 시간(Reaction Time)을 통한 인지 테스트 결과, 결정 속도나 동작 속도에 대한 부정적인 영향은 발견되지 않았습니다 [8], [4]. + - 오히려 10분간의 단기 게임 플레이 직후에는 참가자들의 움직임 속도(movement speed)가 기준치보다 소폭 빨라지는 긍정적인 결과가 관찰되었습니다 [4]. + +- **VR 멀미 (SSQ 점수 분석)** + - 시뮬레이터 멀미 설문(SSQ) 결과, VR 노출 직후 전체 멀미 증상이 유의미하게 증가했으며, 50분 장기 노출이 10분 단기 노출보다 훨씬 높은 멀미 점수를 기록했습니다 [3], [10]. + - 집단 평균적으로는 40분 후 멀미 증상이 기준치로 돌아왔지만, 50분 노출 참가자의 약 14%는 40분 후에도 여전히 심각한 수준의 멀미를 보고했습니다 [3], [5]. + - 특히, 10분의 짧은 노출만으로도 높은 수준의 멀미를 경험한 사용자는 50분 노출 시에도 심각한 멀미를 경험할 가능성이 매우 높은 것으로 확인되었습니다 [3], [11]. + +- **권고 사항** + - 장시간의 VR 엑서게임에 돌입하기 전, 짧은 시간 동안 미리 체험하여 개인의 멀미 민감도를 확인하는 것이 좋습니다 [12]. + - 시각적 변화와 멀미 증상에서 완전히 회복될 수 있도록, VR 종료 후 최소 40분의 대기 시간(휴식)을 가진 뒤 운전과 같은 위험할 수 있는 활동을 하는 것이 권장됩니다 [13], [12]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[VR Sickness]], [[Vergence-Accommodation Conflicts]], [[Exergaming]], [[Simulator Sickness Questionnaire (SSQ)]] +- **Projects/Contexts:** [[Beat Saber]], [[HTC Vive Pro HMD]] +- **Contradictions/Notes:** 소스에 따르면 VR 엑서게임은 시각적 변화나 멀미와 같은 부작용을 동반할 수 있으나, 인지 능력 저하는 관찰되지 않았으며 짧은 시간 플레이 시에는 움직임 반응 속도 측면에서 일시적인 향상이 나타나는 상반된 결과가 있었습니다 [8], [4]. 또한, 집단의 멀미 증상은 대체로 40분 내에 회복되지만, 개인의 민감도에 따라 긴 시간 지속되는 소수의 예외(약 14%)가 존재한다는 점에 유의해야 합니다 [5]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Beat Saber를 활용한 VR 엑서게임 후유증 연구(VR Exergaming Aftereffects).md]] +--- diff --git a/Programming & Language/Biomechanical-Analysis.md b/Programming & Language/Biomechanical-Analysis.md new file mode 100644 index 00000000..80968c04 --- /dev/null +++ b/Programming & Language/Biomechanical-Analysis.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-C5D712 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Biomechanical-Analysis" +--- + +# [[Biomechanical-Analysis]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Biomechanical-Analysis.md]] +--- diff --git a/Programming & Language/Biomechanics.md b/Programming & Language/Biomechanics.md new file mode 100644 index 00000000..b197621e --- /dev/null +++ b/Programming & Language/Biomechanics.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-93212D +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Biomechanics" +--- + +# [[Biomechanics]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Biomechanics.md]] +--- diff --git a/Programming & Language/Black-box Testing.md b/Programming & Language/Black-box Testing.md new file mode 100644 index 00000000..a928dee8 --- /dev/null +++ b/Programming & Language/Black-box Testing.md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-DC07C2 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Black-box Testing" +--- + +# [[Black-box Testing]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 블랙박스 테스팅(Black-box Testing)은 애플리케이션의 내부 소스 코드를 보지 않고 외부에서 실행 중인 애플리케이션을 기반으로 테스트하는 방법입니다 [1], [2]. 대표적인 예로 DAST(동적 애플리케이션 보안 테스트)가 블랙박스 테스팅 방식을 취하며, 주로 CI 파이프라인의 후반부에 적용됩니다 [2]. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[DAST]], [[White-box Testing]], [[SAST]] +- **Projects/Contexts:** [[CI Pipeline]] +- **Contradictions/Notes:** 소스 데이터는 블랙박스 테스팅을 독립된 주제로 다루기보다는, 내부 소스 코드 기반의 정적 분석(SAST)인 화이트박스 테스팅과 대비되는 개념(DAST)으로 설명하고 있습니다 [1], [2]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Black-box Testing.md]] +--- diff --git a/Programming & Language/Blink.md b/Programming & Language/Blink.md new file mode 100644 index 00000000..51f88644 --- /dev/null +++ b/Programming & Language/Blink.md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-7F733B +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Blink" +--- + +# [[Blink]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Blink는 Chrome 브라우저에서 사용되는 렌더러(renderer) 엔진입니다 [1]. V8 엔진 외부에서 C++ 객체를 정의하고 할당하는 역할을 담당하며, 이러한 객체들은 메모리 힙 스냅샷 내에서 보통 `InternalNode` 카테고리로 표시됩니다 [2]. Blink는 'Oilpan'이라는 자체적인 가비지 컬렉터(Garbage Collector)를 보유하고 있으며, V8 엔진의 가비지 컬렉터와 상호 협력하여 동작합니다 [1]. + +## 📖 구조화된 지식 (Synthesized Content) +- **C++ 객체 및 힙 스냅샷(Heap Snapshot) 표현:** + Blink는 V8 엔진 영역 밖에서 할당되는 C++ 객체들을 정의합니다. 크롬 개발자 도구의 힙 스냅샷을 통해 메모리를 분석할 때, Blink가 생성한 이 객체들은 기본적으로 `InternalNode`라는 이름으로 그룹화되어 표시됩니다 [2]. 만약 이 `InternalNode`가 과도한 메모리를 점유하여 메모리 누수(Leak)가 의심될 경우, 실험적 기능(Experiments) 설정을 켜서 제네릭한 `InternalNode` 대신 실제 Blink의 C++ 클래스 이름을 직접 노출시켜 디버깅할 수 있습니다 [2]. +- **자체 가비지 컬렉터 'Oilpan' 및 V8과의 협력:** + 크롬의 렌더러인 Blink는 메모리를 관리하기 위해 'Oilpan'이라는 독자적인 가비지 컬렉터를 가지고 있습니다 [1]. 현재 V8 엔진의 가비지 컬렉터와 Blink의 Oilpan 간의 협력을 향상시키기 위한 작업이 진행 중입니다. 특히, V8의 가비지 컬렉터 프로젝트인 Orinoco에서 도입된 새로운 기술과 기법 중 일부를 Blink의 Oilpan으로 이식(porting)하는 노력이 이루어지고 있습니다 [1]. +- **주의:** 소스에 관련 정보가 부족합니다. (제공된 소스 데이터에서는 Blink의 가비지 컬렉션(Oilpan)과 메모리 표현(`InternalNode`)에 관한 내용만 간략히 언급되어 있으며, 그 외 Blink의 세부 아키텍처나 렌더링 동작 방식에 대한 상세 정보는 포함되어 있지 않습니다.) + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[V8 Engine]], [[Oilpan]], [[Orinoco]], [[InternalNode]] +- **Projects/Contexts:** [[Chrome]], [[Heap Snapshot]] +- **Contradictions/Notes:** 소스 내에 Blink 자체의 전체 구조를 다루는 정보는 부족하며, V8 메모리 관리 및 힙 스냅샷 디버깅 관점에서만 제한적으로 언급되어 있습니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Blink.md]] +--- diff --git a/Programming & Language/Branch Prediction.md b/Programming & Language/Branch Prediction.md new file mode 100644 index 00000000..e3db6495 --- /dev/null +++ b/Programming & Language/Branch Prediction.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-4D7707 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Branch Prediction" +--- + +# [[Branch Prediction]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Branch prediction(분기 예측)은 현대 CPU가 분기 명령어의 과거 기록을 프로파일링하여(예: 분기가 항상 통과되는지 관찰) 다음 실행 경로를 미리 예측하는 성능 최적화 기술입니다 [1]. 이는 추측 실행(Speculative Execution)과 결합되어 CPU의 처리 속도를 비약적으로 높이지만, 공격자가 분기 기록을 통제할 수 있다는 점 때문에 스펙터(Spectre)와 같은 심각한 보안 취약점의 공격 경로로 악용됩니다 [1, 2]. + +## 📖 구조화된 지식 (Synthesized Content) +- **분기 예측과 추측 실행(Speculative Execution):** 현대 CPU는 성능 향상을 위해 분기를 프로파일링하여 실행 경로를 예측합니다 [1]. CPU는 분기 조건이 실제로 검증되기 전에 예측된 경로에 따라 메모리 로드 등의 명령을 미리 실행(추측 실행)하며, 예측이 틀린 것으로 판명되면 분기 이후에 일어난 작업을 롤백(Roll back)합니다 [1]. +- **스펙터(Spectre) 공격의 원리:** 스펙터 취약점은 분기 예측을 악용합니다. 추측 실행은 과거의 기록에 따라 분기를 실행하는데, 공격자는 이 과거 기록을 통제함으로써 CPU가 추측 실행 중에 어떤 분기를 수행할지 조작할 수 있습니다 [2]. 추측 실행이 롤백되더라도 L1 캐시에 로드된 데이터는 취소되지 않으므로, 공격자는 이를 이용해 타이밍 기반으로 메모리 정보를 유출할 수 있습니다 [2, 3]. +- **브라우저 엔진(WebKit)에 미치는 영향:** WebKit의 JavaScriptCore는 신뢰할 수 없는 JavaScript나 WebAssembly 코드의 보안(예: 배열 경계 검사, 타입 검사)을 유지하기 위해 '분기 명령어'에 의존해왔습니다 [4-6]. 그러나 분기 예측을 악용한 스펙터 공격으로 인해, 분기 명령어만으로는 더 이상 보안 속성을 강제하기에 충분하지 않게 되었습니다 [4, 5]. +- **대응 및 완화 조치:** 분기 예측을 악용하는 공격에 대응하기 위해 WebKit은 기존의 분기 기반 보안 검사 외에도, 인덱스 마스킹(Index masking)이나 포인터 포이즈닝(Pointer poisoning)과 같은 '분기 없는 보안 검사(Branchless Security Checks)' 방식으로 전환하고 있습니다 [7-9]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Speculative Execution]], [[Spectre]], [[Branchless Security Checks]] +- **Projects/Contexts:** [[WebKit]], [[JavaScriptCore]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. (소스 내에 상충하는 의견은 없으며, 과거에는 분기 명령어가 보안 강제에 충분하다고 여겨졌으나 스펙터의 등장으로 인해 더 이상 안전하지 않게 되었다는 맥락적 변화만 존재합니다 [4]). + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Branch Prediction.md]] +--- diff --git a/Programming & Language/Branchless Security Checks.md b/Programming & Language/Branchless Security Checks.md new file mode 100644 index 00000000..ae12163a --- /dev/null +++ b/Programming & Language/Branchless Security Checks.md @@ -0,0 +1,39 @@ +--- +id: P-REINFORCE-AUTO-229D3F +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Branchless Security Checks" +--- + +# [[Branchless Security Checks]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Branchless Security Checks(분기 없는 보안 검사)는 Spectre 및 Meltdown과 같은 CPU 보안 취약점에 대응하기 위해 도입된 보안 메커니즘입니다 [1, 2]. 기존의 조건 분기(Branch) 명령어를 통해 보안을 확인하는 방식은 추측 실행(Speculative execution)을 악용하는 공격에 취약하기 때문에, 분기 명령어를 배제하고 비트 연산 등을 활용하는 방식이 필요해졌습니다 [3, 4]. 대표적인 구현 기법으로는 인덱스 마스킹(Index Masking)과 포인터 포이즈닝(Pointer Poisoning)이 있습니다 [4-6]. + +## 📖 구조화된 지식 (Synthesized Content) +* **도입 배경 (Spectre 공격의 위협):** + 최신 CPU는 성능 향상을 위해 조건 분기의 결과를 미리 예측하고 실행하는 추측 실행(Speculative execution)을 사용합니다 [7]. Spectre 공격은 이러한 추측 실행 시 발생하는 정보 유출을 악용하여, 공격자가 분기의 실행을 제어하고 캐시 타이밍을 통해 메모리의 정보를 읽어낼 수 있게 합니다 [8]. 이로 인해 WebKit과 같은 엔진에서 신뢰할 수 없는 JavaScript나 WebAssembly 코드를 실행할 때, 기존의 분기 기반 검사로는 객체의 타입이나 배열 범위를 안전하게 보호할 수 없게 되었습니다 [3, 9, 10]. + +* **Branchless Security Checks의 주요 기법:** + 이를 해결하기 위해 WebKit 및 Blink 엔진은 분기 없는 보안 검사(Branchless Security Checks)를 도입했습니다 [1, 11]. + * **인덱스 마스킹 (Index Masking):** 배열에 접근할 때 분기문을 사용하는 대신, 비트 마스킹(Bitwise operations) 연산을 사용하여 인덱스가 배열의 유효한 범위 내에 있도록 강제하는 기법입니다 [4, 5]. 최신 CPU는 비트 마스킹 연산에 대해 추측 실행을 하지 않으므로, 공격자가 배열의 범위를 벗어난 메모리를 읽어내는 것을 방지할 수 있습니다 [4]. + * **포인터 포이즈닝 (Pointer Poisoning):** 객체 타입 검사 등에 사용되는 방법으로, 포인터에 특정 난수 값(Poison value)을 XOR 연산하여 포인터를 손상시키는 방식입니다 [5, 6]. 올바른 타입 검사를 거쳐 정상적으로 해독(Unpoison)되지 않은 포인터로 접근을 시도하면, 매핑되지 않은 유효하지 않은 메모리를 가리키게 되어 접근이 실패합니다 [5, 6]. 이 방식은 분기문 없이도 안전한 검사를 가능하게 하며 원격 코드 실행 공격을 방어하는 데도 유용합니다 [12]. + +* **성능에 미치는 영향:** + 이러한 분기 없는 보안 완화 기술들은 브라우저 엔진의 보안을 크게 강화하지만, JavaScript 엔진 및 JIT(Just-In-Time) 컴파일러의 실행 경로에 추가적인 명령어들을 발생시킵니다 [13]. 그 결과, 그래픽 파이프라인 및 시스템 운영에서 각 작업의 기본 마이크로 지연(Micro-latency)이 약간 증가하는 부작용이 동반됩니다 [13]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Spectre]], [[Meltdown]], [[Speculative Execution]], [[Index Masking]], [[Pointer Poisoning]] +- **Projects/Contexts:** [[WebKit]], [[Blink]], [[JavaScriptCore]] +- **Contradictions/Notes:** 분기 없는 보안 검사 기법은 캐시 사이드 채널 공격을 방어하는 필수적인 수단이지만, 구조적으로 추가 연산을 요구하기 때문에 작업의 마이크로 지연(Micro-latency)을 증가시킨다는 성능적 트레이드오프가 존재합니다 [13]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Branchless Security Checks.md]] +--- diff --git a/Programming & Language/Branded Types.md b/Programming & Language/Branded Types.md new file mode 100644 index 00000000..9c5bb869 --- /dev/null +++ b/Programming & Language/Branded Types.md @@ -0,0 +1,49 @@ +--- +id: P-REINFORCE-AUTO-494E42 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Branded Types" +--- + +# [[Branded Types]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +**Branded Types의 등장 배경과 원리** +TypeScript는 이름이 아닌 구조를 기준으로 호환성을 판단하는 구조적 타이핑(덕 타이핑)을 사용합니다 [7, 8]. 이로 인해 사용자 ID와 주문 ID, 혹은 이메일과 일반 이름이 모두 `string` 타입일 경우, 서로 잘못 전달되더라도 컴파일러가 오류를 잡아내지 못합니다 [2, 3, 5]. 이러한 문제를 방지하기 위해 `type UserId = string & { readonly __brand: unique symbol }`과 같이 교집합(`&`)과 고유 속성을 활용하여 런타임 구조는 동일하지만 타입 시스템 상에서는 완전히 구별되는 명목적(Nominal) 타입을 에뮬레이트하는 것이 Branded Types의 핵심 원리입니다 [3-5]. + +**타입 생성과 런타임 검증의 결합** +개발자가 Branded Type 값을 생성하려면, 해당 값이 지정된 조건을 만족하는지 컴파일러에 알려주어야 합니다 [9]. +* **Type Assertions (`as`)**: 가장 간단하지만 개발자의 실수로 잘못된 값을 강제할 위험이 있습니다 [10, 11]. +* **Type Predicates**: `isPositive(value: number): value is Positive`와 같은 커스텀 타입 가드 함수를 만들어 안전하게 타입을 좁힙니다 [12]. +* **Assertion Functions**: 조건에 맞지 않으면 런타임 에러를 던지도록 하여, 통과한 값만 해당 타입으로 취급되게 합니다 [13, 14]. +* **유효성 검사 라이브러리 연동**: "검증하지 말고 파싱하라(Parse, Don't Validate)"는 철학과 결합하여, Zod와 같은 라이브러리의 `.brand()` 메서드를 활용하면 런타임 검증과 컴파일 타임 Branded Type 생성을 우아하게 결합할 수 있습니다 [15-18]. + +**주요 활용 사례** +* **도메인 데이터 격리**: User ID와 Order ID(GUID 등)를 분리하여 서로 섞이는 것을 방지합니다 [16, 19]. +* **안전성 강제**: XSS 공격을 방지하기 위해 일반 문자열과 '소독된(Sanitized) 문자열'을 엄격하게 구분합니다 [20]. +* **수치 연산 통제**: 서로 다른 통화(Currency)끼리 합산되는 것을 막거나, 양수(Positive) 혹은 특정 범위 내의 숫자만 허용하도록 강제합니다 [21-23]. + +**브랜드 강도에 따른 변형 (Variations)** +필요한 엄격함의 수준에 따라 Branded Type의 구현 방식을 나눌 수 있습니다 [3, 24]. +* **Weak Brand**: 기본 타입으로 암시적 변환이 허용되어 사용이 쉽습니다 (`type T = base & Tag`) [3, 24]. +* **Strong Brand**: 명시적 캐스팅 없이는 기본 타입으로 호환되지 않아 높은 수준의 격리를 제공합니다 (`type T = (base & Tag) | Tag`) [3, 25]. +* **Super Brand**: 캐스팅조차 매우 어렵게 설계하여 외부 유출을 철저히 차단하는 형태입니다 [3, 26]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Structural Typing]], [[Primitive Obsession]], [[Type Predicates]], [[Parse, Don't Validate]] +- **Projects/Contexts:** [[Domain-Driven Design (DDD)]], [[Zod]], [[Effect TS]], [[ts-brand]] +- **Contradictions/Notes:** Branded Types는 강력한 안전성을 제공하지만 코드의 개념적 복잡성을 증가시키고 보일러플레이트 코드를 유발합니다 [27, 28]. 따라서 유니온(Unions), 열거형(Enums), 템플릿 리터럴 타입(Template Literal Types)과 같은 단순한 대안으로 해결 가능한 상황이라면 도입 시 이점과 유지보수 비용을 저울질해야 한다고 경고하고 있습니다 [29-31]. 또한, TypeScript 언어 자체에 명목적 타이핑(Nominal typing)을 직접 지원하자는 논의는 커뮤니티에서 오랫동안 있었으나 아직 명확한 합의에 이르지는 못했습니다 [9, 32]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Branded Types.md]] +--- diff --git a/Programming & Language/Browser Security Mitigations.md b/Programming & Language/Browser Security Mitigations.md new file mode 100644 index 00000000..0c48e64d --- /dev/null +++ b/Programming & Language/Browser Security Mitigations.md @@ -0,0 +1,42 @@ +--- +id: P-REINFORCE-AUTO-539F01 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Browser Security Mitigations" +--- + +# [[Browser Security Mitigations]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 브라우저 보안 완화(Browser Security Mitigations)는 스펙터(Spectre) 및 멜트다운(Meltdown)과 같은 사이드 채널 공격으로부터 사용자를 보호하기 위해 웹 브라우저가 구현하는 방어 메커니즘입니다. 이러한 완화 조치는 정보 유출을 막기 위해 타이밍 API의 정밀도를 고의로 낮추고, 자바스크립트 엔진 내에 추측 실행(Speculative Execution)을 방어하는 분기 없는(branchless) 보안 검사를 도입하여 메모리 접근을 안전하게 통제하는 데 중점을 둡니다 [1-3]. + +## 📖 구조화된 지식 (Synthesized Content) +* **스펙터(Spectre) 및 멜트다운(Meltdown) 취약점 대응** + 현대의 CPU는 성능 향상을 위해 추측 실행(Speculative execution)과 분기 예측을 사용합니다 [4]. 스펙터 공격은 이를 악용하여 고정밀 타이밍 측정을 통해 정상적인 범위를 벗어난 메모리를 읽어내는 기술입니다 [4, 5]. 브라우저에서 실행되는 신뢰할 수 없는 자바스크립트 코드가 이 취약점을 이용해 호스트 프로세스의 주소 공간이나 커널 메모리(멜트다운)에 접근하는 것을 막기 위해 브라우저 차원의 구조적 보안 완화가 필수적입니다 [2, 6, 7]. + +* **타이밍 정밀도 감소 및 지터(Jitter) 도입** + 캐시 사이드 채널 공격은 캐시 적중 여부에 따른 서브 마이크로초 단위의 미세한 타이밍 차이를 관찰하여 이루어집니다 [1, 5]. 이를 방지하기 위해 브라우저 엔진은 `performance.now()`와 같은 타이머의 정밀도를 1ms 또는 100마이크로초 수준으로 낮추고, 공격자가 통계적 평균을 통해 고정밀 시계를 재구성하지 못하도록 무작위 변동(지터, Jitter)을 추가했습니다 [1, 3, 8]. 또한, 고해상도 타이머 역할을 할 수 있는 `SharedArrayBuffer`나 WebGL의 `EXT_disjoint_timer_query` 확장 기능을 비활성화하거나 사이트 격리 상태에 따라 해상도를 크게 제한(Quantization)했습니다 [1, 3, 8-10]. WebGPU의 타임스탬프 쿼리 역시 격리된 컨텍스트에서는 100마이크로초 해상도로 제한되며, 비격리 컨텍스트에서는 기본적으로 노출되지 않도록 보호됩니다 [11, 12]. + +* **분기 없는 보안 검사 (Branchless Security Checks)** + 스펙터 공격은 CPU의 분기 예측을 제어하여 보안 속성을 강제하는 분기문을 우회할 수 있습니다 [5, 13]. 이에 WebKit 등의 브라우저 엔진은 분기문에 의존하지 않는 새로운 보안 검사 방식을 구현했습니다 [3]. + * **인덱스 마스킹(Index Masking):** 추측 실행 중에도 배열 인덱스가 유효한 범위 내에 있도록 비트 연산을 사용하여 값을 마스킹하는 기법입니다 [14, 15]. + * **포인터 포이즈닝(Pointer Poisoning):** 포인터 값에 컴파일 타임에 생성된 무작위 '포이즌(poison)' 값을 XOR 연산하는 기술입니다 [16]. 잘못된 타입 검사를 통과한 추측 실행 시, 포이즈닝된 포인터는 매핑되지 않은 유효하지 않은 메모리를 가리키게 되므로 데이터 유출을 방지할 수 있습니다 [14, 16, 17]. + +* **하드웨어 및 컨텍스트 전환 제한** + 타이밍 공격 외에도, 듀얼 GPU를 사용하는 특정 시스템(예: 듀얼 GPU Mac)에서는 WebGL 컨텍스트의 수명 주기 동안 여러 GPU를 전환하는 행위 자체가 드라이버 수준의 보안 문제로 간주됩니다 [18]. 이에 따라 브라우저는 컨텍스트 생성 전 이산(discrete) GPU로 강제 전환하고 유지하도록 제한을 두고 있습니다 [18]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Spectre and Meltdown]], [[Speculative Execution]], [[Timing Attacks]], [[Index Masking]], [[Pointer Poisoning]] +- **Projects/Contexts:** [[WebKit]], [[JavaScriptCore]], [[WebGPU]], [[WebGL]] +- **Contradictions/Notes:** WebGPU 타임스탬프 쿼리는 타이밍 공격의 우려로 인해 초기에는 비격리 컨텍스트에서 완전히 숨겨지도록 제안되었으나 [12], 개발자들의 성능 프로파일링 요구와 브라우저 간 상호 운용성(Interop) 문제를 해결하기 위해, 사이트 격리 여부와 상관없이 High-Resolution Time 스펙과 맞춘 100마이크로초 해상도를 제공하는 방향으로 스펙이 수정 및 채택되었습니다 [19-22]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Browser Security Mitigations.md]] +--- diff --git a/Programming & Language/CAD 렌더링 최적화.md b/Programming & Language/CAD 렌더링 최적화.md new file mode 100644 index 00000000..86b76213 --- /dev/null +++ b/Programming & Language/CAD 렌더링 최적화.md @@ -0,0 +1,35 @@ +--- +id: P-REINFORCE-AUTO-40FA98 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - CAD 렌더링 최적화" +--- + +# [[CAD 렌더링 최적화]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> CAD 렌더링 최적화는 브라우저 및 통합 GPU(iGPU) 환경에서 메모리 대역폭과 CPU-GPU 간 통신 병목을 극복하여 수백만 개의 폴리곤을 가진 대규모 다중 본체 어셈블리(Multi-Body Assemblies)를 부드럽게 렌더링하는 일련의 기술적 과정입니다 [1, 2]. 이를 위해 `BatchedMesh`나 `InstancedMesh`를 통한 드로우 콜 최소화, 정밀도 붕괴 방지를 위한 원점 이동(Origin-shifting), 메모리 관리 효율화를 위한 Web Worker 및 `SharedArrayBuffer` 활용이 필수적으로 요구됩니다 [3-5]. 또한, 오버드로우를 줄이는 깊이 사전 패스(Depth Pre-Pass)와 시각적 끊김이 없는 디더링 LOD 등의 렌더링 기법을 결합하여 고성능의 시각화 경험을 제공합니다 [6-8]. + +## 📖 구조화된 지식 (Synthesized Content) +- **하드웨어 및 메모리 대역폭의 병목 극복:** 통합 GPU(Intel UHD, AMD Radeon Vega 등)는 UMA(Unified Memory Architecture) 환경을 사용하여 시스템 RAM을 CPU와 공유하므로 메모리 대역폭이 주된 성능 제약이 됩니다 [1, 9]. 100만 개 이상의 삼각형을 가진 CAD 모델을 파싱하고 디코딩할 때 발생하는 메인 스레드 프리징과 메모리 중복을 방지하기 위해 Web Worker와 `SharedArrayBuffer`를 연동한 제로 카피(Zero-copy) 아키텍처를 도입해야 합니다 [5]. +- **지오메트리 통합과 드로우 콜 최적화:** CAD 어셈블리를 구성하는 수많은 부품을 개별 메쉬로 렌더링하면 엄청난 드로우 콜 오버헤드가 발생합니다 [2]. 볼트나 브래킷 같은 반복 부품은 `InstancedMesh`로 처리하고, 고유한 기하학적 형태가 섞인 다양한 부품들은 `BatchedMesh`를 사용해 단일 드로우 콜로 묶어 처리해야 iGPU의 오버헤드를 크게 줄일 수 있습니다 [3, 10]. 정적인 하위 어셈블리는 지오메트리를 타일 단위로 병합(`mergeBufferGeometries`)하는 전략을 활용할 수 있습니다 [11]. +- **좌표 정밀도 붕괴(Precision Collapse) 방지:** CAD 데이터의 거대한 좌표계(예: 10^7 단위 이상)를 WebGL의 32-bit float 환경으로 가져오면 소수점 이하 정밀도가 부족해져 정점이 흔들리거나 진동하는 현상(Vertex Snapping/Jitter)이 발생합니다 [4]. 이를 막기 위해 64-bit 공간에서 전체 어셈블리의 중심(basePoint)을 계산한 뒤, 정점 좌표를 오프셋 처리(Re-centering shift)하여 GPU에 업로드해야 합니다 [4]. +- **가시성 판별(Visibility Determination) 및 오클루전 컬링:** 복잡한 내부 부품이 겹쳐 있는 CAD 모델에서 오버드로우를 줄이기 위해 색상 쓰기를 비활성화한 채 Z-버퍼만 먼저 채우는 '깊이 사전 패스(Depth Pre-Pass)'를 수행하면 프래그먼트 셰이더 부하를 최대 30%까지 줄일 수 있습니다 [6]. 또한 옥트리(Octree)나 BVH(Bounding Volume Hierarchy)를 통해 CPU 공간 분할을 적용하여 보이지 않는 노드에 대한 연산을 렌더링에서 배제합니다 [12]. +- **LOD 및 엣지(Edge) 렌더링 최적화:** 부품을 정밀 검토할 때 시각적으로 튀는 팝핑(Popping) 현상을 막기 위해, 화면 공간 디더링 패턴(Dithered LOD Blend)을 활용한 매끄러운 형태의 LOD 전환 기법을 구현합니다 [7, 13]. 또한 CAD 도면 특유의 날카로운 모서리(Wireframe/Edge)를 표현하기 위해 `EdgesGeometry`를 사용하면 정점 부하가 2배로 늘어나므로, 무게 중심 좌표(Barycentric Coordinate)를 활용하여 단일 패스의 프래그먼트 셰이더 안에서 절차적으로 엣지를 렌더링하는 기법이 권장됩니다 [14, 15]. +- **자원 및 상태 관리 (State Management):** 수백 개의 색상을 표현하기 위해 개별 재질(Material)을 번갈아 쓰지 않고 '텍스처 아틀라스(Texture Atlas)'와 파트 ID를 활용해 셰이더 전환을 최소화해야 합니다 [16]. 아울러 배터리 소모와 발열을 막기 위해 변경 사항이 있을 때만 프레임을 업데이트하는 Render-on-Demand(요청 시 렌더링) 방식을 적용하며, 값비싼 물리 기반 렌더링(MeshStandardMaterial) 대신 `MeshPhongMaterial` 또는 'Flat Shaded + Edge' 커스텀 셰이더를 사용하여 프래그먼트 연산 비용을 아낍니다 [8, 17-19]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[BatchedMesh]], [[InstancedMesh]], [[Depth Pre-Pass]], [[SharedArrayBuffer]], [[Frustum Culling]], [[Level of Detail (LOD)]] +- **Projects/Contexts:** [[WebGPU 대규모 건설 뷰어]], [[BIM 모델 시뮬레이션]] +- **Contradictions/Notes:** 지오메트리 병합(`BufferGeometryUtils.mergeBufferGeometries`) 기법은 드로우 콜을 가장 효과적으로 줄여주지만, 단일 바운딩 볼륨으로 묶이기 때문에 시야 절두체 컬링(Frustum Culling)의 효율성을 떨어뜨린다는 딜레마를 가집니다 [11]. 또한, `InstancedMesh`는 단일 지오메트리의 반복 렌더링에는 매우 유리하지만 서로 다른 기하학적 구조를 가진 부품이 수천 개 모인 CAD 모델에는 부적합하며, 이 경우 다중 지오메트리를 지원하는 `BatchedMesh`를 사용하는 것이 더 올바른 대안입니다 [3, 10, 20]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/CAD 렌더링 최적화.md]] +--- diff --git a/Programming & Language/CANTAB 5-선택 반응 시간 과제(CANTAB 5-choice RTI).md b/Programming & Language/CANTAB 5-선택 반응 시간 과제(CANTAB 5-choice RTI).md new file mode 100644 index 00000000..ba626180 --- /dev/null +++ b/Programming & Language/CANTAB 5-선택 반응 시간 과제(CANTAB 5-choice RTI).md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-20A493 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - CANTAB 5-선택 반응 시간 과제(CANTAB 5-choice RTI)" +--- + +# [[CANTAB 5-선택 반응 시간 과제(CANTAB 5-choice RTI)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> CANTAB 5-선택 반응 시간 과제(RTI)는 참가자의 반응 속도를 측정하여 인지적 요인과 신체적 움직임 요인을 분리하여 평가할 수 있도록 설계된 인지 측정 과제입니다 [1]. 이 과제는 주로 iPad의 CANTAB 앱을 통해 시행되며, 사용자가 화면의 5개 위치를 모니터링하다가 나타나는 시각적 자극에 최대한 빠르게 반응하는 능력을 평가합니다 [1]. 과제의 결과는 크게 '의사결정 속도'와 '이동 속도'라는 두 가지 구성 요소로 나뉘어 측정됩니다 [1, 2]. + +## 📖 구조화된 지식 (Synthesized Content) +- **과제 인터페이스 및 수행 절차:** RTI 과제는 화면 하단에 위치한 하나의 원(버튼)과 화면 상단에 위치한 5개의 원으로 구성됩니다 [1]. 참가자는 먼저 하단의 버튼을 누르고 대기하다가, 상단의 5개 원 중 무작위 위치에서 노란색 점(목표 자극)이 나타나는 것을 모니터링해야 합니다 [1]. 노란색 점이 나타나면, 참가자는 지체 없이 하단 버튼에서 손을 떼고 해당 노란색 점을 터치해야 합니다 [1]. +- **반응 시간의 측정 요소:** 과제는 참가자의 반응을 두 가지 개별 속도로 나누어 계산하며, 정확하게 수행된 응답(correct responses) 데이터만을 계산에 포함합니다 [1]. + - **의사결정 속도(Decision speed):** 목표 자극이 화면에 나타난 순간부터 참가자가 하단 버튼에서 손을 떼기까지 걸린 시간의 중앙값(median duration)입니다 [1]. + - **이동 속도(Movement speed):** 하단 버튼에서 손을 뗀 순간부터 목표 자극(노란색 점)을 실제로 터치하기까지 걸린 시간의 중앙값입니다 [1]. +- **활용 맥락:** 소스 자료에 따르면, 이 과제는 가상현실(VR) 엑서게임(Beat Saber 등) 이용이 인지 능력에 미치는 사후 효과(Aftereffects)를 측정하기 위한 연구에 도입되었습니다 [1, 3]. 참가자의 인지 상태 변화를 확인하기 위해 VR 노출 전, 노출 직후, 그리고 40분 후에 각각 이 과제를 수행하여 반응 시간을 비교 분석하는 데 사용되었습니다 [3, 4]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[의사결정 속도(Decision Speed)]], [[이동 속도(Movement Speed)]] +- **Projects/Contexts:** [[가상현실 사후 효과 연구(Virtual Reality Aftereffects Study)]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. (소스 데이터 내에서 해당 과제에 대해 상충하는 주장이나 논쟁점은 확인되지 않습니다.) + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/CANTAB 5-선택 반응 시간 과제(CANTAB 5-choice RTI).md]] +--- diff --git a/Programming & Language/CI_CD Pipeline.md b/Programming & Language/CI_CD Pipeline.md new file mode 100644 index 00000000..9c00da8f --- /dev/null +++ b/Programming & Language/CI_CD Pipeline.md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-643BD1 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - CI_CD Pipeline" +--- + +# [[CI_CD Pipeline]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> CI/CD 파이프라인은 소프트웨어 개발 수명 주기(SDLC)에서 코드의 빌드, 테스트 및 배포를 자동화하는 워크플로우입니다. 이 파이프라인은 정적 애플리케이션 보안 테스트(SAST), 린팅, 자동화된 코드 리뷰 등의 도구를 통합하여 코드가 프로덕션 환경에 도달하기 전에 결함과 취약점을 차단하는 필수적인 안전장치 역할을 합니다. 개발 속도를 저하시키지 않으면서 코드 품질과 보안을 일관되게 유지하고 정책을 강제하는 핵심적인 경계선(Enforcement Boundary)으로 기능합니다. + +## 📖 구조화된 지식 (Synthesized Content) +- **보안 및 품질의 가드레일 역할**: CI/CD 파이프라인은 코드가 배포되기 전에 품질 및 보안 검사를 우회하지 못하도록 하는 가드레일 역할을 수행합니다 [1]. 자동화된 검사를 통해 취약점, 로직 결함, 유지보수성 문제 등을 조기에 발견하고, 기준에 미달하는 코드가 프로덕션 환경에 병합되는 것을 차단합니다 [2, 3]. +- **자동화 도구 및 정적 분석(SAST) 통합**: CI/CD 파이프라인에 SonarQube, Snyk, ESLint 등과 같은 정적 코드 분석 및 린팅 도구를 통합하는 것은 널리 인정받는 모범 사례입니다 [4, 5]. 파이프라인 내에서 자동화된 스캔이 실행되어 코드의 구문 오류, 보안 취약점 등을 신속하게 식별하고 개발자에게 즉각적인 피드백을 제공합니다 [6-8]. +- **품질 게이트(Quality Gates) 및 정책 강제**: 파이프라인 내에서 정책 기반의 품질 게이트를 설정하여 일관된 코드 표준을 강제할 수 있습니다 [7, 9]. 발견된 문제의 심각도 임계값을 설정하여, 치명적이거나 위험도가 높은 결함이 검출될 경우 자동으로 빌드를 실패하게 만들거나 풀 리퀘스트(PR) 병합을 차단합니다 [10-12]. +- **순차적 게이트 아키텍처(Sequential Gates Architecture)**: 최신 CI/CD 파이프라인은 풀 리퀘스트 생성 시 린팅, 단위/통합 테스트, SAST 보안 스캔 등의 자동화된 사전 병합 검사(Pre-Merge Checks)를 먼저 병렬로 실행합니다 [13]. 자동화 검사를 통과하면 위험도나 코드 소유권에 따라 인간의 리뷰를 조건부로 요청하며, 모든 승인이 완료되어야만 병합이 활성화되는 체계를 갖춥니다 [14]. +- **로컬 개발자 도구(Git Hooks)와의 관계**: 로컬 환경에서 실행되는 Git 훅(예: Husky, lint-staged)은 빠르고 즉각적인 피드백을 제공하지만 개발자가 우회(`--no-verify`)할 수 있는 반면, CI/CD 파이프라인은 우회할 수 없는 최종 권한(Final authority)이자 강제 경계선(Enforcement boundary)입니다 [15-17]. 따라서 전체 테스트 스위트, 타입 검사 및 심층 보안 스캔과 같은 무거운 작업은 CI/CD 파이프라인에서 수행하는 것이 권장됩니다 [17, 18]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Static Application Security Testing (SAST)]], [[Automated Code Review]], [[Quality Gates]], [[DevSecOps]], [[Git Hooks]] +- **Projects/Contexts:** [[소프트웨어 개발 수명 주기(SDLC)]], [[풀 리퀘스트(Pull Request) 워크플로우]] +- **Contradictions/Notes:** 개발자 환경의 로컬 훅(Husky 등)은 빠르고 편리한 피드백을 위한 도구일 뿐 완벽한 강제 수단이 아니며, 실제적인 보안 및 품질 규칙의 최종 강제는 CI/CD 파이프라인에서 이루어져야 합니다 [15, 16]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/CI_CD Pipeline.md]] +--- diff --git a/Programming & Language/CI_CD 파이프라인 (CI_CD Pipelines).md b/Programming & Language/CI_CD 파이프라인 (CI_CD Pipelines).md new file mode 100644 index 00000000..3d4a5870 --- /dev/null +++ b/Programming & Language/CI_CD 파이프라인 (CI_CD Pipelines).md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-3D8966 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - CI_CD 파이프라인 (CI_CD Pipelines)" +--- + +# [[CI_CD 파이프라인 (CI_CD Pipelines)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +- **보안 및 품질 검사의 자동화 통합 (Shift-left):** CI/CD 파이프라인은 개발자가 코드를 푸시하거나 풀 리퀘스트(PR)를 생성할 때마다 백그라운드에서 자동으로 코드 스캔을 실행합니다 [3, 7-10]. 이를 통해 코드 스멜, 보안 취약점(예: SQL 인젝션, 하드코딩된 비밀번호 등), 문법 오류를 개발 초기 단계에서 식별하여 수정 비용을 최소화하는 '시프트 레프트(Shift-left)' 전략을 실현합니다 [3, 4, 11]. +- **품질 게이트(Quality Gate)와 빌드 차단:** CI/CD 파이프라인 내에 심각도 임계값이나 보안 정책을 기반으로 한 '품질 게이트'를 설정할 수 있습니다 [2, 12, 13]. SonarQube, Snyk 등과 통합되어 코드가 조직의 보안 및 품질 표준을 충족하지 못할 경우 빌드와 병합을 자동으로 실패 처리(Fail builds or block merges)하여 악성 코드나 결함 있는 코드가 릴리스되는 것을 방지합니다 [6, 11, 14, 15]. +- **로컬 검사와의 차이점 및 보완:** 로컬에서 실행되는 Git Hooks(예: Husky, lint-staged)는 변경된 파일만 빠르게 검사하고 개발자가 우회(Bypass)할 수도 있는 편의성 도구인 반면, CI/CD 파이프라인은 우회할 수 없는 최종적인 집행 경계(Enforcement boundary)입니다 [5, 16, 17]. 따라서 CI/CD에서는 전체 테스트 스위트 실행, 심층적인 타입 체크, 전체 코드베이스 린팅과 같이 로컬에서 수행하기엔 무거운 전체 검사를 수행하도록 구성됩니다 [17-19]. +- **도구 적용 시의 성능 고려:** 대규모 저장소에서 정밀한 정적 분석 도구를 CI/CD 환경에 통합하면 빌드 소요 시간이 길어질 수 있는 단점이 존재합니다 [20-22]. 이를 최적화하기 위해 파이프라인 내에서 변경된 코드만 스캔하는 증분 스캔(Incremental/differential scanning) 방식을 도입하여 빠른 피드백 루프를 유지하는 것이 권장됩니다 [11]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[SAST (Static Application Security Testing)]], [[Quality Gate]], [[Automated Code Review]], [[Shift-left]], [[Git Hooks]] +- **Projects/Contexts:** [[GitHub Actions, GitLab CI, Jenkins (CI/CD Platforms)]], [[SonarQube / Snyk Code Integration]] +- **Contradictions/Notes:** 개발 로컬 환경에서의 Git Hooks(Husky 등) 검사는 빠른 피드백을 제공하지만 개발자에 의해 의도적으로 무시될 수 있습니다. 반면 CI/CD 파이프라인에서의 검사는 조직의 규칙을 최종적으로 집행하므로, 로컬 검사가 CI/CD 파이프라인의 필요성을 대체할 수는 없다고 소스들은 강조합니다 [5, 16]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/CI_CD 파이프라인 (CI_CD Pipelines).md]] +--- diff --git a/Programming & Language/CI_CD 파이프라인 자동화.md b/Programming & Language/CI_CD 파이프라인 자동화.md new file mode 100644 index 00000000..06c18a01 --- /dev/null +++ b/Programming & Language/CI_CD 파이프라인 자동화.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-B0C6AD +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - CI_CD 파이프라인 자동화" +--- + +# [[CI_CD 파이프라인 자동화]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> CI/CD 파이프라인 자동화는 소프트웨어 개발 수명 주기(SDLC)에서 정적 분석, 코드 포맷팅, 보안 테스트(SAST)를 워크플로우에 통합하여 자동으로 실행되게 하는 과정입니다 [1-3]. 이를 통해 코드가 병합되거나 프로덕션 환경에 배포되기 전에 구문 오류, 결함 및 보안 취약점을 조기에 발견하고 차단할 수 있습니다 [4-6]. 결과적으로 수동 코드 리뷰에 드는 시간을 절약하고, 소프트웨어의 전반적인 품질과 일관성을 효율적으로 유지할 수 있습니다 [7, 8]. + +## 📖 구조화된 지식 (Synthesized Content) +- **보안 및 정적 분석(SAST)의 통합:** CI/CD 파이프라인 자동화의 핵심은 SonarQube, Snyk, Qodana, Semgrep과 같은 정적 애플리케이션 보안 테스트 도구를 연결하는 것입니다 [9-12]. 파이프라인에 이러한 스캐너를 통합하면, 코드가 빌드되는 과정이나 풀 리퀘스트 단계에서 보안 취약점과 버그를 자동으로 식별하는 가드레일을 구축할 수 있습니다 [7, 13, 14]. +- **코드 린팅(Linting) 및 포맷팅의 강제:** 파이프라인 및 개발 환경에서 Husky와 `lint-staged`와 같은 도구를 설정하면 커밋 이전(pre-commit)에 ESLint 및 Prettier 등을 자동 실행할 수 있습니다 [15-17]. 전체 코드베이스가 아닌 변경된(staged) 파일에만 규칙을 검사하고 자동 수정(auto-fix)을 적용하여, 속도를 유지하면서도 일관된 코드 컨벤션을 강제할 수 있습니다 [18-20]. +- **품질 게이트(Quality Gates) 기반 빌드 제어:** CI/CD 환경에서는 검사 도구에 품질 게이트와 심각도 임계값(severity thresholds)을 설정할 수 있습니다 [21, 22]. 이를 통해 허용되지 않는 수준의 코드 스멜, 보안 결함 또는 스타일 위반이 발견되면 자동으로 빌드를 실패시키거나 풀 리퀘스트 병합을 차단합니다 [11, 22-24]. +- **다단계 자동화 검증 아키텍처(Sequential Gates):** 현대적인 CI/CD 파이프라인은 풀 리퀘스트가 생성될 때 린팅, 포맷팅 검증, 테스트, SAST 스캐닝 및 의존성 분석 등의 사전 검사를 병렬로 자동 실행하도록 아키텍처를 구성합니다 [25]. 자동화된 검사가 통과되어야만 인간의 리뷰와 병합 단계로 진행될 수 있도록 하여 리뷰어의 피로도를 낮춥니다 [26, 27]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[정적 애플리케이션 보안 테스트 (SAST)]], [[Git Hooks (Husky 및 lint-staged)]], [[품질 게이트 (Quality Gates)]] +- **Projects/Contexts:** [[DevSecOps 파이프라인 통합]], [[풀 리퀘스트(PR) 검사 자동화]] +- **Contradictions/Notes:** 소스에 따르면 정적 분석 도구를 파이프라인에 통합할 때 심층적인 스캔은 분석 시간이 오래 걸려 CI/CD 파이프라인을 지연시키는 원인이 될 수 있습니다(예: SonarQube Cloud는 일부 환경에서 파이프라인에 추가 시간을 발생시킴) [28]. 따라서 파이프라인 속도 저하를 방지하기 위해 PR 단계에서는 변경된 파일만 가볍고 빠르게 검사하는 `lint-staged`나 증분 스캔(incremental scans)을 활용하고, 전체 코드 스캔이나 무거운 분석은 CI 서버의 별도 단계나 정기 스캔으로 미루는 방식이 권장됩니다 [18, 19, 29, 30]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/CI_CD 파이프라인 자동화.md]] +--- diff --git a/Programming & Language/CI_CD 파이프라인 통합 및 Git 훅(Hooks).md b/Programming & Language/CI_CD 파이프라인 통합 및 Git 훅(Hooks).md new file mode 100644 index 00000000..eeb849a3 --- /dev/null +++ b/Programming & Language/CI_CD 파이프라인 통합 및 Git 훅(Hooks).md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-C861C6 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - CI_CD 파이프라인 통합 및 Git 훅(Hooks)" +--- + +# [[CI_CD 파이프라인 통합 및 Git 훅(Hooks)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> CI/CD 파이프라인 통합 및 Git 훅(Hooks)은 소프트웨어 개발 시 코드 변경 사항이 저장소에 반영되거나 배포되기 전에 코드 품질과 보안을 자동으로 검증하는 필수 프로세스입니다. 로컬 환경에서는 Husky와 lint-staged 같은 도구를 활용한 Git 훅을 통해 커밋 전 단계에서 정적 분석과 포매팅을 강제하여 1차적인 결함을 차단합니다. 이후 CI/CD 파이프라인 서버와 연동되어 우회 불가능한 자동화된 테스트, 보안 스캔(SAST), 품질 게이트를 거쳐 최종적으로 안전하고 일관된 코드만 배포되도록 보장합니다. + +## 📖 구조화된 지식 (Synthesized Content) +* **Git 훅(Hooks)의 개념 및 한계 해결:** + Git 훅은 `pre-commit`, `commit-msg`, `pre-push`, `post-merge` 등 Git 워크플로우의 특정 시점에 실행되는 셸 스크립트입니다 [1]. 기본적으로 Git 훅은 `.git/hooks/` 디렉토리에 위치하여 버전 관리(버전 컨트롤) 대상에서 제외되므로, 팀원 간의 공유나 CI 환경에서의 강제가 어렵다는 단점이 있습니다 [2]. 이를 해결하기 위해 **Husky**와 같은 도구를 사용해 훅 스크립트를 추적 가능한 디렉토리(예: `.husky/`)에 저장함으로써 모든 팀원과 환경에 동일한 Git 훅을 쉽게 설정하고 공유할 수 있습니다 [2-4]. + +* **lint-staged를 통한 검사 효율화:** + 코드베이스 전체에 대해 매번 검사를 수행하면 시간이 오래 걸려 개발 속도가 저하될 수 있습니다 [2]. 이를 방지하기 위해 `pre-commit` 훅 내에서 **lint-staged** 도구를 결합하여 사용합니다 [2, 5]. lint-staged는 커밋을 위해 Git의 'staged' 상태에 올라간(즉, 변경된) 파일만을 대상으로 ESLint나 Prettier 같은 도구를 실행시킵니다 [2, 6]. 이로써 검사 시간을 수 초 내로 단축하면서도 문법 오류나 스타일 가이드 위반 파일이 커밋되는 것을 효과적으로 방지할 수 있습니다 [2, 7]. + +* **안전망(Safety Net)으로서의 CI/CD 파이프라인:** + 로컬 환경에서 설정된 Git 훅은 `--no-verify` 등의 옵션을 통해 개발자가 임의로 검사를 우회(Bypass)할 수 있습니다 [8, 9]. 따라서 로컬 훅은 개발자 피드백을 위한 빠른 도구로 활용되어야 하며, 최종적인 권한과 안전망은 CI/CD 파이프라인이 담당해야 합니다 [9, 10]. CI/CD 파이프라인에서는 훅을 비활성화한 상태에서 전체 린팅, 전체 테스트 스위트 실행, 타입 검사, 빌드 검증 등을 철저하게 다시 실행하여 품질을 보장합니다 [10-12]. + +* **정적 애플리케이션 보안 테스트(SAST) 및 품질 게이트 연동:** + 코드 스캔 도구(예: Snyk, SonarQube, Corgea, Veracode 등)는 CI/CD 파이프라인 및 풀 리퀘스트(PR) 워크플로우와 긴밀하게 통합되어 작동합니다 [13-15]. PR이 생성되거나 코드가 푸시되면 자동으로 스캔이 트리거되어 취약점이나 논리적 결함을 조기에 발견합니다(Shift-Left) [15, 16]. 발견된 문제의 심각도(Severity)에 따라 빌드를 실패하게 하거나 PR 병합을 차단하는 '품질 게이트(Quality Gates)'를 설정함으로써, 보안 위험과 결함이 프로덕션 환경에 도달하는 것을 파이프라인 단계에서 원천적으로 차단할 수 있습니다 [17-19]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Git Hooks]], [[Husky]], [[lint-staged]], [[SAST (Static Application Security Testing)]], [[ESLint]], [[Prettier]] +- **Projects/Contexts:** [[안전한 소프트웨어 개발 수명주기(SSDLC)]], [[프론트엔드 및 모노레포(Monorepo) 개발 환경 설정]], [[풀 리퀘스트(PR) 기반 보안 검토]] +- **Contradictions/Notes:** 로컬 Git 훅(pre-commit 등)은 빠른 피드백을 제공하여 CI 실패를 줄여주는 유용한 도구이지만, 개발자가 임의로 우회할 수 있으므로 절대 CI/CD 검증을 대체해서는 안 되며 상호 보완적으로 사용해야 한다고 강조됩니다 [9, 10]. 또한, lint-staged는 변경된 특정 파일에만 국한된 작업(예: 포매팅, 린팅)에는 뛰어나지만, 프로젝트 전체를 대상으로 실행되어야 하는 도구(예: 전체 타입 체크)의 래퍼(wrapper)로 사용하는 것은 부적절합니다 [6, 20]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/CI_CD 파이프라인 통합 및 Git 훅(Hooks).md]] +--- diff --git a/Programming & Language/CI_CD 파이프라인.md b/Programming & Language/CI_CD 파이프라인.md new file mode 100644 index 00000000..fbc9510c --- /dev/null +++ b/Programming & Language/CI_CD 파이프라인.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-057C1E +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - CI_CD 파이프라인" +--- + +# [[CI_CD 파이프라인]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> CI/CD 파이프라인은 소프트웨어 개발 수명 주기(SDLC)에서 코드의 통합, 테스트 및 배포를 자동화하는 워크플로우입니다 [1-3]. 이 파이프라인에는 정적 애플리케이션 보안 테스트(SAST) 및 자동화된 코드 리뷰 도구들이 통합되어, 코드가 프로덕션 환경에 도달하기 전에 보안 취약점, 버그 및 스타일 위반을 조기에 발견합니다 [3-6]. 결과적으로 조직은 개발 속도를 늦추지 않으면서도 보안을 강화하고 높은 소프트웨어 품질 기준을 일관되게 적용할 수 있습니다 [7-9]. + +## 📖 구조화된 지식 (Synthesized Content) +- **정적 분석 및 보안 도구의 통합:** CI/CD 파이프라인은 SonarQube, Snyk, CodeQL, Qodana, Semgrep과 같은 SAST 및 코드 리뷰 도구들을 통합하는 핵심 단계입니다 [3, 4, 7, 10, 11]. 이 도구들은 파이프라인 실행 중 저장된 소스 코드를 스캔하여 논리적 결함, 보안 취약점 및 코드 냄새(code smells)를 개발 초기 단계에서 식별합니다 [1, 2, 12]. +- **품질 게이트(Quality Gates)를 통한 통제:** CI/CD 파이프라인 내에 통합된 분석 도구들은 풀 리퀘스트(Pull Request)나 빌드 과정에서 '품질 게이트' 역할을 수행합니다 [13-16]. 심각한 보안 취약점이나 품질 기준에 미달하는 코드가 발견될 경우, 파이프라인은 자동으로 빌드를 실패 처리하거나 병합(merge)을 차단하여 프로덕션 환경을 보호합니다 [9, 17-20]. +- **시프트 레프트(Shift-Left) 보안 실현:** CI/CD 파이프라인에 코드 검사기를 구축하는 것은 개발 주기 초기에 보안을 점검하는 '시프트 레프트' 접근 방식의 대표적인 모범 사례입니다 [3, 6, 8, 9]. 취약점이 운영 환경에 도달하기 전인 파이프라인 단계에서 문제를 해결함으로써 문제 수정에 드는 비용과 시간을 크게 줄일 수 있습니다 [3, 9, 21]. +- **로컬 검증 도구와의 상호 보완:** 개발자가 로컬에서 사용하는 Git Hook(예: Husky 및 lint-staged)이 코드를 커밋하기 전 1차적인 방어선 역할을 한다면, CI/CD 파이프라인은 최종적인 권한을 가진 안전망 역할을 합니다 [22-24]. 개발자가 로컬 검사를 우회할 수 있는 가능성이 있기 때문에, 파이프라인에서 전체 린팅, 테스트 도구 실행, 타입 검사 및 빌드 검증을 엄격하게 재실행하는 것이 필수적입니다 [23, 25-27]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[자동화된 코드 리뷰(Automated Code Review)]], [[정적 애플리케이션 보안 테스트(SAST)]], [[품질 게이트(Quality Gates)]], [[시프트 레프트(Shift-Left)]] +- **Projects/Contexts:** [[소프트웨어 개발 수명 주기(SDLC)]], [[데브섹옵스(DevSecOps)]], [[풀 리퀘스트(Pull Request) 워크플로우]] +- **Contradictions/Notes:** CI/CD 파이프라인에 SonarQube Cloud나 대규모 SAST 도구를 통합하면 코드 품질과 보안을 강력하게 통제할 수 있지만, 일부 환경에서는 파이프라인 실행 시간이 추가로 소요될 수 있다는 단점이 존재합니다 [5, 17, 28]. 또한, 로컬 Git Hook 환경이 효율적이더라도 CI 환경에서의 전체 검증 과정을 결코 대체할 수 없으며, 반드시 CI 파이프라인의 후속 검증이 동반되어야 한다고 강조됩니다 [23, 24, 29]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/CI_CD 파이프라인.md]] +--- diff --git a/Programming & Language/CST (구체 구문 트리).md b/Programming & Language/CST (구체 구문 트리).md new file mode 100644 index 00000000..a8947ae7 --- /dev/null +++ b/Programming & Language/CST (구체 구문 트리).md @@ -0,0 +1,37 @@ +--- +id: P-REINFORCE-AUTO-ECB052 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - CST (구체 구문 트리)" +--- + +# [[CST (구체 구문 트리)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> CST(구체 구문 트리) 또는 파스 트리(parse tree)는 문맥 자유 문법(context-free grammar)의 트리 표현으로, 컴파일러가 코드를 어떻게 이해하는지 보여주는 공식적인 표현 방식입니다 [1]. AST(추상 구문 트리)와 달리 포괄적인 구문 요소뿐만 아니라 미세한 문체, 어휘 및 레이아웃(공백, 들여쓰기 등)의 세부 사항까지 코드의 모든 측면을 정밀하게 포착하여 계층적 구조로 렌더링합니다 [2]. 이러한 특징으로 인해 코드 서식 지정이나 축소 등 레이아웃의 변화를 감지할 수 있어 프로그래머의 코딩 스타일을 분석하고 작성자를 식별하는 코드 스타일로메트리(Code stylometry)에 유용하게 활용됩니다 [3, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +* **정의 및 구조** + CST는 주어진 문맥 자유 문법에 기반한 순서 트리(ordered tree)로, 루트(root), 비단말(Non-terminal) 노드, 단말(Terminal) 노드로 구성되어 컴파일러가 코드를 해석하는 계층적인 구조를 시각화합니다 [1, 2, 5]. 트리의 각 노드는 클래스 정의, 함수 정의 또는 변수 할당과 같은 명확한 코드 구성 요소와 연결됩니다 [2]. + +* **AST(추상 구문 트리)와의 차이점** + 구문 기능과 일부 어휘적 특징만 보존하고 레이아웃의 특징을 추상화하여 무시하는 AST와 달리, CST는 코드의 레이아웃(공백, 줄 바꿈, 들여쓰기 등)과 어휘적 세부 사항을 모두 포함합니다 [3, 4]. 예를 들어, 코드를 철저하게 다시 들여쓰기(re-indent)하는 소스-대-소스 변환을 수행할 경우 파싱된 후의 AST 구조는 동일하게 유지되지만, CST는 시각적이고 구조적으로 크게 변경됩니다 [3]. + +* **코드 스타일로메트리(저자 식별)에서의 활용** + 레이아웃 및 어휘적 특징이 개인의 코딩 스타일을 결정하는 핵심 요소이므로, 이를 포착하기 위해 코드 작성자 분류 모델에서 CST가 중요한 입력 데이터로 사용됩니다 [4, 6]. 구체적인 단말 노드 간의 경로를 해시화하여 나타낸 '경로 컨텍스트(path context)'의 집합(bag)은 입력된 소스 코드의 문체, 레이아웃 및 구문적 특징을 훌륭하게 유지합니다 [7, 8]. 한 연구 결과에 따르면 파이썬 소스 코드 분류에 AST 대신 CST를 도입했을 때 프로그래머의 식별 정확도가 51.00%에서 67.86%로 현저히 향상되었습니다 [6, 9]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[AST (추상 구문 트리)]], [[코드 스타일로메트리 (Code Stylometry)]], [[코드 포매팅 (Code formatting)]], [[코드 축소 (Code minification)]] +- **Projects/Contexts:** [[코드 서식 지정과 축소가 코드 스타일로메트리(작성자 인식)에 미치는 영향을 평가하는 기계 학습 모델 분류 연구]] +- **Contradictions/Notes:** 소스에 관련된 모순된 정보는 없으며, 기존의 주류 문헌들이 코드 표상을 위해 주로 AST를 사용하는 것에서 벗어나, 서식 지정과 축소에 따른 표면적 변화를 측정하기 위해 CST의 사용이 필수적이었다는 점을 강조합니다 [4]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/CST (구체 구문 트리).md]] +--- diff --git a/Programming & Language/Cache Side-Channel Attack.md b/Programming & Language/Cache Side-Channel Attack.md new file mode 100644 index 00000000..fdcf566c --- /dev/null +++ b/Programming & Language/Cache Side-Channel Attack.md @@ -0,0 +1,35 @@ +--- +id: P-REINFORCE-AUTO-55C813 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Cache Side-Channel Attack" +--- + +# [[Cache Side-Channel Attack]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 캐시 사이드 채널 공격(Cache Side-Channel Attack)은 공격자가 고정밀 타이머를 사용하여 CPU 또는 GPU 캐시의 접근 속도(예: L1 캐시와 메인 메모리 간의 지연 시간 차이)를 측정함으로써, 보호된 비밀 메모리의 내용을 추론하고 유출하는 보안 취약점입니다 [1-3]. 현대 프로세서의 추측 실행(Speculative execution)과 분기 예측을 악용하는 스펙터(Spectre)와 멜트다운(Meltdown)이 대표적이며, 이를 방어하기 위해 웹 브라우저들은 타이머 정밀도를 의도적으로 낮추고 분기 없는 보안 검사(Branchless security checks)를 도입해야 했습니다 [4-7]. + +## 📖 구조화된 지식 (Synthesized Content) +* **작동 원리 및 추측 실행 악용:** 공격자는 고해상도 타이밍 측정을 통해 캐시 적중률(Cache hit rate)과 메모리 접근 패턴을 관찰합니다 [1, 8]. 스펙터(Spectre) 공격의 경우, 현대 CPU가 성능 최적화를 위해 제공하는 '추측 실행'을 악용합니다. CPU가 조건부 분기(Branch)를 예측하여 미리 실행할 때 메인 메모리에서 가장 빠르고 작은 L1 캐시로 데이터를 로드하는데, 예측이 틀려 실행이 롤백되더라도 L1 캐시로 가져온 데이터는 그대로 남게 됩니다 [3, 9, 10]. 공격자는 타이밍 속도를 측정하여 CPU가 추측 실행 단계에서 어떤 메모리(캐시 라인)를 로드했는지 알아낼 수 있습니다 [3, 11]. +* **GPU 환경에서의 캐시 공격:** CPU뿐만 아니라 GPU 환경에서도 캐시 사이드 채널 공격이 보고되었습니다. WebGL 환경에서 GPU에 Rowhammer 공격을 수행한 사례가 있으며, 이때 타임스탬프 쿼리(Timestamp queries)가 제공하는 고정밀 타이밍을 통해 GPU 캐시 미스율을 확인하고 물리적 메모리 구조를 파악하는 방식을 사용했습니다 [8]. +* **웹 브라우저의 방어 메커니즘 (Mitigations):** + * **타이머 정밀도 감소(Timer Quantization) 및 지터(Jitter) 도입:** 브라우저 엔진들은 `performance.now()`와 같은 타이머의 해상도를 1ms 또는 100 마이크로초 등으로 대폭 낮추었습니다 [4, 7, 12]. 또한 공격자가 통계적 평균을 내어 고해상도 클럭을 재구성하는 것을 막기 위해, 반환되는 시간에 무작위 변동 값인 '지터(Jitter)'를 추가했습니다 [4]. WebGPU 환경의 타임스탬프 쿼리 역시 보안을 위해 해상도가 제한(Quantized 및 Coarsened)됩니다 [1, 13, 14]. + * **위험 기능 비활성화:** 고해상도 타이머를 생성하는 데 악용될 수 있는 `SharedArrayBuffer` 기능과 정밀한 타이밍을 제공하던 `EXT_disjoint_timer_query` 확장 기능 등을 비활성화하거나 접근을 엄격히 제한했습니다 [1, 6, 7]. + * **분기 없는 보안 검사(Branchless Security Checks):** 공격자가 추측 실행의 분기(Branch)를 제어할 수 있게 됨에 따라, 분기 명령어에 의존하는 기존의 보안 체계는 무력화되었습니다 [5, 11, 15]. 이에 대응하기 위해 WebKit과 Blink 같은 엔진은 인덱스 마스킹(Index masking)과 포인터 포이즈닝(Pointer poisoning)과 같이 조건부 분기를 사용하지 않는 형태의 보안 검사 방식을 새롭게 도입했습니다 [4, 7, 16, 17]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Spectre]], [[Meltdown]], [[Speculative Execution]], [[Timestamp Quantization]] +- **Projects/Contexts:** [[WebKit]], [[WebGPU]], [[WebGL]] +- **Contradictions/Notes:** 소스에 따르면, 그래픽 파이프라인 최적화 및 렌더링 병목 현상을 해결하려는 개발자들은 나노초 단위의 고정밀 타이머를 절대적으로 필요로 하지만, 보안 측면에서는 이러한 고해상도 타이머가 캐시 사이드 채널 공격의 주요 수단이 되기 때문에 브라우저 벤더들이 타이머의 해상도를 의도적으로 제한(Coarsening)해야만 하는 기능적 상충 관계(Trade-off)가 발생하고 있습니다 [1, 13, 14, 18]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Cache Side-Channel Attack.md]] +--- diff --git a/Programming & Language/Cache miss rates.md b/Programming & Language/Cache miss rates.md new file mode 100644 index 00000000..b2a5066d --- /dev/null +++ b/Programming & Language/Cache miss rates.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-E946BD +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Cache miss rates" +--- + +# [[Cache miss rates]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 소스에 따르면, 캐시 미스 비율(Cache miss rates) 및 캐시 적중률(Cache hit rates)은 고해상도 타이머를 통해 관찰될 수 있는 메모리 접근 패턴의 지표입니다 [1, 2]. 공격자는 이를 분석하여 CPU 및 GPU의 물리적 메모리 구조를 파악하고, 스펙터(Spectre), 멜트다운(Meltdown), 로우해머(Rowhammer)와 같은 심각한 보안 취약점을 악용할 수 있습니다 [1, 2]. 결과적으로 브라우저 벤더들은 이러한 타이밍 기반의 부채널 공격(side-channel attack)을 방지하기 위해 타임스탬프 쿼리의 정밀도를 의도적으로 제한하는 방어 기제를 채택하고 있습니다 [1, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **보안 취약점 악용 매개체:** 보안 연구자들에 따르면, 고정밀 타이머(high-fidelity timing)를 사용해 캐시 미스 비율(또는 캐시 적중률)과 메모리 접근 패턴을 관찰할 수 있으며, 이는 스펙터와 멜트다운 같은 보안 취약점 악용을 용이하게 합니다 [1]. +- **로우해머(Rowhammer) 공격과 GPU 캐시 미스:** WebGL 환경에서 타임스탬프 쿼리를 이용해 고정밀 시간을 측정하면 공격자는 GPU의 캐시 미스 비율을 확인할 수 있습니다 [2]. 이를 통해 GPU 물리적 메모리의 레이아웃을 파악하고, 특정 메모리 비트를 변조(bit flip)시키는 로우해머 공격을 가하여 페이지 테이블을 속이는 등의 악의적인 행위가 가능합니다 [2]. +- **타이밍 기반 정보 유출 (Timing-based information leak):** 스펙터(Spectre) 공격의 성공은 고정밀 타이밍 측정에 의존합니다 [4]. 데이터가 CPU의 L1 캐시에 존재할 때의 접근 지연 시간과 캐시 미스로 인해 메인 메모리에 접근해야 할 때의 지연 시간 차이를 측정함으로써, 공격자는 메모리 내부의 기밀 데이터를 유추해낼 수 있습니다 [4, 5]. +- **브라우저의 방어 메커니즘 (타이머 정밀도 제한):** 캐시 미스에 따른 미세한 타이밍 차이(서브 마이크로초 단위)를 공격자가 관찰하지 못하도록, 브라우저 엔진들은 `performance.now()`의 정밀도를 1ms 단위로 낮추거나(reduce timer precision) 격리된 환경(Isolated Context)에서 WebGPU 타임스탬프 쿼리의 해상도를 100 마이크로초 등으로 제한(quantization)하는 보안 조치를 취하고 있습니다 [1, 3, 6, 7]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Spectre]], [[Meltdown]], [[Rowhammer]], [[Timestamp Queries]] +- **Projects/Contexts:** [[WebGPU Timestamp Queries Quantization]], [[WebKit Security Mitigations]] +- **Contradictions/Notes:** 소스에서는 캐시 미스 비율이 일반적인 시스템 성능 최적화 지표로 다루어지기보다는, 고해상도 타이머를 악용한 사이드 채널 보안 공격(side-channel attacks)을 가능하게 하는 위험 요소의 관점으로만 집중적으로 설명되어 있습니다 [1, 2, 4]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Cache miss rates.md]] +--- diff --git a/Programming & Language/Causal Tracing (인과적 추적).md b/Programming & Language/Causal Tracing (인과적 추적).md new file mode 100644 index 00000000..3aa740cf --- /dev/null +++ b/Programming & Language/Causal Tracing (인과적 추적).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-BFC9FF +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Causal Tracing (인과적 추적)" +--- + +# [[Causal Tracing (인과적 추적)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Causal Tracing (인과적 추적).md]] +--- diff --git a/Programming & Language/Cellular-Automata.md b/Programming & Language/Cellular-Automata.md new file mode 100644 index 00000000..6402a384 --- /dev/null +++ b/Programming & Language/Cellular-Automata.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D84732 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Cellular-Automata" +--- + +# [[Cellular-Automata]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Cellular-Automata.md]] +--- diff --git a/Programming & Language/Chaos Theory.md b/Programming & Language/Chaos Theory.md new file mode 100644 index 00000000..102eff6e --- /dev/null +++ b/Programming & Language/Chaos Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-1F2821 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Chaos Theory" +--- + +# [[Chaos Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Chaos Theory.md]] +--- diff --git a/Programming & Language/Chaos-Theory.md b/Programming & Language/Chaos-Theory.md new file mode 100644 index 00000000..efb7ed05 --- /dev/null +++ b/Programming & Language/Chaos-Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-639E39 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Chaos-Theory" +--- + +# [[Chaos-Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Chaos-Theory.md]] +--- diff --git a/Programming & Language/Cheneys Algorithm.md b/Programming & Language/Cheneys Algorithm.md new file mode 100644 index 00000000..419a6f12 --- /dev/null +++ b/Programming & Language/Cheneys Algorithm.md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-52B523 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Cheneys Algorithm" +--- + +# [[Cheneys Algorithm]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Cheney's Algorithm은 V8 자바스크립트 엔진의 마이너 가비지 컬렉터인 스캐빈저(Scavenger)에서 메모리를 관리하기 위해 사용하는 가비지 컬렉션 알고리즘입니다 [1, 2]. 이 알고리즘은 메모리의 '새로운 공간(New-space)'을 동일한 크기를 가진 'from-space'와 'to-space'라는 두 개의 반공간(Semi-space)으로 나누어 작동합니다 [1, 2]. 살아있는 객체만을 from-space에서 to-space로 복사하고 압축(compact)함으로써, 빠른 메모리 할당과 캐시 지역성 향상을 달성합니다 [1]. + +## 📖 구조화된 지식 (Synthesized Content) +- **반공간(Semi-space) 구조 및 역할 교환**: 알고리즘은 할당 공간이 가득 찰 때 to-space와 from-space의 역할을 맞바꾸는 것으로 시작합니다 [1]. 이를 통해 모든 기존 객체는 from-space에 위치하게 되며, 이후 시스템은 살아있는 객체만을 찾아내어 to-space로 복사하거나 '오래된 공간(old-space)'으로 승격(promote)시킵니다 [1]. +- **포인터를 활용한 너비 우선 탐색(BFS)**: 알고리즘은 내부적으로 to-space를 가리키는 두 개의 포인터를 유지합니다 [3]. + - `allocationPtr`: 다음 객체를 할당할 위치의 포인터입니다 [3]. + - `scanPtr`: 살아있는 포인터를 찾기 위해 스캔할 다음 객체의 포인터입니다 [3]. + - 이 두 포인터는 논리적으로 너비 우선 탐색(BFS) 대기열(Queue)의 맨 앞과 맨 뒤와 같은 역할을 합니다 [3]. +- **객체 스캔 및 복사 과정**: + 1. 루트(roots)에서 도달할 수 있는 새로운 공간의 객체들을 복사하여 알고리즘을 초기화합니다 [4]. + 2. `scanPtr`를 증가시켜 대기열에서 객체를 하나씩 꺼내고, 해당 객체의 내부 포인터들을 추적합니다 [4]. + 3. 발견한 포인터가 아직 복사되지 않은 from-space의 객체를 가리킨다면, `allocationPtr`를 증가시켜 해당 객체를 to-space의 끝으로 복사하고 기존 객체의 첫 번째 워드(word)에 새 복사본을 가리키는 전달 주소(forwarding address)를 남깁니다 [4]. + 4. 만약 포인터가 이미 복사된 from-space의 객체(전달 주소가 존재하는 객체)를 가리킨다면, 해당 포인터가 to-space의 새로운 복사본을 가리키도록 업데이트합니다 [4]. +- **종료 조건 및 가비지 처리**: `scanPtr`가 `allocationPtr`에 도달하여 더 이상 처리할 객체가 남지 않게 되면 알고리즘은 종료됩니다 [5]. 이 시점에 from-space에 남아있는 모든 데이터는 가비지(쓰레기)로 간주되어 메모리가 해제되거나 다른 목적으로 재사용됩니다 [5]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Scavenge (Minor GC)]], [[Semi-space Design]], [[Garbage Collection]] +- **Projects/Contexts:** [[V8 JavaScript Engine]] +- **Contradictions/Notes:** 과거의 V8 버전들은 동기식(synchronous) 구조의 기본 Cheney's algorithm을 사용했으나, V8 v6.2 이후부터는 다중 코어 환경의 이점을 활용하기 위해 Halstead semispace copying collector와 유사한 방식의 병렬 스캐빈저(Parallel Scavenger) 알고리즘으로 발전하여 사용되고 있습니다 [6]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Cheney's Algorithm.md]] +--- diff --git a/Programming & Language/Chrome DevTools Memory Panel.md b/Programming & Language/Chrome DevTools Memory Panel.md new file mode 100644 index 00000000..de3005cc --- /dev/null +++ b/Programming & Language/Chrome DevTools Memory Panel.md @@ -0,0 +1,42 @@ +--- +id: P-REINFORCE-AUTO-5AE3F9 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Chrome DevTools Memory Panel" +--- + +# [[Chrome DevTools Memory Panel]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Chrome DevTools Memory Panel은 자바스크립트 애플리케이션 및 Node.js 환경에서 힙(Heap) 메모리를 프로파일링하여 메모리 누수를 진단하고 메모리 분포를 분석하는 도구입니다 [1-3]. 이 패널은 주로 힙 스냅샷(Heap snapshot), 타임라인의 할당 계측(Allocation instrumentation on timeline), 할당 샘플링(Allocation sampling)이라는 세 가지 핵심 기능을 제공합니다 [2, 4]. 개발자는 이 패널을 활용해 가비지 컬렉션(GC) 이후에도 메모리에 남아 있는 객체의 참조 체인을 역추적하고 근본 원인을 파악할 수 있습니다 [1, 2, 5, 6]. + +## 📖 구조화된 지식 (Synthesized Content) +* **주요 프로파일링 도구 (Profiling Tools)** + * **힙 스냅샷 (Heap snapshot):** 특정 시점의 전체 객체 그래프를 캡처합니다 [2]. 객체 자체가 보유한 메모리 크기인 'Shallow size'와 해당 객체를 삭제했을 때 연쇄적으로 확보할 수 있는 메모리 크기인 'Retained size'를 제공합니다 [7]. 요약(Summary), 비교(Comparison), 포함(Containment), 통계(Statistics) 뷰를 지원하며, 두 스냅샷을 비교하여 그 사이에 할당된 객체를 필터링할 수 있습니다 [8-10]. + * **타임라인의 할당 계측 (Allocation instrumentation on timeline):** 힙 프로파일러의 상세 스냅샷 정보와 타임라인의 점진적 업데이트를 결합한 기능입니다 [11, 12]. 최대 50ms 간격으로 스냅샷을 기록하며, 타임라인 상에 파란색 막대(기록 종료 시점까지 살아있는 객체)와 회색 막대(이미 가비지 컬렉션된 객체)를 표시합니다 [13-15]. 특정 시간대로 마우스를 드래그하여 확대하면 해당 시점에 생성되어 누수가 의심되는 객체를 집중적으로 분석할 수 있습니다 [2, 16]. + * **할당 샘플링 (Allocation sampling):** 모든 할당을 추적하는 대신 통계적 샘플링 방식을 사용하여 실행 오버헤드를 낮춘 가벼운 도구로, 프로덕션 환경의 프로파일링에 적합합니다 [4]. + +* **보유자 패널 및 객체 식별 (Retainers and Object Identification)** + * 특정 생성자나 객체를 클릭하면 하단(또는 측면)의 Retainers 패널에 해당 객체를 메모리에 살아있게 만드는 참조 체인(Retaining tree)이 나타납니다 [2, 5, 16]. 개발자는 이 경로를 전역 객체(Global object)나 GC 루트까지 따라가면서 불필요한 참조를 제거할 단서를 얻습니다 [1, 2, 6, 17]. + * 가비지 컬렉션 중에는 객체의 주소가 이동할 수 있으므로, V8 엔진은 메모리 상태를 정확히 비교하기 위해 각 객체에 `@` 기호가 붙은 영구적인 식별자 ID(예: `@12345`)를 부여합니다 [13, 18, 19]. + +* **내부 객체 및 필터링 고려사항 (Internal Objects & Filtering)** + * 원시 힙 스냅샷에는 애플리케이션 로직과 직접적인 관련이 없는 `(compiled code)`, `(array)`, `system / Context` 등 V8 내부 객체가 수천 개 이상 포함될 수 있습니다 [20-23]. 따라서 분석 시 'Constructor' 필터를 사용하여 애플리케이션 고유의 객체에 초점을 맞추는 것이 권장됩니다 [20]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Heap Snapshot]], [[Garbage Collection]], [[Memory Leak]], [[Retaining Path]] +- **Projects/Contexts:** [[V8 Engine]], [[Node.js]] +- **Contradictions/Notes:** + - 스냅샷 상에서 메모리 그래프가 증가한다고 해서 무조건 누수(Leak)인 것은 아닙니다. 캐시(Caches), 실행 취소 기록(Undo histories), 가상화된 리스트 버퍼 등은 의도적으로 데이터를 보존하기 때문입니다. 의도된 보존과 우발적인 메모리 누수를 구별하는 것이 중요합니다 [20]. + - DevTools 콘솔에서 `console.log`로 출력된 객체는 콘솔에서 도달 가능하기 때문에 참조가 유지되어 메모리 누수로 나타날 수 있습니다. 누수 조사 중에는 콘솔을 지우거나 큰 객체를 로깅하지 않아야 합니다 [20]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Chrome DevTools Memory Panel.md]] +--- diff --git a/Programming & Language/Chrome DevTools(크롬 개발자 도구).md b/Programming & Language/Chrome DevTools(크롬 개발자 도구).md new file mode 100644 index 00000000..199cbfe0 --- /dev/null +++ b/Programming & Language/Chrome DevTools(크롬 개발자 도구).md @@ -0,0 +1,36 @@ +--- +id: P-REINFORCE-AUTO-663B99 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Chrome DevTools(크롬 개발자 도구)" +--- + +# [[Chrome DevTools(크롬 개발자 도구)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Chrome DevTools(크롬 개발자 도구)는 JavaScript 애플리케이션 및 브라우저 환경에서 메모리 누수를 탐지하고 성능을 분석하기 위해 다양한 프로파일링 도구를 제공하는 개발자용 인터페이스입니다 [1-3]. 주로 메모리 패널(Memory panel)을 통해 힙 스냅샷을 캡처하거나 시간에 따른 메모리 할당을 추적하여, 가비지 컬렉터(GC)에 의해 해제되지 않은 객체와 그 참조 원인을 식별하는 데 사용됩니다 [1, 4, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +* **메모리 패널(Memory Panel)의 주요 도구:** Chrome DevTools의 메모리 패널은 메모리 누수 식별을 위해 힙 스냅샷(Heap snapshot), 타임라인의 할당 계측(Allocation instrumentation on timeline), 할당 샘플링(Allocation sampling)의 세 가지 주요 도구를 제공합니다 [1, 6]. +* **힙 스냅샷(Heap Snapshot):** 특정 시점의 전체 객체 그래프를 캡처하여 JavaScript 객체 및 관련 DOM 노드에 의한 메모리 분포를 보여줍니다 [1, 7]. 요약(Summary), 비교(Comparison), 포함(Containment), 통계(Statistics) 뷰를 제공하여 메모리를 세밀하게 분석할 수 있습니다 [8]. + * 요약 뷰에서는 객체의 고유한 메모리 크기인 얕은 크기(Shallow size)와, 삭제 시 확보할 수 있는 보존 크기(Retained size)를 확인할 수 있습니다 [9]. + * 생성자 필터를 사용해 분리된 DOM 노드가 유지하는 객체나 중복된 문자열을 필터링함으로써 비효율적인 메모리 사용을 추적할 수 있습니다 [10]. +* **할당 타임라인(Allocation Timeline):** 힙 프로파일러의 상세한 스냅샷 정보와 타임라인 패널의 점진적 업데이트를 결합한 도구입니다 [2]. 기록하는 동안 주기적(최대 50ms 간격)으로 힙 스냅샷을 찍어 메모리 할당을 시각화합니다 [4, 11]. 타임라인에 파란색 막대로 표시된 객체는 할당 후 현재까지 살아있는 객체(누수 후보)이며, 회색 막대는 가비지 컬렉션된 객체를 의미합니다 [1, 5, 11, 12]. +* **보존자(Retainers) 및 경로 추적:** DevTools는 선택한 객체를 가리키는 다른 객체들의 참조 경로(가비지 컬렉션 루트로부터의 경로)를 보여주는 보존자 섹션을 제공합니다 [13-15]. 특정 보존자를 무시(Ignore this retainer) 처리하여 다른 어떤 객체가 해당 객체의 메모리를 유지하고 있는지 코드를 수정하지 않고도 확인할 수 있습니다 [14]. +* **Node.js 연동 분석:** `chrome://inspect`를 통해 실행 중인 Node.js 프로세스에 연결하여 프로덕션 환경의 메모리 누수 상황을 분석할 수도 있습니다 [16]. 또한 Node.js에서 네이티브 프로파일링을 통해 생성된 `.heapprofile` 파일을 DevTools에 로드하면 함수 수준의 할당 내역을 파악할 수 있습니다 [17]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Memory Leak(메모리 누수)]], [[Garbage Collection(가비지 컬렉션)]], [[Heap Snapshot(힙 스냅샷)]], [[Allocation Timeline(할당 타임라인)]] +- **Projects/Contexts:** [[Node.js 프로세스 모니터링 및 메모리 분석]], [[브라우저 DOM 누수 탐지 및 렌더링 최적화]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. (제공된 소스 내에서 Chrome DevTools의 기능이나 메모리 분석 방법론에 대해 상충되는 주장은 발견되지 않았습니다.) + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Chrome DevTools(크롬 개발자 도구).md]] +--- diff --git a/Programming & Language/Chrome V8 Heap Analysis.md b/Programming & Language/Chrome V8 Heap Analysis.md new file mode 100644 index 00000000..29ee9468 --- /dev/null +++ b/Programming & Language/Chrome V8 Heap Analysis.md @@ -0,0 +1,45 @@ +--- +id: P-REINFORCE-AUTO-7DF5C6 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Chrome V8 Heap Analysis" +--- + +# [[Chrome V8 Heap Analysis]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Chrome V8 엔진의 힙(Heap)은 자바스크립트 실행 중 동적으로 생성되는 객체와 데이터를 저장하는 런타임 메모리 영역입니다 [1]. V8 힙은 객체의 수명과 특성에 따라 여러 세대 공간(New Space, Old Space 등)으로 세분화되어 세대별 가비지 컬렉션(Generational Garbage Collection) 메커니즘에 의해 관리됩니다 [2-4]. 힙 메모리 분석은 메모리 누수를 진단하거나 최적화를 수행하는 데 필수적이며, V8 샌드박스를 우회하려는 악의적인 메모리 손상 익스플로잇의 흔적을 식별하는 메모리 포렌식에도 활용됩니다 [5-10]. + +## 📖 구조화된 지식 (Synthesized Content) +* **힙 메모리의 세부 구조 (Heap Organization):** + V8은 가비지 컬렉터의 성능을 최적화하기 위해 힙을 여러 역할의 공간(Space)으로 나눕니다 [4]. + * **New-space (Young Generation):** 대부분의 새 객체가 처음 할당되는 작고 수집이 빠른 공간입니다 [2, 4]. + * **Old-space (Old Generation):** New-space에서 살아남은 객체들이 승격(Promotion)되어 저장되는 공간으로, 포인터가 포함된 'Old-pointer-space'와 원시 데이터만 있는 'Old-data-space'로 나뉩니다 [2, 4, 11]. + * **기타 특수 공간:** 다른 공간의 크기 제한을 초과하는 객체를 위한 'Large-object-space', JIT 컴파일된 실행 코드가 저장되는 'Code-space', 그리고 크기가 균일한 내부 구조체(Map, Cell 등)를 위한 공간으로 구성됩니다 [2, 4]. 각 공간은 운영체제로부터 mmap을 통해 할당받은 연속적인 메모리 청크인 '페이지(Page)'(통상 1MB 또는 512KB)로 관리됩니다 [12-14]. + +* **가비지 컬렉션 메커니즘 (Garbage Collection Dynamics):** + 대대적인 성능 저하를 방지하기 위해 V8은 대부분의 객체가 짧은 시간 안에 죽는다는 '세대별 가설(Generational hypothesis)'을 기반으로 작동합니다 [3, 14, 15]. + * **Minor GC (Scavenger):** New-space가 가득 차면 실행되며, Cheney의 알고리즘에 따라 활성 객체만 식별하여 두 개의 반공간(From-Space, To-Space) 사이에서 복사(Evacuation)하고 압축합니다 [16-26]. + * **Major GC (Mark-Sweep-Compact):** Old-space를 관리하며, 전체 힙에서 도달 가능한 객체를 마킹(Marking)하고, 죽은 객체의 메모리를 해제(Sweeping)하며, 필요시 메모리 단편화를 제거하기 위해 압축(Compacting)을 수행합니다 [27-29]. 최신 Orinoco GC는 이 과정을 메인 스레드 중단 없이 병렬(Parallel), 동시(Concurrent), 점진적(Incremental)으로 수행합니다 [30-39]. + +* **힙 메모리 누수 분석 (Heap Analysis & Memory Leaks):** + 개발자는 Chrome DevTools의 'Heap snapshot' 및 'Allocation instrumentation on timeline'을 사용하여 힙에 저장된 객체, 할당 시점, 유지 경로(Retaining path)를 분석할 수 있습니다 [40-49]. 클로저(Closure)에 의한 잘못된 참조, 잊혀진 타이머나 이벤트 리스너 등이 주요 누수 원인입니다 [42, 50-54]. 또한, `--trace-gc` 플래그를 사용하여 프로세스의 GC 수행 횟수, 소요 시간, 힙 크기의 변화량(톱니바퀴 또는 래칫 패턴)을 추적할 수 있습니다 [55-62]. + +* **보안 제한 및 익스플로잇 아티팩트 (Security & Exploitation Artifacts):** + V8은 포인터 압축(Pointer Compression) 기법을 사용하여 포인터 크기를 32비트로 줄이고, 전체 힙을 4GB 크기의 'V8 Memory Cage' 내에 가둡니다 [63-68]. 공격자들은 메모리 손상 취약점(OOB 등)을 활용해 V8의 힙에 개입하여 객체 주소를 유출하는 `addrof`나 위조 객체를 만드는 `fakeobj` 등의 원시 공격(Primitives)을 수행합니다 [10, 68-78]. 이러한 공격이 실패하거나 진행될 때, `JSArray`의 길이 손상(CorruptedLength)이나 `ElementsKind`와 백킹 스토어의 타입 불일치(ElementsMapMismatch)와 같은 구조적 힙 아티팩트가 메모리에 남게 되어 포렌식 탐지의 신호가 됩니다 [75, 76, 79-82]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Garbage Collection]], [[V8 Memory Cage]], [[Pointer Compression]], [[Generational Hypothesis]], [[Mark-Sweep-Compact]] +- **Projects/Contexts:** [[Orinoco Garbage Collector]], [[Chrome DevTools Memory Panel]], [[v8-forensics]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. (소스 간의 명백한 모순점이나 상충하는 주장은 발견되지 않았습니다.) + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Chrome V8 Heap Analysis.md]] +--- diff --git a/Programming & Language/Chrome 렌더러 프로세스 V8 샌드박스 보안.md b/Programming & Language/Chrome 렌더러 프로세스 V8 샌드박스 보안.md new file mode 100644 index 00000000..d2a15fcc --- /dev/null +++ b/Programming & Language/Chrome 렌더러 프로세스 V8 샌드박스 보안.md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-3832A0 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Chrome 렌더러 프로세스 V8 샌드박스 보안" +--- + +# [[Chrome 렌더러 프로세스 V8 샌드박스 보안]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> V8 샌드박스(또는 메모리 케이지)는 Chrome 103 및 이후 이를 도입한 Electron 등에서 V8 JavaScript 엔진 내 발생하는 취약점 악용을 근본적으로 방지하기 위해 설계된 보안 기술입니다 [1, 2]. 힙 내에 실제 메모리 포인터를 저장하는 대신 예약된 메모리 영역의 기준 주소로부터의 32비트 오프셋(offset)만 저장하는 포인터 압축(Pointer Compression) 기술을 사용합니다 [2-4]. 이를 통해 공격자가 메모리 손상 버그를 악용하더라도 그 피해 및 메모리 접근 범위를 4GB 크기의 샌드박스 내부로 제한하여 프로세스 전체의 탈취를 막고 보안을 강화합니다 [2, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Pointer Compression]], [[Type Confusion]], [[ArrayBuffer]], [[Just-In-Time (JIT) Compiler]] +- **Projects/Contexts:** [[Chrome 103]], [[Electron 21]] +- **Contradictions/Notes:** 소스는 V8 샌드박스와 포인터 압축 기술이 보안, 성능, 메모리 사용량 측면에서 큰 이점을 제공한다고 설명하지만, 이로 인해 V8 힙의 최대 크기가 4GB로 제한되는 명확한 단점(trade-off)이 존재한다고 지적합니다 [5, 14]. 대용량 메모리가 필요한 특수한 경우, 포인터 압축을 비활성화한 사용자 지정 빌드를 사용하거나 하위 프로세스로 작업을 분리해야 할 수도 있습니다 [15]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Chrome 렌더러 프로세스 V8 샌드박스 보안.md]] +--- diff --git a/Programming & Language/Chromium.md b/Programming & Language/Chromium.md new file mode 100644 index 00000000..017f9da0 --- /dev/null +++ b/Programming & Language/Chromium.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-6038C1 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Chromium" +--- + +# [[Chromium]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Chromium(또는 Chrome)은 V8 자바스크립트 엔진을 내장(embed)하여 실행하는 기반 웹 브라우저 프로젝트입니다 [1-3]. 제공된 소스에서 Chromium은 V8 메모리 케이지 도입과 같은 보안 정책을 선도하고 [4, 5], 브라우저 렌더링의 유휴 시간(idle time)을 활용해 가비지 컬렉션을 효율적으로 수행하며 [2], 강력한 메모리 프로파일링 및 추적(Tracing) 인프라를 제공하는 핵심 호스트 환경으로 설명됩니다 [1, 6, 7]. + +## 📖 구조화된 지식 (Synthesized Content) +- **보안 및 V8 메모리 케이지 적용:** Chromium은 보안 계층을 강화하기 위해 Chrome 103 버전부터 V8 샌드박스 포인터(V8 메모리 케이지)를 활성화했습니다 [4]. 이는 JIT 엔진의 타입 혼동 버그를 악용하여 공격자가 프로세스의 임의 메모리를 읽고 쓰는 치명적인 공격을 방지하기 위한 설계입니다 [5, 8]. Electron과 같은 프레임워크는 독자적인 버그나 보안 취약점을 유발하지 않고 강력한 Chromium 보안 팀의 작업 성과를 그대로 활용하기 위해, Chromium의 복잡한 V8 내부 구성과 최대한 일치하도록 아키텍처를 유지합니다 [9]. +- **렌더링 유휴 시간(Idle Time)과 GC 연동:** 브라우저 환경에서 Chromium은 초당 60프레임(FPS)을 유지하기 위해 각 프레임당 약 16.6ms의 렌더링 시간을 가집니다 [2]. 만약 애니메이션 작업이 예상보다 일찍 끝나면, Chromium은 남는 유휴 시간을 활용해 V8 가비지 컬렉터가 큐에 쌓아둔 '유휴 작업(Idle tasks)'을 사전에 실행하여 성능 저하(jank)를 방지할 수 있습니다 [2]. 또한, Chrome의 렌더러 엔진인 Blink는 'Oilpan'이라는 독자적인 가비지 컬렉터를 보유하고 있으며, V8의 메인 GC인 Orinoco와 원활하게 상호 협력하도록 기술이 공유 및 이식되고 있습니다 [10]. +- **메모리 프로파일링 및 추적(Tracing) 인프라:** Chromium은 V8의 내부 메모리 상태 및 실행 흐름을 시각적으로 분석할 수 있는 Chrome Tracing 시스템(`chrome://tracing`)을 제공합니다 [1, 7]. 개발자나 보안 연구원은 `--track-gc-object-stats` 등의 플래그를 사용하여 V8 힙 객체 통계를 수집할 수 있습니다 [6, 7, 11]. 이러한 인프라는 V8 파서와 컴파일러의 메모리 소비 최적화 작업을 가능하게 했으며 [12, 13], 실패한 Chrome 렌더러의 충돌 덤프(Crash dumps)를 분석하여 메모리 손상 익스플로잇(Exploit) 공격 시도를 사전에 탐지하는 포렌식 기술의 기반이 됩니다 [3, 14, 15]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[V8 Engine]], [[V8 Memory Cage]], [[Blink]], [[Oilpan]], [[Garbage Collection]] +- **Projects/Contexts:** [[Electron]], [[Google Chrome]], [[Orinoco]] +- **Contradictions/Notes:** 제공된 소스 전반에서 'Chromium'과 'Chrome'이라는 명칭은 V8을 내장하는 브라우저 런타임 환경 및 보안/추적 인프라를 설명할 때 사실상 동일한 맥락으로 상호 교환되어 사용되고 있습니다 [2-4, 16]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Chromium.md]] +--- diff --git a/Programming & Language/Clean as You Code.md b/Programming & Language/Clean as You Code.md new file mode 100644 index 00000000..115a0317 --- /dev/null +++ b/Programming & Language/Clean as You Code.md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-B535E8 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Clean as You Code" +--- + +# [[Clean as You Code]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 'Clean as You Code'는 레거시 백로그(legacy backlogs)를 처리하는 것에 집중하기보다는, 새로 작성되거나 변경된 코드의 문제를 즉시 해결하는 데 중점을 두는 방법론입니다 [1]. 이 접근 방식은 개발자가 코드를 병합하거나 수정할 때마다 코드 품질과 보안을 점진적이고 지속적으로 향상시키는 것을 목표로 합니다 [1, 2]. 소스에 관련 정보가 부족하지만, 주로 SonarQube 플랫폼에서 지속적인 코드 분석과 품질 관리를 장려하기 위해 사용하는 핵심 철학으로 소개됩니다 [1, 2]. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[SonarQube]], [[Technical Debt]], [[Static Application Security Testing (SAST)]] +- **Projects/Contexts:** [[SonarQube 플랫폼을 활용한 CI/CD 파이프라인 내 자동화된 코드 리뷰 및 품질 게이트 적용]] +- **Contradictions/Notes:** 소스 내에서 'Clean as You Code'라는 정확한 용어는 SonarQube의 방법론을 설명하는 단 한 문장[1]에만 등장합니다. 따라서 상세한 원리 및 배경에 대해서는 소스에 관련 정보가 부족하며, SonarQube의 코드 분석 철학을 바탕으로 내용을 합성했습니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Clean as You Code.md]] +--- diff --git a/Programming & Language/Code Minification.md b/Programming & Language/Code Minification.md new file mode 100644 index 00000000..1a298443 --- /dev/null +++ b/Programming & Language/Code Minification.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-D932E1 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Code Minification" +--- + +# [[Code Minification]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 코드 축소(Code Minification)는 브라우저 등으로 코드를 배포할 때 소스 코드의 크기를 최소화하고 전송 및 렌더링 시간을 단축하기 위해 사용되는 소프트웨어 최적화 기법입니다 [1, 2]. 이 기법은 코드의 본래 실행 의미(semantics)를 변경하지 않은 채, 공백, 줄 바꿈, 주석 등 의미가 없는 요소를 제거하고 변수 이름을 짧게 변경하는 등의 표면적 변환을 수행합니다 [1, 2]. 가독성을 높이는 코드 포매팅(Code formatting)과 달리 코드 축소는 오히려 코드의 가독성을 저하시키며, 주로 소프트웨어 개발 완료 후 배포 직전에 자동화 도구에 의해 실행됩니다 [3]. + +## 📖 구조화된 지식 (Synthesized Content) +* **목적과 주요 기법:** 코드 축소의 주요 목적은 소스 코드 형태로 배포되는 소프트웨어의 용량을 줄이는 것이며, 특히 웹 개발 환경에서 페이지 렌더링 속도를 가속화하는 데 흔히 사용됩니다 [2]. 이를 위해 컴파일러나 인터프리터의 실행에 영향을 주지 않는 공백, 줄 바꿈, 주석 등을 제거할 뿐만 아니라, 변수나 클래스 등의 식별자(identifier) 이름을 간결한 대체어로 변경하는 다소 침투적인(invasive) 수정도 포함합니다 [2]. +* **코드 가독성과 실행 의미 보존:** 축소된 코드는 원본 코드의 실행 의미(semantics)를 완벽하게 중립적으로 보존해야만 성립될 수 있습니다 [1, 2]. 다만, 인간이 읽기 쉽도록 일정한 스타일을 강제하는 코드 포매팅과 정반대로, 축소화 과정은 불필요한 모든 문자를 제거하므로 코드의 가독성을 크게 떨어뜨리는 결과를 낳습니다 [3]. +* **코드 작성자 인식(Code Stylometry)에 미치는 영향:** 변수명 지정 방식, 공백 사용, 주석 처리 등은 프로그래머 고유의 코딩 스타일을 나타내는 주요 특징입니다. 코드 축소는 이러한 불필요한 문자 및 식별자 이름을 일괄적으로 지우거나 변경하므로 작성자 고유의 흔적을 훼손하게 됩니다 [4]. 관련 연구에 따르면 코드 축소를 적용할 경우 작성자 인식 정확도가 약 17.86% 감소하여, 코드 문체 분석(Code Stylometry)을 통한 작성자 식별을 더 어렵게 만드는 것으로 나타났습니다 [4]. +* **성능 사례:** Python 코드의 축소를 지원하는 도구인 'Python Minifier'의 실험 사례를 보면, 축소화 작업 후 소스 코드 라인 수(SLOC)는 60%, 문자 수는 37%나 감소하여 매우 큰 파일 크기 최적화 효과를 보여주었습니다 [5, 6]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Code Formatting]], [[Code Stylometry]] +- **Projects/Contexts:** [[Web Development]], [[Python Minifier]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Code Minification.md]] +--- diff --git a/Programming & Language/Code Obfuscation.md b/Programming & Language/Code Obfuscation.md new file mode 100644 index 00000000..dbff347f --- /dev/null +++ b/Programming & Language/Code Obfuscation.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-B2A3F3 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Code Obfuscation" +--- + +# [[Code Obfuscation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 코드 난독화(Code Obfuscation)는 소스 코드의 기능을 유지하면서도 코드를 읽거나 이해하기 어렵게 변환하는 기법입니다 [1, 2]. 주로 악의적이거나 자동화된 코드 스타일로메트리(Code Stylometry, 작성자 식별 분석)로부터 오픈소스 프로그래머의 신원과 프라이버시를 보호하기 위한 방어 수단으로 활용됩니다 [3-5]. 난독화 도구의 강도에 따라 코드의 가독성과 성능이 어느 정도 희생되지만, 기계 학습 모델의 작성자 식별 정확도를 유의미하게 낮출 수 있습니다 [2, 6]. + +## 📖 구조화된 지식 (Synthesized Content) +- **작성자 식별(Stylometry) 방어 기법으로서의 역할:** 코드 난독화는 프로그래머의 고유한 코딩 스타일을 숨기고 익명성을 유지하기 위해 고안된 수단입니다 [1, 3, 7]. 딥러닝 등을 이용한 작성자 식별 기술이 발전함에 따라, 익명으로 활동해야 하는 개발자들이 감시나 추적을 회피하기 위한 목적으로 이를 활용할 수 있습니다 [4, 5]. +- **난독화 도구별 효과 및 한계:** 난독화를 수행하는 수준에 따라 식별을 방어하는 효과가 다르게 나타납니다. 변수 이름을 변경하거나 공백과 주석을 제거하는 등 단순한 수준의 난독화를 수행하는 상용 도구(예: Stunnix)는 식별 정확도를 크게 낮추지 못합니다(오차율 불과 1.11% 감소) [2, 6]. 반면, 코드의 가독성과 성능을 크게 포기하면서 구조적이고 근본적인 수준의 난독화를 수행하는 도구(예: Tigress)는 작성자 식별 정확도를 95.91%에서 67.22%로 대폭 감소시키는 효과를 보였습니다 [2]. 또 다른 도구인 Obfuscator-LLVM은 정확도를 약 3.6% 하락시켰습니다 [8]. +- **코드 미니파이(Minification) 및 포맷팅과의 차이점:** 소스 코드의 공백을 제거하거나 형태를 일관되게 정렬하는 코드 미니파이나 포맷팅 기법 역시 코드의 표면적인 특징을 변환하여 작성자 인식률을 어느 정도 낮추는 효과가 있습니다 [1, 9]. 하지만 이러한 기법만으로는 개발자 식별을 완전히 피할 수 없으며, 식별을 철저하게 차단하려면 코드 가독성을 거의 포기하는 수준의 전면적인 난독화(Full-blown obfuscation)가 필수적으로 요구됩니다 [10]. +- **수동 및 자동 난독화 연구:** 자동화 도구인 Opy나 PyArmor 등을 활용한 방식뿐만 아니라, 프로그래머가 직접 자신의 코딩 스타일을 바꾸거나 다른 사람의 코딩 스타일을 의도적으로 모방하는 수동 난독화(Manual obfuscation)에 대한 연구도 활발히 진행되고 있습니다 [11-13]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Code Stylometry]], [[Authorship Attribution]], [[Code Minification]] +- **Projects/Contexts:** [[Tigress]], [[Stunnix]], [[Opy]], [[PyArmor]] +- **Contradictions/Notes:** 단순한 미니파이(Minification)나 포맷팅 작업, 혹은 Stunnix와 같이 기본적인 난독화만 제공하는 도구는 기계 학습 모델을 속이기에 불충분합니다. 작성자를 식별하려는 시도를 완전히 회피하려면, Tigress와 같이 시스템 성능과 코드 가독성의 저하를 감수하는 심층적인 수준의 난독화를 적용해야 한다는 점이 관찰됩니다 [2, 6, 10]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Code Obfuscation.md]] +--- diff --git a/Programming & Language/Code Splitting Lazy Loading (코드 분할 및 지연 로딩).md b/Programming & Language/Code Splitting Lazy Loading (코드 분할 및 지연 로딩).md new file mode 100644 index 00000000..4a2813bd --- /dev/null +++ b/Programming & Language/Code Splitting Lazy Loading (코드 분할 및 지연 로딩).md @@ -0,0 +1,42 @@ +--- +id: P-REINFORCE-AUTO-59CADB +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Code Splitting Lazy Loading (코드 분할 및 지연 로딩)" +--- + +# [[Code Splitting Lazy Loading (코드 분할 및 지연 로딩)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 거대한 자바스크립트 번들을 작은 단위로 나누고, 사용자가 당장 필요로 하지 않는 컴포넌트나 라이브러리의 로딩을 지연시켜 애플리케이션의 초기 로딩 속도와 핵심 웹 지표(FCP, LCP)를 비약적으로 개선하는 최적화 기법입니다. + +## 📖 구조화된 지식 (Synthesized Content) +**1. 동작 원리 및 필요성** 일반적인 React 앱은 모든 코드를 하나의 큰 번들로 묶어 제공하므로 사용자가 사용하지 않을 기능까지 다운로드하느라 초기 로딩이 크게 지연됩니다. "초기 페이지 로드 시 화면에 즉시 보이지 않는 기능은 렌더링을 차단해서는 안 된다"는 원칙에 따라, 코드를 분할하면 반응성(TTI)을 높이고 데이터 전송 비용을 줄일 수 있습니다. 전체 번들 크기를 최대 20~70%까지 줄이는 것이 가능합니다. + +**2. 전략 1: 라우트 기반 분할 (Route-level Splitting)** 가장 적은 노력으로 가장 큰 효과(초기 번들 60~80% 감소)를 볼 수 있는 방식입니다. `React.lazy`와 React Router를 활용하여, 사용자가 현재 방문한 페이지에 필요한 컴포넌트만 로드하고 다른 페이지의 코드는 분할합니다. + +**3. 전략 2: 컴포넌트 기반 지연 로딩 (Component-level Lazy Loading)** 화면 하단(Below the fold)에 위치하거나 무거운 UI 요소(예: 3D 모델, 복잡한 차트, 비디오 에디터 등)를 `React.lazy`와 ``를 이용해 온디맨드(On-demand) 방식으로 불러옵니다. 예를 들어 React Three Fiber(R3F) 환경에서는 렌더링 비용이 큰 3D 모델을 `}>`로 감싸 지연 로딩하는 것이 필수적입니다. + +**4. 전략 3: 라이브러리 분할 (Library-level Splitting)** PDF 생성이나 엑셀 내보내기 등 특정 액션이 일어날 때만 필요한 무거운 서드파티 라이브러리를 동적 `import()`로 불러와 메인 자바스크립트 번들에서 완전히 제외시킵니다. + +**5. UX 최적화 및 주의사항** + +- **스켈레톤 UI (Skeleton UI):** 지연 로딩이 발생할 때 화면이 일시적으로 비어보이는 현상을 막고 누적 레이아웃 이동(CLS)을 방지하기 위해, `` 내부에 최종 콘텐츠와 유사한 크기의 스켈레톤 UI나 로딩 인디케이터를 반드시 제공해야 합니다. +- **지연 로딩의 금기:** 초기 렌더링에 즉시 필요하거나 화면 최상단(Above-the-fold)에 위치한 핵심 컴포넌트는 절대 지연 로딩해서는 안 됩니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[React Performance Optimization]], [[React.lazy & Suspense]], [[Core Web Vitals (FCP, LCP, CLS)]], [[React Server Components (RSC)]] +- **Projects/Contexts:** [[대규모 SPA 초기 로딩 속도 개선]], [[Three.js / React Three Fiber 자산 최적화]] +- **Contradictions/Notes:** 코드 분할은 초기 로드 속도를 크게 높여주지만, 모든 컴포넌트를 무분별하게 분할할 경우 사용자가 상호작용을 할 때마다 네트워크 지연과 로딩 스피너를 마주하게 되어 오히려 UX를 크게 훼손할 수 있습니다. 항상 사용자의 여정(User Flow)을 예측하고 적절한 단위로 번들을 묶는 전략적 접근이 필요합니다. + +--- + +_Last updated: 2026-04-14_ +- Raw Source: [[00_Raw/2026-04-20/Code Splitting & Lazy Loading (코드 분할 및 지연 로딩).md]] +--- diff --git a/Programming & Language/Code Stylometry (코드 문체론).md b/Programming & Language/Code Stylometry (코드 문체론).md new file mode 100644 index 00000000..293a36c3 --- /dev/null +++ b/Programming & Language/Code Stylometry (코드 문체론).md @@ -0,0 +1,37 @@ +--- +id: P-REINFORCE-AUTO-17B6B7 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Code Stylometry (코드 문체론)" +--- + +# [[Code Stylometry (코드 문체론)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 코드 문체론(Code Stylometry)은 프로그래머가 작성한 소프트웨어 소스 코드의 프로그래밍 스타일을 분석하여 코드의 작성자를 자동으로 식별(저자 식별)하는 기술이다 [1], [2]. 이 기술은 소스 코드나 실행 파일에 남겨진 논리 구조, 데이터 유형, 주석, 명명 규칙, 레이아웃 등 프로그래머 고유의 특징들을 추출하여 머신러닝 알고리즘을 통해 저자를 추적한다 [3], [2]. 주로 코드 클론 탐지나 누락된 저작자 정보 복구 등에 유용하게 쓰일 수 있다 [4]. 그러나 동시에 검열 및 감시 우회 도구 개발자나 오픈소스 기여자의 익명성을 위협하고 신원을 노출시키는 수단으로 악용될 수 있어 심각한 프라이버시 문제를 제기하기도 한다 [4], [5], [6], [7]. + +## 📖 구조화된 지식 (Synthesized Content) +* **코드 문체론의 핵심 특징 및 분석 기법** + 코드 문체론은 저자 식별을 위해 주로 세 가지 범주의 특징을 활용한다. 첫째, 어휘적 특징(Lexical features)은 단어나 문자의 사용 방식과 관련이 있다 [3]. 둘째, 구문적 특징(Syntactic features)은 언어의 문법 구조를 나타내며 주로 AST(추상 구문 트리)의 형태로 분석된다 [3]. 셋째, 레이아웃 특징(Layout features)은 띄어쓰기나 들여쓰기, 블록 길이 같은 시각적인 코드 배치 습관을 의미한다 [3]. 기존 분석에서는 구문 특징에 집중한 AST가 자주 사용되었지만, 레이아웃 및 어휘적 특징을 모두 보존하는 CST(구체 구문 트리)를 사용할 경우 저자 식별 정확도가 51%에서 68%로 크게 향상되는 것으로 나타났다 [8], [9]. 저자의 특징을 분류하기 위해 랜덤 포레스트(Random Forest), 서포트 벡터 머신(SVM), 신경망(Neural Networks) 등의 머신러닝 알고리즘이 널리 활용된다 [10], [11], [12]. + +* **익명성 위협과 적대적 코드 문체론 (Adversarial Code Stylometry)** + 코드 문체론 기술이 발전함에 따라 대규모 오픈소스 환경에서도 높은 정확도로 작성자를 특정할 수 있게 되었으며, 이는 프라이버시와 익명성에 대한 큰 위협으로 다가온다 [4], [5]. 이에 대항하기 위해 프로그래머가 자신의 스타일을 숨기거나(난독화, Obfuscation) 타인의 스타일을 의도적으로 모방(위장, Mimicry)하여 자동화된 식별 시스템을 속이려는 적대적 기법에 대한 연구가 활발히 진행 중이다 [13], [14], [15]. + +* **코드 포매팅 및 축소(Minification)가 저자 식별에 미치는 영향** + 일관된 코딩 규칙을 적용하는 '코드 포매팅(Code Formatting)'이나 불필요한 공백, 줄바꿈 등을 제거하여 코드 크기를 줄이는 '코드 축소(Code Minification)'는 소프트웨어 개발의 일반적인 관행이다 [16], [17], [18]. 이러한 소스 대 소스(source-to-source) 변환은 프로그래머의 고유한 스타일 지문 일부를 지우기 때문에 문체론의 정확도를 감소시킨다 [19], [20]. CST 기반의 실험 결과, 코드 포매팅을 적용하면 식별 정확도가 68%에서 53%로 하락하였고, 코드 축소를 적용하면 50%까지 떨어졌다 [21], [22]. 하지만 이러한 감소 폭에도 불구하고 식별 확률이 무작위 추론 수준으로 떨어지지는 않으며, 식별 대상 저자들은 여전히 상당 부분 인식 가능한 상태로 남기 때문에 이를 완벽한 익명화 방어책으로 사용할 수는 없다 [23], [22]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Adversarial Code Stylometry]], [[Abstract Syntax Tree (AST)]], [[Concrete Syntax Tree (CST)]], [[Code Obfuscation]], [[Code Formatting]], [[Code Minification]] +- **Projects/Contexts:** [[Google Code Jam Dataset]], [[StyleCounsel]] +- **Contradictions/Notes:** 소스에 따르면 기계 학습 기반의 코드 문체론 모델에 대항하기 위한 적대적 기법들이 시도되고 있으나, 단순히 코드를 정렬하는 포매팅(Formatting)이나 축소(Minification) 처리만으로는 저자의 개별 스타일 특징을 완전히 제거할 수 없으며 대다수 저자가 여전히 식별 가능한 것으로 나타납니다 [23], [22]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Code Stylometry (코드 문체론).md]] +--- diff --git a/Programming & Language/Codemod-Engineering.md b/Programming & Language/Codemod-Engineering.md new file mode 100644 index 00000000..2c9916a9 --- /dev/null +++ b/Programming & Language/Codemod-Engineering.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-084361 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Codemod-Engineering" +--- + +# [[Codemod-Engineering]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Codemod-Engineering.md]] +--- diff --git a/Programming & Language/Complex Adaptive Systems.md b/Programming & Language/Complex Adaptive Systems.md new file mode 100644 index 00000000..9a237d70 --- /dev/null +++ b/Programming & Language/Complex Adaptive Systems.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-AB2667 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Complex Adaptive Systems" +--- + +# [[Complex Adaptive Systems]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Complex Adaptive Systems.md]] +--- diff --git a/Programming & Language/Complex-Adaptive-Systems.md b/Programming & Language/Complex-Adaptive-Systems.md new file mode 100644 index 00000000..300708c6 --- /dev/null +++ b/Programming & Language/Complex-Adaptive-Systems.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A9DF17 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Complex-Adaptive-Systems" +--- + +# [[Complex-Adaptive-Systems]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Complex-Adaptive-Systems.md]] +--- diff --git a/Programming & Language/Concrete Syntax Tree (CST).md b/Programming & Language/Concrete Syntax Tree (CST).md new file mode 100644 index 00000000..4525aa08 --- /dev/null +++ b/Programming & Language/Concrete Syntax Tree (CST).md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-858963 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Concrete Syntax Tree (CST)" +--- + +# [[Concrete Syntax Tree (CST)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Concrete Syntax Tree (CST)는 파스 트리(Parse Tree)라고도 불리며, 문맥 자유 문법(context-free grammar)의 트리 표현 형태로 컴파일러가 코드를 이해하는 방식을 보여주는 공식적인 구조이다 [1]. 추상 구문 트리(AST)와 달리 구문적 요소뿐만 아니라 미세한 문체, 어휘, 레이아웃(들여쓰기 등) 세부 사항까지 코드의 모든 측면을 정밀하게 포착한다 [2]. 이러한 구체적 특성 때문에 코드 포맷팅 등 소스 코드가 변환될 때 그 형태가 크게 변경되며, 최근 코드 작성자를 식별하는 기계 학습 기반의 코드 스타일로메트리(Code Stylometry) 모델에서 중요하게 활용되고 있다 [3, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +- **정의 및 구조:** CST는 주어진 문법에 대해 각 노드가 특정 기호로 레이블링되는 순서 트리(ordered tree)이다 [1]. 루트 노드는 시작 기호로, 비단말(non-leaf) 노드들은 비단말 기호로 이루어지며 자식 노드들과의 관계는 문법의 생성 규칙을 정확하게 반영하여 구성된다 [5]. +- **AST와의 차이점:** 추상 구문 트리(AST)가 코드 파싱 후 레이아웃 특징 등을 추상화하여 배제하는 반면, CST는 코드를 포맷팅하거나 여백을 변경할 때의 레이아웃 정보까지 그대로 유지한다 [3, 6]. 따라서 코드를 다른 형태로 재정렬하는 소스-대-소스 변환 시 AST는 동일할 수 있지만, CST는 유의미하게 변경된다 [3]. +- **CST 경로(Path) 및 문맥 추출:** CST 내에서 두 단말 노드 사이를 위아래로 이동하는 시퀀스를 'CST 경로(CST path)'라고 정의한다 [7]. 이 경로와 시작 및 종료 노드의 실제 코드 토큰 값을 결합한 것을 '경로 문맥(path context)'이라 부르며, 코드의 어휘적, 구문적, 레이아웃적 특징을 유지하는 데이터 표현 수단으로 쓰인다 [8, 9]. +- **코드 분석 및 작성자 식별(Stylometry)에서의 활용:** 최신 기계 학습 모델(예: code2vec)은 코드의 의미론적 요소와 문체적 요소를 모두 보존하기 위해 AST 대신 CST를 입력값으로 사용한다 [4]. 실제 실험 결과, AST 대신 CST 기반의 코드 표현을 사용하면 레이아웃 정보가 반영되어 코드 작성자 식별(Authorship attribution)의 정확도가 크게 향상(51.00%에서 67.86%로 증가)되는 것으로 확인되었다 [10, 11]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Abstract Syntax Tree (AST)]], [[Code Stylometry]], [[Parse Tree]] +- **Projects/Contexts:** 프로그래머의 코드 작성 스타일을 분석하여 작성자를 식별하는 코드 스타일로메트리 연구에서, 코드 포맷팅(formatting) 및 축소(minification) 기술이 식별 정확도에 미치는 영향을 측정하기 위한 코드 표현 방식으로 사용됨 [3, 12, 13]. +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Concrete Syntax Tree (CST).md]] +--- diff --git a/Programming & Language/Conscientiousness.md b/Programming & Language/Conscientiousness.md new file mode 100644 index 00000000..27a51e59 --- /dev/null +++ b/Programming & Language/Conscientiousness.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-04F596 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Conscientiousness" +--- + +# [[Conscientiousness]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Conscientiousness.md]] +--- diff --git a/Programming & Language/Continuous Integration (CI).md b/Programming & Language/Continuous Integration (CI).md new file mode 100644 index 00000000..d167187e --- /dev/null +++ b/Programming & Language/Continuous Integration (CI).md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-F896F7 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Continuous Integration (CI)" +--- + +# [[Continuous Integration (CI)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지속적 통합(Continuous Integration, CI)은 소프트웨어 개발 수명 주기에서 코드 변경 사항이 발생할 때 이를 자동으로 검사하고 빌드하는 파이프라인입니다 [1, 2]. 개발자의 로컬 환경에서 우회될 수 있는 검사들을 강제하는 '안전망(Safety net)'이자 최종 권한(Final authority) 역할을 수행합니다 [2, 3]. CI 환경에서는 정적 애플리케이션 보안 테스트(SAST), 린팅(Linting), 전체 테스트 스위트 실행 등을 통해 프로덕션 환경에 배포되기 전 코드의 품질과 보안을 엄격하게 관리합니다 [4, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +- **최종 검증 및 안전망(Safety Net) 역할:** 개발자가 로컬 환경에서 사용하는 Git 훅(예: Husky, lint-staged)은 `--no-verify` 명령어로 우회할 수 있으므로 코드 품질 정책에 대한 완벽한 강제성을 갖지 못합니다 [3]. 따라서 CI 파이프라인은 전체 코드에 대한 린팅(자동 수정 제외), 전체 테스트 스위트 실행, 타입 검사 및 빌드 검증을 우회 불가능하게 수행하는 안전망이자 최종 권한으로 작동합니다 [2, 4, 6]. +- **보안 및 품질 게이트(Quality Gates) 통합:** CI/CD 파이프라인에 SAST 도구(예: Snyk, SonarQube, Qodana) 및 코드 품질 분석 도구를 통합하여 품질 검사를 빌드 프로세스의 자연스러운 일부로 만듭니다 [1, 7, 8]. 이를 통해 특정 심각도 임계값을 초과하는 보안 취약점이나 품질 기준에 미달하는 코드가 병합(Merge)되거나 배포되는 것을 자동으로 차단(Guardrail)할 수 있습니다 [1, 5, 9]. +- **병렬 검사 및 리뷰 파이프라인 설계:** Pull Request(PR)가 생성되면 CI 파이프라인은 린팅, 포맷팅 검증, 유닛 및 통합 테스트, 종속성 취약점 스캔 등의 사전 병합(Pre-Merge) 자동화 검사를 병렬로 실행합니다 [10]. 코드 변경 사항은 이러한 자동화 검사를 통과한 후에만 사람이 직접 수행하는 코드 리뷰로 라우팅되거나 병합이 활성화되도록 구성되어, 리뷰어의 인지적 부담을 줄이고 전체적인 소프트웨어 전송 속도를 높입니다 [8, 11, 12]. +- **CI 환경에서의 도구 실행 전략:** CI 서버에서 검사를 실행할 때는 로컬 환경을 위한 Git 훅 도구를 비활성화(`HUSKY=0` 등 설정)하고, 특정 파일만이 아닌 프로젝트에 필요한 실제 검사 명령어 전체를 직접 실행하도록 설정하는 것이 권장됩니다 [6, 13]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Static Application Security Testing (SAST)]], [[Code Review]], [[Git Hooks]], [[Quality Gates]], [[Pull Request (PR)]] +- **Projects/Contexts:** [[TeamCity]], [[GitHub Actions]], [[GitLab CI]], [[Jenkins]], [[Azure DevOps]]와 같이 코드 통합과 자동화 빌드를 관장하는 인프라 환경 [1, 9, 14]. +- **Contradictions/Notes:** 로컬 Git 훅(pre-commit 등)은 로컬 환경에서 빠른 피드백을 제공하여 시간을 절약하게 해주지만, 우회가 가능하므로 CI를 완전히 대체할 수 없으며 반드시 CI 파이프라인을 통한 최종 검증이 병행되어야 합니다 [2, 4, 15]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Continuous Integration (CI).md]] +--- diff --git a/Programming & Language/Control-Flow-Analysis.md b/Programming & Language/Control-Flow-Analysis.md new file mode 100644 index 00000000..8f082b6e --- /dev/null +++ b/Programming & Language/Control-Flow-Analysis.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-452CC1 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Control-Flow-Analysis" +--- + +# [[Control-Flow-Analysis]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Control-Flow-Analysis.md]] +--- diff --git a/Programming & Language/Cosmos 플랫폼 (Netflix).md b/Programming & Language/Cosmos 플랫폼 (Netflix).md new file mode 100644 index 00000000..2ce4f8ca --- /dev/null +++ b/Programming & Language/Cosmos 플랫폼 (Netflix).md @@ -0,0 +1,36 @@ +--- +id: P-REINFORCE-AUTO-5C7CCB +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Cosmos 플랫폼 (Netflix)" +--- + +# [[Cosmos 플랫폼 (Netflix)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Cosmos는 넷플릭스(Netflix)가 마이크로서비스, 비동기 워크플로우, 서버리스 함수의 장점을 결합하여 구축한 컴퓨팅 플랫폼이다 [1]. 기존 모놀리식 아키텍처인 'Reloaded'의 한계를 극복하고 관측성, 모듈성, 생산성, 지속적 배포(Continuous Delivery)를 향상시키기 위해 개발되었다 [2, 3]. 수 분에서 수년에 걸쳐 실행되는 복잡한 계층적 워크플로우 및 리소스 집약적인 알고리즘을 조율하는 데 최적화되어 있으며, 대규모 처리량과 지연 시간에 민감한 작업 부하를 모두 지원한다 [1]. + +## 📖 구조화된 지식 (Synthesized Content) +* **배경 및 점진적 전환:** 넷플릭스의 기존 미디어 처리 시스템인 'Reloaded'는 개발팀 규모가 커짐에 따라 인프라와 애플리케이션 코드가 뒤섞이고 새로운 기능 배포가 지연되는 모놀리식 아키텍처의 한계를 겪었다 [2]. 이를 해결하기 위해 워크플로우 기반 미디어 특화 마이크로서비스 플랫폼인 Cosmos가 구축되었으며, 시스템을 완전히 교체할 때까지 기존 시스템 주위를 감싸며 새로운 시스템을 성장시키는 '스트랭글러 피그(Strangler fig) 패턴'을 도입하여 위험을 줄이면서 마이그레이션을 진행했다 [3, 4]. +* **다차원적 관심사의 분리 (Separation of Concerns):** Cosmos는 로직을 API, 워크플로우, 서버리스 함수로 나누는 한편, 도메인 특화 애플리케이션 로직과 분산 컴퓨팅을 처리하는 플랫폼으로 분리하는 양방향 관심사 분리 원칙을 적용했다 [5]. 분산 처리를 담당하는 플랫폼은 세 가지 주요 하위 시스템과 이를 연결하는 큐잉 시스템으로 구성된다 [6]. + * **Optimus:** 외부 요청을 내부 비즈니스 모델로 매핑하는 API 계층이다 [6]. + * **Plato:** 비즈니스 규칙을 모델링하는 워크플로우 계층으로, 'Emirax'라는 도메인 특화 언어(DSL)를 사용하는 포워드 체이닝(forward chaining) 규칙 엔진을 기반으로 설계되었다 [6-8]. + * **Stratum:** 상태가 없으며 계산 집약적인 알고리즘을 실행하는 서버리스 계층이다 [6]. + * **Timestone:** 위의 하위 시스템들이 비동기적으로 통신할 수 있도록 돕는 대규모 저지연 우선순위 큐잉 시스템이다 [6]. +* **지연 시간 관리 및 활용 사례:** Cosmos는 서비스의 분해와 계층화를 지원하여 스튜디오에서 들어오는 미디어 소스를 처리하는 대규모 처리량 중심의 고위급 서비스인 'Tapas'와, 사용자 대면 작업으로 지연 시간에 민감한 'Sagan' 등의 다양한 서비스를 효율적으로 오케스트레이션한다 [9-12]. 수요 폭증 시 발생하는 지연 문제를 해결하기 위해 Stratum은 리소스 풀(Resource pools) 설정, 사전 확보된 웜 용량(Warm capacity), 컨테이너 시작 비용을 분산하는 마이크로 배치(Micro-batches), 작업의 우선순위(Priority) 지정 등의 전략을 활용한다 [13]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[마이크로서비스 (Microservices)]], [[서버리스 컴퓨팅 (Serverless Computing)]], [[관심사의 분리 (Separation of Concerns)]] +- **Projects/Contexts:** [[Reloaded]], [[Optimus]], [[Plato]], [[Stratum]], [[Timestone]], [[Tapas]], [[Sagan]] +- **Contradictions/Notes:** "서버리스 함수를 조율하는 워크플로우를 트리거하는 마이크로서비스"라는 Cosmos의 프로그래밍 모델은 강력하지만, 단순한 애플리케이션에 적용하기에는 부가되는 복잡성이 이점보다 클 수 있다는 점이 지적된다 [14]. 또한, Cosmos 플랫폼 도입 당시 애플리케이션 개발자들은 일관성과 신뢰성을 획득하는 대신 일정한 유연성을 포기하는 방향으로 마인드셋을 전환해야 했다 [14]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Cosmos 플랫폼 (Netflix).md]] +--- diff --git a/Programming & Language/Covariance-and-Contravariance.md b/Programming & Language/Covariance-and-Contravariance.md new file mode 100644 index 00000000..bd536fd3 --- /dev/null +++ b/Programming & Language/Covariance-and-Contravariance.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-1D016B +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Covariance-and-Contravariance" +--- + +# [[Covariance-and-Contravariance]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Covariance-and-Contravariance.md]] +--- diff --git a/Programming & Language/Cumulative Layout Shift (CLS).md b/Programming & Language/Cumulative Layout Shift (CLS).md new file mode 100644 index 00000000..fa5d9e8d --- /dev/null +++ b/Programming & Language/Cumulative Layout Shift (CLS).md @@ -0,0 +1,42 @@ +--- +id: P-REINFORCE-AUTO-C15CB2 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Cumulative Layout Shift (CLS)" +--- + +# [[Cumulative Layout Shift (CLS)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Cumulative Layout Shift (CLS)는 웹 페이지가 로드되는 동안 레이아웃과 콘텐츠가 얼마나 예기치 않게 이동하는지를 측정하는 시각적 안정성(Visual Stability) 지표입니다 [1, 2]. 구글의 코어 웹 바이탈(Core Web Vitals)을 구성하는 핵심 지표 중 하나로, 나중에 렌더링된 콘텐츠가 중요한 콘텐츠를 밀어내면서 발생하는 사용자 경험의 저하를 방지하기 위해 사용됩니다 [1, 2]. CLS 점수는 0.1 미만을 유지하는 것이 권장됩니다 [3]. + +## 📖 구조화된 지식 (Synthesized Content) +* **측정 기준 및 중요성:** + CLS는 시각적 안정성을 측정하는 지표로, 페이지 로드 중 요소들의 위치가 변경되는 레이아웃 이동 현상을 수치화합니다 [1, 2]. 이상적이고 쾌적한 사용자 경험을 위해 CLS 점수는 0.1 미만이어야 하며, 0.25를 초과할 경우 상태가 매우 나쁜 것으로 간주되어 성능 개선이 필요합니다 [3]. LCP, INP와 함께 최적화되어야 하는 코어 웹 바이탈의 중요 요소입니다 [4]. + +* **주요 발생 원인 및 최적화 방법:** + 주로 앱 배너, 이미지, 광고, 임베드 요소 등이 화면에 나타나면서 기존에 렌더링된 콘텐츠를 아래로 밀어낼 때 발생합니다 [2, 5, 6]. 이를 방지하기 위해서는 이미지나 광고, 임베드 요소가 로드될 공간을 미리 확보(reserve space)해 두어야 하며, 기존에 있는 콘텐츠 위로 새로운 콘텐츠를 동적으로 삽입하는 것을 피해야 합니다 [6]. + +* **분석 및 디버깅:** + Chrome DevTools의 성능(Performance) 패널을 사용해 CLS의 원인을 파악하고 디버깅할 수 있습니다 [7]. + * 'Layout shifts' 트랙에서 레이아웃 이동은 보라색 다이아몬드로 표시되며, 시간상 근접성에 따라 클러스터 형태(보라색 선)로 그룹화됩니다 [7]. + * 이 다이아몬드나 'Worst cluster 1 shift' 항목을 클릭하면 어떤 DOM 요소가 이동에 영향을 받았는지 식별할 수 있으며, 마우스를 올리면 뷰포트 내에서 해당 요소가 하이라이트됩니다 [7, 8]. + +* **브라우저 지원 동향:** + 현재 구글을 중심으로 측정되고 있으나, 파이어폭스(Firefox)와 사파리(Safari)의 브라우저 호환성을 위한 Interop 2025 프로젝트에는 CLS 지원이 계획되어 있지 않습니다 [9]. 다만, 차기 프로젝트인 Interop 2026에 CLS를 포함하려는 제안이 존재합니다 [9]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Core Web Vitals]], [[Largest Contentful Paint (LCP)]], [[Interaction to Next Paint (INP)]] +- **Projects/Contexts:** [[Chrome DevTools]], [[Interop 2026]] +- **Contradictions/Notes:** CLS 수치는 기기의 해상도에 크게 의존하기 때문에 실제 방문자 데이터를 나타내는 현장(Field) 데이터와 개발자의 로컬(Local) 데이터 간에 차이가 발생하기 쉽습니다. 이러한 이유로 코어 웹 바이탈 지표 중에서도 에뮬레이션하여 측정하기 가장 까다로운 지표로 평가받습니다 [8]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Cumulative Layout Shift (CLS).md]] +--- diff --git a/Programming & Language/Cybertext.md b/Programming & Language/Cybertext.md new file mode 100644 index 00000000..5cf77b2f --- /dev/null +++ b/Programming & Language/Cybertext.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-52E635 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Cybertext" +--- + +# [[Cybertext]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Cybertext.md]] +--- diff --git a/Programming & Language/Cypher 질의 언어 (Neo4j).md b/Programming & Language/Cypher 질의 언어 (Neo4j).md new file mode 100644 index 00000000..85c5b087 --- /dev/null +++ b/Programming & Language/Cypher 질의 언어 (Neo4j).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-C101DD +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Cypher 질의 언어 (Neo4j)" +--- + +# [[Cypher 질의 언어 (Neo4j)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Cypher 질의 언어 (Neo4j).md]] +--- diff --git a/Programming & Language/DAST (동적 애플리케이션 보안 테스트).md b/Programming & Language/DAST (동적 애플리케이션 보안 테스트).md new file mode 100644 index 00000000..9aae9826 --- /dev/null +++ b/Programming & Language/DAST (동적 애플리케이션 보안 테스트).md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-09DD84 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - DAST (동적 애플리케이션 보안 테스트)" +--- + +# [[DAST (동적 애플리케이션 보안 테스트)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> DAST(동적 애플리케이션 보안 테스트)는 애플리케이션이 실행되는 런타임 환경에서 외부로부터 취약점을 테스트하는 블랙박스(Black-box) 테스트 기법입니다 [1, 2]. 소스 코드를 직접 분석하는 SAST와 달리 특정 프로그래밍 언어에 종속되지 않으며, 주로 소프트웨어 개발 수명 주기(SDLC)의 후반부인 스테이징이나 프로덕션 단계에 적용됩니다 [2, 3]. 이를 통해 실행 중인 애플리케이션의 실제 동작, 구성(Configuration) 문제 및 노출된 공격 표면을 관찰하여 런타임 취약점을 찾아내는 데 효과적입니다 [1, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +* **테스트 방식 및 시기:** DAST는 소스 코드를 실행하지 않고 검사하는 SAST(화이트박스 테스트)와 반대로, 실행 중인 애플리케이션을 외부에서 테스트하는 블랙박스 테스트입니다 [1, 3]. CI 파이프라인의 후반부인 스테이징, 사전 프로덕션(pre-prod) 또는 프로덕션 환경에 주로 적용되어 외부 환경과 상호작용하는 애플리케이션을 테스트합니다 [2-4]. +* **탐지 범위 및 특징:** 코드의 내부 로직이나 데이터 흐름을 보는 대신, 애플리케이션의 런타임 동작, 구성 문제, 외부에 노출된 인터페이스를 중점적으로 관찰하여 런타임 환경에서 안전한지를 검증합니다 [3, 4]. 분석 시 특정 프로그래밍 언어에 얽매이지 않는다는 것도 주요 특징입니다 [2]. +* **퍼징(Fuzzing) 기법 활용:** DAST 방법론 중 하나인 퍼징(Fuzzing)은 애플리케이션에 의도적으로 스트레스 및 예상치 못한 입력을 가해 예기치 않은 동작, 시스템 충돌, 리소스 누수 등을 유발함으로써 런타임 애플리케이션의 취약점을 심층적으로 파악하는 데 사용됩니다 [2]. +* **SAST와의 상호 보완적(Layered Coverage) 활용:** 효율적인 애플리케이션 보안을 위해 DAST는 단독으로 쓰이기보다 SAST와 결합하여 사용됩니다 [1, 4]. 개발 초기 단계에서는 SAST가 코드 결함을 찾고, 후반 배포 단계에서는 DAST가 런타임/구성 취약점 및 회귀(Regression) 버그를 방지함으로써 계층화된 완벽한 보안 커버리지를 제공할 수 있습니다 [1, 2, 4, 5]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[SAST (정적 애플리케이션 보안 테스트)]], [[Black-box Testing]], [[Fuzzing]] +- **Projects/Contexts:** [[AppSec (애플리케이션 보안)]], [[CI/CD 파이프라인]], [[SDLC (소프트웨어 개발 수명 주기)]] +- **Contradictions/Notes:** 소스 내용 간의 모순은 존재하지 않으며, DAST는 코드를 직접 분석하는 SAST와 접근 방식(블랙박스 vs 화이트박스)에서 명확히 대비되지만 상호 배타적인 것이 아니라 강력한 보안 태세를 위해 함께 구축해야 하는 보완재로 설명됩니다 [4, 5]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/DAST (동적 애플리케이션 보안 테스트).md]] +--- diff --git a/Programming & Language/DOM 요소 조작 및 타입 좁히기.md b/Programming & Language/DOM 요소 조작 및 타입 좁히기.md new file mode 100644 index 00000000..bbb1b1a8 --- /dev/null +++ b/Programming & Language/DOM 요소 조작 및 타입 좁히기.md @@ -0,0 +1,43 @@ +--- +id: P-REINFORCE-AUTO-3A0CD0 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - DOM 요소 조작 및 타입 좁히기" +--- + +# [[DOM 요소 조작 및 타입 좁히기]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> DOM 요소 조작 시에는 타입스크립트의 타입 좁히기(Type Narrowing) 기술을 통해 타입 안정성을 확보하는 것이 중요합니다. 타입 좁히기란 코드 흐름 분석을 사용하여 포괄적인 타입(유니온 타입 등)을 구체적인 단일 타입으로 줄여나가는 과정입니다 [1-3]. DOM 요소를 다루거나 구조가 명확하지 않은 데이터를 처리할 때, 타입 단언(`as`), 사용자 정의 타입 가드, `typeof` 및 `instanceof` 연산자 등을 활용하여 안전하게 타입을 좁혀 조작할 수 있습니다 [4-6]. + +## 📖 구조화된 지식 (Synthesized Content) +**DOM 요소 조작 시 타입 단언(`as`)의 활용** +* DOM 요소로 작업하며 타입을 좁혀야 할 때, 타입 단언(`as`) 연산자가 주로 활용됩니다 [5]. +* 타입 단언은 런타임 검증을 마쳤거나 DOM 조작과 같이 불가피한 상황에서 컴파일러에게 특정 타입임을 강제할 때 사용합니다 [5, 7]. 하지만 개발자가 잘못 판단할 경우 컴파일러가 에러를 잡지 못해 런타임 오류로 이어질 수 있으므로 사용에 매우 주의해야 합니다 [7, 8]. + +**DOM 요소 삽입과 브랜디드 타입(Branded Types)을 통한 보안** +* 사용자의 입력값을 DOM의 `innerHTML` 등에 직접 추가하는 것은 XSS 공격에 노출될 수 있는 위험한 방식입니다 [9]. +* 이를 방어하기 위해 브랜디드 문자열 타입(Branded String Types)을 사용하여, 데이터가 DOM에 추가되기 전에 반드시 정제(Sanitized) 과정을 거쳤음을 타입 시스템 차원에서 강제할 수 있습니다 [9]. +* 또한, 유효하지 않은 잉여 속성(예: 'hello')을 DOM 객체로 전달할 경우 React와 같은 라이브러리에서는 경고를 발생시킬 수 있으므로 정확한 타입 지정이 중요합니다 [10]. + +**타입 좁히기(Type Narrowing)의 주요 기법** +* **`typeof` 및 `instanceof` 연산자:** `typeof`를 사용해 "string", "number", "boolean" 등의 원시 타입을 확인하거나, `instanceof`를 사용해 생성자 프로토타입의 인스턴스인지를 확인하여 타입을 좁힙니다 [4, 6]. +* **`in` 연산자 및 판별 속성(Discriminant Property):** 객체 내에 특정 속성이 존재하는지 `in` 키워드로 확인하거나, 식별 가능한 유니온(Discriminated Unions) 패턴에서 공통 리터럴 타입 필드(예: `kind` 또는 `type`)를 `switch` 문으로 비교하여 해당 블록 내의 타입을 안전하게 좁힙니다 [1, 3, 4, 11]. +* **타입 서술어(Type Predicates):** 반환 타입에 `is` 키워드를 사용하여(예: `value is Positive`), 함수가 `true`를 반환할 때 조건문 내부에서 매개변수가 특정 타입으로 좁혀지도록 타입 시스템에 알립니다 [6, 12]. +* **단언 함수(Assertion Functions):** 입력된 값이 기대한 타입이 아닐 경우 에러를 던지도록 작성된 함수입니다. 이 함수를 통과한 이후의 코드는 해당 값이 특정 타입이 확실함을 타입 시스템이 인지하여 타입을 좁히게 됩니다 [13, 14]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Type Narrowing]], [[Type Assertions]], [[Discriminated Unions]], [[Branded Types]] +- **Projects/Contexts:** [[안전한 DOM 조작 및 데이터 정제]], [[React 컴포넌트 Props 처리]] +- **Contradictions/Notes:** 타입 단언(`as`)은 DOM 요소를 다루며 타입을 좁힐 때 유용하고 흔하게 사용되지만 [5], 런타임 동작에는 영향을 주지 않으므로 타입 에러를 우회하여 잘못된 코드를 통과시킬 위험이 있습니다. 따라서 가능한 한 `satisfies`나 사용자 정의 타입 가드 등 더 안전한 방식을 우선적으로 고려하는 것이 좋습니다 [7, 8, 15]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/DOM 요소 조작 및 타입 좁히기.md]] +--- diff --git a/Programming & Language/DOM 요소 조작.md b/Programming & Language/DOM 요소 조작.md new file mode 100644 index 00000000..7bb8d717 --- /dev/null +++ b/Programming & Language/DOM 요소 조작.md @@ -0,0 +1,35 @@ +--- +id: P-REINFORCE-AUTO-15DA1E +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - DOM 요소 조작" +--- + +# [[DOM 요소 조작]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 주어진 소스에는 DOM 요소 조작의 구체적인 방법론이나 원리에 대한 내용이 포함되어 있지 않아 소스에 관련 정보가 부족합니다. 제공된 문서들에서는 DOM 요소를 다룰 때 TypeScript의 타입 단언(`as`)을 사용하는 상황이나, 사용자 입력을 DOM에 추가하기 전 XSS 공격을 방어하기 위해 텍스트를 소독(sanitize)해야 한다는 보안 및 타입 안정성 측면에서의 단편적인 예시만 확인됩니다 [1-3]. + +## 📖 구조화된 지식 (Synthesized Content) +소스에 관련 정보가 부족합니다. + +제공된 소스에서 DOM 조작과 관련해 부분적으로 도출할 수 있는 내용은 다음과 같습니다: + +* **DOM 조작과 타입 단언(`as`):** TypeScript 환경에서 DOM 요소를 조작하거나 타입 추론이 어려운 외부 데이터를 다룰 때, 개발자가 런타임 유효성을 확인하여 타입에 대해 확신이 있다면 `as` 키워드를 사용하여 타입을 단언할 수 있습니다 [2]. 주로 DOM 요소의 타입을 구체적으로 좁혀야(narrow) 할 때(예: 특정 HTML 요소로 단언할 때) 제한적으로 `as`의 사용이 고려됩니다 [3]. +* **DOM 추가 시 보안(XSS) 유의사항:** 사용자의 입력값을 검증 없이 DOM(예: `innerHTML`)에 직접 쓰는 것은 보안상 매우 위험한 방식입니다 [1]. 악의적인 코드가 주입되는 XSS(크로스 사이트 스크립팅) 공격을 막기 위해, DOM에 데이터를 추가하기 전에 반드시 텍스트를 소독(sanitize)해야 합니다 [1]. TypeScript의 브랜디드 타입(Branded Types)을 활용하면 소독된 문자열과 소독되지 않은 문자열의 타입을 구분할 수 있어, 안전하게 처리된 문자열만 DOM에 삽입되도록 타입 시스템 수준에서 강제할 수 있습니다 [1, 4]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[타입 단언(Type Assertions)]], [[브랜디드 타입(Branded Types)]] +- **Projects/Contexts:** [[안전한 TypeScript 프론트엔드 개발 및 XSS 방어]] +- **Contradictions/Notes:** 소스에 DOM 요소 조작의 본질적인 원리나 구체적인 API(예: 순수 자바스크립트 DOM API)에 대한 정보가 절대적으로 부족하므로 "소스에 관련 정보가 부족합니다." + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/DOM 요소 조작.md]] +--- diff --git a/Programming & Language/DeepReadonly.md b/Programming & Language/DeepReadonly.md new file mode 100644 index 00000000..4a292bd6 --- /dev/null +++ b/Programming & Language/DeepReadonly.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-5FB09F +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - DeepReadonly" +--- + +# [[DeepReadonly]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> DeepReadonly는 TypeScript에서 객체의 모든 중첩된 프로퍼티에 재귀적으로 `readonly`를 적용하여 데이터 구조 전체를 완전한 불변(immutable) 상태로 만드는 사용자 정의 유틸리티 타입이다 [1, 2]. 기본 내장된 `Readonly` 유틸리티가 객체의 최상위 속성만 보호하는 얕은(shallow) 불변성만을 제공한다는 한계를 극복하기 위해 고안되었다 [1-3]. 상태 관리나 설정 객체와 같이, 객체 생성 이후 내부의 단 하나의 속성도 수정되지 않아야 함을 엄격하게 보장해야 할 때 주로 사용된다 [1, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +- **얕은 불변성의 한계 극복:** TypeScript가 기본으로 제공하는 `Readonly` 타입은 객체의 최상위 수준(top-level) 프로퍼티만 읽기 전용으로 제어한다 [1, 2]. 따라서 내부의 중첩된 객체는 여전히 수정 가능한 상태로 남게 되어 데이터 오염의 위험이 존재하는데, 깊은 수준의 불변성을 강제하기 위해서는 `DeepReadonly` 타입이 필요하다 [1-3]. +- **재귀적 구현 방식:** `DeepReadonly`는 매핑 타입(Mapped Types)과 조건부 타입(Conditional Types)을 결합하여 재귀적으로 정의된다 [4]. 일반적으로 `type DeepReadonly = { readonly [P in keyof T]: DeepReadonly };`와 같은 형태로 작성되어, 중첩된 데이터 트리 구조의 모든 하위 속성에 `readonly` 수식어가 빠짐없이 적용되도록 만든다 [1, 2, 4]. +- **적용 및 가용성:** 이 타입은 데이터 무결성을 최우선으로 하는 프론트엔드 아키텍처나 복잡한 시스템에서 예기치 않은 데이터 변경을 차단하는 강력한 방패 역할을 수행한다 [4]. 하지만 `DeepReadonly`는 현재 TypeScript 언어 자체에 내장되어 있지 않다 [5]. 따라서 개발자가 프로젝트 내에서 직접 재귀적 유틸리티 타입을 선언하거나, `ts-essentials`와 같이 이를 제공하는 서드파티 라이브러리를 가져와 사용해야 한다 [5]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[readonly]], [[Readonly]], [[Mapped Types]], [[Conditional Types]] +- **Projects/Contexts:** [[상태 관리(State Management)]], [[설정 객체(Configuration Objects)]], [[ts-essentials]] +- **Contradictions/Notes:** 깊은 수준의 불변성을 보장하는 기능이 실무적으로 널리 요구되었음에도 불구하고 `DeepReadonly`는 TypeScript에 공식적으로 기본 내장되어 있지 않다는 점이 특징적이다 [5]. 이로 인해 추가적인 구현이나 외부 라이브러리 의존성이 요구된다 [5]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/DeepReadonly.md]] +--- diff --git a/Programming & Language/DefinitelyTyped and Ambient Declarations.md b/Programming & Language/DefinitelyTyped and Ambient Declarations.md new file mode 100644 index 00000000..4183ca71 --- /dev/null +++ b/Programming & Language/DefinitelyTyped and Ambient Declarations.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-8435E3 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - DefinitelyTyped and Ambient Declarations" +--- + +# [[DefinitelyTyped and Ambient Declarations]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/DefinitelyTyped and Ambient Declarations.md]] +--- diff --git a/Programming & Language/Depth Pre-Pass.md b/Programming & Language/Depth Pre-Pass.md new file mode 100644 index 00000000..63a999f8 --- /dev/null +++ b/Programming & Language/Depth Pre-Pass.md @@ -0,0 +1,35 @@ +--- +id: P-REINFORCE-AUTO-B5A436 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Depth Pre-Pass" +--- + +# [[Depth Pre-Pass]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Depth Pre-Pass는 복잡한 기하학적 구조를 가진 씬에서 가려진 객체를 제거하는 오클루전 컬링(Occlusion culling)을 수행하기 위해 사용되는 효과적인 렌더링 전략입니다 [1]. 특히 필 레이트(fill-rate)와 프래그먼트 처리 성능이 제한된 내장 GPU(iGPU) 환경에서 유용한 해결책으로 활용됩니다 [1]. 렌더링을 두 단계로 나누어 불필요한 프래그먼트 셰이더 연산을 방지함으로써 오버드로우(overdraw)가 심한 모델의 렌더링 성능을 크게 향상시킵니다 [1, 2]. + +## 📖 구조화된 지식 (Synthesized Content) +* **작동 원리 (두 단계의 렌더링 프로세스):** Depth Pre-Pass는 다음과 같은 두 가지 렌더링 단계로 구성됩니다 [1]. + 1. **Stage 1 (Depth-Only):** 씬 전체를 `MeshBasicMaterial`과 같이 매우 단순한 재질을 사용하여 렌더링하며, 이때 색상 쓰기 기능은 비활성화(`colorWrite: false`)합니다 [1]. 이 첫 번째 패스는 가장 가까운 프래그먼트의 깊이(depth) 값으로 Z-버퍼(Z-buffer)를 채우는 역할만을 수행합니다 [1]. + 2. **Stage 2 (Main Render):** 깊이 테스트(depth test) 함수를 `EQUAL`로 설정한 후, 전체 셰이딩을 적용하여 씬을 다시 렌더링합니다 [1]. Z-버퍼에는 이미 화면에 보이는 표면의 깊이 값만 저장되어 있으므로, GPU는 다른 물체에 가려진(occluded) 프래그먼트들이 연산 비용이 높은 메인 셰이더 로직에 진입하기 전에 이를 자동으로 폐기(discard)합니다 [1]. + +* **성능 향상 및 적용 효과:** + 이러한 수동 Z-prepass 로직을 구현하면 프래그먼트 셰이더에 가해지는 부하를 최대 30%까지 줄일 수 있습니다 [2]. 이는 숨겨진 내부 기하구조 레이어가 많아 픽셀이 여러 번 덧그려지는 '오버드로우(overdraw)'가 심하게 발생하는 CAD 모델을 렌더링할 때 특히 귀중한 최적화 기법입니다 [2]. 개발자들은 이러한 깊이 기반의 가시성 판별(Depth Pre-Pass) 기술을 구조적 최적화 및 Render-on-Demand 실행 모델과 결합하여, 표준 모바일 하드웨어에서도 워크스테이션 수준의 시각화 경험을 제공할 수 있습니다 [3]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Occlusion Culling]], [[Z-buffer]], [[Overdraw]], [[Fragment Shader]] +- **Projects/Contexts:** [[WebGL/Three.js CAD Rendering Optimization]] +- **Contradictions/Notes:** 소스에 상충되는 내용은 없으며, 오클루전 컬링을 CPU에서 처리하기 어렵거나 GPU 레이턴시로 인해 비용이 높을 때 이를 해결하는 가장 효과적인 우회(workaround) 기법으로 설명됩니다 [1]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Depth Pre-Pass.md]] +--- diff --git a/Programming & Language/Description Logic (기술 논리).md b/Programming & Language/Description Logic (기술 논리).md new file mode 100644 index 00000000..78e4be28 --- /dev/null +++ b/Programming & Language/Description Logic (기술 논리).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-442F1D +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Description Logic (기술 논리)" +--- + +# [[Description Logic (기술 논리)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Description Logic (기술 논리).md]] +--- diff --git a/Programming & Language/Deterministic Algorithms.md b/Programming & Language/Deterministic Algorithms.md new file mode 100644 index 00000000..7cbd5b1c --- /dev/null +++ b/Programming & Language/Deterministic Algorithms.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-FB6D64 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Deterministic Algorithms" +--- + +# [[Deterministic Algorithms]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Deterministic Algorithms.md]] +--- diff --git a/Programming & Language/Discriminated Unions.md b/Programming & Language/Discriminated Unions.md new file mode 100644 index 00000000..a27d8719 --- /dev/null +++ b/Programming & Language/Discriminated Unions.md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-DEC013 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Discriminated Unions" +--- + +# [[Discriminated Unions]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Discriminated Unions(또는 식별 가능한 유니온, 태그된 유니온)은 서로 다른 데이터 형태를 구분하기 위해 공통된 리터럴 속성(판별자, Discriminant)을 사용하는 TypeScript의 패턴입니다 [1-3]. 일반적인 유니온 타입과 달리, 컴파일러가 판별자 속성을 확인하여 타입을 자동으로 안전하게 좁힐 수(Narrowing) 있게 해줍니다 [4-6]. 이를 통해 유효하지 않은 상태의 표현을 원천적으로 차단하고, 모든 가능한 경우를 처리하도록 강제하는 완전성 검사(Exhaustiveness checking)를 구현할 수 있습니다 [3, 7, 8]. + +## 📖 구조화된 지식 (Synthesized Content) +* **작동 원리 및 특징** + Discriminated Union은 객체들이 공통으로 가지는 식별자 필드(주로 `kind`, `type`, `status` 같은 문자열 리터럴)를 활용하여 구성됩니다 [2-4]. 이 공통 속성을 기반으로 TypeScript의 코드 흐름 분석이 진행되며, 특정 브랜치에서 타입을 명확하게 좁혀줍니다 [3, 4, 9]. 이는 런타임 오버헤드가 전혀 추가되지 않는 컴파일 타임 전용 구조입니다 [10]. + +* **주요 장점** + 가장 큰 장점은 올바르지 않은 조합의 상태(Invalid states)를 코드로 표현할 수 없게 만들어 구조적으로 버그를 방지한다는 것입니다 [1, 7, 11]. 또한 `switch` 문과 `never` 타입을 결합하면 모든 유니온 케이스가 처리되었는지 컴파일러가 확인하는 '완전성 검사(Exhaustive checking)'가 가능합니다 [3, 12-14]. 유니온에 새로운 타입 멤버가 추가되었을 때 이를 누락한 코드를 즉각적인 컴파일 에러로 포착해 내므로 유지보수성이 크게 향상됩니다 [3, 8]. + +* **사용 사례 (Use Cases)** + API 응답 데이터 처리, 폼(Form) 핸들링, Redux 스타일의 리듀서(Reducer), 라우터 상태 관리, 그리고 상태 머신(State Machine) 패턴을 모델링하는 데 매우 적합합니다 [7, 15-17]. 복잡한 상태를 표현해야 할 때는 다중 판별자(Multiple Discriminants)를 두거나 유니온을 중첩(Nested)하는 방식으로도 활용할 수 있습니다 [15, 16]. + +* **주의사항 및 베스트 프랙티스** + 판별자로는 항상 문자열 리터럴 타입을 사용하는 것이 권장되며, 모든 브랜치에 걸쳐 일관된 판별자 속성을 포함해야 합니다 [12, 16, 18]. 타입을 좁힐 때는 `instanceof` 연산자를 사용하는 대신 반드시 판별자 속성을 확인해야 합니다 [18]. 단, 아주 거대한 코드베이스에서 과도하게 복잡한 유니온 타입을 사용하면 TypeScript의 컴파일 속도가 느려질 수 있으며, 깊게 중첩될 경우 에러 메시지를 파악하기 어려워질 수 있으므로 주의해야 합니다 [10]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Union Types]], [[Type Narrowing]], [[Exhaustiveness Checking]], [[Literal Types]], [[never type]] +- **Projects/Contexts:** [[React State Management]], [[State Machine Pattern]], [[API Response Handling]], [[Redux Reducers]] +- **Contradictions/Notes:** Discriminated Union 패턴은 타입 안정성과 예측 가능성을 크게 높여주지만, 유니온 타입이 지나치게 복잡해지거나 깊은 중첩 구조를 가지게 되면 오히려 TypeScript의 컴파일 성능을 저하시키고 에러 메시지의 가독성을 떨어뜨리는 부작용(단점)을 유발할 수 있습니다 [10]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Discriminated Unions.md]] +--- diff --git a/Programming & Language/Disentanglement (개념 분리).md b/Programming & Language/Disentanglement (개념 분리).md new file mode 100644 index 00000000..cb6f6591 --- /dev/null +++ b/Programming & Language/Disentanglement (개념 분리).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-3C9639 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Disentanglement (개념 분리)" +--- + +# [[Disentanglement (개념 분리)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Disentanglement (개념 분리).md]] +--- diff --git a/Programming & Language/Draw Call Optimization.md b/Programming & Language/Draw Call Optimization.md new file mode 100644 index 00000000..ccc40ba1 --- /dev/null +++ b/Programming & Language/Draw Call Optimization.md @@ -0,0 +1,36 @@ +--- +id: P-REINFORCE-AUTO-0B8FFC +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Draw Call Optimization" +--- + +# [[Draw Call Optimization]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 드로우 콜(Draw Call)은 CPU가 GPU에게 기하학적 구조, 재질, 렌더링 지침 등을 전달하여 화면에 객체를 그리도록 내리는 명령입니다 [1-3]. 각 드로우 콜을 준비하고 상태를 변경하는 과정에서 막대한 CPU 오버헤드가 발생하기 때문에, 드로우 콜 횟수를 줄이는 것은 애플리케이션의 프레임 속도와 전반적인 렌더링 성능을 개선하고 병목 현상을 방지하는 핵심 최적화 기법입니다 [4-6]. + +## 📖 구조화된 지식 (Synthesized Content) +* **드로우 콜의 성능 병목 (Bottlenecks):** 그래픽 API가 GPU에 렌더링 상태를 설정하고 명령을 내리는 준비 과정은 실제 GPU가 픽셀을 렌더링하는 것보다 더 많은 CPU 자원을 소모합니다 [2, 4, 6]. 이로 인해 개별 객체를 수천 번 분리하여 그리면 GPU의 폴리곤 처리 한계에 도달하기도 전에 CPU 병목이 발생하여 시스템 프레임 레이트가 급감합니다 [5, 7]. 최신 기기에서 부드러운 60fps를 유지하려면 프레임당 드로우 콜을 100개 이하로 타겟팅하는 것이 권장되며 [8-10], WebGL 환경에서의 실질적인 한계는 1,000~2,000회 수준입니다 [11]. +* **주요 최적화 기법 (Optimization Techniques):** + * **인스턴싱 (Instancing):** `InstancedMesh` 등을 사용하여 동일한 기하학적 구조와 재질을 가진 객체의 수많은 복제본을 단 한 번의 드로우 콜로 렌더링합니다 [8, 12-14]. 나무, 풀, 파티클 시스템과 같이 반복되는 요소에 효율적입니다 [12, 15]. + * **배칭 및 병합 (Batching & Merging):** `BatchedMesh`는 동일한 재질을 공유하지만 서로 다른 기하학적 구조를 가진 객체들을 하나의 드로우 콜로 묶어 처리할 수 있게 합니다 [16, 17]. 정적인 환경 요소는 `BufferGeometryUtils`와 같은 도구를 사용해 하나의 지오메트리로 병합(Merging)하면 여러 드로우 콜을 한 번으로 줄일 수 있습니다 [16, 18-21]. + * **재질 및 텍스처 공유 (Material & Texture Sharing):** 객체마다 새로운 재질을 생성하는 것은 최적화를 저해합니다 [16, 19]. 텍스처 아틀라스(Texture Atlas)나 배열 텍스처(Array Textures)를 활용하여 재질을 공유함으로써 텍스처 바인딩 및 상태 변경에 따른 추가적인 드로우 콜을 방지합니다 [20, 22-24]. + * **가시성 제어 (Visibility & LOD):** 카메라 시야 밖의 객체에 대한 렌더링 명령을 제외하는 절두체 컬링(Frustum Culling)을 수행하고 [18, 25], 카메라와의 거리에 따라 기하학적 복잡도를 낮추는 LOD(Level of Detail) 기법을 적용하여 멀리 있는 객체에서 발생하는 불필요한 드로우 콜과 연산을 최소화합니다 [9, 26-28]. +* **구조적 한계 및 고려사항 (Limitations & Trade-offs):** `InstancedMesh`를 통한 드로우 콜 단일화가 항상 최선은 아닙니다. 단일 객체로 취급되어 가시성 판정이 '전부 아니면 전무(All-or-Nothing)'로 이루어져 절두체 컬링이 비효율적으로 작동할 수 있습니다 [29, 30]. 또한, 인스턴스 간 자동 정렬 부재로 인한 심각한 오버드로우(Overdraw) 현상과 매 프레임 수많은 변환 행렬 데이터를 갱신할 때 발생하는 메모리 대역폭 한계로 인해 또 다른 성능 병목이 유발될 수 있습니다 [29, 31, 32]. Unity 같은 게임 엔진에서는 이와 같은 드로우 콜 최적화 방식들이 겹칠 때 SRP Batcher, 정적 배칭(Static batching), GPU 인스턴싱 순으로 우선순위를 두어 충돌을 제어합니다 [33, 34]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[InstancedMesh]], [[BatchedMesh]], [[Frustum Culling]], [[Texture Atlas]], [[Level of Detail (LOD)]] +- **Projects/Contexts:** [[Three.js]], [[WebGL]], [[Unity]] +- **Contradictions/Notes:** 일반적으로 드로우 콜을 줄이는 것은 렌더링 성능을 향상시킨다고 알려져 있지만, `InstancedMesh`를 통해 드로우 콜을 1회로 줄였음에도 불구하고 정렬되지 않은 인스턴스들이 유발하는 막대한 오버드로우(Overdraw) 비용이나 비효율적인 컬링으로 인해, 개별 메쉬를 렌더링할 때보다 오히려 프레임 속도(FPS)가 낮아지는 역설적인 상황이 실증적 연구와 버그 리포트 등에서 보고되고 있습니다 [29, 31, 35]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Draw Call Optimization.md]] +--- diff --git a/Programming & Language/Dublin Core Metadata Initiative.md b/Programming & Language/Dublin Core Metadata Initiative.md new file mode 100644 index 00000000..2327d14d --- /dev/null +++ b/Programming & Language/Dublin Core Metadata Initiative.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-4C7308 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Dublin Core Metadata Initiative" +--- + +# [[Dublin Core Metadata Initiative]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Dublin Core Metadata Initiative.md]] +--- diff --git a/Programming & Language/Dwarf Fortress (Simulation-heavy PCG).md b/Programming & Language/Dwarf Fortress (Simulation-heavy PCG).md new file mode 100644 index 00000000..2a2744f9 --- /dev/null +++ b/Programming & Language/Dwarf Fortress (Simulation-heavy PCG).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D6FB1C +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Dwarf Fortress (Simulation-heavy PCG)" +--- + +# [[Dwarf Fortress (Simulation-heavy PCG)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Dwarf Fortress (Simulation-heavy PCG).md]] +--- diff --git a/Programming & Language/Dwarf-Fortress.md b/Programming & Language/Dwarf-Fortress.md new file mode 100644 index 00000000..96fc827d --- /dev/null +++ b/Programming & Language/Dwarf-Fortress.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-1E23B6 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Dwarf-Fortress" +--- + +# [[Dwarf-Fortress]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Dwarf-Fortress.md]] +--- diff --git a/Programming & Language/ESLint.md b/Programming & Language/ESLint.md new file mode 100644 index 00000000..2ea9e997 --- /dev/null +++ b/Programming & Language/ESLint.md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-BDDA30 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - ESLint" +--- + +# [[ESLint]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> ESLint는 자바스크립트 및 타입스크립트 코드에서 문법적 오류와 잠재적 버그를 식별하고 코딩 컨벤션을 강제하는 정적 분석 도구(Linter)입니다 [1, 2]. 소스 코드를 실행하지 않고 추상 구문 트리(AST)로 변환하여 사전에 정의된 논리 및 스타일 규칙을 적용함으로써 런타임 에러를 방지합니다 [3, 4]. 주로 코드 품질을 보장하고 팀 내 일관된 스타일을 유지하기 위해 사용되며, 코드 포매팅 도구인 Prettier와 함께 모던 웹 개발 환경의 필수적인 도구로 활용됩니다 [1, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +* **정적 분석 및 코드 품질 관리** + ESLint는 런타임 환경 이전에 소스 코드의 문제 패턴을 식별하는 정적 분석 도구입니다 [1, 6]. 사용되지 않는 변수, 글로벌 스코프 오염, 잘못된 API 사용 등 잠재적인 버그를 검출하고 코드 퀄리티 규칙을 강제하여 일관된 코드 작성을 돕습니다 [2, 7, 8]. 발견된 문제 중 특정 문법이나 스타일 위반은 `--fix` 옵션을 통해 자동으로 수정(Auto-fixing)할 수 있습니다 [9-11]. + +* **설정 및 규칙 커스터마이징** + ESLint의 규칙은 `off`(0), `warn`(1), `error`(2) 등 세 가지 수준으로 커스터마이징하여 적용할 수 있습니다 [12, 13]. 프로젝트별로 `.eslintrc` 파일이나 ESLint 9부터 도입된 Flat Config(예: `eslint.config.mjs`) 포맷을 통해 설정을 중앙화하고 관리할 수 있습니다 [14-16]. 주로 Airbnb나 Google 스타일 가이드처럼 널리 쓰이는 규칙을 확장(extends)하여 사용하며, TypeScript(`@typescript-eslint`), React(`eslint-plugin-react`) 등을 지원하는 다양한 서드파티 플러그인(plugins)을 장착할 수 있습니다 [17-19]. + +* **Prettier와의 역할 분담 및 충돌 해결** + ESLint는 코드 품질(버그 탐지)에 초점을 맞추는 반면, Prettier는 코드 포매팅(시각적 통일성)에 중점을 둡니다 [2, 5, 20]. ESLint에도 일부 포매팅 규칙이 포함되어 있어 두 도구를 함께 사용할 경우 충돌이 발생할 수 있습니다 [21, 22]. 이를 해결하기 위해 `eslint-config-prettier` 패키지를 사용하여 Prettier와 충돌하는 ESLint의 스타일 규칙을 비활성화(off)하는 방법이 가장 널리 권장됩니다 [21, 23-25]. + +* **워크플로우 및 자동화 연동** + 코드 변경 사항이 Git 저장소에 반영되기 전, 나쁜 코드가 커밋되는 것을 방지하기 위해 자동화 파이프라인과 결합하여 사용됩니다 [26, 27]. 주로 `Husky`와 `lint-staged` 도구를 활용하여, Git의 `pre-commit` 훅(hook) 단계에서 변경된(staged) 파일에 대해서만 ESLint 검사 및 자동 수정을 실행하도록 구성합니다 [11, 28-30]. 대규모 모노레포(Monorepo) 환경에서는 중복 구성을 피하기 위해 중앙집중식 ESLint 설정 패키지를 만들어 각 하위 패키지가 이를 공유하도록 구성하여 효율성을 극대화합니다 [15, 31, 32]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Prettier]], [[Husky]], [[lint-staged]], [[정적 분석(Static Analysis)]], [[AST(Abstract Syntax Tree)]] +- **Projects/Contexts:** [[모노레포(Monorepo) 기반 구성 중앙화]], [[Git Hook을 이용한 CI/CD 자동화 파이프라인]] +- **Contradictions/Notes:** 소스 [33]에서는 `eslint-plugin-prettier` 사용 시 에디터에 밑줄이 너무 많이 생기고 느려져 문서에서도 추천하지 않는다며 설정을 삭제했다고 언급하지만, 소스 [25]에서는 Prettier의 포매팅 이슈를 ESLint의 린터 오류로 띄워 통합적으로 관리할 수 있는 효과적인 방식이라고 설명하는 등 개발자 또는 조직 간의 `eslint-plugin-prettier` 활용에 대해 엇갈린 평가 및 설정 선호도 차이가 존재합니다. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/ESLint.md]] +--- diff --git a/Programming & Language/Early-Z.md b/Programming & Language/Early-Z.md new file mode 100644 index 00000000..1ab5cba2 --- /dev/null +++ b/Programming & Language/Early-Z.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-D03C5F +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Early-Z" +--- + +# [[Early-Z]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Early-Z(초기 깊이 테스트)는 렌더링 파이프라인의 프래그먼트 셰이딩(Fragment Shading) 단계에서 오버드로우(Overdraw)를 최소화하기 위해 사용되는 GPU 최적화 기법입니다 [1, 2]. 불투명한 물체를 카메라 기준 '앞에서 뒤로(Front-to-Back)' 정렬하여 렌더링함으로써, 다른 물체에 의해 가려져 화면에 보이지 않을 픽셀의 연산을 사전에 종료시킵니다 [2]. 하지만 투명한 재질을 렌더링할 때는 이 최적화 기능이 비활성화되는 특성이 있습니다 [1]. + +## 📖 구조화된 지식 (Synthesized Content) +- **Early-Z의 원리와 목적:** 렌더링 과정에서 동일한 픽셀 위치에 여러 번의 쓰기 작업이 중첩되어 발생하는 현상을 오버드로우라고 부르며, 이는 보이지 않는 계산에 GPU 자원을 낭비하게 만듭니다 [1, 2]. 불투명한 물체들을 '앞에서 뒤로(Front-to-Back)' 정렬하여 그릴 경우, GPU는 이미 렌더링된 앞쪽 표면에 의해 가려지는 뒤쪽 픽셀 연산을 조기에 종료(Early-Z)시켜 렌더링 효율을 크게 높입니다 [1, 2]. +- **투명 재질 렌더링 시의 비활성화:** 겹쳐 있는 투명한 기하학적 구조(예: 옷, 머리카락 레이어 등)를 렌더링할 때는 올바른 알파 블렌딩 결과를 얻기 위해 '뒤에서 앞으로(Back-to-Front)' 렌더링을 강제해야 합니다 [1, 3]. 이 과정에서 숨겨진 픽셀을 건너뛰게 해주는 초기 깊이 테스트(Early-Z) 최적화가 비활성화되며, 결과적으로 하나의 픽셀을 여러 번 렌더링하는 심각한 오버드로우가 발생하게 됩니다 [1]. +- **InstancedMesh 환경에서의 한계:** 드로우 콜을 줄여주는 `InstancedMesh` 기술은 내부 인스턴스들에 대한 자동 정렬 기능을 제공하지 않고 버퍼에 저장된 순서대로만 렌더링합니다 [2]. 만약 먼 곳에 있는 인스턴스가 먼저 그려지고 가까운 인스턴스가 나중에 그려진다면, Early-Z를 통한 조기 종료 이점을 얻지 못합니다 [2]. 이는 드로우 콜 감소로 얻은 이점보다 막대한 오버드로우 비용을 초래하여, GPU를 프래그먼트 바운드(Fragment-bound) 상태에 빠뜨려 전체 성능을 오히려 저하시킬 수 있습니다 [2]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Overdraw]], [[InstancedMesh]], [[Alpha Blending]] +- **Projects/Contexts:** [[Three.js WebGL 렌더링 최적화]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Early-Z.md]] +--- diff --git a/Programming & Language/Edge Bleeding.md b/Programming & Language/Edge Bleeding.md new file mode 100644 index 00000000..b0af8b8b --- /dev/null +++ b/Programming & Language/Edge Bleeding.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-2BC744 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Edge Bleeding" +--- + +# [[Edge Bleeding]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Edge Bleeding(경계선 블리딩)은 여러 이미지를 하나로 합친 텍스처 아틀라스(Texture Atlas)를 사용할 때 주로 발생하는 시각적 결함입니다 [1]. 특히 낮은 밉맵(Mipmap) 레벨에서 텍스처 필터링이 일어날 때, 아틀라스 내에 인접해 있는 텍스처들의 색상이 서로 섞이거나 번지는 현상을 의미합니다 [1, 2]. 이를 방지하기 위해서는 텍스처 간에 여백을 두어 메모리를 희생하거나, 최신 텍스처 배열(Data Array Textures) 기술을 활용해야 합니다 [2, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **발생 원인:** 동일한 재질을 공유하여 드로우 콜(Draw call)을 최적화하기 위해 여러 텍스처를 하나의 큰 이미지로 병합하는 텍스처 아틀라스 방식을 사용할 때 발생합니다 [1, 2]. GPU가 거리에 따라 해상도를 낮춘 밉맵을 생성하고 필터링하는 과정에서 인접한 텍스처 영역의 픽셀이 침범하여 색상이 섞이게 됩니다 [1, 2]. +- **기존의 해결 방식과 한계:** 이 현상을 방지하기 위해 텍스처 아틀라스 내부의 개별 텍스처들 사이에 물리적인 여백(Padding)을 추가하는 우회 기법이 사용됩니다 [2]. 하지만 이 방식은 텍스처 공간을 낭비하게 만들어 메모리 비효율성을 초래합니다 [2]. +- **현대적인 해결책 (Data Array Textures):** WebGL 2.0에서 지원하는 데이터 배열 텍스처(Data Array Textures)를 사용하면 Edge Bleeding을 완벽히 제거할 수 있습니다 [3, 4]. 이 방식은 텍스처를 평면에 병합하는 대신 레이어(Layer) 구조의 스택으로 쌓아 인덱스로 접근하므로, 밉맵 생성 시 인접 텍스처 간의 교차 오염(Cross-contamination)이 발생하지 않습니다 [1, 3]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Texture Atlas]], [[Mipmap]], [[Data Array Textures]] +- **Projects/Contexts:** [[InstancedMesh 최적화]], [[WebGL 2.0]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. (소스 내에서 명시적인 의견 대립은 발견되지 않으며, Edge Bleeding은 텍스처 아틀라스의 명확한 단점[1, 2]이자 WebGL 2.0의 텍스처 배열 도입으로 쉽게 극복 가능한 문제[3, 4]로 일관되게 설명됩니다.) + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Edge Bleeding.md]] +--- diff --git a/Programming & Language/Effect TS 및 ts-brand 라이브러리 활용.md b/Programming & Language/Effect TS 및 ts-brand 라이브러리 활용.md new file mode 100644 index 00000000..873cb1b0 --- /dev/null +++ b/Programming & Language/Effect TS 및 ts-brand 라이브러리 활용.md @@ -0,0 +1,38 @@ +--- +id: P-REINFORCE-AUTO-C0B018 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Effect TS 및 ts-brand 라이브러리 활용" +--- + +# [[Effect TS 및 ts-brand 라이브러리 활용]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Effect TS와 ts-brand는 TypeScript에서 구조적으로 동일해 보이는 타입들을 서로 구별하기 위해 고안된 '브랜드 타입(Branded Types)' 패턴의 적용을 돕는 인기 있는 커뮤니티 라이브러리입니다 [1, 2]. TypeScript는 기본적으로 구조적 타이핑(Structural Typing)을 따르지만, 이 라이브러리들을 활용하면 명목적(Nominal) 타이핑과 유사한 안전장치를 마련할 수 있습니다 [2, 3]. 이를 통해 개발자는 단순한 원시 타입(Primitive Type)을 넘어, 비즈니스 규칙이 검증된 안전하고 정교한 타입을 코드 전반에 강제할 수 있습니다 [1, 2]. + +## 📖 구조화된 지식 (Synthesized Content) +- **ts-brand 라이브러리의 기능과 활용** + - `ts-brand`는 타입 브랜드(Type Brands)를 위한 사전 작성된 코드를 제공하여 개발자가 쉽게 브랜디드 타입을 사용할 수 있게 해주는 커뮤니티 패키지입니다 [2]. + - 브랜딩을 위한 고급 기능을 제공하며 [4], 제네릭 `Brand` 타입을 내보내어 고유한 브랜드 타입들을 생성하는 데 활용됩니다 [2]. + +- **Effect TS 프레임워크의 브랜디드 타입 지원** + - Effect는 타입이 풍부한 TypeScript 애플리케이션을 구축하기 위한 범용 프레임워크로, 타입 브랜드를 다루기 위한 전용 `Brand` 유틸리티를 제공합니다 [5]. + - 주요 유틸리티로 타입 내에서 브랜드 역할을 하는 제네릭 타입인 `Brand.Brand`와, 타입 브랜드 식별 함수를 반환하는 제네릭 함수인 `Brand.nominal`이 있으며, 이 둘을 결합하여 `ts-brand`와 유사한 브랜드 타입을 생성할 수 있습니다 [5]. + - **단언(Assertion) 함수의 차별화**: `ts-brand`의 `make`와 달리, Effect는 타입 브랜드 단언 함수를 만들기 위해 `Brand.refined`라는 별도의 함수를 제공합니다 [5]. 이 함수는 값이 제약 조건을 충족하는지 판별하는 함수와, 충족하지 않을 경우 에러를 던지는 함수 등 두 가지 매개변수를 받아 작동합니다 [5, 6]. + - **메타데이터 활용**: Effect TS는 에러 처리나 내부 제어 흐름을 명확히 구분하기 위해 `_tag`와 같은 메타데이터 속성을 활용하는 패턴을 제공하며, 이는 복잡한 로직에서 일관된 에러 처리와 내부 로직 판별을 돕습니다 [7, 8]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Branded Types]], [[Opaque Types]], [[Nominal Typing]], [[Structural Typing]] +- **Projects/Contexts:** [[TypeScript Type Safety]] +- **Contradictions/Notes:** 두 라이브러리는 모두 타입 안정성을 높이는 데 기여하지만, 타입 브랜드 단언 함수를 다루는 방식에서 차이를 보입니다. `ts-brand`는 `make`를 활용하는 반면, `Effect TS`는 유효성 검사 함수와 에러 처리 함수를 분리하여 입력받는 `Brand.refined`를 사용하도록 설계되었습니다 [5, 6]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Effect TS 및 ts-brand 라이브러리 활용.md]] +--- diff --git a/Programming & Language/Effect TS.md b/Programming & Language/Effect TS.md new file mode 100644 index 00000000..97b5e245 --- /dev/null +++ b/Programming & Language/Effect TS.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-C7A07F +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Effect TS" +--- + +# [[Effect TS]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Effect TS는 타입이 풍부한(type-rich) TypeScript 애플리케이션을 구축하기 위해 널리 사용되는 인기 있는 프레임워크입니다 [1]. 이 프레임워크는 주로 구조적으로 동일해 보이는 타입들을 명확히 구분하기 위한 브랜디드 타입(Branded Types) 유틸리티를 제공합니다 [1, 2]. 또한, 예상되는 에러와 예상치 못한 에러를 구분하거나 `_tag` 속성을 통해 메타데이터를 관리하는 등 타입 시스템을 활용한 다양한 패턴의 기반을 제공합니다 [3, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +* **브랜디드 타입(Branded Types) 도구 제공**: Effect TS는 TypeScript 커뮤니티에서 널리 쓰이는 대표적인 브랜디드 타입 라이브러리 중 하나입니다 [2]. 타입 내에서 브랜드 역할을 하는 제네릭 타입인 `Brand.Brand`와 타입 브랜드 식별 함수를 반환하는 제네릭 함수 `Brand.nominal`을 제공하여 사용자가 브랜디드 타입을 쉽게 생성할 수 있도록 지원합니다 [1]. +* **정교한 타입 브랜드 단언 함수(`Brand.refined`)**: Effect TS는 제약 조건을 검증하기 위해 `Brand.refined`라는 함수를 별도로 제공합니다 [1, 5]. 이 함수는 값이 제약 조건을 충족하는지 확인하는 함수와, 제약 조건과 일치하지 않을 경우 에러를 던지는 함수라는 두 가지 매개변수를 활용하여 안전한 타입 단언(assertion)을 수행합니다 [5]. +* **에러 처리 및 메타데이터 컨벤션 모델링**: Effect TS는 시스템의 '예상되는 에러(Expected Errors)'와 '예상치 못한 에러(Defects)'를 명확히 구분하는 아키텍처적 접근법을 제시합니다 [3]. 이와 더불어 내부 로직이나 디버깅, 관측 도구에서 사용되는 데이터를 다른 응답 객체와 시각적으로 구분하기 위해 `_tag`와 같은 속성(메타데이터)을 사용하는 훌륭한 컨벤션을 제공합니다 [4, 6]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Branded Types]], [[TypeScript]] +- **Projects/Contexts:** [[Type-rich TypeScript Applications]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Effect TS.md]] +--- diff --git a/Programming & Language/Electron V8 Memory Cage.md b/Programming & Language/Electron V8 Memory Cage.md new file mode 100644 index 00000000..ae0a3e20 --- /dev/null +++ b/Programming & Language/Electron V8 Memory Cage.md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-2DCEFC +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Electron V8 Memory Cage" +--- + +# [[Electron V8 Memory Cage]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Electron 21 이상 버전(Chrome 103을 따름)에 도입된 V8 메모리 케이지(Memory Cage)는 포인터 압축(Pointer Compression) 기술과 연계되어 V8 힙 내의 메모리 참조를 베이스 주소의 오프셋으로만 저장하도록 강제하는 보안 및 최적화 메커니즘입니다 [1-3]. 이를 통해 JIT 컴파일러의 타입 혼동(Type Confusion) 취약점을 악용한 임의 메모리 읽기/쓰기 공격을 케이지 내부 영역으로만 격리할 수 있습니다 [2, 4]. 결과적으로 애플리케이션의 보안성, 성능, 메모리 효율은 크게 향상되지만, V8 힙 크기가 최대 4GB로 제한되며 외부(Off-heap) 메모리를 가리키는 ArrayBuffer 사용이 금지된다는 제약이 발생합니다 [5, 6]. + +## 📖 구조화된 지식 (Synthesized Content) +* **도입 배경과 이점**: Electron 21부터 활성화된 이 기능은 Chromium과의 내부 세부 사항 격차를 줄이고, 보안과 성능을 높이기 위해 도입되었습니다 [1, 6]. 64비트 플랫폼에서 포인터를 64비트 전체 주소가 아닌 32비트 오프셋으로 압축하여 저장하므로, V8 힙 크기를 최대 40% 줄이고 CPU 및 가비지 컬렉션(GC) 성능을 5%~10% 향상시킵니다 [3, 6]. 또한, 공격자가 V8 JIT 엔진의 타입 혼동 버그를 악용해 ArrayBuffer 베이스 주소를 변조하여 프로세스의 모든 메모리에 접근하려는 심각한 취약점 공격으로부터 앱을 보호합니다 [2, 4, 6]. + +* **제한 사항 및 부작용**: 메모리 케이지 및 포인터 압축이 활성화됨에 따라, 단일 V8 격리 인스턴스(Isolate)의 힙 메모리 크기는 최대 4GB의 연속된 "케이지" 영역으로 엄격하게 제한됩니다 [3, 5, 7]. 가장 주요한 단점은 V8 힙 외부(Off-heap)의 메모리를 가리키는 `ArrayBuffer`가 더 이상 허용되지 않는다는 것입니다 [5, 7]. 외부에서 메모리를 할당(`malloc` 등)하고 이를 `ArrayBuffer`로 래핑하던 기존 Node.js 네이티브 모듈들은 Electron 20 이상 버전에서 런타임 충돌(Crash)을 일으키게 됩니다 [5, 8]. + +* **네이티브 모듈 리팩토링 및 대안**: 외부 메모리를 사용하는 네이티브 모듈을 호환되도록 수정하려면 두 가지 주요 접근법이 있습니다 [9]. 첫째는 외부에서 생성된 버퍼 데이터를 JavaScript에 전달하기 전에 V8 메모리 케이지 내부 영역으로 "복사(Copy)"하는 방법입니다 [9, 10]. 둘째는 데이터를 복사하는 오버헤드를 피하기 위해, 처음부터 V8의 메모리 할당자(예: `napi_create_buffer`)를 사용하여 케이지 내부에 메모리를 할당하는 방법입니다 [9, 10]. 또한 4GB 힙 한계를 극복해야 하는 앱의 경우, 포인터 압축이 해제된 Node.js를 하위 프로세스로 실행하거나 커스텀 Electron 버전을 빌드하는 우회 방법을 사용할 수 있습니다 [11]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Pointer Compression]], [[ArrayBuffer]], [[Type Confusion]], [[JIT Compiler]] +- **Projects/Contexts:** [[Electron 21]], [[Chromium]], [[Node.js Native Modules]] +- **Contradictions/Notes:** 소스에 따르면 V8 Memory Cage 및 Pointer Compression은 힙 크기를 최대 40% 줄이고 성능을 5-10% 향상시키는 등 긍정적 효과가 크지만 [6], 그 대가로 네이티브 모듈의 오프힙(Off-heap) 메모리 래핑을 금지시키고 힙을 4GB로 엄격히 제한하는 뚜렷한 트레이드오프를 가지고 있습니다 [3, 5, 7]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Electron V8 Memory Cage.md]] +--- diff --git a/Programming & Language/Electron.md b/Programming & Language/Electron.md new file mode 100644 index 00000000..16648290 --- /dev/null +++ b/Programming & Language/Electron.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-687305 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Electron" +--- + +# [[Electron]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Electron은 대규모 CAD 애플리케이션 등에서 사용되는 런타임 환경으로, 전체 시스템 메모리에 접근할 수 있지만 격리된 프로세스 간에 메모리를 관리해야 하는 특징이 있습니다 [1, 2]. Chromium GPU 프로세스와 렌더러 프로세스가 분리되어 있어 GPU 메모리 누수나 OOM(Out of Memory) 오류가 발생하기 쉬운 구조적 위험성을 내포하고 있습니다 [3, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +- **메모리 관리의 양날의 검**: 대규모 CAD 애플리케이션을 Electron에서 구동할 때, 전체 시스템 메모리에 접근할 수 있다는 장점이 있지만 프로세스가 격리되어 있어 메모리 관리에 세심한 주의가 필요합니다 [2]. 예를 들어 메인 스레드와 Web Worker 간에 'Structured Cloning' 방식으로 메시지를 전달할 경우, 데이터가 전체 복사되어 메모리 사용량이 두 배로 증가할 수 있으며 이로 인해 Electron의 OOM(Out of Memory) 킬러가 작동할 수 있습니다 [3]. +- **GPU 메모리 누수 취약성**: Electron 앱은 Chromium GPU 프로세스가 렌더러 프로세스와 완전히 분리되어 있기 때문에 GPU 메모리 누수로 악명이 높습니다 [4]. 3D 씬에서 객체를 삭제하더라도 단순히 씬 그래프에서 제거하는 것만으로는 연관된 GPU 버퍼가 자동으로 해제되지 않습니다 [4]. +- **최적화 및 안정성 확보 전략**: Electron 런타임 환경 내에서 메모리 안정성을 유지하기 위해서는 `SharedArrayBuffer`를 활용하여 데이터 복제 오버헤드 없이 다중 스레딩을 처리해야 합니다 [1, 3]. 더불어 메모리 누수를 막기 위해, 삭제 시 씬을 순회하며 모든 기하학적 구조와 재질에 대해 명시적으로 `.dispose()`를 호출하는 엄격한 리소스 폐기(Disposal) 패턴을 강제해야 합니다 [4]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[SharedArrayBuffer]], [[OOM (Out of Memory)]], [[Chromium GPU process]] +- **Projects/Contexts:** [[Large-scale CAD applications]], [[WebGL/Three.js Rendering Optimization]] +- **Contradictions/Notes:** 소스에 Electron 프레임워크 자체의 전반적인 동작 원리나 일반적인 데스크톱 앱 개발과 관련된 정보가 부족합니다. 제공된 문서는 대규모 3D/CAD 렌더링 최적화 환경에서의 메모리 관리 및 누수 문제에 국한하여 Electron을 설명하고 있습니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Electron.md]] +--- diff --git a/Programming & Language/Emergent Gameplay Theory.md b/Programming & Language/Emergent Gameplay Theory.md new file mode 100644 index 00000000..6ce545e5 --- /dev/null +++ b/Programming & Language/Emergent Gameplay Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-7320C9 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Emergent Gameplay Theory" +--- + +# [[Emergent Gameplay Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Emergent Gameplay Theory.md]] +--- diff --git a/Programming & Language/Emergent Gameplay.md b/Programming & Language/Emergent Gameplay.md new file mode 100644 index 00000000..b2a644d7 --- /dev/null +++ b/Programming & Language/Emergent Gameplay.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-30AB3F +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Emergent Gameplay" +--- + +# [[Emergent Gameplay]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Emergent Gameplay.md]] +--- diff --git a/Programming & Language/Emergent Systems.md b/Programming & Language/Emergent Systems.md new file mode 100644 index 00000000..8c2087b3 --- /dev/null +++ b/Programming & Language/Emergent Systems.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-98C9F1 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Emergent Systems" +--- + +# [[Emergent Systems]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Emergent Systems.md]] +--- diff --git a/Programming & Language/Emergent-Gameplay.md b/Programming & Language/Emergent-Gameplay.md new file mode 100644 index 00000000..d8e8bdf9 --- /dev/null +++ b/Programming & Language/Emergent-Gameplay.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B15A5A +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Emergent-Gameplay" +--- + +# [[Emergent-Gameplay]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Emergent-Gameplay.md]] +--- diff --git a/Programming & Language/Entity Component System (ECS).md b/Programming & Language/Entity Component System (ECS).md new file mode 100644 index 00000000..e28a40bc --- /dev/null +++ b/Programming & Language/Entity Component System (ECS).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-523650 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Entity Component System (ECS)" +--- + +# [[Entity Component System (ECS)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Entity Component System (ECS).md]] +--- diff --git a/Programming & Language/Epigenetics of Neuroplasticity.md b/Programming & Language/Epigenetics of Neuroplasticity.md new file mode 100644 index 00000000..a351948a --- /dev/null +++ b/Programming & Language/Epigenetics of Neuroplasticity.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-0EB0EC +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Epigenetics of Neuroplasticity" +--- + +# [[Epigenetics of Neuroplasticity]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Epigenetics of Neuroplasticity.md]] +--- diff --git a/Programming & Language/Escape Hatch (탈출구).md b/Programming & Language/Escape Hatch (탈출구).md new file mode 100644 index 00000000..0f6db77d --- /dev/null +++ b/Programming & Language/Escape Hatch (탈출구).md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-71F155 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Escape Hatch (탈출구)" +--- + +# [[Escape Hatch (탈출구)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Escape Hatch(탈출구)는 SDK나 시스템 설계 시, 고수준의 추상화된 인터페이스(Facade)가 가지는 제약을 넘어 사용자가 세밀한 제어를 원할 때 활용할 수 있도록 제공하는 저수준(Low-level) API를 의미합니다 [1, 2]. 전체 사용 사례의 약 80%는 직관적인 고수준 인터페이스로 처리하고, 나머지 20%의 특수한 경우를 처리하기 위해 마련된 구조적 수단입니다 [1]. 이를 통해 편의성에만 안주하지 않고 세밀한 조작까지 가능한 설계적 균형을 유지할 수 있습니다 [2, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **도입 목적 및 필요성:** SDK에 Facade 패턴을 적용해 복잡한 내부 로직을 숨기고 고수준의 인터페이스를 제공하면 사용자의 인지 부하를 줄일 수 있습니다 [4]. 그러나 추상화 수준이 높아질수록 특정 연결만 유지하거나 세부적인 제어가 필요한 특수 상황에서는 높은 추상화가 오히려 제약으로 다가올 수 있습니다 [1, 3]. 이러한 편의성의 단점을 보완하기 위해 언제든 저수준 인터페이스로 내려가 조작할 수 있도록 의도적으로 마련하는 것이 탈출구(Escape Hatch)입니다 [2]. +- **고수준과 저수준 인터페이스의 공존:** 좋은 SDK일수록 고수준과 저수준 인터페이스가 공존하도록 설계됩니다 [1]. 흔한 유즈케이스를 한 번에 끝내는 워크플로우(예: `start` 메서드)를 제공하는 동시에, 앱 브릿지(서버) 호출에 가까운 원자적인 저수준 호출(예: `open`, `send`, `listen`, `close` 등)을 탈출구로써 함께 제공해야 합니다 [1, 2]. +- **확장성 및 호환성 확보:** 저수준의 탈출구를 명확하게 제공하면, 편의성을 위해 고수준 메서드를 지속적으로 개선하더라도 저수준 메서드를 안정적으로 유지할 수 있어 하위 호환성 유지에 큰 도움이 됩니다 [2]. 이는 단기적인 개발자 경험(DX)을 개선할 뿐만 아니라, SDK의 장기적인 확장성과 호환성을 지켜주는 핵심적인 역할을 수행합니다 [1]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Facade 패턴]], [[Low-level 인터페이스]], [[추상화(Abstraction)]] +- **Projects/Contexts:** [[Toss Front SDK]], [[AWS CDK]] +- **Contradictions/Notes:** 소스에 따르면 추상화 수준이 높아질수록 세밀한 제어가 어려워진다는 필연적인 트레이드오프가 존재하지만, 20%의 특수 케이스를 위한 탈출구(Escape Hatch)를 제공함으로써 편의성과 유연성 사이의 이상적인 균형을 잡을 수 있다고 강조합니다 [1-3]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Escape Hatch (탈출구).md]] +--- diff --git a/Programming & Language/Excess Property Checking.md b/Programming & Language/Excess Property Checking.md new file mode 100644 index 00000000..7a5291cd --- /dev/null +++ b/Programming & Language/Excess Property Checking.md @@ -0,0 +1,37 @@ +--- +id: P-REINFORCE-AUTO-648FC3 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Excess Property Checking" +--- + +# [[Excess Property Checking]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> TypeScript의 Excess Property Checking(과잉 속성 체크)은 객체 리터럴이 다른 변수에 할당되거나 함수의 인수로 전달될 때 예상치 못한 초과 속성을 감지하고 타입 에러를 표출하는 기능이다 [1-3]. 이는 TypeScript의 기본 동작인 구조적 타이핑(Structural Typing) 규칙을 더 엄격하게 적용하는 예외적인 사례로 볼 수 있다 [1]. 개발자가 속성 이름에 오타를 내는 등의 실수로 인해 발생할 수 있는 의도치 않은 런타임 오류를 방지하기 위해 존재한다 [4-6]. + +## 📖 구조화된 지식 (Synthesized Content) +* **동작 원리와 목적** + TypeScript의 타입 시스템은 기본적으로 객체가 요구되는 최소한의 속성만 가지고 있다면 호환성을 허용하는 구조적 타이핑(Structural Typing, 일명 덕 타이핑)을 따른다 [7-9]. 그러나 대상 타입에 직접 객체 리터럴을 할당하거나 함수의 인자로 객체 리터럴을 넘길 때는 특별히 Excess Property Checking이 발동하여 선언되지 않은 잉여 속성이 있는지 엄격하게 검사한다 [1, 3, 6, 10-12]. 이는 개발자가 초과 속성을 전달하려는 의도가 없을 것이라고 가정하여 오타(예: `color` 대신 `colour`) 등의 실수를 컴파일 시점에 포착하기 위함이다 [4-6, 9]. + +* **한계점 및 우회 문제** + Excess Property Checking은 객체 리터럴을 중간 변수(intermediate variable)에 먼저 할당한 뒤 다른 변수나 인수로 전달할 경우에는 작동하지 않는다는 맹점이 있다 [1, 3, 4, 12, 13]. 중간 변수를 사용할 때 대상 타입과 최소 하나의 속성이라도 일치한다면, TypeScript는 초과 속성이 있더라도 에러를 발생시키지 않는다 [14]. (만약 공통 속성이 하나도 없다면 '약한 타입 검사(Weak Type Detection)' 규칙에 의해 에러가 발생한다 [3, 15]). 또한 명시적인 반환 타입 어노테이션이 없는 문맥적인 할당에서도 에러를 제대로 잡아내지 못하는 한계가 보고된 바 있다 [16]. + +* **보완 전략 (`satisfies` 및 커스텀 타입)** + 객체 리터럴을 중간 변수를 통해 전달하면서 발생하는 우회 문제를 극복하기 위해 TypeScript 4.9에서 도입된 `satisfies` 연산자를 활용할 수 있다 [17, 18]. `satisfies` 연산자는 객체의 구체적인 값 형태를 유지하면서도 대상 타입에 정의되지 않은 초과 속성을 엄격히 걸러내어 타입 안전성을 보장한다 [18-21]. 또한, 제네릭과 `never` 타입을 결합하여 대상 인터페이스와 실제 입력을 비교하고 잉여 속성을 잡아내는 재귀적 유틸리티 타입을 만들어 수동으로 초과 속성을 찾아낼 수도 있지만, 이는 타입 검사 성능에 부정적인 영향을 미칠 수 있어 주의해서 사용해야 한다 [22-24]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Structural Typing]], [[satisfies Operator]], [[Weak Type Detection]] +- **Projects/Contexts:** [[TypeScript Type System]], [[ESLint Rule Proposals (no-excess-properties)]] +- **Contradictions/Notes:** 소스 [25]에 따르면, Facebook의 Flow처럼 초과 속성을 허용하지 않는 정확한 객체 타입(`Exact`) 구문을 TypeScript에도 도입하자는 오랜 제안이 있었으나, TypeScript 팀은 Excess Property Checking 자체를 더 똑똑하게 개선하는 방향을 선호한다. 한편, ESLint의 린트 룰을 통해 초과 속성 검사를 강제하려는 시도에 대해서는, TypeScript의 모든 객체가 본질적으로 구조적 타이핑에 의해 "inexact"한 특성을 갖기 때문에 린트 룰 적용 시 노이즈(False Positive)가 과도하게 발생할 수 있다는 반론이 제기된다 [26, 27]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Excess Property Checking.md]] +--- diff --git a/Programming & Language/Exergaming.md b/Programming & Language/Exergaming.md new file mode 100644 index 00000000..ffe1b56f --- /dev/null +++ b/Programming & Language/Exergaming.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-44E45F +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Exergaming" +--- + +# [[Exergaming]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 엑서게이밍(Exergaming)은 운동(exercise)과 게임 플레이(gameplay)를 결합하여 사용자의 신체 활동을 촉진하는 방식입니다 [1]. 어린이, 청소년, 성인의 앉아 있는 습관(sedentary behaviors)을 개선하는 데 유효한 방법으로 인정받고 있으며, 달리기나 에어로빅 댄스 등과 유사한 수준의 생리학적 건강 이점을 제공합니다 [1]. 최근에는 가상현실(VR)과 결합하여 사용자가 운동의 육체적 피로를 잊고 게임에 더 깊이 몰입하게 하여 지속적인 신체 활동을 유도하는 'VR 엑서게이밍'이 각광받고 있습니다 [2]. + +## 📖 구조화된 지식 (Synthesized Content) +* **신체적 및 심리적 이점:** 엑서게이밍은 전통적인 신체 운동 형태보다 사용자에게 더 큰 즐거움과 긍정적인 감정을 제공합니다 [1]. 사용자는 게임의 목표와 도전 과제에 쉽게 빠져드는 '몰입(flow)' 상태를 경험하게 되며, 이는 운동에 대한 즐거움과 지속적인 참여(adherence)를 높이는 데 기여합니다 [1]. +* **VR 엑서게이밍의 부상:** 가상현실(VR) 기술은 엑서게이밍의 효과를 더욱 극대화합니다 [2]. 3D 환경, 360도 공간 및 신체 트래킹 기능을 통해 사용자는 육체적 피로감을 잊고 가상 세계의 몰입감(presence)을 강하게 느끼며 게임에 집중할 수 있습니다 [2]. 인기 있는 VR 엑서게임인 '비트 세이버(Beat Saber)'의 경우, 게임을 플레이하며 소비되는 에너지가 실제 테니스를 치는 것과 맞먹는 수준으로 평가됩니다 [3]. +* **잠재적 부작용 및 한계:** VR 엑서게이밍의 가장 큰 장애물 중 하나는 두부 장착형 디스플레이(HMD) 사용으로 인해 발생하는 VR 멀미(VR sickness)입니다 [4]. 사용자는 메스꺼움, 안구 운동 장애, 방향 감각 상실 등의 증상을 겪을 수 있으며, 이는 게임 내 성과와 즐거움을 저해하는 요인이 됩니다 [4, 5]. +* **안전 권고사항:** VR 엑서게이밍이 신체와 인지에 미치는 후유증을 조사한 연구에 따르면, 짧거나 긴 시간 동안 HMD를 착용하고 엑서게임을 즐긴 후에는 사용자의 웰빙을 위해 대기 시간이 필요합니다 [6]. 사용자가 가상현실에서 벗어난 뒤, 후유증이 완전히 사라질 때까지(예: 약 40분) 운전과 같이 부상 위험이 있는 활동을 피하는 것이 권장됩니다 [6]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Virtual Reality (VR)]], [[Flow]], [[VR Sickness]] +- **Projects/Contexts:** [[Beat Saber]] +- **Contradictions/Notes:** VR 기술은 사용자의 몰입도(presence)를 극대화하여 엑서게임의 동기를 부여하고 신체적 피로를 잊게 하는 긍정적인 역할을 하지만, 동시에 VR 멀미(motion sickness)를 유발하여 오히려 사용자의 게임 플레이 성과와 체감하는 즐거움을 떨어뜨릴 수 있는 양면성을 지니고 있습니다 [2, 4]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Exergaming.md]] +--- diff --git a/Programming & Language/Facade Pattern (퍼사드 패턴).md b/Programming & Language/Facade Pattern (퍼사드 패턴).md new file mode 100644 index 00000000..addd4d8c --- /dev/null +++ b/Programming & Language/Facade Pattern (퍼사드 패턴).md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-7C58EE +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Facade Pattern (퍼사드 패턴)" +--- + +# [[Facade Pattern (퍼사드 패턴)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 퍼사드 패턴(Facade Pattern)은 복잡한 내부 서브시스템을 단순한 인터페이스로 감싸서 사용자에게 제공하는 설계 패턴이다 [1]. 이 패턴의 진정한 본질은 단순히 기능을 숨기는 것을 넘어, 복잡한 내부 구현을 사용자의 '의도(Intent)'를 기준으로 재구성하는 데 있다 [1]. 결과적으로 개발자의 인지 부하를 줄이고 시스템 간의 결합도를 낮추어 안정적이고 유지보수하기 쉬운 구조를 만드는 핵심 아키텍처 전략으로 활용된다 [2, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **퍼사드 패턴의 본질과 목적** + 퍼사드 패턴은 시스템 내부에 존재하는 인증, 실패 시 재시도 로직, 상태 관리, 클린업(Cleanup) 로직 등 복잡한 오케스트레이션 요소들을 은닉한다 [1]. 사용자는 이러한 복잡한 내부 절차나 책임을 알 필요 없이 "서버를 시작한다", "파일을 업로드한다"와 같이 자연스러운 목적과 의도만을 표현하여 시스템을 조작할 수 있다 [1]. 이는 인지 부하를 크게 줄이고 코드 결합도를 낮추는 데 목적이 있다 [2]. + +- **고수준과 저수준 인터페이스의 공존 (탈출구, Escape Hatch)** + 단순히 고수준(High-level) API만 제공하는 것은 완벽한 퍼사드 설계가 아니다 [2]. 파레토 법칙에 기반하여, 전체 사용 사례의 80%를 차지하는 흔하고 반복적인 워크플로우는 고수준의 퍼사드 인터페이스로 간단하게 끝낼 수 있도록 제공한다 [2, 4]. 하지만 세밀한 제어가 필요한 나머지 20%의 특수한 경우를 위해 저수준(Low-level) 인터페이스를 '탈출구(Escape Hatch)' 형태로 반드시 남겨두어야 한다 [2, 4]. 이를 통해 설계의 균형을 맞추고 장기적인 호환성과 확장성을 지킬 수 있다 [4]. + +- **도입 시의 트레이드오프(Trade-off)** + 추상화 수준이 높아지면 사용자는 편리함을 얻지만, 의도적으로 세밀한 제어가 방지되기 때문에 특수한 요구사항을 처리할 때 제약이 발생할 수 있다 [4, 5]. 또한 기능을 제공하는 플랫폼(예: SDK) 내부에서는 복잡한 로직을 정교하게 관리해야 하므로, 개발자가 떠안게 되는 시스템 내부의 유지보수 비용과 복잡도는 증가하게 된다 [4]. + +- **실제 활용 사례** + 대표적으로 AWS CDK(Cloud Development Kit)의 L2 구문이 퍼사드 개념을 잘 보여주는 예시이다 [1]. 직관적인 '의도 기반 API'로써 상위 추상화를 제공하여 사용자가 속성, 권한 등을 더 빠르고 간단히 정의하게 돕는다 [1]. 토스(Toss) Front SDK 역시 단일 책임 원칙(SRP)과 퍼사드 패턴을 적용해 개발자의 실수를 구조적으로 방지하고 시스템 간 결합도를 낮추는 설계를 채택했다 [3, 6]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[단일 책임 원칙(SRP)]], [[인터페이스 분리 원칙(ISP)]] +- **Projects/Contexts:** [[Toss Front SDK]], [[AWS CDK]] +- **Contradictions/Notes:** 퍼사드 패턴은 사용자에게 높은 편의성을 제공하지만 필연적으로 세밀한 제어에 제약을 초래한다 [4]. 따라서 퍼사드의 편리함에만 안주하지 않고, 필요 시 세밀한 조작이 가능한 저수준 API(Escape Hatch)를 동시에 제공해 설계적 균형을 잡아야 한다고 소스들은 강조한다 [4, 5]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Facade Pattern (퍼사드 패턴).md]] +--- diff --git a/Programming & Language/Feature Ablation (피처 제거).md b/Programming & Language/Feature Ablation (피처 제거).md new file mode 100644 index 00000000..1512c707 --- /dev/null +++ b/Programming & Language/Feature Ablation (피처 제거).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-41CA87 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Feature Ablation (피처 제거)" +--- + +# [[Feature Ablation (피처 제거)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Feature Ablation (피처 제거).md]] +--- diff --git a/Programming & Language/Federated SPARQL (연합 질의).md b/Programming & Language/Federated SPARQL (연합 질의).md new file mode 100644 index 00000000..69575f41 --- /dev/null +++ b/Programming & Language/Federated SPARQL (연합 질의).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-04F8F3 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Federated SPARQL (연합 질의)" +--- + +# [[Federated SPARQL (연합 질의)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Federated SPARQL (연합 질의).md]] +--- diff --git a/Programming & Language/Figma.md b/Programming & Language/Figma.md new file mode 100644 index 00000000..0dab85d9 --- /dev/null +++ b/Programming & Language/Figma.md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-524A98 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Figma" +--- + +# [[Figma]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Figma는 다수의 페이지, 대용량 이미지 및 복잡한 컴포넌트를 사용하여 디자인 및 프로토타이핑을 수행하는 디자인 툴입니다 [1, 2]. 대규모 디자인 파일에서는 스크롤 및 편집 시 지연(Lag) 현상이 발생하거나 프로토타이핑 중 마이크로 지연(Micro-latency)이 발생할 수 있으며, 원활한 사용을 위해 메모리 및 컴포넌트 구조 최적화가 중요하게 요구됩니다 [1, 2]. + +## 📖 구조화된 지식 (Synthesized Content) +- **성능 저하의 주요 원인**: 복잡한 컴포넌트와 다수의 페이지가 포함된 프로젝트는 스크롤과 편집 시 래그(Lag)를 유발합니다 [2]. 특히 프로토타입 기능 중 "Smart Animate"는 매 프레임마다 수천 개의 레이어에 대한 복잡한 보간(interpolation)과 레이아웃 계산을 수행해야 하므로, 대형 파일에서는 심각한 성능 저하를 일으키는 원인으로 지목됩니다 [1]. +- **메모리 및 문제 진단**: Figma는 성능 문제를 겪는 페이지를 식별할 수 있도록 "Memory Usage(메모리 사용량)" 도구와 "Show memory usage in layers panel(레이어 패널에 메모리 사용량 표시)" 옵션을 제공합니다 [1]. +- **레이어 및 구조적 컴포넌트 최적화**: 레이어 수, 그중에서도 특히 인스턴스 내의 '숨겨진 레이어(hidden layers)'를 줄이는 것이 성능 향상의 핵심입니다 [1, 3, 4]. 구조적 컴포넌트(structure components)는 종종 여러 컴포넌트에 숨겨진 레이어를 대량으로 추가하여 성능을 악화시킵니다 [5]. 상호작용에 필수적인 요소만 남기고 구조적 컴포넌트와 불필요한 숨겨진 레이어를 제거하면 프로토타입의 성능이 눈에 띄게 부드러워집니다 [6, 7]. +- **베리언트(Variants) 관리**: 포함된 베리언트의 수는 컴포넌트의 업데이트 속도에 직접적인 영향을 미칩니다 [4]. 250여 개의 베리언트를 가진 아이콘 컴포넌트를 여러 개의 개별 컴포넌트로 분리하고 내부의 숨겨진 레이어를 제거한 결과, 업데이트 속도와 전반적인 성능이 대폭 향상된 사례가 있습니다 [7]. +- **프로토타이핑 권장 사항**: 성능이 매우 중요한 프로토타입의 경우 "Smart Animate"를 사용하는 대신 단순한 화면 전환(simple transitions)이나 베리언트를 활용하는 것이 마이크로 지연을 줄이고 더 부드러운 상호작용을 보장하는 방법입니다 [1]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Smart Animate]], [[Hidden Layers]], [[Variants]] +- **Projects/Contexts:** [[Figma Performance Optimization]] +- **Contradictions/Notes:** 베리언트의 수를 최소화하기 위해 중첩된 구조적 컴포넌트(nested structure components)를 사용하는 것은 직관과 달리 성능에 최악의 영향을 미칠 수 있습니다 [8]. 소스에 따르면, 구조적 컴포넌트로 인해 발생하는 숨겨진 레이어를 제거하고 대신 베리언트의 수를 늘리거나 개별 컴포넌트로 쪼개는 것이 오히려 성능 향상에 훨씬 유리합니다 [6, 7]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Figma.md]] +--- diff --git a/Programming & Language/Finite-State-Machines-in-TypeScript.md b/Programming & Language/Finite-State-Machines-in-TypeScript.md new file mode 100644 index 00000000..6ce2228b --- /dev/null +++ b/Programming & Language/Finite-State-Machines-in-TypeScript.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A0FC70 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Finite-State-Machines-in-TypeScript" +--- + +# [[Finite-State-Machines-in-TypeScript]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Finite-State-Machines-in-TypeScript.md]] +--- diff --git a/Programming & Language/Flame Chart.md b/Programming & Language/Flame Chart.md new file mode 100644 index 00000000..ea7095f5 --- /dev/null +++ b/Programming & Language/Flame Chart.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-41DF27 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Flame Chart" +--- + +# [[Flame Chart]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 플레임 차트(Flame Chart)는 Chrome DevTools의 Performance 패널에서 메인 스레드의 활동을 시간에 따라 시각적으로 보여주는 도구입니다 [1, 2]. X축은 기록된 시간을 나타내며 막대가 넓을수록 이벤트 실행에 긴 시간이 소요되었음을 의미하고, Y축은 콜 스택(Call stack)을 나타냅니다 [1, 2]. 이를 통해 개발자는 성능 병목 현상을 파악하고 자바스크립트 함수 호출의 인과 관계 및 장기 실행 작업(Long tasks)을 분석할 수 있습니다 [1-3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **차트의 구조:** 플레임 차트에서 상단에 위치한 이벤트는 하단에 있는 이벤트를 발생시킨 원인(호출자)을 의미합니다 [1, 2]. 브라우저가 작업을 수행하도록 원인을 제공하는 '루트 활동(Root activities)'은 플레임 차트의 가장 맨 위에 표시됩니다 [4]. +- **시각적 구분:** 차트의 가독성을 높이기 위해 스크립트마다 무작위로 색상이 지정됩니다 [2]. 일반적으로 어두운 노란색은 스크립팅 활동을, 보라색은 렌더링 활동을 나타냅니다 [2]. 특히 작업 시간이 긴 작업(Long tasks)은 빨간색 삼각형으로 강조 표시되며, 50밀리초를 넘긴 구간은 차트에서 빨간색으로 음영 처리되어 성능 저하의 원인을 직관적으로 식별할 수 있습니다 [1, 3]. +- **차트 제어 및 디버깅:** 사용자는 플레임 차트를 깔끔하게 정리하기 위해 특정 함수나 그 하위 항목을 숨길 수 있으며, 관련 없는 스크립트를 무시 목록(Ignore list)에 추가하여 차트에서 제외할 수 있습니다 [5-7]. 또한 자바스크립트 샘플링(JavaScript samples)을 비활성화하면 상세한 자바스크립트 콜 스택 정보가 생략되고, 대신 `Event (click)`나 `Function Call`과 같은 상위 수준의 이벤트만 플레임 차트에 짧게 표시됩니다 [3, 8]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Chrome DevTools]], [[Call Stack]], [[Main Thread]], [[Long Tasks]] +- **Projects/Contexts:** [[Performance Panel]], [[Analyze runtime performance]] +- **Contradictions/Notes:** 소스 내에서 플레임 차트의 기능이나 정의와 관련하여 상충되는 정보는 없습니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Flame Chart.md]] +--- diff --git a/Programming & Language/Flow Theory.md b/Programming & Language/Flow Theory.md new file mode 100644 index 00000000..f4137dc0 --- /dev/null +++ b/Programming & Language/Flow Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B216EA +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Flow Theory" +--- + +# [[Flow Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Flow Theory.md]] +--- diff --git a/Programming & Language/Flow-Theory.md b/Programming & Language/Flow-Theory.md new file mode 100644 index 00000000..584a2615 --- /dev/null +++ b/Programming & Language/Flow-Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-7C8E03 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Flow-Theory" +--- + +# [[Flow-Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Flow-Theory.md]] +--- diff --git a/Programming & Language/Fractal-Geometry.md b/Programming & Language/Fractal-Geometry.md new file mode 100644 index 00000000..a764e683 --- /dev/null +++ b/Programming & Language/Fractal-Geometry.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-FCAC5E +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Fractal-Geometry" +--- + +# [[Fractal-Geometry]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Fractal-Geometry.md]] +--- diff --git a/Programming & Language/Function-Overloading.md b/Programming & Language/Function-Overloading.md new file mode 100644 index 00000000..e2f632e6 --- /dev/null +++ b/Programming & Language/Function-Overloading.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9ABCD8 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Function-Overloading" +--- + +# [[Function-Overloading]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Function-Overloading.md]] +--- diff --git a/Programming & Language/Function-Signature-Compatibility.md b/Programming & Language/Function-Signature-Compatibility.md new file mode 100644 index 00000000..35ef4ed8 --- /dev/null +++ b/Programming & Language/Function-Signature-Compatibility.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D7BC47 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Function-Signature-Compatibility" +--- + +# [[Function-Signature-Compatibility]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Function-Signature-Compatibility.md]] +--- diff --git a/Programming & Language/Fuzzing.md b/Programming & Language/Fuzzing.md new file mode 100644 index 00000000..28661593 --- /dev/null +++ b/Programming & Language/Fuzzing.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-CE0886 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Fuzzing" +--- + +# [[Fuzzing]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 퍼징(Fuzzing)은 애플리케이션에 스트레스를 가해 예상치 못한 동작, 프로그램 충돌(크래시) 또는 리소스 누수를 유발함으로써 소프트웨어의 취약점을 찾아내는 동적 애플리케이션 보안 테스트(DAST) 기법입니다 [1]. 소스에 관련 정보가 부족합니다. + +## 📖 구조화된 지식 (Synthesized Content) +- **DAST의 일환:** 퍼징은 실행 중인 애플리케이션을 테스트하는 동적 애플리케이션 보안 테스트(DAST) 방법 중 하나로 분류됩니다 [1]. +- **스트레스 테스트:** 애플리케이션에 의도적으로 스트레스를 주어 예상치 못한 동작이나 시스템 크래시, 그리고 리소스 누수(resource leaks) 등을 유발하도록 작동합니다 [1]. +- **취약점 이해 도모:** 이러한 과정을 통해 개발자는 애플리케이션의 런타임 동작 방식과 내재된 취약점들을 보다 포괄적이고 종합적으로 이해할 수 있게 됩니다 [1]. +- 소스에 관련 정보가 부족합니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[DAST]], [[Vulnerabilities]] +- **Projects/Contexts:** 애플리케이션의 동작 및 취약점을 포괄적으로 이해하기 위한 소프트웨어 보안 테스트 컨텍스트에서 활용됩니다 [1]. +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Fuzzing.md]] +--- diff --git a/Programming & Language/GC Root.md b/Programming & Language/GC Root.md new file mode 100644 index 00000000..078c2eb7 --- /dev/null +++ b/Programming & Language/GC Root.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-31335C +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - GC Root" +--- + +# [[GC Root]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> GC Root(가비지 컬렉션 루트)는 가비지 컬렉터가 메모리 내에서 사용 중인 살아있는(live) 객체를 식별하기 위해 참조 추적을 시작하는 기준점 역할을 하는 객체입니다 [1-3]. 힙(heap) 외부에서 접근할 수 있는 객체로서 기본적으로 살아있는 것으로 정의되며, 힙 내부의 다른 객체들이 메모리 회수 대상에서 제외되려면 반드시 이 루트 객체로부터 시작되는 포인터 체인을 통해 도달 가능(reachable)하게 연결되어 있어야 합니다 [1, 2, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +- **GC 루트의 정의와 주요 종류:** GC 루트는 V8 자바스크립트 엔진이나 웹 브라우저, 자바 가상 머신(VM) 외부에서 직접 가리키는 객체들을 의미합니다 [1]. 주요 종류로는 호출 스택(stack)에 존재하는 로컬 변수, 항상 접근이 가능한 전역 객체(Global objects), 클래스 정적 필드(class static field), JNI 참조, 그리고 브라우저의 DOM 요소 등이 있습니다 [1, 2]. 웹 브라우저 환경의 메모리 누수와 관련하여 창(window), 활성 클로저(active closures), 이벤트 리스너, 타이머 등도 루트 역할을 하여 연관된 객체들이 메모리에서 해제되는 것을 방지합니다 [5]. +- **마킹 및 추적 과정(Marking and Tracing):** Mark-Sweep 알고리즘 등에서 살아있는 객체를 찾는 과정은 루트 세트(root set)에서 출발합니다 [3]. 가비지 컬렉터의 초기 단계에서 루트 스캔을 실행하여 모든 루트 객체를 식별하고, 이를 처리를 위한 작업 스택(work stack)에 푸시합니다 [2]. 그런 다음 GC는 루트 객체에서 시작해 다른 객체를 가리키는 모든 포인터를 재귀적으로 추적하여 도달 가능한 객체들을 마킹(Mark)합니다 [2, 3]. 루트로부터 도달할 수 없는 나머지 모든 것들은 가비지로 간주됩니다 [4, 6]. +- **마이너 GC를 위한 특수 루트(V8 Scavenger):** V8 엔진의 젊은 세대(young generation)를 수집하는 마이너 GC(Scavenger)의 경우, GC가 실행될 때마다 전체 구세대(old generation) 힙을 모두 스캔하는 비효율을 피하기 위해 쓰기 장벽(write barriers)을 활용합니다 [7]. 이를 통해 구세대에서 젊은 세대로 향하는 참조(old-to-new references) 목록을 유지하며, 이를 스택 및 전역 변수 등과 결합하여 젊은 세대 가비지 컬렉션을 위한 추가적인 루트 세트로 사용합니다 [7]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Garbage Collection]], [[Mark-Sweep Algorithm]], [[Memory Leak]], [[Reachability]] +- **Projects/Contexts:** [[V8 Engine]], [[IBM SDK Java Technology]] +- **Contradictions/Notes:** 소스에 따르면 V8 엔진(JavaScript)과 IBM Java 구현 모두 GC 루트를 통한 참조 추적이라는 핵심 원리를 공유하고 있습니다. 다만 실행 환경의 차이에 따라 V8은 DOM 요소나 클로저 등을 주로 다루고 [1, 5], Java는 JNI 참조나 클래스 정적 필드 등을 다룬다는 세부적인 특성의 차이를 보입니다 [2]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/GC Root.md]] +--- diff --git a/Programming & Language/GQL (Graph Query Language ISO 표준).md b/Programming & Language/GQL (Graph Query Language ISO 표준).md new file mode 100644 index 00000000..46140775 --- /dev/null +++ b/Programming & Language/GQL (Graph Query Language ISO 표준).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-F13C1F +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - GQL (Graph Query Language ISO 표준)" +--- + +# [[GQL (Graph Query Language ISO 표준)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/GQL (Graph Query Language, ISO 표준).md]] +--- diff --git a/Programming & Language/Game Studies (Digital Media Theory).md b/Programming & Language/Game Studies (Digital Media Theory).md new file mode 100644 index 00000000..6dacef14 --- /dev/null +++ b/Programming & Language/Game Studies (Digital Media Theory).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-46EF56 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Game Studies (Digital Media Theory)" +--- + +# [[Game Studies (Digital Media Theory)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Game Studies (Digital Media Theory).md]] +--- diff --git a/Programming & Language/Game Studies (Ludology vs Narratology).md b/Programming & Language/Game Studies (Ludology vs Narratology).md new file mode 100644 index 00000000..0a5c0681 --- /dev/null +++ b/Programming & Language/Game Studies (Ludology vs Narratology).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A1A637 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Game Studies (Ludology vs Narratology)" +--- + +# [[Game Studies (Ludology vs Narratology)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Game Studies (Ludology vs. Narratology).md]] +--- diff --git a/Programming & Language/Game Studies.md b/Programming & Language/Game Studies.md new file mode 100644 index 00000000..f1bc9457 --- /dev/null +++ b/Programming & Language/Game Studies.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-21CD99 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Game Studies" +--- + +# [[Game Studies]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Game Studies.md]] +--- diff --git a/Programming & Language/Garbage Collection (GC) 최적화.md b/Programming & Language/Garbage Collection (GC) 최적화.md new file mode 100644 index 00000000..817641f4 --- /dev/null +++ b/Programming & Language/Garbage Collection (GC) 최적화.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-6C336D +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Garbage Collection (GC) 최적화" +--- + +# [[Garbage Collection (GC) 최적화]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +**1. GC 스파이크와 프레임 드랍(Stop-the-world) 원인** 자바스크립트 엔진의 가비지 컬렉터(GC)는 자동 메모리 관리를 제공하지만, 실시간 상호작용이 필요한 게임이나 고성능 렌더링 환경에서는 불규칙한 'Stop-the-world(일시 정지)' 현상을 유발하는 주범이 됩니다. 짧은 시간 안에 수많은 객체를 무분별하게 생성하고 삭제하면, 힙 메모리가 파편화되고 가비지 컬렉터가 메모리를 정리하느라 시스템 자원을 소모하게 되어 화면이 뚝뚝 끊기는 지연(Lag)이나 프리징 현상이 발생합니다. + +**2. 렌더링 루프(Render Loop) 내부의 객체 생성 금지** 애니메이션을 제어하는 `requestAnimationFrame`이나 React Three Fiber의 `useFrame` 같은 핵심 게임 루프 내부에서 새로운 객체(예: `new Vector3()`)를 반복적으로 생성하면 끊임없는 가비지 컬렉션이 트리거됩니다. 이를 방지하려면 루프 외부에서 미리 객체를 할당해 두거나(`useMemo` 등 활용), 객체의 속성값만 덮어씌워 갱신(Direct mutation)하는 방식으로 재사용해야 합니다. + +**3. 오브젝트 풀링(Object Pooling)의 적극 도입** 탄환, 파티클, 적 캐릭터 등 생성과 파괴가 매우 빈번한 객체는 **오브젝트 풀(Object Pool)**이라는 고정된 크기의 배열을 만들어 최적화합니다. 로딩 시점에 필요한 객체를 미리 생성해 두고, 게임 중에는 삭제(Free)하지 않은 채 활성/비활성 상태만 변경하여 돌려 사용합니다. 이 방식을 사용하면 런타임 중의 메모리 할당 및 해제 횟수가 '0'에 가까워져 GC로 인한 성능 저하를 극적으로 막을 수 있습니다. + +**4. 세대별 GC(Generational GC) 특성을 고려한 주의사항** 최신 브라우저(V8 엔진 등)는 **세대별 가비지 컬렉션(Generational GC)**을 사용하므로, 생성 후 금방 버려지는 단기 생존 객체(Short-lived garbage)는 사실상 거의 비용 없이 회수됩니다. 따라서 무분별하게 모든 객체를 풀링할 경우, 오히려 객체들이 메모리에 계속 상주하는 '장기 생존 객체'로 취급되어 구세대(Old generation) 메모리를 압박하고 GC 성능을 악화시킬 수 있습니다. 오브젝트 풀링은 반드시 프로파일링을 통해 객체 생성 비용이 진짜 병목으로 판명된 경우에만 선별적으로 도입해야 합니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Object Pooling (오브젝트 풀링)]], [[Memory Leak Prevention (메모리 누수 방지)]], [[Generational GC (세대별 가비지 컬렉션)]], [[React Three Fiber (R3F) 자산 최적화]] +- **Projects/Contexts:** [[수만 개의 엔티티가 존재하는 실시간 물리 시뮬레이션]], [[대규모 파티클 시스템 최적화]] +- **Contradictions/Notes:** 가비지 컬렉션의 멈춤 현상을 극도로 피해야 하는 환경(예: AAA급 웹 게임)에서는 ECS(엔티티 컴포넌트 시스템)와 같이 자바스크립트 기본 객체가 아닌, 연속된 `TypedArray` 형태의 메모리 버퍼(SoA)를 직접 다루는 데이터 지향 설계(Data-Oriented Design)를 통해 GC 자체를 원천 우회하는 설계가 활용되기도 합니다. +- Raw Source: [[00_Raw/2026-04-20/Garbage Collection (GC) 최적화.md]] +--- diff --git a/Programming & Language/Garbage Collection (GC).md b/Programming & Language/Garbage Collection (GC).md new file mode 100644 index 00000000..fe7dad02 --- /dev/null +++ b/Programming & Language/Garbage Collection (GC).md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-99978B +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Garbage Collection (GC)" +--- + +# [[Garbage Collection (GC)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 가비지 컬렉션(GC)은 프로그램에서 더 이상 사용되지 않는 객체(가비지)를 식별하고 그들이 차지하던 메모리를 자동으로 회수하여 재사용할 수 있도록 하는 메모리 관리 프로세스입니다 [1, 2]. 이 방식은 개발자가 명시적으로 메모리를 관리할 필요성을 줄여 애플리케이션의 메모리 누수와 오류를 방지하는 이점이 있습니다 [3]. 하지만 GC가 실행되는 동안에는 프로그램 실행이 멈추는 'Stop-the-world' 현상이 발생할 수 있으므로, 응답성과 성능을 유지하기 위해 엔진 수준에서 다양한 최적화 기법이 함께 적용됩니다 [2, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Mark-Sweep-Compact]], [[Scavenger (Minor GC)]], [[Generational GC]], [[Orinoco]] +- **Projects/Contexts:** [[V8 JavaScript Engine]], [[Eclipse OpenJ9 VM]], [[Node.js Memory Management]] +- **Contradictions/Notes:** 가비지 컬렉션은 개발자에게서 메모리 관리의 부담을 없애주는 매우 강력한 기능이지만 제어 권한을 완전히 잃게 된다는 양날의 검과 같은 특성을 가집니다 [3, 4]. 관리되지 않는(Unmanaged) 언어와 비교해 무조건적으로 성능이 더 좋거나 나쁜 것은 아니며, 적절히 최적화되지 않은 GC 시스템은 길고 예측 불가능한 멈춤 현상을 발생시킬 수 있습니다 [4]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Garbage Collection (GC).md]] +--- diff --git a/Programming & Language/Garbage Collection(가비지 컬렉션).md b/Programming & Language/Garbage Collection(가비지 컬렉션).md new file mode 100644 index 00000000..882f2717 --- /dev/null +++ b/Programming & Language/Garbage Collection(가비지 컬렉션).md @@ -0,0 +1,51 @@ +--- +id: P-REINFORCE-AUTO-CA2F39 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Garbage Collection(가비지 컬렉션)" +--- + +# [[Garbage Collection(가비지 컬렉션)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 가비지 컬렉션(Garbage Collection)은 애플리케이션의 메모리 고갈을 방지하기 위해 더 이상 필요하지 않거나 도달할 수 없는 객체가 차지한 메모리를 자동으로 식별하여 회수하는 프로세스입니다 [1-3]. 이 기술은 프로그래머가 직접 메모리를 관리하는 부담을 덜어주고 메모리 누수와 같은 오류를 줄여주지만, 메모리 정리 작업 중 애플리케이션 실행이 멈추는 'Stop-the-world' 지연을 발생시킬 수 있습니다 [2, 4, 5]. 현대의 가비지 컬렉터들은 이러한 지연 시간을 최소화하기 위해 세대별 힙 구조(Generational Layout)와 병렬 및 동시 처리 알고리즘을 도입하여 성능을 최적화하고 있습니다 [6-8]. + +## 📖 구조화된 지식 (Synthesized Content) +- **생존 객체 식별 원리 (Discovering Reachability)** + 가비지 컬렉터가 해결해야 할 핵심 문제는 죽은 메모리 영역을 식별하는 것입니다 [1]. 객체의 미래 접근 여부를 완벽히 예측하는 것은 정지 문제(Halting Problem)와 같아 불가능하므로, GC는 스택의 로컬 변수나 글로벌 객체와 같은 '루트(Root) 객체'부터 시작하여 포인터 체인을 통해 도달할 수 있는 객체만을 '생존(Live)' 상태로 근사하여 판단하고, 도달 불가능한 모든 객체를 '가비지(Garbage)'로 간주합니다 [1, 9, 10]. + +- **세대별 가설과 힙 메모리 구조 (Generational Collection & Heap Organization)** + 대부분의 객체는 생성 후 얼마 지나지 않아 죽는다는 '세대별 가설(Generational Hypothesis)'을 기반으로, V8과 같은 엔진은 힙 메모리를 세대별로 나누어 관리합니다 [6, 11, 12]. + * **New Space (Young Generation):** 대부분의 새 객체가 할당되는 작고 빠른 공간입니다 [6, 13]. 주기적으로 마이너 가비지 컬렉션이 빠르게 수행됩니다 [6]. + * **Old Space (Old Generation):** New Space에서 수행된 가비지 컬렉션을 두 번 살아남은 객체들이 승격(Promotion)되어 이동하는 공간입니다 [6, 14, 15]. + +- **마이너 가비지 컬렉션 (Scavenger)** + Young Generation을 관리하는 고속 알고리즘입니다 [16, 17]. New Space를 'To-Space'와 'From-Space'라는 동일한 크기의 두 반공간(Semi-space)으로 분할하는 Cheney의 알고리즘(Scavenge)을 사용합니다 [16, 18]. 할당 공간이 가득 차면, 활성 객체를 추적하여 빈 공간(To-Space)이나 Old Space로 대피(Evacuate)시키면서 메모리를 압축합니다 [18, 19]. 이후 남은 From-Space의 쓰레기 데이터를 한 번에 비우고 두 공간의 역할을 바꿉니다 [18, 19]. + +- **메이저 가비지 컬렉션 (Mark-Sweep-Compact)** + 수백 메가바이트의 데이터를 포함할 수 있는 Old Space를 관리하기 위해 메이저 GC는 주로 세 가지 단계를 거칩니다 [20, 21]. + * **Marking (표시):** 깊이 우선 탐색(DFS)을 통해 힙 내의 활성 객체를 발견합니다 [22]. 객체를 흰색(미발견), 회색(발견되었으나 이웃 객체 미처리), 검은색(발견 및 이웃 처리 완료)의 3색 마킹 상태로 분류하여 추적합니다 [23, 24]. + * **Sweeping (쓸기):** 마킹되지 않은 죽은 객체의 연속된 메모리 범위를 스캔하여 Free list(여유 공간)로 변환하여 후속 할당에 대비합니다 [24-26]. + * **Compacting (압축):** 메모리 단편화(Fragmentation)를 줄이기 위해 생존 객체들을 빈 공간으로 마이그레이션합니다 [24, 27, 28]. 이는 비용이 많이 드는 작업이지만 실제 메모리 사용량을 대폭 줄여줍니다 [27, 29]. + +- **현대 GC의 성능 최적화 (Orinoco 등)** + 수백 밀리초에 달하던 과거의 'Stop-the-world' 일시 정지 현상을 줄이기 위해 현대적인 GC는 다양한 기법을 동원합니다 [30, 31]. + * **Parallel (병렬 처리):** 메인 스레드와 여러 보조 스레드가 GC 작업을 동시에 분담하여 총 정지 시간을 줄입니다 [32, 33]. + * **Incremental (점진적 처리):** 자바스크립트 실행 중간중간에 작은 단위로 GC 작업을 번갈아 수행(Interleaving)하여 응답성을 유지합니다 [30, 32, 34]. + * **Concurrent (동시 처리):** 메인 스레드가 자바스크립트를 계속 실행하는 동안 보조 스레드들이 백그라운드에서 전적으로 Marking 및 Sweeping 작업을 수행합니다 [7, 32, 35]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Mark-Sweep]], [[Scavenger]], [[Stop-the-world]], [[Generational Hypothesis]], [[Memory Leak]] +- **Projects/Contexts:** [[V8 JavaScript Engine]], [[IBM Eclipse OpenJ9]], [[Orinoco Garbage Collector]] +- **Contradictions/Notes:** 가비지 컬렉션은 메모리 누수를 대폭 줄여주지만, 프로그래머가 메모리 관리에 대한 전적인 통제권을 잃는다는 단점이 존재합니다(모바일 앱 등에서는 큰 문제점) [4, 5]. 또한 대안으로 거론되는 레퍼런스 카운팅(Reference Counting) 방식 역시 대규모 객체 그래프의 마지막 참조가 제거될 때 가비지 컬렉션과 유사한 예측 불가능한 정지 현상을 유발할 수 있어 완벽한 대체재는 아닙니다 [5]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Garbage Collection(가비지 컬렉션).md]] +--- diff --git a/Programming & Language/Generational Hypothesis.md b/Programming & Language/Generational Hypothesis.md new file mode 100644 index 00000000..7c2746e9 --- /dev/null +++ b/Programming & Language/Generational Hypothesis.md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-D9833D +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Generational Hypothesis" +--- + +# [[Generational Hypothesis]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 세대 가설(Generational Hypothesis)은 대부분의 객체가 생성된 직후에 도달할 수 없는 상태가 되어 소멸한다는(die young) 프로그래밍의 경험적 관찰을 의미합니다 [1, 2]. 이 원리는 V8이나 JavaScript뿐만 아니라 대부분의 동적 프로그래밍 언어에 적용되는 가비지 컬렉션의 핵심 전제입니다 [2]. V8 엔진은 이 가설을 적극적으로 활용하여 메모리 힙을 '젊은 세대(Young Generation)'와 '오래된 세대(Old Generation)'로 분할함으로써 가비지 컬렉션의 효율성과 성능을 최적화합니다 [1, 3, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +- **가설의 개념적 기반**: 프로그램에서 대다수의 객체는 수명이 매우 짧은 반면, 극소수의 객체만이 훨씬 오래 살아남는다는 사실에 기초합니다 [3]. 가비지 컬렉터의 관점에서 보면, 객체가 할당된 후 거의 즉시 참조되지 않는 '도달 불가능(unreachable)' 상태가 됨을 의미합니다 [2]. +- **세대별 힙 공간 분할 (Generational Heap Layout)**: V8은 객체 수명 주기의 이러한 특성을 이용하기 위해 메모리 힙을 두 세대의 공간으로 나눕니다 [1, 2, 4]. + - **New Space (젊은 세대)**: 새롭게 생성된 짧은 수명의 객체들이 할당되는 비교적 작은 공간입니다 [3, 4]. 이곳의 객체들은 일찍 소멸할 것으로 예상되므로, V8은 빈번하고 빠른 마이너 가비지 컬렉션(Scavenge)을 실행하여 신속하게 메모리를 회수합니다 [1, 4]. + - **Old Space (오래된 세대)**: New Space에서 두 번의 가비지 컬렉션 주기(Minor GC)를 견디고 살아남은 객체들은 Old Space로 승격(promoted)됩니다 [1, 3, 4]. 사용자 세션과 같이 지속될 것으로 예상되는 데이터들이 모이며, 비용이 더 많이 드는 Major GC를 통해 덜 빈번하게 관리됩니다 [1, 4]. +- **가비지 컬렉션 성능 최적화 효과**: V8의 가비지 컬렉터는 살아남은 객체를 복사하여 이동시키는 방식을 사용합니다 [2]. 복사 작업 자체는 비용이 많이 들지만, 세대 가설에 따라 실제로 살아남는 객체의 비율은 매우 적습니다 [2]. 결국 살아남은 소수의 객체만 이동시키면 나머지 대다수의 객체는 '암묵적인 가비지(implicit garbage)'로 자연스럽게 정리되므로, 전체 할당 횟수가 아닌 생존한 객체의 수에 비례하는 최소한의 비용만 지불하게 됩니다 [2]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Garbage Collection]], [[V8 JavaScript Engine]], [[Young Generation (New Space)]], [[Old Generation (Old Space)]], [[Scavenger (Minor GC)]] +- **Projects/Contexts:** [[V8 Memory Management]] +- **Contradictions/Notes:** 제공된 소스들은 모두 일관되게 세대 가설의 원리와 V8 엔진 내 적용 방식을 지지하며, 이에 반대되는 모순된 주장이나 기록은 확인되지 않습니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Generational Hypothesis.md]] +--- diff --git a/Programming & Language/Git Hooks.md b/Programming & Language/Git Hooks.md new file mode 100644 index 00000000..6f46d788 --- /dev/null +++ b/Programming & Language/Git Hooks.md @@ -0,0 +1,45 @@ +--- +id: P-REINFORCE-AUTO-F69A27 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Git Hooks" +--- + +# [[Git Hooks]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Git Hooks는 Git 워크플로의 특정 이벤트(commit, push, merge 등)가 발생할 때 자동으로 실행되도록 설정할 수 있는 셸 스크립트 또는 실행 가능한 프로그램입니다 [1-3]. 주로 개발자가 코드를 커밋하거나 푸시하기 직전에 린트(Lint), 코드 포맷팅, 테스트 등을 실행하여 오류가 있는 코드가 리포지토리에 저장되는 것을 방지하고 코드 퀄리티를 일관되게 유지하는 역할을 합니다 [4, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +* **위치 및 구동 방식** + 기본적으로 Git Hook 스크립트들은 프로젝트의 `.git/hooks/` 폴더에 위치합니다 [3, 6]. Git은 `core.hooksPath`가 가리키는 경로의 스크립트들을 확인하여 특정 Git 명령이 실행되기 전후에 이를 호출하며, 실행 권한이 부여되지 않은 Hook은 무시됩니다 [3]. + +* **버전 관리의 한계와 해결책** + `.git/hooks/` 디렉터리는 버전 관리(Version Control) 시스템에 의해 추적되지 않기 때문에, 새로운 팀원에게 설정이 자동으로 공유되지 않으며 리포지토리를 다시 클론할 때마다 설정이 유실되는 단점이 있습니다 [6]. 이를 해결하기 위해 개발 생태계에서는 `Husky`와 같은 도구를 도입하여 Hook 스크립트를 `.husky/`와 같이 추적 가능한 폴더에서 관리하도록 `core.hooksPath` 설정을 자동화합니다 [6, 7]. + +* **주요 Client-side Hooks 종류** + * **`pre-commit`**: 커밋이 생성되기 직전에 실행되며 스테이징된 파일의 포맷팅이나 린트 검사를 수행하는 데 주로 쓰입니다 [1, 2, 8]. 매우 빠르게 실행되어야 하며, `git commit --no-verify` 명령을 통해 우회할 수 있습니다 [8, 9]. + * **`prepare-commit-msg`**: 커밋 메시지 편집기가 열리기 전에 실행되어 메시지 템플릿 삽입 등을 처리하며, 우회할 수 없는 특수한 Hook입니다 [1, 8]. + * **`commit-msg`**: 작성된 커밋 메시지 형식을 유효성 검사하는 데 쓰입니다 [1, 2, 8]. + * **`post-commit`**: 커밋이 완료된 후 호출됩니다 [1]. + * **`pre-push`**: 원격 저장소에 푸시(push)되기 직전에 실행됩니다 [2, 8, 10]. 상대적으로 실행 시간이 오래 걸리는 전체 테스트 스위트 실행이나 빌드 검증 작업이 이곳에 배치됩니다 [9, 11]. + * **`post-merge`**: 병합(merge) 작업이 완료된 후 실행됩니다 [2]. + +* **최적화 방법론 (Lint-staged 결합)** + `pre-commit` Hook에서 전체 프로젝트를 대상으로 ESLint나 Prettier를 실행하면 시간이 오래 걸려 개발자들의 불만을 초래할 수 있습니다 [6, 9]. 따라서 변경사항이 발생하여 커밋 대기 상태가 된 파일(Staged files)에 대해서만 린트 및 포맷팅 검사를 수행하도록 `lint-staged`를 결합하는 것이 일반적이며 이를 통해 검사 시간을 크게 단축할 수 있습니다 [5, 6, 12, 13]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** `[[Husky]]`, `[[lint-staged]]`, `[[ESLint]]`, `[[Prettier]]` +- **Projects/Contexts:** `[[CI/CD 파이프라인 (CI/CD Pipelines)]]`, `[[코드 품질 관리 및 자동화 (Code Quality Management and Automation)]]` +- **Contradictions/Notes:** 소스에 따르면 Git Hook은 개발자가 강제로 우회(`--no-verify` 등)할 수 있으므로 절대적이고 완벽한 강제 수단이 될 수는 없습니다. 따라서 Hook은 로컬 환경에서 빠른 피드백을 제공하기 위한 도구로 취급되어야 하며, 최종적인 보안 및 품질 검증의 권한은 항상 CI(지속적 통합) 서버가 담당해야 한다고 강조합니다 [8, 14, 15]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Git Hooks.md]] +--- diff --git a/Programming & Language/Git Hook을 이용한 CI_CD 자동화 파이프라인.md b/Programming & Language/Git Hook을 이용한 CI_CD 자동화 파이프라인.md new file mode 100644 index 00000000..74add408 --- /dev/null +++ b/Programming & Language/Git Hook을 이용한 CI_CD 자동화 파이프라인.md @@ -0,0 +1,41 @@ +--- +id: P-REINFORCE-AUTO-E60BE3 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Git Hook을 이용한 CI_CD 자동화 파이프라인" +--- + +# [[Git Hook을 이용한 CI_CD 자동화 파이프라인]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Git 훅(Git Hooks)은 소스 코드 버전 관리 시스템인 Git의 특정 작업(commit, push 등) 전후에 자동으로 실행되도록 설정된 쉘 스크립트이다 [1]. 프론트엔드 및 Node.js 생태계에서는 주로 Husky와 lint-staged라는 도구를 활용하여 Git 훅을 설정하고 관리한다 [2], [3]. 이를 통해 코드가 원격 저장소나 CI 파이프라인으로 넘어가기 전인 로컬 단계에서 코드 스타일, 포맷팅(Prettier), 문법적 오류(ESLint) 등을 자동으로 검사하고 수정함으로써 일관된 품질을 강제하는 '최전선 방어선' 역할을 수행한다 [1], [4], [3]. + +## 📖 구조화된 지식 (Synthesized Content) +* **Git 훅(Git Hooks)의 종류와 한계** + Git 훅은 `.git/hooks/` 경로에 존재하는 스크립트로 `pre-commit`, `commit-msg`, `pre-push` 등으로 나뉜다 [1], [5]. 특히 `pre-commit`은 커밋이 생성되기 직전에 실행되어 포맷팅이나 린팅을 수행하며, `pre-push`는 푸시 전에 테스트 스위트를 실행하는 등 다소 무거운 작업에 적합하다 [1], [6], [7]. 하지만 로컬의 `.git/hooks/` 디렉토리는 버전 관리가 되지 않아 팀원 간 공유가 어렵고, 개발자가 `--no-verify` 옵션을 통해 훅을 우회할 수 있다는 태생적 한계가 존재한다 [2], [8]. + +* **Husky를 통한 Git 훅 공유 및 관리** + Husky는 Git의 기본 훅 경로(`core.hooksPath`)를 `.husky/` 디렉토리로 변경하여 훅 스크립트를 Git 버전 관리에 포함시킬 수 있게 해주는 도구이다 [2], [9]. `package.json`의 `prepare` 스크립트와 연동하면, 프로젝트를 클론한 팀원이 `npm install`을 실행할 때 자동으로 Husky 훅이 로컬 환경에 셋업되므로 모든 개발자에게 동일한 검사 규칙을 쉽게 강제할 수 있다 [10], [11], [12]. + +* **lint-staged를 활용한 검사 최적화 및 자동화** + 프로젝트 규모가 커질수록 전체 코드베이스를 대상으로 ESLint나 Prettier를 실행하는 것은 수십 초 이상이 소요되어 개발 생산성을 떨어뜨린다 [2]. `lint-staged`는 현재 Git의 staged 상태인(커밋을 위해 추가된) 파일들에만 글로브(glob) 패턴을 매칭하여 명령어를 실행해 주는 오케스트레이션 도구(router)이다 [13], [14], [15]. + 보통 `pre-commit` 훅 내부에서 `lint-staged`를 호출하도록 구성하여, 변경된 파일들만을 대상으로 1~2초 만에 검사 및 자동 수정(`eslint --fix`, `prettier --write` 등)을 마칠 수 있다 [2], [7], [16]. 또한 `lint-staged`는 작업이 성공하면 변경된 내용을 자동으로 다시 스테이징(auto-staging) 처리해 주므로, 설정이 간편하다 [10], [17]. + +* **CI 파이프라인과의 역할 분담 (Hybrid Approach)** + Husky와 lint-staged 기반의 자동화는 개발자 경험(DX) 향상과 피드백 루프 단축을 위한 로컬 도구이다 [8], [18]. 개발자가 훅을 우회할 가능성이 상존하므로, 로컬 Git 훅이 CI(Continuous Integration)를 완전히 대체할 수는 없다 [19]. 따라서 로컬 훅을 통해 명백한 문제(불량 커밋 등)가 원격지에 올라가는 것을 사전에 방지하고, 최종적인 코드 품질 강제(enforcement boundary)와 전체 테스트 수행 등은 CI 파이프라인의 몫으로 남겨두는 형태가 이상적이다 [19], [18], [20]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Husky]], [[lint-staged]], [[ESLint]], [[Prettier]] +- **Projects/Contexts:** [[자동화된 코드 품질 및 스타일 검사 워크플로우]] +- **Contradictions/Notes:** lint-staged는 버전 10부터 성공적으로 파일이 수정되면 자동으로 `git add`를 수행하므로, 설정 파일의 커맨드 목록에 수동으로 `git add`를 넣는 것은 중복 작업 및 레이스 컨디션(race condition)을 유발할 수 있어 더 이상 권장되지 않는다 [17], [21]. 또한, 로컬 Git 훅은 우회(`--no-verify`)가 가능하므로 완벽한 정책 집행 경계가 될 수 없으며, CI 서버를 보완하는 성격으로 사용해야 한다 [19], [8], [21]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Git Hook을 이용한 CI_CD 자동화 파이프라인.md]] +--- diff --git a/Programming & Language/Git Pre-commit 훅을 활용한 개발 워크플로우 자동화.md b/Programming & Language/Git Pre-commit 훅을 활용한 개발 워크플로우 자동화.md new file mode 100644 index 00000000..3fe28a81 --- /dev/null +++ b/Programming & Language/Git Pre-commit 훅을 활용한 개발 워크플로우 자동화.md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-26C070 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Git Pre-commit 훅을 활용한 개발 워크플로우 자동화" +--- + +# [[Git Pre-commit 훅을 활용한 개발 워크플로우 자동화]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Git Pre-commit 훅은 커밋이 코드 저장소에 기록되기 직전에 자동으로 실행되는 스크립트이다 [1]. 개발 팀은 주로 Husky와 lint-staged 같은 도구를 결합하여 사용하여, 커밋 대상 파일(staged files)에 대해서만 린트(Lint) 검사와 코드 포맷팅을 자동으로 수행한다 [2, 3]. 이를 통해 문법적 결함이 있거나 팀의 컨벤션에 맞지 않는 코드가 저장소에 유입되는 것을 사전에 차단하고, 일관된 코드 품질을 빠르고 효율적으로 유지할 수 있다 [3, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +* **Git 훅과 Pre-commit의 역할:** Git 훅은 커밋 생성 전(`pre-commit`), 푸시 전(`pre-push`) 등 Git 워크플로우의 특정 이벤트 시점에 실행되는 쉘 스크립트이다 [1]. 그중에서도 `pre-commit` 훅은 코드가 코드 저장소에 들어가기 전의 최후의 방어선 역할을 수행하며, 빠른 포맷팅이나 린팅을 자동화하는 데 가장 적합하다 [1, 5]. +* **Husky를 통한 훅 관리:** 기본적으로 Git 훅은 `.git/hooks/` 폴더에 로컬로 존재하고 버전 관리가 되지 않기 때문에 새로운 팀원이나 CI 환경에 자동으로 공유되지 않는 한계가 있다 [2]. Husky는 훅 스크립트를 `.husky/`와 같이 버전 관리 시스템이 추적할 수 있는 디렉토리에 저장하고, Git의 `core.hooksPath`를 변경하여 이 문제를 해결하는 도구이다 [2, 6]. `package.json`의 `prepare` 스크립트 설정을 통해 팀원이 `npm install`을 실행할 때 자동으로 훅이 연동되도록 구성할 수 있다 [7, 8]. +* **lint-staged를 통한 성능 및 시간 최적화:** 커밋을 할 때마다 수많은 파일로 구성된 전체 코드베이스에 대해 ESLint나 Prettier를 실행하면 시간이 오래 걸려 개발 생산성을 크게 저하시킨다 [2, 5]. `lint-staged`는 오직 변경되어 Git의 스테이징 영역(staged files)에 올라간 파일들만 필터링하여 명령어를 실행하는 라우터 역할을 하므로, 검사 시간을 단 몇 초 이내로 대폭 줄여준다 [2, 9, 10]. +* **자동화 워크플로우 통합 동작 방식:** `pre-commit` 훅에서 `lint-staged`를 호출하도록 구성하면, 커밋을 시도할 때마다 자동으로 ESLint를 통한 오류 검출(및 `--fix`를 통한 자동 수정)과 Prettier를 통한 코드 정렬이 이루어진다 [7, 11]. `lint-staged`는 포맷팅으로 인해 수정된 파일들을 수동으로 추가할 필요 없이 알아서 다시 스테이징 처리한다 [7, 10]. 만약 해결할 수 없는 구문 오류나 규칙 위반이 발견되면 스크립트가 실패하며 커밋 프로세스가 즉시 중단된다 [12]. +* **로컬 자동화와 CI(지속적 통합)의 관계:** 개발자는 급하거나 훅이 고장 난 경우 `--no-verify` 플래그를 사용하거나 `HUSKY=0` 환경 변수를 설정하여 로컬 훅 실행을 우회(Bypass)할 수 있다 [13-15]. 따라서 Git 훅은 개발자에게 빠른 피드백을 제공하는 도구일 뿐이며, 최종적인 코드 강제 집행과 완벽한 보장을 위해서는 CI 서버에서 전체 테스트 및 검사가 반드시 병행되어야 한다 [14, 16, 17]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Husky]], [[lint-staged]], [[ESLint]], [[Prettier]], [[Continuous Integration (CI)]] +- **Projects/Contexts:** [[팀 단위 코드 품질 및 컨벤션 유지]], [[대규모 모노레포(Turborepo) 환경에서의 린트 오케스트레이션]] +- **Contradictions/Notes:** `lint-staged`는 전체 프로젝트를 검사하도록 설계된 도구(예: 전체 구조를 파악해야 하는 `ng lint`나 TypeScript의 `tsc --noEmit` 등)를 래핑하는 용도로는 적합하지 않으며, 단일 파일 단위로 처리 가능한 작업에만 사용해야 한다 [18-20]. 또한, 설정 시 여러 명령어가 동일한 파일을 동시에 수정하도록 구성하면 경쟁 조건(Race condition)이 발생하여 코드가 망가질 수 있으므로, 명령어 배열(Array)을 사용하여 순차적으로 실행되게 설정해야 한다 [21]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Git Pre-commit 훅을 활용한 개발 워크플로우 자동화.md]] +--- diff --git a/Programming & Language/Global Network Positioning (GNP).md b/Programming & Language/Global Network Positioning (GNP).md new file mode 100644 index 00000000..51f1104c --- /dev/null +++ b/Programming & Language/Global Network Positioning (GNP).md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-D96374 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Global Network Positioning (GNP)" +--- + +# [[Global Network Positioning (GNP)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Global Network Positioning (GNP)은 인터넷 지연 시간(latency)을 다차원 기하학적 공간으로 모델링하여 확장 가능한 지연 시간 추정을 가능하게 하는 접근 방식입니다 [1]. 소수의 전용 '랜드마크(landmark)' 노드에 대한 측정값을 바탕으로 각 인터넷 노드에 해당 공간의 좌표를 부여합니다 [1]. 이를 통해 임의의 두 노드 간의 통신 지연 시간을 실제 측정 없이도 두 좌표 간의 유클리드 거리(Euclidean distance)로 효율적으로 근사할 수 있습니다 [1, 2]. + +## 📖 구조화된 지식 (Synthesized Content) +* **동작 원리 및 좌표 계산 체계:** GNP는 $k$개의 랜드마크 호스트 좌표를 사용하여 N차원 기하학적 공간을 결정합니다 [2]. 먼저 랜드마크 간의 지연 시간을 측정한 뒤, 거리와 측정된 지연 시간 사이의 오차를 최소화하는 'Simplex-downhill' 알고리즘을 사용하여 랜드마크들의 좌표를 계산합니다 [3, 4]. 랜드마크의 좌표가 설정되면, 일반 호스트와 각 랜드마크 간의 지연 시간을 바탕으로 해당 호스트의 좌표를 삼각측량 방식으로 계산합니다 [2-4]. +* **확장성 및 성능 최적화:** GNP의 가장 큰 장점은 개별 호스트의 위치를 파악하는 데 일정하고 적은 횟수의 측정만 필요하다는 점입니다 [1]. 이 확장성 덕분에 대규모 머신 간의 모든 지연 시간을 낮은 비용으로 빠르게 추정할 수 있습니다 [1]. +* **기존 구현의 한계:** 과거의 GNP 구현들은 위치를 파악할 대상 노드의 능동적인 참여(active participation)를 요구했습니다 [5]. 이는 악의적인 노드가 잘못된 지연 시간을 보고할 위험, 랜드마크의 과부하, 그리고 웹 클라이언트와 같은 제3자 환경에 특수 소프트웨어를 배포하기 어렵다는 근본적인 문제를 안고 있었습니다 [5]. +* **구글(Google)의 대규모 구현 방식:** 구글은 자사의 콘텐츠 전송 네트워크(CDN)에 GNP를 통합하여 수백만 명의 클라이언트를 포지셔닝하는 대규모 지연 시간 추정 시스템을 구현했습니다 [6, 7]. 이 시스템은 대상 노드의 능동적 참여에 의존하지 않고 랜드마크 측에서 수동적으로(passively) 지연 시간을 측정하며, 확장 가능한 중앙 집중식 스케줄러를 사용하여 네트워크 오버헤드와 랜드마크의 과부하를 정밀하게 제어합니다 [6, 7]. +* **좌표의 시간에 따른 안정성 (Coordinate Stability):** 네트워크 라우팅 변경이나 일시적인 혼잡 등으로 인해 GNP 좌표는 시간이 지나면서 초기 값에서 서서히 벗어나는(drift) 경향이 있습니다 [8]. 구글의 분석에 따르면 1주일 후 전체 노드의 25%가 초기값에서 33밀리초(ms) 이상 벗어났지만, 매일 좌표를 재계산(daily recomputation)할 경우 75%의 좌표를 초기값의 6ms 이내로 안정하게 유지할 수 있습니다 [8]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Latency Estimation]], [[Landmark Nodes]], [[Simplex-downhill Algorithm]] +- **Projects/Contexts:** [[Google Content Delivery Network (CDN)]] +- **Contradictions/Notes:** 기존의 수많은 GNP 모델과 구현체들은 시스템 확장을 위해 호스트들의 능동적인 측정 참여를 필수적으로 요구했으나, 구글의 대규모 CDN 구현 사례는 랜드마크 측에서의 수동적 측정과 스케줄러 조합만으로도 능동적 참여의 단점(보안 및 과부하 위험)을 극복하고 시스템을 구축할 수 있음을 증명했습니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Global Network Positioning (GNP).md]] +--- diff --git a/Programming & Language/Google Chrome.md b/Programming & Language/Google Chrome.md new file mode 100644 index 00000000..b893695a --- /dev/null +++ b/Programming & Language/Google Chrome.md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-A2356F +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Google Chrome" +--- + +# [[Google Chrome]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Google Chrome은 V8 JavaScript 엔진을 내장하여 웹 애플리케이션 및 JavaScript 코드를 실행하는 웹 브라우저입니다 [1, 2]. 메인 렌더러로 Blink를 사용하며, V8의 가비지 컬렉터(Orinoco)와 Blink의 내부 가비지 컬렉터(Oilpan)가 상호 협력하여 메모리를 관리합니다 [2]. 또한, Chrome DevTools와 같은 강력한 메모리 프로파일링 및 디버깅 도구를 내장하여 개발자가 메모리 누수를 진단하고 성능을 최적화할 수 있도록 지원하며 [3-5], 보안 측면에서는 V8 힙(Heap) 객체를 제한된 공간에 가두는 'V8 Memory Cage' 기술을 적용하고 있습니다 [6, 7]. + +## 📖 구조화된 지식 (Synthesized Content) +- **V8 엔진 최적화 및 렌더링 성능 관리** + Google Chrome은 메모리 최적화를 위해 V8 엔진의 개선 사항을 지속적으로 적용해 왔습니다. Chrome 53에서는 저사양 기기를 위한 메모리 축소 모드를 도입하여 평균 V8 힙 크기를 약 50% 줄였고, Chrome 55에서는 백그라운드 파싱(Background parsing) 중 메모리 소비를 최적화하여 존(Zone) 메모리 피크를 크게 감소시켰습니다 [8-11]. 또한 초당 60프레임(약 16.6ms)으로 렌더링을 수행할 때, 애니메이션 작업이 일찍 완료되어 여유 시간이 생기면 V8의 유휴 시간(Idle-time) 가비지 컬렉션을 선제적으로 실행하여 메인 스레드의 끊김(Jank) 현상을 방지합니다 [12]. + +- **Chrome DevTools를 활용한 메모리 프로파일링** + Chrome은 개발자가 메모리 누수나 성능 저하 원인을 추적할 수 있도록 `Memory` 패널을 제공합니다. 여기서 힙 스냅샷(Heap snapshot)을 캡처하거나, 시간 흐름에 따른 메모리 할당(Allocation instrumentation on timeline)을 기록하여 객체의 생성 및 소멸 과정을 시각적으로 분석할 수 있습니다 [3-5, 13, 14]. 더 심층적인 엔진 내부 분석이 필요할 때는 `chrome://tracing` 인프라를 활용하여 가비지 컬렉션(GC) 객체 통계 데이터를 수집하고 시각화할 수 있습니다 [15-17]. + +- **V8 Memory Cage와 보안 아키텍처** + 64비트 Chrome 환경에서는 보안 강화를 위해 '포인터 압축(Pointer Compression)'과 'V8 Memory Cage' 아키텍처를 적용합니다 [6, 7, 18]. 이 기술은 V8 내부의 모든 힙 객체를 4GB 크기의 연속된 샌드박스 영역 내에 가두고, 포인터를 64비트 전체 주소가 아닌 32비트 오프셋으로 저장합니다 [7, 19]. 이를 통해 메모리 효율을 높이는 동시에, OOB(Out-of-Bounds)나 타입 혼동(Type Confusion) 등 악의적인 메모리 손상 공격이 발생하더라도 공격자가 이 샌드박스 범위를 벗어나 브라우저 프로세스 전체 메모리를 임의로 읽거나 쓰는 것을 차단합니다 [19-21]. + +- **렌더러 충돌(Crash)과 포렌식 활용** + Chrome 브라우저에서 복잡한 익스플로잇 시도가 실패할 경우 렌더러 프로세스 충돌(Crash)이 발생하게 됩니다 [22]. 이러한 충돌 덤프 데이터에는 공격자가 V8 힙에 남긴 가짜 객체(fakeobj), 손상된 배열 길이, 원시 데이터 메모리 흔적 등이 포함되며, 이를 통해 아직 알려지지 않은 제로데이 공격 시도 등을 포렌식 관점에서 사전에 감지하고 식별할 수 있습니다 [23, 24]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** `[[V8 JavaScript Engine]]`, `[[Chrome DevTools]]`, `[[Garbage Collection]]`, `[[Pointer Compression]]`, `[[Blink]]` +- **Projects/Contexts:** `[[Orinoco]]`, `[[Oilpan]]`, `[[V8 Memory Cage]]` +- **Contradictions/Notes:** 가비지 컬렉션은 개발자가 명시적으로 메모리를 관리하지 않도록 편의를 제공하지만, 처리 과정에서 예측할 수 없는 중단(Pause)을 발생시킬 위험이 있습니다. 이를 극복하기 위해 Chrome과 V8은 메인 스레드를 멈추는 대신 점진적(Incremental), 동시성(Concurrent), 병렬(Parallel) 기법 및 유휴 시간(Idle-time) 활용 모델을 도입하여 성능 저하를 방지하고 있습니다 [25-28]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Google Chrome.md]] +--- diff --git a/Programming & Language/Google Code Jam Dataset.md b/Programming & Language/Google Code Jam Dataset.md new file mode 100644 index 00000000..06c9f518 --- /dev/null +++ b/Programming & Language/Google Code Jam Dataset.md @@ -0,0 +1,39 @@ +--- +id: P-REINFORCE-AUTO-A3BFE1 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Google Code Jam Dataset" +--- + +# [[Google Code Jam Dataset]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Google Code Jam Dataset은 구글의 코딩 대회인 Google Code Jam 참가자들이 작성한 소스 코드 해결책들을 모아놓은 데이터셋입니다 [1]. 대회 특성상 코딩 스타일, 가이드라인, 포맷팅에 대한 제약이 없기 때문에 개발자 각자의 고유한 프로그래밍 스타일이 그대로 반영되어 있습니다 [1]. 이러한 특성과 높은 정답(Ground Truth) 순도 덕분에 기계학습을 활용한 코드 스타일로미트리(Code Stylometry, 작성자 식별) 및 소프트웨어 포렌식 연구에서 가장 인기 있고 널리 사용되는 벤치마크 데이터셋 중 하나입니다 [1], [2], [3]. + +## 📖 구조화된 지식 (Synthesized Content) +* **데이터셋의 구조적 특성** + Google Code Jam Dataset의 가장 큰 장점은 여러 작성자가 **동일한 문제에 대한 해결책(Semantic uniformity)**을 제공한다는 점입니다 [4]. 이는 머신러닝 분류기가 코드의 의미적(Semantic) 내용이 아닌 작성자 간의 '스타일적 차이'만을 온전히 학습하도록 강제할 수 있게 합니다 [4], [5]. 또한 양적으로도 균형 잡힌 구성을 제공하여 데이터의 불균형 문제 없이 일관된 분석이 가능합니다 [4]. 다만 실제 소프트웨어 개발과는 달리, 코딩 대회 특성상 입출력 처리 등에서 재사용되는 보일러플레이트 코드가 다수 포함될 수 있다는 한계도 존재합니다 [6]. + +* **코드 스타일로미트리(작성자 식별) 연구에서의 활용** + 이 데이터셋은 소스 코드뿐만 아니라 컴파일된 실행 파일의 작성자를 식별하는 연구에도 폭넓게 활용되었습니다 [7], [5]. + * **소스 코드 분석:** Caliskan-Islam 등은 2008-2014년 대회의 C/C++ 제출물을 활용해 최대 1,600명의 프로그래머를 90% 이상의 정확도로 식별하는 연구를 수행했습니다 [2], [8]. 파이썬 코드를 모은 부분 집합인 *gcjpy* 데이터셋(70명의 작성자, 총 700개 파일)은 AST(추상 구문 트리) 및 CST(구체 구문 트리) 기반의 분류기를 통한 연구나 코드 포맷팅 및 축소(Minification)가 작성자 식별에 미치는 영향을 분석하는 데 사용되었습니다 [1], [4], [9]. + * **실행 바이너리 분석:** Rosenblum 등과 Caliskan-Islam 등은 C/C++ 데이터셋을 사용하여 프로그래머의 코딩 스타일이 컴파일 과정을 거친 후에도 바이너리(실행 파일)에 보존된다는 것을 입증하는 데 활용했습니다 [7], [10], [5]. + +* **적대적 환경(Adversarial) 연구** + Simko 등은 인간 프로그래머가 다른 사람의 코딩 스타일을 의도적으로 모방하거나 자신의 스타일을 숨기려 할 때 기존의 기계학습 기반 작성자 식별 모델이 얼마나 취약한지를 평가하는 사용자 연구에서 이 데이터셋을 활용했습니다 [11], [12]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Code Stylometry]], [[Authorship Attribution]], [[Abstract Syntax Tree (AST)]], [[Concrete Syntax Tree (CST)]] +- **Projects/Contexts:** [[Google Code Jam]], [[Machine Learning for Source Code]] +- **Contradictions/Notes:** 소스에 따르면 Google Code Jam 데이터셋은 높은 순도와 통제된 환경을 제공하여 식별 모델 학습에 매우 적합하지만 [3], 실제 프로덕션 환경의 코드와는 달리 대회 특유의 반복적인 보일러플레이트 코드가 다수 포함되어 있어 실제 현실의 소프트웨어(In the wild)를 대상으로 할 때와는 차이가 발생할 수 있다는 점이 지적됩니다 [6]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Google Code Jam Dataset.md]] +--- diff --git a/Programming & Language/Google Lighthouse.md b/Programming & Language/Google Lighthouse.md new file mode 100644 index 00000000..e103b535 --- /dev/null +++ b/Programming & Language/Google Lighthouse.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-88077C +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Google Lighthouse" +--- + +# [[Google Lighthouse]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Google Lighthouse는 웹사이트의 페이지 속도를 측정하고 성능 개선을 위한 권장 사항을 제공하는 구글의 무료 오픈 소스 도구입니다 [1], [2]. 주로 개발 단계에서 브라우저의 성능을 시뮬레이션하여 Synthetic Lab Data(합성 랩 데이터)를 수집하며, Chrome DevTools, 명령줄, 그리고 PageSpeed Insights를 통해 사용할 수 있습니다 [2], [3]. + +## 📖 구조화된 지식 (Synthesized Content) +* **주요 목적 및 기능:** Lighthouse는 웹 페이지의 로드 성능을 분석하고 최적화할 수 있는 진단 정보를 제공합니다 [1], [2]. 로컬 컴퓨터의 하드웨어와 네트워크 환경을 기반으로 성능을 시뮬레이션하는 'Synthetic Lab Data(합성 랩 데이터)' 수집 도구로 분류되며, 특히 개발 단계의 테스트나 직접 접근할 수 없는 웹사이트의 감사(audit) 목적에 가장 유용합니다 [2], [3]. Lighthouse가 측정하는 대표적인 성능 지표 중 하나로는 페이지가 완전히 상호 작용할 수 있게 되는 시간을 측정하는 'Time to Interactive(TTI)'가 있습니다 [4]. +* **도구 통합 및 엔진 재사용:** Lighthouse는 Google의 PageSpeed Insights 진단을 구동하는 핵심 엔진입니다 [1], [2]. 또한 Google은 Chrome DevTools의 성능 탭과 Lighthouse 보고서 양쪽 모두에서 사용할 수 있는 새로운 '인사이트 감사(Insights audits)' 기능을 도입하여, 성능 권장 사항을 식별하기 위해 별도의 엔진을 유지하는 대신 동일한 코드를 재사용하도록 개선했습니다 [1]. +* **스로틀링(Throttling) 시뮬레이션의 한계 및 개선:** Lighthouse는 점수를 결정하기 위해 스로틀링 시뮬레이션을 사용하는데, 이로 인해 때때로 부정확한 데이터가 생성되기도 합니다 [5]. 예를 들어, 페이지 콘텐츠가 미리 로드된(preloaded) 리소스에 의존하지 않음에도 불구하고 해당 리소스가 렌더링을 차단한다고 잘못 가정하는 경우가 있습니다 [5]. 이러한 부정확성을 해결하고 Lighthouse 지표를 더욱 신뢰할 수 있도록 실제 브라우저 동작과 더 잘 일치하게 스로틀링 시뮬레이션을 업데이트하는 작업이 진행 중입니다 [5], [6]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Chrome DevTools]], [[PageSpeed Insights]], [[Time to Interactive (TTI)]], [[Synthetic Lab Data]] +- **Projects/Contexts:** [[Web Performance Optimization]] +- **Contradictions/Notes:** 소스에 따르면 Lighthouse 점수의 단순 평균값은 일부 특이값(outlier)에 의해 왜곡될 수 있으므로 해석 시 주의가 필요합니다 [7]. 또한, Lighthouse의 스로틀링 시뮬레이션은 때때로 실제 브라우저 동작과 다르게 자원 로딩 영향을 평가하는 한계가 지적되어 최적화 작업이 요구되고 있습니다 [5]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Google Lighthouse.md]] +--- diff --git a/Programming & Language/Graph-Grammars.md b/Programming & Language/Graph-Grammars.md new file mode 100644 index 00000000..b24f5988 --- /dev/null +++ b/Programming & Language/Graph-Grammars.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-492313 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Graph-Grammars" +--- + +# [[Graph-Grammars]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Graph-Grammars.md]] +--- diff --git a/Programming & Language/Grokking (그로킹 지연 일반화).md b/Programming & Language/Grokking (그로킹 지연 일반화).md new file mode 100644 index 00000000..271e4e31 --- /dev/null +++ b/Programming & Language/Grokking (그로킹 지연 일반화).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D1916C +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Grokking (그로킹 지연 일반화)" +--- + +# [[Grokking (그로킹 지연 일반화)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Grokking (그로킹, 지연 일반화).md]] +--- diff --git a/Programming & Language/HNSW 알고리즘 (Hierarchical Navigable Small World).md b/Programming & Language/HNSW 알고리즘 (Hierarchical Navigable Small World).md new file mode 100644 index 00000000..a12751dd --- /dev/null +++ b/Programming & Language/HNSW 알고리즘 (Hierarchical Navigable Small World).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E7A769 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - HNSW 알고리즘 (Hierarchical Navigable Small World)" +--- + +# [[HNSW 알고리즘 (Hierarchical Navigable Small World)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/HNSW 알고리즘 (Hierarchical Navigable Small World).md]] +--- diff --git a/Programming & Language/HTC Vive Pro HMD.md b/Programming & Language/HTC Vive Pro HMD.md new file mode 100644 index 00000000..5ffa90e7 --- /dev/null +++ b/Programming & Language/HTC Vive Pro HMD.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-7B2D1B +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - HTC Vive Pro HMD" +--- + +# [[HTC Vive Pro HMD]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +* **실험 도구로서의 활용:** 한 연구에서 HTC Vive Pro HMD는 사용자가 가상현실 엑서게임(비트 세이버)을 10분 및 50분 동안 플레이하도록 한 뒤, 시각, 인지, 웰빙에 미치는 사후 효과(VR 멀미 등)를 측정하기 위한 실험 장치로 채택되었습니다 [3], [1], [2]. +* **안전 가이드라인 및 부작용:** HTC Vive Pro를 포함한 VR 기기 제조사들은 기기 사용 설명서 및 안전 규정 가이드를 통해 VR 사용 시간에 대한 권장 사항(예: 30분에서 1시간)을 제공하고 잠재적인 부작용을 경고합니다 [4]. 그러나 사용자가 게임의 몰입감으로 인해 시간을 잊고 장시간 기기를 착용할 경우 심각한 VR 멀미(VR sickness) 증상을 겪을 수 있습니다 [4]. +* 소스에 관련 정보가 부족합니다. 기기 구동 원리, 해상도, 부가 기능 등 HTC Vive Pro HMD 자체의 핵심 기능에 대한 상세한 설명은 소스 내에 존재하지 않습니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Head-Mounted Display (HMD)]], [[Virtual Reality (VR)]], [[VR Sickness]] +- **Projects/Contexts:** [[Exergaming With Beat Saber 연구 (VR 엑서게임 사후 효과 연구)]] +- **Contradictions/Notes:** 기기 자체의 특성이나 스펙에 대한 세부 내용은 없고, 특정 연구의 실험 세팅용 장비로만 등장하므로 전체적인 맥락을 파악하기에는 소스에 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/HTC Vive Pro HMD.md]] +--- diff --git a/Programming & Language/Heap Snapshot.md b/Programming & Language/Heap Snapshot.md new file mode 100644 index 00000000..08d0abc2 --- /dev/null +++ b/Programming & Language/Heap Snapshot.md @@ -0,0 +1,42 @@ +--- +id: P-REINFORCE-AUTO-E3AFF4 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Heap Snapshot" +--- + +# [[Heap Snapshot]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Heap Snapshot은 특정 시점에 V8 엔진 및 JavaScript 애플리케이션의 전체 메모리 상태(객체 그래프)를 캡처하는 도구 및 기법입니다 [1, 2]. 주로 JavaScript 객체와 관련된 DOM 노드의 메모리 분포를 보여주며, 가비지 컬렉션(GC) 루트에서 도달할 수 있는 객체들만 캡처합니다 [3, 4]. 개발자는 여러 스냅샷을 비교하고 참조 유지 체인을 추적하여 프로그램 내에서 발생하는 메모리 누수를 찾아내고 원인을 분석하는 데 이 도구를 필수적으로 사용합니다 [1, 3, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +- **작동 원리 및 객체 고유 식별:** + 스냅샷 캡처는 메모리에 남은 실제 객체만 분석하기 위해 항상 가비지 컬렉션(GC) 수행으로 시작됩니다 [4]. 수집된 각 객체에는 `@` 기호가 붙은 고유 ID가 부여되는데, 이 ID는 여러 번의 스냅샷 생성 간에도 계속 유지되므로 개발자가 힙 상태와 객체의 변화를 정밀하게 추적하고 비교할 수 있습니다 [6-8]. +- **핵심 메모리 평가 지표:** + 스냅샷은 객체가 차지하는 메모리 크기를 주로 두 가지 기준으로 나누어 보여줍니다. + - *Shallow Size (얕은 크기):* 객체 자체가 직접적으로 점유하는 메모리 크기입니다. 일반적으로 배열과 문자열이 큰 Shallow Size를 가집니다 [9]. + - *Retained Size (유지된 크기):* 해당 객체를 삭제하여 이에 종속된 다른 객체들이 더 이상 GC 루트에서 접근할 수 없게 되었을 때, GC를 통해 최종적으로 확보할 수 있는 전체 메모리 크기입니다 [9]. +- **데이터 분석 뷰 (Chrome DevTools 기준):** + - *Summary View (요약 뷰):* 객체를 생성자(Constructor) 이름과 소스별로 그룹화하여 보여줍니다 [10, 11]. Detached DOM 노드 등 비효율적인 메모리 사용 패턴을 식별하고 필터링하는 데 유용합니다 [12]. + - *Comparison View (비교 뷰):* 특정 작업의 수행 전후 등 두 개 이상의 스냅샷 간 차이를 비교합니다 [10, 13]. 해제된 메모리와 참조 횟수(Reference count)의 델타값을 조사하여 누수를 찾아내며, 보통 신뢰성을 높이기 위해 3번의 스냅샷을 찍어 비교하는 기법(Three-snapshot technique)이 권장됩니다 [5, 13]. + - *Containment View (포함 뷰):* 애플리케이션 객체 구조에 대한 '조감도' 역할을 합니다 [14]. 클로저(Closure) 내부를 들여다보거나, 전역 네임스페이스(Window 등)에서 참조되는 VM 내부 객체의 세부적인 메모리 사용을 분석할 수 있습니다 [10, 14]. + - *Statistics View (통계 뷰):* 코드, 문자열, JS 배열, 시스템 객체 등에 할당된 메모리의 상대적 크기를 파이 차트로 나타냅니다 [10]. +- **Retainers (유지자) 추적:** + 스냅샷에서 특정 객체를 선택하면 하단의 Retainers 패널에 해당 객체를 메모리에 살려두고 있는 참조 체인(GC 루트로부터의 경로)이 표시됩니다 [1, 15]. 개발자는 이 체인을 역추적하여 제거되지 않은 이벤트 리스너나 타이머 등 메모리 누수의 근본적인 원인을 정확히 짚어낼 수 있습니다 [1, 16]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Garbage Collection (GC)]], [[Memory Leak]], [[Shallow Size]], [[Retained Size]], [[Retainer Tree]] +- **Projects/Contexts:** [[Chrome DevTools]], [[Node.js]], [[V8 Engine]] +- **Contradictions/Notes:** 모든 데이터가 JavaScript 힙 스냅샷에 기록되는 것은 아닙니다. 네이티브 코드를 실행하는 Getter를 통해 구현된 속성이나 숫자와 같은 비문자열(non-string) 값은 스냅샷에 캡처되지 않습니다 [11]. 또한, 원시 힙 데이터에는 수천 개의 V8 내부 객체가 포함되므로, 실제 애플리케이션의 메모리 누수를 찾으려면 "Constructor(생성자)" 필터를 사용하여 분석 대상을 좁혀야 합니다 [17]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Heap Snapshot.md]] +--- diff --git a/Programming & Language/Husky lint-staged.md b/Programming & Language/Husky lint-staged.md new file mode 100644 index 00000000..e09350fe --- /dev/null +++ b/Programming & Language/Husky lint-staged.md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-6F1BCF +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Husky lint-staged" +--- + +# [[Husky lint-staged]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Husky와 lint-staged는 개발자가 코드를 Git 저장소에 커밋하기 전에 코드의 품질과 스타일을 자동으로 검사하고 수정할 수 있도록 돕는 도구입니다 [1, 2]. Husky는 Git 훅(Git hooks)을 버전 관리 시스템에 포함시켜 팀원 전체가 쉽게 공유하고 관리할 수 있도록 해주는 훅 관리 레이어입니다 [3, 4]. lint-staged는 전체 코드베이스가 아닌 커밋을 위해 스테이징된(staged) 파일에 대해서만 특정 명령어(Linter, Formatter 등)를 실행하도록 오케스트레이션하여 검사 속도와 효율성을 높여줍니다 [3, 4]. 이 두 도구를 결합하여 사용하면 잘못된 코드가 저장소에 병합되는 것을 사전에 방지하고 일관된 코드 퀄리티를 효율적으로 유지할 수 있습니다 [5]. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Git Hooks]], [[ESLint]], [[Prettier]], [[Continuous Integration (CI)]] +- **Projects/Contexts:** [[Monorepo(Turborepo 등) 환경의 린트 관리]], [[프론트엔드 및 Node.js 개발 워크플로우]] +- **Contradictions/Notes:** 소스에 따르면 lint-staged의 자체적인 기능을 사용할 때 스크립트 명령어 내에서 수동으로 `git add`를 추가해서는 안 됩니다. lint-staged가 충돌(race condition)을 방지하기 위해 파일의 자동 스테이징을 내부적으로 직접 처리하기 때문입니다 [13, 16]. 또한 lint-staged는 파일 필터링 역할을 하므로, `tsc`와 같이 전체 프로젝트 문맥이 필요한 도구를 적용할 때는 단순히 명령어를 추가하는 것이 아니라 파일 인자가 무시되도록 별도의 함수 설정을 사용해야 하는 등 도구의 성격에 맞게 분리 적용할 필요가 있습니다 [16, 20, 21]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Husky & lint-staged.md]] +--- diff --git a/Programming & Language/Husky.md b/Programming & Language/Husky.md new file mode 100644 index 00000000..de6b7009 --- /dev/null +++ b/Programming & Language/Husky.md @@ -0,0 +1,36 @@ +--- +id: P-REINFORCE-AUTO-9068BA +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Husky" +--- + +# [[Husky]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Husky는 개발 프로젝트에서 Git 훅(Git hooks)을 쉽게 설정, 관리 및 팀원들과 공유할 수 있도록 지원하는 소프트웨어 도구입니다 [1]. 기본적으로 버전 관리 대상이 아닌 Git 훅의 한계를 극복하여 `.husky/`와 같은 추적 가능한 디렉토리를 통해 훅 스크립트를 관리하게 해줍니다 [1, 2]. 주로 `lint-staged`와 결합하여 커밋이나 푸시 전에 자동으로 코드 린팅(linting) 및 포맷팅을 수행하여 코드 품질을 강제하는 데 사용됩니다 [3, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +* **Git 훅의 한계 극복 및 구동 원리:** Git의 기본 훅은 `.git/hooks/` 디렉토리에 저장되어 버전 관리 도구에 의해 추적되지 않습니다. 이로 인해 새로운 팀원이 프로젝트를 클론할 때 훅이 자동으로 설정되지 않는 문제가 발생합니다 [1]. Husky는 Git의 `core.hooksPath` 속성을 사용하여 추적 가능한 디렉토리(예: `.husky/`)에 실제 훅 파일(셸 스크립트)을 생성하고 관리함으로써 이 문제를 해결합니다 [1, 2]. +* **설치 및 자동화 설정:** `npx husky init` (또는 `husky-init`) 명령어를 실행하면 프로젝트 루트에 `.husky` 폴더가 생성되고 `package.json`에 `prepare` 스크립트가 추가됩니다 [5-7]. 이 `prepare` 스크립트는 팀원들이 로컬에서 `npm install`을 실행할 때 Husky 훅이 자동으로 설치되도록 보장하여 모든 팀원이 동일한 검사 환경을 갖추게 합니다 [5-7]. +* **lint-staged와의 결합:** 전체 프로젝트 코드를 매번 검사하는 것은 많은 시간이 소요되므로, Husky의 `pre-commit` 훅 내부에서 `lint-staged`를 호출하는 방식이 현대적인 표준 설정으로 사용됩니다 [1, 8, 9]. 이 조합을 통해 커밋을 위해 스테이징된(staged) 파일에 대해서만 ESLint나 Prettier를 실행함으로써 1~2초 내에 검사를 완료할 수 있습니다 [1, 9]. +* **검사 우회(Bypass) 및 환경 설정:** 개발 과정에서 미완성 코드를 커밋해야 하는 등 훅 실행을 건너뛰어야 할 때는 Git의 기본 기능인 `--no-verify` 플래그(예: `git commit --no-verify`)를 사용할 수 있습니다 [10, 11]. 또한 CI 서버나 프로덕션 환경 등 훅 설치 및 실행이 필요 없는 경우, `HUSKY=0` 환경 변수를 설정하여 Husky를 완전히 비활성화할 수 있습니다 [12]. +* **예외 상황 및 트러블슈팅:** + * **GUI 및 버전 관리자 이슈:** SourceTree나 VS Code 같은 Git GUI 도구나 Node 버전 관리자(nvm, fnm 등)를 사용할 때 `PATH`가 제대로 초기화되지 않아 훅에서 명령어를 찾을 수 없는 오류(`command not found`)가 발생할 수 있습니다. Husky는 각 훅을 실행하기 전에 `~/.config/husky/init.sh`를 소싱(source)하여 이 문제를 우회할 수 있도록 지원합니다 [13, 14]. + * **서브모듈 및 중첩 패키지:** 모노레포나 서브모듈(Submodules) 구조에서는 최상위 루트가 아닌 하위 디렉토리에 패키지가 위치할 수 있습니다. Git은 기본적으로 리포지토리 루트에서 훅을 실행하므로, 이런 경우 `prepare` 스크립트 내에서 경로를 이동하거나(cd) 서브모듈의 컨텍스트 내에 Husky를 개별적으로 설치하여 동작하도록 구성해야 합니다 [14, 15]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Git Hooks]], [[lint-staged]], [[ESLint]], [[Prettier]] +- **Projects/Contexts:** [[CI/CD Pipeline]], [[Monorepo]], [[Submodules]] +- **Contradictions/Notes:** 소스에 따르면, 많은 개발자가 Husky와 `lint-staged`를 혼동하여 하나의 덩어리로 생각하곤 합니다. 하지만 두 도구는 명확히 구분되어야 합니다. Husky는 단순히 Git의 기본 훅을 관리하고 연결하는 '배선(hook wiring)' 역할을 할 뿐 작업 실행기(task runner)가 아니며, 실제 변경된 파일 단위로 작업을 오케스트레이션 하는 것은 `lint-staged`의 역할입니다 [2, 4, 16]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Husky.md]] +--- diff --git a/Programming & Language/IBM 가비지 컬렉션.md b/Programming & Language/IBM 가비지 컬렉션.md new file mode 100644 index 00000000..ab62f3a1 --- /dev/null +++ b/Programming & Language/IBM 가비지 컬렉션.md @@ -0,0 +1,42 @@ +--- +id: P-REINFORCE-AUTO-A6562D +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - IBM 가비지 컬렉션" +--- + +# [[IBM 가비지 컬렉션]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> IBM의 가비지 컬렉션(GC)은 애플리케이션의 메모리 부족을 방지하기 위해 더 이상 필요하지 않은 Java 힙의 객체를 회수하는 자동화된 프로세스입니다 [1]. 전체 GC 과정은 일반적으로 도달 가능한 객체를 식별하는 마크(Mark), 도달할 수 없는 객체를 정리하는 스위프(Sweep), 힙의 단편화를 해결하는 압축(Compact)의 세 단계로 나뉩니다 [1]. GC 작업 중에는 애플리케이션 실행이 일시 중지되는 'stop-the-world (STW)' 현상이 발생할 수 있으며, 시스템은 애플리케이션 중단을 최소화하기 위해 동시(Concurrent) 또는 점진적(Incremental) 처리 기법 및 다양한 정책을 활용합니다 [1-3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **가비지 컬렉션 주기 (GC Cycles)** + - **글로벌 GC 주기 (Global GC cycle):** 전체 Java 힙에서 작동하며 할당 실패나 메모리 임계값 도달과 같은 내부 메커니즘에 의해 암시적으로 트리거되거나, `System.gc()` 호출 등을 통해 명시적으로 트리거됩니다 [4]. + - **부분 GC 주기 (Partial GC cycle):** 힙의 특정 부분에서만 작동하며, 선택된 GC 정책에 따라 암시적으로만 발생합니다 [4, 5]. + +- **주요 GC 작업 (GC Operations)** + - **마크 작업 (Mark):** 루트 객체에서 시작하여 힙 내 도달 가능한 객체를 추적하고 식별합니다 [6, 7]. 비트 배열인 '마크 맵(Mark map)'을 사용해 객체 위치를 기록하며, 초기(Initial), 메인(Main), 최종(Final) 세 단계로 진행됩니다 [6, 7]. 성능 향상을 위해 보조 스레드를 통한 병렬 처리나 애플리케이션 스레드와 함께 작동하는 동시 마크(Concurrent mark) 처리를 수행할 수 있습니다 [2, 8]. + - **스위프 작업 (Sweep):** 여유 메모리를 분석하고 해당 공간을 중앙 기록인 프리리스트(Freelist)에 연결하여 새로운 객체 할당이 가능하도록 메모리를 회수합니다 [9]. + - **스캐빈지 작업 (Scavenge):** 'Nursery' 영역의 할당 실패 시 트리거되며 도달 가능한 객체를 새 공간이나 'Tenure' 영역으로 복사하여 유지합니다(`gencon` 정책에서 주로 사용) [10, 11]. + - **복사 전달 작업 (Copy Forward):** 힙의 단편화된 영역을 비우기 위해 라이브 객체를 새로운 영역으로 이동시킵니다(`balanced` 정책에서 주로 사용) [11, 12]. + - **압축 작업 (Compact):** 메모리 단편화를 제거하기 위해 객체를 이동시킵니다. 객체의 모든 참조를 업데이트해야 하는 비용이 매우 큰 작업이므로 기본적으로는 실행되지 않고 여유 공간이 극도로 부족하거나 특정 조건(-Xcompactgc 옵션 등)이 충족될 때만 발생합니다 [13, 14]. + +- **약한 참조 처리 (Weak Reference Processing)** + - GC 주기 동안 소프트(Soft), 약한(Weak), 팬텀(Phantom) 참조를 처리하여 특정 참조가 유지되거나 삭제되도록 관리합니다 [14]. 소프트 참조는 메모리 부족 오류가 발생할 가능성이 있을 때만 지워지며, 약한 참조와 팬텀 참조는 참조 객체가 마크되지 않을 때 즉시 혹은 자동으로 지워집니다 [15]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[GC Policies (gencon, optavgpause, balanced)]], [[Stop-the-world (STW) Pause]], [[Mark, Sweep, and Compact Operations]] +- **Projects/Contexts:** [[Eclipse OpenJ9™]], [[Java Object Heap]] +- **Contradictions/Notes:** 애플리케이션 성능 최적화를 위해 동시 마크(Concurrent mark) 방식을 사용하면 STW 일시 중지 시간은 줄일 수 있지만, 쓰기 장벽(Write barrier) 작동으로 인한 추가 CPU 소비와 힙 락 할당 중 객체 추적에 따른 부하가 발생하는 트레이드오프(단점)가 존재합니다 [3]. 또한, 개발자가 `System.gc()`를 직접 호출하거나 finalizer를 이용해 GC를 통제하려 하면 오히려 애플리케이션 성능을 크게 저하시킬 수 있습니다 [5]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/IBM 가비지 컬렉션.md]] +--- diff --git a/Programming & Language/IFCjs.md b/Programming & Language/IFCjs.md new file mode 100644 index 00000000..cc581924 --- /dev/null +++ b/Programming & Language/IFCjs.md @@ -0,0 +1,36 @@ +--- +id: P-REINFORCE-AUTO-659684 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - IFCjs" +--- + +# [[IFCjs]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> IFC.js는 대규모 기하학적 환경이나 건물 모델을 효율적으로 시각화하기 위해 개발되고 있는 프로젝트입니다 [1]. 메모리 소비를 줄이고 렌더링 속도(FPS)를 높이면서도 수많은 객체 중 개별 객체를 빠르게 검색하고 구성할 수 있는 렌더링 최적화를 목표로 합니다 [2]. 최근 최적화 아키텍처를 통해 100MB 이상의 대형 모델을 모바일에서도 원활하게 로드하는 성능을 달성했습니다 [3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **대규모 렌더링 최적화의 과제:** 대규모 건물 모델 시각화에는 수천에서 수백만 개의 객체가 포함되기 때문에 메모리와 속도(Draw call)의 최적화가 필수적입니다 [2]. +- **기존 방식의 한계:** + - 모든 객체를 `BufferGeometry`로 병합하는 방식은 드로우 콜을 최소화하지만, 의자 2개를 렌더링할 때 의자 1개보다 두 배의 RAM을 차지할 만큼 메모리 소모가 심하다는 문제가 있습니다 [2, 4]. + - 반대로 `InstancedMesh`를 사용하는 방식은 메모리를 적게 쓰지만, 고유 객체와 재질의 수만큼 드로우 콜이 급증하여 대형 건물 모델에 적용하기 어렵습니다 [4, 5]. +- **하이브리드 시스템 'Fragment' 도입:** 이러한 한계를 극복하기 위해 IFC.js 개발진은 두 가지 방식의 장점을 동일한 인터페이스 뒤에 결합한 'Fragment'라는 시스템을 설계했습니다 [5]. +- **객체별 렌더링 전략:** 벽이나 바닥과 같이 고유하면서도 폴리곤 수가 적은(Low-poly) 객체들은 `BufferGeometry`로 병합하여 처리하고, 가구나 문, 창문과 같이 폴리곤 수가 많고(High-poly) 반복되는 객체들은 `InstancedMesh`를 생성하여 처리합니다 [6]. +- **결과 및 성과:** 이 시스템은 모든 파편(Fragment)이 비슷한 수의 정점과 드로우 콜을 가지도록 균형을 맞춰 효율성을 극대화하며, Autodesk Forge의 로딩 속도에 근접하는 수준의 성능을 입증했습니다 [3, 6]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[BufferGeometry]], [[InstancedMesh]], [[Fragment]], [[Draw call]] +- **Projects/Contexts:** [[대규모 기하학적 환경 시각화]], [[Autodesk Forge]] +- **Contradictions/Notes:** 소스에 명시적인 모순은 없으나, 모델 렌더링에 있어 `BufferGeometry` 병합 방식(메모리 소모 큼)과 `InstancedMesh` 방식(드로우 콜 증가) 간의 근본적인 트레이드오프(Trade-off)가 존재하며, IFC.js는 이를 해결하기 위해 두 방식을 혼합한 하이브리드 솔루션을 제안합니다 [2, 4, 5]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/IFC.js.md]] +--- diff --git a/Programming & Language/Immersive Sim Genre.md b/Programming & Language/Immersive Sim Genre.md new file mode 100644 index 00000000..d5d876e6 --- /dev/null +++ b/Programming & Language/Immersive Sim Genre.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-33177A +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Immersive Sim Genre" +--- + +# [[Immersive Sim Genre]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Immersive Sim Genre.md]] +--- diff --git a/Programming & Language/Incremental Marking.md b/Programming & Language/Incremental Marking.md new file mode 100644 index 00000000..9599e725 --- /dev/null +++ b/Programming & Language/Incremental Marking.md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-A29470 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Incremental Marking" +--- + +# [[Incremental Marking]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Incremental Marking은 가비지 컬렉션의 마킹 단계를 한 번의 긴 일시 정지(stop-the-world)로 처리하지 않고, 애플리케이션 실행과 교차하여 여러 개의 짧은 작업 단위로 나누어 수행하는 메모리 관리 기법입니다 [1, 2]. 이 방식은 가비지 컬렉션에 소요되는 전체 시간을 줄이지는 않지만, 작업을 시간에 따라 분산시킴으로써 메인 스레드의 응답성을 크게 향상시킵니다 [2]. 결과적으로 모바일 기기 등에서 발생할 수 있는 긴 지연을 방지하고 애플리케이션이 사용자 입력 및 애니메이션에 원활하게 반응할 수 있도록 돕습니다 [2, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **트리거 및 기본 작동 원리:** + Incremental Marking은 힙(heap)의 크기가 특정 임계값에 도달할 때 활성화됩니다 [3, 4]. 활성화된 이후에는 애플리케이션이 메모리를 할당할 때마다 짧은 마킹 단계(step)가 실행되어, 객체의 생성 속도에 맞춰 마킹 프로세스가 보조를 맞추게 됩니다 [1, 4]. 일반적인 마킹과 마찬가지로 깊이 우선 탐색(Depth-First-Search) 기반이며, 객체의 상태를 흰색(미발견), 회색(발견되었으나 이웃 객체 미처리), 검은색(완전 처리됨)으로 분류하는 시스템을 사용합니다 [3]. 이 방식을 통해 과거 500~1000ms에 달하던 긴 가비지 컬렉션 지연 시간이 5~10ms 수준의 매우 짧은 일시 정지로 쪼개집니다 [3, 4]. + +- **객체 그래프의 동적 변화 및 Write Barrier 방어:** + 점진적 마킹의 가장 큰 난제는 마킹 작업 사이사이에 자바스크립트가 실행되므로 힙 내의 객체 그래프 구조가 계속 변할 수 있다는 점입니다 [2, 5]. 특히 완전히 검사가 끝난 '검은색' 객체에서 아직 발견되지 않은 '흰색' 객체로의 새로운 포인터가 생성될 경우, 살아있는 흰색 객체가 가비지로 잘못 분류될 위험이 있습니다 [5]. V8 엔진은 이를 방지하기 위해 '쓰기 장벽(Write Barrier)'을 사용하여 검은색에서 흰색으로 향하는 포인터 생성을 감지합니다 [5]. 이러한 포인터가 감지되면 해당 검은색 객체를 다시 회색으로 변경하고 마킹 덱(deque)에 밀어넣어 재검색되도록 보장합니다 [5]. + +- **Lazy Sweeping으로의 전환:** + 모든 객체의 생존 여부가 식별되어 Incremental Marking 작업이 완료되면, V8은 한꺼번에 메모리를 지우지 않고 필요에 따라 페이지 단위로 메모리를 해제하는 'Lazy Sweeping' 단계를 시작하여 남은 오버헤드를 분산시킵니다 [6, 7]. + +- **IBM JVM에서의 적용 사례:** + 자바스크립트 엔진 외에도 IBM JVM의 균형(balanced) GC 정책에서 '점진적 동시 마킹(Incremental concurrent mark processing)'이 활용됩니다 [8, 9]. 이는 글로벌 마킹 작업을 전체 힙에 걸쳐 점진적으로 수행하며, 부분적인 GC 사이클과 교차되어 긴 정지 시간을 방지합니다 [8]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Garbage Collection]], [[Write Barrier]], [[Lazy Sweeping]], [[Mark-Sweep]], [[Orinoco]] +- **Projects/Contexts:** [[V8 JavaScript Engine]], [[IBM OpenJ9]] +- **Contradictions/Notes:** V8 엔진의 Incremental Marking은 메인 스레드가 자바스크립트 실행 중간에 간헐적으로 마킹 작업을 나누어 수행하는 구조이지만 [2], IBM JVM의 Incremental concurrent mark 작업에서는 애플리케이션 스레드가 객체 추적에 관여하지 않으며 오직 백그라운드 스레드만이 사용된다는 기술적 차이가 존재합니다 [8]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Incremental Marking.md]] +--- diff --git a/Programming & Language/Index Masking.md b/Programming & Language/Index Masking.md new file mode 100644 index 00000000..4d388bd0 --- /dev/null +++ b/Programming & Language/Index Masking.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-42C840 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Index Masking" +--- + +# [[Index Masking]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Index Masking은 Spectre 및 Meltdown과 같은 캐시 사이드 채널 공격을 방어하기 위해 브라우저 엔진에 도입된 보안 완화(security mitigation) 기법 중 하나이다 [1, 2]. 이 기법은 길이(length)를 다음 2의 거듭제곱으로 올림한 후 1을 빼는 방식으로 마스크(mask)를 계산하여 적용하는 분기 없는(branchless) 보안 검사 방식이다 [3, 4]. 비록 경계를 벗어난(out-of-bounds) 읽기를 완전히 막지는 못하지만, 공격자가 임의의 메모리에 접근하는 것을 방지하는 역할을 한다 [4]. + +## 📖 구조화된 지식 (Synthesized Content) +- **동작 원리 및 한계:** Index Masking은 데이터의 길이를 다음 2의 거듭제곱으로 올림하고 1을 빼는 방식으로 마스크를 계산하여 사용한다 [4]. 이 방법은 OOB(Out-of-Bounds) 접근에 대한 완벽한 해결책은 아니며 여전히 범위를 벗어난 읽기를 허용할 수 있지만, 임의의 메모리 영역(arbitrary memory)에 대한 접근은 확실하게 차단한다 [4]. +- **보안을 위한 아키텍처 도입:** Spectre 및 Meltdown 공격을 방어하기 위해 WebKit을 비롯한 웹 브라우저 엔진들은 기존의 분기(branch) 기반 보안 검사의 한계를 보완하고자 Index Masking과 Pointer Poisoning 같은 분기 없는(branchless) 보안 검사 방식을 도입하였다 [1, 3, 4]. +- **성능에 미치는 영향:** 이 보안 완화 기법은 자바스크립트 엔진 및 JIT(Just-In-Time) 컴파일러가 수행하는 그래픽 실행의 크리티컬 패스에 추가 명령어를 도입하므로, 기본 마이크로 지연 시간(base micro-latency)을 약간 증가시킨다 [5]. 그러나 WebKit의 테스트에 따르면 Speedometer 및 ARES-6 벤치마크에서는 측정 가능한 성능 영향이 없었으며, JetStream 벤치마크에서는 성능에 미치는 영향이 2.5% 미만인 것으로 확인되었다 [4]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Spectre and Meltdown]], [[Pointer Poisoning]], [[Branchless Security Checks]] +- **Projects/Contexts:** [[WebKit]], [[Micro-latency Measurement in Web Graphics Pipelines]] +- **Contradictions/Notes:** 소스 [5]에서는 Index Masking 기술이 그래픽 실행의 크리티컬 패스에 명령어를 추가하여 마이크로 지연 시간을 증가시킨다고 설명하지만, 소스 [4]의 벤치마크 결과에 따르면 실제 환경의 주요 성능 테스트(Speedometer 등)에서는 그 영향이 측정되지 않거나 2.5% 미만으로 매우 미미하다고 보고합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Index Masking.md]] +--- diff --git a/Programming & Language/Industry 40_Smart Manufacturing.md b/Programming & Language/Industry 40_Smart Manufacturing.md new file mode 100644 index 00000000..b98cc7a7 --- /dev/null +++ b/Programming & Language/Industry 40_Smart Manufacturing.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-84B460 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Industry 40_Smart Manufacturing" +--- + +# [[Industry 40_Smart Manufacturing]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Industry 4.0_Smart Manufacturing.md]] +--- diff --git a/Programming & Language/InstancedMesh Performance Bottlenecks.md b/Programming & Language/InstancedMesh Performance Bottlenecks.md new file mode 100644 index 00000000..e33ecf6e --- /dev/null +++ b/Programming & Language/InstancedMesh Performance Bottlenecks.md @@ -0,0 +1,46 @@ +--- +id: P-REINFORCE-AUTO-F035BF +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - InstancedMesh Performance Bottlenecks" +--- + +# [[InstancedMesh Performance Bottlenecks]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +* **시야 절두체 컬링(Frustum Culling)의 비효율성** + `InstancedMesh`는 단일 바운딩 볼륨(Bounding Volume)을 기준으로 렌더링 여부를 결정하므로, **화면에 단 하나의 인스턴스만 보여도 GPU는 보이지 않는 나머지 수만 개 인스턴스의 정점 변환 연산을 강제로 수행**해야 합니다 [1, 2]. 이를 해결하기 위해 CPU(자바스크립트)에서 매 프레임 개별 인스턴스의 가시성을 수학적으로 판별하여 버퍼를 재구성할 수 있지만, 이 경우 막대한 CPU 연산 비용과 병목이 발생하여 본래의 최적화 취지를 훼손합니다 [3, 4]. + +* **자동 깊이 정렬(Sorting) 부재 및 오버드로우(Overdraw)** + 인스턴스들은 인스턴스 버퍼에 기록된 순서대로만 그려지며, 거리에 따른 자동 정렬을 지원하지 않습니다 [5, 6]. 이로 인해 불투명 객체의 경우 뒤에 가려진 픽셀을 반복해서 계산하는 **오버드로우가 발생하여 프래그먼트 셰이더(Fragment Shader) 성능을 심각하게 저하시킵니다** [5-7]. 특히 투명 객체는 알파 블렌딩 오류를 막기 위해 '뒤에서 앞으로(Back-to-Front)' 정렬해야 하는데, 동적 씬에서 이를 위해 CPU 기반의 재정렬(예: Radix Sort)을 매 프레임 수행하면 메인 스레드에 치명적인 부하가 걸립니다 [8]. + +* **메모리 대역폭 및 동적 업데이트 한계** + 매 프레임 위치나 색상이 바뀌는 동적 씬에서는 수많은 인스턴스의 $4 \times 4$ 변환 행렬 데이터를 매번 CPU에서 GPU로 전송해야 합니다. 예컨대 200만 개의 인스턴스 변환 시 초당 약 7.68GB/s의 대역폭을 점유하여 시스템 버스에 과부하를 일으킵니다 [9, 10]. 또한, 생성 및 삭제가 빈번해 버퍼 크기를 동적으로 재할당해야 할 경우, 가비지 컬렉터(GC)가 작동하면서 프레임이 일시적으로 멈추는 지연 현상(Stuttering)을 유발합니다 [11]. + +* **지오메트리 및 텍스처 다양성 확보의 어려움** + 하나의 `InstancedMesh`는 오직 하나의 `BufferGeometry`와 `Material`만 사용할 수 있으므로, 모델 종류가 많아지면 결국 드로우 콜이 기하급수적으로 증가합니다 [12-14]. 여러 인스턴스에 각기 다른 텍스처를 입히기 위해 텍스처 아틀라스(Texture Atlas)를 사용할 경우, 밉맵(Mipmap) 생성 시 인접 텍스처 간에 색이 섞이는 경계선 블리딩(Edge Bleeding) 문제가 발생하며 셰이더 구성이 매우 복잡해집니다 [15-17]. + +* **피킹(Picking) 및 상호작용(Raycasting) 지연** + `InstancedMesh`에 대한 CPU 레이캐스팅은 광선(Ray)이 각 인스턴스의 변환 행렬을 개별적으로 역산해야 하므로 상호작용 시 즉각적인 반응을 어렵게 합니다 [18, 19]. 셰이더에서 애니메이션(예: 바람, 물리 연산)을 적용했다면 CPU는 실제 위치를 추적할 수 없어 피킹이 어긋나며, 대안으로 GPU 픽셀 피킹을 사용하더라도 `readPixels` 함수 호출 시 GPU 파이프라인 동기화 지연(Sync stall)으로 인해 프레임 저하가 일어납니다 [18, 20]. + +* **스킨드 애니메이션(Skinned Mesh) 연동 불가** + 기본적으로 본(Bone) 기반의 스킨드 애니메이션을 지원하지 않습니다 [21, 22]. 수많은 인스턴스에 개별적인 포즈를 적용하려면 각 인스턴스별 본 행렬 데이터를 텍스처 등을 통해 전부 GPU로 전송해야 하며, 데이터의 폭발적 증가로 인해 일반적인 버퍼 제한을 초과하게 되는 물리적 한계에 부딪힙니다 [21]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Frustum Culling]], [[Overdraw]], [[Draw Call]], [[BatchedMesh]], [[Texture Atlas]] +- **Projects/Contexts:** [[InstancedMesh2 library]], [[Three.js WebGPU Renderer]], [[WebGL multi_draw extension]] +- **Contradictions/Notes:** 많은 렌더링 상황에서 `InstancedMesh`가 만능 최적화 기법으로 여겨지지만, 실제 벤치마크 사례에서는 드로우 콜을 1회로 줄였음에도 불구하고 오버드로우 및 GPU 프래그먼트 병목 때문에 개별 메쉬나 `BatchedMesh` 방식보다 오히려 렌더링 시간(Frame Time)이 느려지거나 성능이 저하되는 모순적인 결과가 발생하기도 합니다 [5, 6, 23]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/InstancedMesh Performance Bottlenecks.md]] +--- diff --git a/Programming & Language/InstancedMesh 동적 버퍼 확장.md b/Programming & Language/InstancedMesh 동적 버퍼 확장.md new file mode 100644 index 00000000..0f612aa5 --- /dev/null +++ b/Programming & Language/InstancedMesh 동적 버퍼 확장.md @@ -0,0 +1,37 @@ +--- +id: P-REINFORCE-AUTO-D6CCE0 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - InstancedMesh 동적 버퍼 확장" +--- + +# [[InstancedMesh 동적 버퍼 확장]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> InstancedMesh 동적 버퍼 확장은 렌더링 중 인스턴스 수가 초기 할당된 용량(Capacity)을 초과할 때, 시스템이 새로운 더 큰 버퍼를 할당하고 기존 데이터를 복사하는 과정을 의미한다 [1]. 이 과정에서 수십 메가바이트 크기의 배열이 빈번하게 생성되고 파괴되어 가비지 컬렉션(GC)을 유발하며, 이는 프레임 지연(스터터링)이나 메모리 할당 오류로 이어진다 [1, 2]. 결과적으로 이러한 성능 병목을 피하기 위해 개발자들은 런타임 확장을 피하고, 최대 예상 인스턴스 수에 맞춘 버퍼 사전 할당이나 객체 풀링 전략을 권장하고 있다 [1, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **동적 버퍼 확장의 발생 원리** + InstancedMesh는 객체 수가 동적으로 변하는 환경(예: 적들이 수시로 생성되거나 파괴되는 상황)에서 초기 용량을 넘어서면 새로운 버퍼를 동적으로 확장해야 한다 [1]. 이때 기존 데이터를 새롭고 더 큰 버퍼로 복사하는 작업이 필연적으로 수반된다 [1]. + +- **성능 저하 및 메모리 문제** + 동적 버퍼 확장은 메모리 할당 빈도가 매우 잦아 CPU 부하를 극도로 높이며, 데이터 전송 효율을 떨어뜨린다 [1]. 구형 `TypedArray` 데이터가 메모리에서 빈번하게 해제되는 과정에서 자바스크립트 가비지 컬렉터(GC)가 작동하여 프레임이 일시적으로 멈추는 현상(Stuttering)이 발생한다 [1]. A-Frame 기반 구현 등 일부 환경에서는 용량 증가 시 이전 InstancedMesh를 깔끔하게 해제(dispose)하지 못해 작은 메모리 누수(Memory Leak)가 발생할 우려도 존재한다 [4]. Needle Engine 환경에서도 버퍼가 동적으로 확장될 때 "[Instancing] Growing Buffer"라는 로그와 함께 렌더링이 일시적으로 수 초간 멈추는 성능 병목이 관찰되었다 [2]. + +- **최적화 및 대안 전략** + 이러한 성능 하락을 방지하려면 런타임에 동적으로 버퍼를 확장하는 대신, 앱 시작 시점이나 로드 시 최대 예상 인스턴스 수에 맞춰 충분한 크기의 버퍼를 미리 할당(Preallocate)하는 방식이 권장된다 [3, 5]. 또한, 대규모 프로젝트에서는 예측 불가능한 버퍼 확장을 막기 위해 사전에 엄격한 메모리 예산을 수립해야 한다 [1]. 메모리 할당 및 해제의 오버헤드를 최소화하기 위해 한 번 생성된 인스턴스 데이터를 재사용하는 객체 풀링(Object Pooling)이나 링 버퍼(Ring Buffer) 구조를 채택하는 것이 효율적이다 [1]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[InstancedMesh]], [[가비지 컬렉션 (Garbage Collection)]], [[객체 풀링 (Object Pooling)]], [[버퍼 사전 할당 (Buffer Preallocation)]] +- **Projects/Contexts:** [[Needle Engine]], [[A-Frame (instanced-mesh 컴포넌트)]], [[실시간 웹 그래픽스 최적화]] +- **Contradictions/Notes:** 예측 불가능한 다량의 객체를 렌더링하려면 동적 확장이 필수적인 기능처럼 보이나, 실제 렌더링 환경에서는 이 과정이 프레임 드랍과 메모리 누수 위험 등 높은 리스크를 수반하므로 오히려 고정 용량 할당이나 풀링을 통해 원천적으로 확장을 회피하는 것이 강력히 권장된다 [1, 3, 4]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/InstancedMesh 동적 버퍼 확장.md]] +--- diff --git a/Programming & Language/InstancedMesh 사용 시 드로우 콜 최적화의 한계점 사례 연구.md b/Programming & Language/InstancedMesh 사용 시 드로우 콜 최적화의 한계점 사례 연구.md new file mode 100644 index 00000000..c8d36b10 --- /dev/null +++ b/Programming & Language/InstancedMesh 사용 시 드로우 콜 최적화의 한계점 사례 연구.md @@ -0,0 +1,46 @@ +--- +id: P-REINFORCE-AUTO-88CEC2 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - InstancedMesh 사용 시 드로우 콜 최적화의 한계점 사례 연구" +--- + +# [[InstancedMesh 사용 시 드로우 콜 최적화의 한계점 사례 연구]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> InstancedMesh는 단일 드로우 콜(Draw Call)로 동일한 기하학적 구조와 재질을 가진 수많은 객체를 렌더링하여 CPU 오버헤드를 획기적으로 줄이는 최적화 기술입니다 [1, 2]. 그러나 실무 환경에서는 지오메트리 단일성 제약, 시야 절두체 컬링(Frustum Culling)의 비효율성, 오버드로우(Overdraw), 동적 데이터 갱신 시의 메모리 대역폭 포화 등 여러 구조적 한계를 드러냅니다 [3-7]. 본 사례 연구는 이러한 한계들로 인해 드로우 콜 횟수의 감소가 반드시 전반적인 렌더링 프레임 레이트(FPS) 상승으로 이어지지는 않음을 실증적으로 분석합니다 [3]. + +## 📖 구조화된 지식 (Synthesized Content) +* **드로우 콜 최적화 원리와 맹점** + InstancedMesh는 GPU 메모리에 단일 정점 버퍼를 업로드하고 개별 인스턴스의 변환 행렬만을 속성으로 관리하여 한 번의 명령으로 수천 개의 객체를 병렬 복제합니다 [1, 2]. 하지만 **모든 인스턴스가 반드시 동일한 기하학적 데이터(BufferGeometry)와 재질(Material)을 공유해야 하므로 자산의 다양성을 확보하기 어렵습니다** [4]. 개별 인스턴스에 다른 텍스처를 적용하기 위해 텍스처 아틀라스(Texture Atlas)를 사용하면 경계선 블리딩(Edge Bleeding)이 발생할 수 있으며, 텍스처 배열(Texture Array)은 해상도 제약을 수반해 셰이더 복잡도를 높입니다 [8]. + +* **시야 절두체 컬링(Frustum Culling)의 비효율성** + InstancedMesh의 컬링은 전체 인스턴스를 포함하는 거대한 바운딩 볼륨을 기준으로 단 한 번만 수행되는 '전부 아니면 전무' 방식으로 작동합니다 [5]. 이로 인해 **단 하나의 객체만 시야에 있어도 화면 밖의 수많은 객체에 대한 정점 변환 연산이 강제되어 GPU를 크게 낭비합니다** [5]. 이를 피하고자 자바스크립트 수준에서 CPU 기반의 수동 개별 컬링을 구현하면 대규모 배열 조작으로 인해 메인 스레드에 극심한 병목이 유발됩니다 [9]. + +* **오버드로우(Overdraw)와 렌더링 정렬의 부재** + InstancedMesh는 버퍼에 저장된 순서대로만 렌더링되며, 불투명 객체의 조기 깊이 판정(Early-Z)을 위한 '앞에서 뒤로' 자동 정렬 기능이 없습니다 [6]. **드로우 콜이 1회로 최적화되었음에도 불구하고, 무작위 정렬로 인한 막대한 오버드로우 비용 때문에 GPU 프래그먼트 병목이 발생하여 오히려 일반 메쉬 방식보다 FPS가 떨어질 수 있습니다** [6]. 투명/반투명 객체는 '뒤에서 앞으로' 렌더링되어야 시각적 오류가 없으나 동적인 순서 변경이 지원되지 않으며, 강제로 재정렬(Radix Sort 등)을 수행하면 CPU에 치명적인 부하를 줍니다 [10]. + +* **메모리 대역폭 임계점과 데이터 전송 병목** + 각 인스턴스의 위치 및 회전 정보는 64바이트의 부동 소수점 행렬로 구성됩니다 [7]. **대규모 씬(예: 200만 개 인스턴스)에서 매 프레임 객체들이 동적으로 움직여 버퍼를 갱신해야 할 경우, 수 GB/s 단위의 막대한 데이터가 CPU에서 GPU로 이동해야 하므로 PCIe 대역폭을 포화시킵니다** [7]. 또한 할당된 버퍼 용량을 초과해 새 버퍼를 동적 할당할 때는 가비지 컬렉션(GC)이 작동해 순간적인 프레임 스터터링(Stuttering)을 유발합니다 [11]. + +* **상호작용(Picking) 및 애니메이션 연동의 한계** + 대규모 인스턴스에 대해 사용자가 객체를 선택하는 **CPU 기반 피킹(Raycasting)을 시도하면 수만 번의 행렬 역산이 발생하여 즉각적인 반응성이 저해됩니다** [12]. GPU 픽셀 기반 피킹은 파이프라인 동기화 지연(Sync stall)과 오클루전(Occlusion) 한계가 있습니다 [13]. 또한 본(Bone) 행렬 기반의 **스킨드 메쉬(Skinned Mesh) 애니메이션을 기본 지원하지 않아**, 인스턴스마다 고유한 본 행렬을 전달하려 하면 버퍼 크기 제한을 초과하게 됩니다 [14]. + +* **대안 기술 및 최적화 전략** + InstancedMesh의 한계를 보완하기 위해 서로 다른 기하학적 구조를 수용하고 개별 컬링/가시성 제어가 가능한 **`BatchedMesh`**가 활용되고 있으나, 이 역시 지나치게 많은 삼각형을 처리할 때는 버퍼 패킹 오버헤드가 발생합니다 [15]. 궁극적으로는 **WebGPU의 컴퓨트 셰이더(Compute Shader)를 도입하여 가시성 판별과 오클루전 처리를 GPU 내부에서 해결하는 GPU 주도 렌더링(Indirect Draw) 방식**이 강력한 대안으로 부상하고 있습니다 [16, 17]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Frustum Culling]], [[Overdraw]], [[BatchedMesh]], [[WebGPU Compute Shader]], [[Texture Atlas]], [[Garbage Collection (GC)]] +- **Projects/Contexts:** [[대규모 웹 그래픽스 프로젝트]], [[CAD 렌더링 최적화]], [[BIM 모델 렌더링]] +- **Contradictions/Notes:** 소스에 따르면 InstancedMesh 기술은 드로우 콜을 획기적으로 줄여 CPU 부담을 최소화하지만, 자체적인 정렬 부재와 컬링의 한계로 인해 조명 연산이 복잡한 환경에서는 오버드로우를 유발하여 결과적으로 GPU 픽셀 처리 성능을 상회하게 만들어 전체 FPS를 하락시킬 수 있다는 모순된 현상이 발생함을 강력히 지적합니다 [6]. 또한 대안으로 제시되는 BatchedMesh 역시 드로우 콜을 줄일 수는 있으나, 극한의 대규모 삼각형 렌더링 시에는 버퍼 패킹 비용이 오히려 일반 메쉬 렌더링보다 낮은 성능을 보이는 병목 사례가 보고됩니다 [15]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/InstancedMesh 사용 시 드로우 콜 최적화의 한계점 사례 연구.md]] +--- diff --git a/Programming & Language/InstancedMesh 최적화.md b/Programming & Language/InstancedMesh 최적화.md new file mode 100644 index 00000000..4801fb47 --- /dev/null +++ b/Programming & Language/InstancedMesh 최적화.md @@ -0,0 +1,46 @@ +--- +id: P-REINFORCE-AUTO-7D070F +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - InstancedMesh 최적화" +--- + +# [[InstancedMesh 최적화]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> [[InstancedMesh 최적화]]는 동일한 기하학적 구조(Geometry)와 재질(Material)을 가진 수많은 객체를 단 한 번의 드로우 콜(Draw Call)로 GPU에 전달하여 렌더링 성능을 극대화하는 기법입니다 [1], [2]. 수천, 수만 개의 반복적인 객체(나무, 풀, 파티클 등)를 렌더링할 때 CPU의 명령 발행 오버헤드를 대폭 줄이고 메모리 사용량을 최소화할 수 있습니다 [3], [4], [5]. 그러나 전체 인스턴스에 대한 전역적 시야 절두체 컬링, 개별 객체의 깊이 정렬 부재로 인한 오버드로우 등 구조적 한계가 존재하므로, 프로젝트의 특성과 병목 구간에 맞춘 전략적인 도입이 필요합니다 [6], [7]. + +## 📖 구조화된 지식 (Synthesized Content) +* **드로우 콜 및 메모리 최적화 원리** + * InstancedMesh는 GPU 메모리에 단 하나의 정점 버퍼만 업로드하고, 각 인스턴스에 고유하게 적용될 변환 행렬(위치, 회전, 축척) 및 색상 정보를 별도의 인스턴스 속성(Instance Attribute)으로 관리합니다 [2]. + * 이 기술을 사용하면 일반 메쉬로 수천 번 호출해야 할 드로우 콜을 1회로 줄일 수 있어, CPU 병목 현상을 해소하고 시스템 메모리 및 VRAM을 획기적으로 절약할 수 있습니다 [8], [1], [9]. + * 개별 인스턴스의 변환 행렬이나 색상을 변경(`setMatrixAt`, `setColorAt`)한 후에는 반드시 `needsUpdate` 속성을 `true`로 설정해야 렌더링 파이프라인에 반영됩니다 [10], [11]. 동적으로 인스턴스가 이동한 경우, 정확한 레이캐스팅(Picking) 및 컬링을 위해 `computeBoundingSphere()`와 `computeBoundingBox()`를 호출하여 바운딩 볼륨을 갱신해야 합니다 [12], [13], [14]. + +* **구조적 한계 및 성능 병목 요인** + * **컬링(Culling)의 비효율성:** InstancedMesh는 엔진 수준에서 단일 객체로 취급되므로, 개별 인스턴스 단위가 아닌 전체를 아우르는 거대한 바운딩 볼륨을 기준으로 단 한 번의 시야 절두체 컬링(Frustum Culling)을 수행합니다 [15]. 이로 인해 시야 밖의 수많은 객체에 대해서도 불필요한 GPU 정점 연산이 강제될 수 있습니다 [15], [16]. + * **정렬 부재와 오버드로우(Overdraw):** 카메라 거리에 따른 자동 정렬 기능을 제공하지 않기 때문에, 뒤에 가려진 픽셀 연산을 조기에 종료(Early-Z)하지 못해 오버드로우가 발생합니다 [17], [18]. 특히 투명/반투명 객체 렌더링 시에는 깊이 정렬이 뒤섞여 시각적 오류를 초래합니다 [19]. + * **메모리 대역폭 한계:** 애니메이션 등으로 매 프레임 수백만 개의 인스턴스 변환 행렬(인스턴스당 64바이트)을 갱신해야 할 경우, 데이터 전송량이 시스템 버스 대역폭을 포화시켜 프레임 지연(Stuttering)을 유발할 수 있습니다 [20], [21]. + * **다양성 표현의 제약:** 단일 지오메트리와 단일 재질만 참조할 수 있어 다양한 에셋을 표현하기 어렵습니다 [22]. 개별 인스턴스에 서로 다른 텍스처를 적용하려면 [[Texture Atlas]]나 [[데이터 배열 텍스처(Data Array Textures)]]를 활용하고 UV 오프셋을 조정하는 추가적인 셰이더 조작이 강제됩니다 [23], [24], [25]. + +* **한계 극복을 위한 개선 및 대안 전략** + * **공간 분할 기반 그룹화:** 모든 객체를 하나의 거대한 InstancedMesh로 묶기보다는, 공간적으로 인접한 객체끼리 소규모(100~500개)로 분할하여 관리하면 절두체 컬링의 정밀도를 높여 GPU 연산 낭비를 줄일 수 있습니다 [7]. + * **InstancedMesh2 및 BatchedMesh 활용:** 단일 지오메트리 제약이 문제가 된다면, 서로 다른 지오메트리를 하나의 드로우 콜로 묶어주는 [[BatchedMesh]] 사용이 권장됩니다 [26], [27]. 또한, 커뮤니티 생태계의 `InstancedMesh2` 라이브러리를 활용하면 개별 인스턴스의 프러스텀 컬링, 정렬, [[Level of Detail (LOD)]], BVH 기반의 빠른 레이캐스팅, 스킨드 애니메이션 최적화 등의 기능을 확장 적용할 수 있습니다 [28], [29], [30]. + * **WebGPU 컴퓨트 셰이더 도입:** WebGPU 환경에서는 GPU가 직접 가시성 판단과 컬링을 처리하여 CPU와 GPU 간의 통신 비용을 "0"에 수렴하게 하는 간접 그리기(Indirect Draw) 방식이 차세대 대안으로 떠오르고 있습니다 [31]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Draw Call]], [[Frustum Culling]], [[BatchedMesh]], [[Texture Atlas]], [[Level of Detail (LOD)]], [[Overdraw]] +- **Projects/Contexts:** [[Three.js]], [[WebGL/WebGPU Rendering]], [[Babylon.js]], [[Unity GPU Instancing]] +- **Contradictions/Notes:** + * "InstancedMesh를 사용하면 항상 성능이 향상된다고 가정하기 쉽지만, 소스는 매우 단순한 기하학(예: 단일 삼각형)의 경우 인스턴싱 변환 행렬 데이터를 처리하는 오버헤드가 더 커서 단순히 지오메트리를 병합(Merging)하는 방식이 오히려 프레임 레이트 측면에서 유리할 수 있다고 주장합니다 [32], [33]." + * "드로우 콜 수가 극적으로 감소함에도 불구하고, 5,000개 수준의 객체 환경에서는 인스턴스 정렬 부재로 인한 오버드로우 비용이 CPU 이득을 상회하여 일반 메쉬 렌더링보다 낮은 FPS를 기록할 수 있다고 경고합니다 [18]." + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/InstancedMesh 최적화.md]] +--- diff --git a/Programming & Language/InstancedMesh.md b/Programming & Language/InstancedMesh.md new file mode 100644 index 00000000..72802184 --- /dev/null +++ b/Programming & Language/InstancedMesh.md @@ -0,0 +1,38 @@ +--- +id: P-REINFORCE-AUTO-354B99 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - InstancedMesh" +--- + +# [[InstancedMesh]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> InstancedMesh는 동일한 기하학적 구조(Geometry)와 재질(Material)을 공유하는 수많은 객체를 단 한 번의 드로우 콜(Draw call)로 렌더링할 수 있게 해주는 특수 메쉬이다 [1, 2]. 각 인스턴스는 고유한 변환 행렬(위치, 회전, 축척)과 색상을 가질 수 있으며, 이를 통해 CPU 오버헤드를 획기적으로 줄이고 렌더링 성능을 향상시킨다 [2-4]. 나무, 풀, 바위와 같이 형태가 동일한 대규모 객체 군집을 렌더링할 때 주로 사용되며, 메모리 소비도 최소화할 수 있는 강력한 최적화 도구이다 [5-7]. + +## 📖 구조화된 지식 (Synthesized Content) +* **작동 원리 및 성능 이점:** + InstancedMesh는 GPU 메모리에 단 하나의 정점 버퍼(Vertex Buffer)를 업로드하고, 각 인스턴스마다 적용될 변환 행렬(Transformation Matrix)을 `instanceMatrix` 속성으로 전달하여 렌더링을 수행한다 [3, 8]. 이 방식을 사용하면 수많은 객체를 개별적으로 그릴 때 발생하는 엄청난 횟수의 드로우 콜을 단 1회로 묶을 수 있어, CPU 병목 현상과 CPU-GPU 간 통신 오버헤드를 크게 해소한다 [1, 5, 9]. 기하학적 데이터를 복제하지 않고 공유하므로 메모리 효율성 역시 매우 뛰어나다 [6, 9]. +* **구조적 한계 및 병목 현상:** + * **지오메트리 및 재질의 단일성 제약:** 모든 인스턴스가 반드시 동일한 BufferGeometry와 Material을 공유해야 한다 [10, 11]. 여러 종류의 지오메트리를 렌더링해야 한다면 다수의 InstancedMesh를 생성하거나, 서로 다른 지오메트리를 묶을 수 있는 BatchedMesh를 사용해야 한다 [11-13]. + * **시야 절두체 컬링(Frustum Culling) 비효율성:** 기본적으로 엔진 수준에서 InstancedMesh 전체를 하나의 거대한 단일 객체(바운딩 볼륨)로 취급하기 때문에, 인스턴스 개별 단위의 시야 절두체 컬링이 작동하지 않는다 [14, 15]. 따라서 단 하나의 인스턴스만 시야에 있어도 화면 밖의 모든 인스턴스에 대한 정점 연산을 GPU가 강제로 수행해야 하는 낭비가 발생한다 [15, 16]. + * **오버드로우(Overdraw) 및 정렬 부재:** 인스턴스들은 버퍼에 저장된 순서대로 렌더링되며 카메라와의 거리에 따른 자동 깊이 정렬을 지원하지 않는다 [17, 18]. 이로 인해 투명한 객체 렌더링 시 알파 블렌딩 오류가 발생하거나, 불투명 객체의 심각한 오버드로우를 유발해 프래그먼트 셰이더 연산 부하가 급증할 수 있다 [17, 19-21]. + * **상호작용 및 애니메이션 난제:** 개별 객체에 대한 레이캐스팅(Raycasting) 시 CPU가 각 인스턴스의 변환 행렬을 개별 계산해야 하므로 대규모 씬에서는 동기화 병목이 발생할 수 있다 [22]. 또한 본(Bone) 기반의 스킨드 애니메이션(Skinned Mesh)을 기본적으로 지원하지 않아 군중 애니메이션 등을 구현하려면 복잡한 커스텀 파이프라인이 요구된다 [23]. +* **활용 및 제어:** + 개별 인스턴스의 속성은 `setMatrixAt`, `setColorAt` 등의 메서드를 통해 제어하며, 값을 변경한 후에는 반드시 해당 속성(`instanceMatrix`, `instanceColor` 등)의 `needsUpdate` 플래그를 `true`로 설정해야 렌더링에 반영된다 [24]. 위에서 언급한 개별 컬링이나 정렬 문제를 극복하기 위해 `InstancedMesh2` 같은 확장 라이브러리를 사용하거나 BVH(Bounding Volume Hierarchy)를 통한 공간 분할 기법을 도입하기도 한다 [25-27]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Draw Call]], [[BatchedMesh]], [[Frustum Culling]], [[BufferGeometry]], [[Overdraw]] +- **Projects/Contexts:** [[Three.js]], [[WebGL]], [[InstancedMesh2]] +- **Contradictions/Notes:** InstancedMesh는 드로우 콜 횟수를 줄여 전반적인 성능을 높이기 위해 사용되지만, 자동 정렬의 부재 및 개별 인스턴스 컬링 불가 문제로 인해 극심한 오버드로우가 발생할 경우, 일반적인 Mesh(공유 속성 활용)를 사용할 때보다 오히려 프레임 레이트(FPS)가 급격히 저하되는 역설적인 병목 현상이 발생할 수 있다고 여러 소스에서 경고한다 [15, 17, 28, 29]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/InstancedMesh.md]] +--- diff --git a/Programming & Language/Integrated Gradients (통합 그래디언트).md b/Programming & Language/Integrated Gradients (통합 그래디언트).md new file mode 100644 index 00000000..e05bc8ae --- /dev/null +++ b/Programming & Language/Integrated Gradients (통합 그래디언트).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-904FDF +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Integrated Gradients (통합 그래디언트)" +--- + +# [[Integrated Gradients (통합 그래디언트)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Integrated Gradients (통합 그래디언트).md]] +--- diff --git a/Programming & Language/Interactive Fiction (IF).md b/Programming & Language/Interactive Fiction (IF).md new file mode 100644 index 00000000..4bc23701 --- /dev/null +++ b/Programming & Language/Interactive Fiction (IF).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-F4E42B +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Interactive Fiction (IF)" +--- + +# [[Interactive Fiction (IF)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Interactive Fiction (IF).md]] +--- diff --git a/Programming & Language/Interactive Narrative.md b/Programming & Language/Interactive Narrative.md new file mode 100644 index 00000000..edf66d25 --- /dev/null +++ b/Programming & Language/Interactive Narrative.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-270B9D +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Interactive Narrative" +--- + +# [[Interactive Narrative]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Interactive Narrative.md]] +--- diff --git a/Programming & Language/Interactive-Fiction-Tradition.md b/Programming & Language/Interactive-Fiction-Tradition.md new file mode 100644 index 00000000..229e1743 --- /dev/null +++ b/Programming & Language/Interactive-Fiction-Tradition.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-FEC397 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Interactive-Fiction-Tradition" +--- + +# [[Interactive-Fiction-Tradition]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Interactive-Fiction-Tradition.md]] +--- diff --git a/Programming & Language/Interop 2025.md b/Programming & Language/Interop 2025.md new file mode 100644 index 00000000..c51f586d --- /dev/null +++ b/Programming & Language/Interop 2025.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-48DB08 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Interop 2025" +--- + +# [[Interop 2025]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Interop 2025는 주로 Chrome에 국한되어 있던 핵심 웹 지표(Core Web Vitals)를 다른 주요 웹 브라우저로 확대 지원하여 호환성을 높이기 위해 시작된 프로젝트입니다[1]. 이 프로젝트를 통해 Firefox와 Safari 같은 브라우저들이 특정 웹 성능 지표에 대한 지원 및 구현 작업을 본격적으로 시작하게 되었습니다[1]. 이를 통해 다양한 브라우저 환경에서 웹 성능을 일관되게 측정할 수 있는 기반이 마련되기 시작했습니다. + +## 📖 구조화된 지식 (Synthesized Content) +- **핵심 웹 지표(Core Web Vitals)의 크로스 브라우저 확장**: 기존의 핵심 웹 지표들은 대부분 Chrome 전용 측정 항목(Chrome-only metrics)으로 사용되고 있었으나, Interop 2025 프로젝트를 기점으로 이러한 한계가 변화하기 시작했습니다[1]. +- **주요 브라우저의 참여 및 지표 구현**: Interop 2025 프로젝트의 일환으로 Firefox와 Safari는 핵심 웹 지표 중 '최대 콘텐츠 풀 페인트(Largest Contentful Paint, LCP)'와 '다음 페인트에 대한 상호작용(Interaction to Next Paint, INP)'을 지원하기 위한 작업을 시작했습니다[1]. +- **누적 레이아웃 이동(CLS) 지원 보류**: 또 다른 주요 지표인 '누적 레이아웃 이동(Cumulative Layout Shift, CLS)'에 대한 지원은 Interop 2025 계획에 현재 포함되어 있지 않습니다[1]. 다만, 이를 후속 프로젝트인 Interop 2026에 포함하려는 제안이 존재합니다[1]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Core Web Vitals]], [[Largest Contentful Paint]], [[Interaction to Next Paint]], [[Cumulative Layout Shift]] +- **Projects/Contexts:** [[Interop 2026]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. (특별한 모순이나 상충하는 의견은 발견되지 않음) + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Interop 2025.md]] +--- diff --git a/Programming & Language/Intrinsic-Motivation.md b/Programming & Language/Intrinsic-Motivation.md new file mode 100644 index 00000000..5b33f6c7 --- /dev/null +++ b/Programming & Language/Intrinsic-Motivation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-8559CD +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Intrinsic-Motivation" +--- + +# [[Intrinsic-Motivation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Intrinsic-Motivation.md]] +--- diff --git a/Programming & Language/Inventory Management Example.md b/Programming & Language/Inventory Management Example.md new file mode 100644 index 00000000..62ab4e05 --- /dev/null +++ b/Programming & Language/Inventory Management Example.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-9C355C +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Inventory Management Example" +--- + +# [[Inventory Management Example]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 이 주제는 프론트엔드 모델과 백엔드 응답 간의 데이터 변환 시 발생할 수 있는 타입 불일치 문제를 보여주는 실제 사례입니다. 인벤토리 관리 시스템에서 백엔드의 데이터 형식과 프론트엔드의 정의된 타입 구조가 다를 때 발생할 수 있는 매핑 오류의 위험성을 다룹니다. TypeScript의 `satisfies` 키워드를 사용하여 엄격한 속성 검사를 강제함으로써 오타나 원치 않는 초과 필드의 포함을 방지하는 방법을 설명합니다. + +## 📖 구조화된 지식 (Synthesized Content) +- **데이터 구조의 차이**: 인벤토리 관리 시스템에서 프론트엔드는 `id`, `name`, `quantity` 속성을 가진 `InventoryItem` 타입을 정의하여 사용합니다 [1, 2]. 그러나 외부 백엔드에서 전달되는 데이터는 `qty`나 `lastUpdated`와 같이 프론트엔드 타입과 다른 형식으로 도착할 수 있습니다 [2]. +- **매핑 오류와 조용한 실패**: 백엔드 데이터를 프론트엔드 타입으로 매핑할 때, 속성 이름을 잘못 입력하거나(`quantity` 대신 `qty` 사용 등) 불필요한 필드를 포함하는 등의 오류가 쉽게 발생할 수 있습니다 [2]. 엄격한 검사가 없다면 TypeScript는 이러한 오타를 잡아내지 못할 수 있으며, 조용히 오류를 통과시킬 위험이 있습니다 [2]. +- **`satisfies` 키워드를 통한 엄격성 강제**: 데이터 매핑 함수 내에서 `satisfies` 키워드를 사용하면 엄격한 타입 계약을 강제할 수 있습니다 [3]. 이를 통해 대상 타입에 정의된 유효한 속성만 포함되도록 보장하며, 그렇지 않을 경우 발생할 수 있는 초과 속성 문제나 오타를 컴파일 단계에서 포착하여 방지할 수 있습니다 [3, 4]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[satisfies Keyword]], [[Excess Property Checking]], [[Type Casting]] +- **Projects/Contexts:** [[Frontend-Backend Data Transformation]] +- **Contradictions/Notes:** 소스는 데이터 변환 시 `as` 키워드를 사용한 타입 캐스팅에 의존하는 것을 경고합니다. 타입 캐스팅은 초과 속성 검사를 우회하여 조용한 오류(silent errors)와 의도치 않은 동작을 유발할 수 있으므로, 엄격한 계약을 강제하기 위해서는 `satisfies`를 사용하는 것이 더 안전합니다 [3, 4]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Inventory Management Example.md]] +--- diff --git a/Programming & Language/Isovist-Analysis.md b/Programming & Language/Isovist-Analysis.md new file mode 100644 index 00000000..f39d7da2 --- /dev/null +++ b/Programming & Language/Isovist-Analysis.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-4BC607 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Isovist-Analysis" +--- + +# [[Isovist-Analysis]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Isovist-Analysis.md]] +--- diff --git a/Programming & Language/JPEG XL.md b/Programming & Language/JPEG XL.md new file mode 100644 index 00000000..f5361b72 --- /dev/null +++ b/Programming & Language/JPEG XL.md @@ -0,0 +1,41 @@ +--- +id: P-REINFORCE-AUTO-EC8C7D +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - JPEG XL" +--- + +# [[JPEG XL]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> JPEG XL은 웹 페이지의 전체 용량을 줄이고 사용자 경험에 부정적인 영향 없이 웹사이트 속도를 높이기 위해 설계된 최신 이미지 포맷이다 [1, 2]. Apple이 2023년에 지원을 시작했고, Mozilla와 Google 등 주요 브라우저 벤더들도 도입에 긍정적인 방향으로 입장을 선회하면서 점차 지원이 확대될 가능성을 보이고 있다 [2, 3]. 기존 이미지 포맷에 비해 동일 품질 대비 더 작은 파일 크기, 빠른 인코딩, 점진적 디코딩 등의 우수한 기술적 이점을 제공한다 [4]. + +## 📖 구조화된 지식 (Synthesized Content) +* **주요 장점:** + 클라우디너리(Cloudinary)의 존 스나이어스(Jon Sneyers)에 따르면, JPEG XL은 기존 이미지 포맷과 비교하여 다음과 같은 뚜렷한 장점들을 제공한다 [4]. + * 동일한 품질에서 더 작은 파일 크기를 달성할 수 있다 [4]. + * 인코딩 속도가 빨라서 서버가 사전에 파일을 미리 생성해둘 필요가 없다 [4]. + * 점진적 이미지 디코딩(Progressive image decoding) 기능을 지원하여, 데이터가 일부만 다운로드된 상태에서도 이미지 미리보기가 가능하다 [4]. + * 시각적인 변화 없이 재압축이 가능하여 이미지 아티팩트(artifacts)가 점진적으로 축적되는 현상을 방지할 수 있다 [4]. + 이러한 이점 덕분에, 이미지 화질이 매우 중요한 패션 전자상거래(eCommerce) 웹사이트 등에서 기존의 WebP 대신 AVIF와 함께 최적화 포맷으로 사용하도록 권장되기도 한다 [5]. + +* **브라우저 지원 역사 및 현황:** + * **Google Chrome:** 구글은 2021년에 크롬에서 JPEG XL을 지원하기 위한 작업을 시작했으나, 2022년 10월에 생태계의 관심 부족과 유지보수의 부담을 이유로 관련 코드를 제거했다 [2]. 하지만 개발자들의 지속적인 관심이 이어지자, 2025년 11월에 크롬 지원에 반대하지 않는다고 발표했다 (다만, 실제 구현 및 유지보수에 투자할 구체적인 계획은 명시하지 않았다) [3]. + * **Apple Safari:** 다른 브라우저들이 도입을 미루는 동안, 애플은 2023년 9월에 JPEG XL 지원을 도입하며 선도적인 움직임을 보였다 [2]. + * **Mozilla Firefox:** 모질라는 초기에 저수준(low-level) 언어로 작성된 복잡한 새 코드가 가져올 수 있는 보안 위험성 때문에 지원을 꺼렸으나, 구글과 Rust 기반 디코더에 대해 논의한 후 2024년 9월에 긍정적인 방향으로 입장을 변경했다 [3]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[AVIF]], [[WebP]] +- **Projects/Contexts:** [[Web Performance]], [[Google Chrome Browser Support]] +- **Contradictions/Notes:** 구글은 2022년 10월에 "생태계의 관심 부족"을 이유로 JPEG XL 지원 코드를 제거했으나, 3년 뒤인 2025년 11월에는 "개발자들의 지속적인 관심"을 이유로 크롬 지원에 반대하지 않는다고 입장을 전환했다 [2, 3]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/JPEG XL.md]] +--- diff --git a/Programming & Language/Jacobian-Matrix-Analysis.md b/Programming & Language/Jacobian-Matrix-Analysis.md new file mode 100644 index 00000000..f8586d57 --- /dev/null +++ b/Programming & Language/Jacobian-Matrix-Analysis.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-BC322B +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Jacobian-Matrix-Analysis" +--- + +# [[Jacobian-Matrix-Analysis]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Jacobian-Matrix-Analysis.md]] +--- diff --git a/Programming & Language/JavaScript 메모리 관리(JavaScript Memory Management).md b/Programming & Language/JavaScript 메모리 관리(JavaScript Memory Management).md new file mode 100644 index 00000000..c645897b --- /dev/null +++ b/Programming & Language/JavaScript 메모리 관리(JavaScript Memory Management).md @@ -0,0 +1,48 @@ +--- +id: P-REINFORCE-AUTO-AABE4C +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - JavaScript 메모리 관리(JavaScript Memory Management)" +--- + +# [[JavaScript 메모리 관리(JavaScript Memory Management)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +**스택(Stack)과 힙(Heap) 메모리 구조** +* **스택(Stack):** 실행 중인 프로세스의 정적 데이터(메서드/함수 프레임, 원시 값, 힙 객체에 대한 포인터 등)를 저장하는 영역으로 LIFO 방식으로 관리됩니다 [2-4]. +* **힙(Heap):** 크기를 컴파일 타임에 결정할 수 없는 동적 데이터 및 객체가 저장되는 공간으로 가비지 컬렉터에 의해 직접 관리됩니다 [3, 10]. V8은 힙을 여러 공간(Space)으로 나눕니다. + +**힙의 세대별 구성 (Generational Layout)** +V8은 객체의 수명을 기준으로 힙을 효율적으로 관리합니다 [6, 7]. +* **New Space (Young Generation):** 작고 수명이 짧은 대부분의 새 객체가 할당되는 공간입니다 [6, 11-13]. 내부적으로 두 개의 반공간(To-Space와 From-Space)으로 나뉘어 관리됩니다 [14-16]. +* **Old Space (Old Generation):** New Space에서 일정한 가비지 컬렉션 주기(통상 2회)를 살아남은 객체들이 승격(Promote)되어 이동하는 큰 공간으로, 포인터 영역과 데이터 영역으로 더 나뉩니다 [6, 11, 13, 17, 18]. +* **기타 영역:** 크기가 제한을 초과하는 객체를 위한 Large Object Space, 실행 가능한 머신 코드가 저장되는 Code Space 등이 존재합니다 [11, 19]. + +**가비지 컬렉션(Garbage Collection) 메커니즘** +V8 엔진은 주로 두 가지 가비지 컬렉터를 사용하여 메모리를 회수합니다 [20]. +* **마이너 GC (Scavenger):** New Space에서 빈번하고 빠르게 동작합니다 [6, 14, 20]. Cheney의 알고리즘에 기반하여 활성 객체를 추적한 뒤 To-Space로 대피(Copy/Evacuate)시키고 기존 From-Space의 쓰레기를 일괄 비워 단편화를 해결합니다 [14, 15, 17]. +* **메이저 GC (Mark-Sweep-Compact):** Old Space 전체를 관리합니다 [6, 20, 21]. 스택과 전역 객체 같은 루트(Root)에서 출발해 포인터를 따라가며 살아있는 객체를 식별(Mark)하고, 도달할 수 없는 객체의 메모리를 회수(Sweep)한 뒤, 파편화를 줄이기 위해 필요시 객체들을 압축(Compact)합니다 [5, 8, 21-24]. +* **오리노코(Orinoco):** 최신 V8의 GC 프로젝트로 메인 스레드의 정지 시간(Stop-the-world)을 줄이기 위해 병렬(Parallel), 점진적(Incremental), 동시(Concurrent) 스레딩 방식을 도입하여 JS 실행과 GC 작업을 효율적으로 교차 수행합니다 [25-31]. + +**메모리 누수(Memory Leaks)와 최적화** +* 메모리 누수는 객체가 더 이상 프로그램에서 쓰이지 않음에도 GC 루트(전역 변수, 클로저, 이벤트 리스너, 잊혀진 타이머 등)에서 참조를 계속 유지하여 GC가 수거하지 못할 때 발생합니다 [32-37]. +* 해결 및 탐지 방법으로는 Chrome DevTools의 Heap Snapshot을 사용해 세 번의 스냅샷을 비교하는 기법, Allocation Timeline을 통한 힙 할당 추적, Node.js의 `--trace-gc` 플래그 및 `process.memoryUsage()`를 통한 메모리 상태 모니터링 등이 있습니다 [38-42]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Garbage Collection (가비지 컬렉션)]], [[V8 Engine (V8 엔진)]], [[Generational Hypothesis (세대 가설)]], [[Memory Leak (메모리 누수)]] +- **Projects/Contexts:** [[Chrome DevTools 메모리 분석]], [[Node.js 메모리 튜닝]] +- **Contradictions/Notes:** 가비지 컬렉션을 사용하는 언어는 메모리 관리의 복잡성을 크게 줄여주지만, 프로그래머가 메모리 제어권을 완전히 상실하게 된다는 단점이 있습니다 [1, 43]. 또한 GC 실행 시 불규칙한 일시 정지 현상이 발생해 대화형 시스템에 영향을 줄 수 있으며 [43], 64비트 플랫폼에서 V8 힙은 포인터 압축(Pointer Compression) 보안 기술로 인해 4GB의 크기 제한(V8 Memory Cage)을 갖는 특징이 있습니다 [44-46]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/JavaScript 메모리 관리(JavaScript Memory Management).md]] +--- diff --git a/Programming & Language/JavaScriptCore.md b/Programming & Language/JavaScriptCore.md new file mode 100644 index 00000000..924655f3 --- /dev/null +++ b/Programming & Language/JavaScriptCore.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-1AF373 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - JavaScriptCore" +--- + +# [[JavaScriptCore]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> JavaScriptCore는 WebKit의 JavaScript 엔진으로, 신뢰할 수 없는 JavaScript나 WebAssembly 코드를 실행할 때 호스트 프로세스의 메모리 유출을 방지하도록 설계된 안전한 언어 가상 머신(secure language virtual machine)입니다 [1, 2]. 최근 Spectre 공격으로 인해 기존의 분기(branch) 기반 보안 속성이 무력화되는 위협을 받았으며, 이를 방어하기 위한 구조적 보안 개선이 이루어지고 있습니다 [1, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **보안 목적과 구조:** JavaScriptCore는 기본적으로 사용자의 프로세스에 신뢰할 수 없는 코드를 로드하더라도, C나 Objective-C 바인딩 API를 통해 명시적으로 내보낸 데이터가 아닌 이상 프로세스의 메모리가 JavaScript 코드에 유출되지 않도록 보장해야 합니다 [2]. +- **Spectre 취약점으로 인한 영향:** Spectre 공격은 JavaScriptCore의 경계 검사(bounds checks)와 유형 검사(type checks)에 사용되는 분기(branches)를 제어하고 우회할 수 있게 만들었습니다 [1, 4]. 이로 인해 신뢰할 수 없는 JavaScript나 WebAssembly가 호스트 프로세스의 전체 주소 공간을 읽을 수 있는 이론적인 경로가 발생하여 JavaScriptCore의 보안 속성이 깨지게 되었습니다 [2]. +- **실행 및 취약점 노출 원리:** JavaScriptCore가 JavaScript의 속성 접근(property access) 등 보안에 민감한 언어 작업을 처리할 때, 코드는 최신 CPU의 분기 예측(branch prediction)과 추측 실행(speculative execution)을 통해 병렬로 실행됩니다 [5, 6]. 공격자는 이 추측 실행 과정에서 L1 캐시와 메인 메모리 간의 지연 시간(latency) 차이를 악용하여 데이터를 유출할 수 있습니다 [4, 7]. +- **보안 완화(Mitigation) 전략:** Spectre 위협에 대응하기 위해 JavaScriptCore는 기존의 분기 기반 보안 검사에서 벗어나 '분기 없는 보안 검사(branchless security checks)'를 도입하여 전환하고 있습니다 [3]. 대표적으로 객체 필드 접근 시 무작위 독성 값을 활용하는 '포인터 중독(Pointer poisoning)' 기법을 JavaScriptCore의 수많은 데이터 구조에 적용함으로써, 임의의 포인터 생성을 막고 원격 코드 실행에 악용되는 유형 혼동(type confusion)을 방어하고 있습니다 [8, 9]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[WebKit]], [[Spectre]], [[WebAssembly]], [[Speculative execution]], [[Pointer poisoning]] +- **Projects/Contexts:** [[WebKit's Spectre and Meltdown Mitigations]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/JavaScriptCore.md]] +--- diff --git a/Programming & Language/Joern.md b/Programming & Language/Joern.md new file mode 100644 index 00000000..fdce5bd7 --- /dev/null +++ b/Programming & Language/Joern.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-A0754B +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Joern" +--- + +# [[Joern]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Joern은 디컴파일된 소스 코드를 파싱(parse)하는 데 사용되는 도구입니다 [1]. 프로그램 바이너리의 작성자를 식별(Authorship Attribution)하기 위한 연구 과정에서 분석에 필요한 AST(추상 구문 트리) 기반의 특징을 추출하는 목적으로 활용되었습니다 [1]. 제공된 소스에는 이 외의 목적이나 기능 등 Joern에 대한 구체적인 관련 정보가 부족합니다. + +## 📖 구조화된 지식 (Synthesized Content) +소스에 관련 정보가 부족합니다. 제공된 문헌에서 제한적으로 확인 가능한 내용은 다음과 같습니다: + +* **바이너리 코드 분석을 위한 파싱**: 실행 파일(바이너리)의 작성자를 식별하기 위해 하이브리드 접근법을 사용한 Caliskan-Islam 등의 연구에서, 디컴파일된 소스 코드를 구문 분석하기 위해 Joern이 사용되었습니다 [1]. +* **AST 기반 특징 추출 지원**: 연구팀은 Joern을 통해 코드를 파싱한 뒤, 식별 모델 학습에 필요한 AST 기반의 특징(Feature)들(예: 노드 타입 유니그램 등)을 추출할 수 있었습니다 [1]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[AST(Abstract Syntax Tree)]], [[Authorship Attribution]] +- **Projects/Contexts:** [[Caliskan-Islam 등의 프로그램 바이너리 작성자 식별 연구]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. Joern 자체의 상세한 구조나 추가적인 기능에 대해서는 소스 내에 언급된 바가 없으며, 디컴파일된 코드를 파싱하는 도구로서 단 1회 언급되었습니다. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Joern.md]] +--- diff --git a/Programming & Language/Kinematics.md b/Programming & Language/Kinematics.md new file mode 100644 index 00000000..48a676db --- /dev/null +++ b/Programming & Language/Kinematics.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-CC099B +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Kinematics" +--- + +# [[Kinematics]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Kinematics.md]] +--- diff --git a/Programming & Language/L-Systems.md b/Programming & Language/L-Systems.md new file mode 100644 index 00000000..b36bfa16 --- /dev/null +++ b/Programming & Language/L-Systems.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-EBE0D0 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - L-Systems" +--- + +# [[L-Systems]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/L-Systems.md]] +--- diff --git a/Programming & Language/L-systems in Biology.md b/Programming & Language/L-systems in Biology.md new file mode 100644 index 00000000..db08aed1 --- /dev/null +++ b/Programming & Language/L-systems in Biology.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5DB108 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - L-systems in Biology" +--- + +# [[L-systems in Biology]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/L-systems in Biology.md]] +--- diff --git a/Programming & Language/Labeled Property Graph (LPG 속성 그래프).md b/Programming & Language/Labeled Property Graph (LPG 속성 그래프).md new file mode 100644 index 00000000..09da7ab3 --- /dev/null +++ b/Programming & Language/Labeled Property Graph (LPG 속성 그래프).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-84C8D8 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Labeled Property Graph (LPG 속성 그래프)" +--- + +# [[Labeled Property Graph (LPG 속성 그래프)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Labeled Property Graph (LPG, 속성 그래프).md]] +--- diff --git a/Programming & Language/Latiotech Report.md b/Programming & Language/Latiotech Report.md new file mode 100644 index 00000000..f4dd4589 --- /dev/null +++ b/Programming & Language/Latiotech Report.md @@ -0,0 +1,35 @@ +--- +id: P-REINFORCE-AUTO-B2FE12 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Latiotech Report" +--- + +# [[Latiotech Report]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +소스 데이터에는 'Latio.tech Report'의 전체 내용이 아닌 특정 솔루션과 관련된 단편적인 평가 결과만 포함되어 있습니다. 소스에서 확인 가능한 주요 내용은 다음과 같습니다: + +* **Corgea에 대한 평가:** Latio.tech Report는 Corgea를 시중에 나와 있는 자동 수정(auto-fixing) 도구 중 가장 뛰어난(best) 도구로 평가했습니다 [1]. +* **Snyk에 대한 평가:** Snyk의 자동 수정 기능에 대해서는 IDE 확장 프로그램 내에서 재검사(rescan)를 수행할 때만 수정 사항을 생성할 수 있다는 한계점을 지적했습니다 [2]. 보고서는 이러한 특징이 특정 워크플로우에서는 자동 수정 기능의 실용성을 제한한다고 분석했습니다 [2]. + +*소스에 관련 정보가 부족합니다.* + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Corgea]], [[Snyk Code]], [[Auto-fixing Tool]] +- **Projects/Contexts:** [[SAST Tools Evaluation]] +- **Contradictions/Notes:** 제공된 소스에는 'Latio.tech Report'가 Corgea와 Snyk를 평가한 내용 중 극히 일부만 언급되어 있으며, 평가 기준이나 다른 벤더에 대한 정보 등 전체적인 맥락을 파악하기에는 소스에 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Latio.tech Report.md]] +--- diff --git a/Programming & Language/Lighthouse.md b/Programming & Language/Lighthouse.md new file mode 100644 index 00000000..956567a5 --- /dev/null +++ b/Programming & Language/Lighthouse.md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-B44166 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Lighthouse" +--- + +# [[Lighthouse]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Lighthouse는 페이지 속도를 측정하고 성능 개선을 위한 권장 사항을 제공하는 구글의 무료 오픈소스 도구입니다 [1, 2]. 주로 Chrome DevTools 패널이나 명령줄에서 실행되며, PageSpeed Insights의 진단 기능을 구동하는 핵심 엔진으로 사용됩니다 [1, 2]. 또한, 이와 별개로 분산 시스템에서 네트워크 위치 지정(Network Positioning)의 확장성 문제를 해결하기 위해 고안된 동명의 연구 프로젝트인 'Lighthouses'도 존재합니다 [3, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[PageSpeed Insights]], [[Chrome DevTools]], [[Synthetic Testing]], [[Time to Interactive (TTI)]], [[Global Network Positioning (GNP)]] +- **Projects/Contexts:** [[Web Performance Optimization]], [[Network Coordinate Systems]] +- **Contradictions/Notes:** 구글 Lighthouse의 스로틀링 시뮬레이션은 프리로드된 리소스를 렌더링 차단 리소스로 잘못 분류하는 등 부정확한 점수를 도출하는 모순적 한계가 있으며, 현재 이를 실제 환경에 맞게 바로잡는 연구가 진행 중입니다 [8, 9]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Lighthouse.md]] +--- diff --git a/Programming & Language/Linked Open Data (LOD).md b/Programming & Language/Linked Open Data (LOD).md new file mode 100644 index 00000000..a5357874 --- /dev/null +++ b/Programming & Language/Linked Open Data (LOD).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-30BF26 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Linked Open Data (LOD)" +--- + +# [[Linked Open Data (LOD)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Linked Open Data (LOD).md]] +--- diff --git a/Programming & Language/Live Streaming Monetization.md b/Programming & Language/Live Streaming Monetization.md new file mode 100644 index 00000000..c4dcfb55 --- /dev/null +++ b/Programming & Language/Live Streaming Monetization.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-9CC93F +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Live Streaming Monetization" +--- + +# [[Live Streaming Monetization]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Live Streaming Monetization.md]] +--- diff --git a/Programming & Language/Logit Lens (로짓 렌즈).md b/Programming & Language/Logit Lens (로짓 렌즈).md new file mode 100644 index 00000000..2bce6260 --- /dev/null +++ b/Programming & Language/Logit Lens (로짓 렌즈).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-8DE413 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Logit Lens (로짓 렌즈)" +--- + +# [[Logit Lens (로짓 렌즈)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Logit Lens (로짓 렌즈).md]] +--- diff --git a/Programming & Language/Long-Term Potentiation (LTP).md b/Programming & Language/Long-Term Potentiation (LTP).md new file mode 100644 index 00000000..f61c2c31 --- /dev/null +++ b/Programming & Language/Long-Term Potentiation (LTP).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-AEAE94 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Long-Term Potentiation (LTP)" +--- + +# [[Long-Term Potentiation (LTP)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Long-Term Potentiation (LTP).md]] +--- diff --git a/Programming & Language/Looking Glass Studios.md b/Programming & Language/Looking Glass Studios.md new file mode 100644 index 00000000..6b75ff8b --- /dev/null +++ b/Programming & Language/Looking Glass Studios.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-FBDE4E +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Looking Glass Studios" +--- + +# [[Looking Glass Studios]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Looking Glass Studios.md]] +--- diff --git a/Programming & Language/Ludology vs Narratology Debate.md b/Programming & Language/Ludology vs Narratology Debate.md new file mode 100644 index 00000000..e34f7b7f --- /dev/null +++ b/Programming & Language/Ludology vs Narratology Debate.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-10519B +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Ludology vs Narratology Debate" +--- + +# [[Ludology vs Narratology Debate]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Ludology vs Narratology Debate.md]] +--- diff --git a/Programming & Language/Ludology vs Narratology.md b/Programming & Language/Ludology vs Narratology.md new file mode 100644 index 00000000..5ab77c30 --- /dev/null +++ b/Programming & Language/Ludology vs Narratology.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E5E303 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Ludology vs Narratology" +--- + +# [[Ludology vs Narratology]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Ludology vs. Narratology.md]] +--- diff --git a/Programming & Language/Ludonarrative Dissonance.md b/Programming & Language/Ludonarrative Dissonance.md new file mode 100644 index 00000000..5ac19bee --- /dev/null +++ b/Programming & Language/Ludonarrative Dissonance.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D88E68 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Ludonarrative Dissonance" +--- + +# [[Ludonarrative Dissonance]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Ludonarrative Dissonance.md]] +--- diff --git a/Programming & Language/Ludonarrative Resonance.md b/Programming & Language/Ludonarrative Resonance.md new file mode 100644 index 00000000..172027d5 --- /dev/null +++ b/Programming & Language/Ludonarrative Resonance.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-2B4A1C +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Ludonarrative Resonance" +--- + +# [[Ludonarrative Resonance]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Ludonarrative Resonance.md]] +--- diff --git a/Programming & Language/MMORPG Ecosystems.md b/Programming & Language/MMORPG Ecosystems.md new file mode 100644 index 00000000..715f202f --- /dev/null +++ b/Programming & Language/MMORPG Ecosystems.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-525534 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - MMORPG Ecosystems" +--- + +# [[MMORPG Ecosystems]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/MMORPG Ecosystems.md]] +--- diff --git a/Programming & Language/MVC (Model-View-Controller).md b/Programming & Language/MVC (Model-View-Controller).md new file mode 100644 index 00000000..050124f7 --- /dev/null +++ b/Programming & Language/MVC (Model-View-Controller).md @@ -0,0 +1,41 @@ +--- +id: P-REINFORCE-AUTO-F8BE8B +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - MVC (Model-View-Controller)" +--- + +# [[MVC (Model-View-Controller)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> MVC(Model-View-Controller)는 애플리케이션을 모델(Model), 뷰(View), 컨트롤러(Controller)라는 세 가지 상호 연결된 구성 요소로 분리하는 고전적인 소프트웨어 아키텍처 패턴이다 [1]. 이 패턴은 각 구성 요소에 명확한 책임을 부여하여 시스템의 복잡성을 줄이는 '관심사의 분리(Separation of Concerns)' 원칙의 대표적인 예시이다 [2, 3]. 역할 간의 명확한 경계를 설정함으로써 개발자는 데이터 로직에 영향을 주지 않고 사용자 인터페이스를 독립적으로 수정할 수 있어 시스템의 유연성과 유지보수성을 크게 향상시킬 수 있다 [2, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **구성 요소별 명확한 책임 분리:** + - **모델 (Model):** 애플리케이션의 데이터와 비즈니스 로직을 관리한다 [1-3]. 클린 아키텍처(Clean Architecture)의 관점에서는 데이터 구조 정도의 역할을 하며, 컨트롤러에서 유스케이스로 전달된 후 다시 프레젠터와 뷰로 되돌아가는 형태로 사용되기도 한다 [4]. + - **뷰 (View):** 사용자 인터페이스(UI)를 관리하고 데이터를 시각적으로 표시하는 프레젠테이션 역할을 전담한다 [1-3]. + - **컨트롤러 (Controller):** 사용자의 입력을 받아 처리하며, 모델과 뷰 사이에서 중재자(Intermediary) 역할을 수행하고 이들 간의 상호작용을 조정한다 [1-3]. + +- **엄격한 상호작용 규칙:** + - MVC 패턴을 비롯한 아키텍처 전략의 핵심은 뷰(View)가 모델(Model)과 직접 상호작용하는 것을 허용하지 않는다는 점이다 [3, 5]. + - 뷰는 반드시 컨트롤러(Controller)를 매개체로 통해서만 모델과 상호작용해야 하며, 이러한 통제는 구성 요소 간의 불필요한 의존성을 줄여준다 [3, 5]. + +- **관심사 분리(SoC)를 통한 시스템 이점:** + - MVC는 관심사의 분리(SoC) 원칙을 시스템 설계 수준에서 실현하여, 시스템의 복잡성을 줄이고 각 구성 요소가 단일 책임에 집중하도록 유도한다 [3]. + - 이러한 분리를 통해 모듈화가 향상되며, UI 요소를 수정하더라도 기저의 데이터 처리 로직에 영향을 미치지 않는다 [2]. 결과적으로 변경이 다른 부분으로 파급되는 것을 막아 유지보수가 용이해지고, 개별 구성 요소를 유연하게 교체하거나 확장할 수 있다 [2, 3, 6]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Separation of Concerns (SoC)]], [[Software Architecture]], [[Clean Architecture]] +- **Projects/Contexts:** [[Web Applications]], [[GUI Development]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/MVC (Model-View-Controller).md]] +--- diff --git a/Programming & Language/Major GC.md b/Programming & Language/Major GC.md new file mode 100644 index 00000000..fe6f581c --- /dev/null +++ b/Programming & Language/Major GC.md @@ -0,0 +1,42 @@ +--- +id: P-REINFORCE-AUTO-D3B770 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Major GC" +--- + +# [[Major GC]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Major GC는 V8을 비롯한 여러 가비지 컬렉션 환경에서 메모리의 'Old Space(오래된 세대)' 또는 힙(Heap) 전체의 가비지를 수집하는 주기입니다 [1-3]. 짧은 수명의 객체를 처리하는 Minor GC(Scavenge)와 달리, Mark-Sweep 및 Mark-Compact 알고리즘을 사용하여 수명이 길어 Old Space로 승격된 객체들의 메모리를 정리합니다 [1, 4, 5]. 전통적으로는 긴 정지 시간(stop-the-world)을 발생시켰으나, 최근에는 점진적(incremental), 병렬(parallel), 동시적(concurrent) 처리 기법을 도입하여 애플리케이션의 메인 스레드 지연을 최소화하는 방향으로 최적화되었습니다 [6-8]. + +## 📖 구조화된 지식 (Synthesized Content) +* **작동 단계 및 알고리즘:** Major GC는 수백 메가바이트의 데이터를 포함할 수 있는 Old Space를 처리하기 위해 주로 세 가지 단계로 나뉘어 동작합니다 [5, 9, 10]. + * **Marking (마킹):** 활성(live) 객체를 찾아내는 과정입니다. 스택과 전역 객체 등의 루트(Root) 집합에서 시작해 포인터를 따라가며 객체를 추적합니다 [2, 11]. 객체는 마킹 상태에 따라 아직 발견되지 않은 '흰색', 발견되었으나 이웃이 처리되지 않은 '회색', 모든 이웃이 처리된 '검은색'으로 구분되어 깊이 우선 탐색(DFS) 방식으로 마킹됩니다 [11-13]. + * **Sweeping (스위핑):** 마킹 완료 후, GC가 도달할 수 없는 객체(죽은 객체)들이 차지했던 연속된 메모리 공간을 찾아내 여유 목록(free-list)에 추가함으로써 메모리를 재사용할 수 있도록 만듭니다 [5, 14-16]. + * **Compacting (압축):** 실제 메모리 사용량을 줄이기 위해 파편화가 심한 페이지에서 활성 객체들을 다른 페이지의 빈 공간으로 이주(복사)시킵니다 [5, 15, 17, 18]. 객체의 복사 비용이 비싸기 때문에 모든 페이지가 아닌 파편화가 심한 일부 페이지에 대해서만 선택적으로 압축을 수행합니다 [15, 18]. + +* **트리거 조건:** New Space에서 생성된 후 Minor GC 사이클을 두 번 이상 살아남아 Old Space로 승격(Promote)된 객체들이 일정량에 도달하거나, 힙이 동적으로 계산된 제한치에 근접할 때 실행됩니다 [1, 4, 8]. + +* **성능 최적화 기법 (Orinoco):** 과거에는 Major GC가 500-1000ms에 이르는 긴 정지 시간을 유발했으나 [6], V8의 Orinoco 프로젝트를 통해 다음과 같은 비동기 및 병렬 기법이 도입되었습니다 [7, 19, 20]. + * **Incremental Marking (증분 마킹) 및 Lazy Sweeping (지연 스위핑):** 마킹 작업을 5~10ms의 작은 단위로 나누어 점진적으로 수행하며, 스위핑은 필요한 시점까지 지연시켜 한 번에 긴 시간 동안 애플리케이션이 정지되는 것을 방지합니다 [6, 18, 21-23]. 이 과정에서 발생하는 객체 그래프의 변화는 '쓰기 장벽(Write barrier)'을 통해 관리됩니다 [24]. + * **Concurrent Marking (동시 마킹):** 자바스크립트가 메인 스레드에서 실행되는 동안 백그라운드 헬퍼 스레드에서 마킹 작업을 전적으로 동시에 수행합니다 [8, 22]. + * **Parallel Compaction (병렬 압축):** 메인 스레드와 여러 헬퍼 스레드가 함께 압축 및 포인터 업데이트 작업을 나누어 병렬로 처리합니다 [25, 26]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Minor GC]], [[Mark-Sweep]], [[Mark-Compact]], [[Orinoco]], [[Old Space]] +- **Projects/Contexts:** [[V8 JavaScript Engine]], [[Node.js Memory Management]] +- **Contradictions/Notes:** + - Minor GC(Scavenge)는 새롭게 할당된 작고 수명이 짧은 객체를 신속하게 처리하는 반면, Major GC는 크기가 크고 수명이 긴 Old Space 영역을 처리하므로 상대적으로 비용이 더 많이 들며 덜 빈번하게 발생합니다 [1, 3, 4, 10]. + - 과거의 주요 가비지 컬렉터들은 전체 과정을 동기적으로 수행하여 'Stop-the-world' 상태를 초래했지만, 현재의 메이저 GC는 점진적이고 동시적인 기법을 통해 메인 스레드의 멈춤 시간을 사실상 사용자가 인지하지 못할 수준으로 개선했습니다 [6-8, 22]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Major GC.md]] +--- diff --git a/Programming & Language/Mark-Sweep-Compact 알고리즘.md b/Programming & Language/Mark-Sweep-Compact 알고리즘.md new file mode 100644 index 00000000..3fbff272 --- /dev/null +++ b/Programming & Language/Mark-Sweep-Compact 알고리즘.md @@ -0,0 +1,35 @@ +--- +id: P-REINFORCE-AUTO-AF3315 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Mark-Sweep-Compact 알고리즘" +--- + +# [[Mark-Sweep-Compact 알고리즘]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Mark-Sweep-Compact 알고리즘은 애플리케이션의 힙 메모리에서 더 이상 사용되지 않는 객체를 식별하여 메모리를 회수하고, 발생한 메모리 단편화를 해결하는 주요 가비지 컬렉션(GC) 기법입니다 [1]. 도달 가능한 객체를 식별하여 표시하는 마크(Mark) 단계, 참조되지 않는 죽은 객체의 메모리를 회수하는 스윕(Sweep) 단계, 그리고 살아남은 객체들을 모아 힙 메모리 단편화를 줄이는 컴팩트(Compact) 단계로 이루어집니다 [1]. 이 알고리즘은 주로 V8 엔진의 Old Generation이나 JVM의 전역 힙(Java heap)을 정리하는 데 활용되며, 메모리 효율성을 극대화하지만 객체 이동에 따른 비용이 크다는 특징이 있습니다 [2], [3], [4]. + +## 📖 구조화된 지식 (Synthesized Content) +- **마크(Mark) 단계**: 루트(Root) 객체에서 시작하여 포인터를 통해 도달할 수 있는 모든 살아있는(live) 객체를 식별하고 마크합니다 [5], [1]. + - V8 엔진에서는 객체의 마크 상태를 3가지 상태(흰색: 아직 발견되지 않음, 회색: 발견되었으나 이웃 미처리, 검은색: 모든 이웃 객체 처리 완료)로 구분하며, 힙을 객체와 포인터로 연결된 방향 그래프로 간주하여 깊이 우선 탐색(DFS) 방식으로 순회합니다 [6], [5]. + - JVM 환경에서는 마크 맵(mark map)이라는 비트 배열을 사용하여 각 객체가 도달 가능한 상태인지 그 위치를 기록합니다 [7]. +- **스윕(Sweep) 단계**: 마크 단계 완료 후 마크되지 않은(흰색) 죽은 객체들의 범위를 찾아 빈 공간으로 변환하여 회수합니다 [8], [9]. 이렇게 확보된 영역들은 각 크기에 따라 분리된 여유 목록(free lists)에 추가되어 이후 새로운 객체 할당이나 객체 이주를 위한 공간으로 재사용됩니다 [8]. +- **컴팩트(Compact) 단계**: 살아있는 객체들을 다른 페이지의 빈 공간으로 이동시켜 단편화된 메모리 페이지(작은 빈 공간이 많은 상태)의 실제 사용량을 줄이고 최적화합니다 [10], [11]. 이 단계에서는 기존 객체를 복사하고 원본의 첫 단어 자리에 포워딩 주소(forwarding address)를 남기며, 이주가 끝나면 관련된 모든 포인터를 새로운 복사본의 위치로 업데이트합니다 [10]. +- **성능과 실행 특징**: 스윕 알고리즘은 각 페이지의 마크 비트맵을 순회하며 마크되지 않은 객체의 범위를 찾기만 하므로 매우 간단합니다 [8]. 반면 컴팩트 작업은 살아있는 대량의 객체를 이동시키고 이 객체들을 가리키는 모든 참조(reference) 값을 변경해야 하므로 연산 비용이 매우 큽니다 [3], [4]. 따라서 컴팩트 작업은 매번 수행되지 않고 힙이 심하게 단편화되었거나 메모리 할당 실패가 발생하는 등 선택적이고 필수적인 상황에서만 실행되도록 제어됩니다 [3], [4]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Garbage Collection]], [[V8 Engine]], [[Old Space]], [[Java Heap Memory]] +- **Projects/Contexts:** [[V8 엔진의 Old Generation 메모리 관리]], [[IBM JVM의 가비지 컬렉션 메커니즘]] +- **Contradictions/Notes:** 컴팩트(Compact) 작업은 단편화를 해결하여 캐시 지역성(cache locality)을 높이지만, 포인터 재조정과 객체 이동 비용으로 인해 애플리케이션의 'Stop-the-world(STW)' 일시 중지 시간을 증가시킬 수 있습니다 [3]. 이를 보완하기 위해 V8 엔진은 객체 그래프가 변경될 가능성을 쓰기 장벽(Write barrier)으로 제어하며 점진적 마킹(Incremental marking) 및 지연 스윕(Lazy sweeping) 기술을 도입하여 메인 스레드 멈춤 시간을 줄이고 있습니다 [12], [13], [14]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Mark-Sweep-Compact 알고리즘.md]] +--- diff --git a/Programming & Language/Mark-Sweep-Compact(메이저 GC).md b/Programming & Language/Mark-Sweep-Compact(메이저 GC).md new file mode 100644 index 00000000..cc8b8072 --- /dev/null +++ b/Programming & Language/Mark-Sweep-Compact(메이저 GC).md @@ -0,0 +1,47 @@ +--- +id: P-REINFORCE-AUTO-50957B +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Mark-Sweep-Compact(메이저 GC)" +--- + +# [[Mark-Sweep-Compact(메이저 GC)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Mark-Sweep-Compact(메이저 GC)는 메모리 힙의 전체 영역(주로 Old 세대 공간)에서 더 이상 사용되지 않는 객체를 식별해 메모리를 회수하고 단편화를 해소하는 가비지 컬렉션(GC) 알고리즘입니다 [1-3]. 이 알고리즘은 살아있는 객체를 식별하는 마킹(Marking), 죽은 객체의 메모리를 해제하는 스위핑(Sweeping), 그리고 살아남은 객체들을 한곳으로 모아 메모리 단편화를 줄이는 컴팩팅(Compacting)의 세 가지 핵심 단계로 구성됩니다 [2-4]. 주로 크기가 크고 수명이 긴 객체들이 저장되는 메모리 영역의 효율적인 재사용을 위해 작동합니다 [1, 5, 6]. + +## 📖 구조화된 지식 (Synthesized Content) +* **마킹(Marking) 단계** + * 가비지 컬렉터가 메모리 상에서 도달 가능한(살아있는) 객체를 식별하는 과정입니다 [2, 3]. + * 전역 객체나 실행 스택과 같은 루트 객체(Root object)에서 시작하여 참조 포인터를 따라가며 힙 내의 모든 도달 가능한 객체를 재귀적으로 찾아냅니다 [3, 7, 8]. + * V8 엔진에서는 객체의 상태를 흰색(미발견), 회색(발견되었으나 이웃 노드 미처리), 검은색(이웃 노드까지 모두 처리)으로 분류하며 깊이 우선 탐색(DFS) 알고리즘을 사용해 마킹을 수행합니다 [7, 9]. JVM 환경에서는 마크 맵(Mark map)이라는 비트 배열을 이용해 도달 가능한 객체의 위치를 기록합니다 [10]. + +* **스위핑(Sweeping) 단계** + * 마킹 단계를 통해 도달 불가능한 것으로 판별된 죽은 객체들의 메모리 공간을 회수하는 과정입니다 [2, 3, 11]. + * V8 엔진은 메모리 페이지를 스캔하여 연속된 죽은 객체의 범위를 찾고, 이를 여유 공간으로 변환하여 자유 목록(Free list)에 추가함으로써 새로운 객체 할당 시 재사용될 수 있도록 합니다 [11, 12]. JVM에서도 마크 맵을 분석해 확보 가능한 메모리를 식별하고 자유 목록을 업데이트합니다 [13]. + +* **컴팩팅(Compacting) 단계** + * 스위핑 이후 힙 메모리가 심하게 단편화(Fragmented)되어 있는 경우, 살아있는 객체들을 다른 여유 공간이나 빈 페이지로 마이그레이션하여 메모리 구멍을 없애는 과정입니다 [2, 11, 14, 15]. + * 살아있는 객체를 새 위치로 복사한 뒤, 해당 객체들을 가리키던 모든 포인터(참조)를 새로운 주소로 일일이 업데이트해야 하므로 매우 비용이 큰 작업입니다 [11, 14, 16]. + * 이러한 높은 처리 비용 때문에 매 수집 주기마다 실행되지 않으며, 특정 조건(예: -Xcompactgc 옵션 활성화, 할당할 충분한 여유 공간 부족, 공간 단편화 심화 등)에 따라 선택적이고 제한적으로 수행됩니다 [6, 16, 17]. + +* **성능 최적화(Optimization) 기법** + * 메이저 GC의 마크-스위프-컴팩트 작업은 다량의 데이터를 스캔해야 하므로 애플리케이션의 실행을 긴 시간 동안 멈추게(Stop-the-world) 할 수 있습니다 [2, 18]. + * 이를 방지하고 지연 시간(Latency)을 최소화하기 위해, V8의 최신 GC(Orinoco) 및 특정 JVM 정책은 작업을 여러 번 나누어 수행하는 점진적 마킹(Incremental marking)과 힙 페이지의 청소를 지연시키는 지연 스위핑(Lazy sweeping) 기법을 사용합니다 [18-21]. + * 더 나아가 애플리케이션의 메인 스레드와 여러 헬퍼 스레드를 동시에 활용하는 병렬(Parallel) 및 동시(Concurrent) 처리 기법을 적용하여 전체 애플리케이션의 일시 정지 시간을 획기적으로 줄이고 있습니다 [22-25]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Garbage Collection]], [[Old Generation/Space]], [[Memory Fragmentation]], [[Incremental Marking]] +- **Projects/Contexts:** [[V8 Engine (JavaScript)]], [[JVM (Java Virtual Machine)]], [[Orinoco Garbage Collector]] +- **Contradictions/Notes:** 소스 자료 전반에 걸쳐 큰 모순은 존재하지 않습니다. 다만, 컴팩팅(Compacting) 작업은 메모리 파편화를 완전히 해결하는 훌륭한 방법이지만 V8과 JVM 두 환경 모두에서 매우 무겁고 값비싼(expensive) 동작으로 공통되게 취급되며, 항상 실행되지 않고 철저한 휴리스틱이나 임계조건에 의해 선택적으로 발동된다는 점이 강조됩니다 [6, 16, 17]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Mark-Sweep-Compact(메이저 GC).md]] +--- diff --git a/Programming & Language/Mark-Sweep-Compact.md b/Programming & Language/Mark-Sweep-Compact.md new file mode 100644 index 00000000..29bb2108 --- /dev/null +++ b/Programming & Language/Mark-Sweep-Compact.md @@ -0,0 +1,41 @@ +--- +id: P-REINFORCE-AUTO-1D592D +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Mark-Sweep-Compact" +--- + +# [[Mark-Sweep-Compact]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +**동작 원리 및 주요 단계** +* **마킹(Marking) 단계:** 힙 상의 모든 활성(Live) 객체를 발견하고 표시하는 과정입니다 [3]. 메모리 힙을 객체들이 포인터로 연결된 방향성 그래프로 간주하여, 루트(root) 객체에서 시작해 깊이 우선 탐색(Depth-First-Search)을 수행합니다 [8, 9]. 객체는 처리 상태에 따라 흰색(미발견), 회색(발견되었으나 이웃 미처리), 검은색(발견 및 이웃 처리 완료)으로 구분됩니다 [3, 10]. 마킹이 종료되면 검은색은 활성 객체, 흰색은 죽은 객체를 의미합니다 [4, 11]. +* **스위핑(Sweeping) 단계:** 마킹 맵을 스캔하여 마킹되지 않은(흰색) 죽은 객체들의 연속된 범위를 찾고, 이를 빈 공간(Free space)으로 변환하여 크기별 프리 리스트(Free lists)에 추가합니다 [4, 12, 13]. +* **컴팩팅(Compacting) 단계:** 파편화가 심한 페이지에 있는 객체들을 다른 페이지의 빈 공간으로 이주(Migration)시켜 실제 메모리 사용량을 줄입니다 [5, 14]. 객체가 복사된 후 기존 객체의 첫 번째 워드에 포워딩 주소(Forwarding address)를 남기고, 대피가 완료되면 시스템은 기록된 포인터 위치를 순회하며 참조를 새 위치로 업데이트합니다 [5, 10]. + +**V8 엔진에서의 활용 (Major GC)** +* V8 엔진에서는 메가바이트 단위 이상의 크기를 갖는 'Old Space(오래된 세대)'를 수집할 때 마크-스윕(Mark-sweep) 및 마크-컴팩트(Mark-compact) 알고리즘을 사용합니다 [1, 10]. +* 과거에는 전체 실행을 멈추는 "Stop-the-world" 방식으로 인해 500-1000ms의 긴 일시 정지가 발생했으나, 메인 스레드의 부담을 줄이기 위해 증분 마킹(Incremental marking)과 지연 스위핑(Lazy sweeping), 그리고 백그라운드 스레드를 활용하는 동시 마킹/스위핑(Concurrent marking/sweeping) 등의 최적화가 도입되었습니다 [15-18]. + +**IBM Java GC에서의 활용** +* Java 가비지 컬렉터에서도 마크와 스윕은 메모리를 재확보하는 핵심 사이클로 함께 작동합니다 [19]. +* 그러나 컴팩트(Compact) 작업은 객체의 참조(Reference)를 모두 변경해야 하므로 매우 비용이 많이 드는(Expensive) 작업으로 간주됩니다 [7]. 따라서 컴팩트 작업은 기본적으로 매번 발생하지 않으며, `-Xcompactgc` 옵션을 명시하거나 힙을 스위핑한 후에도 할당 요청을 충족할 공간이 부족할 때 등 특정한 트리거 조건 하에서만 수행됩니다 [7, 20]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Garbage Collection]], [[Old Generation]], [[Incremental Marking]], [[Memory Fragmentation]] +- **Projects/Contexts:** [[V8 JavaScript Engine]], [[IBM Java GC]], [[Orinoco Garbage Collector]] +- **Contradictions/Notes:** 컴팩트(Compact) 단계의 빈도와 관련하여, V8에서는 Old Space의 파편화를 줄이기 위해 Major GC 과정에서 컴팩팅을 통합적으로 활용하여 객체를 마이그레이션하는 반면 [5, 10], IBM Java GC 환경에서는 객체 이동에 따른 높은 오버헤드로 인해 컴팩트 단계가 기본 활성화 상태가 아니며 메모리 부족이나 명시적 설정 시에만 제한적으로 트리거된다는 차이가 있습니다 [7, 21]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Mark-Sweep-Compact.md]] +--- diff --git a/Programming & Language/Mark-Sweep.md b/Programming & Language/Mark-Sweep.md new file mode 100644 index 00000000..f3ae17d6 --- /dev/null +++ b/Programming & Language/Mark-Sweep.md @@ -0,0 +1,44 @@ +--- +id: P-REINFORCE-AUTO-261A28 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Mark-Sweep" +--- + +# [[Mark-Sweep]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Mark-Sweep(마크-스위프)는 V8 엔진과 JVM 등에서 오래된 객체(Old Space/Generation)의 메모리를 회수하기 위해 주로 사용되는 가비지 컬렉션(GC) 알고리즘입니다 [1-4]. 이 알고리즘은 힙 메모리 내의 모든 활성 객체를 식별하여 표시하는 '마킹(Marking)' 단계와, 표시되지 않은 죽은 객체의 메모리 영역을 해제하는 '스위핑(Sweeping)' 단계로 동작합니다 [2, 5]. 기존에는 긴 애플리케이션 일시 정지(Stop-the-world)를 유발했으나, 현대의 엔진들은 점진적(Incremental), 지연(Lazy), 그리고 병행(Concurrent) 처리 기법을 결합하여 성능 오버헤드를 크게 줄였습니다 [6-9]. + +## 📖 구조화된 지식 (Synthesized Content) +* **마킹(Marking) 단계** + * 마킹 알고리즘은 본질적으로 포인터로 연결된 객체 그래프를 루트(Roots)에서부터 추적하는 깊이 우선 탐색(Depth-First-Search)입니다 [4, 10, 11]. + * V8 엔진에서는 각 페이지에 할당 가능한 단어(word)당 하나의 비트를 갖는 마킹 비트맵(Marking bitmap)을 유지하며, 객체의 마킹 상태를 세 가지 색상(흰색, 회색, 검은색)으로 분류합니다 [4, 12]. + * 흰색(White)은 아직 GC가 발견하지 못한 상태, 회색(Grey)은 발견되었으나 이웃 객체들이 모두 처리되지 않은 상태, 검은색(Black)은 발견되었고 모든 이웃 객체까지 처리가 완료된 활성 상태를 의미합니다 [12, 13]. + * 마킹 과정 중 객체들은 '마킹 데크(Marking deque)'라는 버퍼에 저장되며, 큐가 비워지고 모든 발견된 객체가 검은색으로 표시될 때까지 탐색이 반복됩니다 [10, 13]. + +* **스위핑(Sweeping) 단계** + * 마킹이 완료된 후, 스위핑 알고리즘은 힙을 스캔하여 흰색으로 남은 죽은 객체들의 연속된 범위를 찾아냅니다 [4, 14, 15]. + * 확인된 죽은 객체의 메모리 공간을 여유 공간(Free space)으로 변환하고 이를 '자유 목록(Free list)'에 추가하여 새로운 객체 할당 시 재사용할 수 있도록 합니다 [14-16]. + * V8에서는 페이지 수준에서 작동하며, 객체의 크기(소형, 중형, 대형 등)에 따라 별도의 자유 목록을 유지 관리합니다 [14, 16]. + +* **최적화 및 발전 (Optimization)** + * 전체 힙을 대상으로 하는 마크-스위프는 시간이 오래 걸려 500-1000ms 수준의 'Stop-the-world' 일시 정지를 유발할 수 있었습니다 [6]. + * 이를 완화하기 위해 V8은 힙 마킹을 5-10ms 단위의 작은 작업으로 나누어 실행하는 **점진적 마킹(Incremental marking)**과 메모리 해제를 즉시 전부 수행하지 않고 필요에 따라 미루는 **지연 스위핑(Lazy sweeping)**을 도입했습니다 [6, 7, 17, 18]. + * 최근의 Orinoco 가비지 컬렉터 및 JVM 정책에서는 메인 스레드 실행에 영향을 주지 않기 위해 백그라운드 스레드에서 작업을 수행하는 **병행(Concurrent) 마킹 및 스위핑** 기술을 활용하여 대기 시간을 획기적으로 최소화했습니다 [8, 9, 19]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Garbage Collection]], [[Old Generation]], [[Mark-Compact]], [[Incremental Marking]], [[Lazy Sweeping]] +- **Projects/Contexts:** [[V8 JavaScript Engine]], [[JVM (Java Virtual Machine)]], [[Orinoco Garbage Collector]] +- **Contradictions/Notes:** 마크-스위프는 빠르고 공간을 효과적으로 재활용하지만, 메모리 파편화(Fragmentation)를 유발할 수 있습니다. 따라서 V8에서는 파편화가 심한 페이지의 라이브 객체를 이동시키고 빈 공간을 병합하는 [[Mark-Compact]] 알고리즘과 밀접하게 연계되어 사용됩니다 [2, 4, 5, 20]. 또한, Node.js 환경에서 `--trace_gc` 로그 상에 'Mark-sweep'이 지나치게 자주 발생하거나 반환되는 메모리가 미미하다면 애플리케이션 내 메모리 누수(Memory Leak)나 CPU 집약적 블로킹 작업이 존재할 가능성이 높습니다 [21, 22]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Mark-Sweep.md]] +--- diff --git a/Programming & Language/Mechanobiology.md b/Programming & Language/Mechanobiology.md new file mode 100644 index 00000000..af9c6b8d --- /dev/null +++ b/Programming & Language/Mechanobiology.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D8F1A7 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Mechanobiology" +--- + +# [[Mechanobiology]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Mechanobiology.md]] +--- diff --git a/Programming & Language/Meltdown.md b/Programming & Language/Meltdown.md new file mode 100644 index 00000000..8337fc0b --- /dev/null +++ b/Programming & Language/Meltdown.md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-0BF53B +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Meltdown" +--- + +# [[Meltdown]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Meltdown은 현대의 프로세서에 영향을 미치는 보안 취약점으로, 공격자가 보호되어야 할 비밀 메모리 영역에 읽기 권한을 얻을 수 있게 합니다 [1]. 구체적으로는 웹 브라우저에서 실행되는 JavaScript와 같은 사용자 영역(userland)의 코드가 커널 메모리를 읽을 수 있게 만듭니다 [2]. 웹 브라우저(예: WebKit)를 통해 Meltdown 공격을 수행하려면, 먼저 Spectre 취약점을 이용해 브라우저의 보안 속성을 우회하는 과정이 선행되어야 합니다 [1, 2]. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Spectre]], [[Side-channel attacks]], [[Web Timing Security]] +- **Projects/Contexts:** [[WebKit]], [[Blink]] +- **Contradictions/Notes:** 제공된 소스 내에서 모순되는 내용은 확인되지 않으며, Meltdown 방어를 위해 운영체제 수준의 완화와 브라우저(WebKit, Blink) 수준의 타이밍 정밀도 제한 및 Spectre 방어 조치가 상호 보완적으로 작용함을 강조하고 있습니다 [2, 4]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Meltdown.md]] +--- diff --git a/Programming & Language/Memory Leak(메모리 누수).md b/Programming & Language/Memory Leak(메모리 누수).md new file mode 100644 index 00000000..5c0faadd --- /dev/null +++ b/Programming & Language/Memory Leak(메모리 누수).md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-D05474 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Memory Leak(메모리 누수)" +--- + +# [[Memory Leak(메모리 누수)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 메모리 누수(Memory Leak)는 프로그램이 더 이상 필요하지 않은 메모리를 해제하지 않아, 해당 메모리가 운영체제의 가용 메모리 풀로 반환되지 않는 현상을 의미합니다 [1]. JavaScript와 같은 가비지 컬렉션(GC) 기반 언어에서는 메모리가 단순히 유실되는 것이 아니라, 더 이상 사용되지 않아야 할 객체들이 GC 루트(window, 활성 클로저, 이벤트 리스너, 타이머 등)에서 여전히 참조 가능(reachable)한 상태로 남아 있어 가비지 컬렉터가 이를 회수하지 못할 때 발생합니다 [2, 3]. 이러한 누수가 누적되면 애플리케이션의 성능이 저하되고 잦은 가비지 컬렉션 일시 정지를 유발하며, 최종적으로는 메모리 고갈로 인한 크래시(OOM, Out-Of-Memory)로 이어지게 됩니다 [1, 4, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Garbage Collection(가비지 컬렉션)]], [[V8 JavaScript Engine]], [[Heap Snapshot(힙 스냅샷)]], [[Closure(클로저)]] +- **Projects/Contexts:** [[Frontend Browser Diagnostics]], [[Node.js Production Monitoring]] +- **Contradictions/Notes:** + * 메모리가 증가한다고 해서 무조건 누수인 것은 아닙니다. 캐시나 실행 취소 내역(undo histories) 등은 의도적으로 데이터를 보존하므로, 소스에서는 '의도적 보존(intentional retention)'과 '우발적 누수(accidental retention)'를 명확히 구분해야 한다고 강조합니다 [12]. + * `WeakRef`와 `FinalizationRegistry`를 사용해 가비지 컬렉션을 방해하지 않는 참조 패턴을 만들 수 있지만, 가비지 컬렉터의 실행 일정은 비결정적(non-deterministic)이므로 이를 적절한 수명 주기 관리(lifecycle management)의 대체재로 사용해서는 안 됩니다 [11]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Memory Leak(메모리 누수).md]] +--- diff --git a/Programming & Language/Memory Leak.md b/Programming & Language/Memory Leak.md new file mode 100644 index 00000000..4ff6b852 --- /dev/null +++ b/Programming & Language/Memory Leak.md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-61D625 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Memory Leak" +--- + +# [[Memory Leak]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 메모리 누수(Memory Leak)는 프로그램이 더 이상 필요하지 않은 메모리를 반환하지 않고 계속 참조를 유지하여 지속적으로 메모리를 점유하는 현상입니다[1, 2]. JavaScript 환경에서 메모리 누수는 메모리가 유실되는 것이 아니라, 객체가 가비지 컬렉터(GC) 루트(window, 클로저, 이벤트 리스너 등)에서 여전히 도달 가능(reachable)한 상태로 남아 있어 GC가 이를 회수하지 못할 때 발생합니다[3, 4]. 이러한 누수가 장기간 누적되면 가비지 컬렉션 일시 정지가 잦아지고 응답 시간이 저하되며, 결국 메모리 한계를 초과하여 OOM(Out of Memory) 크래시를 유발할 수 있습니다[1, 5, 6]. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Garbage Collection]], [[V8 Engine]], [[Heap Snapshot]], [[Allocation Timeline]] +- **Projects/Contexts:** [[Browser Application]], [[Node.js Server Production]] +- **Contradictions/Notes:** 소스에 따르면 `WeakRef`나 `FinalizationRegistry`와 같은 최신 도구를 누수 방지 패턴에 활용할 수는 있으나, GC의 실행 시점이 비결정적이므로 이러한 도구들이 명시적인 생명주기 관리(정확한 타이머 및 리스너 해제)를 완전히 대체할 수는 없다고 지적합니다[12]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Memory Leak.md]] +--- diff --git a/Programming & Language/Mesa-Optimization (메사 최적화).md b/Programming & Language/Mesa-Optimization (메사 최적화).md new file mode 100644 index 00000000..00b806de --- /dev/null +++ b/Programming & Language/Mesa-Optimization (메사 최적화).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-4AF7B4 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Mesa-Optimization (메사 최적화)" +--- + +# [[Mesa-Optimization (메사 최적화)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Mesa-Optimization (메사 최적화).md]] +--- diff --git a/Programming & Language/Microsoft Edge DevTools.md b/Programming & Language/Microsoft Edge DevTools.md new file mode 100644 index 00000000..dc31bd88 --- /dev/null +++ b/Programming & Language/Microsoft Edge DevTools.md @@ -0,0 +1,37 @@ +--- +id: P-REINFORCE-AUTO-D3063D +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Microsoft Edge DevTools" +--- + +# [[Microsoft Edge DevTools]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +- **DevTools 실행 및 접근 방법:** 웹페이지에서 마우스 우클릭 후 **Inspect(검사)**를 선택하거나 단축키(`Ctrl+Shift+I` 또는 macOS의 경우 `Command+Option+I`)를 눌러 DevTools를 열 수 있습니다 [1]. 이후 Activity Bar에서 **Memory** 도구를 선택하여 메모리 프로파일링 기능에 접근합니다 [1]. +- **타임라인의 할당 계측 (Allocations on timeline):** JS 힙에서 메모리 누수를 추적하기 위한 DevTools의 주요 기능 중 하나입니다 [3]. 이 기능은 힙 프로파일러의 상세한 스냅샷 정보와 Performance 도구의 점진적인 업데이트 및 추적 기능을 결합하여 작동합니다 [2]. 기록 세션 동안 주기적으로(최대 50ms마다) 힙 스냅샷을 찍고, 기록이 끝날 때 최종 스냅샷을 생성합니다 [4]. +- **메모리 누수 식별 및 분석:** + - 기록 중 타임라인에 나타나는 막대의 높이는 최근 할당된 객체의 크기를 나타냅니다 [5]. + - **파란색 막대**는 타임라인이 끝날 때까지 여전히 살아있는(가비지 컬렉션되지 않은) 객체를 나타내며, 메모리 누수의 주요 후보가 됩니다 [3, 5]. + - **회색 막대**는 할당되었으나 이후 가비지 컬렉션으로 정리된 객체를 의미합니다 [5]. + - 특정 막대를 확대하여 해당 기간에 할당된 객체만 표시하도록 필터링할 수 있으며, 힙 하단에서 유지 트리(retaining tree)와 경로를 검사해 객체가 수집되지 않은 원인을 분석할 수 있습니다 [3, 6]. +- **영구 객체 ID 추적:** 가비지 컬렉션 진행 중에 객체들의 메모리 주소가 이동할 수 있으므로, DevTools는 메모리 주소를 표시하는 대신 '@' 기호 뒤에 고유한 객체 ID를 부여합니다. 이 ID는 여러 스냅샷에 걸쳐 유지되어 힙 상태를 정확하게 비교할 수 있게 해줍니다 [4]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Memory Tool]], [[Garbage Collection]], [[Heap Snapshot]], [[Memory Leak]] +- **Projects/Contexts:** [[Allocation instrumentation on timeline]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. Microsoft Edge DevTools의 전체적인 구조나 다른 패널(네트워크, 콘솔 등)에 대한 설명은 없으며, 오직 Memory 패널 내부의 타임라인 할당 프로파일링 도구에 대해서만 설명하고 있습니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Microsoft Edge DevTools.md]] +--- diff --git a/Programming & Language/Model-Checking.md b/Programming & Language/Model-Checking.md new file mode 100644 index 00000000..a4683aa6 --- /dev/null +++ b/Programming & Language/Model-Checking.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D4D8C1 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Model-Checking" +--- + +# [[Model-Checking]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Model-Checking.md]] +--- diff --git a/Programming & Language/Monorepo(Turborepo 등) 환경의 린트 관리.md b/Programming & Language/Monorepo(Turborepo 등) 환경의 린트 관리.md new file mode 100644 index 00000000..1a1cc40e --- /dev/null +++ b/Programming & Language/Monorepo(Turborepo 등) 환경의 린트 관리.md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-9CC04F +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Monorepo(Turborepo 등) 환경의 린트 관리" +--- + +# [[Monorepo(Turborepo 등) 환경의 린트 관리]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Turborepo와 같은 모노레포(Monorepo) 환경에서는 다수의 패키지와 애플리케이션으로 인해 ESLint 및 Prettier 설정이 중복되고 일관성이 떨어지는 문제가 발생할 수 있습니다 [1]. 이를 해결하기 위해 중앙 집중식 설정 패키지를 구성하고, 모노레포 루트(Root)에서 파일 패턴을 매핑하여 린트 규칙을 조율(Orchestration)하는 방식이 권장됩니다 [2], [3]. 이러한 방식을 적용하면 각 패키지의 고유한 규칙을 존중하면서도 Turborepo의 캐싱 기능과 `lint-staged`를 활용해 린트 속도를 높이고 유지보수성을 극대화할 수 있습니다 [4], [5]. + +## 📖 구조화된 지식 (Synthesized Content) +* **모노레포 린트 관리의 주요 문제점** + 모노레포 환경은 보통 여러 애플리케이션(예: Next.js)과 라이브러리 패키지로 구성됩니다. 이로 인해 각 패키지마다 `.eslintrc.json`과 `.eslintignore` 파일, 그리고 관련 의존성이 흩어져 중복되는 유지보수 문제가 발생합니다 [1]. 특히 사전 커밋(pre-commit) 단계에서 루트 수준의 `lint-staged`를 실행할 때, 패키지별로 다른 린팅 규칙을 동시에 존중하면서 변경된 파일만 검사하도록 만드는 것이 가장 큰 과제입니다 [2]. + +* **중앙 집중식 설정 패키지 구축** + 이러한 문제를 해결하기 위해 `@repo/eslint-config`와 같은 내부 전용 설정 패키지를 생성하여 린트 규칙의 단일 진실 공급원(Single source of truth)으로 활용합니다 [2], [6]. 이 패키지 내부에는 기본(Base), Next.js용, 일반 라이브러리용과 같이 조합 가능한 사전 설정(Preset)을 구성해 둡니다 [7], [8]. ESLint 9의 Flat Config 형식(`eslint.config.mjs`)을 사용하며, 모노레포 내의 개별 패키지들은 각자의 설정 파일에서 필요한 프리셋만 가져와(import) 사용함으로써 코드 중복을 줄이고 자율성을 유지할 수 있습니다 [7], [6]. + +* **루트 오케스트레이션 (Root Orchestration)** + 모노레포의 루트에 오케스트레이션을 위한 `eslint.config.mjs` 파일을 생성합니다. 파일 글로브(glob) 패턴을 사용하여 전역 기본 규칙을 적용하는 동시에, 각 파일이 속한 패키지에 맞는 설정(예: Next.js 패키지 또는 라이브러리 패키지 규칙)으로 정확히 매핑합니다 [3]. 이 조율 과정을 통해 패키지 간의 경계를 침범하지 않고 알맞은 린트 규칙을 강제할 수 있습니다 [3]. + +* **Husky, lint-staged 및 Turborepo 통합** + 오케스트레이션이 설정되면, 루트의 `package.json`과 `.husky/pre-commit` 훅에 `lint-staged`를 연결합니다 [4]. 이를 통해 커밋 시 변경된 파일들만 린트하게 되며, 루트 설정 파일이 대상 파일을 패키지별 올바른 규칙으로 라우팅해 줍니다 [4]. 추가로 `turbo.json`의 전역 의존성에 ESLint 설정 패키지를 명시하면, 설정이 변경될 때만 캐시를 무효화하고 평상시에는 린트 결과를 캐싱하게 되어 전체적인 작업 속도가 획기적으로 개선됩니다 [4], [5]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[ESLint]], [[Prettier]], [[Husky]], [[lint-staged]] +- **Projects/Contexts:** [[Turborepo]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. (모노레포 린트 관리 방식과 관련해 소스 내에서 서로 상충되는 주장이나 모순되는 정보는 확인되지 않습니다.) + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Monorepo(Turborepo 등) 환경의 린트 관리.md]] +--- diff --git a/Programming & Language/Monorepo.md b/Programming & Language/Monorepo.md new file mode 100644 index 00000000..0a482a1c --- /dev/null +++ b/Programming & Language/Monorepo.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-D52D12 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Monorepo" +--- + +# [[Monorepo]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 모노레포(Monorepo)는 다수의 애플리케이션과 라이브러리 패키지(공유 컴포넌트, 유틸리티 등)를 포함하는 서로 연결된 여러 패키지들을 단일 저장소(Repository)에서 관리하는 소프트웨어 아키텍처입니다 [1, 2]. 대규모 프로젝트의 코드 공유를 용이하게 하지만, 패키지마다 개별적인 설정이 중복될 경우 '설정 드리프트(Configuration Drift)' 현상과 같은 유지보수의 어려움을 초래할 수 있습니다 [2, 3]. 이를 효과적으로 관리하기 위해 설정의 중앙 집중화와 루트(Root) 레벨에서의 오케스트레이션(Orchestration) 전략이 활용됩니다 [4, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +* **대규모 모노레포의 관리 문제점:** 전형적인 모노레포는 Next.js와 같은 사용자/관리자용 애플리케이션과 데이터 파서, 타입, API 클라이언트 등의 공유 라이브러리로 구성됩니다 [1]. 규모가 커질수록 수십 개의 패키지에 ESLint, Prettier 등의 설정 파일이 중복해서 생성되며, 이는 일관되지 않은 규칙 적용, 의존성 중복, 그리고 개별 패키지에 맞춘 `lint-staged` 실행의 어려움 등 심각한 유지보수 악몽(Maintenance Nightmare)으로 이어집니다 [1-3]. +* **중앙 집중식 설정 (Centralised Configuration):** 설정 드리프트를 방지하기 위해 단일 진실의 원천(Single Source of Truth) 역할을 하는 중앙 집중식 설정 패키지(예: `@repo/eslint-config`)를 생성하여 활용합니다 [2, 4, 6]. 베이스 규칙을 정의하고 필요한 프레임워크나 라이브러리 환경에 맞게 조합(Composable)하여 사용함으로써, 린팅 규칙 변경이나 보안 업데이트를 전체 모노레포에 동시다발적으로 쉽게 전파할 수 있습니다 [2, 4]. +* **루트 오케스트레이션 (Root Orchestration):** 모노레포 환경에서 Husky와 lint-staged 같은 도구가 각 패키지의 규칙을 준수하면서도 효율적으로 동작하게 하려면, 루트(Root) 레벨에서 파일 패턴별로 적절한 패키지 설정을 매핑하는 오케스트레이션 설정이 필요합니다 [4, 7, 8]. 이를 통해 패키지 간의 자율성을 보장하면서도 중앙에서 도구를 통제할 수 있습니다 [7, 8]. +* **빌드 도구 캐싱 활용:** 중앙 집중화된 설정 패키지를 Turborepo 등의 글로벌 의존성(Global Dependency)으로 설정하면, 규칙 변경 시 모든 패키지의 캐시를 올바르게 무효화하면서도 변경된 파일에 대해서만 빠른 린팅과 검사를 수행할 수 있습니다 [9]. (참고로 모노레포 도구 생태계에는 Turborepo 외에도 Nx, Bazel, Lerna 등이 존재합니다 [10, 11]). + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[ESLint]], [[Prettier]], [[lint-staged]], [[Husky]], [[Turborepo]] +- **Projects/Contexts:** [[대규모 소프트웨어 엔지니어링 및 CI/CD 파이프라인]], [[자동화된 코드 거버넌스(Automated Governance)]] +- **Contradictions/Notes:** 모노레포 내 `lint-staged` 적용과 관련하여 `lint-staged`의 공식 지침은 저장소 루트에 도구를 설치하고 각 패키지에 완전히 격리된 별도의 설정 파일을 두는 것을 권장하지만 [12, 13], Turborepo를 활용하는 모던 아키텍처 환경에서는 루트에 오케스트레이션 설정 하나를 두고 파일 패턴을 각 패키지 환경에 매핑하는 방식이 더 나은 개발자 경험(DX)을 제공하는 대안으로 제시되기도 합니다 [4, 8]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Monorepo.md]] +--- diff --git a/Programming & Language/Multi-Agent-Systems.md b/Programming & Language/Multi-Agent-Systems.md new file mode 100644 index 00000000..61e5f83c --- /dev/null +++ b/Programming & Language/Multi-Agent-Systems.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E9AAEE +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Multi-Agent-Systems" +--- + +# [[Multi-Agent-Systems]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Multi-Agent-Systems.md]] +--- diff --git a/Programming & Language/NPM Ecosystem.md b/Programming & Language/NPM Ecosystem.md new file mode 100644 index 00000000..807afd0e --- /dev/null +++ b/Programming & Language/NPM Ecosystem.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B38BB3 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - NPM Ecosystem" +--- + +# [[NPM Ecosystem]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/NPM Ecosystem.md]] +--- diff --git a/Programming & Language/Netflix 마이크로서비스 전환.md b/Programming & Language/Netflix 마이크로서비스 전환.md new file mode 100644 index 00000000..c363150a --- /dev/null +++ b/Programming & Language/Netflix 마이크로서비스 전환.md @@ -0,0 +1,41 @@ +--- +id: P-REINFORCE-AUTO-7C6103 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Netflix 마이크로서비스 전환" +--- + +# [[Netflix 마이크로서비스 전환]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Netflix의 마이크로서비스 전환은 혁신성, 신뢰성, 효율성을 개선하기 위해 기존의 거대한 모놀리식 아키텍처를 독립적으로 배포 및 확장이 가능한 작은 서비스 단위로 쪼갠 7년간의 대규모 마이그레이션 과정입니다 [1, 2]. 이 과정에서 무상태(Stateless) 서비스 지향, 수평적 확장, 데이터베이스의 NoSQL(Cassandra) 전환 및 자동화된 파괴 테스트(Chaos Monkey)를 원칙으로 삼아 99.999%의 높은 가용성을 확보했습니다 [2-4]. 최근에는 모놀리식화된 기존 시스템의 한계를 극복하고자 API, 워크플로우, 서버리스 함수가 결합된 차세대 마이크로서비스 플랫폼인 'Cosmos'를 도입하여 시스템을 한 단계 더 진화시키고 있습니다 [5, 6]. + +## 📖 구조화된 지식 (Synthesized Content) +- **초기 아키텍처와 전환 배경:** Netflix는 2008년 8월 데이터 센터와 RDBMS를 기반으로 한 모놀리식 아키텍처로 서비스를 시작했으나, 시스템의 단단한 결합(tight coupling)으로 인해 빠른 혁신과 잦은 배포가 불가능했습니다 [2, 7]. 개발 속도를 높이고 높은 가용성을 달성하기 위해 7년에 걸쳐 작은 독립적인 서비스들로 구성된 마이크로서비스 아키텍처로의 전환을 단행했습니다 [1, 2]. +- **전환의 핵심 원칙 (First Principles):** + - **구축보다 구매 (Buy vs. Build):** 가능하면 오픈소스(OSS) 기술을 우선적으로 사용하고, 꼭 필요한 기능만 직접 구축합니다 [2]. + - **무상태(Stateless) 서비스와 수평적 확장:** 지속성이나 캐싱 계층을 제외한 모든 서비스는 상태를 유지하지 않도록(Stateless) 설계하여, 수직적 확장(Scale up)의 한계를 피해 수평적 확장(Scale out)을 지향합니다 [2, 3]. + - **이중화와 격리 (Redundancy and Isolation):** 다중 지역(Multi-Regional) 복제 구성을 채택하고, 장애 발생 시 파급 반경(Blast radius)을 격리하여 복원력을 높입니다 [3]. + - **파괴 테스트 자동화:** Simian Army의 Chaos Monkey 등을 활용하여 의도적으로 결함을 주입하고 파괴 테스트를 자동화함으로써 시스템의 신뢰성을 지속적으로 검증합니다 [3]. + - **데이터베이스 마이그레이션:** 대규모 확장에 불리한 기존의 RDBMS 대신 확장성, 파티션 내구성, 가용성이 뛰어난 NoSQL인 Cassandra로 전환했습니다 [3]. +- **운영 효과 및 한계:** 마이크로서비스 구조는 클린 아키텍처의 높은 응집도와 낮은 결합도 개념을 적용하여, 컨테이너 및 Kubernetes를 통해 수백만 명의 사용자를 위한 탄력적인 확장을 제공합니다 [8, 9]. Netflix는 이를 통해 연간 단 52분의 다운타임만 허용하는 99.999%(4 9's)의 가용성을 목표로 합니다 [4]. 그러나 분산 시스템으로 변모하면서 서비스 간 통신 메커니즘 처리, 여러 팀의 조율, JVM/VM 추가 구동에 따른 메모리 소비 급증과 같은 복잡성 및 비용의 증가라는 단점도 수반되었습니다 [10-12]. +- **차세대 마이크로서비스 플랫폼 'Cosmos' 도입:** + - 시간이 지나면서 기존의 3세대 미디어 처리 시스템('Reloaded') 또한 비대해져 모놀리스와 같이 인프라와 애플리케이션 코드가 뒤섞이는 운영상 병목을 일으켰습니다 [13-15]. + - 이를 해결하기 위해 워크플로우 기반 미디어 중심 마이크로서비스 플랫폼인 'Cosmos'를 구축했습니다 [5]. Cosmos는 외부 요청을 처리하는 API 계층(Optimus), 비즈니스 규칙을 모델링하는 워크플로우 계층(Plato), 계산 집약적이고 상태가 없는 작업을 실행하는 서버리스 함수 계층(Stratum)으로 관심사를 횡단 및 논리적으로 철저히 분리했습니다 [15, 16]. + - 레거시 시스템에서 Cosmos로의 이전은 점진적으로 기존 시스템을 둘러싸며 대체하는 교살자 무화과(Strangler fig) 패턴을 적용하여 리스크를 최소화하고 있습니다 [17]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[모놀리식 아키텍처]], [[수평적 확장 (Scale out)]], [[Cassandra]], [[오픈소스 (OSS)]], [[서버리스 함수]] +- **Projects/Contexts:** [[Reloaded 시스템]], [[Cosmos 플랫폼]], [[Chaos Monkey (Simian Army)]] +- **Contradictions/Notes:** 마이크로서비스 아키텍처는 혁신과 배포 속도 향상이라는 큰 장점을 가져다주었지만, 반대로 구현 시 분산 시스템의 복잡성을 관리해야 하고 다수의 서비스 인스턴스를 실행하는 데 따른 심각한 메모리 사용량(오버헤드) 증가를 초래한다는 구조적 한계점이 소스에서 분명히 지적되고 있습니다 [10, 11]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Netflix 마이크로서비스 전환.md]] +--- diff --git a/Programming & Language/Network Coordinate Systems.md b/Programming & Language/Network Coordinate Systems.md new file mode 100644 index 00000000..c1f0b6e7 --- /dev/null +++ b/Programming & Language/Network Coordinate Systems.md @@ -0,0 +1,45 @@ +--- +id: P-REINFORCE-AUTO-BF761A +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Network Coordinate Systems" +--- + +# [[Network Coordinate Systems]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 네트워크 좌표 시스템(Network Coordinate Systems)은 대규모 분산 시스템에서 인터넷 지연 시간(latency)을 다차원 기하학적 공간으로 모델링하는 확장 가능한 지연 시간 추정 시스템입니다 [1]. 소수의 전용 '랜드마크(landmark)' 노드를 기준으로 측정된 기본 지연 시간을 통해 각 호스트 노드에 해당 공간 내의 특정 좌표를 부여합니다 [1]. 이를 통해 개별적인 통신 프로빙을 일일이 수행하지 않더라도, 두 노드 간의 지연 시간을 각 좌표 간의 유클리드 거리(Euclidean distance)로 쉽게 근사할 수 있습니다 [1]. + +## 📖 구조화된 지식 (Synthesized Content) +- **기본 작동 원리 및 공간 모델링:** + - 대표적인 접근 방식인 GNP(Global Network Positioning)는 인터넷 노드들을 N차원 기하학적 공간에 배치합니다 [2]. + - 이를 위해 전역적으로 분산된 최소 N+1개의 랜드마크 노드가 서로 간의 지연 시간을 측정하여 초기 공간을 형성하며, 랜드마크 좌표 간의 거리가 실제 측정된 지연 시간과 최대한 일치하도록 Simplex-downhill과 같은 오차 최소화 알고리즘을 사용합니다 [2, 3]. + - 랜드마크 좌표가 설정되면, 각 인터넷 호스트 노드는 랜드마크들과 측정한 지연 시간(base latencies)을 바탕으로 삼각측량(triangulation) 방식으로 자신의 좌표를 계산합니다 [2, 4]. + +- **측정 방식의 한계 극복 및 구현 기법:** + - 기존 시스템들은 위치 측정을 위해 각 노드들의 적극적인 참여(active participation)를 요구했으나, 이는 악의적 노드의 정보 조작이나 랜드마크 서버의 과부하 위험성을 수반했습니다 [5]. + - 대규모 배포(예: 구글 CDN)에서는 이를 해결하기 위해 중앙 집중식 스케줄러를 도입하여 랜드마크의 과부하를 방지합니다 [6, 7]. 또한, 클라이언트의 직접적인 참여나 별도 소프트웨어 설치 없이, TCP 핸드셰이크 단계에서 동작하는 SYNACK/ACK 기법을 활용한 수동적 지연 시간 측정(passive latency discovery)과 웹 프리페칭(prefetching) 지시어를 사용하여 안전하게 측정 데이터를 수집합니다 [8-10]. + +- **좌표의 안정성과 시간 경과에 따른 변화 (Coordinate Stability):** + - 라우팅 경로의 변경이나 네트워크 혼잡 등으로 인해 한 번 생성된 좌표는 시간이 지날수록 실제 지연 시간과 오차가 발생합니다(drift). 연구에 따르면 일주일이 경과하면 전체 좌표의 25%가 33밀리초(ms) 이상 어긋나게 됩니다 [11, 12]. + - 이러한 불안정성은 슬라이딩 퍼센타일(sliding percentiles) 같은 통계적 필터링을 통해 일시적 변동을 배제함으로써 개선할 수 있습니다 [13, 14]. 또한, 매일 좌표를 재계산하면(특히 UTC 오후 10시경) 좌표의 75%를 초기 값의 6ms 이내로 안정적으로 유지할 수 있습니다 [11, 12, 15]. + +- **시스템 활용 및 성능:** + - 이렇게 산출된 좌표는 웹 클라이언트의 요청을 가장 가까운 데이터 센터로 리디렉션(Client Redirection)하거나 P2P 오버레이 및 CDN 레플리카의 효율적 배치를 지원하는 데 사용됩니다 [16-18]. + - 구글의 시스템 적용 결과, GNP 기반 리디렉션을 사용했을 때 86%의 확률로 측정된 지연 시간이 가장 짧은 최적의 레플리카로 클라이언트를 연결하는 성과를 보였습니다 [19-21]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Global Network Positioning (GNP)]], [[Latency Estimation]], [[Passive Latency Discovery]] +- **Projects/Contexts:** [[Google Content Delivery Network (CDN)]], [[Test Traffic Measurements (TTM)]] +- **Contradictions/Notes:** Lighthouses나 NPS와 같은 분산형 네트워크 좌표 시스템들은 기존 호스트들을 로컬 랜드마크로 활용하여 확장성을 높일 수 있다고 주장합니다 [22, 23]. 하지만 구글 CDN 연구에서는 이러한 분산형 구조가 오히려 악의적 호스트 관리, 측정 스케줄링 동기화, 전역적 일관성 유지 등의 복잡한 문제를 유발하므로, 고정된 랜드마크 인프라와 중앙 집중식 스케줄러를 사용하는 것이 확장성 제한 없이 훨씬 효율적이고 단순한 해결책이라고 반대 의견을 제시합니다 [24]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Network Coordinate Systems.md]] +--- diff --git a/Programming & Language/Network Science.md b/Programming & Language/Network Science.md new file mode 100644 index 00000000..89a964a8 --- /dev/null +++ b/Programming & Language/Network Science.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-7C08A1 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Network Science" +--- + +# [[Network Science]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Network Science.md]] +--- diff --git a/Programming & Language/New Media Theory.md b/Programming & Language/New Media Theory.md new file mode 100644 index 00000000..b83c8e55 --- /dev/null +++ b/Programming & Language/New Media Theory.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-30D01C +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - New Media Theory" +--- + +# [[New Media Theory]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/New Media Theory.md]] +--- diff --git a/Programming & Language/New Space(Young Generation).md b/Programming & Language/New Space(Young Generation).md new file mode 100644 index 00000000..c6a93469 --- /dev/null +++ b/Programming & Language/New Space(Young Generation).md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-9FB32F +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - New Space(Young Generation)" +--- + +# [[New Space(Young Generation)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> V8 엔진의 메모리 힙(Heap) 구조 내에서 새롭게 생성된 객체들이 처음으로 할당되는 공간으로, 'Young Generation(젊은 세대)'이라고도 불린다 [1-3]. 대부분의 객체가 생성 직후 곧바로 접근 불가능해진다는 '세대 가설(Generational Hypothesis)'에 기반하여 설계되었기 때문에, 공간의 크기가 작고 가비지 컬렉션(GC)이 매우 빠르고 빈번하게 일어나는 것이 특징이다 [4-6]. 스캐빈저(Scavenger)라 불리는 마이너 GC(Minor GC)에 의해 공간이 관리되며, 특정 횟수 이상 살아남은 객체들은 Old Space(구세대)로 승격(Promotion)된다 [2, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +* **할당 메커니즘과 메모리 구조:** + New Space에서의 객체 할당은 할당 포인터(Allocation pointer)를 증가시키기만 하면 되므로 매우 빠른 속도를 자랑한다 [4, 7]. 이 공간은 매우 빠른 가비지 컬렉션을 위해 설계되어 일반적으로 1MB~64MB(행동 휴리스틱에 따라 1MB~8MB로도 언급됨)의 비교적 작은 크기로 유지된다 [4, 7]. New Space 내부의 객체는 세부적으로 새로 할당되는 'Nursery'와 한 번의 GC에서 살아남은 'Intermediate' 하위 세대로 나뉘며, 메모리 구조상 동일한 크기의 'From-Space'와 'To-Space'라는 두 개의 반공간(Semi-space)으로 분할된다 [8-10]. + +* **마이너 GC (Scavenge) 작동 방식:** + 객체 할당 포인터가 New Space의 끝에 도달하여 공간이 가득 차게 되면 마이너 GC 주기인 '스캐빈지(Scavenge)'가 트리거된다 [4, 7]. 스캐빈저는 체니의 알고리즘(Cheney's algorithm)을 기반으로 작동하며, From-Space에서 여전히 참조되고 있는 살아있는(live) 객체만을 식별하여 빈 공간인 To-Space로 복사(대피)시킨다 [7, 8, 10, 11]. 복사가 완료되면 From-Space의 나머지 데이터는 가비지로 간주되어 전부 비워지며, 이후 From-Space와 To-Space의 역할이 서로 뒤바뀐다 [11, 12]. 이 과정에서 객체들이 연속된 메모리 블록으로 압축(Compaction)되므로 메모리 단편화가 완전히 해소된다 [8, 11]. + +* **객체의 승격 (Promotion):** + Nursery에 할당된 객체가 첫 번째 마이너 GC에서 살아남으면 Intermediate 상태가 되어 새로운 페이지(To-Space)로 이동한다 [9, 13]. 스캐빈지 과정을 두 번 거치고도 살아남은 객체들은 수명이 긴 객체로 판단되어 New Space를 떠나 Old Generation(Old Space)으로 승격된다 [4, 9, 11]. + +* **튜닝 및 크기 제어:** + Node.js 환경에서는 V8 플래그를 통해 New Space의 크기를 조절할 수 있다. `--min_semi_space_size` 및 `--max_semi_space_size` (또는 `--max-semi-space-size`) 옵션을 사용하면 이 공간의 크기를 명시적으로 제어할 수 있다 [3, 14]. 트래픽이 많거나 생성 후 곧바로 소멸하는 소규모 객체가 매우 자주 생성되는 애플리케이션의 경우, New Space 크기를 늘려 마이너 GC의 발생 빈도를 줄이고 전반적인 성능 저하를 방지할 수 있다 [14]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Minor GC(Scavenger)]], [[Old Space(Old Generation)]], [[Generational Hypothesis]], [[Semi-space Design]] +- **Projects/Contexts:** [[V8 JavaScript Engine]], [[Node.js Memory Management]] +- **Contradictions/Notes:** 소스 간에 New Space의 일반적인 크기 범위에 대한 서술에 약간의 차이가 존재합니다. 소스 [4]은 행동 휴리스틱에 따라 "1MB에서 8MB 사이"라고 명시하지만, 소스 [7]은 "일반적으로 1MB에서 64MB 사이"로 다소 더 큰 범위를 제시합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/New Space(Young Generation).md]] +--- diff --git a/Programming & Language/New Space.md b/Programming & Language/New Space.md new file mode 100644 index 00000000..24995f27 --- /dev/null +++ b/Programming & Language/New Space.md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-BAE893 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - New Space" +--- + +# [[New Space]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> New Space(뉴 스페이스)는 V8 JavaScript 엔진의 힙(Heap) 메모리 영역 중 하나로, '젊은 세대(Young Generation)'라고도 불리며 대부분의 새로운 객체가 처음 할당되는 작고 빠른 공간입니다 [1-3]. 이 공간은 대부분의 객체가 생성된 직후 접근 불가능해진다는 '세대별 가설(Generational Hypothesis)'에 기반하여 설계되어, 수명이 짧은 객체들을 매우 빈번하고 빠르게 가비지 컬렉션(GC) 하도록 최적화되어 있습니다 [4-6]. 효율적인 메모리 관리를 위해 내부적으로 크기가 동일한 두 개의 반공간(To-Space와 From-Space)으로 나뉘어 운영됩니다 [7-9]. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Old Space]], [[Scavenger]], [[Garbage Collection]], [[Generational Hypothesis]], [[To-Space]], [[From-Space]] +- **Projects/Contexts:** [[V8 JavaScript Engine]], [[Node.js Memory Management]] +- **Contradictions/Notes:** 소스 [4] 및 [15]에서는 New Space의 크기가 일반적으로 1~8MB라고 설명하지만, 소스 [8]에서는 전형적으로 1MB~64MB 사이의 크기를 가진다고 주장하여 문헌 간 구체적인 기본 용량 범위에 수치상 차이가 있습니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/New Space.md]] +--- diff --git a/Programming & Language/Nodejs Memory Management.md b/Programming & Language/Nodejs Memory Management.md new file mode 100644 index 00000000..27aa3785 --- /dev/null +++ b/Programming & Language/Nodejs Memory Management.md @@ -0,0 +1,49 @@ +--- +id: P-REINFORCE-AUTO-3D2466 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Nodejs Memory Management" +--- + +# [[Nodejs Memory Management]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +**V8 메모리 아키텍처 (Stack & Heap)** +* Node.js를 실행하는 V8 엔진은 메모리를 스택(Stack)과 힙(Heap)으로 나누어 관리합니다 [1, 2]. +* 스택은 정적 데이터, 메서드/함수 프레임, 원시 값, 힙에 있는 객체를 가리키는 포인터를 LIFO(Last In, First Out) 방식으로 저장하며, 운영체제에 의해 매우 빠르게 자동 관리됩니다 [1, 10-12]. +* 힙은 실행 시간에 크기가 결정되는 동적 객체가 저장되는 곳으로 가비지 컬렉터(GC)의 주요 관리 대상이 됩니다 [10, 13, 14]. 힙 내부는 객체의 수명과 목적에 따라 New-space(Young generation), Old-space(Old generation), Large-object-space, Code-space, Map-space 등으로 세분화됩니다 [14-16]. + +**세대별 가비지 컬렉션 (Generational Garbage Collection)** +* **Minor GC (Scavenger):** New-space를 관리하는 빠르고 빈번한 컬렉터입니다 [17, 18]. New-space는 절반씩 To-space와 From-space로 나뉘며(Cheney's algorithm), 할당 포인터가 공간 끝에 도달하면 살아있는 객체만 To-space로 복사하고 죽은 객체를 버립니다 [18-20]. 이 과정을 두 번 생존한 객체는 Old-space로 승격(Promotion)됩니다 [17, 19, 20]. +* **Major GC (Mark-Sweep-Compact):** Old-space가 일정 한도에 도달하면 실행되며, Mark-Sweep-Compact 알고리즘을 사용합니다 [17, 21-23]. 루트(스택, 전역 객체 등)에서 시작해 도달 가능한 객체를 탐색하여 마킹(Marking)하고, 도달할 수 없는 영역을 회수(Sweeping)하며, 필요 시 살아남은 객체를 모아 단편화를 줄이는 압축(Compacting)을 수행합니다 [21, 24-27]. +* **Orinoco 프로젝트:** 전통적인 GC의 단점인 긴 일시 정지(Stop-the-world) 문제를 해결하기 위해 도입된 V8의 GC 아키텍처입니다 [28-30]. 작업 스레드를 활용하여 GC 작업을 병렬(Parallel), 점진적(Incremental), 동시적(Concurrent)으로 수행하여 메인 스레드의 부하와 지연을 최소화합니다 [31-37]. + +**메모리 누수 (Memory Leaks) 발생 패턴 및 분석** +* Node.js에서 메모리 누수는 객체가 유실된 것이 아니라 개발자가 의도치 않게 참조(Reference)를 유지하여 가비지 컬렉터가 이를 살아있는 것으로 간주할 때 발생합니다 [8, 38, 39]. +* 정상적인 GC 사이클을 거치는 애플리케이션은 톱니바퀴(Sawtooth) 형태의 메모리 사용 패턴을 보이지만, 누수가 있는 경우 해제되지 않고 계속 증가만 하는 라쳇(Ratchet) 패턴을 보입니다 [40-42]. +* 주요 누수 원인으로는 이벤트 리스너 누적(예: `EventEmitter` 경고), 해제되지 않은 타이머/인터벌(Timer Drift), 클로저 변수 보존(Closure Retention), 한도 없는 인메모리 캐시, 종료되지 않은 스트림(Streams) 등이 있습니다 [39, 43-46]. + +**모니터링 및 메모리 튜닝 (Monitoring and Tuning)** +* 코드 상에서 `process.memoryUsage()`를 통해 rss, heapTotal, heapUsed 등의 메모리 지표를 추적할 수 있으며 [47, 48], `--trace-gc` 플래그나 V8 모듈, 퍼포먼스 훅(Performance Hooks)을 통해 GC 활동 로그를 분석할 수 있습니다 [49-51]. +* 발견하기 힘든 누수 분석 시에는 Chrome DevTools의 Memory 패널을 이용하여 힙 스냅샷(Heap Snapshots)을 비교하거나 Allocation Timeline을 기록하여 누수 대상을 추적합니다 [40, 52-57]. +* Node.js 실행 시 플래그를 통해 메모리를 제어할 수 있습니다. `--max-old-space-size`로 Old-space 한도를 늘리거나, `--max-semi-space-size`로 New-space 크기를 키울 수 있으며, `--expose-gc`를 설정하면 애플리케이션에서 `global.gc()`를 통해 수동으로 GC를 유발할 수 있습니다 [58-62]. +* 포인터 압축(Pointer Compression) 기술로 인해 64비트 시스템에서도 V8 힙은 최대 4GB로 제한될 수 있으며, 이를 초과할 경우 빈번한 GC 발생 및 OOM이 일어날 수 있습니다 [63-66]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[V8 JavaScript Engine]], [[Garbage Collection]], [[Orinoco GC]], [[Memory Leaks]], [[Pointer Compression]] +- **Projects/Contexts:** [[Node.js Production Monitoring]], [[Chrome DevTools Memory Profiling]] +- **Contradictions/Notes:** `--expose-gc` 옵션을 사용해 코드 내에서 수동으로 GC(`global.gc()`)를 호출하여 메모리를 회수할 수는 있으나, 과도하게 사용하면 프로그램 성능 저하(Performance degradation)를 초래할 수 있으므로 주의해서 사용해야 한다고 경고합니다 [62, 67]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Node.js Memory Management.md]] +--- diff --git a/Programming & Language/Nodejs Memory Tuning.md b/Programming & Language/Nodejs Memory Tuning.md new file mode 100644 index 00000000..50114e63 --- /dev/null +++ b/Programming & Language/Nodejs Memory Tuning.md @@ -0,0 +1,45 @@ +--- +id: P-REINFORCE-AUTO-254A8B +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Nodejs Memory Tuning" +--- + +# [[Nodejs Memory Tuning]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Node.js 메모리 튜닝은 V8 자바스크립트 엔진에서 실행되는 Node.js 애플리케이션의 메모리 사용량을 모니터링, 관리 및 최적화하는 과정입니다 [1]. 이 튜닝의 핵심은 V8이 메모리를 힙(New Space 및 Old Space)과 스택으로 구성하는 방식과 가비지 컬렉션(GC)을 통해 메모리를 회수하는 방식을 이해하는 것입니다 [1, 2]. 개발자는 특정 명령줄 플래그를 사용하여 힙 크기와 GC 주기를 조정함으로써 애플리케이션의 성능을 향상시키고 메모리 부족(Out-of-memory)으로 인한 충돌을 방지할 수 있습니다 [1, 3-5]. + +## 📖 구조화된 지식 (Synthesized Content) +**V8 메모리 아키텍처의 이해** +* V8은 메모리를 주로 **힙(Heap)**과 **스택(Stack)**으로 나누어 관리합니다 [2, 6]. +* **스택(Stack):** 정적 데이터, 지역 변수, 함수 호출 정보가 LIFO(Last In, First Out) 방식으로 저장되는 작고 빠른 영역입니다 [6]. +* **힙(Heap):** 객체, 배열, 함수와 같은 동적 데이터가 할당되는 큰 영역이며, 가비지 컬렉터에 의해 관리됩니다 [6, 7]. 힙은 다시 단기 생존 객체가 생성되는 **New Space**(Young Generation)와 여러 번의 GC 주기를 버텨낸 장기 생존 객체가 보관되는 **Old Space** 등으로 세분화됩니다 [2, 7]. + +**메모리 모니터링 및 누수 탐지** +* 메모리를 튜닝하기 전에 `process.memoryUsage()` 메서드를 사용하여 애플리케이션의 메모리 소비량을 모니터링해야 합니다 [8, 9]. 이 메서드는 RSS(Resident Set Size), `heapTotal`, `heapUsed`, `external`, `arrayBuffers` 등의 메모리 지표를 반환합니다 [9]. +* 시간이 지나도 `heapUsed`가 반환되지 않고 지속적으로 증가한다면 메모리 누수를 나타내는 신호일 수 있습니다 [3]. +* `--trace-gc` 플래그를 사용하면 Scavenge(New Space GC)와 Mark-sweep(Old Space GC) 등의 가비지 컬렉션 이벤트를 콘솔에서 추적하여 메모리가 해제되는 상태와 GC 소요 시간을 분석할 수 있습니다 [10-12]. + +**명령줄 플래그를 활용한 메모리 튜닝** +Node.js는 메모리 최적화를 위해 V8 엔진의 메모리 관련 설정을 미세 조정할 수 있는 여러 명령줄 플래그(Command-Line Flags)를 제공합니다 [3]. +* `--max-old-space-size`: V8 힙에서 수명이 긴 객체들이 저장되는 Old Space의 최대 크기를 제한합니다 [4]. 지속적인 데이터를 많이 처리하는 애플리케이션의 경우, 이 값을 늘려주어(예: `--max-old-space-size=4096`) 잦은 GC로 인한 응답 속도 저하나 충돌을 방지할 수 있습니다 [4, 13]. +* `--max-semi-space-size`: 객체가 처음 할당되는 New Space의 크기를 조절합니다 [13]. 초당 요청 수가 많아 작은 객체가 수없이 생성되는 환경에서 이 값을 늘리면(예: `--max-semi-space-size=64`), 마이너 가비지 컬렉션의 빈도를 줄여 전반적인 성능 저하를 막을 수 있습니다 [5, 13]. +* `--gc-interval`: 가비지 컬렉션이 시도되는 주기를 조정합니다 [5]. 실시간 처리 등 특정 조건에서 GC의 주기를 명시적으로 제어할 필요가 있을 때 사용합니다(예: `--gc-interval=100`) [5, 14]. +* `--expose-gc`: 코드 내부에서 `global.gc()`를 호출하여 개발자가 수동으로 가비지 컬렉션을 실행할 수 있도록 허용하는 플래그입니다 [14, 15]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[V8 JavaScript Engine]], [[Garbage Collection]], [[Heap Memory]], [[Memory Leaks]] +- **Projects/Contexts:** [[Node.js Production Profiling]], [[Performance Optimization]] +- **Contradictions/Notes:** `--expose-gc` 플래그를 통해 수동으로 가비지 컬렉션을 실행하더라도, V8의 일반적인 자동 GC 알고리즘이 비활성화되는 것은 아닙니다. 수동 호출을 과도하게 사용하면 오히려 성능에 부정적인 영향을 미칠 수 있으므로 주의가 필요합니다 [15]. 또한, `--gc-interval`의 간격을 너무 짧게 설정할 경우 잦은 GC 수행으로 인해 애플리케이션의 성능 저하를 유발할 수 있습니다 [14]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Node.js Memory Tuning.md]] +--- diff --git a/Programming & Language/Nodejs Production Monitoring.md b/Programming & Language/Nodejs Production Monitoring.md new file mode 100644 index 00000000..55b46459 --- /dev/null +++ b/Programming & Language/Nodejs Production Monitoring.md @@ -0,0 +1,38 @@ +--- +id: P-REINFORCE-AUTO-D6D630 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Nodejs Production Monitoring" +--- + +# [[Nodejs Production Monitoring]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Node.js 프로덕션 모니터링은 단일 프로세스로 장기 실행되는 Node.js 애플리케이션 환경에서 메모리 누수나 성능 저하를 감지하고 해결하기 위한 필수적인 과정입니다 [1, 2]. 정상적인 가비지 컬렉션(GC) 이후 메모리가 기준치로 돌아오는지(톱니바퀴 패턴) 혹은 계속 증가하는지(래칫 패턴)를 관찰하여 이상 징후를 파악합니다 [2]. 이를 위해 `process.memoryUsage()`, 힙 스냅샷(Heap Snapshot), GC 이벤트 추적, 그리고 Prometheus와 같은 외부 알림 도구를 종합적으로 활용하여 애플리케이션의 OOM(Out of Memory) 충돌을 방지하고 안정성을 유지합니다 [3-5]. + +## 📖 구조화된 지식 (Synthesized Content) +* **기본 지표 및 패턴 모니터링:** 정상적인 Node.js 프로세스는 요청이 몰릴 때 힙 메모리가 증가했다가 GC 이후 기준치로 떨어지는 '톱니바퀴(Sawtooth)' 패턴을 보입니다 [2]. 반면 누수가 있는 프로세스는 메모리가 계속해서 누적되는 '래칫(Ratchet)' 패턴을 나타냅니다 [2]. 프로덕션 환경에서는 Prometheus의 `prom-client`를 활용해 메모리 지표를 내보내고, Grafana 알림 규칙을 설정하여 OOM 충돌 전에 누수를 포착할 수 있습니다 [4]. 또한 코드 내에서 `process.memoryUsage()`를 호출하여 RSS(Resident Set Size), heapTotal, heapUsed, external, arrayBuffers 등의 상태를 지속적으로 확인할 수 있습니다 [5]. +* **힙 프로파일링 및 스냅샷 도구:** + * V8 내장 프로파일링을 위해 외부 패키지 없이 `--heap-prof` 플래그를 사용하거나, `chrome://inspect`를 통해 Chrome DevTools에 연결하여 메모리 할당 타임라인을 기록할 수 있습니다 [2, 4]. + * Chrome 개발자 도구 접근이 불가능한 프로덕션 환경의 경우, `heapdump` 패키지를 사용하여 프로그래밍 방식으로 스냅샷을 캡처한 뒤 파일로 저장하여 로컬에서 분석할 수 있습니다 [3, 6]. + * `clinic.js` 도구를 사용하면 어떤 함수가 가장 많은 메모리를 유지하고 있는지 시각화하여 누수 원인을 빠르게 파악할 수 있습니다 [6]. +* **가비지 컬렉션(GC) 추적:** + * 애플리케이션 실행 시 `--trace-gc` 플래그를 사용하면 Scavenge 및 Mark-sweep과 같은 GC 이벤트의 세부 정보를 콘솔에 출력하여 메모리 소모량을 분석할 수 있습니다 [7-9]. + * 전체 수명 주기 동안의 추적이 부담스럽다면, `v8` 모듈을 사용해 런타임에 플래그를 동적으로 설정하거나, Node.js의 `perf_hooks` (PerformanceObserver)를 사용하여 프로그래밍 방식으로 GC 통계를 수집할 수 있습니다 [10, 11]. +* **일반적인 경고 및 누수 지표:** 모니터링 중 RSS는 증가하지만 힙 메모리가 안정적이라면 Native Buffer 또는 C++ 바인딩의 누수를 의심해야 하며, 이는 `process.memoryUsage().external`을 통해 확인할 수 있습니다 [12]. 또한, 단일 이벤트 방출기에 리스너가 누적될 때 발생하는 `MaxListenersExceededWarning` 경고는 프로덕션 환경에서 이벤트 리스너 누수의 확실한 신호로 간주됩니다 [6, 12]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[V8 Garbage Collection]], [[Heap Snapshot]], [[Memory Leak]], [[Performance Hooks]], [[Prometheus]] +- **Projects/Contexts:** [[Node.js Production Server]] +- **Contradictions/Notes:** Node.js는 단일 프로세스로 수명이 길기 때문에 요청 컨텍스트가 프로세스와 함께 소멸하는 전통적인 다중 프로세스 서버와 다르게 메모리 참조가 지속적으로 누적된다는 구조적 차이점이 있습니다 [1]. 한편, 모니터링이나 특정 엣지 케이스에서 `--expose-gc`를 통해 수동으로 GC(`global.gc()`)를 트리거할 수 있지만, 이는 정상적인 자동 GC 알고리즘을 비활성화하는 것은 아니며 남용할 경우 심각한 성능 저하를 유발할 수 있으므로 주의가 필요합니다 [13, 14]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Node.js Production Monitoring.md]] +--- diff --git a/Programming & Language/Nodejs 메모리 최적화.md b/Programming & Language/Nodejs 메모리 최적화.md new file mode 100644 index 00000000..60c816c2 --- /dev/null +++ b/Programming & Language/Nodejs 메모리 최적화.md @@ -0,0 +1,49 @@ +--- +id: P-REINFORCE-AUTO-4670EE +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Nodejs 메모리 최적화" +--- + +# [[Nodejs 메모리 최적화]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Node.js는 V8 엔진을 기반으로 실행되는 단일 프로세스이므로, 시간이 지남에 따라 메모리 누수가 지속적으로 누적될 수 있어 효율적인 메모리 관리가 필수적입니다 [1]. 정상적인 상태의 힙 메모리 사용량은 가비지 컬렉션(GC) 이후 원래 수준으로 돌아가는 톱니바퀴(sawtooth) 패턴을 보이지만, 메모리 누수가 발생하면 반환되지 않고 지속적으로 상승하는 래칫(ratchet) 패턴을 그립니다 [2]. 메모리 최적화는 각종 힙 프로파일링 도구와 명령줄 플래그를 활용하여 애플리케이션의 누수 패턴을 찾아 해결하고, GC 설정 및 힙 공간 크기를 튜닝하여 시스템의 안정성과 성능을 극대화하는 과정입니다 [2-4]. + +## 📖 구조화된 지식 (Synthesized Content) +**V8 메모리 구조 및 가비지 컬렉션(GC)** +* Node.js의 V8 엔진은 메모리를 힙(Heap)과 스택(Stack)으로 나누어 관리합니다 [5]. 스택은 지역 변수 및 함수 호출 프레임을 후입선출(LIFO) 원칙에 따라 관리하며, 힙은 동적으로 생성된 자바스크립트 객체와 데이터가 저장되는 곳으로 가비지 컬렉터의 주요 관리 대상이 됩니다 [6, 7]. +* 세대별 가설(Generational hypothesis)에 기반하여 힙은 '새로운 공간(New Space)'과 '오래된 공간(Old Space)'으로 나뉩니다 [5]. New Space에서는 단기 객체가 할당되며, 가볍고 빠른 마이너 GC(Scavenger)가 자주 실행되어 사용되지 않는 메모리를 회수합니다 [5, 8]. +* New Space에서 여러 번의 GC 주기를 생존한 객체들은 장기 보존 데이터로 간주되어 Old Space로 승격(Promotion)되며, 이 영역은 무겁지만 덜 빈번하게 실행되는 메이저 GC(Mark-Sweep-Compact 알고리즘)를 통해 관리됩니다 [5, 9, 10]. + +**메모리 누수 감지 및 모니터링** +* `process.memoryUsage()`를 사용하면 RSS(Resident Set Size), `heapTotal`, `heapUsed` 등의 수치를 통해 실행 중인 프로세스의 메모리 상태를 파악할 수 있습니다 [11]. +* 상용 환경에서는 `prom-client`를 통해 메모리 메트릭을 추출하고 Grafana와 같은 도구로 경고 규칙(Alert rule)을 설정하여, 메모리 부족(OOM) 크래시가 발생하기 전 누수를 조기 감지하는 것이 좋습니다 [12]. +* 누수가 의심될 때는 `--inspect` 플래그를 통해 Chrome DevTools에 연결하여 객체 할당 타임라인을 기록하거나, `heapdump` 라이브러리 및 `--heap-prof` 플래그를 활용해 힙 스냅샷을 캡처하여 추적할 수 있습니다 [2, 12, 13]. 트래픽 발생 전후의 두 가지 힙 스냅샷을 비교하면 반환되지 않고 남아 있는 메모리 할당 객체들을 정확히 찾아낼 수 있습니다 [13]. + +**자주 발생하는 메모리 누수 원인과 해결 패턴** +* **이벤트 리스너 누적:** `on('event', fn)` 호출 후 리스너를 명시적으로 제거하지 않아 발생하며, 단일 이벤트 발생기에 리스너가 10개를 초과하면 `MaxListenersExceededWarning`이 발생하여 누수를 강력히 암시합니다 [14, 15]. +* **클로저(Closure) 변수 유지:** 요청 및 응답 객체 전체와 같은 커다란 변수가 클로저에 캡처된 상태로 콜백이나 비동기 체인 내에 남겨지면 가비지 컬렉터가 이를 수집하지 못합니다 [15]. +* **무제한 캐시 및 잊혀진 타이머:** 인메모리 캐시를 사용할 때 한도를 설정하지 않거나, `setInterval`로 생성된 타이머를 `clearInterval`로 정리하지 않으면 연관된 클로저 전체가 메모리에 영구적으로 보존됩니다 [15, 16]. +* **종료되지 않은 스트림과 소켓:** 스트림이나 네트워크 핸들의 응답 본문을 다 소비하지 않은 경우, 내부 버퍼가 유지되므로 반드시 `cancel()`이나 `destroy()`를 호출해 정리해야 합니다 [16]. + +**메모리 튜닝용 명령줄 플래그(CLI Flags)** +* `--max-old-space-size`: Old Space의 한계를 메가바이트(MB) 단위로 설정하며, 대량의 데이터 배치 처리나 많은 사용자 세션 등 메모리 소모가 큰 애플리케이션의 성능 저하 및 OOM 방지에 사용됩니다 [4]. +* `--max-semi-space-size`: New Space의 크기를 조절하며, 단기 객체(예: API 요청마다 생성되는 임시 객체)가 대량으로 생성되는 환경에서 늘려주면 잦은 마이너 GC 실행을 줄여 전반적인 성능을 높일 수 있습니다 [17]. +* `--gc-interval` 및 `--expose-gc`: 가비지 컬렉션의 빈도를 강제로 조정하거나, 프로그램 내부에서 `global.gc()`를 호출해 수동으로 가비지 컬렉션을 실행할 수 있도록 하는 옵션입니다 [18-20]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[V8 JavaScript Engine]], [[Garbage Collection (GC)]], [[Heap Snapshot]] +- **Projects/Contexts:** [[Chrome DevTools Memory Profiling]], [[Node.js Production Environments]] +- **Contradictions/Notes:** `--expose-gc` 플래그를 통한 수동 가비지 컬렉션 호출(`global.gc()`)은 대량의 데이터 처리 후 즉시 메모리를 회수해야 하는 특수 상황에서 유용할 수 있지만, 일반적인 V8의 자동 GC 메커니즘을 대체하는 것은 아니며 남용 시 과도한 GC 사이클 실행으로 인해 애플리케이션 성능을 크게 저하시킬 위험이 있습니다 [20]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Node.js 메모리 최적화.md]] +--- diff --git a/Programming & Language/Nodejs 메모리 튜닝.md b/Programming & Language/Nodejs 메모리 튜닝.md new file mode 100644 index 00000000..279e2ba9 --- /dev/null +++ b/Programming & Language/Nodejs 메모리 튜닝.md @@ -0,0 +1,52 @@ +--- +id: P-REINFORCE-AUTO-EA5D5E +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Nodejs 메모리 튜닝" +--- + +# [[Nodejs 메모리 튜닝]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Node.js 메모리 튜닝은 V8 자바스크립트 엔진의 메모리 구조와 가비지 컬렉션(GC) 메커니즘을 이해하고, 이를 최적화하여 애플리케이션의 성능 저하 및 메모리 누수를 방지하는 과정을 의미합니다 [1, 2]. 개발자는 `--max-old-space-size`와 같은 커맨드라인 플래그를 활용해 힙(Heap) 공간을 조절하거나, `process.memoryUsage()`, 힙 스냅샷 등의 도구를 사용하여 비효율적인 메모리 할당 및 해제되지 않은 참조를 추적할 수 있습니다 [3-5]. 결과적으로 주기적인 메모리 모니터링과 올바른 튜닝은 Out-Of-Memory(OOM) 충돌을 예방하고 애플리케이션의 응답 속도를 일정하게 유지하는 데 핵심적인 역할을 합니다 [6, 7]. + +## 📖 구조화된 지식 (Synthesized Content) +* **V8 엔진의 메모리 구조와 세대별 가비지 컬렉션** + * V8은 메모리를 스택(Stack)과 힙(Heap)으로 분리하여 관리합니다 [8-10]. 스택은 원시 값과 함수 호출 프레임을 저장하며, 힙은 동적 데이터(객체)를 보관합니다 [10-12]. + * 힙 영역은 객체의 수명에 따라 'New Space(Young Generation)'와 'Old Space(Old Generation)'로 나뉩니다 [9, 13]. + * **Minor GC (Scavenger):** 짧은 수명의 객체가 할당되는 New Space를 관리하며, 도달할 수 없는 객체를 자주, 그리고 매우 빠르게 정리합니다 [9, 13, 14]. + * **Major GC (Mark-Sweep-Compact):** Minor GC를 여러 번 생존한 객체들은 Old Space로 이동(Promotion)하며, 메모리가 부족해질 때 Mark-Sweep 및 Mark-Compact 알고리즘을 통해 사용되지 않는 메모리를 확보하고 단편화를 제거합니다 [13, 15-18]. + +* **메모리 튜닝을 위한 커맨드라인 플래그** + * `--max-old-space-size`: 수명이 긴 객체들이 저장되는 Old Space의 최대 한도를 설정합니다. 캐시나 대규모 세션 데이터를 유지하는 애플리케이션에서 OOM 에러를 방지하기 위해 이 값을 증가시킬 수 있습니다 [5, 19]. + * `--max-semi-space-size`: New Space의 크기를 조절합니다. 고트래픽 API 서버처럼 수명이 짧은 임시 객체가 대량으로 생성되는 환경에서 이 값을 늘리면 Minor GC 발생 빈도를 줄여 성능을 향상할 수 있습니다 [19, 20]. + * `--gc-interval`: GC 주기를 강제로 조정할 수 있으나, 과도하게 낮추면 GC가 빈번하게 발생하여 성능 저하를 유발할 수 있습니다 [20, 21]. + * `--expose-gc`: 코드 내에서 `global.gc()`를 통해 수동으로 GC를 트리거할 수 있게 해 주지만, 잦은 호출은 성능에 악영향을 미치므로 주의해서 사용해야 합니다 [21, 22]. + +* **메모리 누수 감지 및 모니터링 도구** + * **`process.memoryUsage()`:** rss(Resident Set Size), heapTotal, heapUsed 등의 수치를 제공하여 현재 Node.js 프로세스의 메모리 상태를 지속적으로 모니터링할 수 있습니다 [4, 23]. + * **`--trace-gc` 로그 추적:** 애플리케이션 시작 시 해당 플래그를 제공하면, Scavenge나 Mark-sweep 같은 GC 이벤트가 발생할 때마다 메모리 변화량, 소요 시간, 발생 원인(예: allocation failure) 등의 상세 로그를 콘솔에 출력합니다 [24-27]. + * **힙 스냅샷(Heap Snapshots):** Chrome DevTools나 `heapdump` 라이브러리를 사용하여 메모리 상태를 캡처할 수 있습니다. 로드 테스트 전후의 스냅샷을 비교(Comparison view)하여 GC 이후에도 회수되지 않고 남아 있는 객체(메모리 누수 후보)를 식별할 수 있습니다 [3, 28-30]. + * **Performance Hooks:** Node.js의 `perf_hooks` 모듈에서 `PerformanceObserver`를 사용하면 프로그래밍 방식으로 GC 통계를 추적하여 성능 오버헤드를 정밀하게 모니터링할 수 있습니다 [31]. + +* **주요 메모리 누수 패턴 (Memory Leak Patterns)** + * Node.js에서의 누수는 메모리가 유실된 것이 아니라 GC 루트로부터의 참조가 끈질기게 남아있어 V8이 이를 회수하지 못하는 상태를 뜻합니다 [32]. + * 주요 누수 패턴으로는 해제되지 않은 이벤트 리스너(`EventEmitter`), 변수 참조를 잃지 않는 클로저(Closures), 크기 제한이 없는 인메모리 캐시, 정리되지 않은 타이머(`setInterval`), 제대로 닫히지 않은 스트림과 소켓 등이 있습니다 [33-35]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[V8 자바스크립트 엔진]], [[가비지 컬렉션(GC)]], [[힙 스냅샷(Heap Snapshot)]], [[메모리 누수(Memory Leak)]] +- **Projects/Contexts:** [[Orinoco GC 프로젝트]], [[Chrome DevTools 메모리 분석]] +- **Contradictions/Notes:** + - V8 엔진의 포인터 압축(Pointer Compression) 기능 활성화 시, 64비트 시스템에 128GB의 RAM이 있더라도 단일 V8 프로세스(Isolate)의 관리 힙 크기는 4GB의 연속된 메모리 케이지(Cage)로 엄격하게 제한됩니다 [36-38]. 이 제한에 도달하면 메모리를 확보하기 위해 Major GC의 빈도가 극적으로 증가하며, 결과적으로 OOM 충돌을 유발할 수 있습니다 [38]. + - 메모리 최적화를 위해 애플리케이션 코드 내에서 `global.gc()`를 수동으로 지속 호출하는 것은 V8의 자동화된 GC 알고리즘을 방해하고 성능을 떨어뜨릴 수 있으므로 권장되지 않습니다 [22, 39]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Node.js 메모리 튜닝.md]] +--- diff --git a/Programming & Language/Nodejs 성능 디버깅.md b/Programming & Language/Nodejs 성능 디버깅.md new file mode 100644 index 00000000..8f020da0 --- /dev/null +++ b/Programming & Language/Nodejs 성능 디버깅.md @@ -0,0 +1,48 @@ +--- +id: P-REINFORCE-AUTO-7A23E5 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Nodejs 성능 디버깅" +--- + +# [[Nodejs 성능 디버깅]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Node.js 성능 디버깅은 주로 V8 엔진의 힙(Heap) 메모리 사용량을 추적하고 가비지 컬렉션(GC) 동작을 분석하여 애플리케이션의 성능 저하 및 메모리 누수(Memory Leak)를 해결하는 과정이다 [1, 2]. 힙 스냅샷(Heap Snapshot), 할당 타임라인, GC 트레이싱 등의 진단 도구를 활용하여 메모리 내에서 불필요하게 유지되는 참조 객체를 식별한다 [3-5]. 이와 더불어, 실시간 모니터링 API 및 V8 명령줄 플래그 튜닝을 통해 메모리 한계를 조정하여 서버 안정성과 처리량을 최적화할 수 있다 [6-8]. + +## 📖 구조화된 지식 (Synthesized Content) +* **메모리 누수의 정의와 주요 패턴** + Node.js에서 메모리 누수는 가비지 컬렉터(GC)에 의해 수거되어야 할 객체가 클로저(Closure), 전역 변수 등에 의해 여전히 참조를 유지하고 있을 때 발생한다 [3, 9]. 이로 인해 시간이 지남에 따라 메모리가 지속적으로 증가하며, 결과적으로 프로세스가 Out-Of-Memory(OOM) 오류로 인해 중단될 수 있다 [10, 11]. Node.js 환경에서 가장 흔하게 발생하는 누수 패턴은 다음과 같다: + * **이벤트 리스너 누적**: `on('event', fn)`을 지속적으로 추가하고 제거하지 않으면 해당 콜백 함수와 관련된 메모리가 누수된다 [12]. + * **클로저(Closure) 변수 보존**: 비동기 체인이나 스코프를 공유하는 클로저 내부에 큰 객체를 캡처해 두면 해당 클로저의 수명 주기 동안 메모리가 유지된다 [13, 14]. + * **무제한 캐시(Unbounded Cache)**: 인메모리 캐시의 크기나 만료를 제한하지 않으면 데이터가 끝없이 축적된다 [14]. + * **정리되지 않은 타이머**: `clearInterval`이 호출되지 않은 `setInterval`은 콜백 클로저에 있는 모든 항목의 GC를 방지한다 [15, 16]. + * **닫히지 않은 스트림 및 소켓**: 올바르게 종료되지 않은 스트림은 내부 버퍼와 네트워크 핸들을 점유한다 [16]. + +* **메모리 디버깅 및 프로파일링 도구** + * **힙 스냅샷(Heap Snapshots)**: 특정 시점의 전체 메모리 상태를 캡처하는 기능으로, Chrome DevTools에서 스냅샷들을 비교('Comparison' 뷰)하여 메모리 누수를 검사할 수 있다 [4, 17-19]. `--inspect` 플래그로 연결하거나 `heapdump` 패키지를 사용해 캡처한 뒤 '할당된 후 해제되지 않은 객체(Objects allocated between snapshots)'를 찾아낸다 [4, 5, 18]. + * **할당 타임라인(Allocation Timeline)**: 특정 시간 동안의 메모리 할당을 시각적으로 추적한다 [17, 20]. 가비지 컬렉션 후에도 살아있는 객체는 파란색 막대로 표시되며, 이를 통해 메모리 누수 후보를 특정할 수 있다 [5, 17, 20]. + * **GC 트레이싱(--trace-gc)**: `--trace-gc` 플래그를 사용해 실행하면 가비지 컬렉션의 세부 발생 시간, 소요 시간, GC 전후의 힙 용량 변화를 콘솔에서 확인할 수 있다 [5, 21, 22]. 만약 Mark-sweep(오래된 세대 GC) 작업이 지나치게 빈번하거나 GC 이후에도 힙이 원래 수준으로 줄어들지 않으면 메모리 누수의 강력한 신호이다 [23]. + * **메모리 모니터링 API**: 코드 내에서 `process.memoryUsage()`를 호출하여 프로세스에 할당된 전체 메모리(`rss`)와 힙의 총량(`heapTotal`), 현재 사용 중인 힙(`heapUsed`) 등을 실시간으로 파악할 수 있다 [6, 7]. + +* **메모리 튜닝 및 최적화** + Node.js는 V8 엔진의 메모리 제한 및 GC 빈도를 직접 제어할 수 있는 명령줄 플래그를 제공한다 [7]. + * `--max-old-space-size`: 수명이 긴 객체들이 저장되는 Old Space의 크기 한도를 설정하여, 지속적인 데이터를 다룰 때 OOM을 지연시키거나 예방할 수 있다 [8, 24]. + * `--max-semi-space-size`: 빈번하게 생성 및 소멸되는 객체가 저장되는 New Space의 크기를 조절한다. 처리량이 많은 상황에서 이 크기를 늘리면 잦은 Scavenge(마이너 GC) 사이클을 줄여 성능을 향상할 수 있다 [24, 25]. + * `--expose-gc`: 이를 설정하면 애플리케이션 코드 내에서 `global.gc()`를 수동으로 호출하여 대량의 데이터 처리 후 명시적으로 메모리를 회수할 수 있다 [26, 27]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[V8 JavaScript Engine]], [[Garbage Collection]], [[Heap Snapshot]], [[Memory Leak]] +- **Projects/Contexts:** [[Chrome DevTools Memory Panel]], [[Node.js Production Environment]] +- **Contradictions/Notes:** 애플리케이션 개발자가 `System.gc()` 또는 `global.gc()`를 사용하여 수동으로 가비지 컬렉션을 트리거할 수는 있으나, GC 동작을 임의로 예측 및 강제 실행하는 행위는 오히려 애플리케이션의 성능을 저하시킬 수 있으므로 주의해서 사용해야 한다 [27, 28]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Node.js 성능 디버깅.md]] +--- diff --git a/Programming & Language/Nodejs 성능 최적화 및 디버깅.md b/Programming & Language/Nodejs 성능 최적화 및 디버깅.md new file mode 100644 index 00000000..76ec0290 --- /dev/null +++ b/Programming & Language/Nodejs 성능 최적화 및 디버깅.md @@ -0,0 +1,42 @@ +--- +id: P-REINFORCE-AUTO-C8E2E0 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Nodejs 성능 최적화 및 디버깅" +--- + +# [[Nodejs 성능 최적화 및 디버깅]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> '할당 타임라인(Allocation Timeline)' 도구는 힙 프로파일러의 세부적인 스냅샷 정보와 타임라인 패널의 점진적인 추적 기능을 결합하여 브라우저와 Node.js 환경에서 메모리 할당을 모니터링하는 기능이다 [1, 2]. 이 도구는 기록 세션 동안 최대 50ms마다 주기적으로 힙 스냅샷을 캡처하여 객체의 생명주기를 시각화한다 [3, 4]. 이를 통해 가비지 컬렉션(GC) 이후에도 메모리에 남아있는 객체와 그 참조 경로를 파악함으로써 애플리케이션의 메모리 누수를 감지하고 디버깅하는 데 필수적으로 활용된다 [5-8]. + +## 📖 구조화된 지식 (Synthesized Content) +- **할당 타임라인의 동작 및 추적 원리:** + 할당 타임라인 도구는 타임라인 기록을 시작하고 작업을 수행한 뒤 기록을 중지하는 과정 동안 주기적으로 힙 스냅샷을 캡처하며, 기록 종료 시 최종 스냅샷을 한 번 더 찍는다 [1-4]. V8 엔진의 가비지 컬렉션 과정에서 객체의 물리적 메모리 주소는 변경될 수 있으므로, 해당 도구는 여러 스냅샷에 걸쳐 일관되게 유지되는 객체 ID(`@` 뒤에 붙는 숫자)를 부여하여 힙 상태의 변화를 정밀하게 추적하고 비교할 수 있게 한다 [3, 4]. + +- **메모리 할당 시점별 로그 시각화:** + 타임라인 도구의 상단 막대는 특정 시점에 힙에서 발견된 새로운 객체의 크기와 발생 시점을 나타낸다 [5, 8]. 이 막대의 색상은 객체의 생존 여부를 시각적으로 보여준다. + - **파란색 막대 (Blue bars):** 타임라인 기록이 끝날 때까지 가비지 컬렉션에 수거되지 않고 살아남은 객체를 의미하며, 이 객체들은 메모리 누수(Memory Leak)의 주요 후보군이 된다 [5, 8-10]. + - **회색 막대 (Gray bars):** 특정 시점에 할당되었으나 이후 가비지 컬렉터에 의해 정상적으로 수거(해제)된 객체를 의미한다 [5, 8-10]. + +- **보존 트리(Retaining Tree)를 통한 힙 동작 상세 분석:** + 할당 타임라인에서 파란색 막대 범위를 좁혀 힙 내의 특정 객체를 클릭하면, 하단 패널(Retainers pane)에 보존 트리가 표시된다 [6, 11, 12]. 이 트리는 가비지 컬렉션의 루트(예: 전역 객체나 활성 스택)로부터 해당 객체를 살아있게 유지시키는 참조 체인을 역추적하여 보여준다 [6, 11]. 개발자는 이 보존 경로를 조사하여 객체가 수거되지 않은 원인을 이해하고, 불필요한 참조 코드를 수정하여 메모리를 해제할 수 있다 [6, 12]. + +- **Node.js 운영 환경에서의 적용 및 로그(Log) 수집:** + Node.js 환경에서도 `--inspect` 플래그를 사용하여 크롬 개발자 도구에 연결한 뒤 'Memory > Allocation instrumentation on timeline'을 활용할 수 있다 [7]. 부하 테스트(예: 100~1,000건의 요청)를 진행하면서 타임라인을 기록하고 수거되지 않는 파란색 막대를 확인하여 메모리 누수 위치를 신속하게 특정할 수 있다 [7, 13]. 또한 터미널 레벨에서 `--trace-gc` 플래그를 지정하면 V8 엔진은 메모리 할당 실패(allocation failure) 시 발생하는 GC 이벤트마다 타임스탬프(ms), GC 유형(예: Scavenge, Mark-sweep), GC 전후의 힙 사용량(MB) 및 소요 시간 등을 상세한 텍스트 로그 형태로 출력하여 메모리 포화 상태를 디버깅할 수 있게 해준다 [14-16]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[할당 타임라인(Allocation Timeline)]], [[힙 스냅샷(Heap Snapshot)]], [[V8 힙(Heap)]], [[가비지 컬렉션(Garbage Collection)]] +- **Projects/Contexts:** [[Chrome DevTools(크롬 개발자 도구)]], [[Node.js 메모리 누수 분석]] +- **Contradictions/Notes:** 그래프에서 메모리 사용량이 증가한다고 해서 그것이 모두 메모리 누수를 의미하는 것은 아니다. 캐시(Caches), 실행 취소 기록(Undo histories) 등은 의도적으로 데이터를 메모리에 유지하므로, 정상적인 데이터 보존과 우발적인 메모리 누수를 명확히 구분하여 분석해야 한다 [17]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Node.js 성능 최적화 및 디버깅.md]] +--- diff --git a/Programming & Language/Nodejs 프로세스 모니터링 및 메모리 분석.md b/Programming & Language/Nodejs 프로세스 모니터링 및 메모리 분석.md new file mode 100644 index 00000000..73ed416c --- /dev/null +++ b/Programming & Language/Nodejs 프로세스 모니터링 및 메모리 분석.md @@ -0,0 +1,52 @@ +--- +id: P-REINFORCE-AUTO-56A451 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Nodejs 프로세스 모니터링 및 메모리 분석" +--- + +# [[Nodejs 프로세스 모니터링 및 메모리 분석]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Node.js는 V8 엔진 위에서 실행되며, 메모리는 주로 힙(Heap)과 스택(Stack)으로 나뉘어 관리됩니다 [1, 2]. 단일 프로세스로 오랫동안 실행되는 환경 특성상, 코드 상의 실수로 해제되지 않은 메모리 참조가 누적되면 가비지 컬렉터(GC)가 이를 회수하지 못해 Out-Of-Memory(OOM) 크래시로 이어질 수 있습니다 [2, 3]. 따라서 지속적인 메모리 사용량 모니터링과 함께, 힙 스냅샷(Heap Snapshot)과 할당 타임라인(Allocation Timeline) 등의 도구를 활용하여 누수(Leak)의 근본 원인이 되는 객체 참조를 찾아내는 분석 과정이 필수적입니다 [4-6]. + +## 📖 구조화된 지식 (Synthesized Content) +- **메모리 구조 및 작동 원리** + - V8 엔진의 메모리는 크게 힙(Heap)과 스택(Stack)으로 구분됩니다 [1, 2]. 스택은 원시 값(Primitive values)과 힙 객체에 대한 포인터, 그리고 함수 실행 프레임과 같은 정적 데이터를 저장하며 운영 체제에 의해 빠르게 자동으로 관리됩니다 [7-11]. + - 힙은 객체와 동적 데이터가 저장되는 가장 큰 메모리 영역이며 가비지 컬렉션의 주 대상이 됩니다 [12]. 힙은 생성 주기에 따라 짧은 수명의 객체가 머무는 New Space(젊은 세대)와 오래 살아남은 객체가 승격되는 Old Space(오래된 세대) 등으로 나뉘며, 각각 Scavenge(마이너 GC)와 Mark-Sweep-Compact(메이저 GC) 알고리즘으로 관리됩니다 [12-14]. + +- **프로세스 메모리 모니터링 방법** + - **코드 기반 모니터링**: `process.memoryUsage()`를 호출하면 프로세스의 메모리 사용량을 RSS(Resident Set Size), heapTotal(할당된 힙 총량), heapUsed(사용 중인 힙), external(C++ 바인딩 등 외부 메모리) 등으로 상세히 확인할 수 있습니다 [15]. + - **프로덕션 환경 모니터링**: `prom-client`를 이용해 메모리 메트릭을 Prometheus에 내보내고, Grafana 알림을 설정하여 프로세스가 OOM으로 종료되기 전에 선제적으로 누수를 포착할 수 있습니다 [16]. + - **GC 활동 추적**: `--trace-gc` 플래그를 사용하거나 `perf_hooks`의 PerformanceObserver를 사용하여 가비지 컬렉션 로그를 확인할 수 있습니다 [17, 18]. 정상적인 프로세스는 트래픽이 몰릴 때 힙이 증가했다가 GC 이후 다시 기준선으로 돌아오는 '톱니바퀴(sawtooth)' 패턴을 보이지만, 메모리 누수가 발생하면 기준선이 계속 상승하는 '래칫(ratchet)' 패턴이 관찰됩니다 [4, 19]. + +- **메모리 분석 및 누수 탐지 도구** + - **할당 타임라인 (Allocation Timeline)**: Chrome DevTools에서 일정 시간 동안의 할당을 기록할 수 있습니다 [20, 21]. 분석 화면에서 해제되지 않고 메모리에 여전히 남아있는 객체는 파란색 막대로 표시되며, 이 파란색 막대를 조사하여 누수 후보를 찾아낼 수 있습니다 [22-24]. + - **힙 스냅샷 (Heap Snapshot)**: 프로세스의 메모리 상태를 포착하며, 두 개 이상의 스냅샷을 찍고 "비교(Comparison)" 뷰를 이용해 두 시점 사이에 생성되었으나 삭제되지 않은 객체들을 필터링할 수 있습니다 [25, 26]. 이 뷰를 통해 해당 객체 자체가 차지하는 얕은 크기(Shallow size)와, 객체 삭제 시 회수 가능한 보존 크기(Retained size)를 파악하고, Retainers 트리를 추적해 메모리를 붙잡고 있는 루트 원인을 찾아냅니다 [27, 28]. + - 프로덕션 서버와 같이 UI가 없는 환경에서는 `heapdump` 패키지를 통해 스냅샷을 생성하거나, V8 네이티브 프로파일링 기능인 `--heap-prof` 플래그를 사용하여 npm 패키지 의존성 없이 할당 내역을 파일로 저장하여 분석할 수 있습니다 [16, 29]. + +- **주요 메모리 누수 패턴 (Memory Leak Patterns)** + - **이벤트 리스너 누적**: 요청 핸들러 내에서 `on('event', fn)`과 같은 리스너를 지속적으로 추가하고 제거하지 않는 경우 발생합니다. (Node.js에서 단일 에미터에 10개 이상의 리스너가 등록될 때 발생하는 `MaxListenersExceededWarning`은 프로덕션 누수를 확정하는 주요 신호입니다) [29]. + - **클로저 변수 유지 (Closure Variable Retention)**: 여러 클로저가 스코프를 공유할 때, 의도치 않게 대용량 데이터(예: 전체 요청/응답 객체)가 캡처된 채 요청 수명주기를 초과해 유지되면서 발생합니다 [30, 31]. + - 그 외 무제한 캐시(Unbounded Cache) 증가, `clearInterval`이 누락된 타이머 인터벌, 복잡한 순환 참조(Circular References), `destroy()`나 `cancel()` 호출 없이 방치된 스트림(Stream)과 소켓 등이 대표적인 원인입니다 [31, 32]. + +- **명령줄 플래그를 활용한 메모리 튜닝 (Memory Tuning)** + - `--max-old-space-size`: 장기 생존 객체가 저장되는 Old Space의 최대 크기를 메가바이트 단위로 설정하여 무거운 작업이나 세션 데이터 저장을 최적화합니다 [33]. + - `--max-semi-space-size`: New Space의 크기를 조절하여 단기 객체의 잦은 생성으로 인한 마이너 GC 발생 빈도를 늦출 수 있습니다 [34]. + - `--expose-gc`: 애플리케이션 코드 내에서 `global.gc()`를 호출해 개발자가 수동으로 가비지 컬렉션을 트리거할 수 있게 합니다 [35, 36]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[V8 Garbage Collection]], [[Heap Snapshot]], [[Memory Leak Patterns]] +- **Projects/Contexts:** [[Node.js Production Environment]], [[Chrome DevTools Memory Panel]] +- **Contradictions/Notes:** `--expose-gc` 플래그를 사용하여 수동으로 GC를 실행(`global.gc()`)할 수 있지만, 이것이 V8의 일반적인 자동 GC 알고리즘을 비활성화하는 것은 아닙니다. 수동 호출은 보조적인 역할일 뿐이며, 과도하게 사용할 경우 오히려 애플리케이션 성능에 심각한 악영향을 미칠 수 있습니다 [36]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Node.js 프로세스 모니터링 및 메모리 분석.md]] +--- diff --git a/Programming & Language/Nodejs.md b/Programming & Language/Nodejs.md new file mode 100644 index 00000000..cb4c3a38 --- /dev/null +++ b/Programming & Language/Nodejs.md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-09A043 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Nodejs" +--- + +# [[Nodejs]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Node.js는 구글의 V8 자바스크립트 엔진을 기반으로 구축되어 서버 측에서 자바스크립트를 실행할 수 있게 해주는 런타임 환경입니다 [1]. 전통적인 다중 프로세스 서버와 달리 단일 프로세스로 장시간 실행되는 특징을 가지며, 이로 인해 누수된 참조가 프로세스 수명 동안 지속적으로 누적될 수 있습니다 [2, 3]. Node.js의 메모리 할당 및 가비지 컬렉션(GC)은 전적으로 내장된 V8 엔진의 자동 메모리 관리 메커니즘에 의존합니다 [1, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +* **메모리 구조 (Memory Structure):** Node.js 프로세스의 메모리는 크게 스택(Stack)과 힙(Heap)으로 나뉩니다 [1, 5]. 스택은 로컬 변수, 함수 호출 정보 등을 저장하며 후입선출(LIFO) 방식으로 빠르게 작동합니다 [5]. 반면 힙은 자바스크립트 객체, 배열, 함수 등 동적 데이터가 할당되는 곳으로, 가비지 컬렉터에 의해 관리되며 크기가 고정되어 있지 않습니다 [5, 6]. +* **가비지 컬렉션 (Garbage Collection):** Node.js를 구동하는 V8 엔진은 "대부분의 객체는 일찍 죽는다"는 세대별 가설(Generational hypothesis)을 바탕으로 힙을 관리합니다 [7, 8]. 수명이 짧은 객체는 'New Space(젊은 세대)'에 할당되어 'Scavenger(Minor GC)'에 의해 자주 수집되며, 여러 번의 GC 주기를 살아남은 장기 체류 객체는 'Old Space(오래된 세대)'로 이동하여 'Mark-Sweep-Compact(Major GC)' 알고리즘을 통해 덜 빈번하게 수집됩니다 [7, 9, 10]. +* **프로덕션 환경의 메모리 누수 패턴:** Node.js는 단일 프로세스로 오래 실행되기 때문에 도달 불가능해야 할 객체가 코드상의 참조로 인해 메모리에 계속 남아있는 경우 심각한 누수가 발생합니다 [2, 11]. 주요 누수 원인으로는 누적된 `EventEmitter` 리스너, 클로저 변수 유지, 무제한으로 커지는 인메모리 캐시, 해제되지 않은 타이머(`setInterval`), 닫히지 않은 스트림이나 소켓, 그리고 `AsyncLocalStorage` 컨텍스트 누수 등이 있습니다 [12-14]. +* **메모리 튜닝 및 모니터링:** 개발자는 `process.memoryUsage()` 메서드를 통해 RSS(상주 집합 크기), heapTotal, heapUsed, external 등의 메모리 사용량을 모니터링할 수 있습니다 [15]. 또한 `--max-old-space-size`(Old Space 제한), `--max-semi-space-size`(New Space 제한), `--gc-interval`, `--expose-gc`와 같은 명령줄 플래그를 사용하여 힙 크기를 튜닝하거나 수동으로 GC를 제어할 수 있습니다 [16-19]. +* **진단 및 추적:** GC 활동은 `--trace-gc` 플래그나 `v8` 모듈, 성능 훅(performance hooks)을 통해 프로그램적으로 추적할 수 있습니다 [20-22]. 메모리 누수가 의심될 때는 Chrome DevTools의 Memory 탭과 `--inspect` 플래그, 또는 `heapdump` 패키지를 이용해 힙 스냅샷을 캡처하고 객체의 유지 경로(Retaining path)를 분석하여 원인을 식별합니다 [23-25]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[V8 JavaScript Engine]], [[Garbage Collection]], [[Memory Management]] +- **Projects/Contexts:** [[Node.js Memory Tuning and Diagnostics]], [[Electron and the V8 Memory Cage]] +- **Contradictions/Notes:** 수동으로 가비지 컬렉션을 트리거하기 위해 `--expose-gc` 플래그를 사용하여 `global.gc()`를 호출할 수 있지만, 이는 V8의 자동 GC 알고리즘을 비활성화하는 것이 아니며 남용할 경우 성능 저하를 일으킬 수 있으므로 주의해서 사용해야 합니다 [19, 26]. 또한, 전통적인 가비지 컬렉터는 애플리케이션을 완전히 멈추는(stop-the-world) 문제를 유발했으나, V8의 최신 Orinoco GC는 메인 스레드의 멈춤을 최소화하기 위해 병렬(Parallel), 증분(Incremental), 동시(Concurrent) 기법을 도입하여 백그라운드에서 메모리를 회수합니다 [27-30]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Node.js.md]] +--- diff --git a/Programming & Language/Nominal-Subtyping.md b/Programming & Language/Nominal-Subtyping.md new file mode 100644 index 00000000..d6c2157c --- /dev/null +++ b/Programming & Language/Nominal-Subtyping.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-60CC9F +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Nominal-Subtyping" +--- + +# [[Nominal-Subtyping]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Nominal-Subtyping.md]] +--- diff --git a/Programming & Language/Nominal-Typing.md b/Programming & Language/Nominal-Typing.md new file mode 100644 index 00000000..2ea09d9c --- /dev/null +++ b/Programming & Language/Nominal-Typing.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-F87246 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Nominal-Typing" +--- + +# [[Nominal-Typing]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Nominal-Typing.md]] +--- diff --git a/Programming & Language/Non-null Assertion Operator.md b/Programming & Language/Non-null Assertion Operator.md new file mode 100644 index 00000000..5dee75d7 --- /dev/null +++ b/Programming & Language/Non-null Assertion Operator.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-D4BCC2 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Non-null Assertion Operator" +--- + +# [[Non-null Assertion Operator]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +- **기능 및 정의**: Non-null Assertion Operator는 `!` 기호를 통해 표현되며, 해당 변수나 표현식의 값이 `null` 또는 `undefined`가 아님을 컴파일러에게 명시적으로 단언(assert)합니다 [1]. +- **사용 목적**: 코드의 문맥상 특정 값이 반드시 존재한다는 것을 개발자는 인지하고 있으나, TypeScript의 타입 시스템이 이를 입증하지 못할 때 사용합니다 [1]. +- **주의점**: 이 연산자는 TypeScript가 제공하는 타입 안전성 검사(safety checks)를 인위적으로 우회하는 기능이므로, 가급적 제한적으로(sparingly) 사용해야 합니다 [1]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[null]], [[undefined]], [[Type Assertions]] +- **Projects/Contexts:** TypeScript 타입 검사 시스템 및 안전성 검사 우회 [1] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. (Non-null Assertion Operator에 대해 제공된 소스의 정보가 매우 제한적이며, 상충되는 의견이나 추가적인 맥락은 포함되어 있지 않습니다.) + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Non-null Assertion Operator.md]] +--- diff --git a/Programming & Language/NotebookLM-Automated-Authentication-CLI.md b/Programming & Language/NotebookLM-Automated-Authentication-CLI.md new file mode 100644 index 00000000..3005fc7d --- /dev/null +++ b/Programming & Language/NotebookLM-Automated-Authentication-CLI.md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-BDE5EC +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - NotebookLM-Automated-Authentication-CLI" +--- + +# [[NotebookLM-Automated-Authentication-CLI]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 기존의 수동 브라우저 쿠키 추출 방식에서 벗어나, `notebooklm-mcp-cli` 패키지를 활용한 CLI 기반의 표준화된 인증 체계입니다. 구글 계정 로그인을 통해 획득한 토큰을 시스템 전역에서 공유함으로써, 사용자의 개입 없이도 안정적인 NotebookLM 서버 접근 권한을 유지합니다. + +## 📖 구조화된 지식 (Synthesized Content) +이전 시스템의 최대 약점은 브라우저에서 `__Secure-3PSID` 등의 쿠키를 매번 수동으로 복사하여 `.env`에 붙여넣어야 하는 번거로움과 쿠키 만료로 인한 잦은 실패였습니다. + +이번 개혁을 통해 도입된 CLI 인증 체계는 다음과 같은 구조를 가집니다: +1. **nlm login**: 터미널 명령어를 통해 브라우저 로그인 창을 띄우고, 구글 OAuth 기반의 인증을 수행합니다. +2. **Token Persistence**: 획득된 인증 정보는 로컬 세션 파일에 보안 저장되며, MCP 서버(`notebooklm-mcp`)가 이를 자동으로 감지하여 활용합니다. +3. **Optional Fallback**: 애플리케이션 UI에서는 여전히 수동 쿠키 입력을 지원하지만, 이는 CLI 인증이 불가능한 환경을 위한 보조 수단으로 격하되었습니다. + +이 방식의 도입으로 '인증 만료'로 인한 엔진 중단 사태가 90% 이상 감소하였으며, 개발자는 더 이상 브라우저 개발자 도구를 열 필요가 없게 되었습니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Autonomous-Polling-Wait-Automation]], [[Zustand-Based-Mission-Persistence]] +- **Projects/Contexts:** [[P-Reinforce-Agent-v2.6]] +- **Contradictions/Notes:** CLI 인증은 로컬 환경에 의존하므로, Headless 서버 환경에서는 별도의 토큰 전달 방식이 필요할 수 있습니다. +- Raw Source: [[00_Raw/2026-04-20/NotebookLM-Automated-Authentication-CLI.md]] +--- diff --git a/Programming & Language/Object Pooling (오브젝트 풀링).md b/Programming & Language/Object Pooling (오브젝트 풀링).md new file mode 100644 index 00000000..c94117a1 --- /dev/null +++ b/Programming & Language/Object Pooling (오브젝트 풀링).md @@ -0,0 +1,46 @@ +--- +id: P-REINFORCE-AUTO-1F94B3 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Object Pooling (오브젝트 풀링)" +--- + +# [[Object Pooling (오브젝트 풀링)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 오브젝트 풀링은 객체의 빈번한 생성과 파괴로 인해 발생하는 메모리 할당 비용과 가비지 컬렉션(GC) 스파이크를 방지하기 위해, 미리 고정된 개수의 객체 풀(Pool)을 할당해 두고 필요할 때 꺼내어 재사용한 뒤 다시 반환하는 소프트웨어 성능 최적화 디자인 패턴입니다. + +## 📖 구조화된 지식 (Synthesized Content) +**1. 도입 목적과 메모리 파편화 방지** 실시간 상호작용이 중요한 게임(예: 슈팅 게임의 탄환, 파티클 시스템)에서 매 프레임마다 수백 개의 객체를 생성하고 삭제하면 시스템 자원을 소모하여 화면이 끊기는 지연(Lag) 현상이 발생합니다. 이는 가비지 컬렉터가 메모리를 정리하는 데 시간이 걸리기 때문입니다. 또한, 잦은 할당과 해제는 힙 메모리의 가용 공간을 작은 조각으로 나누어버리는 '메모리 파편화(Memory Fragmentation)'를 유발하여 결국 메모리 할당 실패와 크래시를 초래할 수 있습니다. 오브젝트 풀은 로딩 시점 등 초기에 큰 메모리를 한 번에 할당하고 이를 유지함으로써 이러한 문제를 원천 차단합니다. + +**2. 작동 원리** 오브젝트 풀은 카드의 내용을 지우고 다시 덱에 넣는 것과 같습니다. + +- **사전 할당 (Pre-warming):** 초기 크기만큼 객체를 생성하여 비활성 상태로 보관합니다. +- **활성화 및 재사용:** 객체가 필요할 때 풀에서 가용한 객체를 가져와 상태를 초기화한 뒤 활성화(In-use)합니다. +- **반환:** 사용이 끝난 객체는 메모리에서 삭제하는 대신 비활성 상태로 변경하여 풀에 반환합니다. + +**3. 한계점 및 부작용 관리** + +- **메모리 낭비와 크기 고정:** 풀의 크기가 너무 크면 사용되지 않는 객체들이 메모리를 계속 점유하여 자원을 낭비하게 되며, 반대로 너무 작으면 필요한 순간에 객체를 가져오지 못할 수 있습니다. +- **객체 크기 고정:** 서로 다른 타입이나 크기의 객체를 하나의 풀에서 관리할 경우, 가장 큰 객체의 크기에 맞춰 슬롯 메모리를 할당해야 하므로 메모리 낭비가 발생합니다. +- **불완전한 초기화 위험:** 재사용되는 객체는 이전 생애(Past life)의 데이터 흔적이 남아있을 수 있습니다. 객체를 풀에서 꺼낼 때 새로운 상태로 완벽하게 덮어쓰기(초기화)하지 않으면 심각한 버그가 발생할 수 있습니다. +- **참조 유지 버그:** 풀에 반환된 객체를 다른 클래스에서 여전히 참조하고 조작할 경우, 엉뚱한 곳에서 객체가 변경되는 추적하기 힘든 버그(Use-after-free)가 발생할 수 있습니다. + +**4. 고속화를 위한 Free List (프리 리스트) 기법** 가장 단순한 오브젝트 풀은 가용한 객체를 찾기 위해 풀 전체를 순회하므로 $O(n)$의 시간이 걸립니다. 이를 최적화하기 위해 비활성 상태인 객체들의 사용하지 않는 메모리 공간(예: C++의 `union`)을 활용하여 다음 빈 객체를 가리키는 포인터를 저장하는 **프리 리스트(Free List)**를 구축하면, 추가적인 메모리 낭비 없이 $O(1)$의 속도로 즉시 객체를 할당할 수 있습니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Garbage Collection (GC) 최적화]], [[Generational GC (세대별 가비지 컬렉션)]], [[Memory Fragmentation (메모리 파편화)]], [[InstancedMesh (드로우 콜 최적화)]] +- **Projects/Contexts:** [[대규모 파티클 시스템 최적화]], [[슈팅 게임의 대규모 탄환(Bullet) 제어 시스템]], [[React Three Fiber 엔진 아키텍처]] +- **Contradictions/Notes:** 오브젝트 풀링이 모든 상황에서 정답은 아닙니다. V8과 같은 최신 자바스크립트 엔진의 세대별 가비지 컬렉터(Generational GC)는 단기 생존 객체(Short-lived objects)를 수거하는 비용이 사실상 0에 가깝습니다. 이 환경에서 객체 풀링을 잘못 적용하면, 객체들이 강제로 오래 살아남게 되어 구세대(Old Generation) 메모리를 압박하고 오히려 GC 성능을 악화시키며 메모리 사용량만 늘릴 위험이 있습니다. 반드시 프로파일러를 통한 성능 병목 확인 후 선별적으로 도입해야 합니다. + +--- + +_Last updated: 2026-04-15_ +- Raw Source: [[00_Raw/2026-04-20/Object Pooling (오브젝트 풀링).md]] +--- diff --git a/Programming & Language/Objective Distillation (목표 증류).md b/Programming & Language/Objective Distillation (목표 증류).md new file mode 100644 index 00000000..29094978 --- /dev/null +++ b/Programming & Language/Objective Distillation (목표 증류).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-C021D6 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Objective Distillation (목표 증류)" +--- + +# [[Objective Distillation (목표 증류)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Objective Distillation (목표 증류).md]] +--- diff --git a/Programming & Language/Occlusion Culling.md b/Programming & Language/Occlusion Culling.md new file mode 100644 index 00000000..6e096708 --- /dev/null +++ b/Programming & Language/Occlusion Culling.md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-3A1034 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Occlusion Culling" +--- + +# [[Occlusion Culling]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 오클루전 컬링(Occlusion Culling)은 시야(Frustum) 내에 있더라도 다른 물체에 의해 완전히 가려져 보이지 않는 객체들을 식별하고 렌더링 파이프라인에서 제외하는 그래픽스 최적화 기법입니다 [1, 2]. CPU 기반으로 복잡한 기하학적 구조를 계산하기에는 난이도가 높고, GPU에서 수행하더라도 지연(Latency) 문제로 비용이 발생할 수 있어, 최신 렌더링 환경에서는 컴퓨트 셰이더나 깊이 사전 패스(Depth Pre-Pass) 등의 우회 및 발전된 기법과 함께 사용됩니다 [2, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Frustum Culling]], [[Compute Shader]], [[Depth Pre-Pass]], [[InstancedMesh]], [[Early-Z]], [[Draw Call]] +- **Projects/Contexts:** [[WebGPU]], [[Three.js]], [[WebGL/Three.js CAD Rendering Optimization]] +- **Contradictions/Notes:** 소스에 따르면 오클루전 컬링은 그래픽스 성능 최적화의 핵심적인 개념이지만, 복잡성으로 인해 고유의 연산 비용이 따릅니다. 따라서 상황에 따라 오클루전 컬링을 직접 구현하기보다는 Depth Pre-Pass로 우회하거나, WebGPU의 컴퓨트 셰이더를 통해 CPU를 거치지 않고 가시성을 판별하는 방식으로 기술이 발전하고 있음이 관찰됩니다 [1, 2, 4]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Occlusion Culling.md]] +--- diff --git a/Programming & Language/OffscreenCanvas와 Web Worker를 활용한 메인 스레드 병목 해결.md b/Programming & Language/OffscreenCanvas와 Web Worker를 활용한 메인 스레드 병목 해결.md new file mode 100644 index 00000000..1c2972c5 --- /dev/null +++ b/Programming & Language/OffscreenCanvas와 Web Worker를 활용한 메인 스레드 병목 해결.md @@ -0,0 +1,42 @@ +--- +id: P-REINFORCE-AUTO-217E9B +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - OffscreenCanvas와 Web Worker를 활용한 메인 스레드 병목 해결" +--- + +# [[OffscreenCanvas와 Web Worker를 활용한 메인 스레드 병목 해결]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 자바스크립트의 단일 스레드 한계를 극복하기 위해, 무거운 그래픽 렌더링이나 연산 작업을 메인 스레드(DOM)에서 분리하여 백그라운드의 웹 워커(Web Worker) 스레드에서 병렬 처리하는 성능 최적화 기술입니다. + +## 📖 구조화된 지식 (Synthesized Content) +**1. DOM과 렌더링의 분리 (Decoupling)** 기존의 캔버스 그래픽 작업은 DOM 트리에 존재하는 `` 요소에 직접 의존했기 때문에 반드시 메인 스레드에서만 동작해야 했습니다. 하지만 `OffscreenCanvas` API를 활용하면 캔버스를 DOM 화면 밖으로 분리할 수 있으며, DOM이 없는 웹 워커 내부에서도 렌더링 컨텍스트를 사용할 수 있게 됩니다. + +**2. 제어권 이전 (Transfer Control) 및 실행** 메인 스레드의 원래 캔버스 요소에서 `transferControlToOffscreen()` 메서드를 호출하여 제어권을 분리합니다. 생성된 `OffscreenCanvas` 객체를 `postMessage`를 통해 웹 워커로 전달하면, 워커 스레드가 렌더링 작업을 전담하게 되며 그 결과는 메인 스레드의 원본 캔버스에 자동으로 반영됩니다. + +**3. 메인 스레드 차단 해제 (Unblocking the Main Thread)** Three.js나 복잡한 WebGL 애니메이션, 물리 연산 등은 많은 CPU/GPU 자원을 소모합니다. 이를 워커 스레드로 옮기면 메인 스레드의 과부하를 막을 수 있습니다. 결과적으로 메인 스레드는 렌더링 계산에 블로킹되지 않고 클릭, 스크롤 같은 사용자 상호작용과 React의 UI 업데이트를 즉각적으로 처리할 수 있어 지연 없는 부드러운 앱 경험을 제공합니다. + +**4. 이벤트 포워딩 (Event Forwarding)** 웹 워커는 DOM에 접근할 권한이 없으므로 마우스 클릭이나 터치 같은 사용자 이벤트를 직접 감지할 수 없습니다. 이를 해결하기 위해 메인 스레드에서 이벤트를 캡처한 뒤 `postMessage`를 통해 필요한 데이터(좌표 등)만 워커로 전달하여 상호작용을 처리하는 '대리 인터랙션' 방식을 구축해야 합니다. + +**5. 상태 동기화 (State Synchronization)** 메인 스레드(React UI)와 워커 스레드(WebGL 씬) 간에 동일한 상태를 공유해야 할 때 동기화가 필요합니다. + +- **메시지 기반 동기화:** `BroadcastChannel`이나 Valtio 같은 프록시 기반 상태 관리 도구를 사용하여, 상태가 변경될 때 해당 변경점(Delta)만 직렬화하여 스레드 간에 메시지로 주고받습니다. +- **SharedArrayBuffer:** 복사 오버헤드를 완전히 없애야 하는 극단적인 최적화가 필요할 때 사용되며, 두 스레드가 동일한 메모리 영역을 공유하여 원자적으로 데이터를 읽고 씁니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Web Worker]], [[Three.js / WebGL]], [[상태 관리 동기화 (Valtio, SharedArrayBuffer)]], [[이벤트 포워딩(Event Forwarding)]], [[React 게임 엔진 아키텍처]] +- **Projects/Contexts:** [[멀티스레드 React WebGL 애플리케이션]], [[고성능 실시간 상호작용 시스템]] +- **Contradictions/Notes:** 상태 동기화를 구현할 때 `SharedArrayBuffer`는 가장 빠르고 메모리 복사 비용이 없지만 원시 이진 데이터(Raw Binary)를 다루어야 해서 구현이 어렵습니다. 반면, Valtio 등 Proxy를 사용한 메시징 방식은 개발이 훨씬 쉽고 직관적이지만 직렬화 과정에서 약간의 오버헤드와 메모리를 희생하게 됩니다. + +--- + +_Last updated: 2026-04-14_ +- Raw Source: [[00_Raw/2026-04-20/OffscreenCanvas와 Web Worker를 활용한 메인 스레드 병목 해결.md]] +--- diff --git a/Programming & Language/Oilpan.md b/Programming & Language/Oilpan.md new file mode 100644 index 00000000..16cf8eba --- /dev/null +++ b/Programming & Language/Oilpan.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-68FCF1 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Oilpan" +--- + +# [[Oilpan]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Oilpan은 Chrome의 렌더링 엔진인 Blink에서 사용하는 가비지 컬렉터(Garbage Collector)입니다 [1]. V8 엔진의 주요 가비지 컬렉터인 Orinoco와 Oilpan 간의 협력을 개선하고, Orinoco의 새로운 기술을 Oilpan에 이식하려는 작업이 진행 중입니다 [1]. + +## 📖 구조화된 지식 (Synthesized Content) +- **Blink 렌더러 소속**: Oilpan은 Chrome 내장 렌더러인 Blink를 위해 특별히 설계되고 사용되는 가비지 컬렉터입니다 [1]. +- **Orinoco와의 연계 및 기술 이식**: V8 팀은 두 가비지 컬렉터 간의 협업 및 통합을 향상시키기 위해 노력하고 있으며, V8의 최신 가비지 컬렉터 프로젝트인 Orinoco에 적용된 새로운 기술들을 Oilpan으로 이식(porting)하는 작업을 수행하고 있습니다 [1]. + +소스에 관련 정보가 부족합니다. (제공된 소스에는 Oilpan의 구체적인 작동 원리, 아키텍처 또는 내부 구현 방식에 대한 추가적인 세부 사항이 포함되어 있지 않습니다.) + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Garbage Collection]], [[Blink]], [[Orinoco]] +- **Projects/Contexts:** [[Chrome]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. (Oilpan과 관련된 내용은 소스 [1]에서 단 한 차례 간략하게만 언급되며, 구체적인 기술적 논의나 모순점은 제시되어 있지 않습니다.) + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Oilpan.md]] +--- diff --git a/Programming & Language/Old Space (구 세대 공간).md b/Programming & Language/Old Space (구 세대 공간).md new file mode 100644 index 00000000..c7530fa0 --- /dev/null +++ b/Programming & Language/Old Space (구 세대 공간).md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-9214B8 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Old Space (구 세대 공간)" +--- + +# [[Old Space (구 세대 공간)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Old Space(구 세대 공간)는 V8 자바스크립트 엔진의 힙(Heap) 메모리 영역 중, New Space(신규 공간)에서 발생하는 가비지 컬렉션(GC)을 두 번 이상 생존한 객체들이 승격(Promotion)되어 이동하는 공간입니다 [1-3]. 주로 사용자 세션이나 캐시 데이터 등 수명이 길고 지속적인 상태를 유지하는 객체들을 장기간 저장하는 데 사용됩니다 [4, 5]. 이 공간의 메모리 회수는 빈도가 낮지만 리소스 소모가 큰 Major GC(Mark-Sweep 및 Mark-Compact 알고리즘)에 의해 관리됩니다 [1, 3, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +- **공간의 세분화 및 역할:** + Old Space는 효율적인 가비지 컬렉션을 위해 두 개의 하위 영역으로 나뉩니다. 첫째는 다른 객체를 가리키는 포인터를 포함하는 객체들이 저장되는 **Old-pointer-space**입니다 [3, 6, 7]. 둘째는 문자열, 박싱된 숫자 등 포인터가 없는 원시 데이터만 포함하는 객체들이 저장되는 **Old-data-space**입니다 [3, 6, 7]. GC가 Old-data-space를 처리할 때는 내부 포인터 추적 단계를 건너뛸 수 있어 마킹(Marking) 단계에 소요되는 시간을 단축할 수 있습니다 [4]. + +- **가비지 컬렉션 (Major GC):** + 크기가 작고 수집이 빠른 New Space(Minor GC)와 달리, Old Space는 수백 메가바이트의 데이터를 포함할 수 있으므로 **마크-스윕(Mark-Sweep)** 및 **마크-컴팩트(Mark-Compact)** 알고리즘을 통해 관리됩니다 [8]. Major GC는 객체의 참조를 따라가며 살아있는 객체(Black)와 죽은 객체(White)를 식별(Mark)하고, 죽은 객체가 차지한 메모리를 회수(Sweep)합니다 [9, 10]. + +- **메모리 단편화 및 압축(Compaction):** + Old Space에서는 죽은 메모리가 페이지에 남기는 "구멍(holes)"으로 인해 메모리 단편화(Fragmentation) 문제가 크게 발생합니다 [11]. 큰 공간에서 객체를 이동시키는 것은 계산 비용이 매우 높고 모든 참조 포인터를 업데이트해야 하므로, V8은 매 주기마다 객체를 압축하지 않고 필요할 때만 단편화된 페이지에서 라이브 객체를 다른 페이지의 빈 공간으로 마이그레이션(Compaction)하는 방식을 사용합니다 [12, 13]. + +- **메모리 튜닝 및 누수 탐지:** + Node.js 애플리케이션에서 대규모 데이터를 처리할 때 `--max-old-space-size` 커맨드라인 플래그를 사용하면 Old Space의 최대 크기(예: 4096MB)를 명시적으로 늘릴 수 있어 잦은 가비지 컬렉션으로 인한 성능 저하를 방지할 수 있습니다 [14, 15]. 또한 `--trace-gc-verbose` 로깅 분석 시, Major GC가 발생한 이후에도 "Old space, used" 크기가 지속적으로 증가한다면 강력한 메모리 누수(Memory Leak)의 징후로 판단할 수 있습니다 [16]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[New Space (신규 공간)]], [[Major GC (주요 가비지 컬렉션)]], [[Mark-Sweep-Compact]], [[Memory Leak (메모리 누수)]] +- **Projects/Contexts:** [[V8 JavaScript Engine]], [[Node.js Memory Management]] +- **Contradictions/Notes:** 소스에 따르면 Old Space 내의 객체를 옮기는 압축(Compaction) 작업은 비용이 매우 많이 들기 때문에, Minor GC처럼 모든 라이브 객체를 복사하는 방식(Scavenger)을 쓰지 않고 단편화가 심한 특정 페이지에 대해서만 제한적으로 압축을 수행합니다 [12, 13]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Old Space (구 세대 공간).md]] +--- diff --git a/Programming & Language/Old Space(Old Generation).md b/Programming & Language/Old Space(Old Generation).md new file mode 100644 index 00000000..a98c200e --- /dev/null +++ b/Programming & Language/Old Space(Old Generation).md @@ -0,0 +1,39 @@ +--- +id: P-REINFORCE-AUTO-3FD05B +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Old Space(Old Generation)" +--- + +# [[Old Space(Old Generation)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Old Space(또는 Old Generation)는 V8 엔진의 힙(Heap) 메모리 영역 중 하나로, New Space(Young Generation)에서 두 번의 마이너 가비지 컬렉션(Scavenge) 주기 동안 살아남은 수명이 긴 객체들이 이동(승격)하여 저장되는 공간이다 [1-3]. 이 공간은 주로 사용자 세션, 캐시 데이터 등 영구적인 상태를 유지하는 데이터 저장에 사용되며, New Space에 비해 크기가 훨씬 크고 가비지 컬렉션(Major GC)이 덜 빈번하게 발생하지만 더 많은 컴퓨팅 리소스를 소모한다 [4, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +* **객체의 승격(Promotion) 및 수명:** + V8의 메모리 관리는 대부분의 객체가 짧은 수명을 가진다는 '세대적 가설(Generational hypothesis)'에 기반한다 [6]. 초기에 New Space에 할당된 객체가 두 번의 스캐빈지(Scavenge) 주기를 거친 후에도 살아남으면, 장기 보관을 위해 설계된 Old Space로 승격(Promoted)된다 [1, 3, 4]. 전체 객체 중 약 20%만이 Old Generation 영역으로 살아남게 된다 [7]. +* **Old Space의 세부 구조:** + 가비지 컬렉션의 효율을 높이기 위해 Old Space는 내부적으로 크게 두 가지 공간으로 세분화된다 [3, 8]. + * **Old-pointer-space:** 다른 객체를 가리키는 포인터를 포함할 가능성이 있는 대부분의 객체가 저장된다 [3, 9]. + * **Old-data-space:** 문자열(Strings), 박싱된 숫자, 포인터가 없는 원시 데이터 배열 등 외부 객체에 대한 포인터를 포함하지 않는 객체들이 저장된다 [3, 9]. 가비지 컬렉터는 이 영역에서 포인터 추적(tracing) 단계를 건너뛸 수 있으므로 마킹 단계의 소요 시간을 효과적으로 단축한다 [4]. +* **가비지 컬렉션(Major GC) 관리:** + Old Space는 수백 메가바이트 이상의 데이터를 포함할 수 있으므로, Scavenge 알고리즘 대신 **Mark-Sweep** 및 **Mark-Compact** 알고리즘을 사용하는 Major GC에 의해 관리된다 [10-12]. Major GC는 힙을 순회하며 살아있는 객체를 표시(Mark)하고, 참조되지 않는 객체의 메모리 주소를 빈 공간(Free list)으로 기록(Sweep)하며, 필요한 경우 메모리 파편화(Fragmentation)를 줄이기 위해 객체들을 한곳으로 모으는 압축(Compact) 작업을 수행한다 [13-16]. +* **메모리 제어 및 튜닝:** + Old Space의 크기는 `--initial_old_space_size`와 `--max-old-space-size`라는 V8 커맨드라인 플래그를 통해 제어할 수 있다 [3, 17]. 대량의 영구 데이터나 사용자 세션 정보를 처리하는 애플리케이션의 경우, 장기 생존 객체가 Old Space에 가득 차면 빈번하고 비용이 큰 가비지 컬렉션이 발생해 응답 속도 저하 또는 OOM(Out of Memory) 충돌이 일어날 수 있으므로 해당 플래그를 통해 Old Space의 제한 크기를 늘리는 튜닝이 권장된다 [5, 17]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[New Space(Young Generation)]], [[Major GC]], [[Mark-Sweep-Compact]], [[Garbage Collection]] +- **Projects/Contexts:** [[V8 Engine Memory Management]], [[Node.js Performance Tuning]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Old Space(Old Generation).md]] +--- diff --git a/Programming & Language/Old Space.md b/Programming & Language/Old Space.md new file mode 100644 index 00000000..995b531c --- /dev/null +++ b/Programming & Language/Old Space.md @@ -0,0 +1,36 @@ +--- +id: P-REINFORCE-AUTO-C312D4 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Old Space" +--- + +# [[Old Space]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Old Space(또는 Old generation)는 V8 엔진의 메모리 힙 구조에서 단기 생존 영역인 New Space에서 여러 차례의 가비지 컬렉션(GC)을 견뎌낸 장기 생존 객체들이 저장되는 공간입니다 [1-3]. 주로 사용자 세션, 캐시 데이터, 영구 상태와 같은 장기 보존 데이터가 이곳에 보관됩니다 [4]. 이 공간은 수백 메가바이트 이상의 데이터를 담을 수 있도록 훨씬 크게 설계되었으며, Mark-Sweep 및 Mark-Compact 알고리즘을 사용하는 Major GC에 의해 덜 빈번하지만 더 많은 리소스를 소모하여 관리됩니다 [4-7]. + +## 📖 구조화된 지식 (Synthesized Content) +* **객체 승격(Promotion) 메커니즘:** 객체는 처음에 New Space에 할당된 후, 두 번의 마이너 가비지 컬렉션(Minor GC 또는 Scavenge)에서 살아남으면 Old Space로 승격(promotion)됩니다 [1, 3, 8]. Old Space는 단기 객체를 빈번하게 수집하는 New Space와 달리 장기적인 저장 목적으로 설계되었습니다 [6]. +* **공간의 세분화:** Old Space는 가비지 컬렉션 처리를 최적화하기 위해 두 가지 하위 공간으로 분리되어 관리됩니다 [2, 3, 6]. + * **Old-pointer-space:** 다른 객체들을 가리키는 내부 포인터를 가질 수 있는 대부분의 장기 생존 객체들이 보관됩니다 [2, 3, 9]. + * **Old-data-space:** 다른 객체에 대한 포인터 없이 순수하게 로우 데이터(문자열, unboxed double 배열 등)만 포함하는 객체들이 저장됩니다 [2, 3, 9]. 이 데이터 공간은 GC의 마킹 단계에서 포인터 추적(tracing)을 건너뛸 수 있어 가비지 컬렉션 소요 시간을 줄여줍니다 [6]. +* **Major GC (가비지 컬렉션):** Old Space의 메모리 관리는 Mark-Sweep 및 Mark-Compact 알고리즘을 수행하는 Major GC(전체 가비지 컬렉션) 사이클을 통해 이루어집니다 [1, 3, 5]. 일정량의 메모리가 Old Space로 승격되면 Major GC가 트리거되어 사용되지 않는 메모리(Garbage)를 해제하고 라이브 객체들을 압축하여 파편화를 줄입니다 [1, 7, 10]. +* **Write Barriers 및 저장 버퍼(Store Buffer):** Old Space의 객체가 New Space의 객체를 참조하는 경우, V8 엔진은 이 참조를 추적하기 위해 'Write Barrier' 코드와 'Store Buffer'를 활용합니다 [11-13]. 이는 스캐빈저(Scavenger)가 New Space를 수집할 때 Old Space 전체를 스캔하지 않고도 해당 참조를 파악할 수 있게 해줍니다 [11, 13]. +* **메모리 튜닝 및 누수 감지:** `--trace-gc-verbose` 플래그를 사용하여 로그를 확인할 때, Major GC 이벤트 이후에도 Old space의 사용량이 지속적으로 증가한다면 메모리 누수(Memory Leak)가 발생하고 있다는 강력한 지표가 됩니다 [14]. 개발자는 애플리케이션의 메모리 사용량에 맞게 `--initial_old_space_size` 및 `--max-old-space-size` 커맨드라인 플래그를 사용하여 Old Space의 크기를 직접 제어할 수 있습니다 [3, 15]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[New Space]], [[Major GC]], [[Mark-Sweep-Compact]], [[Write Barrier]], [[Garbage Collection]] +- **Projects/Contexts:** [[V8 Engine]], [[Node.js Memory Management]] +- **Contradictions/Notes:** 소스에 따르면 V8은 필요할 경우 운영체제에 더 많은 공간을 요청하여 Old Space 크기를 확장할 수 있으나, V8 Memory Cage(보안 샌드박스 및 포인터 압축) 기능이 활성화된 64비트 시스템에서는 물리적 RAM 용량에 관계없이 V8 힙 전체 크기가 최대 4GB의 연속적인 영역으로 엄격히 제한됩니다 [16-18]. 따라서 Old Space 역시 이 4GB 제한의 영향을 받습니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Old Space.md]] +--- diff --git a/Programming & Language/Opaque Types.md b/Programming & Language/Opaque Types.md new file mode 100644 index 00000000..92f3f29e --- /dev/null +++ b/Programming & Language/Opaque Types.md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-AB1B53 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Opaque Types" +--- + +# [[Opaque Types]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Opaque Types(또는 Branded Types, Nominal Types)는 타입스크립트의 구조적 타이핑(Structural Typing)이 갖는 한계를 극복하기 위해, 구조가 동일한 기본 타입(primitive type)이라도 의미적으로 다른 값을 구별할 수 있도록 고유한 식별자(브랜드)를 부여하는 디자인 패턴입니다 [1-4]. 런타임에는 존재하지 않는 가상의 속성이나 유니크 심볼(unique symbol)을 타입 시스템에만 추가하여 타입 간의 혼용을 컴파일 시점에 차단합니다 [2, 5, 6]. 이를 통해 화폐 단위, 사용자 ID와 주문 ID의 혼동 등 논리적 오류를 방지하고 코드의 안정성과 예측 가능성을 크게 높일 수 있습니다 [7-9]. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Branded Types]], [[Structural Typing]], [[Nominal Typing]], [[Type Assertions]], [[Type Predicates]] +- **Projects/Contexts:** [[Domain-Driven Design (DDD)]], [[Zod Validation]], [[Effect TS]], [[ts-brand]] +- **Contradictions/Notes:** Opaque Types는 타입 안정성을 크게 높여주지만, 코드의 구조적 복잡성을 증가시키고 검증 함수나 타입 래퍼(Wrapper) 등 부가적인 코드를 요구한다는 단점이 있습니다 [30, 31]. 따라서 값의 범위가 명확히 정해져 있는 경우에는 Opaque Type 대신 [[Unions]], [[Enums]], 혹은 [[Template Literal Types]]와 같은 다른 타입스크립트 내장 전략을 활용하는 것이 더 단순하고 나은 해결책이 될 수 있습니다 [30, 32-34]. 추가로 Flow 같은 타입 시스템에서는 Opaque Type을 네이티브로 지원하지만, 타입스크립트 진영에서는 아직 이러한 네이티브 지원에 대한 완전한 합의에 이르지 못했습니다 [35]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Opaque Types.md]] +--- diff --git a/Programming & Language/Operations-Management.md b/Programming & Language/Operations-Management.md new file mode 100644 index 00000000..aadbb506 --- /dev/null +++ b/Programming & Language/Operations-Management.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-5F96BE +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Operations-Management" +--- + +# [[Operations-Management]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Operations-Management.md]] +--- diff --git a/Programming & Language/Organizational Behavior.md b/Programming & Language/Organizational Behavior.md new file mode 100644 index 00000000..4ef7f381 --- /dev/null +++ b/Programming & Language/Organizational Behavior.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-189D31 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Organizational Behavior" +--- + +# [[Organizational Behavior]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Organizational Behavior.md]] +--- diff --git a/Programming & Language/Organizational-Behavior.md b/Programming & Language/Organizational-Behavior.md new file mode 100644 index 00000000..d716439d --- /dev/null +++ b/Programming & Language/Organizational-Behavior.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-0FF44B +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Organizational-Behavior" +--- + +# [[Organizational-Behavior]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Organizational-Behavior.md]] +--- diff --git a/Programming & Language/Organizational-Psychology.md b/Programming & Language/Organizational-Psychology.md new file mode 100644 index 00000000..dcc7260f --- /dev/null +++ b/Programming & Language/Organizational-Psychology.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-CB4F42 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Organizational-Psychology" +--- + +# [[Organizational-Psychology]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Organizational-Psychology.md]] +--- diff --git a/Programming & Language/Orinoco GC.md b/Programming & Language/Orinoco GC.md new file mode 100644 index 00000000..152c705a --- /dev/null +++ b/Programming & Language/Orinoco GC.md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-4DDD3E +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Orinoco GC" +--- + +# [[Orinoco GC]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Orinoco는 V8 JavaScript 엔진에 적용된 최신 가비지 컬렉터(GC) 프로젝트의 코드명이다 [1, 2]. 기존의 순차적이고 애플리케이션 실행을 완전히 멈추는 'stop-the-world' 방식의 가비지 컬렉터를 병렬(parallel), 점진적(incremental), 동시적(concurrent) 기술을 활용하는 형태로 변환하여 메인 스레드의 부하를 줄이도록 설계되었다 [1, 3]. 이를 통해 애플리케이션의 일시 정지(pause) 시간을 대폭 단축하고, 애니메이션 및 사용자 입력에 대한 응답성을 크게 향상시키는 역할을 한다 [4-6]. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[V8 Engine]], [[Garbage Collection]], [[Generational Hypothesis]], [[Scavenger]], [[Mark-Sweep-Compact]] +- **Projects/Contexts:** [[Chrome]], [[Node.js]] +- **Contradictions/Notes:** 소스 간에 모순되는 정보는 발견되지 않았습니다. 문서 전반에 걸쳐 Orinoco GC 도입으로 인한 병렬성(Parallel) 및 동시성(Concurrent) 최적화의 이점이 일관되게 강조되어 있습니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Orinoco GC.md]] +--- diff --git a/Programming & Language/Orinoco 가비지 컬렉터.md b/Programming & Language/Orinoco 가비지 컬렉터.md new file mode 100644 index 00000000..15c3deb5 --- /dev/null +++ b/Programming & Language/Orinoco 가비지 컬렉터.md @@ -0,0 +1,42 @@ +--- +id: P-REINFORCE-AUTO-3353DC +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Orinoco 가비지 컬렉터" +--- + +# [[Orinoco 가비지 컬렉터]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Orinoco는 V8 JavaScript 엔진의 가비지 컬렉션(GC) 성능을 최적화하기 위해 도입된 프로젝트의 코드명입니다 [1, 2]. 기존의 순차적이고 프로그램 실행을 멈추게 하는 'stop-the-world' 방식의 수집기를 점진적(Incremental) 폴백(Fallback)을 갖춘 병렬(Parallel) 및 동시성(Concurrent) 수집기로 탈바꿈시켰습니다 [1, 3]. 이를 통해 메인 스레드의 GC 작업 부담을 최소화하여 애플리케이션의 지연 시간(Latency)을 줄이고 스크롤 및 애니메이션 렌더링을 훨씬 부드럽게 만들었습니다 [4, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +**핵심 가비지 컬렉션 기술** +Orinoco는 메인 스레드를 해방시키기 위해 다음 세 가지 주요 최적화 기법을 혼합하여 사용합니다 [2]. +* **병렬(Parallel) 처리**: 메인 스레드와 헬퍼 스레드가 동시에 대략 같은 양의 GC 작업을 수행합니다 [2]. 애플리케이션 실행을 멈추는 'stop-the-world' 접근법이긴 하지만, 총 중단 시간을 참여하는 스레드 수만큼 나누어 대기 시간을 단축시킵니다 [2]. +* **점진적(Incremental) 처리**: 전체 GC를 한 번에 하는 대신, 메인 스레드가 간헐적으로 소량의 GC 작업만 수행합니다 [6]. JavaScript 실행과 GC 작업이 번갈아 발생하도록 분산시켜 애플리케이션이 사용자 입력과 애니메이션 처리에 지속적으로 응답할 수 있게 합니다 [6, 7]. +* **동시성(Concurrent) 처리**: 메인 스레드가 JavaScript를 계속 실행하는 동안, 헬퍼 스레드들이 백그라운드에서 GC 작업을 전적으로 수행합니다 [8]. 이는 메인 스레드를 자유롭게 하지만, 객체의 변경 사항을 관리하기 위해 스레드 간 동기화와 읽기/쓰기 충돌을 제어해야 하는 가장 고난도의 기술입니다 [8]. + +**주요 GC 단계별 Orinoco의 적용** +* **Minor GC (Scavenger)**: V8의 Young 세대 가비지 컬렉터는 병렬 스캐빈징(Parallel scavenging)을 사용하여 여러 헬퍼 스레드에 작업을 분산시킵니다 [9, 10]. 각 헬퍼 스레드는 포인터를 따라가며 살아있는 객체를 새로운 메모리 공간(To-Space)으로 대피시키고 포인터를 병렬로 업데이트합니다 [9]. +* **Major GC (Mark-Compact)**: Old 세대의 수집은 주로 동시 마킹(Concurrent marking)으로 시작됩니다 [11]. 백그라운드의 헬퍼 스레드들이 살아있는 객체를 찾아 마킹하는 동안 메인 스레드는 JavaScript를 실행하며, 새로 생성된 참조는 '쓰기 장벽(Write barriers)'을 통해 추적됩니다 [11, 12]. 이후 메인 스레드는 잠시 멈춰 빠른 마킹 완료 처리를 한 뒤, 헬퍼 스레드들과 함께 병렬 압축(Parallel compaction)을 수행하고 백그라운드에서는 동시 스윕(Concurrent sweeping)을 진행합니다 [13, 14]. + +**기타 최적화 기법** +* **Idle-time GC (유휴 시간 GC)**: Chrome과 같은 환경에서 애니메이션 프레임(예: 초당 60프레임, 약 16.6ms)을 렌더링한 후 여유 시간이 남을 경우, GC가 해당 유휴 시간을 활용하여 선제적으로 가비지 컬렉션 작업을 수행합니다 [5, 15]. +* 기타 V8의 블랙 할당(Black allocation) 기능과 포인터 추적(Tracking Pointers) 기법을 개선하여 On-heap 및 Off-heap 메모리의 피크 사용량을 큰 폭으로 줄였습니다 [3, 16, 17]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[가비지 컬렉션(Garbage Collection)]], [[V8 JavaScript 엔진]], [[Minor GC (Scavenger)]], [[Major GC (Mark-Compact)]], [[세대별 가비지 컬렉션(Generational Garbage Collection)]] +- **Projects/Contexts:** [[V8 메모리 관리 및 최적화]], [[Node.js 및 Chrome 브라우저 렌더링 성능 최적화]] +- **Contradictions/Notes:** 과거 V8 버전은 Cheney의 동기식 세미스페이스 복사 알고리즘을 사용했으나, V8 v6.2부터 Orinoco 프로젝트의 일환으로 동적 작업 훔치기(Work stealing) 기법을 사용하는 Halstead 방식의 병렬 스캐빈저로 대체되었습니다 [10, 18]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Orinoco 가비지 컬렉터.md]] +--- diff --git a/Programming & Language/Orinoco 프로젝트.md b/Programming & Language/Orinoco 프로젝트.md new file mode 100644 index 00000000..aeb8e3de --- /dev/null +++ b/Programming & Language/Orinoco 프로젝트.md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-6EB2FE +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Orinoco 프로젝트" +--- + +# [[Orinoco 프로젝트]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Orinoco 프로젝트는 V8 JavaScript 엔진의 가비지 컬렉터(GC)를 최신 기술로 개선하기 위해 진행된 프로젝트의 코드명입니다 [1-3]. 이 프로젝트는 기존의 순차적이고 모든 실행을 멈추는 'stop-the-world' 방식의 가비지 컬렉터를 병렬(parallel), 동시(concurrent), 점진적(incremental) 기술을 활용하는 형태로 진화시켰습니다 [1, 2, 4]. 주된 목적은 메인 스레드의 부하를 덜어주어 가비지 컬렉션으로 인한 프로그램 중지 시간(pause time)을 최소화하고 사용자 경험을 향상시키는 것입니다 [2, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +- **GC 모델의 현대화:** Orinoco는 기존의 'stop-the-world' 중지 방식을 벗어나, 동시적이고 병렬적이며 점진적인 GC 모델로의 전환을 의미합니다 [1, 4]. 이를 위해 스마트 페이징과 동시성 친화적 알고리즘을 도입하여 '구 세대(Old Generation)'와 '신 세대(Young Generation)' 가비지 컬렉터를 병렬화했습니다 [5]. +- **병렬(Parallel) 기법 도입:** 메인 스레드와 다수의 헬퍼 스레드가 동시에 거의 동일한 양의 작업을 수행하도록 처리합니다 [2]. 이 역시 실행을 일시 중지하는 방식이지만, 동기화에 필요한 약간의 오버헤드를 제외하면 전체 중지 시간을 참여하는 스레드의 수만큼 나누어 크게 줄일 수 있습니다 [2]. +- **점진적(Incremental) 마킹:** 마킹 작업을 아주 작은 덩어리로 나누어 JavaScript 실행 중간중간에 교차로 배치(interleave)하는 방식입니다 [6, 7]. 이 방식은 총 GC 시간을 줄이지는 못하지만 긴 중지 시간을 잘게 분산시킴으로써, 애플리케이션이 끊김 없이 사용자 입력이나 애니메이션에 반응할 수 있도록 돕습니다 [6, 7]. +- **동시(Concurrent) 처리:** 메인 스레드가 멈추지 않고 JavaScript를 실행하는 동안, 백그라운드의 헬퍼 스레드들이 GC 작업을 전담하여 처리합니다 [8]. 객체의 상태가 언제든 변할 수 있어 읽기/쓰기 경합(read/write races)을 처리해야 하는 가장 복잡한 기술이지만, 메인 스레드를 온전히 자유롭게 해방시킬 수 있습니다 [8]. +- **프로젝트의 성과 및 확장:** Orinoco 프로젝트를 통해 많은 GC 작업이 백그라운드로 이동하면서 지연 시간과 페이지 로딩 성능이 비약적으로 향상되었으며, 스크롤이나 애니메이션이 훨씬 부드러워졌습니다 [9]. 더 나아가, 여기서 개발된 새로운 기술의 일부는 Chrome의 렌더러(Blink)에 내장된 가비지 컬렉터인 'Oilpan'으로 이식하여 협력을 개선하는 작업도 진행 중입니다 [10]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[V8 Engine]], [[Garbage Collection (GC)]], [[Stop-the-world]], [[Incremental Marking]] +- **Projects/Contexts:** [[Oilpan]], [[Blink]] +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. (소스 내에서 Orinoco 프로젝트에 대한 상충되는 주장은 발견되지 않습니다.) + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Orinoco 프로젝트.md]] +--- diff --git a/Programming & Language/Orinoco(V8 GC 프로젝트).md b/Programming & Language/Orinoco(V8 GC 프로젝트).md new file mode 100644 index 00000000..e099f023 --- /dev/null +++ b/Programming & Language/Orinoco(V8 GC 프로젝트).md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-6C6E51 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Orinoco(V8 GC 프로젝트)" +--- + +# [[Orinoco(V8 GC 프로젝트)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Orinoco는 V8 JavaScript 엔진의 가비지 컬렉터(GC)를 혁신적으로 개선하기 위해 진행된 프로젝트의 코드명이다 [1, 2]. 이 프로젝트의 핵심 목표는 기존의 순차적이고 메인 스레드를 멈추게 하던(stop-the-world) 가비지 컬렉터를 병렬(Parallel), 점진적(Incremental), 동시적(Concurrent) 수집 방식으로 변환하는 것이다 [1]. 이를 통해 메인 스레드의 부하를 해방시키고 가비지 컬렉션으로 인한 애플리케이션 지연(jank)과 대기 시간을 대폭 줄여 원활한 사용자 경험을 제공한다 [3, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[V8 Engine]], [[Garbage Collection]], [[Scavenger (Minor GC)]], [[Mark-Compact (Major GC)]] +- **Projects/Contexts:** [[V8 JavaScript Engine Memory Management]] +- **Contradictions/Notes:** 점진적(Incremental) 가비지 컬렉션 기법의 경우, 메인 스레드의 일시 정지(Pause) 기간을 여러 개의 짧은 시간으로 분산시켜 체감 대기 시간을 줄이지만, 메인 스레드에서 수행하는 GC의 총시간 자체는 오히려 약간 증가한다는 특징이 있다 [8]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Orinoco(V8 GC 프로젝트).md]] +--- diff --git a/Programming & Language/Orinoco.md b/Programming & Language/Orinoco.md new file mode 100644 index 00000000..68f548ce --- /dev/null +++ b/Programming & Language/Orinoco.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-E147D0 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Orinoco" +--- + +# [[Orinoco]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Orinoco는 V8 JavaScript 엔진의 가비지 컬렉터(GC) 성능을 최적화하기 위해 진행된 프로젝트의 코드명입니다 [1, 2]. 이 프로젝트는 기존의 순차적이고 애플리케이션 실행을 완전히 멈추는(stop-the-world) 방식의 가비지 컬렉터를 병렬(parallel), 동시(concurrent), 점진적(incremental) 기법을 활용하는 형태로 변환했습니다 [1, 2]. 결과적으로 메인 스레드의 부담을 해방시켜 지연(latency) 및 멈춤(jank) 현상을 줄이고, 애니메이션과 사용자 상호작용을 훨씬 부드럽게 만들어 줍니다 [3-6]. + +## 📖 구조화된 지식 (Synthesized Content) +* **병렬(Parallel) 처리**: 메인 스레드와 여러 헬퍼 스레드들이 동시에 동일한 가비지 컬렉션 작업을 나누어 수행하는 기법입니다 [5]. 애플리케이션 실행이 일시 정지되는 'stop-the-world' 접근법이기는 하지만, 다수의 스레드가 작업을 분담하므로 총 정지 시간이 스레드 수에 비례해 크게 단축됩니다 [5]. Orinoco의 병렬 스캐빈저(Parallel Scavenger)는 이 방식을 사용하여 Young Generation의 GC 작업 시간을 워크로드에 따라 20%~50%가량 감소시켰습니다 [6-8]. +* **점진적(Incremental) 처리**: 메인 스레드가 한 번에 전체 GC를 수행하는 대신, 소량의 GC 작업만 간헐적으로 수행하도록 쪼개는 방식입니다 [9]. 이를 통해 가비지 컬렉션 중간에 JavaScript 실행이 틈틈이 이루어지므로 프로그램이 멈추지 않고 사용자 입력이나 애니메이션에 계속 반응할 수 있습니다 [9]. +* **동시(Concurrent) 처리**: 메인 스레드가 JavaScript를 멈춤 없이 계속 실행하는 동안, 헬퍼 스레드들이 백그라운드에서 완전히 GC 작업을 전담하여 수행합니다 [10, 11]. 힙의 상태가 언제든 변할 수 있어 읽기/쓰기 경합(race)을 관리해야 하므로 구현이 가장 까다롭지만, 메인 스레드가 자유로워진다는 큰 장점이 있습니다 [10]. Orinoco는 동시 마킹 및 스위핑을 도입하여 무거운 WebGL 게임 등에서 일시 정지 시간을 최대 50%까지 줄였습니다 [6, 12]. +* **메모리 및 효율성 최적화**: Orinoco 프로젝트는 세대 간(generational) 엄격한 경계 없이 통합된 힙에서 작동하며, 스마트 페이징 기법과 블랙 할당(Black Allocation) 최적화 등을 통해 저사양 메모리 기기에서 온힙(on-heap) 최고 메모리 소비량을 최대 40%, 오프힙(off-heap) 소비량을 20%까지 줄이는 성과를 내었습니다 [13]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[V8 Engine]], [[Garbage Collection]], [[Scavenger]], [[Mark-Compact]] +- **Projects/Contexts:** [[JavaScript Memory Management]] +- **Contradictions/Notes:** 소스 간 Orinoco의 목적과 기술적 효과에 대해 상충되는 정보는 발견되지 않으며, 모든 소스가 공통적으로 메인 스레드의 지연을 없애고 메모리 관리 효율성을 높이기 위한 최적화 프로젝트로 일관되게 설명하고 있습니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Orinoco.md]] +--- diff --git a/Programming & Language/Overdraw.md b/Programming & Language/Overdraw.md new file mode 100644 index 00000000..1d22d6ed --- /dev/null +++ b/Programming & Language/Overdraw.md @@ -0,0 +1,37 @@ +--- +id: P-REINFORCE-AUTO-421E43 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Overdraw" +--- + +# [[Overdraw]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 오버드로우(Overdraw)는 렌더링 파이프라인의 프래그먼트 셰이딩(Fragment Shading) 단계에서 동일한 픽셀 위치에 렌더링 연산 및 쓰기 작업이 여러 번 중첩되어 GPU 자원이 낭비되는 현상입니다. InstancedMesh를 사용할 때 개별 인스턴스에 대한 자동 정렬(Sorting) 기능이 부재하여 깊이 테스트(Early-Z)를 통한 최적화가 무력화되면서 막대한 오버드로우가 발생할 수 있으며, 이는 심각한 렌더링 프레임 지연의 핵심 원인이 됩니다[1, 2]. + +## 📖 구조화된 지식 (Synthesized Content) +* **오버드로우의 발생 원리:** + 투명한 지오메트리가 겹쳐 있거나 객체들이 비효율적으로 정렬되어 있을 때, 가려져서 최종 화면에 보이지 않을 픽셀에 대해서까지 GPU가 계산을 수행하면서 발생합니다[1]. +* **InstancedMesh의 구조적 정렬 부재:** + 일반적인 불투명 객체는 '앞에서 뒤로(Front-to-Back)' 정렬하여 렌더링함으로써 뒤에 가려진 픽셀 연산을 조기에 종료하는 'Early-Z' 기법을 활용할 수 있습니다. 그러나 InstancedMesh는 이러한 자동 정렬 기능을 제공하지 않으며, 오직 버퍼에 저장된 순서대로만 인스턴스를 렌더링합니다. 카메라와 멀리 있는 인스턴스가 먼저 그려지고 가까운 인스턴스가 나중에 그려질 경우, GPU는 동일한 픽셀 영역에 대해 중복된 계산을 강제로 수행하게 됩니다[2]. +* **드로우 콜 최적화의 역설 (성능 저하 사례):** + 실제 벤치마크 사례 연구에 따르면, 5,000개의 구체를 렌더링할 때 드로우 콜이 1회인 InstancedMesh 방식의 FPS가 드로우 콜이 5,000회인 일반 개별 메쉬 방식보다 오히려 더 낮게 측정되는 현상이 보고되었습니다. 이는 드로우 콜 감소를 통해 얻은 CPU 연산 이득보다, 정렬되지 않은 인스턴스들이 유발한 막대한 오버드로우 비용이 GPU의 픽셀 처리 성능 한계를 상회했기 때문입니다[2]. +* **병목을 가중시키는 요인:** + 오버드로우로 인한 렌더링 병목 현상은 복잡한 조명 연산이 포함된 `MeshStandardMaterial`과 같은 재질을 사용할 때 씬(Scene)을 프래그먼트 바운드(Fragment-bound) 상태로 빠뜨리며 더욱 심화됩니다[2, 3]. 또한 나뭇잎(Foliage)처럼 투명도(Transparency)를 지닌 지오메트리의 경우, 조기 깊이 테스트가 비활성화되고 동일한 픽셀을 5~10번씩 반복하여 렌더링해야 하므로 픽셀 채우기 비율(Fill rate)이 급감하는 치명적인 원인이 됩니다[1, 4]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[InstancedMesh]], [[Fragment Shading]], [[Early-Z]], [[프래그먼트 바운드(Fragment-bound)]], [[Draw Call]], [[Sorting]] +- **Projects/Contexts:** [[three.js Issue #30352]], [[대규모 인스턴스 렌더링 및 투명도 처리]] +- **Contradictions/Notes:** CPU 부하를 유발하는 드로우 콜을 줄이기 위해 InstancedMesh를 도입하더라도, 내부 인스턴스들의 정렬 부재가 유발하는 오버드로우 비용이 더 크다면 오히려 드로우 콜이 많은 개별 메쉬 렌더링 방식보다 FPS가 떨어질 수 있다는 역설적인 결과를 보여줍니다[2, 5]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Overdraw.md]] +--- diff --git a/Programming & Language/Page Experience Algorithm.md b/Programming & Language/Page Experience Algorithm.md new file mode 100644 index 00000000..6dc70818 --- /dev/null +++ b/Programming & Language/Page Experience Algorithm.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-6A1F2E +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Page Experience Algorithm" +--- + +# [[Page Experience Algorithm]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Page Experience Algorithm(페이지 경험 알고리즘)은 구글(Google)이 검색 순위를 결정할 때 사용하는 알고리즘입니다 [1]. 이 알고리즘은 실제 사용자의 웹페이지 경험을 측정하는 표준화된 지표인 코어 웹 바이탈(Core Web Vitals)을 주요 랭킹 신호(Ranking signals)로 사용합니다 [1, 2]. 이 알고리즘의 기준을 충족하는 것은 검색 순위를 방어하거나 향상시키고 사용자 유지율을 높이는 데 필수적입니다 [1, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **핵심 평가 지표 (Core Web Vitals):** 페이지 경험 알고리즘은 실제 사용자 경험의 핵심 측면을 측정하며, 주로 세 가지 차원에 집중합니다. 첫째는 콘텐츠가 나타나는 속도를 측정하는 로딩 성능(LCP), 둘째는 사용자 작업에 페이지가 얼마나 빨리 반응하는지를 나타내는 상호작용성(INP, 기존 FID에서 대체됨), 셋째는 요소가 로드되는 동안 레이아웃이 얼마나 안정적으로 유지되는지를 나타내는 시각적 안정성(CLS)입니다 [2, 4]. +- **검색 순위 및 사용자 경험과의 상관관계:** 이 알고리즘에서 요구하는 '우수(Good)' 임계값을 충족하는 페이지는 검색 결과에서 더 나은 순위를 기록하고 사용자를 더 효과적으로 유지하는 경향이 있습니다 [1]. 반대로 이 알고리즘이 평가하는 지표가 나쁘면 높은 이탈률과 사용자 불만으로 이어지는 상관관계를 보입니다 [1]. +- **데이터 수집 방식:** 구글은 이 알고리즘의 평가를 위해 크롬 사용자 경험 보고서(CrUX)를 통해 수집된 실제 사용자의 현장 데이터(Field data)를 활용하여 사용자가 페이지를 실제로 어떻게 경험하는지 평가합니다 [1]. +- **한계:** 제공된 소스에는 페이지 경험 알고리즘이 코어 웹 바이탈을 랭킹 신호로 취급한다는 점은 명시되어 있으나, 그 외에 알고리즘의 구체적인 가중치, 내부 구조 및 기타 평가 요소에 대한 세부적인 관련 정보가 부족합니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Core Web Vitals]], [[INP (Interaction to Next Paint)]], [[LCP (Largest Contentful Paint)]], [[CLS (Cumulative Layout Shift)]] +- **Projects/Contexts:** [[Google Search Ranking]], [[Chrome User Experience Report (CrUX)]] +- **Contradictions/Notes:** 소스에 코어 웹 바이탈 지표들 외에 페이지 경험 알고리즘의 내부적인 작동 원리나 코어 웹 바이탈 이외의 추가적인 구성 요소에 대한 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Page Experience Algorithm.md]] +--- diff --git a/Programming & Language/PageRank (페이지랭크 알고리즘).md b/Programming & Language/PageRank (페이지랭크 알고리즘).md new file mode 100644 index 00000000..dd374dbd --- /dev/null +++ b/Programming & Language/PageRank (페이지랭크 알고리즘).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-ECBEB7 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - PageRank (페이지랭크 알고리즘)" +--- + +# [[PageRank (페이지랭크 알고리즘)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/PageRank (페이지랭크 알고리즘).md]] +--- diff --git a/Programming & Language/Papers Please (Mechanics as Moral Argument).md b/Programming & Language/Papers Please (Mechanics as Moral Argument).md new file mode 100644 index 00000000..3ea993a7 --- /dev/null +++ b/Programming & Language/Papers Please (Mechanics as Moral Argument).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-126062 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Papers Please (Mechanics as Moral Argument)" +--- + +# [[Papers Please (Mechanics as Moral Argument)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Papers, Please (Mechanics as Moral Argument).md]] +--- diff --git a/Programming & Language/Parse dont validate.md b/Programming & Language/Parse dont validate.md new file mode 100644 index 00000000..4bf733c6 --- /dev/null +++ b/Programming & Language/Parse dont validate.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-D95ED1 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Parse dont validate" +--- + +# [[Parse dont validate]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 'Parse, don't validate(검증하지 말고 파싱하라)'는 프로그램의 경계에서 타입이 없거나 느슨한 데이터를 잘 정의된 타입의 데이터로 변환하는 소프트웨어 설계 철학입니다[1]. 코드 전반에 걸쳐 데이터의 유효성을 반복적으로 검사하는 대신, 시스템 진입점에서 단 한 번 파싱하여 안전한 타입으로 만듭니다[1]. 이를 통해 유효성 검사 로직의 파편화를 막고 타입 검사기의 정적 분석 능력을 극대화하여 코드의 예측 가능성과 안정성을 높입니다[2, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **기본 원칙 및 파싱 흐름**: Alexis King의 동명 아티클을 통해 널리 알려진 이 개념은 시스템의 경계(입구 및 출구)에서 입력 데이터를 한 번 파싱하는 것을 핵심으로 합니다[1, 2]. 이 파싱 단계에서 데이터의 유효성 검사와 변환이 동시에 이루어지며, 이후의 애플리케이션 흐름에서는 완전히 타입이 지정되고 검증된 데이터만을 사용하게 됩니다[1]. +- **수비적 프로그래밍(Defensive Programming)의 정점**: 단순히 데이터의 유효성 여부만 확인(Validate)하고 끝내는 것이 아니라, 데이터를 더 구체적이고 신뢰할 수 있는 타입의 객체로 변환(Parse)하여 시스템 내부로 전달합니다[3]. 이는 의도하지 않은 불확실한 데이터의 유입을 원천적으로 차단하는 견고한 아키텍처적 방어막 역할을 합니다[3]. +- **제어 흐름(Control flow)과 개발자 경험 향상**: 유효성 검사 로직을 시스템 경계에만 배치함으로써, 비즈니스 로직 곳곳에 검증 코드가 어지럽게 흩어지는 것을 방지할 수 있습니다[2]. 결과적으로 타입 시스템의 정적 분석에 무거운 작업을 위임하여 개발자의 신뢰를 높이고, 관리해야 할 코드의 양(Code volume)과 복잡도를 줄이는 데 크게 기여합니다[2, 4]. +- **구현 방법 및 생태계 도구**: 이 철학을 실현하기 위해 Zod와 같은 런타임 유효성 검사/파싱 라이브러리가 자주 활용됩니다[3, 5]. 구체적으로는 Zod 등을 통해 알 수 없는(Unknown) 데이터를 잘 알려진 타입으로 변환하며, 런타임 데이터에 [[Branded Types]]를 부여하여 시스템 내부로 전달하는 것이 이 철학을 완벽히 실현하는 구체적 방법론입니다[3, 5]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Branded Types]], [[Zod]], [[Defensive Programming]], [[Static Analysis]], [[Structural Typing]] +- **Projects/Contexts:** [[API Boundary Handling]], [[State Management]] +- **Contradictions/Notes:** 소스 내에서 이 철학에 대한 상반된 주장이나 모순은 발견되지 않습니다. 오히려 상태 관리(State management) 문제나 복잡성 증가를 완화하는 TypeScript의 핵심 모범 사례 중 하나로 강력히 권장됩니다[1, 6]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Parse, don't validate.md]] +--- diff --git a/Programming & Language/Performance Panel.md b/Programming & Language/Performance Panel.md new file mode 100644 index 00000000..1889102c --- /dev/null +++ b/Programming & Language/Performance Panel.md @@ -0,0 +1,46 @@ +--- +id: P-REINFORCE-AUTO-91C413 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Performance Panel" +--- + +# [[Performance Panel]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Performance Panel(성능 패널)은 웹 페이지의 런타임 및 로드 성능을 분석하고 디버깅하기 위해 사용되는 Chrome DevTools의 핵심 진단 도구입니다 [1, 2]. 이 패널은 페이지의 렌더링, 자바스크립트 실행, 네트워크 활동 및 프레임 속도(FPS) 등을 기록하여 플레임 차트 등의 형태로 시각화합니다 [3-6]. 개발자는 이를 통해 메인 스레드를 차단하는 긴 작업(Long tasks)이나 상호작용 지연 등 성능 병목 현상의 원인을 파악하고 웹 성능을 최적화할 수 있습니다 [2, 4, 7]. + +## 📖 구조화된 지식 (Synthesized Content) +* **성능 기록 및 환경 시뮬레이션** + * Performance 패널은 페이지가 로드되는 동안이나 사용자가 상호작용하는 런타임 동안의 모든 활동을 기록할 수 있습니다 [8, 9]. + * 모바일 기기 등 다양한 사용자 환경에서의 성능을 파악하기 위해 CPU 스로틀링(예: 4x 또는 20x 느리게 설정) 및 네트워크 스로틀링 기능을 제공하여, 저사양 기기 환경에서의 성능 병목을 에뮬레이션할 수 있습니다 [2, 10-12]. + +* **메인 스레드 활동 및 플레임 차트(Flame Chart) 분석** + * 기록된 성능 트레이스 중 'Main' 트랙은 메인 스레드에서 실행된 자바스크립트 함수 호출과 렌더링 활동을 플레임 차트 형식으로 보여줍니다 [4, 6]. + * X축은 시간의 흐름을, Y축은 콜 스택(Call stack)을 나타내며, 50밀리초를 초과하여 브라우저의 반응성을 떨어뜨리는 긴 작업(Long tasks)은 빨간색 삼각형과 빨간색 음영으로 강조 표시됩니다 [4, 6, 7]. + * 개발자는 이 차트를 통해 특정 레이아웃 이벤트나 스크립트가 실행되는 데 걸린 시간을 추적하고 원인이 되는 소스 코드의 특정 라인으로 이동할 수 있습니다 [4]. + +* **Core Web Vitals 및 상호작용 모니터링** + * 패널 진입 시 제공되는 '라이브 메트릭(Live metrics)' 화면을 통해 현재 페이지의 LCP, CLS, INP와 같은 Core Web Vitals 데이터를 실시간으로 모니터링할 수 있습니다 [13]. + * 'Interactions' 트랙은 사용자의 포인터 입력 등 상호작용과 관련된 입력 지연, 처리 시간, 프레젠테이션 지연을 시각화하며, 200밀리초 이상의 긴 지연이 발생할 경우 INP 경고를 표시하여 반응성 문제를 추적하도록 돕습니다 [2, 14, 15]. + +* **다양한 분석 도구와 AI 기반 인사이트** + * **리소스 및 하드웨어 지표:** 초당 프레임 수(FPS) 차트, 네트워크 요청의 폭포수(Waterfall) 흐름, GPU 활동, 그리고 가비지 컬렉션(GC) 빈도를 파악할 수 있는 메모리 측정 항목 등을 제공합니다 [3, 16-18]. + * **Insights 패널:** 기록된 데이터를 바탕으로 LCP 요청 문제나 렌더링을 차단하는 요청 등 성능 개선 기회를 자동으로 식별하고 제안합니다 [19-22]. + * **AI 디버깅 기능:** LLM을 활용하여 Performance 패널 내부의 특정 느린 작업을 분석하거나 여러 작업에 대한 주석을 자동 생성하는 기능이 도입되었습니다 [23]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Chrome DevTools]], [[Core Web Vitals]], [[Interaction to Next Paint (INP)]], [[Flame Chart]], [[Main Thread]] +- **Projects/Contexts:** [[Web Performance Debugging]], [[Performance Profiling]] +- **Contradictions/Notes:** Performance 패널의 로컬 측정값은 측정 시점의 로컬 디바이스 및 네트워크 환경의 영향을 크게 받으므로, 실제 전 세계 사용자의 경험을 정확히 파악하려면 CrUX(Chrome User Experience Report) 필드 데이터의 환경 설정에 맞춰 DevTools 환경을 구성하고 비교 분석하는 것이 중요합니다 [24, 25]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Performance Panel.md]] +--- diff --git a/Programming & Language/Pointer Compression.md b/Programming & Language/Pointer Compression.md new file mode 100644 index 00000000..98d05682 --- /dev/null +++ b/Programming & Language/Pointer Compression.md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-DEB938 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Pointer Compression" +--- + +# [[Pointer Compression]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Pointer Compression(포인터 압축)은 64비트 플랫폼에서 V8 엔진의 메모리 오버헤드를 줄이기 위해 포인터를 베이스 주소로부터의 32비트 오프셋(offset)으로 저장하는 기술입니다 [1]. 이 기술은 V8 힙 크기를 최대 40%까지 줄이고 CPU 및 가비지 컬렉션(GC) 성능을 5~10% 향상시키는 장점이 있습니다 [2]. 하지만 포인터 압축을 활성화하면 V8 힙의 최대 크기가 4GB로 제한된다는 주요한 단점이 수반됩니다 [1, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **작동 원리 및 메모리 구조:** + 64비트 플랫폼에서 V8 엔진은 객체 참조에 따른 메모리 오버헤드를 절반으로 줄이기 위해 전체 64비트 주소 대신 베이스 주소(base address)로부터의 32비트 오프셋을 포인터로 저장합니다 [1]. 이러한 구조적 변경으로 인해 V8의 모든 힙(Heap) 객체는 4GB의 연속된 '케이지(cage)' 영역 내에 강제로 상주해야만 합니다 [1]. + +- **성능 이점 (Performance Benefits):** + 포인터 압축은 메모리 및 성능 최적화에 크게 기여합니다. 이를 통해 V8 힙 크기를 최대 40%까지 감소시킬 수 있으며, CPU 및 가비지 컬렉션(GC)의 성능을 5%에서 10%가량 향상시킵니다 [2]. 대다수의 애플리케이션에서는 이러한 이점이 매우 유의미한 성능 향상으로 이어집니다 [2]. + +- **메모리 한계 및 영향 (Limitations):** + 포인터 압축의 가장 큰 부작용은 V8 힙 크기가 4GB를 초과할 수 없다는 것입니다 [3]. 시스템이 128GB의 RAM을 보유하고 있더라도 단일 V8 isolate의 관리되는 힙 공간은 엄격하게 4GB로 제한됩니다 [4]. 애플리케이션이 이 메모리 한계에 도달하게 되면, V8 엔진은 치명적인 OOM(Out of Memory) 충돌을 피하기 위해 가용 공간을 확보하려고 시도하며 이 과정에서 Major GC의 빈도가 극적으로 증가하게 됩니다 [4]. + +- **해결 및 우회 방안 (Workarounds):** + 4GB 이상의 더 큰 힙 공간이 필수적인 애플리케이션의 경우 몇 가지 우회 방법이 존재합니다. 포인터 압축이 비활성화된 Node.js의 복사본을 앱에 포함하여 메모리 집약적인 작업을 자식 프로세스(child process)로 분리시키거나, 포인터 압축 기능 자체를 비활성화한 사용자 정의(custom) 버전의 Electron을 빌드하여 사용할 수 있습니다 [5]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[V8 Memory Cage]], [[Garbage Collection (GC)]], [[Out of Memory (OOM)]], [[V8 Heap]] +- **Projects/Contexts:** [[V8 Engine]], [[Electron]], [[Node.js]], [[Chromium]] +- **Contradictions/Notes:** 소스에 따르면 포인터 압축은 메모리 사용량을 대폭 줄이고 CPU 효율을 높이지만, 그 대가로 힙 크기를 4GB로 강제 제한하여 메모리 집약적인 작업에는 불리할 수 있다는 명확한 트레이드오프(trade-off)를 갖습니다 [2-4]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Pointer Compression.md]] +--- diff --git a/Programming & Language/Pointer Poisoning.md b/Programming & Language/Pointer Poisoning.md new file mode 100644 index 00000000..fdf3d3d2 --- /dev/null +++ b/Programming & Language/Pointer Poisoning.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-F1EA31 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Pointer Poisoning" +--- + +# [[Pointer Poisoning]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 포인터 포이즈닝(Pointer Poisoning)은 스펙터(Spectre) 및 멜트다운(Meltdown) 취약점 공격을 방어하기 위해 웹킷(WebKit)과 같은 브라우저 엔진에 도입된 브랜치리스(Branchless) 보안 검사 기법입니다 [1-3]. 컴파일 타임에 포인터 필드에 무작위의 고유한 포이즌 값을 할당하며, 잘못된 값으로 포이즌을 해제(unpoisoning)할 경우 매핑되지 않은 포인터가 되도록 유도하여 보안을 유지합니다 [3, 4]. 이를 통해 타입 혼동(Type Confusion)을 막고 임의의 메모리 읽기나 원격 코드 실행 공격을 방지합니다 [4]. + +## 📖 구조화된 지식 (Synthesized Content) +* **도입 배경 및 목적:** 최신 프로세서의 추측 실행(Speculative Execution)을 악용하는 스펙터 취약점은 기존의 브랜치(분기) 기반 보안 검사인 타입 검사나 경계 검사를 무력화할 수 있습니다 [5, 6]. 이에 대응하여 WebKit의 JavaScriptCore 엔진 등은 타이머 정밀도 감소와 함께, 브랜치에 의존하지 않는 '포인터 포이즈닝'을 도입하여 웹 타이밍 보안을 근본적으로 재설계했습니다 [1, 2]. +* **동작 원리:** 포인터 필드의 각 정적 선언에 고유한 포이즌(poison) 값을 부여하는 방식으로 작동합니다 [3]. 특정 클래스나 타입에 고유한 키(예: `FooDataKey`)를 바탕으로 컴파일 타임에 무작위 포이즌 값을 계산하여 할당하게 됩니다 [4]. +* **보안 효과:** 할당된 포이즌 값들은 상위 비트(high bits)가 서로 다르기 때문에, 악의적인 공격자가 타입 검사를 우회하여 잘못된 포이즌 값으로 해제를 시도하면 매핑되지 않은 포인터(unmapped pointer)를 반환하게 됩니다 [3]. 이는 스펙터 공격을 방어하는 핵심 수단일 뿐만 아니라, 타입 혼동을 이용한 원격 코드 실행(Remote Code Execution) 공격을 어렵게 만들어 시스템을 보호합니다 [4]. +* **성능과의 트레이드오프:** 포인터 포이즈닝은 때때로 추가적인 메모리 간접 참조(indirections) 없이도 데이터 구조에 적용될 수 있습니다 [4]. 그러나 필수적인 보안 완화 기술임에도 불구하고, 자바스크립트 엔진과 JIT(Just-In-Time) 컴파일러가 수행하는 그래픽 실행 등의 중요 경로에 추가적인 명령어를 삽입하게 되므로 모든 작업의 기본 마이크로 레이턴시(micro-latency)를 약간 증가시키는 원인이 됩니다 [7]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Spectre]], [[Meltdown]], [[Branchless Security Checks]], [[Speculative Execution]], [[Type Confusion]] +- **Projects/Contexts:** [[WebKit]], [[JavaScriptCore]] +- **Contradictions/Notes:** 소스 내에서 명시적인 모순은 발견되지 않으나, 포인터 포이즈닝 기술이 보안성을 크게 향상시키는 대신 자바스크립트 엔진의 마이크로 레이턴시를 소폭 증가시킨다는 성능상의 트레이드오프가 존재함이 지적됩니다 [4, 7]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Pointer Poisoning.md]] +--- diff --git a/Programming & Language/Post-Apocalyptic Fiction.md b/Programming & Language/Post-Apocalyptic Fiction.md new file mode 100644 index 00000000..744780a8 --- /dev/null +++ b/Programming & Language/Post-Apocalyptic Fiction.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-593061 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Post-Apocalyptic Fiction" +--- + +# [[Post-Apocalyptic Fiction]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Post-Apocalyptic Fiction.md]] +--- diff --git a/Programming & Language/Post-Surgical-Orthopedic-Recovery.md b/Programming & Language/Post-Surgical-Orthopedic-Recovery.md new file mode 100644 index 00000000..6ca21e76 --- /dev/null +++ b/Programming & Language/Post-Surgical-Orthopedic-Recovery.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-161900 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Post-Surgical-Orthopedic-Recovery" +--- + +# [[Post-Surgical-Orthopedic-Recovery]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Post-Surgical-Orthopedic-Recovery.md]] +--- diff --git a/Programming & Language/Prettier.md b/Programming & Language/Prettier.md new file mode 100644 index 00000000..3160a7ab --- /dev/null +++ b/Programming & Language/Prettier.md @@ -0,0 +1,39 @@ +--- +id: P-REINFORCE-AUTO-560F29 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Prettier" +--- + +# [[Prettier]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Prettier는 개발자가 작성한 소스 코드를 일관된 스타일로 자동 변환해 주는 '의견이 반영된(opinionated)' 코드 포맷터(Formatter)입니다 [1, 2]. 코드의 로직이나 구현 방식에는 관여하지 않고, 줄 바꿈, 공백, 들여쓰기 등 시각적이고 구조적인 뷰에만 초점을 맞추어 코드를 재작성합니다 [2-4]. 이를 통해 팀원 간의 코딩 컨벤션을 통일하여 코드 리뷰 시 불필요한 스타일 논쟁을 없애고, 개발자가 코드의 핵심 로직에 더욱 집중할 수 있도록 돕습니다 [5, 6]. + +## 📖 구조화된 지식 (Synthesized Content) +* **주요 역할 및 특징:** + 2016년에 등장한 Prettier는 코드가 예쁘게 보이도록 만드는 데 중점을 둔 도구로, 변경이 필요한 부분만 수정하는 것이 아니라 설정된 규칙에 따라 코드 전체의 구조적 뷰를 완전히 새로 작성합니다 [2, 4]. +* **팀 협업 및 생산성 향상:** + Prettier를 도입하면 개발자가 코드를 작성할 때 스타일에 대한 고민을 덜 수 있고, 저장 시 자동으로 일관된 포맷으로 변환됩니다 [6]. 이는 팀원 간 코드 스타일 차이로 인한 혼란을 최소화하고, 리뷰 과정의 효율성을 크게 증가시킵니다 [6]. +* **설정 및 관리 방법:** + 일반적으로 프로젝트 루트 경로에 `.prettierrc` (또는 `.prettierrc.json`) 파일을 생성하여 규칙을 정의하며, 포맷팅에서 제외할 파일은 `.prettierignore`에 지정합니다 [5, 7, 8]. 주요 설정 옵션으로는 한 줄의 최대 길이를 정하는 `printWidth`, 탭 너비를 정하는 `tabWidth`, 세미콜론 사용 여부를 정하는 `semi`, 작은따옴표 사용을 결정하는 `singleQuote` 등이 있습니다 [9, 10]. +* **ESLint와의 통합 및 충돌 방지:** + 코드 퀄리티를 검사하는 Linter 도구인 ESLint에도 일부 포맷팅 기능이 존재하여, Prettier와 함께 사용할 경우 규칙 충돌이 발생할 수 있습니다 [11]. 이를 해결하기 위해 `eslint-config-prettier` 패키지를 사용하여 Prettier와 겹치는 ESLint의 포맷팅 규칙을 끄는 방법이 가장 강력히 권장됩니다 [11, 12]. 추가로 `eslint-plugin-prettier`를 설치하여 Prettier의 포맷팅 오류를 ESLint의 오류로 통합 출력하게 만들 수도 있습니다 [11, 13]. +* **보안 취약점 (공급망 공격) 사례:** + 2025년 7월, Prettier와 ESLint의 충돌을 방지하는 필수 라이브러리인 `eslint-config-prettier` 패키지가 공급망 공격(CVE-2025-54313)의 표적이 되었습니다 [14, 15]. 관리자의 탈취된 npm 토큰을 통해 악성 버전이 배포되었으며, 이는 주로 Windows 시스템의 개발자 기기나 CI 호스트에서 원격 코드 실행(RCE)을 시도하도록 설계된 악성 설치 스크립트를 포함하고 있었습니다 [16]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[ESLint]], [[Formatter]] +- **Projects/Contexts:** [[eslint-config-prettier]], [[eslint-plugin-prettier]], [[husky]], [[lint-staged]] +- **Contradictions/Notes:** ESLint와 Prettier를 통합할 때 사용하는 `eslint-plugin-prettier`에 대해 의견이 갈립니다. 소스 [17]는 해당 플러그인을 사용하면 하나의 설정 파일에서 관리할 수 있고 자동 수정(`--fix`)이 편리하여 선호한다고 밝히지만, 소스 [18]에서는 에디터에 불필요한 빨간 밑줄이 과도하게 생기고 단독 사용보다 속도가 느려진다는 이유로 공식 문서에서도 권장하지 않는다며 플러그인 사용을 배제하는 방식을 채택합니다. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Prettier.md]] +--- diff --git a/Programming & Language/Procedural-Rhetoric.md b/Programming & Language/Procedural-Rhetoric.md new file mode 100644 index 00000000..dd2a419d --- /dev/null +++ b/Programming & Language/Procedural-Rhetoric.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-4B887E +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Procedural-Rhetoric" +--- + +# [[Procedural-Rhetoric]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Procedural-Rhetoric.md]] +--- diff --git a/Programming & Language/Proprioception.md b/Programming & Language/Proprioception.md new file mode 100644 index 00000000..e72c8e20 --- /dev/null +++ b/Programming & Language/Proprioception.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B85544 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Proprioception" +--- + +# [[Proprioception]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Proprioception.md]] +--- diff --git a/Programming & Language/RDF-star (RDF 확장 사양).md b/Programming & Language/RDF-star (RDF 확장 사양).md new file mode 100644 index 00000000..c67fdfcb --- /dev/null +++ b/Programming & Language/RDF-star (RDF 확장 사양).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-E70DB9 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - RDF-star (RDF 확장 사양)" +--- + +# [[RDF-star (RDF 확장 사양)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/RDF-star (RDF 확장 사양).md]] +--- diff --git a/Programming & Language/RRF (Reciprocal Rank Fusion).md b/Programming & Language/RRF (Reciprocal Rank Fusion).md new file mode 100644 index 00000000..a4d0492c --- /dev/null +++ b/Programming & Language/RRF (Reciprocal Rank Fusion).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6A4FE8 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - RRF (Reciprocal Rank Fusion)" +--- + +# [[RRF (Reciprocal Rank Fusion)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/RRF (Reciprocal Rank Fusion).md]] +--- diff --git a/Programming & Language/Reachability Analysis.md b/Programming & Language/Reachability Analysis.md new file mode 100644 index 00000000..db3d9fdf --- /dev/null +++ b/Programming & Language/Reachability Analysis.md @@ -0,0 +1,36 @@ +--- +id: P-REINFORCE-AUTO-5449D4 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Reachability Analysis" +--- + +# [[Reachability Analysis]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 도달 가능성 분석(Reachability Analysis)은 소스 코드 및 오픈 소스 종속성 분석에 사용되는 보안 테스트 기법으로, 오염된 데이터가 민감한 싱크(sink)에 도달할 수 있는지 또는 특정 취약점이 실제 프로덕션 환경이나 실행 경로에서 호출 가능한지를 추적하는 방법입니다 [1, 2]. 콜 그래프(call graph)와 데이터 흐름 분석을 통해 취약한 함수로의 연결 고리를 식별하며, 도달할 수 없는 데드 코드(dead code)를 필터링합니다 [3, 4]. 결과적으로 노이즈와 오탐(false positives)을 줄여 개발자 및 보안팀이 실제 위협에 집중할 수 있도록 돕는 핵심 기술입니다 [4, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +* **작동 원리:** 도달 가능성 분석은 애플리케이션의 엔드포인트를 리졸브하고 취약한 함수로 이어지는 콜 그래프를 생성하여, 해당 코드 영역이 실제로 실행 가능한지를 판별합니다 [3]. 이를 통해 퍼스트 파티(first-party) 코드뿐만 아니라 서드 파티(third-party) 코드에 존재하는 취약점이 실제 실행 경로(execution paths)와 연결되어 있는지를 함수 수준(function-level)의 세분화된 단위로 추적할 수 있습니다 [2, 5]. +* **보안 점검 및 문제 해결의 우선순위 지정:** 이 기법의 가장 큰 이점은 개발자의 알림 피로도(alert fatigue)를 줄이는 데 있습니다 [5]. 실제 런타임 조건에서 도달할 수 없는 데드 경로나 실행되지 않는 모듈에 위치한 취약점을 제외(필터링)시킴으로써, 심각성, 익스플로잇 가능성(exploitability), 비즈니스 영향도 등을 고려한 맥락 인식 기반의 우선순위 분류가 가능해집니다 [4, 6]. +* **주요 보안 분석 도구에서의 활용 사례:** + * **Endor Labs:** 퍼스트 파티 및 서드 파티 코드 전반에 걸친 함수 수준의 도달 가능성 분석을 적용하여, 취약점이 외부의 신뢰할 수 없는 입력에 노출되는지 판단하고 SCA(Software Composition Analysis)와 SAST(Static Application Security Testing) 결과를 통합합니다 [2, 5]. + * **Veracode:** 데이터 흐름을 추적하여 오염된(tainted) 데이터가 민감한 싱크(sink)에 도달할 수 있는지를 도달 가능성 분석을 통해 확인합니다 [1]. + * **Corgea:** SAST 스캔 과정에서 엔드포인트를 식별하고 취약한 함수에 대한 콜 그래프를 생성하여 도달 여부를 시각화합니다 [3]. + * **Qwiet AI:** CPG(Code Property Graph) 분석과 함께 도달 가능성 기반의 필터링을 사용하여, 스캔 속도를 최적화하고 분류해야 할 보안 경고 수를 효과적으로 줄입니다 [7, 8]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[SAST (Static Application Security Testing)]], [[SCA (Software Composition Analysis)]], [[Call Graph]], [[Data Flow Analysis]], [[False Positives]], [[Vulnerability Prioritization]] +- **Projects/Contexts:** [[Endor Labs]], [[Veracode]], [[Corgea]], [[Qwiet AI]] +- **Contradictions/Notes:** 제공된 소스 내에서 도달 가능성 분석의 효용성에 대한 모순점은 없으며, 모든 자료가 공통적으로 SAST 및 SCA 도구에서 오탐을 줄이고 실제 위험을 식별하는 데 매우 효과적이고 필수적인 접근법이라고 동의하고 있습니다 [2, 4]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Reachability Analysis.md]] +--- diff --git a/Programming & Language/React 19 Compiler.md b/Programming & Language/React 19 Compiler.md new file mode 100644 index 00000000..c75869ec --- /dev/null +++ b/Programming & Language/React 19 Compiler.md @@ -0,0 +1,36 @@ +--- +id: P-REINFORCE-AUTO-A2E200 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - React 19 Compiler" +--- + +# [[React 19 Compiler]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> **React 19 컴파일러(React Compiler)**는 빌드 타임에 코드를 분석하여 컴포넌트, 값, 콜백 함수에 자동으로 메모이제이션(`useMemo`, `useCallback` 등)을 적용하는 최적화 도구입니다. 수동 최적화에 필요한 보일러플레이트 코드를 대폭 줄이면서도 애플리케이션의 전반적인 렌더링 성능을 향상시킵니다. + +## 📖 구조화된 지식 (Synthesized Content) +**1. 자동 메모이제이션의 작동 원리** 과거에는 불필요한 리렌더링을 막기 위해 개발자가 직접 `useMemo`나 `useCallback`으로 무거운 연산이나 함수를 감싸주어야 했습니다. 하지만 React 19 컴파일러는 안전하다고 판단되는 모든 곳에 이러한 최적화 기법을 자동으로 적용하여, 매 렌더링마다 함수나 값이 불필요하게 재생성되는 것을 막아줍니다. + +**2. 높은 최적화 커버리지** 이 컴파일러는 **순수 함수형 컴포넌트(Pure functional components)에서 가장 강력하게 동작**합니다. + +- **콜백 안정화(Callback stabilization):** 95% 이상 커버리지를 보이며 불필요한 프롭스(Props) 변경을 막아줍니다. +- **컴포넌트 및 값 메모이제이션:** 컴포넌트의 90% 이상, 연산 값의 85% 이상을 자동으로 캐싱하여 렌더링 소요 시간과 연산 시간을 크게 단축합니다. 이 덕분에 리스트 렌더링 등에서도 획기적인 속도 향상이 일어납니다. + +**3. 컴파일러의 한계와 수동 최적화 필요성** 모든 코드를 완벽하게 최적화할 수는 없습니다. 비동기 작업(Async operations)은 컴파일러의 자동 최적화 대상에서 제외됩니다. 또한, **비결정론적(Non-deterministic) 동작에 의존하는 부수 효과(Side effects), 참조(Ref)의 혼용, 외부 의존성, 또는 직접적인 DOM 조작이 포함된 경우 컴파일러가 이를 최적화할 수 없으므로 개발자의 수동 개입이 필요**합니다. + +**4. 개발 패러다임과 아키텍처의 변화** React 19 컴파일러는 시니어와 주니어 개발자 간의 성능 최적화 전문성 격차를 줄여줍니다. 일반적인 코드만 작성해도 기본적으로 우수한 성능이 보장되기 때문에, 숙련된 개발자들은 미세한 메모이제이션(Micro-optimizations)에 시간을 쏟는 대신 애플리케이션의 전체적인 아키텍처 설계에 더욱 집중할 수 있게 됩니다. 더 나아가, 참조 안정성이 자동으로 확보됨에 따라 WebGL이나 ECS 기반의 고성능 게임 엔진 생태계 등에서도 런타임 오버헤드를 줄이는 데 크게 기여할 것으로 기대됩니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[React Performance Optimization]], [[useMemo & useCallback]], [[불필요한 리렌더링 방지]], [[재조정 (Reconciliation)]] +- **Projects/Contexts:** [[대규모 React 프론트엔드 최적화 및 리팩토링]], [[고성능 실시간 상호작용 엔진 구축]] +- **Contradictions/Notes:** 새로운 컴파일러가 메모이제이션을 마법처럼 자동화해주지만, **비효율적인 데이터 패칭이나 잘못 설계된 거대한 컴포넌트 트리, 무분별한 전역 상태 관리와 같은 근본적인 아키텍처 결함까지 해결해 주지는 못합니다**. 올바른 성능 최적화를 위해서는 컴파일러에만 의존하지 않고 훌륭한 소프트웨어 설계 원칙을 계속 유지해야 합니다. +- Raw Source: [[00_Raw/2026-04-20/React 19 Compiler.md]] +--- diff --git a/Programming & Language/React 게임 엔진 아키텍처.md b/Programming & Language/React 게임 엔진 아키텍처.md new file mode 100644 index 00000000..6d5d172c --- /dev/null +++ b/Programming & Language/React 게임 엔진 아키텍처.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-D1ED6C +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - React 게임 엔진 아키텍처" +--- + +# [[React 게임 엔진 아키텍처]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/React 게임 엔진 아키텍처.md]] +--- diff --git a/Programming & Language/React 및 Nextjs 개발 환경.md b/Programming & Language/React 및 Nextjs 개발 환경.md new file mode 100644 index 00000000..b7193459 --- /dev/null +++ b/Programming & Language/React 및 Nextjs 개발 환경.md @@ -0,0 +1,39 @@ +--- +id: P-REINFORCE-AUTO-2C5A84 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - React 및 Nextjs 개발 환경" +--- + +# [[React 및 Nextjs 개발 환경]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> React 및 Next.js 개발 환경은 코드의 일관성과 품질을 유지하기 위해 정적 분석 도구와 포맷터를 적극적으로 활용하는 생태계이다 [1, 2]. 주로 ESLint를 통해 React 및 Next.js 특화 문법과 구조적 오류를 검사하고, Prettier를 통해 코드 스타일을 통일한다 [3, 4]. 대규모 프로젝트에서는 Turborepo와 같은 모노레포 도구와 Husky, lint-staged를 결합하여 개발 생산성을 높이고 효율적인 린팅 파이프라인을 구축한다 [5-7]. + +## 📖 구조화된 지식 (Synthesized Content) +* **React 및 Next.js 특화 ESLint 설정:** + React 컴포넌트 개발을 위해서는 컴포넌트 생명주기와 훅(Hooks) 규칙, JSX 접근성 검사를 지원하는 `eslint-plugin-react`, `eslint-plugin-react-hooks`, `eslint-plugin-jsx-a11y` 등의 전용 플러그인 설치가 필요하다 [8-10]. Next.js 프로젝트의 경우 `eslint-config-next` 플러그인을 사용하여 코어 웹 바이탈(core web vitals) 및 서버 컴포넌트 패턴과 같은 프레임워크 특화 규칙을 손쉽게 적용할 수 있다 [4, 11]. +* **JSX 변환(Transform) 규칙 처리:** + 최신 JSX 변환을 지원하는 개발 환경에서는 파일 내에 React 객체를 직접 import하지 않아도 되므로, ESLint에서 발생하는 `'React' must be in scope when using JSX` 에러를 방지하기 위해 `'react/react-in-jsx-scope': 'off'` 규칙을 추가로 설정하여 불필요한 경고를 없앨 수 있다 [4, 12, 13]. +* **포맷터(Prettier)와의 충돌 제어:** + ESLint의 스타일 규칙과 Prettier의 포맷팅 규칙이 충돌하는 것을 방지하기 위해 `eslint-config-prettier` 패키지를 도입하여 포맷팅과 중복되거나 충돌하는 ESLint 측의 규칙들을 비활성화해야 한다 [14-16]. +* **모노레포(Turborepo) 환경에서의 구성:** + 여러 개의 Next.js 애플리케이션과 공유 라이브러리가 공존하는 Turborepo 모노레포 환경에서는 구성 파일의 무분별한 중복을 막기 위해 중앙 집중식 ESLint 설정 패키지(예: `@repo/eslint-config`)를 구축하는 것이 매우 효과적이다 [5, 17]. Base, Next.js, Library용 프리셋을 모듈화하여 구성하고, 루트 레벨의 오케스트레이션(orchestration) 설정을 통해 파일 패턴별로 각 패키지에 맞는 적절한 규칙이 적용되도록 제어한다 [4, 17, 18]. +* **Git Hooks를 통한 자동화 (Husky & lint-staged):** + 코드 저장소에 푸시되거나 커밋되기 전에 React 및 Next.js 코드 컨벤션이 강제되도록 `Husky`를 활용하여 Git 훅(pre-commit 등)을 설정한다 [19-21]. 여기에 `lint-staged`를 결합하면 변경되어 스테이징된 파일들에만 한정하여 ESLint와 Prettier를 실행하므로, 방대한 코드베이스에서도 1~2초 만에 검사를 완료하여 개발 흐름의 지연을 막을 수 있다 [6, 22]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[ESLint]], [[Prettier]], [[Turborepo]], [[Husky 및 lint-staged]] +- **Projects/Contexts:** [[Next.js 애플리케이션 및 모노레포 구축]], [[React 컴포넌트 개발 환경]] +- **Contradictions/Notes:** ESLint와 Prettier를 함께 사용할 때 `eslint-plugin-prettier`를 사용하여 Prettier 규칙을 ESLint 내에서 실행하는 방식이 존재하나, 에디터상에 오류 밑줄이 과도하게 표시되거나 단독 실행보다 처리 속도가 느려지는 단점이 있어 Prettier 공식 문서 및 일부 실무 환경에서는 이를 지양하고 `eslint-config-prettier`만 적용할 것을 권장하기도 한다 [12, 23]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/React 및 Next.js 개발 환경.md]] +--- diff --git a/Programming & Language/React 재조정 (Reconciliation) 최적화.md b/Programming & Language/React 재조정 (Reconciliation) 최적화.md new file mode 100644 index 00000000..516c711c --- /dev/null +++ b/Programming & Language/React 재조정 (Reconciliation) 최적화.md @@ -0,0 +1,51 @@ +--- +id: P-REINFORCE-AUTO-E6A358 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - React 재조정 (Reconciliation) 최적화" +--- + +# [[React 재조정 (Reconciliation) 최적화]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> React 재조정(Reconciliation) 최적화는 React가 가상 DOM 트리를 비교(Diffing)하여 실제 DOM에 적용할 최소한의 변경 사항을 계산하는 과정에서 발생하는 CPU 오버헤드와 불필요한 렌더링을 줄여 애플리케이션의 성능과 반응성을 극대화하는 아키텍처 및 코딩 기법입니다. + +## 📖 구조화된 지식 (Synthesized Content) +**1. 재조정의 핵심 규칙 이해와 준수** React의 재조정 알고리즘을 최적화하려면 프레임워크가 트리를 비교하는 3가지 핵심 규칙을 이해하고 이에 맞춰 컴포넌트를 설계해야 합니다. + +- **요소 타입 유지:** 부모 노드의 타입이 달라지면(예: `div`에서 `span`으로 변경) React는 이전 하위 트리를 완전히 파괴하고 처음부터 다시 구축합니다. 따라서 조건부 렌더링 시 가급적 동일한 요소 타입과 위치를 유지하여 하위 컴포넌트의 인스턴스와 상태가 파괴되지 않도록 해야 합니다. +- **안정적이고 고유한 Key 사용:** 리스트 렌더링 시 `key`를 부여하지 않거나 배열의 인덱스를 사용하면 항목의 순서가 바뀔 때 React가 전체 리스트를 불필요하게 재생성하게 됩니다. 안정적인 데이터 ID를 `key`로 사용하여 React가 동일한 항목을 식별하고 렌더링을 건너뛸 수 있게 해야 합니다. + +**2. 렌더링 트리 분리 및 상태의 하향 배치 (Lifting State Down)** 부모 컴포넌트의 상태가 변하면 기본적으로 모든 하위 컴포넌트가 재조정 과정을 거칩니다. + +- **상태 고립화:** 입력 폼의 타이핑이나 마우스 좌표 추적처럼 고빈도로 변하는 상태는 해당 상태를 직접 사용하는 가장 하위의 자식 컴포넌트로 내려보내야(Lifting State Down) 합니다. +- **컨텍스트(Context) 분할:** 전역 Context의 값이 하나라도 변하면 이를 구독하는 모든 컴포넌트가 리렌더링됩니다. 따라서 변경 빈도가 높은 상태와 낮은 상태를 별도의 Context로 분할하여 구독 범위를 좁혀야 합니다. + +**3. 참조 안정성(Reference Stability) 확보를 통한 메모이제이션** `React.memo`는 컴포넌트의 프롭스(Props)가 변경되지 않았을 때 재조정을 건너뛰게 해줍니다. 하지만 다음과 같은 패턴은 이 최적화를 무력화합니다. + +- **인라인 객체 및 함수 지양:** 렌더링 함수 내부에서 `{ borderRadius: '50%' }`와 같은 인라인 객체를 생성하거나 `() => handleClick()`과 같은 익명 함수를 넘기면 매 렌더링마다 새로운 메모리 참조(Reference)가 생성됩니다. +- 부모에서 자식으로 콜백이나 파생 객체를 전달할 때는 **`useCallback`과 `useMemo`를 사용하여 참조를 고정(Memoize)**해야 자식 컴포넌트의 `React.memo`가 정상적으로 작동하여 재조정을 방지할 수 있습니다. + +**4. 대규모 리스트 가상화 (Virtualization)** 항목이 수백 개 이상인 리스트의 경우 재조정 자체의 비용이 기하급수적으로 증가하여 브라우저가 버벅거립니다. 화면(Viewport)에 보이는 항목만 렌더링하고 스크롤 시 DOM 노드를 동적으로 교체하는 `react-window` 등의 가상화 라이브러리를 사용해 재조정할 노드의 절대적인 수 자체를 줄여야 합니다. + +**5. 한계 극복: 명령형 조작을 통한 재조정 우회 (Bypass)** 실시간 애니메이션이나 초당 60프레임(FPS)을 보장해야 하는 게임 환경에서 허용된 렌더링 시간은 약 16.67ms에 불과합니다. + +- React의 가상 DOM 디핑 알고리즘(O(n) 복잡도)은 이러한 고빈도 업데이트를 처리하기에는 구조적으로 무겁습니다. +- 따라서 무거운 애니메이션, 파티클 시스템, 물리 엔진 등은 React의 선언적 렌더링 시스템을 통하지 않고, 참조(`useRef`)를 직접 조작하거나 React Native의 `setNativeProps`를 활용해 **명령형(Imperative)으로 DOM 및 WebGL 인스턴스를 직접 업데이트하여 재조정 오버헤드를 완전히 우회**해야 합니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[가상 DOM (Virtual DOM)]], [[React 19 Compiler]], [[불필요한 리렌더링 방지]], [[명령형 직접 조작 (Imperative Manipulation)]] +- **Projects/Contexts:** [[고성능 실시간 상호작용 시스템을 위한 React 기반 게임 엔진 아키텍처]], [[대규모 데이터 렌더링 및 가상화 최적화]] +- **Contradictions/Notes:** React 19의 컴파일러가 도입되면서 `useMemo`나 `useCallback`과 같은 수동 참조 안정화 작업의 대부분을 빌드 타임에 자동으로 처리해 줍니다. 하지만 이는 구조적으로 순수한 컴포넌트에서만 완벽히 동작하며, 거대한 컴포넌트 트리, 불안정한 Key 배열, 과도한 Context 사용과 같은 잘못된 아키텍처 설계 자체를 고쳐주지는 못하므로 여전히 개발자의 구조 최적화 역량이 중요합니다. + +--- + +_Last updated: 2026-04-15_ +- Raw Source: [[00_Raw/2026-04-20/React 재조정 (Reconciliation) 최적화.md]] +--- diff --git a/Programming & Language/React 컴포넌트 Props 전달 및 상태 관리.md b/Programming & Language/React 컴포넌트 Props 전달 및 상태 관리.md new file mode 100644 index 00000000..4e893e5d --- /dev/null +++ b/Programming & Language/React 컴포넌트 Props 전달 및 상태 관리.md @@ -0,0 +1,43 @@ +--- +id: P-REINFORCE-AUTO-F29466 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - React 컴포넌트 Props 전달 및 상태 관리" +--- + +# [[React 컴포넌트 Props 전달 및 상태 관리]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> React 컴포넌트의 Props 전달과 상태 관리는 애플리케이션의 동작을 제어하고 컴포넌트 간 데이터를 교환하는 핵심 메커니즘입니다 [1, 2]. 올바른 Props 설계는 초과 속성으로 인한 불필요한 리렌더링과 런타임 경고를 방지하며, 효과적인 상태 관리는 유효하지 않은 상태를 원천 차단하여 예측 불가능한 동작이나 버그를 예방합니다 [3, 4]. TypeScript의 식별 가능한 유니언(Discriminated Unions)과 초과 속성 검사(Excess Property Checking) 같은 기능을 활용하면 타입 안전성이 보장된 견고한 React 애플리케이션을 구축할 수 있습니다 [1, 4-6]. + +## 📖 구조화된 지식 (Synthesized Content) +* **Props 전달과 타입 안전성 (Props Passing and Type Safety)** + * React 컴포넌트의 기본적인 `props` 타입을 정의할 때는 `interface`나 `type` 중 어느 것을 사용해도 무방합니다 [7, 8]. + * Props로 전달되는 객체에 대한 초과 속성 검사(Excess Property Checking)는 매우 중요합니다 [4]. 만약 오타가 난 prop과 같은 유효하지 않은 초과 속성이 DOM에 전달되면 React가 경고를 발생시킬 수 있으며, 의도치 않게 컴포넌트의 Props를 무효화하여 불필요한 리렌더링을 유발할 수 있습니다 [4]. + * 명시적인 판별자(Discriminant) 프로퍼티 없이도 `never` 타입과 유니언 타입을 조합해 상호 배타적인(Exclusive) Props를 구성할 수 있습니다 [9]. 이를 통해 텍스트 필드 컴포넌트에 `options`를 전달하거나 select 필드에 `placeholder`를 전달하는 등 호환되지 않는 Props의 혼합 사용을 컴파일 타임에 방지할 수 있습니다 [9]. 또한 버튼이 일반 버튼인지 링크인지에 따라 Props를 안전하게 분기할 수도 있습니다 [10]. + +* **상태 관리와 식별 가능한 유니언 (State Management and Discriminated Unions)** + * 식별 가능한 유니언(Discriminated Unions)은 React 상태 관리에서 유효하지 않은 상태를 표현 불가능하게 만드는 "비밀 무기"로 작용합니다 [1, 5, 6]. + * 폼 제출 워크플로우(validating, validation-error, submitting, success, error)나 다단계 마법사(Wizard) 폼 같은 복잡한 비동기 UI 상태를 명확히 모델링하고 모든 경우의 수를 처리(Exhaustive checking)하도록 강제할 수 있습니다 [5, 11, 12]. + * Redux 스타일의 Reducer 기능이나 라우터 상태 관리에서도 식별 가능한 유니언을 통해 각 액션과 상태의 조합을 완벽히 매칭할 수 있으며, 복잡한 상태의 경우 식별 가능한 유니언을 중첩하여 관리하기도 합니다 [11]. + * 외부 데이터(API 등)나 설정 파일에서 Props나 상태를 받을 때는 TypeScript가 컴파일 타임에만 작동하므로, Zod와 같은 런타임 검증 라이브러리와 식별 가능한 유니언을 결합하면 더욱 안전한 비동기 상태 관리가 가능합니다 [6, 10]. + +* **상태 관리 부실의 위험성 (Risks of Mismanaged State)** + * 명확한 패턴 없이 여러 곳에서 상태를 수정하게 되면 애플리케이션의 동작이 예측 불가능해지고, 버그의 근본 원인을 파악하기 매우 어려워집니다 [3]. + * 잘못된 상태 관리는 중복되거나 오래된(stale) 상태를 만들고 사이드 이펙트를 유발하여 기술 부채를 축적시킵니다 [3]. 이는 결국 불필요한 리렌더링, 메모리 누수, 불필요한 네트워크 요청 등 심각한 성능 문제로 이어집니다 [3]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Discriminated Unions]], [[Excess Property Checking]], [[Runtime Validation (Zod)]] +- **Projects/Contexts:** [[Redux-style Reducers]], [[React Component Library]] +- **Contradictions/Notes:** React props 타입 정의 시 기본적인 사용에 있어 `interface`와 `type` 간의 실질적 큰 차이는 없으나, TypeScript는 캐싱과 성능 최적화 측면에서 교집합(&)보다는 `interface extends`의 사용을 권장합니다 [7, 8, 13]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/React 컴포넌트 Props 전달 및 상태 관리.md]] +--- diff --git a/Programming & Language/Readonly Type.md b/Programming & Language/Readonly Type.md new file mode 100644 index 00000000..b386e75f --- /dev/null +++ b/Programming & Language/Readonly Type.md @@ -0,0 +1,39 @@ +--- +id: P-REINFORCE-AUTO-EDA6A3 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Readonly Type" +--- + +# [[Readonly Type]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> TypeScript의 `Readonly Type` (또는 `readonly` 수식어)은 객체의 속성, 배열 등이 초기화된 이후 수정되는 것을 방지하여 타입 수준에서 불변성(Immutability)을 강제하는 기능입니다[1, 2]. 이는 런타임 오버헤드 없이 컴파일 타임에 예기치 않은 데이터의 변이를 차단하며, 변수의 재할당을 막는 `const`나 런타임 동작인 `Object.freeze()`와 구별됩니다[3-5]. 주로 설정 객체, API 응답, 상태 관리 등 변경되지 않아야 하는 데이터 구조를 보호하는 데 사용됩니다[6, 7]. + +## 📖 구조화된 지식 (Synthesized Content) +* **작동 방식 및 컴파일 타임 보호:** + `readonly`는 객체의 속성이나 클래스, 인터페이스에 적용되어 할당 후 변경(mutate) 시도를 할 때 컴파일러 수준에서 에러를 발생시킵니다[3, 8]. 이 기능은 오직 컴파일 시점에만 존재하며, 자바스크립트로 변환된 이후에는 제거되므로 성능 저하나 런타임 오버헤드를 발생시키지 않습니다[3, 5, 9]. +* **`Readonly` 유틸리티 타입:** + TypeScript는 기존 객체 타입의 모든 속성을 읽기 전용으로 변환해 주는 `Readonly` 내장 유틸리티 타입을 제공합니다[2, 10]. 만약 `readonly` 속성을 다시 가변(mutable) 상태로 되돌리고 싶다면, 매핑된 타입(Mapped Type) 구문에서 `-readonly` 제어자를 사용하여 속성을 제거할 수 있습니다[11]. +* **배열과 튜플의 불변성:** + 배열이나 튜플에 `readonly` 제어자를 붙이거나 `ReadonlyArray`를 사용하면, 배열을 변이시키는 `push`, `pop`과 같은 메서드가 타입 시그니처에서 제거되어 원천적으로 사용이 차단됩니다[12, 13]. 단, `map`이나 `filter` 같이 원본을 수정하지 않고 새로운 배열을 반환하는 메서드는 그대로 사용할 수 있습니다[12]. +* **얕은 불변성(Shallow Immutability)의 한계:** + 기본적인 `readonly` 제어자와 `Readonly` 타입은 최상위 속성에만 적용되는 얕은(shallow) 수준의 보호만 제공하여 중첩된 객체 내부는 여전히 변경될 수 있습니다[4, 5, 14]. 이를 해결하기 위해 매핑 타입과 조건부 타입을 결합하여 재귀적으로 속성을 동결하는 `DeepReadonly` 커스텀 타입을 직접 정의하여 사용해야 합니다[4, 14, 15]. +* **별칭(Aliasing)으로 인한 취약점:** + `readonly` 타입의 데이터를 가변(mutable) 매개변수를 기대하는 함수에 전달할 경우, TypeScript는 타입 호환성 규칙에 의해 이를 허용합니다[16]. 이로 인해 `readonly`로 선언된 데이터라 하더라도 우회적인 경로(Alias)를 통해 값이 수정될 수 있는 한계(Gotcha)가 존재하므로 함수 시그니처 설계 시 주의가 필요합니다[16-18]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Immutability]], [[Utility Types]], [[DeepReadonly]], [[Object.freeze()]], [[Mapped Types]] +- **Projects/Contexts:** [[Functional Programming]], [[State Management]] +- **Contradictions/Notes:** 자바스크립트의 `const`는 변수 자체의 재할당을 막고 객체 내부 속성의 변경은 허용하지만, TypeScript의 `readonly`는 객체 내부 속성의 변경을 막습니다[4, 19]. 또한 `Object.freeze()`는 런타임에 얕은 동결을 수행하지만, `readonly`는 런타임 성능 비용 없이 컴파일 타임에만 엄격하게 검사한다는 차이가 있습니다[5, 20, 21]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Readonly Type.md]] +--- diff --git a/Programming & Language/Readonly 유틸리티 타입.md b/Programming & Language/Readonly 유틸리티 타입.md new file mode 100644 index 00000000..c358217b --- /dev/null +++ b/Programming & Language/Readonly 유틸리티 타입.md @@ -0,0 +1,42 @@ +--- +id: P-REINFORCE-AUTO-33C0BF +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Readonly 유틸리티 타입" +--- + +# [[Readonly 유틸리티 타입]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Readonly 유틸리티 타입(`Readonly`)은 TypeScript에서 특정 객체 타입의 모든 속성에 `readonly` 수식어를 추가하여 초기화 이후 값을 재할당할 수 없도록 변환하는 기능입니다[1, 2]. 이는 런타임 성능 저하 없이 컴파일 타임에만 엄격하게 불변성을 강제하여, 의도치 않은 데이터 변형으로 인한 버그를 사전에 차단합니다[3, 4]. 단, 최상위 속성에만 적용되는 얕은(shallow) 불변성만을 제공하므로, 중첩된 객체를 완전히 동결하려면 재귀적인 형태의 딥 리드온리(Deep Readonly) 패턴이 별도로 필요합니다[5, 6]. + +## 📖 구조화된 지식 (Synthesized Content) +- **기본 작동 원리와 문법:** + `Readonly`는 주어진 타입 `T`의 모든 프로퍼티를 읽기 전용으로 매핑합니다[1, 2]. 설정이나 API 응답, 상태 관리 리듀서 등 앱 내내 값이 유지되어야 하는 객체를 보호할 때 주로 사용됩니다[7, 8]. TypeScript 코드가 컴파일된 후에는 관련 어노테이션이 모두 사라지므로 실행 시점(Runtime)에는 어떠한 오버헤드도 발생시키지 않습니다[3, 9]. + +- **유사 개념과의 차이점:** + - **`const`와의 차이:** `const`는 변수 자체의 재할당을 막지만 참조된 객체의 내부 속성 변경은 막지 못합니다. 반면 `readonly`는 변수 바인딩이 아닌 객체 속성이나 배열 요소 자체의 변경을 제한합니다[10, 11]. + - **`Object.freeze()`와의 차이:** `Object.freeze()`는 런타임에 객체를 동결하며 실행 성능에 비용을 청구하지만, `readonly`는 컴파일 타임에 타입 시스템을 통해서만 수정을 금지합니다[4, 12]. + +- **배열에서의 활용:** + 객체뿐만 아니라 배열에도 `ReadonlyArray` 또는 `readonly T[]` 형태로 사용할 수 있습니다[13, 14]. 이렇게 선언된 배열은 요소의 재할당이 불가능할 뿐만 아니라, `push()`, `pop()` 등 원본을 수정하는 메서드가 타입 정의에서 완전히 제거됩니다[15, 16]. + +- **한계점 및 우회 취약점 (Gotcha):** + - **얕은 불변성(Shallow Immutability):** `Readonly`는 1단계 깊이의 속성에만 작용합니다. 객체 내부의 중첩된 객체 속성은 여전히 수정이 가능하며, 이를 해결하기 위해서는 매핑된 타입과 조건부 타입을 결합한 커스텀 `DeepReadonly` 유틸리티를 구현해야 합니다[5, 6, 17]. + - **에일리어싱(Aliasing) 문제:** `readonly` 타입의 데이터를, 수정 가능한 타입(mutable)을 매개변수로 받는 함수에 전달할 경우 타입 호환성 규칙에 의해 통과될 수 있습니다. 이로 인해 함수 내부에서 원본 데이터가 변경되는 우회 돌연변이가 발생할 수 있습니다[18, 19]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[불변성(Immutability)]], [[매핑된 타입(Mapped Types)]], [[DeepReadonly]] +- **Projects/Contexts:** 변경 불가한 외부 API 응답 데이터 모델링, 상태 관리 시스템(Redux 리듀서 등)의 데이터 무결성 보장, 그리고 애플리케이션의 전역 환경 설정(Configuration) 객체 보호 맥락에서 광범위하게 쓰입니다[8, 17]. +- **Contradictions/Notes:** TypeScript의 에일리어싱 한계로 인해 `readonly` 데이터가 `mutable` 타입을 요구하는 함수로 전달되어 내부에서 값이 변경될 위험이 존재하므로, 완전한 불변성을 지키려면 함수 시그니처 전반에 걸쳐 읽기 전용 파라미터를 강제하거나 데이터의 복사본을 넘기는 설계가 필요합니다[18, 19]. 또한, 모든 `readonly` 속성을 다시 수정 가능하게 되돌려야 할 때는 `Mutable`이라는 커스텀 헬퍼 타입을 만들어 매핑 수식어를 제거(`-readonly`)하는 방식으로 해결할 수 있습니다[6]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Readonly 유틸리티 타입.md]] +--- diff --git a/Programming & Language/Real User Monitoring (RUM).md b/Programming & Language/Real User Monitoring (RUM).md new file mode 100644 index 00000000..3acc4360 --- /dev/null +++ b/Programming & Language/Real User Monitoring (RUM).md @@ -0,0 +1,41 @@ +--- +id: P-REINFORCE-AUTO-AB3C97 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Real User Monitoring (RUM)" +--- + +# [[Real User Monitoring (RUM)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 실제 사용자 모니터링(RUM)은 웹사이트가 실행되는 동안 실제 사용자가 경험하는 성능 데이터를 직접 수집하는 방법입니다 [1]. 이는 통제된 환경에서 측정하는 실험실(Lab) 데이터와 달리, 성능 에이전트를 사용하여 사용자의 생생한 현장 데이터(Field Data)를 포착합니다 [1, 2]. RUM은 코어 웹 바이탈(Core Web Vitals)과 같은 주요 사용자 경험 지표를 측정하고 시간에 따른 성능 추이를 파악하는 데 필수적으로 활용됩니다 [3, 4]. + +## 📖 구조화된 지식 (Synthesized Content) +* **현장 데이터(Field Data)의 수집:** + RUM은 실제 방문자가 라이브 웹사이트와 상호작용할 때 발생하는 현장 데이터를 직접 수집합니다 [1, 5]. 웹사이트의 각 사용자에 대한 데이터를 모두 포함하므로 처리해야 할 데이터 양이 매우 많으며, 이를 효과적으로 필터링하고 해석하기 위해 평균값보다는 중앙값(Median)이나 백분위수(Percentiles)와 같은 통계적 방법이 주로 사용됩니다 [1, 6]. + +* **코어 웹 바이탈 및 성능 측정:** + RUM은 INP(Interaction to Next Paint)를 비롯한 코어 웹 바이탈을 실제 사용자의 관점에서 측정하는 데 사용됩니다 [3]. 실험실 테스트로는 완벽히 알 수 없는 실제 환경에서의 로딩 지연이나 사용자 상호작용 데이터를 추적할 수 있으며, 크로스 오리진 이미지의 렌더링 시간을 정확히 알 수 없을 때 이미지가 로드된 시간을 보고하는 등 실제 사용자 환경의 제약을 극복하는 데 도움을 줍니다 [3, 7]. + +* **주요 도구 및 플랫폼:** + * **CrUX (Chrome User Experience Report):** 수백만 개의 웹사이트에 대해 데이터 수집에 동의한 Chrome 사용자로부터 실제 성능 지표를 집계하여 제공하는 대표적인 RUM 데이터셋입니다 [8-10]. + * **RUM 라이브러리 및 상용 서비스:** 사용자별 상호작용 지표를 캡처하기 위해 `web-vitals.js`와 같은 라이브러리를 사용할 수 있습니다 [3]. 또한, Request Metrics나 DebugBear와 같은 모니터링 서비스는 지연 없이 실시간으로 실제 사용자 분석 데이터와 관측 가능성(Observability)을 제공하여, 성능 개선이 실제 사용자에게 미치는 영향을 즉각적으로 모니터링할 수 있게 돕습니다 [11-13]. + +* **RUM의 중요성:** + RUM은 개발자가 웹사이트 성능이 실제 사용자에게 어떻게 느껴지는지를 파악하게 해줍니다 [1, 5]. 새로운 기능이나 스크립트가 추가되었을 때 성능 저하가 발생하는지 초기 단계에서 모니터링하고, 지속적인 성능 추이를 추적하여 사용자 경험을 최적화하는 데 매우 중요합니다 [4]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Field Data]], [[Core Web Vitals]], [[Chrome User Experience Report (CrUX)]], [[Synthetic Testing]] +- **Projects/Contexts:** [[Request Metrics]], [[DebugBear]] +- **Contradictions/Notes:** 현장 데이터를 수집하는 대표적인 도구인 CrUX는 데이터가 월별로 업데이트되고 도메인 전체로 요약되어 제공되는 반면, Request Metrics와 같은 전문 RUM 서비스는 지연 없이 현재 시점(right now)의 실시간 성능 데이터를 제공한다는 차이점이 있습니다 [10, 13]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Real User Monitoring (RUM).md]] +--- diff --git a/Programming & Language/Render State.md b/Programming & Language/Render State.md new file mode 100644 index 00000000..e38e2264 --- /dev/null +++ b/Programming & Language/Render State.md @@ -0,0 +1,35 @@ +--- +id: P-REINFORCE-AUTO-6A1728 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Render State" +--- + +# [[Render State]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 렌더링 상태(Render State)란 드로우 콜을 실행하기 위해 CPU가 설정하는 GPU의 내부 설정 및 리소스 상태를 의미합니다 [1, 2]. 셰이더 프로그램 바인딩, 재질 변경, 정점 버퍼 할당 등 렌더 상태를 변경하는 작업은 그래픽 API가 수행하는 연산 중 가장 리소스를 많이 소모하는 작업입니다 [1, 2]. 따라서 드로우 콜과 렌더 상태 변경 횟수를 최소화하는 것은 전체 그래픽 렌더링 성능을 최적화하는 데 매우 중요합니다 [2, 3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **렌더 상태의 정의 및 역할:** 화면에 기하학적 구조를 그리기 위해 CPU는 드로우 콜(Draw Call)을 발생시키는데, 이를 준비하기 위해 CPU는 리소스를 설정하고 GPU의 내부 설정을 변경하며 이를 총칭하여 렌더 상태(Render State)라고 합니다 [2]. 여기에는 현재 렌더링 상태 설정, 셰이더 프로그램 바인딩, 정점 버퍼 및 텍스처 유닛 할당과 같은 복잡한 준비 과정이 포함됩니다 [1]. +- **성능에 미치는 영향:** 재질(Material)을 변경하는 등 렌더 상태를 변경하는 것은 그래픽 API 연산 중 리소스를 가장 많이 소모하는 작업입니다 [2]. 드로우 콜을 위한 렌더 상태 설정과 같은 준비 과정(오버헤드)은 실제 GPU가 정점을 처리하고 픽셀을 그리는 시간보다 훨씬 더 많은 CPU 자원을 소모하는 경우가 많습니다 [1]. +- **최적화 전략:** 렌더 상태 변경을 최적화하는 핵심은 변경 횟수 자체를 줄이는 것입니다 [2]. 이를 위한 두 가지 주요 방법은 다음과 같습니다: + 1. **드로우 콜 수 감소:** 전체 드로우 콜 수를 줄이면 드로우 콜 사이에 발생하는 렌더 상태 변경 횟수도 자연스럽게 감소합니다 [3]. + 2. **드로우 콜 구성 최적화:** 그래픽 API가 여러 드로우 콜을 수행할 때 동일한 렌더 상태를 유지할 수 있도록 드로우 콜을 효율적으로 구성하면, 드로우 콜을 그룹화하여 잦은 렌더 상태 변경을 방지할 수 있습니다 [3]. +- **최적화의 이점:** 렌더 상태 변경과 드로우 콜을 최적화하면 일차적으로 프레임 렌더링 시간이 향상됩니다 [4]. 또한, 애플리케이션의 전력 소비를 줄여 배터리 소모와 기기 발열을 감소시킬 수 있으며, 이후 프로젝트에 더 많은 오브젝트(GameObject)를 추가하더라도 큰 성능 저하를 방지하여 장기적인 유지보수성을 높여줍니다 [4]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Draw Call]], [[CPU]], [[GPU]] +- **Projects/Contexts:** [[Unity]], [[Real-time Rendering]] +- **Contradictions/Notes:** 소스 내에서 렌더 상태에 관한 정보나 최적화 방향성에 대해 상충되는 주장은 존재하지 않습니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Render State.md]] +--- diff --git a/Programming & Language/Result Type.md b/Programming & Language/Result Type.md new file mode 100644 index 00000000..2a57e10f --- /dev/null +++ b/Programming & Language/Result Type.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-ED64AE +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Result Type" +--- + +# [[Result Type]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Result Type(결과 타입)은 함수나 메서드의 반환 값으로 성공 데이터 또는 예상되는 실패(에러)를 명시적으로 함께 표현하는 타입 구조입니다 [1-3]. 예외(Exception)를 무분별하게 던지는 대신 결괏값을 직접 반환하여 프로그램의 실행 흐름이 임의로 끊기는 것을 방지하고 성능 오버헤드를 줄입니다 [4-6]. 개발자가 함수 시그니처만으로 발생 가능한 에러를 명확히 알 수 있게 하며, 컴파일 단계에서 모든 경우의 수에 대한 에러 처리를 강제하여 런타임 안정성을 높이는 데 활용됩니다 [7-9]. + +## 📖 구조화된 지식 (Synthesized Content) +- **예외 처리(Exception)의 안전한 대안:** Result Type은 예상 가능한 에러(예: 데이터베이스 조회 실패, 입력값 유효성 검사 실패 등)를 처리하는 데 효과적입니다 [10-12]. 전통적인 예외 처리는 호출 스택(Call stack)을 거슬러 올라가야 하므로 비용이 크고 디버깅 추적이 어렵지만, Result Type은 단순한 객체 반환이므로 더 빠르고 효율적입니다 [5, 6, 13]. 따라서 예기치 못한 치명적 결함(Defect)에만 예외를 던지고, 예상 가능한 비즈니스 로직상의 에러에는 Result Type을 반환하는 방식이 권장됩니다 [14, 15]. +- **타입 안전성(Type Safety)과 예측 가능성 향상:** Result Type은 반환 타입 안에 성공(`Ok`)과 실패(`Err`)의 형태를 모두 담기 때문에, 개발자가 코드를 분석할 때 시그니처만 보더라도 어떤 결과와 에러가 반환될지 예측할 수 있습니다 [1, 7]. 이는 '최소 놀람의 원칙(Principle of least astonishment)'을 충족시키며, 컴파일러가 모든 반환 경우를 확인(Exhaustiveness check)하도록 강제하여 런타임 오류 가능성을 원천적으로 차단합니다 [3, 9]. +- **언어별 구현 및 활용:** 이 패턴은 본래 F#, Elixir, Erlang, Rust와 같은 함수형 프로그래밍 언어에서 기원하였으며, 주로 구별된 유니온(Discriminated Unions)이나 Either 모나드의 형태를 띠고 있습니다 [5, 16, 17]. TypeScript 생태계에서는 `neverthrow`와 같은 외부 라이브러리를 활용하여 명시적인 `Err` 및 `Ok` 객체로 에러 제어 흐름을 구현할 수 있습니다 [1, 18]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Discriminated Unions]], [[Exception Handling]] +- **Projects/Contexts:** [[neverthrow]], [[OneOf]], [[Railway Oriented Programming]] +- **Contradictions/Notes:** C# 생태계에서는 Result Type 도입을 둘러싼 논쟁이 존재합니다. 도입을 지지하는 쪽은 타입 안전성과 명확한 에러 파악을 장점으로 꼽지만, 반대하는 개발자들은 C#이 기본적으로 예외(Exception) 기반의 언어이므로 두 가지 에러 처리 방식이 섞이면 혼란을 야기할 수 있으며, 결괏값을 포장(Wrapping)하고 푸는 과정에서 보일러플레이트 코드가 증가해 오히려 가독성을 해칠 수 있다고 지적합니다 [2, 6, 19, 20]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Result Type.md]] +--- diff --git a/Programming & Language/Reward Shaping (보상 설계).md b/Programming & Language/Reward Shaping (보상 설계).md new file mode 100644 index 00000000..4f47c588 --- /dev/null +++ b/Programming & Language/Reward Shaping (보상 설계).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-1B82EC +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Reward Shaping (보상 설계)" +--- + +# [[Reward Shaping (보상 설계)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Reward Shaping (보상 설계).md]] +--- diff --git a/Programming & Language/Robotic-Manipulator-Dynamics.md b/Programming & Language/Robotic-Manipulator-Dynamics.md new file mode 100644 index 00000000..cbd22aec --- /dev/null +++ b/Programming & Language/Robotic-Manipulator-Dynamics.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-CA896D +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Robotic-Manipulator-Dynamics" +--- + +# [[Robotic-Manipulator-Dynamics]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Robotic-Manipulator-Dynamics.md]] +--- diff --git a/Programming & Language/Robust-GitHub-Sync-Pipeline.md b/Programming & Language/Robust-GitHub-Sync-Pipeline.md new file mode 100644 index 00000000..f32a3e5f --- /dev/null +++ b/Programming & Language/Robust-GitHub-Sync-Pipeline.md @@ -0,0 +1,36 @@ +--- +id: P-REINFORCE-AUTO-CCD7BE +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Robust-GitHub-Sync-Pipeline" +--- + +# [[Robust-GitHub-Sync-Pipeline]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 에이전트가 수집한 지식을 원격 위키 저장소에 안전하게 기록하는 최종 단계의 동기화 엔진입니다. 복잡한 저장소 URL 형식을 자동으로 파싱하고, 파일 부재(404)를 오류가 아닌 '신규 생성 기회'로 판단하는 지능형 예외 처리를 포함합니다. + +## 📖 구조화된 지식 (Synthesized Content) +GitHub API를 이용한 자동 커밋은 파일 존재 여부에 따라 SHA 값을 다르게 처리해야 하는 까다로운 프로세스를 가집니다. 이번 개선을 통해 파이프라인의 완성도를 높였습니다. + +1. **Flexible URL Parser**: + - `owner/repo` 형태뿐만 아니라 `https://github.com/...`의 풀 경로, 심지어 `.git`이 붙은 경로까지 정규표현식으로 정제하여 정확한 엔드포인트를 도출합니다. +2. **404 Handling vs Repository Verification**: + - **Expected 404**: 파일 존재 확인 시 발생하는 404는 '신규 파일 생성'의 신호로 간주하여 로직을 분기합니다. + - **Fatal 404**: 저장소 정보 자체를 불러오지 못할 경우에만 사용자에게 경고를 보내 설정 오류를 인지시킵니다. +3. **Atomic Commit Workflow**: 연구 데이터 합성 완료 -> 로컬 상태 업데이트 -> GitHub 커밋 시도의 단계를 원자적으로 관리하여 데이터 유실을 방지합니다. + +이 동기화 엔진은 에이전트가 로컬 환경을 넘어, 전 세계에서 접근 가능한 '지식 저장소'를 실전적으로 구축할 수 있게 만드는 핵심 도구입니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Ontology-Driven-Relevancy-Filtering]], [[Zustand-Based-Mission-Persistence]] +- **Projects/Contexts:** [[Knowledge-Base-Automation]] +- **Contradictions/Notes:** GitHub API의 Rate Limit(시간당 요청 제한)을 고려해야 하며, 대량의 커밋 성공 시 배치(Batch) 처리 방식을 검토할 수 있습니다. +- Raw Source: [[00_Raw/2026-04-20/Robust-GitHub-Sync-Pipeline.md]] +--- diff --git a/Programming & Language/Runtime-Type-Validation.md b/Programming & Language/Runtime-Type-Validation.md new file mode 100644 index 00000000..956dbfea --- /dev/null +++ b/Programming & Language/Runtime-Type-Validation.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-BFB695 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Runtime-Type-Validation" +--- + +# [[Runtime-Type-Validation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Runtime-Type-Validation.md]] +--- diff --git a/Programming & Language/SCA (소프트웨어 구성 분석).md b/Programming & Language/SCA (소프트웨어 구성 분석).md new file mode 100644 index 00000000..ef07c068 --- /dev/null +++ b/Programming & Language/SCA (소프트웨어 구성 분석).md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-A04F7E +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - SCA (소프트웨어 구성 분석)" +--- + +# [[SCA (소프트웨어 구성 분석)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> SCA(Software Composition Analysis)는 애플리케이션에 포함된 제3자(Third-party) 코드 및 오픈소스 라이브러리의 의존성(Dependencies)을 분석하는 보안 테스팅 기법입니다 [1, 2]. 주로 외부 컴포넌트에 이미 보고된 보안 취약점(CVE 등)과 라이선스 컴플라이언스 관련 리스크를 식별하는 데 사용됩니다 [1]. 오늘날 소프트웨어 개발에서 오픈소스 라이브러리 사용 비중이 매우 높기 때문에 소프트웨어 공급망 보안을 관리하는 데 있어 그 중요성이 커지고 있으며 [1, 2], 자체 코드를 검사하는 SAST와 함께 상호 보완적으로 활용됩니다 [3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **분석 대상 및 주요 목적**: SCA는 개발자가 직접 작성한 커스텀 코드의 논리적 결함을 찾는 SAST와 달리, 애플리케이션에 포함된 오픈소스 및 제3자 의존성 컴포넌트 분석에 특화되어 있습니다 [1, 2]. 구성 요소의 라이선스 세부 정보, 버전 이력, 기존 취약점 데이터베이스(CVE 등)에 등록된 취약점을 파악하여 라이선스 규정 준수 및 리스크 관리를 지원합니다 [1, 2]. +- **의존성(Dependency) 가시성 확보**: 애플리케이션 코드에 직접 선언된 의존성뿐만 아니라 그 이면에 연결된 전이적 의존성(transitive dependencies)까지 추적합니다 [1]. 많은 오픈소스 라이브러리에 의존하여 개발이 이루어지는 현대적 환경에서, 이러한 공급망(Supply-chain) 위험 관리의 핵심 도구로 작동합니다 [1, 2]. +- **도달 가능성(Reachability) 분석의 진화**: 최신 SCA 도구들(예: Endor Labs)은 단순히 취약한 오픈소스 패키지가 포함되어 있는지를 확인하는 것을 넘어, 해당 서드파티 코드 내의 취약한 함수가 실제 퍼스트파티(First-party) 코드의 실행 경로를 통해 호출되는지 분석하는 '도달 가능성 기반 SCA(Reachability-based SCA)'로 진화하고 있습니다 [4, 5]. 이는 맥락을 고려한 필터링을 통해 알림 피로도를 줄이고, 자체 코드와 의존성 리스크의 우선순위를 효과적으로 지정할 수 있게 돕습니다 [4, 6]. +- **보안 도구 간의 결합 (SAST + SCA)**: SAST는 라이브러리 코드가 분석 범위에 포함되지 않으면 해당 라이브러리의 취약점을 놓칠 수 있습니다 [1]. 따라서 커스텀 코드를 보호하는 SAST와 서드파티 컴포넌트 취약점을 보호하는 SCA를 동시에 사용하여 전체 애플리케이션 보안 범위를 포괄적으로 방어하는 것이 권장됩니다 [1-3]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[SAST (정적 애플리케이션 보안 테스팅)]], [[서플라이 체인 보안 (Supply Chain Security)]], [[오픈소스 컴포넌트 (Open Source Components)]], [[도달 가능성 분석 (Reachability Analysis)]] +- **Projects/Contexts:** [[데브섹옵스 (DevSecOps) 환경에서의 지속적인 보안 검사]], [[Snyk, Checkmarx, Endor Labs 등 종합 애플리케이션 보안 플랫폼]] +- **Contradictions/Notes:** 여러 소스에서 SCA와 SAST는 서로 대체하거나 경쟁하는 관계가 아니라는 점을 분명히 합니다. SAST는 자체 작성 코드의 논리 결함을, SCA는 서드파티 코드의 버전 이력 및 라이선스 문제를 잡아내기 때문에 각 도구의 약점을 보완하려면 이 둘을 결합하여 사용하는 것이 모범 사례로 강조됩니다 [1, 2]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/SCA (소프트웨어 구성 분석).md]] +--- diff --git a/Programming & Language/SOLID 원칙 (SOLID Principles).md b/Programming & Language/SOLID 원칙 (SOLID Principles).md new file mode 100644 index 00000000..5f4a70ee --- /dev/null +++ b/Programming & Language/SOLID 원칙 (SOLID Principles).md @@ -0,0 +1,46 @@ +--- +id: P-REINFORCE-AUTO-D3B79D +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - SOLID 원칙 (SOLID Principles)" +--- + +# [[SOLID 원칙 (SOLID Principles)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +**SOLID의 5가지 핵심 원칙** +소스 데이터에 따르면 SOLID는 다음 다섯 가지 원칙의 약자입니다 [1]. +* **단일 책임 원칙 (Single Responsibility Principle, SRP):** 클래스는 단 하나의 변경 이유만 가져야 하며, 오직 하나의 작업(책임)만 수행해야 합니다 [4]. 예를 들어, 사용자 데이터를 저장하고 조회하는 클래스가 사용자 입력 검증 기능까지 담당해서는 안 됩니다 [4]. 이는 관심사의 분리(SoC) 원칙을 극단적으로 적용한 형태로 볼 수 있습니다 [5]. +* **개방/폐쇄 원칙 (Open/Closed Principle, OCP):** 소프트웨어 엔티티는 확장을 위해서는 열려 있어야 하지만, 수정을 위해서는 닫혀 있어야 합니다 [4, 6]. 인터페이스나 추상 클래스를 사용하여, 기존 코드를 변경하지 않고도 새로운 하위 클래스를 통해 기능을 추가할 수 있게 함으로써 달성할 수 있습니다 [4]. +* **리스코프 치환 원칙 (Liskov Substitution Principle, LSP):** 하위 타입(Subtype)은 프로그램의 정확성을 훼손하지 않으면서도 기본 타입(Base type)으로 완벽하게 대체될 수 있어야 합니다 [4]. +* **인터페이스 분리 원칙 (Interface Segregation Principle, ISP):** 클라이언트가 자신이 사용하지 않는 인터페이스에 의존하도록 강요받아서는 안 됩니다 [4]. 하나의 크고 범용적인 인터페이스를 만들기보다는, 더 작고 구체적인 여러 개의 인터페이스를 생성해야 합니다 [4]. +* **의존성 역전 원칙 (Dependency Inversion Principle, DIP):** 고수준 모듈은 저수준 모듈에 의존해서는 안 되며, 두 모듈 모두 추상화(예: 인터페이스)에 의존해야 합니다 [4, 7]. 이는 주로 의존성 주입(Dependency Injection)을 사용하여 구현됩니다 [4]. + +**구현을 위한 실용적인 조언** +* **SRP부터 적용하기:** 단일 책임 원칙은 적용하기 가장 쉬우며 즉각적인 이점을 제공합니다. 클래스를 작성하기 전에 "이 클래스의 단일 책임은 무엇인가?"라고 스스로 질문해야 합니다 [3, 8]. +* **구현 전 인터페이스 설계:** 컴포넌트가 '어떻게' 동작할지를 구현하기 전에, '무엇을' 해야 하는지(인터페이스)를 먼저 정의해야 합니다 [8]. 이 방식은 자연스럽게 OCP와 DIP 원칙을 지원합니다 [8]. +* **의존성 주입(DI) 프레임워크 활용:** Spring(Java)이나 ASP.NET Core와 같이 내장된 DI 컨테이너를 제공하는 프레임워크를 사용하면 컴포넌트 간의 결합을 분리하고 DIP를 훨씬 쉽게 구현할 수 있습니다 [8]. +* **점진적 도입:** 기존의 레거시 애플리케이션을 한 번에 모두 리팩토링할 필요는 없습니다. 새로운 기능을 추가하거나 기존 코드를 수정할 때 SOLID 원칙을 점진적으로 적용하여 코드베이스의 상태를 개선해 나가는 것이 좋습니다 [8]. + +**적용 시의 복잡도 및 요구사항** +* SOLID 원칙을 구현하는 것은 설계 규율과 패턴을 요구하므로 중간에서 높음(Medium–High) 수준의 복잡도를 가집니다 [3]. +* 이를 원활하게 적용하기 위해서는 숙련된 개발자와 의존성 주입(DI) 프레임워크 등의 리소스가 뒷받침되어야 합니다 [3]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[객체 지향 프로그래밍 (OOP)]], [[관심사의 분리 (Separation of Concerns)]], [[의존성 주입 (Dependency Injection)]] +- **Projects/Contexts:** [[엔터프라이즈 애플리케이션 및 점진적 리팩토링]], [[라이브러리 및 확장 가능한 코드베이스]] +- **Contradictions/Notes:** 소스 내에서 상충하는 주장은 발견되지 않았습니다. 다만, 단일 책임 원칙(SRP)은 시스템을 고차원적인 수준에서 분리하는 '관심사의 분리(SoC)' 원칙과 종종 비교되며, SRP는 클래스나 모듈의 '책임'이라는 더 미시적인 수준을 다루는 것으로 설명됩니다 [9]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/SOLID 원칙 (SOLID Principles).md]] +--- diff --git a/Programming & Language/SOLID 원칙.md b/Programming & Language/SOLID 원칙.md new file mode 100644 index 00000000..42aef66e --- /dev/null +++ b/Programming & Language/SOLID 원칙.md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-FAB206 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - SOLID 원칙" +--- + +# [[SOLID 원칙]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> SOLID 원칙은 객체 지향 프로그래밍에서 소프트웨어 설계를 더 이해하기 쉽고, 유연하며, 유지보수하기 좋게 만들기 위해 고안된 5가지 핵심 설계 원칙의 집합이다 [1]. 로버트 C. 마틴(Robert C. Martin)에 의해 대중화된 이 원칙들은 코드의 부패를 방지하고 견고한 기반을 구축하는 데 필수적인 지침으로 작용한다 [1]. 이 원칙들을 올바르게 적용하면 시스템 내 컴포넌트 간의 의존성이 줄어들어 한 부분의 변경이 다른 부분에 미치는 영향을 최소화할 수 있다 [1]. + +## 📖 구조화된 지식 (Synthesized Content) +**SOLID의 5가지 핵심 원칙** +* **단일 책임 원칙 (SRP, Single Responsibility Principle):** 클래스는 단 하나의 변경 이유만 가져야 하며, 이는 오직 하나의 역할(책임)만을 수행해야 함을 의미한다 [2, 3]. 이를 통해 클래스를 더 쉽게 이해하고 평가할 수 있으며, 코드의 명확성과 유지보수성이 향상된다 [3]. SRP는 '관심사의 분리(SoC)' 개념에서 직접적으로 파생된 원칙 중 하나이다 [4]. +* **개방-폐쇄 원칙 (OCP, Open/Closed Principle):** 소프트웨어 엔티티는 확장에는 열려 있어야 하지만 수정에는 닫혀 있어야 한다 [2, 3, 5]. 이는 인터페이스나 추상 클래스와 같은 추상화 및 다형성 과정을 사용하여, 기존 코드를 변경하지 않고도 새로운 하위 클래스를 통해 새 기능을 추가할 수 있게 함으로써 달성된다 [2, 3]. +* **리스코프 치환 원칙 (LSP, Liskov Substitution Principle):** 하위 타입(서브클래스)은 프로그램의 정확성을 훼손하지 않으면서 기본 타입(부모 클래스)을 대체할 수 있어야 한다 [2, 3]. 이는 파생 클래스가 기본 클래스의 동작을 임의로 변경하지 않고 매끄럽게 호환되어 시스템의 신뢰성과 견고성을 향상시킬 수 있도록 보장한다 [2, 3]. +* **인터페이스 분리 원칙 (ISP, Interface Segregation Principle):** 클라이언트는 자신이 사용하지 않는 인터페이스에 의존하도록 강요받아서는 안 된다 [2, 3]. 이를 위해 하나의 크고 범용적인 인터페이스보다는 작고 구체적이며 전문화된 인터페이스를 여러 개 만드는 것이 권장되며, 이 역시 '관심사의 분리(SoC)' 원칙에서 파생되었다 [2-4]. +* **의존성 역전 원칙 (DIP, Dependency Inversion Principle):** 고수준 모듈은 저수준 모듈에 의존해서는 안 되며, 양쪽 모두 추상화(예: 인터페이스)에 의존해야 한다 [2, 3, 6]. 이러한 접근은 종종 의존성 주입(Dependency Injection, DI) 프레임워크를 통해 구현되며, 모듈성을 높이고 시스템이 변화에 쉽게 적응할 수 있도록 만든다 [2, 3, 7]. + +**구현 팁 및 기대 효과** +* SOLID 원칙을 레거시 애플리케이션 전체에 한 번에 적용하기보다는, 가장 적용하기 쉽고 즉각적인 이점을 제공하는 '단일 책임 원칙(SRP)'부터 시작하여 점진적으로 적용하는 것이 유리하다 [7]. +* 구현 방법(How)보다 컴포넌트가 해야 할 일인 인터페이스(What)를 먼저 설계하는 관행을 들이면 자연스럽게 OCP와 DIP 원칙을 뒷받침할 수 있다 [7]. +* 이 원칙들은 객체 지향 시스템, 라이브러리, 그리고 지속적으로 성장하는 대규모 코드베이스에 이상적으로 적용되며, 결합도가 낮고 테스트 가능성이 높으며 유연한 코드를 산출하는 핵심 기반이 된다 [8]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[객체 지향 프로그래밍(OOP)]], [[관심사의 분리(SoC)]], [[의존성 주입(DI)]] +- **Projects/Contexts:** [[클린 아키텍처(Clean Architecture)]], [[소프트웨어 아키텍처 베스트 프랙티스]] +- **Contradictions/Notes:** 소스 전반에 걸쳐 SOLID 원칙은 코드의 복잡성을 줄이고 유지보수성을 높이는 필수적인 기법으로 일관되게 강조되고 있으며, 서로 대립하거나 모순되는 주장은 존재하지 않습니다 [1, 3, 8]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/SOLID 원칙.md]] +--- diff --git a/Programming & Language/SPA 라우트 전환 성능 최적화.md b/Programming & Language/SPA 라우트 전환 성능 최적화.md new file mode 100644 index 00000000..eab233e1 --- /dev/null +++ b/Programming & Language/SPA 라우트 전환 성능 최적화.md @@ -0,0 +1,36 @@ +--- +id: P-REINFORCE-AUTO-A346D0 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - SPA 라우트 전환 성능 최적화" +--- + +# [[SPA 라우트 전환 성능 최적화]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> SPA(Single Page Application) 라우트 전환은 현대 프론트엔드 애플리케이션에서 메모리 누수가 발생하는 가장 주요한 원인 중 하나입니다 [1]. 이전 라우트의 컴포넌트가 적절히 정리되지 않으면 애플리케이션의 세션 수명 동안 메모리에 지속적으로 누적되어 성능 저하를 유발합니다 [1]. 따라서 성공적인 라우트 전환 성능 최적화를 위해서는 사용되지 않는 리소스와 참조를 철저히 식별하고 해제하는 메모리 관리가 필수적입니다 [1, 2]. + +## 📖 구조화된 지식 (Synthesized Content) +- **라우트 전환과 메모리 누수:** SPA 라우트 전환(SPA route transitions)은 애플리케이션 내 메모리 누수의 1위 출처로 지목됩니다 [1]. 이전 라우트에서 사용되었던 컴포넌트들이 이벤트 리스너(listeners), 타이머(timers), 혹은 전역 상태 참조(global state references) 등을 제대로 정리(clean up)하지 못할 경우, 이 컴포넌트들은 가비지 컬렉터에 의해 회수되지 못하고 세션 수명 내내 메모리에 축적됩니다 [1]. +- **누수 탐지를 위한 3-스냅샷 기법(Three-snapshot technique):** 라우트 전환 시 발생하는 메모리 누수를 감지하고 최적화하기 위해 가장 신뢰할 수 있는 방법은 3-스냅샷 기법입니다 [2]. + 1. 기준이 되는 첫 번째 힙 스냅샷(Heap snapshot 1)을 캡처합니다 [2]. + 2. 라우트 간 이동(navigate between routes)과 같이 누수가 의심되는 작업을 수행한 후 두 번째 스냅샷을 찍습니다 [2]. + 3. 동일한 라우트 전환 작업을 다시 반복하고 세 번째 스냅샷을 캡처합니다 [2]. + 4. 두 번째와 세 번째 스냅샷을 비교하여, 첫 번째와 두 번째 사이에 할당되었으나 세 번째 스냅샷까지 여전히 메모리에 살아있는 객체들을 찾아냅니다 [2]. 이 접근법은 단순 1회성 할당으로 인한 오탐(false positives)을 걸러내고 실제 누수 후보를 식별하는 데 효과적입니다 [2]. +- **정보 한계:** 제공된 소스에서는 SPA 라우트 전환 시의 성능 최적화를 메모리 누수 발생 원인과 그 탐지(DevTools 활용 등) 관점에서만 다루고 있습니다 [1, 2]. 라우팅 시의 렌더링 최적화, 코드 스플리팅, 네트워크 지연 단축 등 다른 측면의 최적화에 대해서는 소스에 관련 정보가 부족합니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[메모리 누수(Memory Leak)]], [[3-스냅샷 기법(Three-snapshot technique)]], [[가비지 컬렉션(Garbage Collection)]] +- **Projects/Contexts:** [[Browser Memory Leak Detection]] +- **Contradictions/Notes:** 소스에서는 SPA 라우트 전환 성능 최적화에 대한 전반적인 프론트엔드 렌더링 최적화 기술은 언급하지 않으며, 오직 컴포넌트 언마운트 시의 정리 실패로 인한 메모리 누수 문제와 그 진단법에만 집중하고 있습니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/SPA 라우트 전환 성능 최적화.md]] +--- diff --git a/Programming & Language/SPARQL (RDF 그래프 질의 언어).md b/Programming & Language/SPARQL (RDF 그래프 질의 언어).md new file mode 100644 index 00000000..fd1af564 --- /dev/null +++ b/Programming & Language/SPARQL (RDF 그래프 질의 언어).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6D75A5 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - SPARQL (RDF 그래프 질의 언어)" +--- + +# [[SPARQL (RDF 그래프 질의 언어)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/SPARQL (RDF 그래프 질의 언어).md]] +--- diff --git a/Programming & Language/SaaS-Product-Management.md b/Programming & Language/SaaS-Product-Management.md new file mode 100644 index 00000000..e2a29f00 --- /dev/null +++ b/Programming & Language/SaaS-Product-Management.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-B72D67 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - SaaS-Product-Management" +--- + +# [[SaaS-Product-Management]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/SaaS-Product-Management.md]] +--- diff --git a/Programming & Language/Sandbox Simulations (eg Minecraft Dwarf Fortress).md b/Programming & Language/Sandbox Simulations (eg Minecraft Dwarf Fortress).md new file mode 100644 index 00000000..74a6b1eb --- /dev/null +++ b/Programming & Language/Sandbox Simulations (eg Minecraft Dwarf Fortress).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-0DFB46 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Sandbox Simulations (eg Minecraft Dwarf Fortress)" +--- + +# [[Sandbox Simulations (eg Minecraft Dwarf Fortress)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Sandbox Simulations (e.g., Minecraft, Dwarf Fortress).md]] +--- diff --git a/Programming & Language/Santa Fe Institute.md b/Programming & Language/Santa Fe Institute.md new file mode 100644 index 00000000..2ee81df9 --- /dev/null +++ b/Programming & Language/Santa Fe Institute.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-6E6047 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Santa Fe Institute" +--- + +# [[Santa Fe Institute]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Santa Fe Institute.md]] +--- diff --git a/Programming & Language/Satisfiability-Problem-(SAT).md b/Programming & Language/Satisfiability-Problem-(SAT).md new file mode 100644 index 00000000..30bfaff1 --- /dev/null +++ b/Programming & Language/Satisfiability-Problem-(SAT).md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-55CA55 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Satisfiability-Problem-(SAT)" +--- + +# [[Satisfiability-Problem-(SAT)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Satisfiability-Problem-(SAT).md]] +--- diff --git a/Programming & Language/Satisfies Operator.md b/Programming & Language/Satisfies Operator.md new file mode 100644 index 00000000..dbde3131 --- /dev/null +++ b/Programming & Language/Satisfies Operator.md @@ -0,0 +1,38 @@ +--- +id: P-REINFORCE-AUTO-B08904 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Satisfies Operator" +--- + +# [[Satisfies Operator]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> `satisfies` 연산자는 TypeScript 4.9에 도입된 기능으로, 객체가 특정 타입의 형태를 준수하는지 검증하면서도 해당 객체의 구체적인 타입(리터럴 타입 등)을 넓히지(widening) 않고 그대로 유지하는 역할을 합니다 [1-3]. 기존의 타입 어노테이션(`:`)이 가진 타입 확장 문제와 타입 단언(`as`)이 가진 검증 누락 문제를 동시에 해결하여 엄격한 타입 검사와 정밀한 타입 추론을 모두 제공합니다 [1, 3, 4]. 이를 통해 컴파일 타임에 잉여 속성이나 오타를 잡아내어 코드의 안정성과 예측 가능성을 크게 높여줍니다 [3, 5]. + +## 📖 구조화된 지식 (Synthesized Content) +- **리터럴 타입 보존 및 구체성 유지 (Literal Type Preservation):** 기존의 타입 어노테이션(`:`)을 사용하면 구체적인 리터럴 값이 일반적인 타입(예: `"/about"`이 범용적인 `string`으로)으로 확장(widening)됩니다 [2, 6]. 반면 `satisfies` 연산자는 객체가 인터페이스를 충족하는지 확인하면서도 원래의 리터럴 타입을 잃지 않고 그대로 보존하여, 이후 코드에서 더 정확한 자동 완성과 정밀한 타입 추론을 가능하게 합니다 [2, 3, 6]. +- **엄격한 타입 검증과 과잉 속성 체크 (Excess Property Checking):** 변수를 간접적으로 할당할 때 발생할 수 있는 과잉 속성 체크(EPC)의 우회 문제를 해결합니다 [3, 7]. `satisfies`는 대상 타입에 정의된 요구사항을 객체가 충족하는지 즉시 검사하여 오타를 잡아내며, 원치 않는 잉여 속성(Excess Properties)이 할당되는 것을 컴파일 시점에 철저히 차단합니다 [3, 5, 8]. +- **타입 단언(`as`) 및 어노테이션(`:`)과의 비교:** + - **타입 어노테이션(`:`):** 변수의 수명 주기에 대한 제약을 정의하지만, 할당된 값의 타입을 명시된 타입으로 강제 확장시킵니다 [6, 9]. + - **타입 단언(`as`):** 컴파일러의 타입 검증을 강제로 우회하여 런타임 에러를 유발할 수 있으며, 잉여 속성에 대한 검사를 수행하지 못합니다 [9, 10]. + - **`satisfies`:** 타입을 확장하지 않으면서도 정확한 형태를 검증하므로, 객체 리터럴의 유효성 검사 및 정밀한 타입 유지가 필요할 때 가장 안전한 대안이 됩니다 [4, 11]. +- **고급 활용 패턴:** + - **불변성 확보:** `as const satisfies` 형태로 결합하면, 객체의 불변성을 보장하면서(런타임 불변성 및 컴파일 타임 보호) 타입 구조까지 엄격하게 강제할 수 있어 설정(Configuration) 객체나 상수 룩업 테이블 작성에 매우 유용합니다 [12]. + - **식별 가능한 유니온(Discriminated Unions) 보존:** 유니온 타입에서 판별자(Discriminator) 속성의 리터럴 타입을 그대로 보존하여, 이후 올바른 타입 좁히기(Type Narrowing)가 정상적으로 동작하도록 지원합니다 [13]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Excess Property Checking]], [[Structural Typing]], [[Discriminated Unions]], [[Type Narrowing]] +- **Projects/Contexts:** [[설정 객체(Configuration Objects) 검증]], [[데이터 매핑 및 변환(Data Mapping & Transformation)]] +- **Contradictions/Notes:** 타입 단언(`as`)은 대상 타입과 근본적으로 호환되지 않는 경우가 아니면 잉여 속성이 포함되어 있어도 타입 검사를 강제하지 않고 통과시켜 조용한 에러(silent errors)를 낳을 수 있지만, `satisfies`는 이를 허용하지 않고 컴파일 타임에 엄격히 잡아냅니다 [10]. 또한, `satisfies`는 본래 추가적인 잉여 속성을 허용하는 특성이 있으나, 만약 추가된 속성의 이름이 대상 타입의 속성 철자와 비슷하여 오타로 의심될 경우에는 잠재적 오류로 간주하고 경고를 발생시킵니다 [2, 14, 15]. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Satisfies Operator.md]] +--- diff --git a/Programming & Language/Scavenge.md b/Programming & Language/Scavenge.md new file mode 100644 index 00000000..2f636397 --- /dev/null +++ b/Programming & Language/Scavenge.md @@ -0,0 +1,33 @@ +--- +id: P-REINFORCE-AUTO-E7007A +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Scavenge" +--- + +# [[Scavenge]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Scavenge(스캐빈지)는 V8 엔진을 비롯한 가비지 컬렉션(GC) 시스템에서 젊은 세대(Young Generation) 메모리를 정리하기 위해 수행되는 마이너 가비지 컬렉션(Minor GC) 주기입니다 [1, 2]. 주로 새로운 객체가 할당되는 '새로운 공간(New-space)'이 가득 차서 할당에 실패했을 때 트리거되며, 죽은 객체를 빠르게 제거하고 살아있는 객체를 보존합니다 [1, 2]. 애플리케이션 실행 중 매우 빈번하게 발생하기 때문에 성능에 미치는 영향을 최소화하도록 극히 빠른 속도로 동작하게 설계되었습니다 [3]. + +## 📖 구조화된 지식 (Synthesized Content) +- **동작 원리 (V8 엔진 및 Cheney의 알고리즘):** V8의 새 공간(New-space)은 크기가 같은 두 개의 반공간(Semi-space)인 To-space와 From-space로 나뉩니다 [3]. 객체 할당 포인터가 새 공간의 끝에 도달하여 메모리가 고갈되면 스캐빈지가 트리거됩니다 [1, 2]. 이때 To-space와 From-space의 역할을 맞바꾼 뒤, From-space를 스캔하여 살아있는 객체들을 찾아 To-space의 한쪽 끝으로 복사(대피)하며, 이 과정을 통해 메모리 파편화(Fragmentation)가 완전히 제거됩니다 [3, 4]. +- **객체의 승격 (Promotion):** 두 번의 스캐빈지(마이너 GC) 주기 동안 살아남은 객체는 수명이 긴 객체로 간주되어 새 공간에서 '오래된 공간(Old-space)'으로 승격(Promoted)됩니다 [1, 4]. +- **병렬 및 스레드 처리 (Orinoco 가비지 컬렉터):** 전통적으로 스캐빈지는 애플리케이션 실행을 멈추는 'Stop-the-world' 방식이었지만, V8의 Orinoco 프로젝트에서는 병렬 스캐빈저(Parallel Scavenger)를 도입했습니다 [5-7]. 메인 스레드와 여러 헬퍼 스레드에 작업을 분산하여 루트 스캔, 객체 복사, 오래된 공간으로의 승격, 포인터 업데이트를 병렬적으로 끼워 넣어(Interleaved) 실행합니다 [6, 8, 9]. 이를 통해 메인 스레드의 대기 시간(Pause time)을 약 20%~50%까지 대폭 단축했습니다 [10, 11]. +- **IBM J9 / Eclipse OpenJ9 환경의 스캐빈지:** IBM GC 정책(주로 gencon 정책)에서도 널서리(Nursery) 영역에서의 할당 실패 시 스캐빈지 작업이 실행됩니다 [12]. 이 작업은 루트 객체를 식별하는 루트 스캔(Initial), 도달 가능한 객체를 널서리의 생존자(Survivor) 공간이나 텐뉴어(Tenure) 공간으로 이동시키는 계층적 스캔(Main), 그리고 약한 참조 등을 처리하는 단계(Final)로 구성됩니다 [12]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Garbage Collection]], [[New-space (Young Generation)]], [[Old-space (Old Generation)]], [[Cheney's Algorithm]], [[Mark-Sweep-Compact]] +- **Projects/Contexts:** [[V8 JavaScript Engine]], [[Orinoco GC]], [[Eclipse OpenJ9]] +- **Contradictions/Notes:** 소스 간의 뚜렷한 모순은 없으나, 스캐빈지가 발생하면 본래 메인 스레드가 정지하는 'Stop-the-world' 현상이 발생하지만 최신 V8 엔진(Orinoco)에서는 다수의 스레드를 동원한 병렬 처리(Parallel)를 적용하여 사용자가 느끼는 지연(Jank)을 획기적으로 줄였다고 명시하고 있습니다 [6, 10, 13]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Scavenge.md]] +--- diff --git a/Programming & Language/Scavenger 알고리즘.md b/Programming & Language/Scavenger 알고리즘.md new file mode 100644 index 00000000..553b8d95 --- /dev/null +++ b/Programming & Language/Scavenger 알고리즘.md @@ -0,0 +1,34 @@ +--- +id: P-REINFORCE-AUTO-04124F +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Scavenger 알고리즘" +--- + +# [[Scavenger 알고리즘]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Scavenger 알고리즘은 V8 JavaScript 엔진에서 새로운 객체가 주로 할당되는 '새로운 공간(New-space)'의 가비지를 수집하는 마이너 가비지 컬렉션(Minor GC) 알고리즘입니다 [1-3]. 이 알고리즘은 공간을 두 개의 동일한 크기(to-space와 from-space)로 나누고 살아남은 활성 객체만 새로운 공간으로 복사하여 압축하는 세미스페이스(semi-space) 방식을 통해 메모리 단편화를 방지하고 매우 빠르게 메모리를 회수합니다 [3-5]. 최근의 V8 엔진에서는 Orinoco 프로젝트를 통해 메인 스레드와 헬퍼 스레드에 작업을 분산시키는 병렬(Parallel) 방식으로 진화하여 메인 스레드의 일시 정지 시간을 획기적으로 단축시켰습니다 [6-8]. + +## 📖 구조화된 지식 (Synthesized Content) +* **세미스페이스(Semi-space) 설계 및 작동 원리:** V8의 새로운 공간(New-space 혹은 Young generation)은 Cheney의 알고리즘에 기반하여 'to-space'와 'from-space'라는 두 개의 동일한 크기의 세미스페이스로 나뉩니다 [3-5, 9]. 메모리 할당은 할당 포인터를 증가시키는 방식으로 빠르게 이루어지며, 할당 포인터가 공간의 끝에 도달하여 메모리가 부족해지면 Scavenge 주기가 트리거됩니다 [1, 5, 10]. +* **활성 객체 대피(Evacuation) 및 압축(Compaction):** 가비지 컬렉션이 시작되면 루트 객체로부터 도달 가능한 활성 객체를 식별한 뒤, 이들을 from-space에서 to-space로 복사(대피)합니다 [3-5, 11]. 이 과정에서 객체들이 연속된 메모리 블록으로 압축되므로 캐시 지역성이 향상되고 메모리 단편화(Fragmentation)가 완전히 제거됩니다 [4, 11, 12]. 복사가 완료되면 남은 from-space의 데이터는 모두 가비지로 간주되어 버려지며, 두 공간의 역할이 교체됩니다 [11-15]. +* **세대 가설에 따른 객체 승격 (Promotion):** Scavenger 알고리즘은 대부분의 객체가 일찍 소멸한다는 '세대 가설(Generational Hypothesis)'을 바탕으로 설계되었습니다 [1, 16]. 따라서 Scavenge 주기를 두 번 생존한 객체는 더 이상 새로운 공간에 머물지 않고 장기 보관을 위해 '오래된 공간(Old-space)'으로 승격(Promoted)됩니다 [1, 11, 17, 18]. +* **쓰기 장벽 (Write Barriers)의 활용:** 오래된 공간(Old-space)의 객체가 새로운 공간(New-space)의 객체를 참조하는 경우를 식별하기 위해, V8은 전체 오래된 공간을 스캔하는 대신 '쓰기 장벽(Write Barriers)'을 활용하여 참조 포인터의 위치를 기억 집합(Store buffer 또는 Remembered set)에 기록합니다 [12, 14, 15, 19]. 이를 통해 Scavenge 수행 시 스캔 비용을 획기적으로 낮춥니다 [12, 14]. +* **병렬 처리 (Parallel Scavenger):** 과거에는 Cheney 알고리즘을 사용한 단일 스레드 방식으로 동작했으나, 멀티코어 환경에 맞춰 V8(Orinoco 가비지 콜렉터)은 '병렬 Scavenger(Parallel Scavenger)'를 도입했습니다 [7, 20]. 메인 스레드와 여러 헬퍼 스레드가 포인터를 나누어 추적하고 동적으로 작업 훔치기(work stealing)를 수행하여, 결과적으로 메인 스레드에서 Scavenger가 소모하는 시간을 20%~50% 감소시켰습니다 [7, 8, 20, 21]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Minor GC]], [[Young Generation]], [[Cheney's Algorithm]], [[Write Barriers]], [[Orinoco]] +- **Projects/Contexts:** [[V8 엔진 메모리 관리 (V8 Memory Management)]], [[가비지 컬렉션 최적화]] +- **Contradictions/Notes:** 과거 버전의 V8에서는 Scavenger가 단일 코어 환경에 적합한 완전한 동기식 Cheney 알고리즘을 구현했으나, 현재 크롬 및 Node.js의 멀티코어 환경 요구에 맞추어 메인 스레드와 워커 스레드가 동적으로 작업을 분배하는 병렬(Parallel) 복사 가비지 컬렉터로 진화했음이 기록되어 있습니다 [10, 20]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Scavenger 알고리즘.md]] +--- diff --git a/Programming & Language/Scavenger(Minor GC).md b/Programming & Language/Scavenger(Minor GC).md new file mode 100644 index 00000000..0381b89c --- /dev/null +++ b/Programming & Language/Scavenger(Minor GC).md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-7DB27B +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Scavenger(Minor GC)" +--- + +# [[Scavenger(Minor GC)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Scavenger(Minor GC)는 V8 엔진에서 새로운 객체가 할당되는 '새로운 공간(New-space)' 또는 '젊은 세대(Young Generation)'의 메모리를 빠르고 효율적으로 정리하기 위해 사용되는 가비지 컬렉션 메커니즘입니다 [1-3]. 이 알고리즘은 **"대부분의 객체는 생성된 직후 죽는다"는 세대적 가설(Generational hypothesis)**을 바탕으로 짧은 수명의 객체들을 신속하게 제거합니다 [2, 4, 5]. 빈번하게 발생하는 만큼 실행 속도가 매우 빠르며, 객체를 복사하고 이동하는 과정을 통해 메모리 단편화를 방지하는 핵심적인 역할을 합니다 [6-8]. + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Young Generation]], [[Mark-Sweep/Mark-Compact(Major GC)]], [[Write Barriers]], [[Cheney's Algorithm]], [[Orinoco GC]] +- **Projects/Contexts:** [[V8 JavaScript Engine Memory Management]] +- **Contradictions/Notes:** 과거 버전의 V8에서는 스캐빈저가 동기적인 Cheney's 알고리즘을 사용하였으나, V8 v6.2 이후부터는 다중 코어 환경의 이점을 살리기 위해 Halstead 알고리즘과 유사한 동적 작업 훔치기(work stealing) 기법을 사용하는 병렬 처리 구조로 진화했다는 점이 소스에 기록되어 있습니다 [22, 25]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Scavenger(Minor GC).md]] +--- diff --git a/Programming & Language/Scavenger(마이너 GC).md b/Programming & Language/Scavenger(마이너 GC).md new file mode 100644 index 00000000..61f90af3 --- /dev/null +++ b/Programming & Language/Scavenger(마이너 GC).md @@ -0,0 +1,37 @@ +--- +id: P-REINFORCE-AUTO-735166 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Scavenger(마이너 GC)" +--- + +# [[Scavenger(마이너 GC)]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +* **동작 원리와 체니의 알고리즘 (Cheney's Algorithm)** + 대부분의 Scavenge 구현은 체니의 알고리즘(Cheney's algorithm)을 기반으로 한 반공간(semi-space) 설계를 따릅니다 [2, 4]. 새로운 공간은 크기가 같은 두 개의 공간인 To-Space와 From-Space로 나뉩니다 [4, 6, 7]. 평소에는 객체가 From-Space에 할당되다가 이 공간이 가득 차면, 가비지 컬렉터는 From-Space의 살아있는 객체들을 To-Space의 연속된 메모리 블록으로 대피(evacuate)시킵니다 [4, 5, 7]. 이후 죽은 객체들이 있는 From-Space는 완전히 비워지며 두 공간의 역할이 바뀝니다 [5, 8, 9]. +* **객체 이동, 포인터 업데이트 및 승격 (Promotion)** + 활성 객체가 새 위치로 이동될 때, 원래 위치에는 새로운 주소를 가리키는 포워딩 주소(forwarding address)가 남겨져 이를 참조하던 다른 포인터들이 업데이트될 수 있도록 합니다 [9-11]. 두 번의 마이너 가비지 컬렉션 주기(스캐빈지)를 생존한 객체들은 장기 보관을 위해 '오래된 공간(Old Space 또는 Tenure 영역)'으로 승격(Promoted)됩니다 [1, 3, 5]. 객체들을 To-Space의 한쪽으로 모으면서 단편화가 해결되므로 캐시 지역성이 향상되고 할당 속도가 유지됩니다 [4]. +* **루트 스캔 및 병렬 처리 (Parallel Scavenging)** + 마이너 GC는 매우 짧은 시간 내에 수행되어야 합니다 [4]. 이를 위해 V8 엔진은 다수의 도우미 스레드(helper threads)를 활용한 병렬 스캐빈징(Parallel scavenging) 기법을 사용하여, 루트 스캔, 젊은 세대 내의 객체 복사, 오래된 세대로의 승격, 포인터 업데이트 작업을 병렬적으로 처리합니다 [12-14]. 메인 스레드와 도우미 스레드들은 원자적(atomic)인 읽기/쓰기/비교 교환(compare-and-swap) 연산을 통해 동기화하여 동일한 객체가 중복 이동되는 것을 방지합니다 [12]. +* **IBM SDK 환경에서의 스캐빈지** + IBM의 gencon GC 정책 등에서도 스캐빈지 작업이 존재하며, 이는 Nursery 영역에서 할당 실패가 발생할 때 트리거됩니다 [3]. 루트 스캔을 통해 도달 가능한 객체를 찾고 스택에 담은 뒤 계층적 스캔 순서(hierarchical scan ordering)를 사용해 추적하며, 살아있는 객체를 할당 공간에서 Survivor 공간이나 Tenure 영역으로 복사하는 방식으로 처리됩니다 [3]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[New Space(Young Generation)]], [[Cheney's Algorithm]], [[Promotion(승격)]], [[Major GC(Mark-Sweep/Mark-Compact)]] +- **Projects/Contexts:** [[V8 JavaScript Engine]], [[IBM SDK (gencon GC policy)]] +- **Contradictions/Notes:** 소스 간의 내용 모순은 발견되지 않았습니다. V8 엔진의 마이너 GC 메커니즘과 IBM SDK(gencon 정책)의 스캐빈지 작업은 구현 환경은 다르지만, 모두 '주로 새롭게 할당되는 작은 공간을 대상으로 하여 빠른 주기로 살아있는 객체를 복사 및 승격한다'는 공통된 역할을 성공적으로 수행하고 있습니다. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Scavenger(마이너 GC).md]] +--- diff --git a/Programming & Language/Scheduler API.md b/Programming & Language/Scheduler API.md new file mode 100644 index 00000000..697113a4 --- /dev/null +++ b/Programming & Language/Scheduler API.md @@ -0,0 +1,32 @@ +--- +id: P-REINFORCE-AUTO-6B64AB +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Scheduler API" +--- + +# [[Scheduler API]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> Scheduler API는 개발자가 브라우저 내에서 다양한 처리 작업이 실행되는 시점을 더 쉽게 제어할 수 있도록 도와주는 기능입니다 [1]. 길게 실행되는 작업은 여러 개의 짧은 작업보다 상호작용 지연을 더 많이 유발하기 때문에, 이 API를 통해 작업을 분할하여 사용자 경험을 개선할 수 있습니다 [1]. 특히 작업 중간에 제어권을 브라우저에 양보함으로써 다른 중요한 상호작용이 지연 없이 우선적으로 처리될 수 있게 합니다 [1]. + +## 📖 구조화된 지식 (Synthesized Content) +- **도입 배경:** 브라우저에서의 CPU 처리는 사용자 경험에 큰 영향을 미치며, 중요도가 각기 다른 작업들이 실행될 때 긴 처리 작업은 여러 개의 짧은 작업들보다 사용자 상호작용 지연을 훨씬 더 많이 발생시킵니다 [1]. Scheduler API는 개발자가 이러한 다양한 작업이 실행되는 시기를 원활하게 제어할 수 있도록 돕습니다 [1]. +- **핵심 기능 (`scheduler.yield()`):** 개발자는 `scheduler.yield()` 메서드를 사용하여 작업(job) 중간에 브라우저의 스케줄러로 제어권을 쉽게 양보(yield)할 수 있습니다 [1]. 이를 통해 브라우저는 기존에 진행 중이던 작업을 마저 처리하기 전에, 사용자 상호작용 처리와 같은 다른 긴급한 작업을 먼저 다룰 수 있게 됩니다 [1]. +- **브라우저 지원 현황:** Chrome은 2024년에 이 새로운 API를 처음 도입했으며, 2025년 8월부터는 Firefox에서도 지원을 시작했습니다 [2]. 하지만 Safari는 아직 Scheduler API를 지원하지 않는 상태입니다 [2]. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[scheduler.yield()]], [[Interaction to Next Paint (INP)]] +- **Projects/Contexts:** [[Web Performance Optimization]] +- **Contradictions/Notes:** 소스 내에 상충하는 정보는 없습니다. 다만, Chrome(2024년)과 Firefox(2025년 8월)는 해당 API를 지원하지만 Safari는 아직 지원하지 않는다는 호환성 제약이 명시되어 있습니다 [2]. + +--- +*Last updated: 2026-04-19* +- Raw Source: [[00_Raw/2026-04-20/Scheduler API.md]] +--- diff --git a/Programming & Language/Schema-Driven-Development.md b/Programming & Language/Schema-Driven-Development.md new file mode 100644 index 00000000..69bf58c8 --- /dev/null +++ b/Programming & Language/Schema-Driven-Development.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-DE27F0 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Schema-Driven-Development" +--- + +# [[Schema-Driven-Development]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Schema-Driven-Development.md]] +--- diff --git a/Programming & Language/Schemaorg.md b/Programming & Language/Schemaorg.md new file mode 100644 index 00000000..b0d8b6d1 --- /dev/null +++ b/Programming & Language/Schemaorg.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-A3B261 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Schemaorg" +--- + +# [[Schemaorg]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Schema.org.md]] +--- diff --git a/Programming & Language/Sensorimotor-Integration.md b/Programming & Language/Sensorimotor-Integration.md new file mode 100644 index 00000000..b8235935 --- /dev/null +++ b/Programming & Language/Sensorimotor-Integration.md @@ -0,0 +1,25 @@ +--- +id: P-REINFORCE-AUTO-F9E556 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Sensorimotor-Integration" +--- + +# [[Sensorimotor-Integration]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 지식 요약 정보 추출 중... + +## 📖 구조화된 지식 (Synthesized Content) +본문 구조화 작업 중... + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) + +- Raw Source: [[00_Raw/2026-04-20/Sensorimotor-Integration.md]] +--- diff --git a/Programming & Language/Server Architecture.md b/Programming & Language/Server Architecture.md new file mode 100644 index 00000000..2d79c9cc --- /dev/null +++ b/Programming & Language/Server Architecture.md @@ -0,0 +1,30 @@ +--- +id: P-REINFORCE-AUTO-F7D840 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - Server Architecture" +--- + +# [[Server Architecture]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> 소스에 관련 정보가 부족합니다. + +## 📖 구조화된 지식 (Synthesized Content) +소스에 관련 정보가 부족합니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** 소스에 관련 정보가 부족합니다. +- **Projects/Contexts:** 소스에 관련 정보가 부족합니다. +- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. + +--- +*Last updated: 2026-04-18* +- Raw Source: [[00_Raw/2026-04-20/Server Architecture.md]] +--- diff --git a/Programming & Language/SharedArrayBuffer vs postMessage 성능 차이.md b/Programming & Language/SharedArrayBuffer vs postMessage 성능 차이.md new file mode 100644 index 00000000..b46e45d1 --- /dev/null +++ b/Programming & Language/SharedArrayBuffer vs postMessage 성능 차이.md @@ -0,0 +1,49 @@ +--- +id: P-REINFORCE-AUTO-1B42F5 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - SharedArrayBuffer vs postMessage 성능 차이" +--- + +# [[SharedArrayBuffer vs postMessage 성능 차이]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> `postMessage`는 데이터를 직렬화 및 역직렬화하여 스레드 간에 전달하기 때문에 통신 오버헤드가 발생하는 반면, `SharedArrayBuffer`는 두 스레드가 동일한 메모리 영역을 공유하여 **데이터 복사 비용 없이 0의 오버헤드와 극도로 낮은 지연 시간**을 달성하는 기술입니다. + +## 📖 구조화된 지식 (Synthesized Content) +**1. 데이터 전송 및 복사 메커니즘** + +- **postMessage**: 기본적으로 데이터를 다른 스레드로 보낼 때 구조화된 복제(Structured Clone) 알고리즘을 통해 **데이터를 직렬화(Serialization)하고 역직렬화하는 과정**을 거칩니다. 이 과정에서 데이터가 복사되므로, 전달하는 페이로드의 크기에 비례하여 메모리 및 CPU 비용이 증가합니다. (단, Transferable Objects를 사용하면 복사 없이 소유권을 이전할 수 있으나, 전송 후 원래 스레드에서는 해당 객체에 접근할 수 없게 됩니다). +- **SharedArrayBuffer**: 두 스레드가 **완전히 동일한 메모리 주소 공간을 공유**합니다. 데이터를 한쪽 스레드에서 쓰면 다른 스레드에서 즉시 읽을 수 있기 때문에, **데이터 복사나 이동이 전혀 발생하지 않습니다**. + +**2. 성능 및 지연 시간 (Latency)** + +- **postMessage**: 메시지 패싱 과정에서 **약 5~10ms의 통신 오버헤드**가 발생할 수 있습니다. 특히 매 프레임마다 수천 개의 엔티티 위치 값이나 큰 JSON 객체를 주고받아야 하는 게임 환경에서는 이 오버헤드가 심각한 성능 병목(Bottleneck)으로 작용하여 프레임 드랍을 유발할 수 있습니다. +- **SharedArrayBuffer**: 스레드 간 통신 지연 시간이 **극도로 낮습니다(가장 빠름)**. 데이터 직렬화 비용이 '0'이므로 속도와 메모리 효율성 측면에서 가장 압도적인 성능을 발휘하며, 원자적 연산(Atomic operations)을 지원하여 동시성 문제 없이 고속으로 데이터를 처리할 수 있습니다. + +**3. 개발 편의성 및 구현 복잡도** + +- **postMessage**: 구현 복잡도가 낮으며(Low), 개발자에게 익숙한 자바스크립트 일반 객체나 JSON 구조를 그대로 다룰 수 있어 **매우 직관적이고 친화적**입니다. +- **SharedArrayBuffer**: 구현 복잡도가 매우 높습니다(High). JSON과 같은 구조화된 데이터 대신 **원시 이진 데이터(Raw Binary Data) 버퍼**를 직접 제어하고 관리해야 하므로, 아주 저수준(Low-level)의 프로그래밍이 요구됩니다. + +**4. 적합한 사용 사례 (Use Cases)** + +- **postMessage**: 크기가 작거나 가끔씩 전송되는 이벤트, 혹은 결과 도출에 시간이 걸리는 일반적인 비동기 연산의 결과를 받을 때 적합합니다. +- **SharedArrayBuffer**: ECS(Entity-Component-System) 아키텍처 등에서 수많은 객체의 컴포넌트 데이터를 담고, 물리 엔진(워커 스레드)의 연산 결과를 렌더링 루프(메인 스레드)가 **매 프레임 즉각적으로 읽어가야 하는 고성능 게임 엔진** 구현에 필수적입니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Web Worker]], [[직렬화(Serialization) 및 병목 현상]], [[Transferable Objects]], [[Data-Oriented Design (ECS)]], [[원자적 연산(Atomic Operations)]] +- **Projects/Contexts:** [[멀티스레드 기반 고성능 React 게임 엔진]], [[실시간 물리 시뮬레이션 동기화]] +- **Contradictions/Notes:** `postMessage`도 `ArrayBuffer` 등을 Transferable 객체로 전달하면 직렬화 오버헤드를 거의 0으로 만들 수 있습니다. 그러나 이는 '소유권 이전' 방식이므로 두 스레드가 "동시에 데이터를 읽고 쓰는" 양방향 공유(Shared)가 불가능하다는 점에서 `SharedArrayBuffer`와 결정적인 차이를 가집니다. + +--- + +_Last updated: 2026-04-14_ +- Raw Source: [[00_Raw/2026-04-20/SharedArrayBuffer vs postMessage 성능 차이.md]] +--- diff --git a/Programming & Language/SharedArrayBuffer 동시성 문제 해결법.md b/Programming & Language/SharedArrayBuffer 동시성 문제 해결법.md new file mode 100644 index 00000000..71059279 --- /dev/null +++ b/Programming & Language/SharedArrayBuffer 동시성 문제 해결법.md @@ -0,0 +1,38 @@ +--- +id: P-REINFORCE-AUTO-918534 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - SharedArrayBuffer 동시성 문제 해결법" +--- + +# [[SharedArrayBuffer 동시성 문제 해결법]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> `SharedArrayBuffer`는 여러 스레드가 동일한 메모리 영역을 동시에 공유하기 때문에 데이터 경쟁 상태(Data Race)가 발생할 수 있으며, 이를 해결하기 위해 **원자적 연산(Atomic operations)** 지원을 활용하거나 **아키텍처 설계(ECS 등)**를 통해 스레드 간의 읽기/쓰기 역할을 명확히 분리해야 합니다. + +## 📖 구조화된 지식 (Synthesized Content) +**1. 원자적 연산 (Atomic Operations) 활용** `SharedArrayBuffer`는 메인 스레드와 워커 스레드 등 서로 다른 컨텍스트에서 데이터를 복사 없이 공유할 수 있도록 지원하며, 동시 접근으로 인한 충돌을 막기 위해 원자적 연산(Atomic operations)을 지원합니다. _(※ 외부 지식 참고: 자바스크립트에서는 이를 위해 내장된 `Atomics` 전역 객체를 사용합니다. `Atomics.load()`, `Atomics.store()`, `Atomics.add()`, `Atomics.compareExchange()` 등의 API를 사용하면 특정 메모리 주소에 대한 읽기와 쓰기가 중간에 끊기지 않는 '단일 연산'으로 보장되어 안전하게 데이터를 제어할 수 있습니다.)_ + +**2. 스레드 동기화 제어 (Lock / Wait 메커니즘)** _(※ 외부 지식 참고: 동시성 충돌을 더욱 엄격하게 제어해야 할 경우 `Atomics.wait()`와 `Atomics.notify()`를 활용해 특정 스레드를 대기 상태로 만들고 작업이 끝난 후 깨우는 방식(Lock, Mutex 패턴)을 구현하여 다중 스레드의 접근 순서를 동기화할 수 있습니다.)_ + +**3. 아키텍처적 해결: ECS(Entity Component System)를 통한 읽기/쓰기 역할 분리** 가장 효율적인 방식은 엔진 구조 자체에서 데이터의 단방향 흐름을 강제하여 충돌을 회피하는 것입니다. 고성능 게임 엔진 아키텍처에서는 ECS의 컴포넌트 데이터를 `SharedArrayBuffer`에 할당한 후, 스레드의 역할을 엄격하게 분리합니다. + +- **쓰기(Write) 전담 스레드:** 웹 워커(Web Worker)는 백그라운드에서 물리 연산이나 AI 로직 등을 수행하며 버퍼의 데이터를 업데이트(Write)합니다. +- **읽기(Read) 전담 스레드:** 메인 스레드(React 및 렌더링 루프)는 렌더링 시점에 버퍼에서 데이터를 즉시 읽어와(Read) 복사 비용 없이 WebGL/Three.js 메시의 속성에 반영합니다. 이러한 데이터 지향 설계(Data-Oriented Design)를 채택하면 여러 스레드가 동일한 데이터에 동시에 쓰기 작업을 하는 상황을 구조적으로 방지할 수 있습니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Web Worker]], [[Atomics API]], [[경쟁 상태 (Race Condition)]], [[Data-Oriented Design (ECS)]] +- **Projects/Contexts:** [[멀티스레드 React WebGL 애플리케이션]], [[고성능 실시간 상호작용 시스템]] +- **Contradictions/Notes:** `SharedArrayBuffer`는 지연 시간을 극도로 낮추고 복사 비용을 '0'으로 만들지만, 로우 레벨의 이진 데이터 버퍼를 직접 다뤄야 하고 `Atomics`로 동시성을 관리해야 하므로 구현 복잡도가 매우 높습니다 [264, 895, 이전 대화 내용 참조]. 따라서 충돌 제어와 개발 편의성이 더 중요한 일반적인 경우에는 Valtio 등 프록시(Proxy)를 사용해 `BroadcastChannel`이나 `postMessage`로 변경점(Delta)만 동기화하는 메시지 기반 패턴이 더 직관적일 수 있습니다. + +--- + +_Last updated: 2026-04-14_ +- Raw Source: [[00_Raw/2026-04-20/SharedArrayBuffer 동시성 문제 해결법.md]] +--- diff --git a/Programming & Language/SharedArrayBuffer 보안 이슈와 Cross-Origin Isolation.md b/Programming & Language/SharedArrayBuffer 보안 이슈와 Cross-Origin Isolation.md new file mode 100644 index 00000000..e45f235b --- /dev/null +++ b/Programming & Language/SharedArrayBuffer 보안 이슈와 Cross-Origin Isolation.md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-C3F189 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - SharedArrayBuffer 보안 이슈와 Cross-Origin Isolation" +--- + +# [[SharedArrayBuffer 보안 이슈와 Cross-Origin Isolation]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> `SharedArrayBuffer`는 스펙터(Spectre)와 같은 CPU 취약점을 악용한 타이밍 공격(Timing Attack)의 위험이 있어 브라우저에서 사용이 제한되며, 이를 다시 활성화하려면 웹 서버에 **Cross-Origin Isolation(교차 출처 격리) 보안 헤더**를 명시적으로 설정하여 안전한 환경을 구축해야 합니다. + +## 📖 구조화된 지식 (Synthesized Content) +**1. 보안 이슈의 배경: 스펙터(Spectre) 취약점** `SharedArrayBuffer`는 두 스레드가 메모리를 공유하면서 매우 정밀한 고해상도 타이머를 만들 수 있게 해줍니다. 해커들은 이를 악용하여 최신 CPU의 예측 실행(Speculative Execution) 과정에서 발생하는 미세한 시간 차이를 측정하고, 결과적으로 같은 브라우저 프로세스 내에 로드된 다른 사이트의 비밀번호 등 **민감한 메모리 데이터를 탈취하는 스펙터(Spectre) 취약점**을 발견했습니다. 이 치명적인 보안 결함 때문에 브라우저 벤더들은 2018년경 이 기능을 일괄 비활성화했습니다. + +**2. Cross-Origin Isolation (교차 출처 격리) 도입** 이후 브라우저들은 멀티스레딩의 성능적 이점을 포기할 수 없었기에, 현재 실행 중인 웹 페이지가 신뢰할 수 없는 외부의 다른 사이트(Origin) 리소스와 철저히 분리된 안전한 환경에서만 `SharedArrayBuffer`를 다시 사용할 수 있도록 정책을 변경했습니다. 이 격리된 환경을 **'Cross-Origin Isolated'** 상태라고 부릅니다. + +**3. COOP 및 COEP HTTP 헤더 설정법** 웹 애플리케이션에서 `SharedArrayBuffer`를 활성화하려면, 서버 측(Nginx, Apache, Node.js Express, Vercel, AWS CloudFront 등)에서 HTML 문서를 응답할 때 반드시 다음 **두 가지 HTTP 보안 헤더**를 내려보내야 합니다. + +- **`Cross-Origin-Opener-Policy: same-origin` (COOP):** 현재 문서와 다른 출처를 가진 팝업창이나 외부 문서가 서로의 `window` 객체에 접근하지 못하도록 브라우징 실행 컨텍스트를 분리합니다. +- **`Cross-Origin-Embedder-Policy: require-corp` (COEP):** 명시적으로 승인받지 않은 다른 출처의 리소스(외부 이미지, 스크립트, iframe 등)가 현재 페이지에 임베드되는 것을 원천적으로 차단합니다. + +**4. 설정 시 발생할 수 있는 사이드 이펙트 및 주의사항** 위 헤더를 적용하여 고성능 환경을 얻는 대신, 보안 격리가 너무 엄격해져서 **기존에 잘 작동하던 외부 CDN 스크립트나 외부 이미지 등이 차단되는 문제**가 발생할 수 있습니다. 이를 해결하기 위해서는 외부 리소스를 제공하는 서버 측에서 `Cross-Origin-Resource-Policy: cross-origin` (CORP) 헤더나 적절한 CORS 설정(`Access-Control-Allow-Origin`)을 제공해야 하며, 클라이언트의 HTML 태그에도 ``와 같이 명시적인 속성을 추가해 주어야 합니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Spectre & Meltdown 취약점]], [[CORS (Cross-Origin Resource Sharing)]], [[HTTP Security Headers (COOP, COEP, CORP)]], [[Web Worker 멀티스레딩 통신]] +- **Projects/Contexts:** [[보안 격리 환경에서의 고성능 웹 게임 개발]], [[멀티스레드 기반 렌더링 파이프라인(React Three Fiber)]] +- **Contradictions/Notes:** 로컬 개발 환경(`localhost` 또는 `127.0.0.1`)에서는 개발 편의상 Cross-Origin Isolation 헤더 없이도 `SharedArrayBuffer`가 임시로 동작할 수 있으나, 실제 프로덕션(HTTPS 환경)에 배포할 때는 반드시 헤더 설정이 필요합니다. + +--- + +_Last updated: 2026-04-14_ +- Raw Source: [[00_Raw/2026-04-20/SharedArrayBuffer 보안 이슈와 Cross-Origin Isolation.md]] +--- diff --git a/Programming & Language/SharedArrayBuffer 보안을 위한 COOP COEP 헤더 설정.md b/Programming & Language/SharedArrayBuffer 보안을 위한 COOP COEP 헤더 설정.md new file mode 100644 index 00000000..d203abf3 --- /dev/null +++ b/Programming & Language/SharedArrayBuffer 보안을 위한 COOP COEP 헤더 설정.md @@ -0,0 +1,40 @@ +--- +id: P-REINFORCE-AUTO-01AE3D +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - SharedArrayBuffer 보안을 위한 COOP COEP 헤더 설정" +--- + +# [[SharedArrayBuffer 보안을 위한 COOP COEP 헤더 설정]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> `SharedArrayBuffer`의 보안 취약점을 방지하고 스레드 간 안전한 메모리 공유를 수행하기 위해, 웹 서버에서 응답 시 브라우저의 교차 출처 격리(Cross-Origin Isolation)를 활성화하는 필수 HTTP 보안 헤더 설정 기법입니다. + +## 📖 구조화된 지식 (Synthesized Content) +_(안내: 제공된 소스 자료에서는 `SharedArrayBuffer`가 복사 비용이 0이며 매우 낮은 지연 시간으로 스레드 간 메모리를 공유하는 고성능 데이터 구조라는 점만 언급되어 있습니다. 따라서 구체적인 보안 취약점 이슈 및 COOP/COEP 헤더 설정법은 **이전 대화 기록 및 외부 지식을 바탕으로 작성**되었으므로 실제 환경 적용 시 독립적인 교차 검증을 권장합니다.)_ + +**1. 교차 출처 격리(Cross-Origin Isolation)의 필요성** `SharedArrayBuffer`는 서로 다른 스레드(컨텍스트)에서 원자적 연산을 통해 데이터를 복사 없이 공유할 수 있도록 지원합니다. 그러나 이 정밀한 메모리 공유 기능을 악용하여 다른 출처(Origin)의 민감한 데이터를 탈취하는 스펙터(Spectre) 타이밍 공격이 가능합니다. 브라우저는 이를 막기 위해 현재 페이지를 외부 출처로부터 철저히 분리(Isolation)하는 안전한 환경에서만 `SharedArrayBuffer` 생성을 허용합니다. + +**2. 서버의 필수 HTTP 응답 헤더 설정** 안전한 교차 출처 격리 상태를 켜려면 웹 서버(Node.js, Nginx, Vercel 등)에서 HTML을 응답할 때 다음 두 가지 헤더를 반드시 설정해야 합니다. + +- **COOP (Cross-Origin-Opener-Policy): `same-origin`** 이 헤더는 현재 문서가 다른 교차 출처 문서(예: 타 사이트가 연 팝업창)와 브라우징 컨텍스트 그룹을 공유하지 못하도록 차단하여 공격자의 간섭을 막습니다. +- **COEP (Cross-Origin-Embedder-Policy): `require-corp`** (또는 `credentialless`) 이 헤더는 명시적인 보안 허락(CORS나 CORP 헤더)을 받지 않은 모든 외부 리소스(이미지, 외부 스크립트, iframe 등)가 내 페이지에 로드되는 것을 원천 차단합니다. + +**3. 브라우저 내 활성화 확인** 서버 측에서 위 두 헤더가 정상적으로 응답되었다면, 브라우저 자바스크립트 환경에서 `crossOriginIsolated` 전역 변수가 `true`로 평가됩니다. 이 값이 `true`일 때만 에러 없이 `new SharedArrayBuffer()`를 호출하여 고성능 메모리 버퍼를 할당할 수 있습니다. + +## ⚠️ 모순 및 업데이트 (Contradictions & RL Update) +- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요. +- **정책 변화:** Programming & Language 분야의 자동 자산화 수행. + +## 🔗 지식 연결 (Graph) +- **Related Topics:** [[Cross-Origin Isolation (COI)]], [[HTTP Security Headers (COOP/COEP)]], [[Spectre 취약점 부채널 공격]], [[CORS 및 CORP 설정]] +- **Projects/Contexts:** [[보안이 강화된 고성능 WebGL/멀티스레드 게임 엔진 배포]] +- **Contradictions/Notes:** COOP와 COEP 헤더를 적용하면 엔진의 성능을 최대로 끌어올릴 수 있지만, 반대급부로 기존에 제약 없이 로드되던 외부 CDN 이미지나 타사 분석 스크립트가 브라우저에 의해 렌더링 차단되는 심각한 부작용이 생길 수 있습니다. 이를 우회하려면 외부 리소스 태그에 `crossorigin="anonymous"` 속성을 달고, 리소스 제공 서버가 적절한 접근 제어 헤더를 함께 내려주어야 하는 인프라적 제약이 따릅니다. + +--- + +_Last updated: 2026-04-14_ +- Raw Source: [[00_Raw/2026-04-20/SharedArrayBuffer 보안을 위한 COOP, COEP 헤더 설정.md]] +--- diff --git a/Programming & Language/SharedArrayBuffer 보안을 위한 Cross-Origin Isolation 서버 헤더 설정.md b/Programming & Language/SharedArrayBuffer 보안을 위한 Cross-Origin Isolation 서버 헤더 설정.md new file mode 100644 index 00000000..b047cea0 --- /dev/null +++ b/Programming & Language/SharedArrayBuffer 보안을 위한 Cross-Origin Isolation 서버 헤더 설정.md @@ -0,0 +1,43 @@ +--- +id: P-REINFORCE-AUTO-32CC81 +category: "[[10_Wiki/💡 Topics/Programming & Language]]" +confidence_score: 0.90 +tags: [auto-reinforced] +last_reinforced: 2026-04-20 +github_commit: "[P-Reinforce] Continuous Worker - SharedArrayBuffer 보안을 위한 Cross-Origin Isolation 서버 헤더 설정" +--- + +# [[SharedArrayBuffer 보안을 위한 Cross-Origin Isolation 서버 헤더 설정]] + +## 📌 한 줄 통찰 (The Karpathy Summary) +> `SharedArrayBuffer`의 스펙터(Spectre) 취약점을 악용한 메모리 유출 공격을 방지하기 위해, 웹 서버에서 응답 시 **COOP 및 COEP HTTP 보안 헤더**를 설정하여 브라우저의 교차 출처 격리(Cross-Origin Isolation) 상태를 활성화하는 서버 설정 방법입니다. + +## 📖 구조화된 지식 (Synthesized Content) +**1. Cross-Origin Isolation(교차 출처 격리)의 필요성** `SharedArrayBuffer`는 스레드 간 원자적 연산과 메모리 공유를 지원하지만, 이를 악용하면 타이밍 공격(Spectre)을 통해 브라우저 내 다른 사이트의 민감한 데이터를 탈취할 수 있습니다. 브라우저 벤더들은 이를 막기 위해 현재 페이지가 신뢰할 수 없는 외부 출처(Origin) 리소스와 철저히 분리된 안전한 **'Cross-Origin Isolated'** 환경에서만 객체 생성을 허용하도록 보안 정책을 강화했습니다. + +**2. 필수 HTTP 응답 헤더 설정 (COOP / COEP)** 이 격리 환경을 활성화하려면, HTML을 제공하는 웹 서버(Node.js Express, Nginx, Vercel 등)의 응답 헤더(Response Headers)에 다음 두 가지를 반드시 추가해야 합니다. + +- **`Cross-Origin-Opener-Policy: same-origin` (COOP):** 현재 최상위 문서가 다른 교차 출처 문서(예: 타 사이트에서 열린 팝업창 등)와 브라우징 실행 컨텍스트를 공유하지 못하도록 차단하여 외부 간섭을 막습니다. +- **`Cross-Origin-Embedder-Policy: require-corp` (COEP):** (경우에 따라 `credentialless` 사용 가능) 명시적인 보안 승인(CORS 또는 CORP 헤더)을 받지 않은 외부 리소스(외부 CDN 스크립트, 이미지, iframe 등)가 현재 페이지에 임베드(Embed)되는 것을 원천적으로 차단합니다. + +**3. 브라우저 활성화 검증** 서버 헤더가 올바르게 설정되어 페이지가 로드되면, 클라이언트의 자바스크립트 환경에서 전역 속성인 **`crossOriginIsolated`가 `true`를 반환**합니다. 이 상태에서만 오류 없이 `new SharedArrayBuffer()`를 호출할 수 있습니다. + +**4. 헤더 적용 시 발생하는 사이드 이펙트와 해결책** 이 보안 정책은 매우 엄격하여 **기존에 정상적으로 불러오던 외부 이미지나 서드파티 스크립트(Google Analytics 등)가 브라우저에 의해 렌더링 차단되는 심각한 부작용**이 발생할 수 있습니다. 이를 우회하고 해결하려면: + +- HTML 내 모든 외부 리소스 태그(예: ``, `