API
- API는 응용 프로그램 개발 시 운영체제나 프로그래밍 언어 등에 있는 라이브러리를 이용할 수 있도록 규칙 등을 정의해 놓은 인터페이스를 의미한다.
- API 종류에는 Windows API, 단일 유닉스 규견(SUS), Java API, 웹 API 등이 있으며 누구나 무료로 사용할 수 있게 공개된 API를 Open API라고 한다.
REST
REST(Representational State Transfer)는 월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식이다. 로이 필딩은 HTTP의 주요 저자 중 한 사람으로 그 당시 웹(HTTP) 설계의 우수성에 비해 제대로 사용되어지지 못하는 모습에 안타까워하며 웹의 장점을 최대한 활용할 수 있는 아키텍처로써 REST를 발표했다고 한다.
한 마디로 REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에, 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이며, 네트워크 상에서 Client와 Server 사이의 통신 방식 중 하나이다.
-> 소프트웨어 아키텍처
소프트웨어 구조 또는 소프트웨어 아키텍처(software architecture)는 소프트웨어의 구성요소들 사이에서 유기적 관계를 표현하고 소프트웨어의 설계와 업그레이드를 통제하는 지침과 원칙이다.
RESTful API
REST의 설계 규칙을 잘 지켜서 설계된 API를 RESTful한 API라고 한다.
그래서 RESTful은 일반적으로 이러한 아키텍처를 구현하는 웹 서비스를 나타내는 데 사용됩니다.
REST 구성 요소
REST API는 다음의 구성으로 이루어져 있다.
- 자원(RESOURCE) - URI
- 행위(Verb) - HTTP METHOD
- 표현(Representations)
HTTP METHOD
HTTP METHOD는 소프트웨어 아키텍처인 REST를 지키면서 행위를 전달하는 방법이다. 대표적인 4가지가 있고 이 외에도 HEAD, OPTIONS, PATCH, CONNECT 가 있다.
REST API
그래서 정리를 하자면, REST API는 웹에서 데이터를 전송 및 처리하는 방법을 정의한 인터페이스를 말한다. 모든 데이터 구조와 처리방식은 REST에서 URL을 통해 정의되며, 그래서 매우 직관적으로 이해할 수 있다.
GET, POST와 같은 메소드를 보며 Ajax 가 문득 생각났다.
이 둘이 비교가 가능한 개념인지는 잘 모르겠다.
AJAX
Asynchronous JavaScript and XML의 약자이다.
AJAX 또는 XMLHttpRequest 는 비동기 방식으로 데이터를 주고받기 위해 개발된 자바스크립트 기술이다
Ajax는 웹 페이지 전체를 다시 로딩하지 않고도, 웹 페이지의 일부분만을 갱신할 수 있다. Ajax를 이용하면 백그라운드 영역에서 서버와 통신하여, 그 결과를 웹 페이지의 일부분에만 표시할 수 있다.
최근에는 JSON 형태의 데이터를 주고받는 웹 비동기 기술로 정착되고 있다. AJAX는 HTML, XML, JSON 등 다양한 데이터를 주고받을 수 있다.
Ajax 프레임워크는 Prototype, script.aculo.us, dojo, jQuery 등이 있다.
이 중에서 가장 익숙한 것은 jQuery일 것이다.
다른 개발자 블로그를 참고하다가 이런 글을 보았다.
문장을 Ajax는 REST 설계 원칙을 잘 지키는가? 이렇게 생각하면 될 것이다.
https://for-development.tistory.com/125
Ajax는 Restful 할 수 있는가.
Ajax는 비동기적인 웹 어플리케이션을 제작하려고 XMLHttpRequest 객체를 이용해서 전체 페이지를 새로 고치지 않고도 페이지의 일부만을 위한 데이터를 로드하는 기법이다. 궁금한 건 이 Ajax가 Rest
for-development.tistory.com
알아보면서 아직은 핵심적인 궁금증은 해결되지 않은 것 같지만 명백한 것은
Ajax는 기술이고 REST는 아키텍처 유형이다.
Ajax는 일련의 기술로 페이지를 다시 로드할 필요없이 UI의 일부분을 동적으로 업데이트하는 방법이고,
반면에 REST는 일종의 소프트웨어 아키텍처입니다. 이것은 사용자가 서버에 정보를 요청하는 방법이다.
이건 나중에 다시 참고하고 싶은 글!
https://testmanager.tistory.com/230
15 REST API 인터뷰 질문 및 답변
1) REST와 RESTful이 무엇인지 설명하십시오. REST는 REpresentational State Transfer를 나타냅니다. 그것은 웹 API를 작성하는 비교적 새로운 측면입니다. RESTful은 REST 아키텍처 개념을 적용하여 작성된 웹..
testmanager.tistory.com
'IT정보' 카테고리의 다른 글
[Java] java.lang.UnsupportedOperationException Error (0) | 2022.10.30 |
---|---|
[Computer Architecture] ARM 프로세서 (0) | 2022.08.29 |
[면뽀] GET과 POST 차이 (0) | 2022.02.14 |
[면뽀] 브라우저 주소창에 www.google.com 입력하면? (0) | 2022.02.14 |
Library VS Framework (0) | 2021.12.06 |