본문 바로가기

정보처리

소프트웨어 아키텍처의 설계 과정

아키텍처의 설계 과정은 설계 목표 설정, 시스템 타입 결정, 아키텍처 패턴 적용, 서브시스템 구체화, 검토 순으로 진행된다. 

  1.  설계 목표 설정 : 시스템의 개발 방향을 명확히 하기 위해 설계에 영향을 주는 비즈니스 목표, 우선순위 등의 요구사항을 분석하여 전체 시스템의 설계 목표를 설정합니다. 
  2. 시스템 타입 결정: 시스템과 서브시스템의 타입을 결정하고, 설계 목표와 함께 고려하여 아키텍처 패턴을 선택한다. 
  3. 아키텍처 패턴 적용 : 아키텍처 패턴을 참조하여 시스템의 표준 아키텍처를 설계한다. 
  4. 서브시스템 구체화 : 서브시스템의 기능 및 서브시스템 간의 상호작용을 위한 동작과 인터페이스를 정의한다. 
  5. 검토 : 아키텍처가 설계 목표에 부합하는지, 요구사항이 잘 반영되었는지, 설계의 기본원리를 만족하는지 등을 검토한다. 

시스템 타입은 크게 4가지 타입으로 나뉜다. 대화형 시스템, 이벤트 중심 시스템, 변환형 시스템, 객체 영속형 시스템이 있습니다. 

대화형 시스템은 사용자의 요구가 발생하면 시스템이 이를 처리하고 반응하는 시스템을 말합니다. 

이벤트 중심시스템은 외부의 상태에 따라서 변화를 주어 동작하는 시스템을 말합니다. 

변환형 시스템은 데이터가 입력되면 정해진 작업들을 수행하여 결과를 출력하는 시스템을 말합니다. 

객체 영속형 시스템 : 데이터 베이스를 사용하여 파일을 효과적으로 저장, 검색, 갱신할 수 있는 시스템을 말합니다. 

 

아키텍처 패턴은 여러 다양한 상황에서 아키텍처를 설계하는데 발생하는 문제들을 해결하기 위해 미리 만들어 놓은 전형적인 해결 방식의 패턴 또는 예제를 의미합니다. 

 

아키텍처의 패턴의 개요

  • 아키텍처 패턴은 소프트웨어 시스템의 구조를 구성하기 위한 기본적인 윤곽을 제시한다. 
  • 아키텍처 패턴에는 서브시스템들과 그 역할이 정의되어 있으며, 서브시스템 사이의 관계와 여러 규칙 지침 등이 포함되어 있다. 
  • 아키텍처 패턴을 아키텍처 스타일 또는 표준 아키텍처라고도 한다.

아키텍처 패턴의 장점에 대해 알아보자

  1. 시행 착오를 줄여 개발 시간을 단축시키고, 고품질의 소프트웨어를 생산할 수 있다. 
  2. 검증된 구조로 개발하기 때문에 안정적인 개발이 가능하다. 
  3. 이해관계자들이 공통된 아키텍처를 공유할 수 있어 의사소통이 간편해진다. 
  4. 시스템의 구조를 이해하는 것이 쉬워 개발에 참여하지 않은 사람도 손쉽게 유지 보수를 수행할 수 있다. 
  5. 시스템의 특성을 개발 전에 예측하는 것이 가능해진다. 

아키텍처 패턴의 종류에는 레이어 패턴, 클라이언트-서버 패턴, 파이프-필터 패턴, 모델-뷰-컨트롤러 패턴 등이 있습니다.

 

지금부터 아키텍처 패턴의 종류에 대해 알아봅시다. 

 

레이어 패턴

레이어 패턴은 시스템 개층으로 구분하여 구성하는 고전적인 방법 중 하나입니다. 

  • 레이어 패턴은 각각의 서브 시스템들이 계층 구조를 이루며, 상위 계층은 하위 계층에 대한 서비스 제공자가 되고, 하위 계층은 상위 계층의 클라이언트가 됩니다. 
  • 레이어 패턴은 서로 마주 보는 두 개의 계층 사이에서만 상호작용이 이뤄지며, 변경 사항을 적용할 때도 서로 마주 보는 두 개의 계층에만 영향을 미치므로 변경 작업이 쉽다. 
  • 레이어 패턴은 특정 계층만을 교체해 시스템 개선하는 것이 가능하다.
  • 대표적인 모델은 OSI 7 Layer

클라이언트- 서버 패턴

클라이언트- 서버 패턴은 하나의 서버 컴포넌트와 다수의 클라이언트 컴포넌트로 구성되는 패턴입니다. 

  • 클라이언트- 서버 패턴에서 사용자는 클라이언트와만 의사소통을 합니다. 다시 말하면 사용자가 클라이언트를 통해서 서버에 정보를 요청하고 클라이언트가  응답을 받아서 사용자에게 다시 제공하는 방식이다. 
  • 서버는 클라이언트의 요청에 대비해 항상 대기 상태를 유지가 되어야 한다. 
  • 클라이언트나 서버 둘 다 요청과 응답을 받기 위해서는 동기화되는 경우를 제외하고 서로 독립적이다. 

파이프-필터 패턴

파이프-필터 패턴은 데이터 스트림 절차의 각 단계를 필터(Filter) 컴포넌트로 캡슐화하여 파이프를 통해 데이터를 전송하는 패턴이다. 

 

모델-뷰-컨트롤러 패턴

모델-뷰-컨트롤러 패턴은 서브 시스템을 3개의 섹션으로 구조화하고 각 부분은 컴포넌트로 분리되어 있다. 

 

다음 시간에는 파이프 필터 패턴과 모델 뷰 컨트롤 패던, 그리고 다양한 기타 패턴에 대해 알아봅시다

'정보처리' 카테고리의 다른 글

단위 모듈 구현과 테스트  (0) 2020.05.20
자료 구조에 대하여  (0) 2020.05.20
소프트웨어 아키텍처의 특징과 설계의 기본 원리  (0) 2020.05.12
HCI/UX/감성공학이란  (0) 2020.05.11
UI 상세 설계란  (0) 2020.05.10