일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 리팩토링
- 클린 코드
- Lombok
- string
- 캐시
- 캐싱
- 책임
- cache
- Refactor
- spring boot
- 인터프리터
- 도메인 모델
- 객체지향
- JPA
- 협력
- 스프링부트
- Java
- 캡슐화
- 자바
- 추상화
- 클린코드
- SRP
- 객체지향의 사실과 오해
- 쿼리 최적화
- 객체
- REST API
- clean code
- 재사용성
- JIT
- 스프링
- Today
- Total
GO SIWOO!
[RESTful API 서비스] - SOAP와 RESTful 그리고 API 본문
📌API란 무엇인가?
API는 Application Programming Interface의 약자로, API는 컴퓨터나 컴퓨터 프로그램 사이의 연결로 일종의 소프트웨어 인터페이스이며 다른 종류의 소프트웨어에 서비스를 제공합니다.
우리가 익히 알고 있는 소프트웨어 인터페이스는 UI(사용자 인터페이스)로 윈도우에서 이용하는 U는 GUI(Graphical User Interface), 코드로만 이루어진 CLI(Command LineInterface)등이 있다. 이 UI를 통해서 사용자와 시스템간의 인터페이스를 정의합니다.
그리고 우리가 알고자 하는 API는 시스템과 시스템간의 인터페이스를 정의한 것으로 시스템간의 데이터를 주고 받기 위한 방법과 그 규격을 뜻하는 것으로 기능을 어떻게 구현하는지 몰라도 프로그래머가 사용 할 수 있는 장점을 갖지만 API의 사용법인 API 문서가 공개되어 있지 않으면 우리는 사용을 할 수 없습니다.
아래의 그림을 보면 UI와 API의 차이를 한눈에 알 수 있습니다.
📌SOAP란 무엇인가?
SOAP란 Simple Object Access Protocol의 약자로 HTTP, HTTPS, SMTP 등을 이용해 XML 기반의 메시지를 교환하는 프로토콜로서 RESTful API와 비슷하게 API를 제공하는데 있어 사용됩니다. HTTP 프로토콜만 사용하는 RESTful API와는 다르게 다양한 프로토콜을 사용하는 모습을 볼 수 있습니다.
SOAP의 장점으로는 다음과 같습니다.
- 첫째, 플랫폼과 프로그래밍 언어에 독립적으로 사용한다.
- 둘째, XML 기반이다.
- 셋째, 간단하고 확장이 용이하다.
- 넷째, 방화벽에 제한을 받지 않는다.
- 다섯째, W3C 표준으로 개발한다.
- 여섯째, 보안이 우수하다.
SOAP의 메시지 구조와 포멧은 다음과 같습니다.
하지만 위와 같이 SOAP의 폼을 볼 때에 XML 포멧을 이용하고 구조가 복잡해 RESTful API 방식에 비해서 느리고 구현이 어려우며 오버헤드가 발생할 확률이 높아 요즈음에는 사용을 지양하는 추세입니다.
📌RESTful이란 무엇인가?
그렇다면 RESTful API란 무엇인가?
REST는 Representational State Transfer의 약자로 2000년도에 HTTP의 주요 저자 중 한 사람인 로이 필딩(Roy Fielding)의 박사학위 논문에서 최초로 소개되었습니다. REST는 자원을 이름으로 구분하여 자원의 상태를 주고받는 모든 것을 의미합니다. 이 REST는 기본적으로 HTTP 프로토콜, 통신규약을 사용하기에 웹의 장점을 최대한 활용할 수 있습니다.
RESTful 은 위와같은 REST API를 제공하는 웹 서비스 입니다.
RSET의 구성으로는 다음과 같습니다.
- 하나, 자원(URI) : 자원으로서, 모든 자원에는 고유한 ID가 존재하고, 이 자원은 Server에 존재합니다. 사용자는 URI를 이용해 자원을 지정하고 해당 자원의 상태에 대한 조작을 Server에 요청합니다.
- 둘, 행위(Method) : 자원에 대한 행위로서, HTTP 프로토콜의 Method를 사용하는데 HTTP 프로토콜은 GET, POST, PUT, PATCH, DELETE의 Method인 CRUD기능을 제공합니다. 각 Method의 설명은 다음과 같습니다.
- 셋, 표현(Message Pay Load) : 자원에 대한 행위의 내용으로서, Client와 Server가 데이터를 주고받는 형태로 JSON, XML, TEXT, RSS등이 있습니다.
'Develop > RESTful API 서비스 개발' 카테고리의 다른 글
[RESTful API 서비스] - REST API 성숙도 모델, RIchardson Maturity Model (0) | 2022.09.20 |
---|