1. 아키텍처 설계

1.1. 아키텍처 구축 절차

  1. 요구 사항 분석
  2. → 아키텍처 분석
  3. → 아키텍처 설계
  4. → 검증 및 승인

1.2. 아키텍처 드라이버

  1. 설계 목적

    • 달성하려는 비즈니스 목표를 먼저 명확히 설정해야 한다.
  2. 품질속성

    • 이해당사자의 필요를 얼마나 잘 만족시키는지를 나타내는 측정/테스트 가능한 시스템 속성이다.
    • 품질속성 시나리오는 6가지 요소(자극, 자극원, 반응, 반응측정, 환경, 대상)로 구성되며,
    • 우선순위는 유틸리티 트리(Utility Tree)로 표현한다.
  3. 최우선 기능

    • 비즈니스 목적 달성에 중요하거나 기술 난이도가 높은 기능으로,
    • 일반적으로 전체 유스케이스의 약 10%이다.
  4. 아키텍처 관심사

    • 전통적으로 요구사항으로 표현되지 않는 추가적인 설계 고려 사항으로,
    • 일반 관심사(구조 수립, 배포 등)와 특별 관심사(인증, 캐싱, 로깅 등)로 나뉜다.
  5. 제약사항

    • 아키텍트가 통제할 수 없는 결정사항
    • (필수 기술, 법규, 마감 시간 등)

1.3. 아키텍처 4+1 관점 (Philippe Kruchten)

관점대상자내용
Usecase View사용자시스템이 제공하는 기능, 다른 관점의 근간
Logical View설계자클래스 종류와 관계 (Module View)
Implementation View개발자모듈 구성과 배포 단위 구조 (Module View)
Process View시스템 통합자실행 시점의 동적 행위 (C&C View)
Deployment View시스템 엔지니어컴포넌트의 물리적 배치 (Allocation View)

2. 아키텍처 스타일

2.1. 클라우드 아키텍처

클라우드는 고가용성·탄력적 확장성·비용 효율을 위해 컨테이너, MSA 등 클라우드 네이티브 기술을 활용한다.

  • 핵심 요소
    • 마이크로서비스(MSA): 독립 배포 가능한 작은 서비스 단위로 분해
    • 서버리스(Serverless): 서버 관리 없이 클라우드가 자동 처리 (FaaS / BaaS)
    • 컨테이너: Docker를 이용해 어디서나 동일하게 실행되는 가상화 기술
    • 오케스트레이션: Kubernetes로 컨테이너 배포·스케일링·관리 자동화
    • API Gateway: 단일 진입점 제공, 보안·인증·트래픽 제어
    • 서비스 메시: 내부 서비스 간 통신 관리 (Istio 기반)
    • DevOps / CI/CD: 코드 관리부터 배포까지 파이프라인 자동화

2.2. 3가지 아키텍처 비교

구분모놀리식마이크로서비스서버리스
구조단일 코드베이스서비스별 분산 구조이벤트 기반 Function 단위
확장성전체 확장 (비효율)필요한 서비스만 확장자동 확장
배포전체 재배포서비스별 독립 배포Function 단위 즉시 배포
비용고정 비용인프라 관리 비용 높음사용한 만큼 지불
적합 프로젝트빠른 출시, 소규모독립 기능, 높은 확장성이벤트 기반, 트래픽 변동 많음

하이브리드 모델: 서버리스 + 컨테이너 기반 MSA를 결합해 효율성을 극대화하는 현실적인 선택

2.3. 아키텍처 스타일 선택 기준

  • 확장성(Scalability)
  • 유지보수성(Maintainability)
  • 성능(Performance)
  • 보안(Security)
  • 비용(Cost)