id, title, category, status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, verification_status, tags, raw_sources, last_reinforced, github_commit, tech_stack
id
title
category
status
canonical_id
aliases
duplicate_of
source_trust_level
confidence_score
verification_status
tags
raw_sources
last_reinforced
github_commit
tech_stack
wiki-2026-0508-component-based-architecture-cba
Component Based Architecture (CBA)
10_Wiki/Topics
verified
self
CBA
Component-Based Software Engineering
CBSE
none
A
0.9
applied
architecture
components
modularity
reuse
2026-05-10
pending
language
framework
typescript
react-vue-angular
Component Based Architecture (CBA)
매 한 줄
"매 시스템 = 매 independent, replaceable, composable component 의 합." . CBSE는 1960s OOP의 reuse 약속을 modular contract로 실현한 패러다임. 2026년 frontend (React/Vue/Angular), microservices, design systems, embedded (OSGi), game engines (Unity ECS) 모두 CBA의 변형.
매 핵심
매 component 의 정의
Encapsulation : state + behavior + interface = 단일 unit.
Well-defined contract : input props/events, output events, side effects 명시.
Replaceable : 동일 interface 의 다른 impl 으로 swap 가능.
Independently deployable (microservices) 또는 independently versionable (libraries).
매 4 properties (Szyperski)
Independent deployment unit.
Composition by third parties.
No persistent state (pure or state-injected).
Explicit context dependencies (interface 로 명시).
매 응용
Frontend UI (React component tree).
Microservices (service = component).
Plugin systems (VSCode extensions, Figma plugins).
Game engines (Unity GameObject + Components).
Web Components (Custom Elements, Shadow DOM).
💻 패턴
React functional component
Web Component (framework-agnostic)
Composition over inheritance
Dependency injection (explicit context)
ECS component (Unity / Bevy style)
Microservice as component
매 결정 기준
상황
Approach
UI rendering
React/Vue functional components
Cross-framework UI
Web Components (Lit)
Backend domain split
Microservice components (gRPC contract)
Game logic
ECS components (Bevy, Unity DOTS)
Plugin systems
Component + manifest + sandbox (VSCode model)
기본값 : React 19 functional components + composition; backend은 module 단위 component → 필요 시 microservice 로 추출.
🔗 Graph
🤖 LLM 활용
언제 : UI/system 의 reusable units 으로 분해, contract-driven team work, plugin ecosystem.
언제 X : 단일 prototype, throwaway script, 하나의 tight algorithm (component overhead 가 cost > benefit).
❌ 안티패턴
God component : 하나의 component 가 too many props/responsibilities — split.
Prop drilling : 5+ levels 깊이 prop 전달 — Context/store 로 lift.
Hidden coupling : component A 가 component B 의 internal state 의 직접 접근 — contract violation.
Premature genericization : 1번만 쓰는 것을 generic 으로 추상화 — YAGNI.
🧪 검증 / 중복
Verified (Szyperski "Component Software" 1998 / Brooks 1995 / React docs 2026).
신뢰도 A.
🕓 Changelog
날짜
변경
2026-05-08
Phase 1
2026-05-10
Manual cleanup — CBA 4-property canonical + React/ECS/microservice 패턴