아키텍처 패턴
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
아키텍처 패턴은 시스템의 구조를 나타내지만, 그 자체로 아키텍처는 아니다. 소프트웨어 아키텍처의 핵심 요소들을 해결하고 정의하며, 다양한 아키텍처가 동일한 패턴을 구현하고 관련 특성을 공유할 수 있다. 아키텍처 스타일은 특정 구축 방식을 의미하며, 시스템의 구조적 조직 패턴, 컴포넌트 및 커넥터, 결합 방식에 대한 제약 조건을 정의한다. 아키텍처 패턴과 스타일은 시스템 클래스를 설명하는 데 사용되는 관용구로서, 패턴은 문제 해결책으로, 스타일은 일반적인 형태로 간주될 수 있다. 아키텍처 패턴은 데이터 통합, 데이터 아키텍처, 분석 및 비즈니스 인텔리전스, 마스터 데이터 관리, 데이터 모델링, 인공 지능 등 다양한 문제 영역에서 활용된다.
더 읽어볼만한 페이지
- 아키텍처 패턴 - 서비스 지향 아키텍처
서비스 지향 아키텍처(SOA)는 기능들을 독립적인 서비스 단위로 분리하여 느슨하게 결합함으로써, 네트워크를 통해 접근 가능한 서비스를 재사용하고 결합하여 응용 프로그램을 구축하는 소프트웨어 아키텍처이다. - 아키텍처 패턴 - 제어 반전
제어 반전은 프로그램의 제어 흐름을 프레임워크나 컨테이너가 관리하도록 하는 프로그래밍 원칙으로, 코드 결합도를 낮추고 유연성을 높이지만, 복잡성을 증가시킬 수 있다는 비판도 존재한다. - 소프트웨어 디자인 패턴 - 모델-뷰-컨트롤러
모델-뷰-컨트롤러(MVC)는 소프트웨어 디자인 패턴으로, 응용 프로그램을 모델, 뷰, 컨트롤러 세 가지 요소로 분리하여 개발하며, 사용자 인터페이스 개발에서 데이터, 표현 방식, 사용자 입력 처리를 분리해 유지보수성과 확장성을 높이는 데 기여한다. - 소프트웨어 디자인 패턴 - 스케줄링 (컴퓨팅)
스케줄링은 운영 체제가 시스템의 목적과 환경에 맞춰 작업을 관리하는 기법으로, 장기, 중기, 단기 스케줄러를 통해 프로세스를 선택하며, CPU 사용률, 처리량 등을 기준으로 평가하고, FCFS, SJF, RR 등의 알고리즘을 사용한다.
아키텍처 패턴 |
---|
2. 정의
아키텍처 패턴은 시스템의 이미지를 전달하지만, 아키텍처는 아니다. 아키텍처 패턴은 소프트웨어 아키텍처의 일부 필수 응집 요소를 해결하고 묘사하는 개념이다. 수많은 다른 아키텍처가 동일한 패턴을 구현하고 관련 특성을 공유할 수 있다. 패턴은 종종 "엄격하게 설명되고 일반적으로 사용 가능한" 것으로 정의된다.[1]
소프트웨어 아키텍처 스타일은 전통적인 건축 양식을 따르는 것처럼, 특징에 의해 뚜렷하게 구별되는 특정 구축 방법이다.
소프트웨어는 문제 해결을 위한 도구로 사용된다. 다음 표는 소프트웨어가 다양한 문제 영역(하위 도메인)에서 어떻게 활용되는지 보여준다. 각 하위 도메인은 소프트웨어 디자인 패턴과 솔루션 패턴을 통해 해결될 수 있다. 또한, 하위 도메인들은 서로 통합될 수 있는데, 예를 들어 인공 지능 문제 해결은 데이터 아키텍처 문제로 접근할 수 있다.
3. 아키텍처 스타일
일부에서는 아키텍처 패턴과 아키텍처 스타일을 동일하게 취급하며,[7] 어떤 이들은 스타일을 패턴의 특수화된 형태로 간주한다. 공통점은 패턴과 스타일 모두 아키텍처가 사용할 수 있는 관용구로서, 시스템 클래스를 설명하기 위한 "공통 언어"[7] 또는 "어휘"[6]를 제공한다는 것이다.
주요 차이점은 패턴이 문제에 대한 해결책으로 간주될 수 있는 반면, 스타일은 보다 일반적이며, 그 출현에 대한 해결해야 할 문제를 요구하지 않는다는 점이다.
4. 분석
하위 도메인 영역 아키텍처 패턴, 소프트웨어 디자인 패턴, 솔루션 패턴, 관련 패턴 데이터 통합/SOA 데이터 통합/서비스 지향 아키텍처(SOA) 하위 섹션 참조 데이터 아키텍처 데이터 아키텍처 하위 섹션 참조 분석 및 비즈니스 인텔리전스 분석 및 비즈니스 인텔리전스 하위 섹션 참조 마스터 데이터 관리 마스터 데이터 관리 하위 섹션 참조 데이터 모델링 데이터 모델링 하위 섹션 참조 인공 지능 인공 지능 하위 섹션 참조
4. 1. 데이터 통합/서비스 지향 아키텍처(SOA)
하위 도메인 영역 | 아키텍처 패턴 | 소프트웨어 디자인 패턴 | 솔루션 패턴 | 관련 패턴 |
---|---|---|---|---|
데이터 통합/SOA | ||||
4. 2. 데이터 아키텍처
데이터 아키텍처는 데이터 통합/SOA의 하위 도메인 영역으로, 다음과 같은 아키텍처 패턴을 가진다.아키텍처 패턴 | 소프트웨어 디자인 패턴 | 솔루션 패턴 | 관련 패턴 |
---|---|---|---|
4. 3. 분석 및 비즈니스 인텔리전스
하위 도메인 영역 | 아키텍처 패턴 | 소프트웨어 디자인 패턴 | 솔루션 패턴 | 관련 패턴 |
---|---|---|---|---|
분석 및 비즈니스 인텔리전스 |
4. 4. 마스터 데이터 관리
데이터 아키텍처의 하위 영역인 마스터 데이터 관리는 마스터 데이터 허브 아키텍처 패턴을 사용한다.[1] 이 패턴은 마스터 데이터 복제, 마스터 데이터 서비스, 마스터 데이터 동기화 등의 소프트웨어 디자인 패턴을 포함한다.[1] 관련된 패턴으로는 변경 데이터 캡처, EAI 등이 있다.[1]아키텍처 패턴 | 소프트웨어 디자인 패턴 | 관련 패턴 |
---|---|---|
마스터 데이터 허브 |
4. 5. 데이터 모델링
하위 도메인 영역 | 아키텍처 패턴 | 소프트웨어 디자인 패턴 | 솔루션 패턴 | 관련 패턴 |
---|---|---|---|---|
데이터 모델링 |
4. 6. 인공 지능
하위 도메인 영역 | 아키텍처 패턴 | 소프트웨어 디자인 패턴 | 솔루션 패턴 | 관련 패턴 |
---|---|---|---|---|
인공 지능 |
5. 예시
- 셀 기반 아키텍처
- 블랙보드 시스템
- 브로커 패턴
- 이벤트 기반 아키텍처
- 사가 패턴[2]
- 모놀리식 패턴[2]
- 분산 패턴[2]
- 모듈형 모놀리스[2]
- 암시적 호출
- 레이어
- 헥사고날 아키텍처
- 마이크로서비스
- 액션-도메인-응답자
- 모델-뷰-컨트롤러
- 프레젠테이션-추상화-컨트롤
- 모델-뷰-프레젠터
- 모델-뷰-뷰모델
- 모델-뷰-어댑터
- 엔티티 컴포넌트 시스템
- 엔티티-컨트롤-경계
- 다중 계층 아키텍처
- 객체 지향 프로그래밍
- 네이키드 객체
- 운영 데이터 저장소
- 피어 투 피어
- 파이프 및 필터 아키텍처
- 서비스 지향 아키텍처
- 공간 기반 아키텍처
- 분산 해시 테이블
- 게시-구독 패턴
- 메시지 브로커
- 계층적 모델-뷰-컨트롤러
참조
[1]
서적
Software architecture: Foundations, Theory and Practice
https://books.google[...]
Wiley
2009
[2]
서적
Fundamentals of Software Architecture: An Engineering Approach
O'Reilly Media
[3]
뉴스
Why Software Is Eating The World
https://www.wsj.com/[...]
2011-08-20
[4]
웹사이트
An Experience of Applying Pattern-based Software Framework to Improve the Quality of Software Development: 4. The Design and Implementation of OS2F
http://jses.seat.org[...]
the Third Taiwan Conference on Software Engineering (TCSE07)
2008-06
[5]
웹사이트
Architectural Patterns: Definition
http://aahninfotech.[...]
AAHN INFOTECH (INDIA) PVT. LTD.
[6]
서적
Software architecture : perspectives on an emerging discipline
Prentice Hall
1996
[7]
서적
Microsoft Application Architecture Guide
Microsoft Press
2009-10
[8]
서적
Software architecture: Foundations, Theory and Practice
Wiley
2009
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com