본문 바로가기

코딩

SOA and Micro Service

728x90
반응형

SOA(Service-Oriented Architecture)와 마이크로서비스는 모두 애플리케이션을 개별 서비스로 분해하는 아키텍처 스타일이지만, 마이크로서비스는 SOA를 더욱 세분화하여 애플리케이션 범위로 발전시킨 형태입니다.

핵심 특징

마이크로서비스는 작고 단일 목적을 가진 독립적으로 배포 가능한 서비스에 중점을 둡니다. 각 서비스가 자체 데이터를 관리하여 민첩성, 빠른 배포, 장애 격리가 가능합니다.

SOA는 기업 전체 범위에서 더 큰 규모의 재사용 가능한 서비스를 제공합니다. 종종 구성 요소를 공유하고 통합을 위해 중앙집중식 ESB(Enterprise Service Bus)에 의존하여 대규모 복잡한 기업 통합 및 레거시 시스템에 더 적합합니다.

주요 차이점

범위와 세분화

  • SOA: 여러 애플리케이션에서 공유되는 완전한 비즈니스 기능을 제공하는 대형 서비스로 기업 전체 범위
  • 마이크로서비스: 단일 애플리케이션 내에서 특정 작업에 집중하는 소형 단일 목적 구성 요소로 애플리케이션 범위

독립성

  • SOA: 공유 구성 요소와 공통 표준에 대한 의존성이 높아 서비스 간 상호 의존성 존재
  • 마이크로서비스: 자체 데이터 저장소를 가지고 최소한의 종속성으로 개별 배포가 가능한 고도로 독립적인 서비스

데이터 관리

  • SOA: 서비스 간에 공유 데이터 저장 메커니즘을 자주 사용
  • 마이크로서비스: 각 마이크로서비스가 일반적으로 자체 데이터 저장소를 관리하여 데이터 기술의 유연성 제공

통신 방식

  • SOA: 중앙집중식 통신을 위해 ESB(Enterprise Service Bus)를 자주 사용
  • 마이크로서비스: 독립적인 서비스 간 통신을 위해 HTTP/REST와 같은 경량 프로토콜 사용

배포

  • SOA: 더 많은 조정이 필요한 대형 모놀리식 단위 배포
  • 마이크로서비스: DevOps 관행으로 촉진되는 개별 서비스의 빈번하고 독립적인 배포 가능

언제 어떤 것을 선택할까?

SOA를 선택해야 하는 경우:

  • 대규모 복잡한 통합: 기존의 이질적인 기업 애플리케이션을 통합하는 것이 목표일 때
  • 기업 전체 재사용: 조직 전체에서 기능과 구성 요소를 공유해야 할 때
  • 강력한 거버넌스: 성숙한 개발 프로세스와 표준 및 중앙집중식 관리에 중점을 둔 기업

마이크로서비스를 선택해야 하는 경우:

  • 애자일 개발 및 혁신: 속도, 유연성, 빠른 반복이 우선순위일 때
  • 장애 격리 및 복원력: 개별 구성 요소의 장애에 대해 복원력이 필요한 애플리케이션
  • 최신 클라우드 환경: 확장성, 독립적인 업데이트, 유연한 기술 스택이 필요한 클라우드 네이티브 애플리케이션
728x90
반응형

'코딩' 카테고리의 다른 글

RAG System Architecture  (0) 2025.09.05
Software Architecture Styles  (0) 2025.09.05
SSO; Single Sign On  (0) 2025.09.04
OAuth 2.0  (0) 2025.09.03
django HTTP Security; Headers, SSL, Session, Cookie  (0) 2025.08.26