feat: Wiki 지식 자산 업데이트 - UX Scenarios, Frontend, Game Design, Topics 추가 [2026-05-08]

This commit is contained in:
2026-05-08 19:52:07 +09:00
parent 9dd3d40662
commit 5ba5a55c78
3984 changed files with 334557 additions and 28839 deletions
@@ -1,17 +1,29 @@
---
id: P-REINFORCE-WIKI-03071FFF
category: Unified
id: wiki-2026-0508-비기능적-요구사항-non-functional-require
title: "비기능적 요구사항 (Non functional Requirements, NFRs)"
category: 10_Wiki/Topics
status: needs_review
canonical_id: self
aliases: [P-REINFORCE-WIKI-03071FFF]
duplicate_of: none
source_trust_level: A
confidence_score: 0.95
tags: ['비기능적-요구사항-(non-functional-requirements,-nfrs)', 'architecture-tradeoff-analysis-method-(atam)', 'architecture-decision-records-(adrs)', 'iso/iec-25010', 'microservices-architecture-pattern', 'architecture-principles']
tags: [비기능적-요구사항-(non-functional-requirements, -nfrs), architecture-tradeoff-analysis-method-(atam), architecture-decision-records-(adrs), iso/iec-25010, microservices-architecture-pattern, architecture-principles]
raw_sources: []
last_reinforced: 2026-05-02
github_commit: pending
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
tech_stack:
language: unspecified
framework: unspecified
---
# [[비기능적 요구사항 (Non-functional Requirements, NFRs)]]
## 📌 Brief Summary
## 📌 한 줄 통찰 (The Karpathy Summary)
비기능적 요구사항(NFRs)은 소프트웨어 시스템이 특정 기능을 수행하는 '방식'과 관련된 품질 속성(Quality Attributes)을 정의하는 개념입니다 [1]. 여기에는 성능, 확장성, 보안, 유지보수성, 가용성 및 신뢰성 등이 포함되며, 종종 아키텍처적 특성(Architectural Characteristics)으로도 불립니다 [1, 2]. 이러한 비기능적 요구사항은 소프트웨어 아키텍처 설계와 패턴 선택을 주도하는 가장 핵심적인 기준점 역할을 합니다 [3, 4].
## 📖 Core Content
## 📖 구조화된 지식 (Synthesized Content)
* **개념 및 품질 모델(Quality Models):**
비기능적 요구사항은 결함 허용성(fault-tolerance), 하위 호환성, 확장성, 신뢰성, 유지보수성, 사용성 등 다양한 시스템 특성을 포괄합니다 [1]. ISO/IEC 25010:2011 표준에 따르면, 이러한 품질 속성은 시스템 작동 중 나타나는 **런타임 비기능적 요구사항**(신뢰성, 성능 효율성, 보안, 호환성 등)과 시스템의 개발 및 유지보수 주기와 관련된 **개발 타임 비기능적 요구사항**(유지보수성, 이식성)으로 분류할 수 있습니다 [5].
* **아키텍처 결정의 기준 (Drivers for Architectural Decisions):**
@@ -19,14 +31,13 @@ last_reinforced: 2026-05-02
* **평가 및 검증 방법론:**
특정 아키텍처 패턴이 우선순위화된 비기능적 요구사항을 충족하는지 검증하기 위해 평가 기준이 필요합니다 [7]. ISO 25010 품질 모델의 기능 적합성, 성능 효율성(시간 행동, 자원 효율성), 호환성 지표를 사용하여 아키텍처 구조의 비즈니스 목적 부합성을 측정합니다 [8, 9]. 이 과정에서 ATAM(Architecture Tradeoff Analysis Method)과 같은 구체적인 시나리오 기반 분석 방법을 활용하여 시스템 부하, 장애 상황 등에서 시스템이 어떻게 반응하는지 검증합니다 [10-12].
## Trade-offs & Caveats
## 모순 및 업데이트 (Contradictions & Updates)
* **불가피한 상충 관계 (Trade-offs):** "완벽한 아키텍처는 없다"는 원칙에 따라 비기능적 요구사항들 사이에는 항상 상충 관계가 존재합니다 [11, 13]. 특정 품질 속성을 극대화하면 종종 다른 속성의 희생이 따릅니다. 예를 들어, 극단적으로 높은 보안성(고강도 암호화)을 추구하면 성능(대기 시간 증가)이 떨어질 수 있습니다 [11].
* **비용과 유지보수성의 저하:** 개발 속도(Fast delivery / Time to Market)라는 요구사항을 최우선으로 할 경우 시스템을 쉽게 설계할 수는 있으나, 향후 코드 유지보수성(Maintainability)이 떨어지거나 높은 기술 부채(Technical Debt)가 발생할 위험이 커집니다 [2, 11].
* **구조적 복잡성에 따른 반대 급부:** 높은 확장성(Scalability)이나 유연성 등 특정 NFR을 충족하기 위해 마이크로서비스(MSA)나 이벤트 기반 아키텍처(EDA) 같은 분산 환경 패턴을 도입하면, 결과적으로 통신 지연(Network Latency), 데이터 일관성 보장의 어려움, 디버깅 및 테스팅의 난이도 증가 등 운영 복잡성이라는 새로운 단점이 유발됩니다 [14-16].
* **결정의 동적 변화와 문서화 필요성:** 시스템의 사용량이 증가하거나 비즈니스 맥락이 변함에 따라 초기 우선순위에 두었던 비기능적 요구사항도 달라지게 됩니다 [17]. 따라서 아키텍처 결정 사항과 그에 수반된 타협점을 아키텍처 결정 기록(ADRs)과 같은 수단을 통해 문서화하지 않으면, 향후 팀원이나 이해관계자가 시스템 진화 방향을 파악하거나 유지보수하는 데 큰 어려움을 겪게 됩니다 [18, 19].
## 🔗 Knowledge Connections
## 🔗 지식 연결 (Graph)
### Related Concepts
#### [관계 유형 A: 아키텍처/평가 방법론]
@@ -70,4 +81,53 @@ last_reinforced: 2026-05-02
- 확장 방향: 일정을 맞추기 위해 섣불리 내린 아키텍처 타협이나 나쁜 설계가 장기적으로 유지보수성(Maintainability)이라는 비기능적 품질에 어떠한 비용으로 되돌아오는지 연구합니다.
---
*Last updated: 2026-05-02*
*Last updated: 2026-05-02*
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
**언제 이 지식을 쓰는가:**
- *(TODO)*
**언제 쓰면 안 되는가:**
- *(TODO)*
## 🧪 검증 상태 (Validation)
- **정보 상태:** needs_review
- **출처 신뢰도:** A
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
## 🧬 중복 검사 (Duplicate Check)
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
- **처리 방식:** UPDATE (자동 정규화)
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
## 🕓 변경 이력 (Changelog)
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|------|-----------|-----------|--------|
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
## 💻 코드 패턴 (Code Patterns)
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
```text
# TODO
```
## 🤔 의사결정 기준 (Decision Criteria)
**선택 A를 써야 할 때:**
- *(TODO)*
**선택 B를 써야 할 때:**
- *(TODO)*
**기본값:**
> *(TODO)*
## ❌ 안티패턴 (Anti-Patterns)
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*