[ TERMS 10 ] SOAP / 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 메시지로 인코딩하여 요청하면 웹 사이트 제공자는 디코딩하여 사용자 정보를 확인하고 응답을 인코딩하여 전달한다.
- 서비스 게시 (Publication)
- 웹 서비스 제공자가 WSDL 문서를 생성합니다
- WSDL 문서를 UDDI 레지스트리에 등록합니다
- 서비스 발견 (Discovery)
- 클라이언트가 UDDI 레지스트리에서 필요한 서비스를 검색합니다
- UDDI가 해당 서비스의 WSDL 위치를 반환합니다
- WSDL 파서가 WSDL 문서를 분석합니다
- 분석된 정보를 바탕으로 Stub 코드를 생성합니다
- 서비스 바인딩 (Binding)
- 클라이언트가 생성된 Stub 코드를 통해 SOAP 요청을 보냅니다
- 웹 서비스가 요청을 처리하고 SOAP 응답을 반환합니다
- 메시지 구조
SOAP의 메시지 구조는 선택적인 헤더와 필수적인 바디 부분으로 구성된 XML로 되어 있다.
- Envelope는 모든 SOAP 구조의 상위 개념으로 헤더와 바디 부분을 포함한다.
- 헤더 부분은 메시지 경로를 제공하여 처리될 앱 관련 정보를 전달하는 데 사용한다.
- 바디 부분은 메시진의 본문 관련 주요한 정보를 포함하고 있다.
> REST
웹의 장점을 최대한 활용하기 위해 고안된 형식으로 자원을 구분하여 해당 상태를 주고받는 것을 의미한다. 자원은 URI로 구분되며 HTTP 메소드를 활용해 상태를 전달하여 응답한다.
- 동작방식
REST는 사용자 컴퓨터와 서버 컴퓨터를 나누어 서버 컴퓨터의 자원을 HTTP 메소드를 활용하여 요청한 뒤 서버 컴퓨터에서 해당 요청을 받아 응답하는 구조이다.
- 형식
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
'IT 도서 리뷰 > 개발자가 되기 위해 꼭 알아야 하는 IT 용어' 카테고리의 다른 글
[PART2] 네트워크/통신/데이터 - TERMS 12 (0) | 2025.01.31 |
---|---|
[PART2] 네트워크/통신/데이터 - TERMS 11 (0) | 2025.01.21 |
[PART2] 네트워크/통신/데이터 - TERMS 9 (0) | 2025.01.12 |
[PART2] 네트워크/통신/데이터 - TERMS 8 (0) | 2025.01.06 |
[PART2] 네트워크/통신/데이터 - TERMS 7 (1) | 2024.12.26 |