여러 다른 글에서도 썼지만, 소프트웨어 아키텍처 설계에서 품질 속성(Quality Attribute)은 중요하게 간주되며 시스템의 성공과 연결된다고 이야기 된다. 그러나 이러한 품질 요구사항을 효과적으로 도출하는 것은 쉽지 않다. 이를 위해 품질 속성 워크숍을 진행한다. 하지만, 이 과정은 최소로 해도 하루에서 2주 가까이 소요되는 큰 작업이다. 이러한 것을 조금 더 작게 할 수 있는 '미니 품질 속성 워크숍(Mini Quality Attribute Workshop, Mini QAW, 미니 QAW)'이 유용한 도구로 활용될 수 있다.
미니 QAW 개요
미니 QAW는 전통적인 품질 속성 워크숍(Quality Attribute Workshop, QAW)의 간소화된 버전으로, 짧은 시간 내에 효율적으로 품질 요구사항을 도출하기 위해 고안되었다. 특히 애자일(Agile) 팀이나 경험이 적은 퍼실리테이터에게 적합하며, 몇 시간에서 반나절 정도의 시간으로 진행할 수 있다[1].
목적
미니 QAW의 주요 목적은 다음과 같다.
- 품질 요구사항 도출: 시스템의 주요 품질 속성을 이해하고, 이를 기반으로 아키텍처 설계에 반영합니다.
- 이해관계자 참여 촉진: 다양한 이해관계자의 의견을 수렴하여 시스템의 품질 목표를 명확히 합니다.
-효율적인 시간 활용: 짧은 시간 내에 핵심 품질 요구사항을 도출하여 프로젝트 진행 속도를 높입니다.
워크숍 구성 요소
미니 QAW를 성공적으로 진행하기 위해서는 다음과 같은 요소가 필요하다.
- 이해관계자: 시스템의 주요 사용자, 개발자, 관리자 등 다양한 관점을 제공할 수 있는 참여자들
- 퍼실리테이터: 워크숍을 이끌고 논의를 조율하는 역할을 담당하는 진행자
- 품질 속성 분류표: 성능, 보안, 가용성 등 다양한 품질 속성을 정리한 자료
- 시나리오 작성 도구: 시나리오를 작성하고 공유할 수 있는 도구나 템플릿
진행 방법
미니 QAW는 다음과 같은 단계로 진행된다.
1. 소개 및 품질 속성 이해: 퍼실리테이터가 워크숍의 목적과 품질 속성 분류표를 소개한다.
2. 이해관계자 공감 지도 작성: 참여자들이 부재 중인 이해관계자의 관점에서 품질 요구사항을 추정하여 작성한다.
3. 시나리오 브레인스토밍: 참여자들이 시스템의 품질 속성과 관련된 다양한 시나리오를 제시한다.
4. 시나리오 우선순위 결정: 제시된 시나리오에 대해 투표를 통해 우선순위를 정한다.
5. 시나리오 정제: 우선순위가 높은 시나리오를 구체화하고 상세하게 작성한다.
간단 사례
예를 들어, 온라인 도서 판매 시스템을 개발한다고 가정해보자. 이해관계자 공감 지도 작성 단계에서, 참여자들은 고객 서비스 담당자의 관점에서 "시스템이 24시간 안정적으로 운영되어야 한다"는 요구사항을 도출할 수 있다. 이러한 요구사항은 이후 시나리오 브레인스토밍과 정제 과정을 통해 구체화된다.
1. 소개 및 품질 속성 이해
퍼실리테이터는 워크숍의 목표를 소개하고, 품질 속성 분류표(예: 성능, 가용성, 보안 등)를 설명한다.
- "이 워크숍은 온라인 도서 판매 시스템의 품질 목표를 정의하고, 우선순위가 높은 품질 속성을 도출하는 것이 목적입니다."
- "품질 속성 예로는 페이지 로드 시간(성능), 시스템의 24시간 무중단 운영(가용성), 그리고 결제 정보 보호(보안)가 있습니다."
2. 이해관계자 공감 지도 작성
참여자들은 시스템과 관련된 이해관계자를 식별하고, 그들의 관점에서 품질 요구사항을 도출한다.
- **이해관계자 식별**: 고객, IT 운영팀, 서드파티 결제 제공자 등.
- **예시**: 고객 서비스 담당자 역할을 맡은 참여자는 다음과 같은 요구사항을 도출한다.
- "고객은 사이트가 항상 사용 가능하길 원한다." → **가용성**
- "결제 실패 없이 빠르게 완료되길 바란다." → **성능 및 신뢰성**
- "고객 정보가 안전하게 보호되어야 한다." → **보안**
3. 시나리오 브레인스토밍
참여자들은 각 품질 속성에 대한 구체적인 시나리오를 제안한다.
- 예시 시나리오:
- 가용성: "시스템이 예상치 못한 서버 다운타임 발생 시, 1분 이내에 복구되어야 한다."
- 성능: "사용자가 도서 검색을 실행할 때 결과는 2초 이내에 표시되어야 한다."
- 보안: "사용자의 결제 정보는 암호화된 채널로만 전송되어야 한다."
4. 시나리오 우선순위 결정
참여자들이 제안된 시나리오 중 가장 중요한 항목에 투표한다.
- 우선순위 예시:
1. "결제 정보 보호(보안)" → 온라인 결제 시스템의 핵심.
2. "2초 이내의 검색 응답(성능)" → 고객 만족도에 큰 영향.
3. "1분 이내 서버 복구(가용성)" → 사업 지속성에 필수.
5. 시나리오 정제
우선순위가 높은 시나리오를 구체화하여 시스템 요구사항으로 전환한다.
- 결제 정보 보호 시나리오:
- 시나리오: 사용자가 도서를 결제할 때, 모든 결제 정보는 HTTPS 프로토콜을 사용해 암호화되어 전송된다.
- 요구사항: 모든 결제 트랜잭션은 PCI DSS 표준을 준수해야 한다.
- 검색 성능 시나리오:
- 시나리오: 사용자가 도서 제목을 입력하고 검색 버튼을 누르면 2초 이내에 검색 결과가 반환된다.
- 요구사항: 데이터베이스 쿼리 성능 최적화와 캐싱 시스템을 도입한다.
결과물
미니 QAW를 통해 다음과 같은 결과물을 얻을 수 있다.
- 우선순위가 매겨진 품질 속성 시나리오 목록: 시스템 설계 시 고려해야 할 주요 품질 요구사항
- 이해관계자들의 품질 속성에 대한 공통된 이해: 팀 내에서 품질 목표에 대한 일치된 인식
- 아키텍처 설계의 방향성 확보: 도출된 품질 요구사항을 기반으로 한 아키텍처 설계 지침
마무리
미니 QAW는 짧은 시간 내에 효율적으로 품질 요구사항을 도출하고, 이해관계자들의 참여를 촉진하는 유용한 워크숍이다. 이를 통해 시스템의 품질 목표를 명확히 하고, 아키텍처 설계의 방향성을 확보할 수 있다.
미니 QAW에 대해 더 자세히 알고 싶다면, [1], [2] 를 참고하도록 하자. 이러한 자료를 통해 미니 QAW의 구체적인 진행 방법과 실제 사례를 더욱 깊이 이해하실 수 있을 것이다.
참고 문서
[1] Discover Quality Requirements with the Mini-QAW, https://re-magazine.ireb.org/articles/discover-quality-requirements-with-the-mini-qaw
[2] SATURN 2016 Talk: Discover Quality Requirements with the Mini QAW, https://www.youtube.com/watch?v=YGeqqYrCHHg
'Software Architecture' 카테고리의 다른 글
Technology Stack과 System Architecture (1) | 2024.11.13 |
---|---|
마이크로서비스 API 디자인 패턴: 4장 패턴 언어 개요: 기본 메시지 구조 (1) | 2024.11.06 |
마이크로서비스 API 디자인 패턴: 5장 엔트포인트 타입과 동작 정의 (0) | 2024.10.24 |
마이크로서비스 API 디자인 패턴: 1장 애플리케이션 프로그래밍인터페이스(API) 기초 (2) | 2024.10.16 |
크리스토퍼 알렉산더의 살아있는 구조와 소프트웨어 아키텍처 설계 (3) | 2024.10.09 |