* API란?
데이터를 요청하고 응답하기 위한 인터페이스
* SOAP API란?
Simple Object Access Protocol(http,https)
그 자체로 프로토콜이며 보안이나 메세지 전송에 있어 REST보다 많은 표준들이 정해져있기 때문에 조금 복잡합니다.
따라서 SOAP을 대안으로 나온 것이 RESTful 기반입니다.
> 기본구조
- SOAP-ENV:Envelope
- SOAP-ENV:Header
- SOAP-ENV:Body
위와 같은 구조로 XML문서로 표현되는데 복잡한 구성으로 인해 HTTP 상에서 전달되기 무겁고, 메세지 인코딩/디코딩 과정 등 웹서비스 개발의 난이도가 높아 개발 환경의 지원이 필요하다고 합니다.
* REST API란?
REST API는 네트워크를 통해서 컴퓨터들끼리 통신할 수 있게 해주는 아키텍쳐 스타일입니다.
REST API는 인터넷 식별자(URL)와 HTTP 프로토콜을 기반으로 합니다. REST는 HTTP 프로토콜 덕분에 '단순함'이 핵심이라고 할 수 있습니다. 데이터 포맷으로는 브라우저 간 호환성이 높은 제이슨(JSON)을 사용합니다.
> 장점
- 웹에 최적화 되어있고, 데이터 포맷이 JSON이기 때문에 브라우저 간에 호환성이 좋음
- 성능과 확장성이 뛰어남
> 단점
- HTTP메소드를 이용하기 때문에 편하기도 하지만 HTTP로 인해 메소드가 한정적이다.
- RESTful API로는 다양한 기종에서 필요한 정보를 일일이 구현하는 것이 힘들다. 따라서 GraphQL 같은 언어가 생겨난 것!
* SOAP VS REST
* 결론
웹 서비스에서는 REST방식의 API를, 기업용 애플리케이션 같이 보안이 엄격하게 필요한 경우 다양한 요구사항 만족을 위해 SOAP API를 선택하는 경우가 많다.
<참고자료>
www.inflearn.com/course/spring-boot-restful-web-services/lecture/39082?tab=curriculum
Spring Boot를 이용한 RESTful Web Services 개발 - 인프런
이 강의는 Spring Boot를 이용해서 RESTful Web Services 애플리케이션을 개발하는 과정에 대해 학습하는 강의으로써, REST API 설계에 필요한 기본 지식에 대해 학습할 수 있습니다. 초급 웹 개발 프레임워
www.inflearn.com
'FrameWork > Spring Boot' 카테고리의 다른 글
[Spring Boot] JPA Entity (0) | 2022.08.04 |
---|---|
[Spring Boot]JPA의 기본 개념 (2) | 2021.01.18 |
[Spring Boot] Spring과 Spring Boot 차이 (0) | 2020.12.11 |