SOA(서비스 지향 아키텍처)란 무엇인가요?

Michael Chen | Content Strategist | 2024년 3월 28일

서비스 지향 아키텍처(SOA)는 '서비스'라는 이름의 독립적인 부품들을 조합해 기능적이고 확장 가능한 소프트웨어 시스템을 구축하는 데 집중하는 소프트웨어 설계 방식입니다. 서비스들은 서로 상호 작용하며 다양한 작업을 수행합니다. 한 번 로그인하면 다양한 비즈니스 애플리케이션에 모두 액세스할 수 있는 시스템이 그 좋은 예입니다. SOA의 핵심은 모듈성, 재사용성, 상호 운용성입니다 복잡한 기업용 애플리케이션을 더 작고 관리하기 용이한 서비스 단위로 나누면 그만큼 유연성과 확장성이 향상됩니다.

서비스들은 애플리케이션에 하드코딩되지 않습니다. 대신 레지스트리에 게시되고, 애플리케이션은 특정 서비스를 사용하고자 할 때마다 레지스트리에 최신 버전을 요청합니다. 이같은 방식을 활용하면 애플리케이션에 대한 자세한 지식을 갖추지 않은 담당자도 서비스를 간단히 변경 또는 업데이트할 수 있습니다. SOA 접근 방식을 사용하면 비즈니스 요구사항의 변화에 간단히 적응하고, 관련 기능을 제공하는 시스템들을 통합할 수 있습니다.

SOA를 사용하면 개별적인 서비스들이 느슨하게 결합되어 필요한 데이터를 서로 통신하고 전송할 수 있습니다. SOA 접근 방식을 사용한 클라우드 소프트웨어 개발의 이점은 다음과 같습니다.

  • 개발 주기 단축. 기존 서비스를 통합하고 용도를 변경하므로 개발자가 여러 기능을 처음부터 새로 구축하지 않아도 됩니다.
  • 간단한 유지 관리. SOA를 사용하면 대규모의 상위 프로젝트에는 영향을 주지 않는 방식으로 개별적인 서비스들을 독립적으로 유지 관리할 수 있습니다. 디버깅과 문제 해결 작업을 분리해 업타임을 늘릴 수 있습니다.
  • 적응성. SOA는 이전 버전과의 호환성 및 미래 버전의 계획을 모두 지원합니다. 개발자는 오래된 서비스를 새로운 환경으로 가져올 수도 있고, 업데이트된 하드웨어 및 클라우드 인프라를 활용하는 최신 버전으로 교체할 수도 있습니다.
  • 확장성. SOA 관리 계층에서 서비스를 모니터링할 수 있으며, 수요 증가로 인해 특정 서비스의 성능이 지나치게 저하되면 신규 인스턴스를 시작해 성능을 향상시킬 수 있습니다. 해당 서비스를 사용하는 애플리케이션은 신규 인스턴스에 대한 내용은 알 수 없고 허용 가능한 운영 수준이 유지되고 있다는 사실만을 확인 가능합니다.

서비스 지향 아키텍처의 예시는 다음과 같습니다.

  • 유니버설 로그인을 지원하는 사이트 및 앱: 많은 기업이 하나의 비밀번호만으로 직원들에게 필요한 모든 애플리케이션에 액세스할 수 있는 환경을 구축하고 있습니다. SOA 아키텍처를 적용하면 기업의 애플리케이션들이 사용하는 일련의 서비스를 통해 인증 관리 작업을 처리하는 시스템을 구축할 수 있습니다.
  • 인앱 AI 또는 데이터 분석을 제공하는 애플리케이션: 클라우드에서 시스템을 실행할 때의 주된 이점 중 하나는 클라우드 서비스를 사용해 애플리케이션의 기능을 간단히 개선할 수 있다는 것입니다. 데이터 집합을 활용해 그래프를 작성하는 것과 같이 간단한 기능만을 수행하는 클라우드 서비스도 있습니다. 반면 개발자가 애플리케이션에 AI 기능을 추가하기 위해 호출하는 서비스 집합과 같이 복잡한 서비스도 있습니다.
  • 온라인 리테일 업체: SOA를 사용하면 재고 데이터 가져오기, 구매 추적, 안전한 결제, '다른 고객들이 좋아한 제품' 제안과 같은 AI가 생성한 데이터 가져오기 등의 서비스를 활용해 이커머스 사이트를 더 간단히 개발하고 관리할 수 있습니다.

SOA(서비스 지향 아키텍처)란 무엇인가요?

서비스 지향 아키텍처(SOA)는 각각 특정한 기능을 제공하고 네트워크를 통해 호출할 수 있는, 독립적이고 재사용 가능한 구성품(서비스)들을 사용해 애플리케이션을 개발 또는 보완하는 설계 패러다임입니다. 개별 서비스의 범위는 사전 정의되어 있고, 아키텍처 내의 다른 구성 요소 또는 서비스와 서로 액세스하며 시스템의 전반적인 기능 및 성능을 향상시킬 수 있습니다.

서비스 지향 아키텍처에 사용되는 서비스의 예시로는 결제 처리 서비스, 고객 관리 서비스, 이커머스 사이트에 내장 가능한 제품 제안 서비스 등이 있습니다. 지구 반대편에 있는 도시의 현재 시간을 제공하는 것처럼 훨씬 더 간단한 서비스도 사용됩니다. SOA가 제공하는 강력한 이점의 예시로는 결제 서비스를 사용해야 하는 애플리케이션은 변경하지 않고, 결제 프로세서만을 전환할 수 있다는 것 등이 있습니다.

SOA를 사용하면 개별 서비스를 각자 독립적으로 개발, 테스트, 배포할 수 있는 유연한 모듈형 소프트웨어 인프라를 구축할 수 있습니다. 두 가지 주요 이점은 유지 관리 용이성 및 확장성입니다.

SOA는 특정 애플리케이션의 프레임워크 내에서 다수의 서비스가 느슨하게 결합된 방식입니다. 각각의 서비스는 요청된 입력/출력값을 제공할 수 있는 모듈 역할을 수행합니다. 애플리케이션은 사용 중인 서비스의 버전을 알 필요가 없습니다. 레지스트리를 검색해 필요한 기능을 제공하는 가장 최신 버전의 서비스를 찾기만 하면 됩니다. SOA 모델로 구축된 리테일 업체 웹사이트의 워크플로를 예로 들어 보겠습니다.

  1. 쇼핑객이 사이트에 등록된 이메일 주소 및 비밀번호를 사용해 싱글사인온 로그인 정보를 입력합니다. 리테일 애플리케이션은 인증을 위해 해당 로그인 정보를 인증 서비스로 전송하고, 로그인이 확인되면 고객 프로필을 로드합니다.
  2. 쇼핑객이 원하는 특정 제품을 검색합니다. 상품 목록은 재고 관리 서비스에 연결되어 있습니다. 해당 재고 관리 서비스가 고객과 가까운 오프라인 매장 및 장거리 배송용 풀필먼트 센터의 재고 데이터를 불러옵니다.
  3. 고객은 내장된 카트 서비스를 사용해 결제를 완료하고, 거래 정보는 안전한 거래를 위한 결제 처리 서비스로 관련 정보를 전송합니다.
  4. 거래가 완료되면 고객은 다른 서비스를 사용해 재고 및 배송 물류 서비스로부터 데이터를 불러와 주문 처리 현황을 확인할 수 있습니다.

SOA를 사용하면 사전 구축된 서비스를 통합하는 개발 방식을 활용해 위와 같은 사이트의 개발 속도를 향상시킬 수 있습니다. 예시로 든 리테일 업체의 경우 각각의 모듈을 직접 개발해야 하는 부담을 덜 수 있을 뿐만 아니라, 서비스들의 업데이트 현황을 직접 추적할 필요도 없습니다. IT 부서는 기능, 보안, 가용성이 입증된 검증된 서비스를 사용하기만 하면 됩니다.

SOA 개발의 핵심은 모듈식으로 사고하고 서비스 통합이 가능한 부분을 파악하는 것입니다. 클라우드에서 개발된 애플리케이션은 웹 서비스 형식으로 구현된 방대한 SOA용 서비스들을 간단히 활용할 수 있습니다.

CIO가 반드시 알아야 할 10가지 클라우드 트렌드

유연한 모듈식 SOA 인프라는 클라우드를 도입한 기업에게 큰 이점을 제공합니다. 그 외의 주요 클라우드 트렌드들도 함께 살펴보세요.

서비스 지향 아키텍처 FAQ

서비스 지향 아키텍처의 예시로는 어떤 것들이 있나요?

소비자가 이해하기 쉬운 서비스 지향 아키텍처 관련 예시로는 러너용 앱이 있습니다. SOA 방식으로 구축된 앱은 거리 추적 및 지도와 관련된 도구를 직접 구축하는 대신 휴대폰에 내장된 GPS 기기 관련 서비스, Google Maps와 같은 기존 지도 서비스를 사용할 수 있습니다. 또한 기상청이 제공하는 현지 날씨 데이터를 가져올 수도 있습니다. 앱이 수행하는 주된 역할은 다양한 서비스로부터 가져온 데이터를 러너에게 원활하게 제공하는 것입니다.

SOA와 마이크로서비스의 차이점은 무엇인가요?

SOA와 마이크로서비스는 네트워크 기반 함수 호출을 통해 애플리케이션에 기능을 제공한다는 비슷한 목표를 가지고 있습니다. 그러나 SOA는 더 광범위하고, 일반적으로 더 높은 수준에서의 사용을 전제로 하는 방식입니다. 반면 마이크로서비스는 애플리케이션 수준에서의 사용을 전제로 하고, 필요한 만큼 반복 가능한 극히 전문화된 단일 작업과 관련된 서비스를 제공합니다. 예를 들어 보안 로그인을 위한 인증 플러그인은 SOA의 일부로 간주되는 반면, 비밀번호를 암호화하는 반복적인 서비스는 마이크로서비스라고 할 수 있습니다. 마이크로서비스는 SOA 서비스 내에서 호출되거나 더 큰 프로젝트에 통합될 수 있습니다. 앞선 예시의 인증 서비스는 인증 작업을 완료하는 과정에서 암호화 마이크로서비스를 사용합니다. SOA와 마이크로서비스의 주된 차이점은 서비스 적용 범위입니다.

서비스 지향 아키텍처의 주된 특징은 무엇인가요?

서비스 지향 아키텍처의 주된 특징은 다음과 같습니다.

  • 내부적으로 개발되었거나 타사 라이선스를 통해 이용 가능한 독립적인 서비스들을 느슨하게 결합해 보다 큰 규모의 애플리케이션을 구축.
  • 애플리케이션 성능에는 영향을 주지 않는 방식으로 서비스들을 다양한 소프트웨어 시스템에 연결하고 업데이트할 수 있는 상호 운용성.
  • 애플리케이션과는 무관하게 필요할 때마다 서비스들을 확장 및 축소할 수 있는 확장성.
  • 소프트웨어 개발자는 서비스들을 사용할 뿐 사용하는 서비스들의 유지 관리를 직접 책임지지 않음.

서비스 지향 아키텍처는 어디에 사용되나요?

서비스 지향 아키텍처는 시스템의 요구 사항을 충족하는 독립형 서비스들이 존재하는 거의 모든 사례에 사용할 수 있습니다. 대부분의 소프트웨어 제작자는 광범위한 서비스 개발 생태계로부터 원하는 서비스를 찾을 수 있으며, 높은 수준의 커스터마이징을 요하는 프로젝트인 경우에도 신원 인증, 지도 데이터 가져오기 등의 작업에 개별 서비스를 활용할 수 있습니다.