Wiki cleanup: error-doc removal, dedup merge, link normalization

10_Wiki/Topics 대규모 정리:
- 오류 캡처/미완성 stub 문서 227개 제거
- 교차폴더 중복 43클러스터 병합 (63파일 → redirect)
- 링크명 정규화: 깨진 링크 수정·redirect 직결·개념 매핑 ~2,400건
- 카테고리 MOC 6개 신규 생성
- Graph 섹션 미해결 related-keyword 링크 10,058건 제거

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Antigravity Agent
2026-05-20 23:52:15 +09:00
parent 2a4a5046b6
commit f8b21af4be
2874 changed files with 15296 additions and 27684 deletions
@@ -23,7 +23,6 @@ github_commit: applied
- BLUF + Action Items 구조.
## 🔗 Graph
- 부모: [[Meeting Notes]] (canonical)
- Adjacent: [[BLUF (Bottom Line Up Front)]]
## 🕓 변경 이력
@@ -124,10 +124,6 @@ def fatigue_flag(rpe: int, srpe_load: int, acwr: float) -> bool:
**기본값**: FIFA 11+ 2-3x/week.
## 🔗 Graph
- 부모: [[Sports Medicine]] · [[Injury Prevention]]
- 변형: [[FIFA 11+]] · [[PEP Program]] · [[KIPP]]
- 응용: [[Return to Sport Testing]] · [[Neuromuscular Training]]
- Adjacent: [[Biomechanics]] · [[Knee Valgus]]
## 🤖 LLM 활용
**언제**: structured risk-stratification, program selection, periodization advice.
@@ -125,10 +125,8 @@ python -m style_neutralizer **/*.py
**기본값**: autoformat + LLM neutralization for adversarial; char n-gram TF-IDF + RF for detection.
## 🔗 Graph
- 부모: [[Stylometry]] · [[Code Authorship Attribution]]
- 변형: [[Mimicry Attack]] · [[Code Obfuscation]]
- 응용: [[Malware Attribution]] · [[Anonymous OSS]]
- Adjacent: [[Adversarial ML]] · [[Differential Privacy]]
- 변형: [[Code Obfuscation]]
- Adjacent: [[Differential Privacy]]
## 🤖 LLM 활용
**언제**: style neutralization, mimicry attack, defensive paraphrase.
@@ -112,7 +112,7 @@ session.requestReferenceSpace('viewer').then(viewerSpace => {
## 🔗 Graph
- 부모: [[VR 엑서게임 (VR Exergaming)]] · [[HMD(Head-Mounted Display) 기반 엑서게임 환경]]
- 변형: [[Digital Twins]] · [[Digital-Twin-Technology]]
- 변형: [[Digital Twins]] · [[Digital Twins|Digital-Twin-Technology]]
- 응용: [[Beat Saber 엑서게임 연구(Beat Saber Exergaming Study)]] · [[Remote-Rehabilitation]]
- Adjacent: [[Visual-Effects-VFX]]
@@ -117,10 +117,9 @@ Recent: deploys 4 (all green) · alerts 0 · SLO budget 99.4%
**기본값**: ops/exec communication 은 BLUF; pedagogical/narrative 은 example-first.
## 🔗 Graph
- 부모: [[Technical Writing]] · [[Incident Response]]
- 변형: [[TL;DR]] · [[Inverted Pyramid]]
- 응용: [[Postmortem]] · [[ADR]] · [[On-Call Runbook]]
- Adjacent: [[Pyramid Principle]] · [[Minto]]
- 부모: [[Technical Writing]]
- 응용: [[Postmortem]] · [[ADR]]
- Adjacent: [[Pyramid Principle]]
## 🤖 LLM 활용
**언제**: ask LLM to "rewrite as BLUF" — high-quality reflow.
+2 -4
View File
@@ -140,10 +140,8 @@ fn morton3d(x: u32, y: u32, z: u32) -> u32 {
**기본값**: SAH BVH2 for CPU; BVH8 + PLOC for GPU.
## 🔗 Graph
- 부모: [[Acceleration Structure]] · [[Spatial Data Structure]]
- 변형: [[KD-Tree]] · [[Octree]] · [[Grid]]
- 응용: [[Ray Tracing]] · [[Collision Detection]] · [[Frustum Culling]]
- Adjacent: [[SAH]] · [[Morton Code]] · [[OptiX]]
- 변형: [[KD-Tree]] · [[Octree]]
- 응용: [[Collision Detection]] · [[Frustum Culling]]
## 🤖 LLM 활용
**언제**: explain SAH math, generate boilerplate AABB/traversal code.
@@ -24,7 +24,6 @@ github_commit: pending
- Draw call 절감 = 매 frame budget 의 핵심.
## 🔗 Graph
- 부모: [[BatchedMesh and InstancedMesh Performance]] (canonical)
## 🕓 변경 이력
| 날짜 | 변경 |
@@ -24,7 +24,6 @@ github_commit: pending
- Energy expenditure 5-8 METs (Expert+ 난이도).
## 🔗 Graph
- 부모: [[Beat Saber Exergaming]] (canonical)
## 🕓 변경 이력
| 날짜 | 변경 |
@@ -24,7 +24,6 @@ github_commit: pending
- Recovery timeline — typically 10-30 min for mild cases.
## 🔗 Graph
- 부모: [[VR Exergaming Aftereffects]] (canonical)
## 🕓 변경 이력
| 날짜 | 변경 |
+4 -4
View File
@@ -122,10 +122,10 @@ console.log(metrics.find(m => m.name === "LayoutCount"));
**기본값**: standards + feature detection; Blink-specific API only with fallbacks.
## 🔗 Graph
- 부모: [[Browser Engine]] · [[Chromium]]
- 변형: [[WebKit]] · [[Gecko]] · [[Servo]]
- 응용: [[Electron]] · [[Puppeteer]] · [[Playwright]]
- Adjacent: [[V8]] · [[Skia]] · [[LayoutNG]]
- 부모: [[Chromium]]
- 변형: [[WebKit]]
- 응용: [[Electron]] · [[Playwright]]
- Adjacent: [[V8]] · [[Skia]]
## 🤖 LLM 활용
**언제**: explain pipeline stage, generate web platform boilerplate.
@@ -120,10 +120,9 @@ perf stat -e branches,branch-misses ./bench
**기본값**: write clear branchful code; branchless only when profiler shows misprediction hotspot.
## 🔗 Graph
- 부모: [[CPU Microarchitecture]] · [[Pipeline]]
- 변형: [[TAGE]] · [[Perceptron Predictor]] · [[BTB]]
- 응용: [[JIT Compilation]] · [[Branchless Programming]]
- Adjacent: [[Spectre]] · [[Speculative Execution]] · [[cmov]]
- 부모: [[Pipeline]]
- 응용: [[JIT Compilation]]
- Adjacent: [[Spectre]] · [[Speculative Execution]]
## 🤖 LLM 활용
**언제**: explain mispredict cost, generate branchless equivalents, suggest hints.
@@ -135,10 +135,9 @@ geo.computeBoundingSphere(); // required for frustum culling after vertex move
**기본값**: static indexed BufferGeometry; switch to instanced/merged for >100 copies.
## 🔗 Graph
- 부모: [[Three.js]] · [[WebGL Geometry]]
- 변형: [[InstancedBufferGeometry]] · [[BatchedMesh]]
- 응용: [[Custom Shader]] · [[GPGPU Particles]]
- Adjacent: [[BufferAttribute]] · [[VBO]] · [[VAO]]
- 부모: [[Three.js]]
- 변형: [[BatchedMesh]]
- Adjacent: [[BufferAttribute]]
## 🤖 LLM 활용
**언제**: generate procedural geometry boilerplate, debug attribute layout.
@@ -24,7 +24,6 @@ github_commit: pending
- 임상: ADHD, dementia, TBI 의 attention/processing speed assessment.
## 🔗 Graph
- 부모: [[CANTAB 5-Choice RTI]] (canonical)
## 🕓 변경 이력
| 날짜 | 변경 |
@@ -126,9 +126,9 @@ else dst = (char*)to_space + free_;
## 🔗 Graph
- 부모: [[Garbage Collection]] · [[Memory Management]]
- 변형: [[Mark-Sweep GC]] · [[Mark-Compact GC]] · [[Generational GC]]
- 응용: [[V8 Engine]] · [[OCaml Runtime]] · [[Node.js]]
- Adjacent: [[Bump Allocator]] · [[Forwarding Pointer]] · [[Write Barrier]]
- 변형: [[Mark-Sweep]]
- 응용: [[V8 Engine]] · [[Node.js]]
- Adjacent: [[Write Barrier]]
## 🤖 LLM 활용
**언제**: GC 설명, runtime internals 분석, language implementation 설계 시.
@@ -139,10 +139,10 @@ chrome --js-flags="--max-old-space-size=8192"
**기본값**: 매 3-snapshot technique (baseline → workload → after-gc → diff).
## 🔗 Graph
- 부모: [[V8 Engine]] · [[Chrome DevTools]]
- 변형: [[Node.js Heap Profiling]] · [[Electron V8 Memory Cage]]
- 부모: [[V8 Engine]] · [[Chrome DevTools 메모리 프로파일링|Chrome DevTools]]
- 변형: [[Electron V8 Memory Cage]]
- 응용: [[Memory Leak Detection]] · [[Performance Optimization]]
- Adjacent: [[Garbage Collection]] · [[V8 Heap Spaces]]
- Adjacent: [[Garbage Collection]]
## 🤖 LLM 활용
**언제**: 매 leak 의 reproducibility 의 OK 의 case. 매 retainer chain 의 interpretation 의 LLM 의 강점.
@@ -133,10 +133,7 @@ struct StringObfPass : PassInfoMixin<StringObfPass> {
**기본값**: Don't obfuscate — secrets belong server-side. Necessary 시 매 layered defense.
## 🔗 Graph
- 부모: [[Software Security]] · [[Reverse Engineering]]
- 변형: [[Virtualization Obfuscation]] · [[Whitebox Cryptography]]
- 응용: [[DRM]] · [[Anti-Cheat]] · [[Malware Analysis]]
- Adjacent: [[Symbolic Execution]] · [[Decompilation]] · [[Ghidra]] · [[IDA Pro]]
- 응용: [[Malware Analysis]]
## 🤖 LLM 활용
**언제**: Defense-in-depth context, malware analysis 학습, anti-tamper design.
@@ -122,10 +122,9 @@ def anonymize(src: str) -> str:
**기본값**: 매 RF + AST n-gram 으로 baseline. Embedding 으로 boost.
## 🔗 Graph
- 부모: [[Authorship Attribution]] · [[Software Forensics]]
- 변형: [[Natural Language Stylometry]] · [[Binary Authorship Attribution]]
- 응용: [[Plagiarism Detection]] · [[Malware Attribution]] · [[Supply Chain Security]]
- Adjacent: [[Code Obfuscation]] · [[CodeBERT]] · [[AST]]
- 부모: [[Authorship Attribution]]
- 응용: [[Supply Chain Security]]
- Adjacent: [[Code Obfuscation]] · [[AST]]
## 🤖 LLM 활용
**언제**: Forensic context, plagiarism check, OSS contributor analysis.
@@ -132,9 +132,9 @@ joern> cpg.runScript("export-cpg.sc")
## 🔗 Graph
- 부모: [[SAST]] · [[Static Analysis]]
- 변형: [[AST]] · [[Control Flow Graph]] · [[Data Flow Analysis]]
- 응용: [[Joern]] · [[CodeQL]] · [[Vulnerability Detection]]
- Adjacent: [[DAST]] · [[SCA]] · [[DevSecOps Framework]]
- 변형: [[AST]]
- 응용: [[Joern]] · [[CodeQL]]
- Adjacent: [[보안_및_시스템_신뢰성_표준|DAST]] · [[SCA_Fundamentals|SCA]] · [[DevSecOps Framework]]
## 🤖 LLM 활용
**언제**: 매 Joern Scala query 의 draft, 매 CPG result 의 false positive triage, 매 custom sink/source 의 suggestion.
@@ -120,10 +120,9 @@ depends_on:
**기본값**: Optimize for reader, not writer — 매 reduce extraneous, accept intrinsic.
## 🔗 Graph
- 부모: [[Software Design]] · [[Cognitive Psychology]]
- 변형: [[Intrinsic Load]] · [[Extraneous Load]] · [[Germane Load]]
- 부모: [[Cognitive Psychology]]
- 응용: [[Team Topologies]] · [[Hexagonal Architecture]] · [[Clean Code]]
- Adjacent: [[Working Memory]] · [[Code Smell]] · [[Naming Things]]
- Adjacent: [[Working Memory]] · [[Code Smell]]
## 🤖 LLM 활용
**언제**: Code review, refactoring decision, team structure 설계, PR size 판단.
@@ -127,10 +127,9 @@ fn rename(node: &SyntaxNode, old: &str, new: &str) -> String {
**기본값**: User-facing tool 이면 매 CST. Compiler internal pass 면 매 AST.
## 🔗 Graph
- 부모: [[Parser]] · [[Compiler Frontend]]
- 변형: [[AST]] · [[GLR Parser]] · [[PEG Parser]]
- 응용: [[tree-sitter]] · [[rust-analyzer]] · [[Roslyn]] · [[Prettier]]
- Adjacent: [[Lexer]] · [[LSP]] · [[Incremental Parsing]]
- 부모: [[Parser]]
- 변형: [[AST]]
- 응용: [[Prettier]]
## 🤖 LLM 활용
**언제**: Source-to-source transformation, IDE-grade tooling, codemods.
@@ -3,31 +3,25 @@ id: wiki-2026-0508-continuous-integration-지속적-통합-ci
title: "Continuous Integration (지속적 통합, CI)"
category: 10_Wiki/Topics
status: duplicate
canonical_id: ci-cd-pipeline
duplicate_of: "[[CI_CD_Pipeline]]"
aliases: [CI, 지속적 통합]
canonical_id: wiki-2026-0508-continuous-integration-ci
duplicate_of: "[[Continuous Integration (CI)]]"
aliases: []
source_trust_level: A
confidence_score: 0.9
verification_status: redirected
tags: [duplicate, ci, devops]
last_reinforced: 2026-05-10
github_commit: applied
tags: [duplicate]
last_reinforced: 2026-05-20
github_commit: pending
---
# Continuous Integration (지속적 통합, CI)
> **이 문서는 [[CI_CD_Pipeline]] 의 중복본입니다.** CI/CD pipeline 통합 canonical 로 redirect.
## 핵심 요약
- CI = 매 frequent integration + automated test on every commit.
- 매 trunk-based + < 10min feedback loop + green main 이 핵심.
> **이 문서는 [[Continuous Integration (CI)]] 의 중복본입니다.** Canonical 문서로 redirect.
## 🔗 Graph
- 부모: [[CI_CD_Pipeline]] (canonical)
- Adjacent: [[Continuous Delivery (지속적 제공, CD)]] · [[Test_Automation]] · [[Engineering Metrics (DORA)]]
- 부모: [[Continuous Integration (CI)]] (canonical)
## 🕓 변경 이력
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | 중복 처리 — CI_CD_Pipeline 로 redirect |
| 2026-05-20 | 중복 병합 — canonical 문서로 redirect |
@@ -124,10 +124,7 @@ weekly_metrics = {
**기본값**: 매 weekly trio + 매 minimum 1 interview/week + 매 OST 의 living document.
## 🔗 Graph
- 부모: [[Product Management]] · [[User Research]]
- 변형: [[Continuous Delivery]] · [[Continuous Integration]]
- 응용: [[Opportunity Solution Tree]] · [[Customer Interview]]
- Adjacent: [[A/B Testing]] · [[Jobs to be Done]]
## 🤖 LLM 활용
**언제**: 매 interview transcript 의 thematic coding, 매 OST 의 draft, 매 assumption 의 listing, 매 research synthesis.
@@ -3,30 +3,25 @@ id: wiki-2026-0508-continuous-integration
title: Continuous Integration
category: 10_Wiki/Topics
status: duplicate
canonical_id: continuous-integration-ci
duplicate_of: "[[Continuous Integration (지속적 통합, CI)]]"
aliases: [CI]
canonical_id: wiki-2026-0508-continuous-integration-ci
duplicate_of: "[[Continuous Integration (CI)]]"
aliases: []
source_trust_level: A
confidence_score: 0.9
verification_status: redirected
tags: [duplicate, ci, devops]
last_reinforced: 2026-05-10
github_commit: applied
tags: [duplicate]
last_reinforced: 2026-05-20
github_commit: pending
---
# Continuous Integration
> **이 문서는 [[Continuous Integration (지속적 통합, CI)]] 의 중복본입니다.** Canonical 로 redirect.
## 핵심 요약
- 영문 stub — Korean canonical 에 모든 substantive content.
> **이 문서는 [[Continuous Integration (CI)]] 의 중복본입니다.** Canonical 문서로 redirect.
## 🔗 Graph
- 부모: [[Continuous Integration (지속적 통합, CI)]] (canonical)
- Adjacent: [[CI_CD_Pipeline]] · [[Continuous Delivery (지속적 제공, CD)]]
- 부모: [[Continuous Integration (CI)]] (canonical)
## 🕓 변경 이력
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | 중복 처리 — canonical 로 redirect |
| 2026-05-20 | 중복 병합 — canonical 문서로 redirect |
@@ -141,10 +141,10 @@ gl.generateMipmap(gl.TEXTURE_2D_ARRAY);
**기본값**: 매 same-size + N > 8 → array texture.
## 🔗 Graph
- 부모: [[WebGL2]] · [[WebGPU]]
- 변형: [[Texture Atlas]] · [[Bindless Textures]]
- 응용: [[Voxel Rendering]] · [[Sprite Batching]] · [[Real-time Physics Simulation]]
- Adjacent: [[GPU Memory Layout]] · [[Mipmap]]
- 부모: [[WebGL 20|WebGL2]] · [[WebGPU]]
- 변형: [[Texture Atlas]]
- 응용: [[실시간 물리 시뮬레이션 동기화|Real-time Physics Simulation]]
- Adjacent: [[Mipmap]]
## 🤖 LLM 활용
**언제**: 매 shader code generation 의 boilerplate 의 GLSL/WGSL 의 sample. 매 LLM 의 layer index 의 binding 의 OK.
@@ -163,10 +163,9 @@ def ensemble_decision(image, video_clip):
**기본값**: ensemble of frequency + foundation-model + watermark verification.
## 🔗 Graph
- 부모: [[Computer Vision]] · [[AI Security]]
- 변형: [[Audio Deepfake Detection]] · [[Video Authentication]]
- 응용: [[KYC Systems]] · [[Content Moderation]] · [[Digital Forensics]]
- Adjacent: [[GAN Fingerprinting]] · [[Adversarial ML]] · [[C2PA]]
- 부모: [[Computer Vision]]
- 응용: [[Content Moderation]]
- Adjacent: [[C2PA]]
## 🤖 LLM 활용
**언제**: feature engineering 의 brainstorm, dataset curation script, false-positive 분석.
@@ -129,10 +129,10 @@ cosign attest --predicate sbom.spdx.json --type spdx ghcr.io/org/app@sha256:...
**기본값**: 매 Semgrep + Trivy + gitleaks + Checkov + cosign + Falco.
## 🔗 Graph
- 부모: [[OWASP Top 10]] · [[안전한 소프트웨어 개발 수명주기(SSDLC)]]
- 부모: [[보안_및_시스템_신뢰성_표준|OWASP Top 10]] · [[안전한 소프트웨어 개발 수명주기(SSDLC)]]
- 변형: [[애플리케이션_보안_태세_관리ASPM]]
- 응용: [[SAST]] · [[DAST]] · [[SCA]] · [[Secret_Management]]
- Adjacent: [[Zero-Trust Architecture]] · [[CI_CD_Pipeline]]
- 응용: [[SAST]] · [[보안_및_시스템_신뢰성_표준|DAST]] · [[SCA_Fundamentals|SCA]] · [[Secret_Management]]
- Adjacent: [[보안_및_시스템_신뢰성_표준|Zero-Trust Architecture]] · [[CI_CD_Pipeline]]
## 🤖 LLM 활용
**언제**: vuln triage, false-positive filter, remediation PR draft, threat-model brainstorm.
@@ -135,9 +135,8 @@ License: MIT
**기본값**: 매 Apache 2.0 (OSS) / 매 proprietary EULA (commercial).
## 🔗 Graph
- 부모: [[Software Licensing]] · [[Legal Compliance]]
- 변형: [[Copyright]] · [[Patent]] · [[Trade Secret]]
- 응용: [[SBOM]] · [[License Audit]] · [[Open Source Compliance]]
- 변형: [[Copyright]]
- 응용: [[SBOM]]
- Adjacent: [[GDPR]] · [[Ensuring Data Privacy]]
## 🤖 LLM 활용
@@ -111,8 +111,8 @@ p.produce('plant.line1.temp', key=part_id, value=msg.SerializeToString())
**기본값**: 매 OPC UA + MQTT Sparkplug B → Kafka → Iceberg.
## 🔗 Graph
- 부모: [[Digital Twins]] · [[Digital-Twin-Technology]]
- 변형: [[IoT]]
- 부모: [[Digital Twins]] · [[Digital Twins|Digital-Twin-Technology]]
- 변형: [[클라우드_인프라_및_IaC_운영_표준|IoT]]
- 응용: [[Engineering Metrics (DORA)]]
- Adjacent: [[Digital Intellectual Property Rights]]
@@ -121,10 +121,9 @@ class FailurePredictor(nn.Module):
**기본값**: 매 start digital shadow → ML 추가 후 twin → bidirectional 마지막.
## 🔗 Graph
- 부모: [[Cyber-Physical Systems]] · [[Industry 4.0]]
- 변형: [[Digital Shadow]] · [[Digital Model]]
- 응용: [[Predictive Maintenance]] · [[Sim-to-Real]] · [[Smart City]]
- Adjacent: [[OPC-UA]] · [[USD (OpenUSD)]] · [[NVIDIA Omniverse]] · [[FMI/FMU]]
- 부모: [[Cyber-Physical Systems]]
- 응용: [[Predictive Maintenance]]
- Adjacent: [[NVIDIA Omniverse]]
## 🤖 LLM 활용
**언제**: IoT/manufacturing/CPS context, sim2real planning, asset lifecycle.
@@ -120,10 +120,9 @@ def dual_system_update(V_reward, V_aversion, r_pos, r_neg, s, s_next, alpha=0.1,
**기본값**: 매 RPE-aware design — but 매 ethics 의 weight (manipulation 의 risk).
## 🔗 Graph
- 부모: [[Reinforcement Learning]] · [[Neuroscience]]
- 변형: [[Serotonin]] · [[Norepinephrine]]
- 부모: [[Reinforcement Learning]]
- 응용: [[Habit Formation]] · [[Game Design]] · [[Recommender Systems]]
- Adjacent: [[TD-Learning]] · [[Curiosity-Driven RL]] · [[Behavioral Economics]]
- Adjacent: [[TD-Learning]] · [[Behavioral Economics]]
## 🤖 LLM 활용
**언제**: 매 product UX 의 retention mechanic 의 audit. 매 dark-pattern 의 detection.
@@ -122,9 +122,9 @@ vkCmdExecuteCommands(primaryCB, N, secondaryCBs.data());
## 🔗 Graph
- 부모: [[GPU Pipeline]] · [[Real-time Rendering]]
- 변형: [[Indirect Draw]] · [[Mesh Shader]] · [[Compute Dispatch]]
- 응용: [[Frustum Culling]] · [[Occlusion Culling]] · [[Geometry Merging]]
- Adjacent: [[Vulkan]] · [[D3D12]] · [[Metal]] · [[WebGPU]]
- 변형: [[Indirect Draw]]
- 응용: [[Frustum Culling]] · [[Geometry Merging]]
- Adjacent: [[Vulkan]] · [[Metal]] · [[WebGPU]]
## 🤖 LLM 활용
**언제**: Renderer architecture, perf budget 분석, profiling 결과 해석.
@@ -173,10 +173,9 @@ RETURN target,
**기본값**: AI tutor (Socratic) + adaptive engine + xAPI tracking + Open Badges credential.
## 🔗 Graph
- 부모: [[Education Technology]] · [[Learning Science]]
- 변형: [[LMS]] · [[LXP]] · [[MOOC]]
- 응용: [[AI Tutor]] · [[Adaptive Learning]] · [[Micro-Credential]]
- Adjacent: [[Knowledge Tracing]] · [[Verifiable Credentials]] · [[xAPI]]
- 부모: [[Education Technology]]
- 변형: [[LMS]]
- 응용: [[Adaptive Learning]]
## 🤖 LLM 활용
**언제**: Socratic tutor, content scaffolding generation, formative feedback.
@@ -140,9 +140,9 @@ sum(rate(cache_hits_total[5m])) /
**기본값**: 매 profile-first, 매 measure both before/after, 매 single-dimension fixation 매 X.
## 🔗 Graph
- 부모: [[Performance Engineering]] · [[Site Reliability Engineering]]
- 변형: [[Latency]] · [[Throughput]] · [[Cost Optimization]]
- 응용: [[Flame_Graphs]] · [[Caching]] · [[Profiling]]
- 부모: [[Site Reliability Engineering]]
- 변형: [[Latency]]
- 응용: [[Flame_Graphs]] · [[Profiling]]
- Adjacent: [[FinOps]] · [[Green Software]]
## 🤖 LLM 활용
@@ -142,8 +142,7 @@ mainWindow.webContents.on('render-process-gone', (event, details) => {
## 🔗 Graph
- 부모: [[V8 Engine]] · [[Electron]]
- 변형: [[V8 Heap Spaces]] · [[Chrome V8 Heap Analysis]]
- 응용: [[Electron Performance]] · [[Multi-Process Architecture]]
- 변형: [[Chrome V8 Heap Analysis]]
- Adjacent: [[Pointer Compression]] · [[V8 Sandbox]] · [[Garbage Collection]]
## 🤖 LLM 활용
@@ -199,9 +199,9 @@ fn get_user(id: UserId) { /* ... */ }
## 🔗 Graph
- 부모: [[Object-Oriented Programming]] · [[Information Hiding]]
- 변형: [[Module System]] · [[Capability-Based Security]]
- 응용: [[API Design]] · [[Library Design]] · [[Refactoring]]
- Adjacent: [[Abstraction]] · [[SOLID]] · [[Design by Contract]]
- 변형: [[Module System]]
- 응용: [[API Design]] · [[Library Design]] · [[Refactoring_Best_Practices|Refactoring]]
- Adjacent: [[Abstraction]] · [[SOLID]]
## 🤖 LLM 활용
**언제**: API surface review, accessor pattern 의 generate, visibility audit.
@@ -131,9 +131,7 @@ restrictions: null # 매 직접 push 매 X — PR-only
## 🔗 Graph
- 부모: [[DevOps]] · [[Site Reliability Engineering]]
- 변형: [[SPACE Framework]] · [[Flow Metrics]]
- 응용: [[Continuous Delivery]] · [[Continuous Integration]]
- Adjacent: [[Engineering OKRs]] · [[Incident Response]]
## 🤖 LLM 활용
**언제**: deploy log → metric extraction, incident root-cause 분류 (deploy 유발 여부).
@@ -131,8 +131,8 @@ await db.consents.insertOne(consent);
**기본값**: 매 minimize + classify + tokenize + consent ledger + DSAR API.
## 🔗 Graph
- 부모: [[Practical-Cryptography]] · [[Symmetric-Encryption]]
- 변형: [[Zero-Trust Architecture]]
- 부모: [[Practical-Cryptography]] · [[보안_및_시스템_신뢰성_표준|Symmetric-Encryption]]
- 변형: [[보안_및_시스템_신뢰성_표준|Zero-Trust Architecture]]
- 응용: [[Anomaly-Detection]] · [[Information-Society]]
- Adjacent: [[Digital Intellectual Property Rights]]
@@ -176,10 +176,9 @@ turbo build --remote-only
**기본값**: 매 TS/JS team 에게 Turborepo 또는 Nx (size dependent).
## 🔗 Graph
- 부모: [[Build Systems]] · [[Version Control]]
- 변형: [[Polyrepo]] · [[Multi-Repo Federation]]
- 응용: [[CI-CD Pipelines]] · [[Code Ownership]]
- Adjacent: [[Bazel]] · [[Nx]] · [[Turborepo]] · [[pnpm Workspaces]]
- 부모: [[Version Control]]
- 응용: [[Code Ownership]]
- Adjacent: [[Bazel]] · [[Nx]] · [[Turborepo]]
## 🤖 LLM 활용
**언제**: refactoring across packages, generating new lib boilerplate (Nx generator), CODEOWNERS automation, dependency graph 분석.
@@ -122,9 +122,9 @@ rg "getBooleanValue\\('old-checkout'" --type ts
## 🔗 Graph
- 부모: [[Continuous Delivery]] · [[Progressive Delivery]]
- 변형: [[Release Toggle]] · [[Experiment Toggle]] · [[Kill Switch]]
- 응용: [[Canary Deployment]] · [[A/B Testing]] · [[Trunk-based Development]]
- Adjacent: [[OpenFeature]] · [[LaunchDarkly]] · [[Unleash]] · [[Statsig]]
- 변형: [[Kill Switch]]
- 응용: [[Trunk-based Development]]
- Adjacent: [[LaunchDarkly]] · [[Unleash]]
## 🤖 LLM 활용
**언제**: Release strategy 설계, incident playbook, experiment platform 평가.
@@ -157,10 +157,10 @@ jobs:
**기본값**: Figma Variables → Style Dictionary → Tailwind/CSS vars + Code Connect.
## 🔗 Graph
- 부모: [[Design System]] · [[Frontend Architecture]]
- 변형: [[Design Tokens]] · [[Theming Strategy]]
- 부모: [[Design System]] · [[Large_Frontend_Projects|Frontend Architecture]]
- 변형: [[Design Tokens]]
- 응용: [[Storybook]] · [[Component Library]]
- Adjacent: [[Tailwind CSS]] · [[Visual Regression]]
- Adjacent: [[CSS_Architecture_and_Styling|Tailwind CSS]] · [[Visual Regression]]
## 🤖 LLM 활용
**언제**: Figma MCP → component spec → React scaffold (props, variants 자동).
+3 -4
View File
@@ -131,10 +131,9 @@ app.post('/figma-webhook', async (req, res) => {
**기본값**: Component + auto-layout + variable. Style 은 매 deprecated.
## 🔗 Graph
- 부모: [[Design Tool]] · [[Collaboration Software]]
- 변형: [[FigJam]] · [[Figma Slides]] · [[Sketch]] · [[Penpot]]
- 응용: [[Design System]] · [[Design Token]] · [[Dev Mode]]
- Adjacent: [[Style Dictionary]] · [[Storybook]] · [[Tokens Studio]]
- 변형: [[FigJam]]
- 응용: [[Design System]] · [[Dev Mode]]
- Adjacent: [[Style Dictionary Pipelines|Style Dictionary]] · [[Storybook]] · [[Tokens Studio]]
## 🤖 LLM 활용
**언제**: Design system architecture, plugin authoring, design-code pipeline.
@@ -149,10 +149,9 @@ go func() { http.ListenAndServe("localhost:6060", nil) }()
**기본값**: 매 production 에 Pyroscope + 매 dev 에 native profiler.
## 🔗 Graph
- 부모: [[Profiling]] · [[Performance Engineering]]
- 변형: [[Icicle Graphs]] · [[Differential Flame Graph]] · [[Off-CPU Flame Graph]]
- 응용: [[Performance Tuning]] · [[Continuous Profiling]] · [[SRE]]
- Adjacent: [[perf]] · [[eBPF]] · [[pprof]] · [[Pyroscope]]
- 부모: [[Profiling]]
- 응용: [[SRE]]
- Adjacent: [[eBPF]]
## 🤖 LLM 활용
**언제**: 매 flame graph 의 hot frame 식별 + optimization 제안, folded text → 자연어 summary, differential interpretation.
@@ -168,8 +168,8 @@ def test_sort_is_ordered(xs):
**기본값**: types everywhere + property-based for parsers + TLA+ for distributed designs + reach for proof assistants only when life/billions on the line.
## 🔗 Graph
- 부모: [[Software_Engineering]] · [[Computer_Science_and_Theory]]
- 변형: [[Type-safe Error Handling Exhaustiveness Checking]] · [[Type Systems]]
- 부모: [[Computer_Science_and_Theory]]
- 변형: [[Type-safe Error Handling Exhaustiveness Checking]] · [[TypeScript 타입 시스템 (TypeScript Type System)|Type Systems]]
- 응용: [[Practical-Cryptography]] · [[SAST]]
- Adjacent: [[Quality-Control]] · [[Test_Automation]]
@@ -172,10 +172,9 @@ struct FrustumCullJob : IJobParallelFor {
**기본값**: 매 modern engine — GPU compute culling + BVH for spatial queries.
## 🔗 Graph
- 부모: [[Visibility Culling]] · [[Real-Time Rendering]]
- 변형: [[Occlusion Culling]] · [[Portal Culling]] · [[Backface Culling]]
- 응용: [[GPU-Driven Rendering]] · [[Nanite]] · [[LOD Systems]]
- Adjacent: [[BVH]] · [[Octree]] · [[Hierarchical Z-Buffer]]
- 부모: [[Real-Time Rendering]]
- 응용: [[GPU-Driven Rendering]] · [[Nanite]]
- Adjacent: [[BVH]] · [[Octree]]
## 🤖 LLM 활용
**언제**: plane extraction code 검토, false-cull bug 디버깅 (e.g., flipped normal), GPU shader skeleton.
@@ -124,9 +124,9 @@ def merge_octree(node):
## 🔗 Graph
- 부모: [[Rendering Optimization]] · [[Draw Call]]
- 변형: [[GPU Instancing]] · [[Mesh Shader]] · [[Indirect Draw]]
- 변형: [[GPU Instancing]] · [[Indirect Draw]]
- 응용: [[Texture Atlas]] · [[Octree]] · [[BVH]]
- Adjacent: [[Frustum Culling]] · [[LOD]] · [[Vertex Buffer]]
- Adjacent: [[Frustum Culling]] · [[LOD]]
## 🤖 LLM 활용
**언제**: Mobile / web renderer 최적화, asset pipeline 설계.
@@ -162,10 +162,9 @@ def evaluate(coords, ground_truth_rtt):
**기본값**: 매 modern usage — Vivaldi w/ height (4D + height).
## 🔗 Graph
- 부모: [[Network Latency]] · [[Distributed Systems]]
- 변형: [[Vivaldi]] · [[Meridian]] · [[King Latency Estimation]]
- 응용: [[CDN]] · [[DHT]] · [[Overlay Networks]]
- Adjacent: [[Anycast]] · [[BGP]] · [[Network Tomography]]
- 부모: [[Distributed Systems]]
- 변형: [[Vivaldi]]
- 응용: [[CDN]]
## 🤖 LLM 활용
**언제**: 매 algorithm 설명, 매 stress function tuning 제안, embedding dimension 선택 기준.
@@ -142,10 +142,7 @@ for pid, sols in buckets.items():
**기본값**: 매 LLM eval — APPS/HumanEval 매 main + GCJ 매 supplementary.
## 🔗 Graph
- 부모: [[Code Datasets]] · [[Code LLM Benchmarks]]
- 변형: [[CodeNet]] · [[APPS Dataset]] · [[HumanEval]]
- 응용: [[Code Clone Detection]] · [[Code Translation]] · [[LLM Coding Eval]]
- Adjacent: [[Codeforces Dataset]] · [[LeetCode Solutions Corpus]] · [[Decontamination]]
- 변형: [[HumanEval]]
## 🤖 LLM 활용
**언제**: 매 dataset filter pipeline 작성, contamination 검사 design, problem grouping logic.
@@ -24,7 +24,6 @@ github_commit: pending
- Canonical 문서가 매 hardware (HMD, controller, treadmill, haptic suit), 매 game design (Beat Saber, Supernatural, FitXR), 매 health outcome 측정을 통합 관리.
## 🔗 Graph
- 부모: [[VR Exergame]] (canonical)
## 🕓 변경 이력
| 날짜 | 변경 |
@@ -130,9 +130,8 @@ function isolatedPrecisionAvailable() {
**기본값**: Duration 측정엔 매 monotonic. 매 Date 는 user-facing timestamp 만.
## 🔗 Graph
- 부모: [[Web Performance APIs]] · [[Time Measurement]]
- 변형: [[Performance Timeline]] · [[Long Tasks API]] · [[Event Timing API]]
- 응용: [[Core Web Vitals]] · [[User Timing]] · [[Animation Frame]]
- 변형: [[Long Tasks]]
- 응용: [[Core Web Vitals Optimization (INP, LCP 개선)|Core Web Vitals]]
- Adjacent: [[Spectre]] · [[Cross-Origin Isolation]] · [[SharedArrayBuffer]]
## 🤖 LLM 활용
+2 -3
View File
@@ -160,9 +160,8 @@ done
**기본값**: 매 TS/JS team — Husky v9 + lint-staged + commitlint.
## 🔗 Graph
- 부모: [[Git Hooks]] · [[DevEx]]
- 변형: [[pre-commit]] · [[lefthook]] · [[simple-git-hooks]]
- 응용: [[Lint-Staged]] · [[Commitlint]] · [[Conventional Commits]]
- 변형: [[pre-commit]] · [[lefthook]]
- 응용: [[Lint-Staged]] · [[Conventional Commits]]
- Adjacent: [[ESLint]] · [[Prettier]] · [[Biome]]
## 🤖 LLM 활용
@@ -2,159 +2,26 @@
id: wiki-2026-0508-ifcjs-fragment
title: IFCjs (Fragment)
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [IFC.js, ThatOpen Fragment, web-ifc, BIM web viewer]
duplicate_of: none
status: duplicate
canonical_id: wiki-2026-0508-ifcjs
duplicate_of: "[[IFCjs]]"
aliases: []
source_trust_level: A
confidence_score: 0.85
verification_status: applied
tags: [bim, ifc, threejs, web, fragment]
raw_sources: []
last_reinforced: 2026-05-10
confidence_score: 0.9
verification_status: redirected
tags: [duplicate]
last_reinforced: 2026-05-20
github_commit: pending
tech_stack:
language: TypeScript
framework: Three.js, web-ifc, ThatOpen Components
---
# IFCjs (Fragment)
## 매 한 줄
> **"매 IFC BIM model 의 web-native streaming 형식"**. 매 2021 IFC.js (Antonio Gonzalez Viegas) → 매 2024 ThatOpen Components 로 rebrand 된 toolchain. 매 Fragment format 매 IFC 의 매 GPU-friendly binary representation — 매 1GB IFC 가 매 50MB Fragment 로 압축, 매 browser 의 매 instant load.
## 매 핵심
### 매 IFC 의 limitation
- 매 STEP-based ASCII format — 매 100MB+ project 매 routine.
- 매 spatial hierarchy + property + geometry 매 모두 nested — 매 partial load 의 X.
- 매 Three.js 의 직접 render 의 X — 매 tessellation needed.
### 매 Fragment 의 solution
- 매 web-ifc (WASM) 가 매 IFC parse + tessellate.
- 매 결과를 매 Fragment binary (FlatBuffers-based) 로 serialize.
- 매 InstancedMesh 단위 grouping → 매 draw call 격감.
- 매 property data 매 별도 SQLite-WASM file → 매 lazy query.
### 매 응용
1. 건축 설계 review web tool.
2. Construction 현장 mobile BIM viewer.
3. Facility management dashboard.
4. Clash detection web service.
## 💻 패턴
### 1. ThatOpen Components 초기화 (2026)
```ts
import * as OBC from "@thatopen/components";
import * as OBCF from "@thatopen/components-front";
const components = new OBC.Components();
const worlds = components.get(OBC.Worlds);
const world = worlds.create<
OBC.SimpleScene, OBC.SimpleCamera, OBCF.PostproductionRenderer
>();
world.scene = new OBC.SimpleScene(components);
world.renderer = new OBCF.PostproductionRenderer(components, container);
world.camera = new OBC.SimpleCamera(components);
components.init();
```
### 2. IFC → Fragment 변환
```ts
const ifcLoader = components.get(OBC.IfcLoader);
await ifcLoader.setup();
const file = await fetch("model.ifc");
const buffer = new Uint8Array(await file.arrayBuffer());
const model = await ifcLoader.load(buffer);
world.scene.three.add(model);
```
### 3. 미리 만든 Fragment load (instant)
```ts
const fragments = components.get(OBC.FragmentsManager);
const data = await fetch("model.frag").then(r => r.arrayBuffer());
const group = fragments.load(new Uint8Array(data));
world.scene.three.add(group);
```
### 4. Property query (lazy)
```ts
const indexer = components.get(OBC.IfcRelationsIndexer);
await indexer.process(model);
// Get all walls
const walls = await indexer.getEntitiesByType(model, "IFCWALL");
for (const expressID of walls) {
const props = await model.getProperties(expressID);
console.log(props.Name.value);
}
```
### 5. Highlight on click
```ts
const highlighter = components.get(OBCF.Highlighter);
highlighter.setup({ world });
highlighter.events.select.onHighlight.add((selection) => {
console.log("Selected fragments:", selection);
});
```
### 6. Section plane (clipper)
```ts
const clipper = components.get(OBC.Clipper);
clipper.enabled = true;
container.addEventListener("dblclick", () => clipper.create(world));
```
### 7. Streaming (large model)
```ts
const streamer = components.get(OBCF.IfcStreamer);
streamer.url = "https://cdn.example.com/fragments/";
streamer.world = world;
await streamer.load(
await fetch("model-streamed.json").then(r => r.json()),
true // coordinate to origin
);
```
## 매 결정 기준
| 상황 | Approach |
|---|---|
| Small model (< 50MB IFC) | 직접 IfcLoader.load() |
| Medium (50-500MB) | 사전 변환된 .frag file |
| Large (500MB+) | IfcStreamer (tile-based LOD) |
| Property-heavy query | IfcRelationsIndexer + cached |
| Mobile viewer | Fragment + simplified geometry |
**기본값**: ThatOpen Components 2026 + Fragment 사전 변환 + property cache.
> **이 문서는 [[IFCjs]] 의 중복본입니다.** Canonical 문서로 redirect.
## 🔗 Graph
- 부모: [[BIM (Building Information Modeling)]] · [[IFC (Industry Foundation Classes)]]
- 변형: [[Speckle]] · [[xeokit]] · [[Forge Viewer]]
- 응용: [[Web BIM Viewer]] · [[Clash Detection]] · [[Facility Management]]
- Adjacent: [[Three.js]] · [[WASM]] · [[FlatBuffers]]
- 부모: [[IFCjs]] (canonical)
## 🤖 LLM 활용
**언제**: 매 web-based BIM viewer 매 build. 매 IFC model 매 browser 의 instant load 가 필요. 매 open-source 매 prefer (Forge 의 X).
**언제 X**: 매 desktop-only workflow (Revit/Navisworks 매 충분). 매 < 10MB model (overkill). 매 photorealistic render (use Unreal/Unity).
## ❌ 안티패턴
- **IFC 매 매번 parse**: 매 100MB IFC 매 user 마다 30초 wait. 매 backend 사전 변환 필수.
- **Property 매 eager load**: 매 모든 property 매 memory load → OOM. 매 lazy + query-on-demand.
- **InstancedMesh 무시**: 매 IFC 의 매 1000+ identical column 매 매 separate Mesh → 매 draw call 폭발.
- **GlobalId 의 X**: 매 Fragment internal ID 매 IFC GlobalId 와 매 different — 매 cross-system mapping 매 GlobalId 사용.
## 🧪 검증 / 중복
- Verified (ThatOpen/engine_components GitHub 2026-05, web-ifc 0.0.66+).
- 신뢰도 A (rapidly-evolving project — 매 minor API drift 가능).
## 🕓 Changelog
## 🕓 변경 이력
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — ThatOpen Components 2026 API + Fragment streaming |
| 2026-05-20 | 중복 병합 — canonical 문서로 redirect |
+2 -4
View File
@@ -163,10 +163,8 @@ function findClashes(meshes: THREE.Mesh[]) {
**기본값**: 매 modern AEC web app — ThatOpen Components + fragments.
## 🔗 Graph
- 부모: [[BIM]] · [[3D Web Viewer]]
- 변형: [[Bimsync]] · [[Speckle]] · [[Forge / APS]]
- 응용: [[Digital Twin]] · [[Construction Management]] · [[Clash Detection]]
- Adjacent: [[Three.js]] · [[glTF]] · [[USD]] · [[OpenBIM]]
- 응용: [[Digital Twin]]
- Adjacent: [[Three.js]]
## 🤖 LLM 활용
**언제**: IFC entity 의 mapping 설명 (IFC → glTF), property set 매 자연어 query, 매 UI panel scaffold.
@@ -157,10 +157,9 @@ console.log(`cache hit: ${hits}/${tasks.length} = ${(hits/tasks.length*100).toFi
**기본값**: 매 Turborepo + remote cache (Vercel or self-hosted).
## 🔗 Graph
- 부모: [[Build Systems]] · [[Continuous Integration]]
- 변형: [[Hot Module Replacement]] · [[Watch Mode]]
- 응용: [[Monorepo Strategy]] · [[CI_CD_Pipeline]]
- Adjacent: [[Tree Shaking]] · [[Dependency Graph]]
- 부모: [[Continuous Integration]]
- 응용: [[CI_CD_Pipeline]]
- Adjacent: [[Dependency Graph]]
## 🤖 LLM 활용
**언제**: 매 turbo.json/nx.json 의 generation, cache key tuning 추천.
@@ -131,8 +131,8 @@ if p < 0.01: print("매 regression detected — rollback")
## 🔗 Graph
- 부모: [[Statistics & Data Analysis]] · [[Probability Theory]]
- 변형: [[Bayesian Inference]] · [[Bootstrap]] · [[Permutation Test]]
- 응용: [[A/B Testing]] · [[SRE]] · [[Anomaly-Detection]]
- 변형: [[Bayesian_Inference|Bayesian Inference]]
- 응용: [[SRE]] · [[Anomaly-Detection]]
- Adjacent: [[Type 1 vs Type 2 Errors]] · [[Power Analysis]]
## 🤖 LLM 활용
@@ -128,10 +128,7 @@ def cognitive_task_time_with_llm(baseline_hours, task_type):
**기본값**: 매 multi-lens — 매 single theory 의 over-generalize 의 risk.
## 🔗 Graph
- 부모: [[Sociology]] · [[Economics]]
- 변형: [[Network Society]] · [[Surveillance Capitalism]] · [[Attention Economy]]
- 응용: [[Platform Economy]] · [[Algorithmic Curation]] · [[AI Labor Displacement]]
- Adjacent: [[Digital Divide]] · [[Misinformation]]
- 변형: [[Network Society]]
## 🤖 LLM 활용
**언제**: 매 frame analysis, multi-perspective synthesis. 매 tech-policy intersection 의 explanation.
@@ -135,7 +135,7 @@ mat.onBeforeCompile = (shader) => {
- 부모: [[InstancedMesh]] · [[three.js]]
- 변형: [[BatchedMesh]] · [[three-mesh-bvh]]
- 응용: [[Frustum Culling]] · [[Draw Call]]
- Adjacent: [[BVH]] · [[Raycaster]]
- Adjacent: [[BVH]] · [[Raycasting|Raycaster]]
## 🤖 LLM 활용
**언제**: 매 large-scale 동일 mesh scene — vegetation, crowd, debris.
@@ -158,9 +158,9 @@ const premortem = `
**기본값**: constructor DI + premortem 매 architecture review 시.
## 🔗 Graph
- 부모: [[Mental Models]] · [[Software Design Principles]]
- 변형: [[Dependency Injection]] · [[Inversion of Control]] · [[Premortem]]
- 응용: [[NestJS]] · [[Result Type]] · [[Plugin Architecture]]
- 부모: [[Mental_Models|Mental Models]] · [[Software Design Principles]]
- 변형: [[Dependency Injection]] · [[Inversion of Control]]
- 응용: [[NestJS]] · [[Result Type]]
- Adjacent: [[Encapsulation-via-Access-Modifiers]] · [[Testability]]
## 🤖 LLM 활용
@@ -145,9 +145,7 @@ Sentry.init({
**기본값**: 매 minimal repro → bisect → regression test 의 add.
## 🔗 Graph
- 부모: [[Debugger_Techniques]] · [[Runtime Errors]]
- 변형: [[TypeError]] · [[SyntaxError]]
- 응용: [[Tree Shaking]] · [[Circular Dependency]]
- 부모: [[Debugger_Techniques]]
- Adjacent: [[Source Maps]] · [[Sentry]]
## 🤖 LLM 활용
@@ -121,8 +121,8 @@ cjxl in.png out.jxl -d 1.0 -e 7
**기본값**: 매 archival lossless transcode + web 의 multi-format negotiation.
## 🔗 Graph
- 부모: [[Image Compression]] · [[Web Performance]]
- 변형: [[AVIF]] · [[WebP]] · [[HEIC]]
- 부모: [[Web Performance]]
- 변형: [[AVIF]]
- 응용: [[CDN]] · [[Page Experience Algorithm]]
- Adjacent: [[Tree Shaking (번들 크기 최적화)]]
+2 -2
View File
@@ -109,8 +109,8 @@ cpg.runScript("exportCpg.sc", Map("outFile" -> "/tmp/cpg.bin.zip"))
## 🔗 Graph
- 부모: [[SAST]] · [[Code_Property_Graph]]
- 변형: [[CodeQL]] · [[Semgrep]]
- 응용: [[Vulnerability_Detection]] · [[OWASP Top 10]]
- Adjacent: [[DAST]] · [[SCA]]
- 응용: [[보안_및_시스템_신뢰성_표준|OWASP Top 10]]
- Adjacent: [[보안_및_시스템_신뢰성_표준|DAST]] · [[SCA_Fundamentals|SCA]]
## 🤖 LLM 활용
**언제**: 매 cross-function taint trace 필요 — string-grep 매 부족할 때.
@@ -128,7 +128,7 @@ END AS segment
**기본값**: 매 strict MECE 의 시도 → 매 fuzzy 면 catch-all bucket 추가.
## 🔗 Graph
- 부모: [[Pyramid Principle]] · [[Structured Thinking]]
- 부모: [[Pyramid Principle]]
- 변형: [[Issue Tree]] · [[Root Cause Analysis]]
- 응용: [[BLUF (Bottom Line Up Front)]] · [[Type-safe Error Handling Exhaustiveness Checking]]
- Adjacent: [[Cognitive_Load]]
@@ -133,9 +133,9 @@ behaviors:
**기본값**: 매 imphash + YARA 의 quick pass → 매 sandbox detonate → 매 manual reverse.
## 🔗 Graph
- 부모: [[Security]] · [[Reverse Engineering]]
- 변형: [[Static Analysis]] · [[Dynamic Analysis]]
- 응용: [[Anomaly-Detection]] · [[Threat Intelligence]]
- 부모: [[Security]]
- 변형: [[Static Analysis]]
- 응용: [[Anomaly-Detection]]
- Adjacent: [[SAST]] · [[Code Obfuscation]]
## 🤖 LLM 활용
@@ -147,9 +147,9 @@ async function annotateImages() {
**기본값**: SIFT + tooling-augmented (C2PA, fact-check API).
## 🔗 Graph
- 부모: [[Information Literacy]] · [[Critical Thinking]]
- 변형: [[Source Evaluation]] · [[Fact Checking]]
- 응용: [[Deepfake-Detection]] · [[Misinformation]]
- 부모: [[Information Literacy]]
- 변형: [[Source Evaluation]]
- 응용: [[Deepfake-Detection]]
- Adjacent: [[Conversational-Maxims]] · [[Procedural-Rhetoric]]
## 🤖 LLM 활용
@@ -132,7 +132,7 @@ let v = arena.alloc(vec![1, 2, 3]);
**기본값**: 매 language idiom 따름 — 매 C++ RAII, 매 JS GC, 매 Rust ownership.
## 🔗 Graph
- 부모: [[Systems Programming]] · [[Performance]]
- 부모: [[Performance]]
- 변형: [[Garbage Collection]] · [[ARC]] · [[Ownership]]
- 응용: [[V8 Engine Heap Management]] · [[Major GC]]
- Adjacent: [[가비지 컬렉터(Garbage Collector)]] · [[힙 메모리(Heap Memory)]]
@@ -135,10 +135,8 @@ type PharosCoord struct {
**기본값**: Vivaldi 8-dim + height (Serf-compatible).
## 🔗 Graph
- 부모: [[Distributed Systems]] · [[Network Topology]]
- 변형: [[Pharos]] · [[HTRAE]] · [[Newton NCS]] · [[GNP (Global Network Positioning)]]
- 응용: [[Service Mesh]] · [[CDN Edge Selection]] · [[P2P Overlay]]
- Adjacent: [[Gossip Protocol]] · [[SWIM]] · [[Anycast]]
- 부모: [[Distributed Systems]]
- 응용: [[Service Mesh]]
## 🤖 LLM 활용
**언제**: 매 100+ node mesh 매 latency-aware routing/placement 가 필요. 매 RTT measurement 의 O(N²) 폭발 회피.
@@ -141,10 +141,10 @@ Console.WriteLine($"Gen2: {GC.CollectionCount(2)}");
**기본값**: 매 V8 default New Space + 매 hot path 의 object pool 사용.
## 🔗 Graph
- 부모: [[Garbage Collection]] · [[Generational GC]]
- 변형: [[Old Space]] · [[Mark-Sweep-Compact]] · [[Eden Space]] · [[Survivor Space]]
- 응용: [[V8 GC]] · [[HotSpot G1]] · [[ZGC]] · [[.NET CLR GC]]
- Adjacent: [[Cheney's Algorithm]] · [[Tenuring]] · [[Allocation Site]] · [[Object Pool]]
- 부모: [[Garbage Collection]]
- 변형: [[Old_Space|Old Space]] · [[Mark-Sweep-Compact]]
- 응용: [[V8 GC]]
- Adjacent: [[Cheney's Algorithm]] · [[Object Pool]]
## 🤖 LLM 활용
**언제**: 매 GC pause 매 SLO 위협. 매 allocation profiling 매 hot path 식별. 매 V8 / JVM heap behavior 의 understanding.
@@ -147,9 +147,7 @@ logging.info(f"login session reused, action={action}")
**기본값**: 매 personal use — Playwright state-file pattern. 매 enterprise — official API 신청 + 대기.
## 🔗 Graph
- 부모: [[OAuth]] · [[Browser Automation]]
- 변형: [[Selenium]] · [[Puppeteer]]
- 응용: [[Notebook Automation]]
- 부모: [[OAuth]]
- Adjacent: [[Secret_Management]]
## 🤖 LLM 활용
+2 -3
View File
@@ -128,9 +128,8 @@ heap.ForceGarbageCollectionSlow(
## 🔗 Graph
- 부모: [[Garbage Collection]] · [[Tracing GC]]
- 변형: [[Boehm GC]] · [[V8 GC]] · [[Mark-Sweep-Compact]]
- 응용: [[Blink (Chromium)]] · [[V8 Embedder API]] · [[Dart VM]]
- Adjacent: [[Tri-color Marking]] · [[Conservative Stack Scanning]] · [[Reference Counting]]
- 변형: [[V8 GC]] · [[Mark-Sweep-Compact]]
- Adjacent: [[Tri-color Marking]] · [[Reference Counting]]
## 🤖 LLM 활용
**언제**: 매 C++ project 에서 매 cyclic object graph 매 unavoidable. 매 V8 embedder 매 native object 와 JS object 의 unified GC.
@@ -156,10 +156,8 @@ with open("encrypted.pdf", "wb") as f:
**기본값**: 매 ingest → Unstructured (layout-aware), 매 generate → Playwright (HTML).
## 🔗 Graph
- 부모: [[Document Format]] · [[ISO Standards]]
- 변형: [[PDF/A]] · [[PDF/X]] · [[XFA]]
- 응용: [[RAG Ingestion]] · [[Document AI]] · [[Digital Signature]]
- Adjacent: [[PostScript]] · [[OCR]] · [[Layout Analysis]]
- 응용: [[Document AI]]
- Adjacent: [[OCR]]
## 🤖 LLM 활용
**언제**: 매 form-filled PDF 의 question. 매 extraction tool 의 selection. 매 schema mapping.
@@ -142,10 +142,10 @@ WHERE country_code = 'kr'
**기본값**: web-vitals.js + Lighthouse CI + CrUX field monitoring 의 매 weekly review.
## 🔗 Graph
- 부모: [[SEO]] · [[Web Performance]] · [[Google Search Ranking]]
- 변형: [[Lighthouse]] · [[Speed Index]] · [[TTFB (Time to First Byte)]]
- 응용: [[Core Web Vitals]] · [[CrUX (Chrome UX Report)]] · [[INP (Interaction to Next Paint)]]
- Adjacent: [[Real User Monitoring]] · [[Lighthouse CI]] · [[PageSpeed Insights]]
- 부모: [[SEO]] · [[Web Performance]]
- 변형: [[Lighthouse]]
- 응용: [[Core Web Vitals Optimization (INP, LCP 개선)|Core Web Vitals]]
- Adjacent: [[Lighthouse CI]] · [[PageSpeed Insights]]
## 🤖 LLM 활용
**언제**: 매 SEO-driven traffic 매 critical (e-commerce, news, blog). 매 ranking 매 stagnant + 매 lab metric 양호 한 경우.
@@ -173,10 +173,10 @@ type Email = z.infer<typeof EmailString>;
**기본값**: 매 boundary 의 매 Zod (or Effect Schema) parse + 매 internal 의 매 inferred type 으로 trust.
## 🔗 Graph
- 부모: [[Type-Driven Design]] · [[Domain Modeling]]
- 변형: [[Refinement Type]] · [[Dependent Type]] · [[Smart Constructor]]
- 응용: [[Zod]] · [[Effect Schema]] · [[Branded Type]] · [[ADT (Algebraic Data Type)]]
- Adjacent: [[Validation]] · [[Type Narrowing]] · [[Make Illegal States Unrepresentable]]
- 부모: [[Type-Driven Design]]
- 변형: [[Refinement Type]] · [[Smart Constructor]]
- 응용: [[Zod]] · [[Effect Schema]] · [[Branded Type]]
- Adjacent: [[Validation]] · [[Type Narrowing]]
## 🤖 LLM 활용
**언제**: 매 API server / public library 의 매 input validation. 매 ID mix-up bug 매 routine 한 codebase. 매 domain rule 매 type-encode 가능 한 경우.
@@ -178,10 +178,10 @@ with KeyEncapsulation("Kyber768") as kem:
**기본값**: libsodium + Argon2id + Ed25519 + ChaCha20-Poly1305.
## 🔗 Graph
- 부모: [[Cryptography]] · [[Security]]
- 변형: [[Symmetric-Encryption]] · [[Post-Quantum-Cryptography]]
- 응용: [[Secret_Management]] · [[Zero-Trust Architecture]]
- Adjacent: [[OWASP Top 10]] · [[Practical-Cryptography]]
- 부모: [[Practical-Cryptography|Cryptography]] · [[Security]]
- 변형: [[보안_및_시스템_신뢰성_표준|Symmetric-Encryption]]
- 응용: [[Secret_Management]] · [[보안_및_시스템_신뢰성_표준|Zero-Trust Architecture]]
- Adjacent: [[보안_및_시스템_신뢰성_표준|OWASP Top 10]] · [[Practical-Cryptography]]
## 🤖 LLM 활용
**언제**: explain primitive choice, audit crypto code for misuse, suggest migration paths.
@@ -130,10 +130,10 @@ const formatted = await prettier.format(sourceCode, {
**기본값**: `singleQuote: true`, `trailingComma: "all"`, `printWidth: 100`, format-on-save + pre-commit hook.
## 🔗 Graph
- 부모: [[Code Formatting]] · [[Developer Tooling]]
- 변형: [[ESLint]] · [[Biome]] · [[dprint]]
- 응용: [[Pre-commit Hooks]] · [[lint-staged]] · [[CI Pipeline]]
- Adjacent: [[AST]] · [[EditorConfig]] · [[TypeScript]]
- 부모: [[Code Formatting]]
- 변형: [[ESLint]] · [[Biome]]
- 응용: [[153_pre-commit과_품질_게이트|Pre-commit Hooks]] · [[lint-staged]]
- Adjacent: [[AST]] · [[TypeScript]]
## 🤖 LLM 활용
**언제**: JS/TS/JSON/MD/YAML/CSS — 매 multi-language project 의 unified formatting.
@@ -132,8 +132,8 @@ Anti-game: every kill ages your character +1 year, game ends at 100
**기본값**: identify the felt experience the player should have, design mechanics that produce it, then verify via playtest.
## 🔗 Graph
- 부모: [[Game-Design]] · [[Rhetoric]]
- 변형: [[Serious-Games]] · [[Persuasive-Games]]
- 부모: [[Game-Design]]
- 변형: [[Persuasive-Games]]
- 응용: [[Beat Saber 엑서게임 연구(Beat Saber Exergaming Study)]] · [[Edtech-Industry-Trends]]
- Adjacent: [[Media-Literacy]] · [[Information-Society]]
@@ -172,10 +172,10 @@ spec:
**기본값**: 80% line coverage, mutation score >70%, property-based for parsers/serializers.
## 🔗 Graph
- 부모: [[Software_Engineering]] · [[Test_Automation]]
- 변형: [[CI_CD_Pipeline]] · [[Test_Automation_Mastery]]
- 부모: [[Test_Automation]]
- 변형: [[CI_CD_Pipeline]] · [[Test_Automation|Test_Automation_Mastery]]
- 응용: [[Engineering Metrics (DORA)]] · [[Automated Quality & Review]]
- Adjacent: [[Continuous_Integration]] · [[Husky]]
- Adjacent: [[Continuous Integration (CI)|Continuous_Integration]] · [[Husky]]
## 🤖 LLM 활용
**언제**: generate edge cases, suggest mutation-resistant assertions, identify untested branches.
@@ -25,7 +25,7 @@ github_commit: pending
## 🔗 Graph
- 부모: [[Raycasting]] (canonical)
- 관련: [[Three.js]] · [[BVH (Bounding Volume Hierarchy)]] · [[Mouse Picking]]
- 관련: [[Three.js]]
## 🕓 변경 이력
| 날짜 | 변경 |
@@ -171,9 +171,8 @@ fn cs_raycast(@builtin(global_invocation_id) id: vec3u) {
## 🔗 Graph
- 부모: [[Computational Geometry]] · [[Computer Graphics]]
- 변형: [[Ray Tracing]] · [[Path Tracing]] · [[Cone Tracing]]
- 응용: [[Mouse Picking]] · [[AR Hit Test]] · [[Collision Detection]] · [[Audio Occlusion]]
- Adjacent: [[BVH (Bounding Volume Hierarchy)]] · [[KD-Tree]] · [[Möller-Trumbore]] · [[DDA Algorithm]]
- 응용: [[Collision Detection]]
- Adjacent: [[KD-Tree]]
## 🤖 LLM 활용
**언제**: 매 3D scene 매 user input mapping (click/touch/AR). 매 line-of-sight / occlusion query. 매 sweep collision 1-shot.
@@ -142,10 +142,9 @@ export default async (req: Request) => {
**기본값**: hybrid sync+async + IMU/wearable RPM, FHIR-backed.
## 🔗 Graph
- 부모: [[Digital Therapeutics]] · [[Telehealth]]
- 변형: [[VR Exergaming]] · [[Pose Estimation]]
- 응용: [[Stroke Recovery]] · [[Post-op Orthopedics]]
- Adjacent: [[HIPAA]] · [[FHIR]] · [[WebRTC]]
- 변형: [[Pose Estimation]]
- 응용: [[Stroke Recovery]]
- Adjacent: [[WebRTC]]
## 🤖 LLM 활용
**언제**: exercise plan generation, session note summarization, patient-facing Q&A (with guardrails).
+4 -4
View File
@@ -120,10 +120,10 @@ const result = eval(safeMath); // ok
**기본값**: Semgrep (PR gate, p/owasp-top-ten) + CodeQL (nightly, scheduled).
## 🔗 Graph
- 부모: [[DevSecOps]] · [[Application Security]]
- 변형: [[DAST]] · [[IAST]] · [[SCA]]
- 응용: [[OWASP Top 10]] · [[Secure SDLC]]
- Adjacent: [[CodeQL]] · [[Semgrep]] · [[Snyk]]
- 부모: [[CI_CD 파이프라인 및 IDE 통합 보안|DevSecOps]] · [[Application Security]]
- 변형: [[보안_및_시스템_신뢰성_표준|DAST]] · [[IAST]] · [[SCA_Fundamentals|SCA]]
- 응용: [[보안_및_시스템_신뢰성_표준|OWASP Top 10]] · [[Secure SDLC]]
- Adjacent: [[CodeQL]] · [[Semgrep]]
## 🤖 LLM 활용
**언제**: triaging findings, generating fix PRs (Copilot Autofix style), writing custom rules from natural language.
+12 -138
View File
@@ -2,152 +2,26 @@
id: wiki-2026-0508-sca
title: SCA
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [Software Composition Analysis, dependency scanning, OSS vulnerability scanning]
duplicate_of: none
status: duplicate
canonical_id: wiki-2026-0508-sca-fundamentals
duplicate_of: "[[SCA_Fundamentals]]"
aliases: []
source_trust_level: A
confidence_score: 0.95
verification_status: applied
tags: [security, sca, dependencies, sbom, supply-chain]
raw_sources: []
last_reinforced: 2026-05-10
confidence_score: 0.9
verification_status: redirected
tags: [duplicate]
last_reinforced: 2026-05-20
github_commit: pending
tech_stack:
language: multi
framework: snyk-dependabot-renovate-osv
---
# SCA
## 매 한 줄
> **"매 your code 의 1% 의 yours — 매 99% 의 dependencies 의"**. SCA (Software Composition Analysis) 의 third-party / OSS dependencies 의 scanning 의 known CVEs, license issues, malicious packages 의 detecting 의. 2026 의 SBOM (CycloneDX/SPDX) 의 mandatory 의 — 매 EU CRA, US EO 14028 의 driving.
## 매 핵심
### 매 SCA 의 stack
- **manifest scan**: package-lock.json, Cargo.lock, go.sum 의 → CVE DB lookup.
- **OSV.dev** (Google): 매 unified vuln DB across ecosystems.
- **GitHub Advisory DB**: 매 npm-aware, 매 Dependabot 의 backbone.
- **Snyk DB**: commercial, 매 deeper exploit metadata.
### 매 SBOM 의 formats
- **CycloneDX** (OWASP): JSON/XML, 매 vuln-friendly.
- **SPDX** (Linux Foundation): license-friendly.
- **2026 default**: CycloneDX 1.5+ JSON.
### 매 응용
1. PR gate — 매 new high CVE 의 introduce 의 block.
2. SBOM 의 release artifact 의 attached 의 (sigstore signed).
3. Renovate/Dependabot 의 weekly bump PRs.
## 💻 패턴
### Dependabot config
```yaml
version: 2
updates:
- package-ecosystem: npm
directory: /
schedule: { interval: weekly }
groups:
minor-and-patch:
update-types: [minor, patch]
open-pull-requests-limit: 10
- package-ecosystem: github-actions
directory: /
schedule: { interval: monthly }
```
### Renovate 의 group + auto-merge
```json5
{
extends: ['config:base', ':semanticCommits'],
packageRules: [
{
matchUpdateTypes: ['patch', 'minor'],
matchCurrentVersion: '!/^0/',
automerge: true,
automergeType: 'pr',
platformAutomerge: true,
},
{ matchPackagePatterns: ['^@types/'], groupName: 'types' },
],
vulnerabilityAlerts: { enabled: true, labels: ['security'] },
}
```
### CycloneDX SBOM 의 generate (npm)
```bash
npx @cyclonedx/cyclonedx-npm --output-format json --output-file sbom.json
cosign sign-blob --yes sbom.json --output-signature sbom.sig
```
### OSV-Scanner (Go)
```yaml
name: OSV
on: [pull_request]
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: google/osv-scanner-action@v1
with:
scan-args: |-
--lockfile=package-lock.json
--lockfile=go.sum
--format=sarif
--output=osv.sarif
- uses: github/codeql-action/upload-sarif@v3
with: { sarif_file: osv.sarif }
```
### License gate
```bash
npx license-checker --production --excludePackages="$(cat allowed.txt)" \
--failOn 'GPL-3.0;AGPL-3.0' --json > licenses.json
```
### Malicious package 의 detect (Socket-style)
```yaml
- name: Socket Security
uses: SocketDev/socket-security-action@v1
with: { api-token: ${{ secrets.SOCKET_TOKEN }} }
```
## 매 결정 기준
| 상황 | Tool |
|---|---|
| GitHub repo, 매 free | Dependabot + OSV-Scanner |
| polyrepo enterprise | Snyk + Renovate |
| supply-chain risk (typosquats) | Socket + Snyk |
| compliance (FedRAMP, EU CRA) | CycloneDX SBOM + cosign sign |
**기본값**: Renovate + OSV-Scanner + CycloneDX SBOM (signed).
> **이 문서는 [[SCA_Fundamentals]] 의 중복본입니다.** Canonical 문서로 redirect.
## 🔗 Graph
- 부모: [[DevSecOps]] · [[Supply Chain Security]]
- 변형: [[SAST]] · [[DAST]] · [[Container Scanning]]
- 응용: [[SBOM]] · [[Sigstore]] · [[SLSA]]
- Adjacent: [[Dependabot]] · [[Renovate]] · [[Snyk]]
- 부모: [[SCA_Fundamentals]] (canonical)
## 🤖 LLM 활용
**언제**: vuln triage (exploitability scoring), changelog summarization for upgrades, breaking-change detection in PRs.
**언제 X**: auto-merging high-CVE patches 없이 의 review.
## ❌ 안티패턴
- **Pin everything forever**: 매 stale deps 의 더 vulnerable.
- **Auto-merge majors**: 매 breaking change 의 prod 의 escape.
- **No SBOM**: 매 incident response 의 grep 의 시작 — 매 too late.
- **Scan only on release**: 매 dev branch 의 weeks of exposure.
## 🧪 검증 / 중복
- Verified (OSV.dev docs, CycloneDX 1.5 spec, GitHub Dependabot 2026, Renovate docs).
- 신뢰도 A.
## 🕓 Changelog
## 🕓 변경 이력
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — modern SCA + SBOM patterns |
| 2026-05-20 | 중복 병합 — canonical 문서로 redirect |
+3 -3
View File
@@ -130,9 +130,9 @@ type Toil = { repetitive: boolean; manual: boolean; automatable: boolean; ts: Da
## 🔗 Graph
- 부모: [[DevOps]] · [[Production Engineering]]
- 변형: [[Platform Engineering]] · [[DevSecOps]]
- 응용: [[Observability]] · [[Incident Response]] · [[Chaos Engineering]]
- Adjacent: [[Prometheus]] · [[OpenTelemetry]] · [[PagerDuty]]
- 변형: [[Platform Engineering]] · [[CI_CD 파이프라인 및 IDE 통합 보안|DevSecOps]]
- 응용: [[Observability]] · [[Chaos Engineering]]
- Adjacent: [[Prometheus]] · [[OpenTelemetry]]
## 🤖 LLM 활용
**언제**: postmortem drafting from timeline, log anomaly summarization, runbook generation, oncall question answering.
@@ -2,159 +2,26 @@
id: wiki-2026-0508-saas-software-as-a-service
title: SaaS (Software as a Service)
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [Software as a Service, Multi-tenant SaaS, Cloud Software]
duplicate_of: none
status: duplicate
canonical_id: wiki-2026-0508-saas
duplicate_of: "[[SaaS (Software as a Service)]]"
aliases: []
source_trust_level: A
confidence_score: 0.9
verification_status: applied
tags: [business-model, cloud, multi-tenant, devops]
raw_sources: []
last_reinforced: 2026-05-10
verification_status: redirected
tags: [duplicate]
last_reinforced: 2026-05-20
github_commit: pending
tech_stack:
language: typescript
framework: stripe-postgres
---
# SaaS (Software as a Service)
## 매 한 줄
> **"매 software 의 매 product 가 매 service 가 된다"**. SaaS 는 매 vendor-hosted 매 multi-tenant application 의 매 subscription 으로 매 deliver — 매 install 없음, 매 patch 없음, 매 elastic. Salesforce(1999) 가 매 시작, 2026 현재 매 vertical SaaS (industry-specific) 가 매 horizontal 을 매 outpace; 매 AI-native SaaS (Cursor, Linear AI) 가 매 per-seat → 매 outcome-based pricing 으로 매 transition 중.
## 매 핵심
### 매 Architecture archetypes
- **Pool model**: 매 single DB, 매 tenant_id column. 매 cheapest, 매 noisy-neighbor risk.
- **Bridge model**: 매 schema-per-tenant. 매 isolation 좋음, 매 migration 복잡.
- **Silo model**: 매 DB-per-tenant. 매 max isolation, 매 expensive.
- **Hybrid**: free tier pool, enterprise silo.
### 매 Economics
- **MRR/ARR**: monthly/annual recurring revenue.
- **Churn**: gross (lost) vs net (incl. expansion).
- **CAC payback**: < 12 months 매 healthy.
- **NRR (Net Revenue Retention)**: > 110% 매 best-in-class.
### 매 응용
1. CRM (Salesforce, HubSpot).
2. Dev tools (GitHub, Vercel).
3. Vertical (Toast — restaurant, Veeva — pharma).
4. AI-native (Cursor, Granola, Linear).
## 💻 패턴
### Tenant isolation (Postgres RLS)
```sql
CREATE TABLE invoices (
id uuid PRIMARY KEY,
tenant_id uuid NOT NULL,
amount_cents integer NOT NULL
);
ALTER TABLE invoices ENABLE ROW LEVEL SECURITY;
CREATE POLICY tenant_isolation ON invoices
USING (tenant_id = current_setting('app.current_tenant')::uuid);
-- Per-request
SET LOCAL app.current_tenant = 'abc-123';
SELECT * FROM invoices; -- only abc-123's rows
```
### Stripe subscription webhook
```typescript
import Stripe from "stripe";
const stripe = new Stripe(process.env.STRIPE_KEY!);
app.post("/webhook", async (req, res) => {
const event = stripe.webhooks.constructEvent(
req.rawBody, req.headers["stripe-signature"]!, process.env.STRIPE_WH_SECRET!
);
switch (event.type) {
case "customer.subscription.updated":
await db.tenant.update({
where: { stripeCustomerId: event.data.object.customer },
data: { plan: event.data.object.items.data[0].price.lookup_key },
});
break;
case "customer.subscription.deleted":
await scheduleTenantOffboarding(event.data.object.customer);
break;
}
res.json({ received: true });
});
```
### Feature flag per plan
```typescript
const PLAN_FEATURES = {
free: ["basic_export"],
pro: ["basic_export", "api_access", "sso"],
enterprise: ["basic_export", "api_access", "sso", "audit_log", "custom_domain"],
};
function hasFeature(tenant: Tenant, feature: string): boolean {
return PLAN_FEATURES[tenant.plan]?.includes(feature) ?? false;
}
```
### Usage metering (event-based)
```typescript
async function recordUsage(tenantId: string, metric: string, qty: number) {
await db.usageEvent.create({ data: { tenantId, metric, qty, ts: new Date() } });
await stripe.subscriptionItems.createUsageRecord(
tenant.stripeSubItemId,
{ quantity: qty, timestamp: Math.floor(Date.now() / 1000), action: "increment" }
);
}
```
### Per-tenant rate limit
```typescript
import { Ratelimit } from "@upstash/ratelimit";
const limiters = new Map<string, Ratelimit>();
function getLimiter(tenant: Tenant) {
const limit = tenant.plan === "enterprise" ? 1000 : 100;
if (!limiters.has(tenant.id)) {
limiters.set(tenant.id, new Ratelimit({
redis, limiter: Ratelimit.slidingWindow(limit, "1 m"),
}));
}
return limiters.get(tenant.id)!;
}
```
## 매 결정 기준
| 상황 | Tenancy model |
|---|---|
| 매 SMB, 매 < $50 ARR / tenant | Pool (RLS) |
| 매 mid-market | Bridge (schema-per) |
| 매 enterprise, 매 compliance | Silo (DB-per or single-tenant cluster) |
| 매 AI inference heavy | Pool + per-tenant queue |
**기본값**: Pool with RLS, escape-hatch to silo for enterprise.
> **이 문서는 [[SaaS (Software as a Service)]] 의 중복본입니다.** Canonical 문서로 redirect.
## 🔗 Graph
- 부모: [[Cloud Computing]] · [[Business_Strategy]]
- 변형: [[PaaS]] · [[IaaS]] · [[Vertical SaaS]]
- 응용: [[Cloud_Native]] · [[Multi-tenant Architecture]]
- Adjacent: [[Stripe Billing]] · [[Feature-Flags]]
- 부모: [[SaaS (Software as a Service)]] (canonical)
## 🤖 LLM 활용
**언제**: Onboarding email personalization, churn-risk classification from usage signals, customer success summary, AI copilot as product feature.
**언제 X**: 매 contract pricing — human sales.
## ❌ 안티패턴
- **No tenant_id**: 매 cross-tenant data leak — 매 existential.
- **Single noisy tenant**: 매 1 enterprise = 매 80% load → 매 SLO collapse for all. 매 tier-isolate.
- **Free forever**: 매 conversion 0% → 매 unit economics 의 매 broken.
- **Hand-rolled billing**: edge case 의 매 hell. Stripe / Lago / Orb 의 매 사용.
## 🧪 검증 / 중복
- Verified (AWS SaaS Lens 2024, OpenView SaaS Benchmarks, Tomasz Tunguz reports).
- 신뢰도 A.
## 🕓 Changelog
## 🕓 변경 이력
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — multi-tenant + AI-native SaaS 2026 |
| 2026-05-20 | 중복 병합 — canonical 문서로 redirect |
@@ -144,8 +144,8 @@ export async function rotateApiKey(event) {
## 🔗 Graph
- 부모: [[DevSecOps_Framework]] · [[Application Security]]
- 변형: [[KMS]] · [[PKI]]
- 응용: [[CI_CD_Pipeline]] · [[Zero-Trust Architecture]]
- Adjacent: [[OWASP Top 10]] · [[OAuth 2.0]]
- 응용: [[CI_CD_Pipeline]] · [[보안_및_시스템_신뢰성_표준|Zero-Trust Architecture]]
- Adjacent: [[보안_및_시스템_신뢰성_표준|OWASP Top 10]] · [[OAuth 2.0]]
## 🤖 LLM 활용
**언제**: Secret-scanner triage (매 actual secret vs 매 test fixture?), rotation runbook generation, IAM policy synthesis from natural-language requirement.
@@ -135,10 +135,9 @@ if (sessions.length >= 5) {
**기본값**: HttpOnly Secure SameSite=Lax cookie + Redis-backed session, 30m idle / 24h absolute.
## 🔗 Graph
- 부모: [[Authentication]] · [[Application Security]]
- 변형: [[JWT]] · [[OAuth 2.0]] · [[Passkeys]]
- 응용: [[OWASP Top 10]] · [[Zero-Trust Architecture]]
- Adjacent: [[CSRF]] · [[XSS]]
- 부모: [[Application Security]]
- 변형: [[JWT]] · [[OAuth 2.0]]
- 응용: [[보안_및_시스템_신뢰성_표준|OWASP Top 10]] · [[보안_및_시스템_신뢰성_표준|Zero-Trust Architecture]]
## 🤖 LLM 활용
**언제**: Session anomaly detection (매 sudden geo / device shift), suspicious-activity summary for support.
@@ -163,9 +163,9 @@ const mutation = useMutation({
**기본값**: 매 새 project 의 Next.js / Remix / SvelteKit (hybrid). 매 pure SPA 의 internal tool 만.
## 🔗 Graph
- 부모: [[Web Architecture]] · [[Frontend Patterns]]
- 부모: [[Web Architecture]]
- 변형: [[MPA]] · [[SSR]] · [[SSG]] · [[Islands Architecture]]
- 응용: [[React Router]] · [[Vue Router]] · [[SvelteKit]]
- 응용: [[SvelteKit]]
- Adjacent: [[Code Splitting]] · [[Hydration]] · [[Service Worker]]
## 🤖 LLM 활용
@@ -126,10 +126,8 @@ skeleton.boneTexture = boneTexture; // automatically updated
**기본값**: GLTF + Three.js `SkinnedMesh` + LBS + `boneTexture` 의 mobile path.
## 🔗 Graph
- 부모: [[Three.js]] · [[WebGL2]]
- 변형: [[Linear Blend Skinning]] · [[Dual Quaternion Skinning]] · [[InstancedSkinnedMesh]]
- 응용: [[Character Animation]] · [[VR Avatars]] · [[Procedural Creatures]]
- Adjacent: [[BufferGeometry]] · [[BatchedMesh 및 InstancedMesh 성능 벤치마크]] · [[Animation Mixer]]
- 부모: [[Three.js]] · [[WebGL 20|WebGL2]]
- Adjacent: [[BufferGeometry]] · [[BatchedMesh 및 InstancedMesh 성능 벤치마크]]
## 🤖 LLM 활용
**언제**: GLTF rigged character 의 import, 매 bone weight 의 painting 의 review, 매 skinning artifact 의 debug.
@@ -126,10 +126,8 @@ spec:
**기본값**: pool with QoS-Guaranteed for paid tiers, silo upgrade option for enterprise SLA.
## 🔗 Graph
- 부모: [[Multi-tenancy]] · [[Performance Engineering]]
- 변형: [[Confidential Computing]] · [[Noisy Neighbor]]
- 응용: [[Kubernetes QoS]] · [[Firecracker]] · [[NUMA]]
- Adjacent: [[SaaS]] · [[SLO]] · [[Pricing Tier]]
- 응용: [[Firecracker]]
- Adjacent: [[SaaS]] · [[SLO]]
## 🤖 LLM 활용
**언제**: tier-tradeoff explanation to sales, capacity planning, generating taint/toleration manifests.
@@ -121,8 +121,7 @@ gitsign verify HEAD --certificate-identity=me@org.com \
**기본값**: trunk-based, squash-merge, conventional commits, signed commits (gitsign), CODEOWNERS-protected main.
## 🔗 Graph
- 부모: [[DevOps]] · [[Software Engineering]]
- 변형: [[Mercurial]] · [[Jujutsu]] · [[Sapling]] · [[Perforce]]
- 부모: [[DevOps]]
- 응용: [[Trunk-Based Development]] · [[Code Review]] · [[Monorepo]]
- Adjacent: [[CODEOWNERS]] · [[Conventional Commits]] · [[GitOps]]
@@ -112,9 +112,8 @@ add({ x: 1, y: 2, z: 3 }); // 매 hidden class 의 change → 매 deopt
## 🔗 Graph
- 부모: [[CPU Bottleneck]] · [[Branch Prediction]]
- 변형: [[Out-of-order Execution]] · [[Branch Predictor]] · [[Retpoline]]
- 응용: [[V8 Engine]] · [[Spectre]] · [[Meltdown]]
- Adjacent: [[Cache Side Channel]] · [[Constant-Time Crypto]] · [[CET / BTI]]
- 변형: [[Out-of-order Execution]]
- 응용: [[V8 Engine]] · [[Spectre]]
## 🤖 LLM 활용
**언제**: 매 perf 분석 (branch-miss rate), 매 microbenchmark 의 design, 매 mitigation flag 의 trade-off 분석.
@@ -122,10 +122,10 @@ anomalies = np.abs(mad_z(latency_p99)) > 3.5
**기본값**: Welch + CUPED for online A/B; Bayesian for small-N or peeking; bootstrap for non-Gaussian.
## 🔗 Graph
- 부모: [[Mathematics]] · [[Probability Theory]]
- 부모: [[Probability Theory]]
- 변형: [[Bayesian Statistics]] · [[Causal Inference]]
- 응용: [[A/B Testing]] · [[Anomaly Detection]] · [[ML Evaluation]]
- Adjacent: [[PyMC]] · [[statsmodels]] · [[DoWhy]]
- 응용: [[Anomaly Detection]] · [[ML Evaluation]]
- Adjacent: [[PyMC]]
## 🤖 LLM 활용
**언제**: experiment design review, p-value 해석, choosing test for distribution shape, generating PyMC models from descriptions.
@@ -129,9 +129,8 @@ export const decorators = [
**기본값**: Storybook 8 + Vite + interaction test + Chromatic CI.
## 🔗 Graph
- 부모: [[Frontend Tooling]] · [[Design System]]
- 변형: [[Ladle]] · [[Histoire]]
- 응용: [[Component Library]] · [[Visual Regression Testing]] · [[Figma-to-Code-Workflow]]
- 부모: [[Design System]]
- 응용: [[Component Library]] · [[Figma-to-Code-Workflow]]
- Adjacent: [[Test_Automation]] · [[CI_CD_Pipeline]] · [[Figma]]
## 🤖 LLM 활용
@@ -161,10 +161,10 @@ export default () => {
**기본값**: 60/30/10 unit/integration/e2e split, MSW for external APIs, testcontainers for DB, Pact for service boundaries.
## 🔗 Graph
- 부모: [[Software Quality]] · [[CI/CD]]
- 부모: [[Software Quality]]
- 변형: [[TDD]] · [[BDD]] · [[Property-based Testing]]
- 응용: [[Continuous Integration]] · [[Regression Testing]] · [[Visual Regression]]
- Adjacent: [[Vitest]] · [[Playwright]] · [[Testcontainers]] · [[Pact]]
- 응용: [[Continuous Integration]] · [[Visual Regression]]
- Adjacent: [[Playwright]] · [[Pact]]
## 🤖 LLM 활용
**언제**: test scaffolding from impl, edge-case enumeration, flaky root-cause analysis from trace.zip, snapshot diff explanation.
@@ -122,9 +122,7 @@ gl.texImage3D(gl.TEXTURE_2D_ARRAY, 0, gl.RGBA8, 256, 256, layers, 0, gl.RGBA, gl
**기본값**: 2048x2048 atlas + 2px padding + CLAMP_TO_EDGE + offline packer (TexturePacker / sharp).
## 🔗 Graph
- 부모: [[Texture]] · [[GPU Memory]]
- 변형: [[Array Texture]] · [[Virtual Texturing]] · [[SDF Font Atlas]]
- 응용: [[Draw Call]] · [[BatchedMesh 및 InstancedMesh 성능 벤치마크]] · [[Sprite Rendering]]
- 응용: [[Draw Call]] · [[BatchedMesh 및 InstancedMesh 성능 벤치마크]]
- Adjacent: [[Frustum Culling]] · [[Geometry Merging]] · [[Data Array Textures]]
## 🤖 LLM 활용
@@ -25,7 +25,7 @@ github_commit: pending
## 🔗 Graph
- 부모: [[Facade Pattern]] (canonical)
- Adjacent: [[Toss Frontend Engineering]] · [[SDK Design]]
- Adjacent: [[SDK Design]]
## 🕓 변경 이력
| 날짜 | 변경 |
@@ -25,7 +25,6 @@ github_commit: pending
- Vite/Rollup/esbuild/webpack 5 의 모두 지원 — 매 2026 default.
## 🔗 Graph
- 부모: [[Tree Shaking]] (canonical)
- Adjacent: [[ESM]] · [[Bundler]] · [[Code Splitting]]
## 🕓 변경 이력
@@ -139,9 +139,8 @@ plt.legend(); plt.show()
## 🔗 Graph
- 부모: [[Hypothesis Testing]] · [[Statistical Inference]]
- 변형: [[α Error]] · [[β Error]] · [[Power Analysis]]
- 응용: [[A/B Testing]] · [[Classifier Threshold]] · [[Medical Screening]]
- Adjacent: [[Precision Recall]] · [[ROC AUC]] · [[Confusion Matrix]] · [[Bonferroni Correction]]
- 변형: [[Power Analysis]]
- Adjacent: [[ROC AUC]]
## 🤖 LLM 활용
**언제**: 매 binary decision — classification, hypothesis test, A/B test 의 trade-off 분석.
@@ -184,10 +184,9 @@ function transition(s: State, e: Event): State {
**기본값**: Discriminated union + `Result<T, E>` + `assertNever`. 매 ecosystem 의 `neverthrow` 채택.
## 🔗 Graph
- 부모: [[Type System]] · [[Error Handling]]
- 변형: [[Either Monad]] · [[Effect Type]] · [[Option Type]]
- 응용: [[State Machine]] · [[API Client]] · [[Parser Combinator]]
- Adjacent: [[Discriminated Union]] · [[neverthrow]] · [[effect-ts]] · [[Zod]]
- 부모: [[TypeScript 타입 시스템 (TypeScript Type System)|Type System]] · [[Error Handling]]
- 응용: [[State Machine]] · [[API Client]]
- Adjacent: [[Discriminated Union]] · [[effect-ts]] · [[Zod]]
## 🤖 LLM 활용
**언제**: 매 multi-error business logic, API boundary, state machine.
@@ -160,10 +160,9 @@ function get(key) {
**기본값**: 매 V8 default GC + sandbox enabled + monomorphic code + heap snapshot 의 production 의 leak 의 trigger 시.
## 🔗 Graph
- 부모: [[JavaScript Runtime]] · [[V8 Internals]]
- 변형: [[V8 가비지 컬렉션(Garbage Collection)]] · [[V8 메모리 케이지(V8 Memory Cage)]] · [[To Space와 From Space]]
- 응용: [[Node.js Performance]] · [[Memory Leak Debugging]] · [[Cloudflare Workers]]
- Adjacent: [[Garbage Collection]] · [[JIT Compiler]] · [[Hidden Class]] · [[Maglev]]
- 응용: [[Node.js Performance]] · [[Cloudflare Workers]]
- Adjacent: [[Garbage Collection]] · [[Hidden Class]]
## 🤖 LLM 활용
**언제**: Node.js 의 production tuning, memory leak diagnosis, JIT optimization, V8 embedding.
@@ -156,9 +156,9 @@ node --max-old-space-size=512 \
## 🔗 Graph
- 부모: [[JavaScript]] · [[JIT Compilation]]
- 변형: [[JavaScriptCore]] · [[SpiderMonkey]]
- 변형: [[JavaScriptCore]]
- 응용: [[Node.js]] · [[Electron]] · [[Deno]] · [[Cloudflare Workers]]
- Adjacent: [[V8 Heap Spaces]] · [[Garbage Collection]] · [[Chrome V8 Heap Analysis]] · [[Electron V8 Memory Cage]]
- Adjacent: [[Garbage Collection]] · [[Chrome V8 Heap Analysis]] · [[Electron V8 Memory Cage]]
## 🤖 LLM 활용
**언제**: 매 perf debugging 의 deopt 의 reading. 매 hidden class 의 explanation. 매 flag selection.
@@ -25,7 +25,7 @@ github_commit: pending
## 🔗 Graph
- 부모: [[V8 Engine Heap Management]] (canonical)
- Adjacent: [[Browser Sandbox]] · [[Pointer Compression]]
- Adjacent: [[Pointer Compression]]
## 🕓 변경 이력
| 날짜 | 변경 |

Some files were not shown because too many files have changed in this diff Show More