[아키텍쳐]Monolithic&MSA

Wintering·2022년 6월 17일
0

내일배움캠프

목록 보기
12/17

Architecture

S/W Architecture

  • 시스템 컴포넌트 식별 및 속성 정의
  • 컴포넌트들 사이의 커뮤니케이션 방법 및 물리적 배치 등을 포함하는 시스템구조
  • 소프트웨어의 복잡성 증가에 따른 해결대안으로 추상적 표현을 사용하여 복잡도를 관리
  • Filter -Controller - Service - Reository
  • Ex) 카카오, 네이버, 페북, 구글, 애플 로그인 설계
  • Ex) 서비스단 데이터 가공 설계
  • Ex) 대용량 트래픽 관리, Pool 관리 등

System Architecture

  • 시스템 구성 및 동작 원리를 나타냄
  • 시스템 전체에 대한 논리적인 기능 체계와 그것을 실현하기 위한 구성 방식
  • 시스템의 전체적인 최적화가 목표
  • Ex) Deployment View, System View, Module View..
  • Ex) Physical 적인 부분까지 설계 (CPU, RAM)
  • Ex) 서비스 레이어 설계

Monolithic Architecture

서비스를 하나의 거대한 아키텍쳐로 구성

  • 장점
    • 통합 시나리오 테스트가 수월하다
    • 배포가 간단하다
    • 빠르게 개발이 가능하다
  • 단점
    • 서비스가 커짐에 따라 빌드/테스트의 시간이 오래걸린다
    • 개발 언어에 종속적
      • Spring을 사용하면 Java, Node.js를 사용하면 JS로 종속
    • 선택적 확장이 불가능
    • 하나의 서비스가 다른 모든 서비스에 영향을 끼침

Micro Service Architecture(MSA)

  • 1단계(Domain Driven Design)
    도메인별로 디자인을 상이하게 함
    다만 클라이언트 별로 요청이 너무 많아짐.

  • 2단계(GateWay 적용)

  • 3단계(RestAPI(동기), Message Queue(비동기) 적용)

  • 4단계(에러처리)

  • 5단계(모니터링, 어플리케이션 레벨, LB, ...)

0개의 댓글