228. SAAM (Software Architecture Analysis Method) - 최초의 아키텍처 평가 기법 시나리오 기반 변경 용이성 기능성 트레이드오프 부재 카네기 멜런 대학(SEI)

핵심 인사이트: (227번 심화 1) 1994년, 아키텍처 도면을 검사할 방법이 없어 개발자들이 감으로 때려 맞추던 시절. 카네기 멜런 대학(SEI)의 천재들이 선언했다. "야! 도면 펴놓고 뜬구름 잡지 말고, 구체적인 퀴즈(시나리오)를 던져! '만약 내년에 고객이 윈도우 말고 리눅스에서도 돌려달라고 요구하면(시나리오), 이 뼈대로 며칠 만에 고칠 수 있어?' 이렇게 물어봐! 그럼 도면의 수정 용이성(Modifiability)이 100점 만점에 몇 점인지 딱 견적이 나오잖아!!" 세계 최초로 '시나리오'라는 가상 모의고사를 도입해 도면을 검증한 인류 역사상 첫 번째 아키텍처 채점표, SAAM이다.

Ⅰ. 아키텍처 평가의 시조새

  • 과거의 소프트웨어 평가는 코드를 다 짜고 나서 테스트 돌려보는 것뿐이었습니다.
  • **SAAM(Software Architecture Analysis Method)**은 1994년 SEI(Software Engineering Institute)에서 개발한 최초의 체계화된 '시나리오 기반' 소프트웨어 아키텍처 평가 기법입니다.

Ⅱ. SAAM의 2대 핵심 평가 타겟 (무엇을 채점하는가?) 🌟

요즘처럼 성능, 보안까지 다 보지는 못했고, 딱 2가지만 집중적으로 팼습니다.

1. 변경 용이성 (Modifiability / 수정 용이성) 🌟 (가장 중요)

  • 시스템이 운영되다가 나중에 "기능 추가해 줘!", "OS 바꿔줘!" 라는 요구사항(변경)이 들어왔을 때, 아키텍처 뼈대를 얼마나 조금만 부수고(수정하고) 쉽게 갈아 끼울 수 있는지를 집요하게 채점합니다.
  • 평가 방법: "결제 모듈을 A사에서 B사로 바꿀 때, 기존 도면에서 몇 개의 클래스와 패키지를 수정해야 하는가?" ➜ 1개면 합격, 100개면 사형.

2. 기능성 (Functionality)

  • 우리가 설계한 이 뼈대(아키텍처)가 고객이 요구한 핵심 기능들을 누락 없이 모두 제공할 수 있는 구조를 갖추고 있는지를 가볍게 점검합니다.

Ⅲ. SAAM의 평가 절차 (시나리오 마법)

SAAM이 위대한 이유는 바로 **'시나리오(Scenario)'**라는 개념을 처음 창시했기 때문입니다.

  1. 시나리오 개발: "동시 접속자가 1만 명 증가한다", "보안 암호화 알고리즘을 바꾼다" 같은 구체적인 가상 상황 퀴즈를 여러 개 만듭니다.
  2. 아키텍처 설명: 설계자가 도면을 펴놓고 뼈대를 설명합니다.
  3. 시나리오 평가: 만들어둔 퀴즈를 도면에 던져보고, 이 도면이 퀴즈(변경)를 감당하려면 어떤 모듈을 얼마나 뜯어고쳐야 하는지 파악(채점)합니다.
  4. 전체 평가: "이 도면은 암호화 알고리즘 바꿀 때는 10점 만점인데, 동접자 늘어날 때는 2점이네. 탈락!" 하고 결론을 냅니다.

Ⅳ. SAAM의 치명적 한계와 몰락 (229번 스포일러) 🌟 핵심 기출 🌟

  • SAAM은 퀴즈(시나리오)를 던져서 하나씩 채점하는 데는 천재였지만, 가장 중요한 것을 놓쳤습니다.
  • 한계: "트레이드오프(Trade-off)를 모른다!"
    • SAAM: "어? 성능(속도) 점수 좋네! 합격! 어? 보안 점수 좋네! 합격!"
    • 현실: 보안 점수를 높이려고 암호화를 떡칠하면 성능 점수가 무조건 박살 납니다. 두 개의 품질 속성은 시소처럼 하나가 오르면 하나가 떨어집니다(상충 관계).
  • SAAM은 이 **'품질 간의 충돌 현상'**을 1%도 고려하지 않고 개별 점수만 맹목적으로 채점하는 바보였습니다. 결국 이 치명적 단점을 고치기 위해, 품질 간의 피 터지는 트레이드오프만 집요하게 파고드는 궁극의 진화형 **'ATAM(229번)'**이 등장하여 SAAM의 목을 치고 왕좌에 오르게 됩니다.

📢 섹션 요약 비유: **SAAM(소프트웨어 아키텍처 분석 방법)**은 건축계에 처음 도입된 **'단순한 모의재난 종이 퀴즈 테스트'**입니다. 옛날엔 도면만 보고 "음 튼튼해 보이네" 하고 시멘트를 부었습니다. SAAM은 도면을 펴놓고 퀴즈를 냅니다. "만약 1층을 카페에서 헬스장으로 용도 변경하면(시나리오), 이 기둥을 며칠 만에 뽑고 다시 세울 수 있나?(변경 용이성)" 기둥 1개만 뽑으면 되면 100점, 기둥 10개를 다 뽑아야 하면 0점입니다. 변경 대응 능력을 파악하는 덴 최고였지만, SAAM은 '장점 뒤의 단점(트레이드오프)'을 보는 눈이 없었습니다. "창문을 통유리로 크게 내면 뷰가 좋네(100점)! 기둥을 철골로 떡칠하면 지진에 강하네(100점)!"라며 각자 채점만 하고 넘어갔습니다. 하지만 현실은 통유리로 크게 내면 철골 기둥을 세울 자리가 없어져 지진에 박살이 나는 모순(상충 관계)이 터집니다. 이 모순을 파악하지 못하는 순진함 때문에 결국 트레이드오프의 달인인 후배 'ATAM'에게 자리를 물려주고 은퇴한 1세대 채점표입니다.