요즘IT
위시켓
최근 검색어
전체 삭제
최근 검색어가 없습니다.

회원가입을 하면 원하는 문장을
저장할 수 있어요!

다음

회원가입을 하면
성장에 도움이 되는 콘텐츠를
스크랩할 수 있어요!

확인

개발

SOAP API vs. REST API, 두 방식의 가장 큰 차이점은?

년차,
어떤 스킬
,
어떤 직무
독자들이 봤을까요?
어떤 독자들이 봤는지 궁금하다면?
로그인

API(응용 프로그램 인터페이스)의 구조를 이야기할 때, 가장 대표적인 두 가지 방식으로 SOAP와 REST가 흔히 비교됩니다. 사실 두 가지 방식은 비슷하기는 하지만 본질적으로는 서로 다른 기술이며, 세부적인 수준까지 비교하기 쉽지 않습니다. SOAP는 프로토콜이고, REST는 아키텍처 스타일이기 때문입니다. 이 두 방식은 서로 다르게 구성되고, 서로 다르게 기능하며, 서로 다른 상황에서 사용됩니다.
여러분이 애플리케이션을 개발하는 데 있어서 각각의 방식에 어떤 장점들이 있는지, 어떤 것이 더 잘 맞는지 비교해볼 수 있도록 이번 시간, SOAP API와 REST API의 개념과 차이점을 알려드리고자 합니다.


잠깐, API란 무엇인가요?

아주 쉽게 말해서,API는 어떤 서버의 특정한 부분에 접속해서 그 안에 있는 데이터와 서비스를 이용할 수 있게 해주는 소프트웨어 도구입니다. API를 이용하면 두 개의 소프트웨어가 서로 통신을 주고받을 수 있으며, 이는 우리가 모바일을 이용해서 하는 모든 행동들의 기반을 이루고 있다고 할 수 있습니다. API가 있음으로써 IT 아키텍처가 간단하게 만들어질 수 있고, 마케팅에 힘을 실어주며, 데이터 공유를 더 쉽게 해줍니다.
(API, 더 자세하게 알아보기)


REST API란?

REST(Representational State Transfer)는 네트워크를 통해서 컴퓨터들끼리 통신할 수 있게 해주는 아키텍처 스타일입니다.

REST API는 인터넷 식별자(URI)와 HTTP 프로토콜을 기반으로 합니다. REST는 HTTP 프로토콜 덕분에 '단순함'이 핵심이라고 할 수 있습니다. 데이터 포맷으로는 브라우저 간 호환성이 좋은 제이슨(JSON)을 사용합니다. REST API는 구축과 확장이 간단하지만, 크고 복잡하게 만들 수도 있습니다. 이는 API를 어떻게 만들고, 무엇을 추가하고, 어떤 목적으로 설계되었는지에 따라 달려있습니다.

REST API는 클라이언트와 서버 사이에서 통신할 수 있게 하고, 아키텍처를 만들 수 있게 해줍니다. REST 방식의 API라면, 클라이언트-서버 모델로 구축되었다는 것을 의미하며, 정보의 페이로드(실제 전달하려는 내용)가 두 지점 사이를 왕복하게 됩니다.

REST API는 단일한 인터페이스를 사용합니다. 이러한 점 때문에해당 API를 사용하는 애플리케이션들이 동일한 경로를 통해서 접속해야 하고, 그 방식이 단순하게 됩니다. 여기에는 장점도 있고, 단점도 있기 때문에 향후 개발 과정에서 어떤 영향이 있는지에 대해서 알고 싶다면 전문가와 상의해보는 것이 좋습니다.

REST는 웹에 최적화되어 있고, 데이터 포맷이 JSON이기 때문에 브라우저들 간에 호환성이 좋습니다. 또한, 그 성능과 확장성이 뛰어난 것으로도 알려져 있죠. 하지만 다른 기술들과 마찬가지로 그 자체의 기능이 정지되거나 여러분의 앱을 먹통으로 만들 수도 있습니다. 그래서 REST로는 풀지 못하는 문제들을 해결하기 위해서 그래프 QL과 같은 언어가 생겨난 것입니다.


SOAP API란?

SOAP(Simple Object Access Protocol)는 그 자체로 프로토콜이며, 보안이나 메시지 전송 등에 있어서 REST보다 더 많은 표준들이 정해져있기 때문에 조금 더 복잡합니다. 이러한 표준들로 인해서 오버헤드가 많기는 하지만, 보안, 트랜잭션, ACID(원자성, 일관성, 고립성, 지속성)을 준수해야 하는 보다 종합적인 기능이 필요한 조직에게는 적합한 방식이 될 수 있습니다. 굳이 비교를 하자면, SOAP는 웹 서비스 시나리오에 적용하기에는 그다지 좋지 않기 때문에, 기업용 애플리케이션 등을 작업하는데 더 이상적이라고 말할 수 있습니다.

SOAP는 보안 수준이 엄격합니다. SOAP에서는 SSL도 지원하고 WS-Security라는 자체 표준의 보안 기능도 가지고 있지요. 따라서 은행용 모바일 앱처럼 보안 수준이 높아야 하거나, 신뢰할 수 있는 메시징 앱, 또는 ACID를 준수해야 하는 경우라면 SOAP 방식이 더욱 선호됩니다.

REST에서는 표준화된 메시징 시스템이 갖춰져 있지 않으며, 통신 장애가 있을 경우 재시도를 통해서만 조치할 수 있습니다. 반면 SOAP 표준에는 성공/반복 실행 로직이 규정되어 있기 때문에, SOAP API를 통해서 통신을 할 때 처음부터 끝까지 신뢰성을 제공합니다.

SOAP 표준에는 ACID 준수에 관한 사항이 있습니다. ACID를 준수하기 때문에 데이터의 변형을 줄여주고, 데이터베이스와의 상호작용에 대해서 사전에 정확하게 정하기 때문에 데이터의 무결성을 지켜주지요. ACID는 데이터 일관성을 위한 다른 방식들보다도 더 보수적이기 때문에, 금융 정보 등의 민감한 데이터를 주고받을 때 일반적으로 많이 사용됩니다.


SOAP vs REST: 핵심적인 차이들

SOAP는 프로토콜이고, REST는 아키텍처 스타일입니다. API는 애플리케이션이 서버에 접속할 수 있도록 설계된 일종의 도구이며, SOAP는 서비스 인터페이스를 이용해서 서버에 접근하고, REST는 URI를 이용해서 접근합니다.

API라는 것은 결국은 앱의 페이로드를 처리하기 위해서 만들어진 것인데, REST와 SOAP는 페이로드를 처리하는 방식에 차이가 있습니다. 페이로드는 인터넷을 통해서 전송되는 데이터입니다. 그렇기 때문에 페이로드가 '무거운'경우에는 더 많은 리소스가 필요합니다.REST는 HTTP와 JSON을 사용하기 때문에 페이로드의 무게를 가볍게 할 수 있습니다. 하지만 SOAP에서는 XML에만 의존합니다.

보안을 다루는 방식도 매우 다릅니다. SOAP는 WS-Security를 지원하는데, WS-Security는 전송 레벨에서 아주 뛰어나며 SSL보다도 조금 더 복잡하기 때문에 기업용 보안 도구에 통합하는데 보다 이상적입니다. 둘 다 양단간(end-to-end) 보안성을 위해서 SSL을 지원하며, REST에서는 HTTP의 보안 버전인 HTTPS 프로토콜을 이용할 수 있습니다.

SOAP는 서버와 긴밀하게 연결하며, REST는 보다 느슨한 형태로 연결됩니다. 프로그래밍을 할 때는 일반적으로 추상화 계층이 더 많을수록 양쪽의 상호작용에서 통제할 수 있는 부분이 줄어들기는 하지만 오히려 구현하기는 쉬우며, 나중에 그 방식을 전부 고치지 않고도 업데이트를 쉽게 할 수 있는 편입니다. API를 이용해서 서버와 상호작용할 때에도 마찬가지입니다. 그리고 바로 이 부분에서 SOAP와 REST가 특히 차이를 보이고 있습니다. SOAP는 서버와 매우 긴밀하게 연결되기 때문에 그 통신 방식이 매우 엄격하며, 그래서 수정이나 업데이트를 하는 것이 보다 더 어렵습니다. REST 방식의 API에서는 클라이언트에서 해당 API가 필요하지 않지만, SOAP 방식의 API에서는 상호작용을 시작할 때조차도 클라이언트에서 API에 관한 모든 정보들을 필요로 합니다.


웹서비스에서는 SOAP가 확실하게 좋은 방법이 아니라면 개발자들이 REST 방식의 API를 택하는 경우가 많으며, 기업용 애플리케이션인 경우에는 보다 많은 리소스와 아주 엄격한 보안 그리고 여러 다양한 요구 사항들을 만족해야 하기 때문에 SOAP 방식을 택하는 경우가 많습니다. 이번 시간 REST API와 SOAP API에 대해 알아보시면서 여러분의 개발 프로젝트에 적합한 방식을 찾아보시기 바랍니다.


  • 본문 내용은 ‘SOAP vs. REST: A Look at Two Different API Styles’를 각색하여 작성되었습니다.
  • 좋아요

    댓글

    공유

    공유

    댓글 0
    작가
    31
    명 알림 받는 중

    작가 홈

    작가
    31
    명 알림 받는 중
    위시켓은 기업의 프로젝트와 IT프리랜서를 이어주는 온라인 아웃소싱 플랫폼입니다. 업계 최고의 IT 분야 전문성을 자랑하며, 클라이언트와 파트너가 모두 안심하고 이용할 수 있는 각종 솔루션을 제공합니다.

    좋아요

    댓글

    스크랩

    공유

    공유

    요즘IT가 PICK한 뉴스레터를 매주 목요일에 만나보세요

    요즘IT가 PICK한 뉴스레터를
    매주 목요일에 만나보세요

    뉴스레터를 구독하려면 동의가 필요합니다.
    https://auth.wishket.com/login