Architecture

아키텍처architecturesystem architecture
[1] 시스템 아키텍처(system architecture)

시스템의 구성 요소와 구성 요소 간의 관계, 그리고 동작 방식을 정의하는 설계도(청사진)이다.


시스템 아키텍처(system architecture)

시스템의 구성 요소와 구성 요소 간의 관계, 그리고 동작 방식을 정의하는 설계도(청사진)이다.


시스템 아키텍처의 정의가 다양한 이유

시스템 아키텍처는 하나의 고정된 정의가 존재하지 않는다.

그 이유는 ‘Architecture’ 자체가 ‘구조(Structure)‘를 설명하는 개념으로, 시스템을 바라보는 관점, 해결해야하는 요구사항, 그리고 시스템의 범위와 적용 분야 등에 따라 강조하는 요소가 달라지기 때문이다.

  • 관점: 개발자/시스템 설계자/운영자/네트워크 엔지니어/경영진 등
  • 요구사항: 성능/보안/확장성/유지보수성/가용성/비용 등
  • 시스템의 범위: 기업 전체 시스템/쇼핑몰 시스템만/주문 서비스 하나만/주문 서비스 내부 클래스 구조만 등
  • 적용 분야: 임베디드/웹/모바일 앱/클라우드/의료 시스템/자동차 시스템 등
  • 기술 및 개발 패러다임의 변화: 새로운 개발 패러다임이나 기술의 등장으로 아키텍처를 바라보는 방식과  설계 방법이 변화함.

시스템 아키텍처의 공통적인 특징

여러 정의를 종합하면 시스템 아키텍처는 다음과 같은 공통적인 특징을 가진다.

  • 시스템의 구성 요소와 각 요소의 역할을 정의함.
  • 구성 요소 간의 관계와 상호작용을 정의함.
  • 시스템과 외부 환경(다른 시스템, 사용자, 네트워크 등) 과의 관계를 설명함.
  • 요구사항을 만족하도록 시스템을 논리적으로 구성함.
  • 하드웨어와 소프트웨어를 모두 포함한 전체 시스템의 구조를 다룸.
  • 시스템의 생명주기(설계, 구현, 운영, 유지보수) 전반에 걸쳐 활용되는 장기적인 설계 기준이 됨.
  • 시스템 설계와 구현의 기준이 되는 원칙과 제약을 제공함.

시스템 아키텍처의 역할

시스템 아키텍처는 단순한 설계도가 아니라 다음과 같은 역할을 수행한다.

  • 시스템의 전체 구조를 이해할 수 있도록 함.
  • 개발자와 설계자 간의 공통된 의사소통 수단
  • 설계와 구현 방향을 제시하는 기준
  • 시스템의 변경과 확장을 용이하게 함.
  • 시스템의 성능, 확장성, 보안, 유지보수성 등의 품질 속성을 만족하기 위한 기준
  • 복잡한 시스템을 관리 가능한 구조로 설계