Skip to content

Latest commit

 

History

History
64 lines (40 loc) · 4.26 KB

5장_아키텍처_특성_식별.md

File metadata and controls

64 lines (40 loc) · 4.26 KB

5장 아키텍처 특성 식별

🔎 Survey and Question - 훑어보고 질문하기

소제목 훑어보기

  1. 도메인 관심사에서 아키텍처 특성 도출
  2. 요구사항에서 아키텍처 특성 도출
  3. 사례 연구: 실리콘 샌드위치
    1. 명시적 특성
    2. 암묵적 특성

사전 질문 / 내용에 대한 예언

도메인 관심사에서 아키텍처 특성 도출

Q. 어떻게 도메인 관심사로부터 아키텍처 특성을 도출할 수 있을까?

  • 기본적으로 특정한 도메인 관심사를 그에 대응되는 아키텍처 특성들로 번역하여 도출할 수 있음.
    • 인수 합병 => 상호운용성, 확장성, 적응성, 신장성
    • 출시 시기 => 민첩성, 시험성, 배포성
    • 유저 만족 => 성능, 가용성, 내고장성, 시험성, 배포성, 민첩성, 보안
    • 경쟁 우위 => 민첩성, 시험성, 배포성, 확장성, 가용성, 내고장성
    • 시간 및 예산 => 단순성, 실행성
  • 이때 유의할 점은 단 하나의 아키텍처 특성에만 과하게 집착하는 것을 경계해야 한다는 점. 포괄적으로 관련된 복수의 특성을 고려할 수 있어야 함.

요구사항에서 아키텍처 특성 도출

Q. 어떻게 요구사항으로부터 아키텍처 특성을 도출할 수 있을까?

  • 기본적으로 요구사항 정의서를 통해 명시적으로 얻을 수 있는 정보로 관련된 아키텍처 특성 도출 가능. (ex. 예상 유저 수를 통한 확장성 고려 필요성 파악)
  • 이에 더해 도메인 지식에 기반하여 추가적인 아키텍처 특성도 추론해낼 수 있음. (ex. 학사 관리 시스템은 특정한 짧은 시기 동안 트래픽이 대량으로 몰리게 되므로 확장성만이 아니라 탄력성도 필요)

사례 연구: 실리콘 샌드위치

Q. 실리콘 샌드위치 사례에서 드러나는 명시적인 아키텍처 특성은?

  • 확장성: 점진적으로 사용자 수가 수천에서 수백만으로 증가할 것이라 예상되므로 필요.
  • 탄력성: 식사 시간 전후로 급증하는 트래픽을 안정적으로 처리하기 위해 필요 (도메인 지식 기반한 판단)
  • 맞춤성: 특정 지점에서만 가능한 로컬 프로모션/스페셜 행사 등이 요구되므로 필요.

Q. 실리콘 샌드위치 사례에서 드러나는 암묵적인 아키텍처 특성은?

  • 가용성: 언제든지 서비스에 안정적으로 접속할 수 있어야 함.
  • 신뢰성: 서비스를 문제 없이 사용할 수 있어야 함.
  • 보안: 상황에 따라 아키텍처 특성이 된다고 판단 가능. 결제 기능을 서드파티 서비스로 구현하므로 보안이 덜 필요하다고도 판단 가능.

📝 Read & Recite - 읽어보고 노트하기

개인 정리 자료의 5장 관련 마크다운 확인


😎 Review - 요약하기

아키텍처를 구축하거나 기존 아키텍처의 타당성을 검증하기 위해 아키텍트는 최우선적으로 아키텍처 특성을 식별해야 한다. 물론 아키텍처 특성을 최대한 정확하게 발견하고자 과하게 스트레스 받을 필요는 없다. 애초에 최고의 설계는 없고 오로지 가장 덜 나쁜 설계만 존재하기 때문이다. 때문에 시스템의 성공에 필수적인 아키텍처 특성들 위주로 정의할 수 있어야 한다.

아키텍트는 도메인 이해관계자와 협력하며 주요 아키텍처 특성 목록을 정의해야 한다. 이때 아키텍처 특성 목록을 최대한 간략하게 가져가는 것이 권장된다. 개별 아키텍처 특성 하나하나가 설계를 복잡하게 만드는 요인이 되며, 모든 아키텍처 특성을 지원하는 제네릭 아키텍처는 안티패턴이다.

인수 합병, 출시 시기, 유저 만족 등의 도메인 관심사를 그에 대응되는 아키텍처 특성으로 해석하여 도출하는 것이 필요하며, 이때 너무 하나의 아키텍처 특성에만 집착하는 것을 경계해야 한다.

주어진 요구사항 정의서와 도메인 지식을 토대로 아키텍처 특성 도출할 수 있으며, 이러한 능력을 함양하기 위해 아키텍처 카타라는 연습/훈련법이 존재한다.