여러 다른 글에서도 썼지만, 소프트웨어 아키텍처 설계에서 품질 속성(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

크리스토퍼 알렉산더(Christopher Alexander, CA)는 오스트리아 출신의 건축가(Architect)이다. 사용자 중심의 설계 방식과 패턴 언어(Pattern Language)를 통한 건축 설계 방식으로 유명하다. 특히, 다른 건축가들과 다른 부분은 건축과 도시 설계를 보다 인간 중심적이고 살아 있는 방식으로 접근해야 하는 것을 강조했다. 이러한 접근법은 그는 여러 저서를 남겼는데,  유명한 초기 저서인 "영원의 건축"[1]이나 "패턴 랭귀지"[2] 뿐만 아니라 그의 마지막 4권의 저서인 "Nature of Order"[3] 등에서 상세히 설명한다. 이 책들에서 자연의 형태와 어울리는 건축적 원리를 제시하며, 디자인 프로세스에서 "살아 있는 구조"를 창조하는 방법에 대해 설명한다.

"영원의 건축"의 "건물군 설계하기"에서는 캘리포니아에 세워질 정신과 병원 설계에 대한 사례를 소개 한다. 이 장의 초기에 언급되어 있듯이 실재 병원의 주요 이해관계자인 병원장, 의료진, 관련 연구원들이 설계에 참여한다. 시작은 이해관계자들이 생각하는 "기능"이나 "활동"을 기반으로 적용해야 하는 패턴들을 포함시키거나 제외하는 작업들을 상당히 긴 시간의 토론을 통해 찾아간다. 이러한 패턴에 합의하게 되면 설계 준비가 되었다고 보고 설계를 시작한다. 이 때, 사무실에 설계를 하는 것이 아니라 건물이 세워질 대지에 나가서 이해 관계자들과 함께 이야기를 나누며 진행된다. 이러한 과정을 거칠 때, CA는 "눈을 감고 생각해보라"라는 요청을 많이 했다.

"Nature of Order"의 Book 2의 13.9 "The process of Finding a Good Centers"에도 비슷한 사례가 나온다. 앙드레와 애나 부분의 집 설계에 관한 부분이다. 일반적으로 부억, 거실, 식당과 같은 구조를 만들면서도 가족들은 아이들과 보낼 장소에 대한 필요가 있었던 것 같다. 가족방(family room)이 일반적인 해법이겠지만, CA는 적절한 해결책이 아니라 생각한 것 같다. 역시, 이해 관계자들과 3일간의 토론이 있었다. 눈을 감고 미소 띄운 앙드레가 떠올린 것은 프랑스 남부에 있는 그의 할아버지 집이었고 벽난로, 테이블 그리고 밖에서 들어오는 남향의 햇볕이었다. 이를 기반으로 이 집의 여러 중요 부분 중 하나인 농가의 부엌(farmerhouse kitchen)이 만들어졌다.

일본의 학교법인인 Eishin School(盈進学園, 영진학원)도 CA가 참여했고 이 과정이 "The Battle for the Life and Beauty of the Earth: A Struggle Between Two World-Systems"[4]에 담겨져 있다. 여기서도 위에서 이야기한 병원 설계와 유사하게 이해관계자들과 진행한 내용들이 담겨져 있다. 특히 8장을 보면 안드레의 사례와 비슷하게 이해 관계자들이 눈을 감고 상상하게 한다. 그런데, 이게 자신이 중요하다고 생각하는 구체적인 경험과 연결된다. 인터뷰이는 부끄러워 하기도 하고, 주저하기도 하지만 꿈같은 이야기를 꺼내게 된다. 이러한 과정을 통해 정리된 패턴 랭귀지는 수 개월에 걸처 이해관계자들에게 채택되게 된다. 이후 9개월에 걸처 부지에 직접 나아가서 병원에서의 사례와 같이 설계를 진행하는 과정을 거친다.

CA가 소프트웨어 공학에 많은 영향을 끼치기도 했고, 이러한 것들이 소프트웨어 설계에도 영향을 많이 미치고 있다고 생각된다. 위에서 CA가 사용한 방법을 보면, 이해관계자를 참여 시키는 것을 넘어 그 들에게 중요한 기능이나 활동 그리고 거기에 숨어 있는 요구 사항을 함께 찾는 것이 핵심인 것을 살펴 볼 수 있다. 이 부분을 소프트웨어 아키텍처 설계 측면에서 살펴 보면, 아키텍처 드라이버, 포스(force) 혹은 품질 속성(Quality Attribute)라는 것으로 볼 수 있다. 이런 것들을 발견하여 건축물의 "살아있는 구조"를 만들 수 있는 것처럼 소프트웨어의 "살아있는 구조"도 만들어 낼 수 있을 것으로 기대해 본다. 이러한 과정을 도와 줄 수 있는 것들이 도메인 주도 설계(DDD), Quality Attribute Workshop(QAW) 혹은 ATAM이 있다. 이러한 프로세스를 통해서 건축물을 설계할 때, 이해 관계자들과 소통하는 부분과 연결하여 이해할 수 있다.

참고문헌
[1] 크리스토퍼 알렉산더 "영원의 건축", 한진영 역, 안그라픽스 
[2] 크리스토퍼 알렉산더, 사라 이시가와, 머레이 실버스타인, "패턴 랭귀지" 이용근, 양시관, 이수빈 공역, 인사이트
[3] Christopher Alexander, "The Process of Creating Life: Nature of Order, Book 2: An Essay on the Art of Building and the Nature of the Universe", The Center for Envionmental Structure
[4] Christopher Alexander (Author), HansJoachim Neis Maggie Moore Alexander. 
"The Battle for the Life and Beauty of the Earth: A Struggle Between Two World-Systems", Center for Environmental Structure, 16 1st Edition

+ Recent posts