XML은 eXtensible Markup Language의 약자로, 데이터 저장과 전송을 위한 형식을 정의하는 마크업 이다. HTML과 마찬가지로 태그를 사용하여 데이터 구조를 표현하며, 데이터가 어떻게 구성되는지를 표현할 수 있는 장점이 있다.
<person>
<name>John Doe</name>
<age>30</age>
<gender>Male</gender>
</person>
XML은 특히 웹 서비스의 분야에서 많이 사용되며, 데이터의 구조화를 가능하게 하기 떄문에, 데이터의 처리와 분석에 용이하다.
JSON은 JavaScript Object Notation의 약자로, 데이터 교환을 위한 경량의 데이터 형식이다. XML과 비교하여 더 적은 구문을 사용하면서도, 구성을 이해하기 쉽다는 장점도 있으면서, 키-값 속성을 통해 더 빠른 파싱이 가능하다.
{
"person": {
"name": "John Doe",
"age": 30,
"gender": "Male"
}
}
최근에는 웹 서비스의 대부분의 데이터 포맷이 JSON으로 이루어진다.
SOAP은 Simple Object Access Protocol의 약자로, 웹 서비스에서 사용되는 프로토콜 중 하나이다. XML 기반으로 하며, 보안, 트랜잭션, 메시지 전송 등의 기능을 제공한다. SOAP은 HTTP, SMTP 등의 프로토콜을 이용하여 메시지를 전송하는, RESTful API와는 달리, URL을 사용하지 않는다.
SOAP은 대규모 시스템에서 데이터를 안전하게 전송할 수 있는 강력한 기능을 제공하지만, XML 구문 분석에 필요한 리소스와 시간이 많이 소모되어, RESTful API보다 느리고 복잡하다는 단점이 있다.
보안적인 통신에서 중요한, 기업용 시스템, 금융 시스템 등에서 현재에도 자주 사용되는 프로토콜이며, 해당 프로토콜이 필요한 경우라면 아직도 XML을 사용하고 있다. 이 역시도 RESTful 서비스로 전환되고 있는 추세이다.