크고 작은 모든 서비스들
SOA 와 MSA가 최근 큰인기를 끌고 있다. 그 이유는?
- 서비스를 사용하면 상호 결합이 철저하게 분리되는 것처럼 보인다.(이는 일부만 맞는 말이다.)
- 서비스를 사용하면 개발과 배포 독립성을 지원하는 것처럼 보인다.(이는 일부만 맞는 말이다.)
SOA
아키텍처 관점에서 꼭 중요하다보 볼수는 없다.
서비스 그자체로는 아키텍처를 정의하지 않는다.
모노리틱 시스템이나 컴포넌트 기반 시스템에서 아키텍처를 정의하는 요소는 바로 의존성 규칙을 따르며 아키텍처 경계를 넘나드는 함수 호출이다.
서비스도 마찬가지다 플랫폼 경계를 가로지르는 함수 호출에 지나지 않는다.
서비스 이점
결합 분리의 오류
서비스들 사이의 결합이 확실히 분리된다는 점이다.
하지만 프로세서 내 또는 네트워크 상의 공유자원 때문에 결합될 가능성이 여전히 존재한다.
서로 공유하는 데이터에 의해 이들 서비스는 강력하게 결합된다.
인터페이스가 잘정의 되어야 되는데 이 점은 함수의 경우에도 마찬가지다.
개발 및 배포 독립성의 오류
전담팀이 서비스를 소유하고 운영한다는 점이다.
결합 분리의 오류에 따르면 서비스라고 해서 항상 독립적으로 개발하고, 배포하며, 운영할 수 있는 것은 아니다.
횡단 관심사가 지는 문제를 해결하는데는 매우 취약하다.
SOLID 설계원칙으로 해결했다.
서비스도 컴포넌트 기반 서비스를 해야 된다.