개주 훈련일지/📚 코살대 교본 학습

아키텍처 평가

lshfood2 2026. 2. 13. 09:24

[ 아키텍처 평가 ]

아키텍처 평가는

설계한 아키텍처(또는 디자인 패턴)가

기능 요구사항과 비기능(품질) 요구사항을

실제로 만족할 수 있는지 점검하는 과정이다.

 

구현 전에 구조적 문제를 미리 발견하고,

시스템을 더 잘 이해하고,

근거를 남겨 문서화하는 데 목적이 있다.

 

특히 규모가 커질수록 아키텍처의 선택은

성능, 유지보수성, 보안, 가용성 같은

품질 속성에 큰 영향을 준다.

 

그래서 코드가 쌓인 뒤에

뒤늦게 구조를 뜯어고치기보다,

시나리오와 품질 속성을 기준으로

설계를 평가하는 편이 비용이 훨씬 작다.


아키텍처 평가에서 보는 것들

아키텍처 평가에서는 보통 아래를 확인한다.

  • 기능 요구사항을 지원하는
    흐름이 구조적으로 가능한가
  • 품질 요구사항의 목표가 무엇이고,
    (성능/보안/가용성/유지보수성/사용성 등)
    어디에서 흔들릴 수 있는가
  • 변경(새 기능 추가, 환경 변경, 리팩토링)이
    들어왔을 때 구조가 버틸 수 있는가
  • 타협점(trade-off)과 리스크가 어디에 숨어 있는가

대표 방법 2가지: SAAM, ATAM

아키텍처 평가 기법은 여러 가지가 있지만,

실무/교재에서 자주 등장하는 대표 축은

다음 두 가지다.

  • SAAM
    시나리오 기반 평가로 시나리오를
    실행할 수 있는지와 변경 비용을 중심으로 점검
  • ATAM
    시나리오 기반이면서도 여러 품질 속성 간의
    trade-off와 리스크 발굴을 중심으로 점검

아래부터는 각 방법을 흐름도와 표로 정리한다.


1. SAAM

1-1) 핵심 아이디어

SAAM(Software Architecture Analysis Method)은

이해관계자가 제시하는 시나리오를 기준으로

아키텍처를 평가한다.

 

시나리오는 사용자/관리자/고객 등과

시스템이 상호작용하는 상황을

짧게 서술한 것이다.

 

SAAM의 핵심은 두 가지다.

  • 아키텍처가 시나리오를 실행할 수 있는지 판단
  • 실행이 어렵다면 어떤 변경이 필요하고
    비용이 얼마나 드는지 추정

1-2) SAAM 진행 흐름도

[이해관계자 시나리오 수집]
          |
          v
[시나리오 우선순위 결정]
          |
          v
[아키텍처 구성요소/상호작용 매핑]
          |
          v
[시나리오 수행 가능 여부 평가]
     |               |
     | 가능          | 불가/취약
     v               v
[문서화]     [변경 필요사항 도출 + 변경비용 추정]
          |
          v
[결과 정리/공유]

 

1-3) 시나리오 유형

SAAM에서는 시나리오를 보통

직접/간접 시나리오로 나눠서 본다.

구분 의미 평가 관점 예시
직접 시나리오 시스템 변경이
필요 없는 시나리오
일반 유스케이스 지원,
인터페이스가 제공하는 보통 기능,
스트레스/장기간 사용 시
데이터 붕괴 여부,
통신 무결성 등
간접 시나리오 시스템 변경이
필요한 시나리오
새 기능 추가/기능 삭제,
새 하드웨어/OS/IO 환경 적응,
모듈화/최적화/재사용을 위한
재구조화 수용 가능성 등

 

1-4) SAAM 산출물

  • 시나리오 목록 + 우선순위
  • 시나리오-아키텍처 매핑
    (어떤 구성요소가 어떤 상호작용을 담당하는지)
  • 변경 필요사항 목록
  • 변경 비용 추정치(대략이라도)

2. ATAM

2-1) SAAM과의 차이

ATAM(Architecture Trade-off Analysis Method)은

시나리오를 쓰지만, 초점이 조금 다르다.

  • 여러 품질 속성에 집중한다
    (성능/보안/가용성/유지보수성 등)
  • 품질 속성 간 타협점(trade-off)을 찾아낸다
  • 민감점(sensitivity point), trade-off point,
    리스크를 체계적으로 발굴한다

2-2) ATAM 진행 흐름도

[업무 배경/요구사항 공유]
          |
          v
[아키텍처 소개]
          |
          v
[품질 목표 도출 + 민감한 부분 식별]
          |
          v
[품질 속성 우선순위 + 시나리오 작성]
   (유틸리티 트리로 정리)
          |
          v
[시나리오 기반 분석/평가]
          |
          v
[trade-off / 민감점 / 리스크 도출]
          |
          v
[결과 정리 및 공유]

 

2-3) 유틸리티 트리(utility tree)란

ATAM에서 중요한 작업은 ‘어떤 품질 속성이 중요한지’와

‘그 품질을 시험할 시나리오’를 정리하는 것이다.

이 정리 방식이 유틸리티 트리다.

품질 특성 시나리오 사례
유지보수성 연동하는 시스템의
상태 확인 기능 추가,
모바일 단말기 접속 기능 추가,
수강 신청 프로세스 변경,
커리큘럼 변경 및 추가
성능 수강 과목 검색 기능 속도 향상,
수강 신청 기능 처리량 향상
가용성 데이터베이스 용량 초과로
로그 기록 불가,
데이터베이스 갱신 오류로
데이터 사용 문제
보안성 사용자 ID별 DB 접근 제어,
다른 시스템에서 접근할 때
제어하는 기능
사용용이성 신규 사용자 시스템 적응 단축,
수강 신청 오류 처리
기능의 도움말 보완

 

2-4) ATAM 산출물

  • 품질 속성 우선순위(무엇을 제일 중요하게 볼지)
  • 유틸리티 트리(품질 속성 ↔ 시나리오)
  • 민감점/타협점(trade-off point) 목록
  • 리스크와 완화 아이디어

3. SAAM vs ATAM 비교 표

항목 SAAM ATAM
중심 질문 ‘이 시나리오가
구조적으로 가능한가?’
‘안 되면 바꾸려면
뭐가 필요하고 비용은?’
‘품질 목표를 만족하는가?’
‘품질 속성 간 trade-off는?’
‘리스크는 어디에?’
시나리오 역할 기능 수행 가능 여부
+ 변경 비용 추정
품질 속성 검증 도구
(유틸리티 트리로 우선순위화)
강점 단순하고 시작하기 쉬움,
변경 관점 평가에 유리
품질 속성 중심 분석이 강함,
리스크/타협점 도출에 유리
결과물 느낌 변경 항목과
비용 추정이 또렷함
품질 목표/우선순위/리스크가 또렷함
추천 상황 초기 구조 점검,
변경이 잦은 제품에서
‘변경 비용’이 중요한 경우
성능/보안/가용성 등
품질 요구가 까다롭고
trade-off 판단이 필요한 경우

[ 마무리 ]

적용 팁

  • 시나리오는 ‘구체적으로’ 쓴다
    ‘빠르게 조회’ 같은 표현보다
    ‘검색 결과 2초 이내’, ‘동시 사용자 3,000명’처럼
    측정 가능한 문장으로 바꾸면 평가가 쉬워진다.
  • 시나리오 우선순위는 반드시 정한다
    모든 시나리오를 같은 무게로 보면 결론이 흐려진다.
    사용자 영향도/비용/리스크 기준으로 상위부터 본다.
  • 아키텍처-시나리오 매핑을 표로 남긴다
    ‘어떤 컴포넌트가 어떤 책임을 가지는지’가
    기록으로 남아야, 나중에 변경 논의가 빨라진다.

체크리스트

  • 품질 속성 목표가 문장으로 정리돼 있는가
    (성능/보안/가용성/유지보수성/사용성 등)
  • 이해관계자 시나리오가 수집됐는가
    (사용자/운영/개발/보안 등)
  • 시나리오 우선순위가 정해졌는가
  • 시나리오-구성요소 매핑이 가능한 형태로 남아 있는가
  • 변경 필요사항과 변경 비용(대략)이
    기록됐는가(SAAM 관점)
  • 민감점/타협점/리스크와 대응 방향이
    정리됐는가(ATAM 관점)

'개주 훈련일지 > 📚 코살대 교본 학습' 카테고리의 다른 글

UI 설계와 기본 개념  (0) 2026.02.16
디자인 패턴  (0) 2026.02.11
아키텍처 스타일  (0) 2026.02.10
SQL) DCL (Data Control Language)  (0) 2026.02.09
아키텍처 기초  (0) 2026.02.09