"매 system 의 high-level structure + 매 design decision 의 rationale". 매 component, 매 boundary, 매 data flow, 매 quality attribute (performance, security, scalability) 의 결정. 매 2026 modern stack 은 C4 model + ADR + arc42 의 combination 으로 documentation.
매 핵심
매 4+1 view (Kruchten 1995)
Logical: 매 functional decomposition (class, module).
Process: 매 runtime concurrency (thread, service).
Development: 매 source code organization (package, repo).
Physical: 매 deployment topology (node, network).
Scenarios: 매 use case 의 cross-cutting validation.
매 C4 model (Brown 2018)
L1 Context: 매 system + 매 external actors.
L2 Container: 매 deployable unit (web app, DB, queue).
# ADR 0007: Choose Postgres over MongoDB
## Status: Accepted (2026-05-10)
## Context
Need primary store for order data. Strong consistency required.
Team has 5 years Postgres experience.
## Decision
Postgres 16 with JSONB for flexible product attributes.
## Consequences
+ ACID transactions for orders.
+ Mature ecosystem (Prisma, pgvector for AI features).
+ Single skill set for ops.
- Less flexible schema evolution.
- Manual sharding if scale > single node.
## Alternatives considered
- MongoDB: rejected — eventual consistency unsuitable for orders.
- DynamoDB: rejected — vendor lock-in, query flexibility.