
서비스라는 구성요소를 사용해 비즈니스 애플리케이션을 생성하는 소프트웨어 개발 방식
각 서비스는 비즈니스 기능을 제공하며, 플랫폼과 언어가 달라도 서로 통신할 수 있다.
개발자는 SOA를 사용해서 서로 다른 시스템 내의 서비스를 재사용하거나 독립적인 여러 서비스를 결합하여 복잡한 작업을 수행한다.
Example
조직 내의 여러 비즈니스 프로세스에서 사용자 인증 기능이 필요할 경우, 모든 비즈니스 프로세스에 대해 인증 코드를 재 작성하는 대신에, 단일 인증 서비스를 생성해서 모든 애플리케이션에서 재사용하도록 한다.
SOA에서 서비스는 독립적으로 작동하고 소비자에게 기능 또는 데이터를 제공한다.
소비자는 정보를 요청하고 입력 데이터를 서비스에 보낸다.
서비스는 데이터를 처리하고 태스크를 수행한 다음 응답을 다시 보낸다.
Example
인증 서비스에서는 사용자는 서비스에 이름과 암호를 제공한다. 서비스는 이름과 암호를 확인하고 적절한 응답을 반환한다.
MSA(Micro Service Architecture)는 SOA 아키텍처 스타일이 발전한 것이다. MSA는 SOA의 단점을 해결해서 소프트웨어가 최신 클라우드 기반 엔터프라이즈 환경과 더 잘 호환되도록 한다.
SOA는 더 넓은 엔터프라이즈 범위를 포괄한다. 여러 사업부가 공통의 데이터 공유 플랫폼에서 효율적으로 협업하게 된다. 반면 MSA는 더 좁은 범위에 적용된다.
Example
재고관리 서비스는 전자상거래 시스템에서 SOA 서비스로 제공된다. 하지만 MSA에서는 재고관리를 가용성 검사, 주문처리 및 회계와 같은 소규모 서비스로 나눌 수 있다.
SOA는 대규모 엔터프라이즈 애플리케이션을 구축하는데 적합할 수 있지만 소규모 비즈니스별 애플리케이션을 확장하려면 더 많은 유연성이 필요하다. SOA 한계점은 다음과 같다.
https://aws.amazon.com/what-is/service-oriented-architecture/
https://aws.amazon.com/ko/compare/the-difference-between-soa-microservices/