| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
Tags
- 클론코딩
- 1px border
- ES5
- font-size
- 데이터베이스 #try #이중
- ZOOM
- 0.75px border
- 컴포넌튼
- 10px
- 타입스크립트
- 문서번호
- 으
- 전역변수
- Strict
- TypeScript
- Websocket
- angular
- TS
- 0.5px border
- jwt
- Props
- entity
- es6
- 당근마켓
- github
- 0.25px border
- 서버리스 #
- npm
- literal
- &연산
Archives
- Today
- Total
복잡한뇌구조마냥
[CS] 소프트웨어 아키텍처 4+1 뷰 모델 정리 본문
📘 1. 4+1 뷰 모델이란?

4+1 View Model은 복잡한 소프트웨어 시스템을 **5가지 관점(View)**에서 바라보는 설계 방법론이다.
1995년 **Philippe Kruchten (필립 크루흐텐)**이 제안했으며,
**Rational Unified Process (RUP)**의 기본 아키텍처 모델로 사용되었다.
🎯 2. 모델의 목적
- 복잡성 관리: 시스템의 다양한 측면(기능, 구조, 동적 동작, 물리적 배치)을 체계적으로 분리하여 복잡성을 관리합니다.
- 다양한 이해관계자 소통: 최종 사용자, 개발자, 시스템 통합자 등 다양한 이해관계자가 자신의 관점에서 아키텍처를 이해하고 소통할 수 있는 공통의 프레임워크를 제공합니다.
- 검증 및 테스트: 시나리오 뷰를 통해 설계된 아키텍처가 실제 고객 요구사항을 충족하는지 효과적으로 검증할 수 있습니다.
🧩 3. 4+1 View 구성도
+-------------------+
| Use Case View | ← (+1)
+-------------------+
↑
┌──────────────┼───────────────┐
↓ ↓
+--------------+ +----------------+
| Logical View | | Process View |
+--------------+ +----------------+
↓ ↓
└──────────────┼───────────────┘
↓
+---------------------+
| Implementation View |
+---------------------+
↓
+------------------+
| Deployment View |
+------------------+
🧱 4. 각 View의 역할
| 구분 | 이름 | 주요 관점 | 설명 | 이해관계자 |
| ① | Logical View (논리 뷰) |
기능적 관점 | 시스템이 제공하는 **기능(기능 요구사항)**을 표현 → 클래스 다이어그램, 시퀀스 다이어그램 등 UML 중심 |
분석가, 설계자, 개발자 |
| ② | Development View Implemnetation View (구현 뷰) |
구현 관점 | 시스템의 소스코드 구조와 모듈 구성을 표현 → 패키지 다이어그램, 컴포넌트 다이어그램 등 |
개발자 |
| ③ | Process View (프로세스 뷰) |
동적 관점 | 시스템의 동시성, 스레드, 프로세스 간 통신 구조를 표현 → 활동 다이어그램, 상태 다이어그램 |
시스템 설계자 |
| ④ | Deployment View Physical View (배포 뷰) |
물리적 관점 | 시스템이 실제 환경에서 어떻게 배포되는지(서버, 네트워크) 표현 → 배포 다이어그램 |
시스템 엔지니어, 운영자 |
| +1 | Use Case View (유스케이스 뷰) |
시나리오 관점 | 사용자 입장에서 시스템을 바라본 뷰 → 전체 구조를 검증하는 “중심 축” 역할 |
고객, 사용자, 분석가 |
🔁 5. View 간의 관계
| 관계 | 설명 |
| Use Case View ↔ Logical View | 기능 요구사항이 시스템의 논리 구조로 반영됨 |
| Logical View ↔ Implemnetation View | 논리적 설계가 실제 구현 모듈로 매핑됨 |
| Implemnetation View ↔ Process View | 코드가 실행 시 프로세스로 동작함 |
| Process View ↔ Deployment View | 프로세스가 실제 하드웨어 환경에서 실행됨 |
🧠 6. 정리 요약
| 항목 | 설명 |
| 모델명 | 4+1 View Model |
| 제안자 | Philippe Kruchten (1995) |
| 핵심 개념 | 시스템을 다섯 가지 관점에서 설명 (4 + 1) |
| 구성 요소 | Logical, Development, Process, Physical + Use Case |
| 목적 | 다양한 이해관계자의 요구를 반영하고 아키텍처 검증 |
| 활용 분야 | 소프트웨어 아키텍처 설계, 시스템 분석 문서, UML 모델링 |
💬 7. 한 줄 요약
“4개의 기술적 뷰 + 1개의 유스케이스 뷰로,
시스템을 다양한 관점에서 설명하고 검증하는 아키텍처 모델.”
참고자료: https://kcode-recording.tistory.com/231
[1. 소프트웨어 설계] 소프트웨어 아키텍처 4+1 뷰 구성요소
1. 유스케이스 뷰(Usecase View) : 유스케이스 또는 아키텍처를 도출하고 설계하며 다른 뷰를 검증하는데 사용되는 뷰 : 외부 행위자에 의해 인식되는 시스템의 기능 요구사항을 보여주는 데 초점 :
kcode-recording.tistory.com
LIST
'공통 > CS' 카테고리의 다른 글
| [CS] 프로세스 스케줄링(Process Scheduling) 기법 (0) | 2025.11.01 |
|---|---|
| [CS] 응집도(Cohesion)와 결합도(Coupling) 정리 (0) | 2025.10.31 |
| [CS] 테스트 오라클(Test Oracle) 정리 (0) | 2025.10.31 |
| [CS] UML 정리 (다이어그램 종류, 관계, 표기법 등) (0) | 2025.10.30 |
| [CS] 테스트 커버리지(Test Coverage) 정리 (0) | 2025.10.30 |