2023년 6월 10일
아키텍처 모델 (Architecture Model)
1. 아키텍처 모델 (Architecture Model)의 개념 및 분류
개념 | 소프트웨어 기능 분할과 배치/제어 관계에 따른 분류, 공통 패턴에 따라 모델화한 스타일 |
---|---|
분류 |
- 검증된 보편적인 아키텍처 스타일을 공통 아키텍처 패턴으로 만들어 유지보수 기준 및 아키텍처 설계의 초안으로 활용
- 아키텍처 모델 활용 시 개발 기간 단축, 소프트웨어 품질 상향 평준화, 의사소통의 용이성, 검증된 아키텍처 설계, 시스템 특성에 대한 시뮬레이션 가능, 기존 시스템에 대한 빠른 이해 등 많은 장점 존재
- 아키텍처 모델(Model), 아키텍처 패턴(Pattern), 아키텍처 스타일(Style) 등의 용어로도 사용
2. 아키텍처 모델의 유형
(1) 데이터 중심형 모델 (Repository Architecture)
– 데이터를 공유하는 시스템에 사용되며, 개별 서브시스템이 공유된 데이터에 접근 | |
Repository | – Repository에 공동으로 활용하는 데이터를 보관 |
---|---|
서브시스템 | – 모든 서브시스템은 Repository에 저장된 공유 데이터에 접근 |
- 데이터를 일관성 있게 관리 가능하나 Repository의 병목 현상에 따른 서브시스템에 영향 발생 가능
(2) 클라이언트-서버 모델 (Client-Server Architecture)
– 네트워크 상에서 클라이언트에서 서비스를 호출하면 서버에서 서비스를 제공 | |
클라이언트 | – 메시지나 원격 프로시저 호출을 통해 서비스를 호출 |
---|---|
서버 | – 클라이언트에 서비스를 제공(파일 서버, 웹 서버 등) |
(3) 계층 모델 (Layered Architecture)
– 인접 계층 간 상위 계층은 클라이언트, 하위 계층은 서버 역할을 수행 | |
프레젠테이션 계층 | – 사용자에게 요청 받아 애플리케이션 호출 |
---|---|
비즈니스 로직 계층 | – 사용자 인터페이스에서 요청 받아 데이터베이스 호출 |
데이터 계층 | – 애플리케이션에서 요청 받아 데이터 응답 |
- 계층 별 기능을 추상화하여 독립적인 기능 구현 가능
(4) MVC 모델 (Model-View-Controller Architecture)
– Model, View, Controller가 독립적인 서브시스템으로 구성되어 상호작용 | |
Model | – 모든 데이터 상태와 로직을 처리 |
---|---|
View | – 시스템이 제공한 데이터를 사용자에게 표출 |
Controller | – 모델/뷰 사이에 전달자 역할 |
- 다양한 UI/UX 플랫폼과 비즈니스 로직, 개발 언어 사용 가능
(5) 데이터 흐름 모델 (Pipe & Filter Architecture)
– 파이프와 필터 구조로 구성되어 입력 데이터 처리 결과를 다음 서브시스템으로 전달 과정 반복 | |
파이프 | – 필터를 거쳐 생성된 데이터 스트림 하나를 다른 필터의 입력에 연결 |
---|---|
필터 | – 한 개 이상 데이터 스트림을 입력받아 처리 후 데이터 스트림 하나를 출력 |
- 파이프나 필터 단위로 나누어 개발 가능하므로 동시 개발 가능
3. 기능 분할 아키텍처 모델 별 장단점
아키텍처 모델 | 장점 | 단점 |
---|---|---|
데이터 중심형 모델 | – 효과적 데이터 공유 – 확장에 용이 | – 모델 변경 시 비용 증가 – 저장소 성능/보안 이슈 |
클라이언트-서버 모델 | – 데이터 분산, 위치 투명성 – 성능 확장, 신뢰성 확보 | – 중앙 관리 부재 시 서비스 어려움 |
계층 모델 | – 정보 은닉 원칙 적용 – 추상화로 변화 최소화 | – 실행 시 오버헤드 – 미사용 서비스 포함 |
MVC 모델 | – 동일 모델에서 다양한 뷰 – 뷰 동기화 가능 | – 복잡도 증가 – 잠재적 갱신 발생 가능 |
- 데이터 중심형, 클라이언트-서버, 계층, MVC 모델 외 Publish-Subscribe, Peer-to-Peer, Blackboard, Broker, Batch sequential 등의 다양한 모델 존재
[참고]
- 한빛아카데미, 쉽게 배우는 소프트웨어 공학
- 한국정보보호진흥원(KISA), 소프트웨어 아키텍처 기반 설계 모델 및 명세기법 개발, 2007.12