크로서비스 아키텍처)란 무엇이며, 기존 모놀리식 아키텍처 대비 장단점을 설명해보세요.

  • MSA의 개념 정의

MSA(Microservices Architecture, 마이크로서비스 아키텍처)란 하나의 대규모 애플리케이션을 비즈니스 기능 단위의 독립적인 소규모 서비스들로 분해하여, 각 서비스를 독립적으로 개발·배포·확장하는 소프트웨어 아키텍처 스타일이다. 각 마이크로서비스는 자체 프로세스에서 실행되며, 경량 통신 메커니즘(주로 HTTP REST API 또는 메시지 큐)을 통해 상호 통신한다. 이는 단일 코드베이스로 이루어진 모놀리식(Monolithic) 아키텍처와 대비되는 개념이다.

  • 원리 및 메커니즘 — 모놀리식 대비 장단점

MSA의 장점은 다음과 같다. 첫째, 독립적 배포(Independent Deployment)가 가능하여 특정 서비스만 수정·배포할 수 있으므로 배포 속도와 안정성이 향상된다. 둘째, 기술 이기종성(Polyglot)을 지원하여 서비스별로 최적의 언어·프레임워크·DB를 선택할 수 있다. 셋째, 장애 격리(Fault Isolation)가 이루어져 하나의 서비스 장애가 전체 시스템으로 전파되지 않는다. 넷째, 서비스별 독립적 확장(Scale-Out)이 가능하여 트래픽이 많은 특정 서비스만 선택적으로 스케일 아웃할 수 있다.

MSA의 단점은 다음과 같다. 첫째, 서비스 간 통신 오버헤드가 발생하며, 네트워크 장애 시 분산 트랜잭션 처리가 복잡해진다. 둘째, 서비스 수가 많아질수록 운영 복잡도가 증가하여 쿠버네티스(Kubernetes)와 같은 컨테이너 오케스트레이션 도구가 필수적이다. 셋째, 분산 시스템 특성상 데이터 일관성 유지가 어렵고, 분산 추적(Distributed Tracing)과 로그 통합 관리가 필요하다.

  • 기업 적용 사례

카카오는 카카오톡·카카오페이·카카오맵 등 주요 서비스를 MSA 기반으로 운영하고 있으며, 쿠버네티스 컨테이너 오케스트레이션을 통해 수천 개의 마이크로서비스를 관리한다. 삼성SDS는 엔터프라이즈 고객사의 레거시 모놀리식 시스템을 MSA로 전환하는 클라우드 네이티브 전환 서비스를 제공하고 있다. 넷플릭스(Netflix)는 MSA 아키텍처를 전 세계적으로 성공적으로 도입한 선도 기업으로, Hystrix(회로차단기)·Eureka(서비스 디스커버리) 등 MSA 관련 오픈소스 도구를 공개하여 산업 전반에 영향을 미쳤다.

시스템설계

로드밸런싱에 대해서 설명해보세요.

시스템설계

컨테이너(Docker)와 가상머신(VM)의 차이점을 설명하고, 쿠버네티스가 왜 필요한지 말해보세요.

커뮤니티 Q&A

이론과 관련된 게시글이에요.

이해가 안 되거나 궁금한 점이 있다면 커뮤니티에 질문해 보세요!

게시글 작성하기