상세 컨텐츠

본문 제목

알고보니 - 아키텍처 스타일 및 종류 (2/2)

IT 정보/IT 알쓸신잡

by 마이드림72 2022. 4. 1. 10:00

본문

아키텍처 스타일 종류

 

레이어(Layered)

 

구성요소

  - 레이어(Layer) : 각 레이어는 위쪽 레이어에게는 서버 역할을 하고 아래쪽 레이어에게는 클라이언트 역할을 한다.

  - 연결방식 : 프로토콜(Protocol)

제약조건

  - 인접 레이어와 상호 작용해야 한다.

  - 하위 레이어 의존성만 허용한다.

적용 예

  - OSI 7 레이어

  - 데이터베이스 시스템과 운영체제

장점

  - 추상성 수준에 기초한 설계를 제공한다.

  - 확정성이 좋다.

  - 레이어를 재사용할 수 있다.

  - 레이어를 다른 것을 바꿀 수 있어서 이식성이 좋다.

단점

  - 모든 시스템을 레이어로 나눌 수 있는 것은 아니다.

  - 올바른 추상화 수준을 찾기 어렵다.

 


메인 프로그램과 서브루틴(Main Program and Subroutine)

 

 

  - 구성요소 : 프로시져와 드러난 데이터

  - 연결방식 : 프로시져 호출과 드러난 데이터 공유

  - 제어 : 단일 쓰레드 방식

장점

  - 재사용성이 뛰어나다.

  - 시스템을 진화시켜 나가기 쉽다.

단점

  - 컴포넌트는 시스템이 처리하는 계산에 대한 제어를 포기해야 한다.

  - 데어터를 주고 받을 때 신경을 많이 써야 한다.

 

 

객체지향(Object-oriented)

 

 

  - 구성요소 : 객체

  - 연결방식 : 메서드 호출

제약조건

  - 객체는 자신의 무결성을 보장할 책임을 지닌다.

  - 객체는 자신이 표현하는 것을 내부에 숨긴다.

장점

  - 클라이언트에게 영향을 주지 않고 구현을 바꿀 수도 있다.

  - 문제 영역을 인간 사고와 비슷한 방식으로 분할하여 다룰 수 있다.

단점

  - 반드시 다른 객체의 식별자를 알아야 한다.

  - 객체의 식별자를 변경하면 이 객체를 호출하는 다른 객체들을 변경해야 한다.

 

데이터 집중화

 

 

목적

  - 데이터가 시스템에 집중되어 있고 여러 클라이언트가 데이터를 얻기 위해 이 시스템과 상호작용하는 경우.

  - 구성요소 : 중앙 집중 데이터 저장소, 데이터를 소비하는 클라이언트


리파지토리(Repository)

수동형 데이터 집중소 : 클라이언트가 데이터를 가져갈 필요가 있는지 검사해서 가져간다

 

 

블랙보드(Blackboard)

 

 

능동형 데이터 집중소 : 데이터에 변동이 생기면 관련 클라이언트에게 변경 사실을 통지한다.

 

이벤트 시스템

 

 

목표 :독립 프로세스나 객체를 통해 처리에 필요한 다양한 부분의 의존성을 없애 변경가능성을 달성한다.

묵시 호출(Implicit Invocation)

 

 

  - 구성요소 : 프로시져 모음과 이벤트 집합을 제공하는 인터페이스를 가진 모듈

  - 연결방식 : 이벤트 등록과 프로시져 호출

  - 제약조건 : 이벤트 제공자는 어떤 컴포넌트가 이 이벤트에 영향 받는지 알지 못한다.

 

그 밖의 아키텍처 스타일

  - 리플렉션(Reflection) : 시스템의 구성이나 행위를 실행시점에 마음대로 바꿀 수 있는 메커니즘을 제공하는  패
MVC(Model-View-Controller)/PAC(Presentation-Abstraction-Control) : 시스템을 책임에 따라 나눠 변화에 유연하게 대처할 수 있게 하는 패턴

  - 브로커(Broker) : 분산환경에서 분산투명성을 제공하는  패턴

  - 마이크로커널(Microkernel) : 자주 바뀌는 요구사항을 수용할 수 있게 시스템을 핵심부분과 변화부분으로 나누는 패턴

 

아키텍처 스타일의 적용

한 시스템에 한 스타일만 적용하는 경우는 거의 없다.

 

스타일 이질성(Heterogeneousness) 종류

  - 위치(Locationally) : 실행 시점 구조가 다른 부분에서 다른 스타일로 드러난다. 

    예) 메인 프로그램과 서브루틴으로 이루어진 시스템의 일부가 리파지토리를 가지고 있을 수 있다.

  - 계층(Hierarchically) : 한 스타일의 컴포넌트가 분해될 때 다른 스타일을 따른다. 

    예) 객체가 파이프와 필터로 구현될 수 있다.

  - 동시성 : 시간의 흐름에 따라 다른 스타일을 따른다.

 

 

지금까지 아키텍처 스타일이란 무엇이며, 어떤 종류가 있는지 알아보았다.

관련글 더보기

댓글 영역