SW/클라우드 서비스 아키텍처

소프트웨어 아키텍처 : 품질 속성 설계 전략 원리 : 개념, 개요, 정의

얇은생각 2020. 4. 27. 19:30
반응형

소프트웨어 아키텍처 : 품질 속성 설계 전략 원리 : 개념, 개요, 정의

 

품질속성 설계전략의 원리

아키텍처 패턴은 자주 발생하는 아키텍처 설계 문제에 대한 준비된 해결 방법이므로 대개의 경우 특정한 품질을 확보하는 문제에 대한 해결 방법을 제시하지 않습니다. 패턴을 통하여 품질 개선 효과가 얻어질 수도 있으나 그것이 만족스럽지 않을 수 있습니다.

또한 마땅히 적용할 패턴이 없는 상황에서 어떤 품질을 확보해야 하는 문제가 대두될 수도 있습니다. 품질속성 설계전략은 특정한 품질속성 응답을 제어하는 데 효과가 있는 설계 전략입니다.

 

 

품질 속성의 분류

성능, 상호 운영성, 변경 용이성, 가용성, 보안성, 시험 용이성 및 사용 용이성의 7개 품질속성에 대한 설계전략 도출지침이 있습니다. 이들 중 성능을 예로 하여 품질속성 설계전략이 무엇인지를 알아봅니다. 

 

 

성능 설계 전략

성능은 시간에 관련된 성질로 시스템은 사건이 발생하면 그 사건에 반응해야 되는데, 성능은 주로 시스템이 사건에 반응하는 데 걸리는 시간에 관한 것입니다. 예를 들어 성능 매트릭의 하나인 처리 소요시간은 이벤트가 도착하여 응답이 생성될 때까지 걸리는 시간입니다.

성능의 제어는 크게 컴퓨팅 자원의 사용을 관리하여 이루어질 수도 있습니다. 또, 자원 자체를 관리하여 이루어질 수도 있습니다. 예를 들어 제어 소프트웨어가 현재의 상태를 파악하기 위하여 관련 데이터를 샘플링해야 할 경우, 그 빈도를 낮춤으로써 컴퓨팅 자원의 사용을 줄이면 제어에 들어가는 자원이 줄어들게 됩니다.

또 응답 속도를 즉각적으로 하기보다 허용 범위에서 늦춤으로써 역시 제어에 들어가는 자원을 줄일 수 있게 됩니다. 컴퓨팅 자원의 사용을 늘려서도 성능 향상이 가능할 수 있는데, 예를 들어 복수 개의 서비스 컴포넌트를 실행시키거나 복수 개의 데이터 복제본을 유지하면 서비스 처리를 빠르게 할 수 있습니다. 품질속성 설계전략은 이와 같이 특정 측면의 품질을 향상시킬 수 있는 전략의 메뉴입니다.

잘 알려진 지식을 활용하는 것은 가능한 경우에는 전략을 새로이 만드는 것보다 용이하고 효과가 좋은 경우도 많습니다. 품질속성 셜계전략은 일반화된 품질로서의 품질속성을 대상으로 합니다.

 

 

품질 속성 설계 전략과 검증 가능한 시나리오

이는 두 번째 아키텍처 설계 원리에서 학습한 품질속성은 검증 가능한 시나리오로 구체화되어야 한다는 것과 배치되는 듯 싶습니다. 이런 상황에서 품질속성에 대한 일반적인 설계 전략을 제시하는 것이 타당한가 하는 의문을 가질 수 있습니다. 그러나 품질속성의 설계전략은 단지 일반적인 가이드라인을 주어 특정 시나리오를 충족시키는 설계를 지원하고자 하는 데 있습니다.

따라서 품질속성 설계전략이 개발 대상 시스템의 아키텍처 설계를 지원할 수 있는지에 대한 궁극적인 판단은 아키텍트가 해야 하고, 그렇다면 품질속성 설계전략의 원리와 검증 가능한 품질속성의 원리는 서로 배치되는 것이 아니라 상호 보완적인 관계에 있는 원리들로 보아야 합니다.

반응형