본문 바로가기

Dev.../소프트웨어 아키텍처

[SA강좌] Part 3-10 아키텍처, 설계 패턴 적용

아키텍처 패턴 적용

아키텍처 스타일 적용은 소프트웨어 아키텍처를 전이하는 방법이며, 아키텍처의 품질요소를 개선하는 것이다. 두 번째 카테고리인 아키텍처 패턴 또는 아키텍처 메커니즘은 일반적으로 동시성 또는 지속성과 같은 기능화 측면을 다루기 위하여 어떻게 시스템을 특성화시킬 건지 규칙을 아키텍처에 적용한 것이다. 아키텍처 패턴은 아키텍처의 기능적 컴포넌트를 재구성화하는 것이 아니라, 오히려 기능적 컴포넌트를 변경하고 확장시키는데 초점이 있다. 따라서 이 패턴으로 필요한 기능을 담은 새로운 컴포넌트를 추가 또는 변경하는 과정이다. 아키텍처 패턴은 소프트웨어 아키텍처 또는 그 영향을 받는 컴포넌트에서 컴포넌트의 기능을 제한하고 동일한 기능을 수행하는 또 다른 아키텍처 구조상 패턴을 적용 또는 사용을 막는다. 즉 아키텍처 패턴은 시스템 행위의 한 측면만을 다룬다. 일반적으로 이 부분은 어플리케이션 도메인이 아니라, 컴퓨터 사이언스 도메인 측면이다. 컴퓨터 사이언스 측면은 주로 concurrency, persistence, synchronization, transactions, distribution, runtime binding, real time behavior, graphical user interface가 이에 속한다.

설계 패턴 적용

아키텍처 패턴에서 소프트웨어 아키텍처 전반에 걸친 영향을 미치는 전이 방법을 살펴보았다면, 설계 패턴은 전체 아키텍처 관점에서는 조금 덜 유동적인 전이과정이라고 할 수 있다. 이러한 설계패턴은 아키텍처 또는 시스템의 기능적(functionality)에 변경을 줄 수 없는 것이며, 단지 그 functionality의 구성이나 구조를 결정할 수 있다. 설계패턴은 이후 상세설계를 위한 설계패턴에서 더욱 자세하게 살펴보도록 한다.

 

품질요구사항의 기능화

원칙적으로 아키텍처 스타일과 설계 패턴은 아키텍처의 품질속성을 만족시키기 위하여 현재 기능화된 구조를 새로운 버전의 구조로 재구조화한다. 하지만, 이러한 활동이 항상 효과적이고 능률적인 것은 아니다. 어플리케이션 도메인과 관련된 것이 아니라 단순히 품질요소 개선을 위한 시스템의 추가된 기능화 과정일 수도 있다. 마지막 전이 카테고리는 품질 요구사항을 도메인과 관련된 것이 아니라 요구사항 수용이라는 아키텍처 확장이라는 의미를 가진 기능적 해결책으로 변환이다. 비록 이러한 형태의 해결책이 현 버전의 아키텍처를 마이너수준의 재구성화를 요구할지도 모르지만, 새로운 컴포넌트와 기능화의 추가가 원칙적인 해결책이다.