PE Notes · 서비스
SOAP와 REST
XML 계약의 SOAP와 자원·HTTP의 REST를 가르고, 제약 조건과 CRUD 매핑, GraphQL·gRPC 자리를 비교합니다.
봉투에 도장을 잔뜩 찍으면 은행 간 이체는 안심이고, 모바일 목록은 무겁습니다. 는 XML 메시지 프로토콜입니다. 는 HTTP 위에서 자원을 다루는 아키텍처 스타일입니다. 하나를 “구식”, 하나를 “정답”으로 두지 않습니다.
프로토콜과 스타일
SOAP는 Envelope·Header·Body입니다. 오류는 Fault입니다. 이 계약을 기계가 읽게 하고, WS-Security·원자 트랜잭션이 금융·의료 연동에 남아 있습니다. 전송은 HTTP만이 아닙니다.
REST는 식별자·표현·자기 서술 메시지가 균일 인터페이스입니다. JSON이 흔하고 XML도 됩니다. 보안은 HTTPS 위 ·가 보통입니다. 상태는 서버 세션이 아니라 요청에 실립니다.
| 비교축 | SOAP | REST |
|---|---|---|
| 정체 | 프로토콜 | 아키텍처 스타일 |
| 몸체 | XML | JSON 등 |
| 전송 | HTTP 외 가능 | HTTP |
| 계약 | WSDL | OpenAPI 권장 |
| 보안 | WS-Security | HTTPS + 토큰 |
| 트랜잭션 | 표준 확장 | 앱이 설계 |
| 상태 | 상태 유지 가능 | 무상태 원칙 |
| 자리 | 기업 연동 | 웹·모바일·MSA |
Fielding의 제약은 클라이언트-서버, 무상태, 캐시, 계층, 균일 인터페이스, 선택적 코드 온 디맨드입니다. 는 그 균일의 한 끝입니다. 는 REST에 계약을 뒤늦게 얹습니다.
메서드가 CRUD를 가리킨다
GET은 조회이고 멱등입니다. POST는 생성에 가깝습니다. PUT은 전체 교체, PATCH는 일부, DELETE는 삭제입니다. 캐시와 중간 계층이 GET을 전제로 숨을 쉽니다.
기업 간 EDI를 API로 연 자리에는 SOAP 잔존과 REST 공개가 같이 있습니다. 오픈뱅킹처럼 자원과 토큰이 맞으면 REST가 기본입니다.
GraphQL과 gRPC
은 한 끝점에서 필요한 칸만 물어 과다 조회를 줄입니다. 는 프로시저와 바이너리로 MSA 내부를 빠르게 합니다. REST는 웹의 공통어, GraphQL은 복잡한 읽기, gRPC는 내부 호출입니다.
답안은 정체 차이, REST 제약, 메서드 매핑, 세 API의 자리를 한 표에 올립니다.