본문 바로가기

아키텍쳐

Monolithic Architecture VS Micro Service Architecture

서비스의 비지니스나 팀구성등의 환경에 따라 MA 또는 MSA가 더 나은 아키텍쳐 일수 있음
단순히 일반적인 상황에서 특징을 비교했을 뿐 실제 아키텍쳐는 서비스에 맞게 설계가 필요하다고 봄

 

Monolithic Architecture

개념

  • 전통적인 웹 개발 아키텍쳐로, 하나의 어플리케이션 내에 모든 로직이 들어가 있는 통짜 구조를 의미
  • 일반적으로 하나의 서비스에 데이터 베이스, 백엔드, 프론드엔드가 포함되어 있음

장점

  • 하나의 어플리케이션만 개발하면 되어 간편
  • 로컬환경에서 개발이 용이
  • 배포 및 테스트가 쉬움

단점

대용량 서비스가 되었을때

  • 빌드와 배포가 오래 걸림
  • 코드의 수정 및 추가가 힘듬
  • 효율적인 자원 관리가 힘듬
  • scale out이 불가능

 

Micro Service Architecture

개념

  • 대용량 서비스를 위해 정의된 아키텍쳐
  • 서비스 간 통신은 일반적으로 Rest API로 이뤄짐

장점

대용량 서비스가 되었을때

  • 각 서비스가 독립적이기 때문에 배포가 유연해짐
  • 부하가 많은 특성 서비스만 확장할 수 있으므로 확장성이 좋음
  • 팀 또는 기능간의 의존성이 제거됨

단점

  • 서비스간의 의존성이 있는 기능의 경우 테스트가 어려움
  • 서비스간 호출을 API로 하기 때문에 성능상 문제가 생김

참고문서

https://www.slideshare.net/awskorea/aws-77558771

 

판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중

판교 개발자 데이 Aws가 제안하는 서버리스 아키텍처 - 김필중

www.slideshare.net

https://martinfowler.com/articles/microservices.html