배워서 남 주자

마이크로서비스 아키텍처(MSA)란?

미래에서 온 개발자 2023. 7. 17. 15:49

1. 마이크로서비스 아키텍처(Microservice Architecture)란? 

- 애플리케이션이 서비스 모음으로 개발되는 애플리케이션 아키텍처의 한 유형

- 마이크로서비스를 사용하면 대규모 애플리케이션을 각각 담당 영역을 가진 소규모의 독립적인 구성요소로 구분할 수 있다. 

- 마이크로서비스 기반 애플리케이션은 단일 사용자 요청을 처리하기 위해 여러 내부 마이크로서비스를 호출하여 응답을 작성할 수 있다. 

 

2. 마이크로서비스 아키텍처의 용도

- 일반적으로 개발 속도 및 성능을 지속적으로 높여 나갈 수 있어서 변화하는 비지니스 요구를 충족할 수 있다. 

- 자바를 사용하여 빌드된 마이크로서비스 아키텍처 중에서도 특히 Spring Boot 아키텍처가 일반적이다.

- 마이크로서비스와 서비스 지향 아키텍처를 비교하는 것도 일반적

  * 둘 모두 모놀리틱(Monolithic) 애플리케이션을 더 작은 구성요소로 세분화하는 것이 목표지만, 접근 방식은 서로 다르다. 

 

출처: OSC Korea

  장점 단점
모놀리틱 아키텍처 - 개발 초기의 단순한 구조로 개발 용이
- E2E 테스트 용이
- 긴 빌드, 배포 시간
- 장애 문제 처리 어려움
- 유지보수 어려움
- 개발 언어 변경 어려움
마이크로서비스 아키텍처 - 빠른 서비스 개발 / 출시 시간의 단축
- 유연한 확장
- 서비스별 독립적 배포 가능
- 안정적인 서비스 운영
- 상대적인 복잡성
- 트랜잭션 유지의 어려움
- API 관리의 중요성 증가

 

3. 마이크로서비스 아키텍처의 특징

1) 독립된 하나의 모듈에서 발생한 장애는 전체 애플리케이션에 크게 영향을 미치지 않는다. 

2) 모듈 간의 의존도가 낮아 서로 다른 기술 스택을 사용할 수 있다.

3) 각 마이크로서비스를 독립적으로 배포하는 것이 용이하다.

 

출처: OSC Korea

 

4. 마이크로서비스 아키텍처 예시

   a. 웹사이트 마이그레이션

    : 모놀리틱 플랫폼에서 호스팅되는 복잡한 웹 사이트는 클라우드 기반 및 컨테이너 기반 마이크로서비스 플랫폼으로 마이그레이션할 수 있다.

 

   b. 미디어 콘텐츠

    : 마이크로서비스 아키텍처를 사용하여 이미지 및 동영상 애셋을 확장가능한 객체 스토리지 시스템에 저장하고 웹 또는 모바일에 직접 제공할 수 있다.

 

   c. 트랜잭션 및 인보이스

    : 결제 처리 및 주문은 독립적인 서비스 단위로 구분할 수 있으므로 인보이스 발행이 작동하지 않는 경우에도 계속해서 결제가 허용된다.

 

   d: 데이터 처리

    : 마이크로서비스 플랫폼은 기존의 모듈형 데이터 처리 서비스를 위해 클라우드 지원을 확장할 수 있다. 

 

 

 

📚 참고자료

 

마이크로서비스 아키텍처란?  |  Google Cloud

마이크로서비스 아키텍처로 애플리케이션을 독립된 단일 서비스로 구분할 수 있습니다. 마이크로서비스 아키텍처 다이어그램을 통해 자세히 알아보세요.

cloud.google.com

 

OSC Korea midia

‍ 마이크로서비스 아키텍처(Microservices Architecture, MSA)는 IT 업계에서 대세로 떠오르며, 엔터프라이즈 서비스 개발 프로젝트에 활발히 채택되고 있습니다. 서비스 개발과 관련있다면 마이크로서

www.osckorea.com

 

마이크로서비스(Microservice) 정의, 구축, 장단점, 사례

마이크로서비스란 애플리케이션 구축을 위한 아키텍처 기반의 접근방식을 뜻하며, 마이크로서비스 아키텍처(MSA)는 단일 애플리케이션이 여러 작은 서비스로 구성됩니다.

www.redhat.com