IT 도서 리뷰/개발자가 되기 위해 꼭 알아야 하는 IT 용어

[PART2] 네트워크/통신/데이터 - TERMS 10

goldenkiwi-coder 2025. 1. 15. 17:22

[ TERMS 10 ] SOAP / REST

SOAP와 REST를 비교하는 이미지 (출처 : https://www.wallarm.com/what/differences-soap-vs-rest)

1. SOAP(Simple Object Access Protocol) / REST(Representational State Transfer)의 정의

 SOAP / REST는 인터넷에서 원하는 자원을 요청하기 위해 필요한 형식이다.

 

2. SOAP / REST 은 어디서 접하게 될까?

 웹 페이지를 개발할 때 사용자가 자원을 요청하고 서버에서 응답하는 과정에서 정확한 내용 전달을 위해서 SOAP / REST가 사용된다.

 

3.. SOAP / REST 알아보기

>  SOAP

 SOAP은 웹 페이지를 통신할 수 있도록 설계된 최초의 표준 형식으로 서비스가 있는 공간에 접근하여 자원들을 요청하는 형식이다.

 

  • 동작방식

 웹 사이트 제공자가 웹 서비스를 설명하고 사용하는 방법이 적힌 자료인 WSDL을 먼저 만든 후 UDDI에 저장한다. 그 후 UDDI가 등록된 자원을 공개하고 발견하는 방법을 정의한다. 사용자가 UDDI를 발견하여 원하는 자원을 SOAP 메시지로 인코딩하여 요청하면 웹 사이트 제공자는 디코딩하여 사용자 정보를 확인하고 응답을 인코딩하여 전달한다.

SOAP 동작과정을 나타낸 이미지 (출처 : https://claude.ai/)

 

  • 서비스 게시 (Publication)
    • 웹 서비스 제공자가 WSDL 문서를 생성합니다
    • WSDL 문서를 UDDI 레지스트리에 등록합니다
  • 서비스 발견 (Discovery)
    • 클라이언트가 UDDI 레지스트리에서 필요한 서비스를 검색합니다
    • UDDI가 해당 서비스의 WSDL 위치를 반환합니다
    • WSDL 파서가 WSDL 문서를 분석합니다
    • 분석된 정보를 바탕으로 Stub 코드를 생성합니다
  • 서비스 바인딩 (Binding)
    • 클라이언트가 생성된 Stub 코드를 통해 SOAP 요청을 보냅니다
    • 웹 서비스가 요청을 처리하고 SOAP 응답을 반환합니다

 

 

  • 메시지 구조

SOAP 메시지 구조를 설명하는 이미지(출처 : https://jeevangupta.com/all-about-soap-apis-what-is-soap-api-and-its-characteristics/)

 SOAP의 메시지 구조는 선택적인 헤더와 필수적인 바디 부분으로 구성된 XML로 되어 있다.

  • Envelope는 모든 SOAP 구조의 상위 개념으로 헤더와 바디 부분을 포함한다.
  • 헤더 부분은 메시지 경로를 제공하여 처리될 앱 관련 정보를 전달하는 데 사용한다.
  • 바디 부분은 메시진의 본문 관련 주요한 정보를 포함하고 있다.

 

>  REST

 웹의 장점을 최대한 활용하기 위해 고안된 형식으로 자원을 구분하여 해당 상태를 주고받는 것을 의미한다. 자원은 URI로 구분되며 HTTP 메소드를 활용해 상태를 전달하여 응답한다.

 

  • 동작방식

 REST는 사용자 컴퓨터와 서버 컴퓨터를 나누어 서버 컴퓨터의 자원을 HTTP 메소드를 활용하여 요청한 뒤 서버 컴퓨터에서 해당 요청을 받아 응답하는 구조이다.

REST의 동작 구조를 설명하는 이미지 (출처 : https://mannhowie.com/rest-api)

 

  • 형식

 REST는 HTTP 메소드를 활용한 형식이다.

  • POST : 새로운 자원을 생성하는 메소드
  • GET : 자원을 요청하기 위한 메소드
  • PUT : 기존의 자원을 수정하기 위한 메소드
  • DELETE : 자원을 삭제하기 위한 메소드

 

4. SOAP / REST를 사용하는 이유

 메시지를 교환할 때 형식이 없다면 메시지를 보내는 곳의 의도를 받는 곳에서 다르게 해석할 수 있다. 또한 타인과 협업하여 웹을 개발하는 경우 인계 받는 개발자나 해당 자원으로 다른 제품을 만드는 개발자에게 혼란을 줄 수 있다. 잘 만들어진 형식은 URI만으로 어떤 요청인지 알 수 있다.

 

5. SOAP / REST 비교하기

>  SOAP의 장점

 SOAP은 웹 페이지를 제공하기 위한 표준이 잘 되어있다. 그리고 UDDI에 등록된 사용자만이 자원을 확인할 수 있어 보안성이 좋다.

 

>  SOAP의 단점

 SOAP은 WSDL을 작성하여 서비스한다. 하지만 WSDL은 REST보다 배우기가 어렵고 복잡하다. 이 때문에 코드가 길어지고 유지 보수가 어렵다는 단점이 있다. 또한 SOAP는 UDDI를 거쳐 서비스가 된다. 웹의 가장 큰 장점 중 하나는 어디서든 누구든지 쉽게 접근 가능하다는 것인데, UDDI를 거쳐야 하므로 접근이 제한된다.

 

>  REST의 장점

 REST는 사용자와 서버를 분리하여 보다 단순한 구조를 생선하였따. 4가지 메소드만으로 자원을 관리하여 사용하기 쉽고 유지 보수가 용이하다. 또한 자원들이 고유한 URI로 저장되어 있어 URI만으로 어떠한 요청인지 예상할 수 있다.

 

>  REST의 단점

REST는 네 가지 메소드를 사용하기 때문에 메소드 형태가 제한적이다. 단순히 보고, 쓰고, 지울 수만 있다. 또한 정해진 표준이 없어 개발자마다 다르게 활용하기 때문에 표준에 대한 추가적인 약속이 필요하다.

구분 SOAP REST
지향점 서비스 지향 아키텍쳐 자원 중심 아키텍쳐
중간 매체 UDDI를 통해서 서비스함 중간 매체 없이 서비스함
난이도 고난이도 프로그래밍 능력이 요구됨 쉬운 데이터 제공을 목적으로 출발
개발환경 환경설정 및 개발환경이 요구됨 개발/실행환경이 필요 없음

 

6. SOAP / REST 더 알아보기

>  함께 알아 두면 좋은 용어

  • Swagger
  • HTTP / HTTPS