서비스 지향 아키텍처(SOA)란 무엇인가요?
서비스 지향 아키텍처(SOA)는 독립적인 서비스 모음을 중심으로 애플리케이션을 설계하는 아키텍처 접근 방식입니다. 서비스는 고객 주문 처리나 재고 보고서 작성처럼 특정 작업을 완료하고 구체적인 결과를 제공하는 모든 비즈니스 기능이 될 수 있습니다. 여러 서비스를 결합하여 복합 애플리케이션을 만들면 최종 사용자에게 더욱 다양한 기능을 제공할 수 있습니다.
SOA 접근 방식의 장점으로는 서비스 구성 요소를 더 쉽게 유지 관리하고 업데이트할 수 있다는 점이 있습니다. 각 구성 요소가 더 간결하고 독립적으로 구성되어 있어 다른 모든 요소에 영향을 주지 않고도 코드를 수정하거나 요소를 교체하기가 더 쉽습니다. 그러나 서비스 간 통신을 지원하는 최적의 방법을 결정할 때 문제가 발생합니다. SOA에서는 일반적으로 엔터프라이즈 서비스 버스(ESB)를 서비스 간 통신의 중심 수단으로 사용합니다. ESB는 변화에 유연하게 대응하지 못하는 경우가 많고, 대체로 복잡성을 가중하며, 서비스의 시작과 끝을 파악하기 어렵게 만듭니다.
SOA와 마이크로서비스 비교
SOA가 현재의 마이크로서비스 정의와 매우 비슷하다고 생각하셨다면, 그렇게 생각하는 사람은 여러분뿐만이 아닙니다. 마이크로서비스 역시 독립적으로 작동하면서도 서로 협력하도록 설계된 작고 독립적인 서비스입니다. 하지만 SOA와 마이크로서비스 사이에는 중요한 차이점이 있습니다. 그중 몇 가지를 살펴보겠습니다:
- 마이크로서비스는 매우 세분화된 서비스로, 기능적 이유에 따라 일정한 세분성 수준에서 분리됩니다. 즉, 마이크로서비스 아키텍처에서는 데이터베이스와 애플리케이션 서버, 제품 지원을 포함한 하나의 서비스를 동일한 팀이 처음부터 끝까지 관리합니다. 반면 SOA는 서비스를 논리적 방식으로 분리합니다. 여기서 차이점은 논리적으로 그룹화된 서비스가 여러 기능 간에 공유된다는 것입니다. 서비스에 장애가 발생해 해당 서비스를 사용하는 모든 기능이 영향을 받기 전까지는 좋아 보입니다. 마이크로서비스 아키텍처는 비즈니스 서비스를 각각의 고유한 기능 안에 완전히 포함하고, 해당 기능을 수행하고 비즈니스 가치를 제공하는 데 필요한 모든 요소를 함께 구성함으로써 이러한 영향을 없애도록 설계되었습니다. 그 과정에서 일부 요소를 중복해야 하더라도 마찬가지입니다.
- 마이크로서비스는 기능별로 완전히 독립되어 있으므로 궁극적으로 SOA를 제약하는 동일한 통신 프레임워크, 프로토콜 및 사양에 얽매이지 않습니다. 대신 마이크로서비스는 각 엔드포인트 집합 내부에 인텔리전스를 유지하고, 이를 연결하는 단순한 패브릭을 갖추는 데 중점을 둡니다. 이를 구현하는 가장 효과적인 방법은 일반적으로 단일 API 게이트웨이를 구축하는 것입니다. 이 게이트웨이는 내부 시스템 아키텍처를 포함하고 REST와 같은 경량 웹 프로토콜을 사용하여 각 독립 마이크로서비스로 요청을 라우팅합니다. 또한 각 마이크로서비스는 다른 서비스의 API를 사용하는 경우가 많지만, 게이트웨이는 모바일 앱이 백엔드에 직접 접근하지 못하도록 합니다. 이러한 수준의 유연성은 웹 서비스 사양에 얽매이고 애플리케이션 연결을 ESB에 의존하는 SOA로는 결코 달성할 수 없습니다.
많은 사람이 마이크로서비스를 마침내 제대로 구현된 SOA라고 생각하지만, 실제로는 두 아키텍처를 구분하는 몇 가지 중요한 차이점이 있으며, 여러 측면에서 마이크로서비스가 복잡한 애플리케이션에 더 효과적인 아키텍처 선택지가 됩니다. SOA와 마이크로서비스에 대해 자세히 알아보려면 무료 전자책 마이크로서비스 구축: 세분화된 시스템 설계을 다운로드하세요.
NGINX는 어떻게 도움이 될까요?
NGINX Plus와 NGINX는 Dropbox, Netflix, Zynga와 같이 트래픽이 많은 웹사이트에서 사용하는 업계 최고의 부하 분산 솔루션입니다. 전 세계적으로 3억 5천만 개의 웹사이트 이상이 콘텐츠를 빠르고 안정적이며 안전하게 제공하기 위해 NGINX Plus와 NGINX Open Source를 사용합니다.
소프트웨어 기반 애플리케이션 전송 컨트롤러 (ADC)인 NGINX Plus는 동급 기능의 하드웨어 솔루션보다 훨씬 더 효과적이고 경제적으로 마이크로서비스 아키텍처를 지원하도록 설계되었습니다.
- NGINX Plus는 각 마이크로서비스의 성능과 안정성을 향상시키는 완전한 애플리케이션 전송 및 부하 분산 솔루션을 제공합니다.
- NGINX Plus는 유연성과 확장성이 뛰어나 API 게이트웨이이자 각 서비스의 엔드포인트로서 기존 스택에 원활하게 통합됩니다.
- NGINX Plus는 고성능 HTTP 서버로 작동하여 마이크로서비스 작업을 최고의 속도와 효율성으로 완료합니다.

