이기종 플랫폼 간 웹서비스로 인터페이스를 하는 경우 보통 SOAP방식과 REST방식을 주로 사용한다. 필자의 경우 레거시 시스템 환경에 따라 동일한 방식을 따라갔었는데 REST보다 SOAP 방식을 많이 사용했었다.
두가지 방식의 선호도는 업무에 따라 차이가 나는것 같다.
웹과 관련있는 업무는 REST를 많이 지향하는것 같고 이기종 플랫폼 간 많은 트랜잭션과 분산처리를 요구하는 업무는 SOAP을 지향하는것 같다.
메시지 구조
SOAP은 XML기반인 SOAP구조이며 HTTP Header에 SOAP Part와 Attachment가 존재한다. SOAP Part에는 SOAP Envelope(SOAP Header, SOAP Body)가 있다. 그리고 SOAP Body에는 Payload(Request, Response), SOAP Fault가 있고 SOAP Header과 SOAP Fault는 Optional이다.
REST에서 주로사용하는 JSON은 HTTP메시지 구조의 Body의 문자열 데이터이다.
{
"payload" : [
{
"key" : "value", "key1" : "value1"
},
{
"message" : {"key2" : "value2", "key3" : "value3"}
}
]
}
표면적으로 XML의 태그가 없어 간결하고 함축적인 부분만 포함되어있는것 같고 String, Number, Array 등 타입을 표현하기 괜찮은것 같다.
약어정리
JSON: JavaScript Object Notation
REST: Representational State Transfer
SOA: Service Oriented Architecture
SOAP: Simple Object Access Protocol
Reference(참조)
https://www.java-success.com/java-web-services-interview-questions-and-answers/
댓글 없음:
댓글 쓰기