아키텍처 모델 (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

 

콘텐츠 사용 시 출처 표기 부탁 드리고, 댓글은 큰 힘이 됩니다^^