MSA

하나의 **큰 어플리케이션을 적당히 작은 서비스로 쪼개어 개발**하는 것

각각의 어플리케이션은 API 형태로 외부에 노출, 실질적인 세부 사항은 모두 추상화된다.

각각의 어플리케이션 → 독립적인 프로세스로 실행되고 개별적으로 배포되어야 한다.


MSA 장점

  1. 분산형 개발을 통해 효율적인 개발이 가능 (각각의 목적에 맞는 기능들만 개발)
  2. **하나의 서버가 다운**되더라도 연관이 되지 않은 다른 서버에는 영향이 가지 않는다 (모놀리식의 단점)
  3. Scale-Out 간편하다(같은 사양으로 서버를 여러 대 증설하는것)
  4. 언어의 제약이 사라진다 (다른 서버의 언어에 구애받지 않고 사용하고 싶은 스택을 적용이 가능하다)
  5. 새로운 기능 확장에 유연해진다
  6. CI-CD 과정이 모놀리식보다 쉽기 때문에 고객의 요구에 빠르게 대처 가능

MSA 단점

  1. 장애 추적이 힘들다
  2. 구현하고 적용하기 힘들다