ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Software Engineering] MSA
    CS/Software Engineering 2021. 8. 8. 18:02

    📝 MSA


    💻 Monolithic

    ✔ MSA가 도입되기 전, 모든 기능을 하나의 어플리케이션에서 비즈니스 로직을 구성해 운영하는 Monolithic 방식으로 개발이 이루어 졌다.

     

    🔧 Monolithic 장점

    • 개발시 환경 설정에 있어 간단하다.
    • 작은 사이즈의 프로젝트에서 유리하다

     

     

    🔧 Monolithic 단점

    • 빌드/테스트 시간이 증가한다 - 하나를 수정해도 시스템 전체를 빌드해야 하며 유지보수가 힘들다.
    • 작은 문제가 시스템 전체에 영향을 미친다.
    • 확장성에 불리하다 - 하나의 서비스 확장을 위해 전체 프로젝트를 확장해야 한다.

     

     

     

    💻 MicroService Architecture

    기능 별로 컴포넌트를 나누고 조합할 수 있도록 구축한다.

     

    🔧 컴포넌트란?

    • 재사용이 가능한 독립적인 단위모듈이다.
    • 구현, 명세화, 패키지화 그리고 배포 될 수 있어야 한다.

     

     

    🔧 MSA 특징

    • 각 컴포넌트는 API를 통해 다른 서비스와 통신을 한다.
    • 모든 서비스는 각각 독립된 서버로 운영하고 배포하기 때문에 서로 의존성이 없다.

     

     

    🔧 MSA 장점

    • 하나의 서비스에 문제가 생겨도 다른 서비스에는 영향을 끼치지 않는다.
    • 서비스 별로 부분적인 확장이 가능하다.

     

     

    🔧 MSA 단점

    • API로 통신하므로 속도가 느리다.
    • 서비스 별로 통신에 맞는 데이터로 맞추는 과정이 필요하다.

     

     

    REFERENCE

    https://github.com/gyoogle/tech-interview-for-developer/blob/master/Computer%20Science/Software%20Engineering/%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4%20%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98(MSA).md 

     

    'CS > Software Engineering' 카테고리의 다른 글

    [Software Engineering] Agile  (0) 2021.08.08

    댓글

Designed by Tistory.