본문 바로가기

개념

[WebService] SOAP vs REST

API 란?

API 는 Application Programming Interface 의 줄임말입니다.

어떤 서버의 특정한 부분에 접속하여 그 안에 있는 데이터와 서비스를 이용할 수 있게 해주는 소프트웨어 도구라고 한다.

즉, 요청과 응답을 사용하여 두 애플리케이션이 서로 통신하는 방법을 정의한 것으로 볼 수 있습니다.

 

REST (Representational State Transfer) API 란?

  • 네트워크를 통해서 컴퓨터들끼리 통신할 수 있게 해주는 아키텍쳐
  • REST 는 클라이언트가 서버 데이터 엑세스하는데 사용할 수 있는 GET, PUT, DELETE 등의 함수 집합을 정의합니다. 
  • 단일한 인터페이스를 사용하기 때문에 해당 API 를 사용하는 애플리케이션들이 동일한 경로를 통해서 접속해야하고, 그 방식이 단순하게 됩니다.
  • REST는 웹이 최적화 되어 있고 데이터 포맷이 JSON 이기 때문에 브라우저들 간에 호환성이 좋습니다.

Soap (Simple Object Acess Protocol)  API 란?

  • 단순 객체 접근 프로토콜을 사용합니다.
  • 클라이언트와 서버는 XML 을 사용하여 메시지를 교환합니다.
  •  보안이나 메시지 전송등에 있어 REST 보다 더 많은 표준들이 정해져 있기 때문에 조금 더 복잡합니다.
  • 은행용 모바일 앱처럼 보안 수준이 높아야 하거나, 신뢰할 수 있는 메시징 앱, 또는 ACID 를 준수해야하는 경우라면 SOAP 방식이 더욱 선호됩니다.
  • ACID 를 준수하기 때문에 데이터의 변형을 줄여주고, 데이터베이스와의 상호작용에 대해서 사전에 정확하게 정하기 때문에 데이터의 무결성을 지켜준다.

** ACID 란?

데이터 유효성을 보장하기 위한, 트랜잭션의 특징들의 앞글자를 딴 단어입니다.

 

Atomicity (원자성) : 모든 작업이 반영되거나 모두 콜백되는 특성

Consistency (일관성) : 데이터는 미리 정의된 규칙에서만 수정이 가능한 특성을 의미합니다. 숫자 칼럼에 문자열값을 저장이 안되도록 보장해준다.

Isolation (고립성) : A와 B 두 개의 트랜잭션이 실행되고 있을때, A의 작업들이 B에게 보여지는 정도를 의미

Durability (영구성) : 한번 반영된 트랜잭션의 내용은 영원히 적용되는 특성을 의미

 

 

REST API 와 Soap API 비교

 

  Soap API REST API
유형 프로토콜 아키텍처
기능 기능 위주
구조화된 정보 전송
데이터 위주
데이터를 위해서 리소스 접근 
데이터 포맷 XML 만 사용 일반 텍스트, HTML , XML , JSON 등 다양한 포맷을 사용
보안 WS-Security 와 SSL 지원 SSL 와 HTTPS 지원
대역폭 상대적으로 더 많은 리소스와 대역쪽이 필요 상대적으로 리소스가 적게 필요하고, 무게가 가벼움
데이터 캐시 사용 불가능 사용 가능
페이로드 처리 엄격한 통신 규약을 갖고 있으며 
모든 메시지는 보내기전에 알려져야 함
미리 알림 필요 없음
ACD 준수 자체적으로 ACD 기준이 있어서 데이터 손상을 줄여줌 ACD 준수와 관련된 내용 없음

'개념' 카테고리의 다른 글

R 프로그래밍의 개념  (0) 2022.09.26
STS (Strick-Transport-Security) 란?  (1) 2022.09.23
[IT 용어] On-Presmiss 란?  (0) 2022.09.02
[보안] PKCS(공개키 암호 표준)  (0) 2022.08.09
[Socket] 동기식 비동기식 차이  (0) 2022.07.07