SOAP API vs REST API
서비스 간 통신을 위해 사용하는 API는 구현 방식에 따라 대표적으로 두 가지, SOAP와 REST가 있습니다. 경력직 자바 개발자 면접에서도 자주 나오는 질문으로 평상시에 알고는 있지만, 좀 깊게 이해하고 기록으로 남기기 위해서 포스트를 작성해봤습니다. 주로 두 방식의 차이점과 각각의 방식을 사용했을 때 이점 위주로 정리해 보았습니다.
REST (Representational State Transfer)
REST API는 JSON 데이터 포맷을 기반으로 하는 통신 규약입니다. (HTTP와 JSON 이용) SOAP에 비해 양식이 간단하기 때문에 성능과 브라우저 간에 호환성이 좋습니다. 다른 말로 하면 구조화되지 않은 데이터만 전송한다고 보면 됩니다. 호출하는 방식도 URL 이기 때문에 구성이 매우 간단합니다.
SOAP (Simple Object Access Protocol)
SOAP API의 경우 XML 데이터 포맷을 기반으로 통신이 이루어지는 프로토콜입니다. 구조화된 데이터 양식을 가지고 있어 REST에 비해서 더 복잡하고 사이즈도 더 큽니다. 호출 방식은 인터페이스를 통해서 이루어지기 때문에 더 복잡하지만, 자체 설정을 통해서 재호출도 가능하기 때문에 신뢰도가 더 높습니다. 그래서 리소스가 더 필요함에도 불구하고 많은 회사들이 SOAP 방식을 사용하고 있습니다.
SOAP VS REST 비교
앞서 살표 본 내용으로 SOAP와 REST의 차이를 살펴보겠습니다.
- | SOAP | REST |
유형 | 프로토콜 | 아키택쳐 |
데이터 포멧 | XML | HMTL, XML, JSON 등 |
보안 | WS-security, SSL | SSL, HTTPS |
대역폭 | 크다 | 작다 |
HTTP 메소드 | POST, GET으로 CRUD 처리 | HTTP, POST, GET, PUT DELETE, PATCH |
캐싱 | 어렵다 body를 해석하여 적용 가능 |
쉽다 HTTP 레벨에서 처리 |
호출 방식 | 인터페이스 | URL |
마지막으로 경험을 말씀드리자면, 회사에서는 가벼운 서비스의 경우 RESTful, 예약이나 결제 같이 신뢰도가 중요한 서비스의 경우 SOAP 방식을 사용합니다. SOAP이 개발은 더 복잡하지만, 안정적인 서비스에는 적합해서 더 자주 사용했던 기억이 있네요ㅎ
[ 참고자료 ]
blog.wishket.com/soap-api-vs-rest-api/
'[개발] Programming' 카테고리의 다른 글
CSP (Content Security Policy) 설정 - 웹 취약점 막기 (0) | 2021.11.28 |
---|---|
X-Frame-Options 설정으로 clickjacking 공격 예방하기 (0) | 2021.10.25 |
sitemap (0) | 2018.10.25 |