SOAP vs REST
SOAP은 XML 기반 프로토콜, REST는 HTTP 기반 아키텍처 스타일. REST는 6원칙을 만족하면 REST다.
둘의 비교표가 매회 출제되고, 특히 REST 6원칙 중 하나를 묻는 단답이 반복된다. SOAP 메시지 구조(Envelope/Header/Body)도 출제 가능성이 있다.
SOAP과 REST는 '웹에서 데이터를 주고받는 방법'이라는 점에서 같지만, 성격이 다르다. SOAP은 엄격한 XML 프로토콜이고 REST는 HTTP를 자연스럽게 활용하는 스타일이다.
| 구분 | SOAP | REST |
|---|---|---|
| 유형 | 프로토콜 | 아키텍처 스타일 |
| 데이터 형식 | XML (고정) | JSON 주로 (XML·Plain 가능) |
| 전송 프로토콜 | HTTP, SMTP, TCP, JMS 등 | HTTP만 |
| 메시지 명세 | WSDL | OpenAPI / Swagger |
| 상태 | Stateful 가능 | Stateless |
| 속도·크기 | 느림 · 무거움 | 빠름 · 가벼움 |
| 보안 | WS-Security 표준 | HTTPS · OAuth |
| 주 사용처 | 엔터프라이즈·금융·공공 | 웹·모바일 API |
REST 6원칙 — ① Client-Server(클라-서버 분리) ② Stateless(무상태) ③ Cacheable(캐시 가능) ④ Uniform Interface(일관된 인터페이스) ⑤ Layered System(계층 구조) ⑥ Code on Demand(옵션, 코드 실행)
SOAP 메시지 구조 — `<Envelope>` 안에 `<Header>`(메타데이터·보안)와 `<Body>`(실제 메시지). Envelope는 네임스페이스로 SOAP 표준임을 명시한다.
HTTP 메서드의 의미는 REST의 Uniform Interface를 구성하는 핵심이다. GET(조회), POST(생성), PUT(전체 수정), PATCH(부분 수정), DELETE(삭제)의 시맨틱을 지켜야 RESTful하다.
REST의 6원칙 중 '서버가 클라이언트의 상태를 저장하지 않는다'는 원칙은?
SOAP 기반 웹 서비스의 명세서 역할을 하는 XML 문서는?
REST 6원칙을 모두 쓰시오.
HTTP 메서드 중 리소스를 부분 수정할 때 사용하는 메서드는 ( ㉠ )이고, 전체 수정 또는 멱등성 있는 교체에는 ( ㉡ )를 사용한다.
SOAP은 HTTP뿐 아니라 SMTP·TCP 등 다양한 프로토콜 위에서 동작할 수 있다.