u_ju
우주의 우당탕탕개발일지
u_ju
전체 방문자
오늘
어제
  • 분류 전체보기 (118)
    • 팀 프로젝트 (2)
    • 내배캠 WIL & TIL (91)
    • JS (0)
    • React (1)
    • CS (23)
    • Next (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 배열#함수
  • 코딩#바보#오류투성이#팀프로젝트
  • Component를 처음 선언하는 것을 Mount 라고 한다던데...?#props #state
  • 회의감#현타#나름뿌듯#고민거리#코딩#IT#CSS#JS
  • 일요일 오늘은 내가 바로 함수만들기 요리사 !

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
u_ju

우주의 우당탕탕개발일지

CS

RESTFUl API란 무엇일까?

2023. 3. 27. 13:53

RESTFUl API가 과연 무엇일까요?

 

Restful API라는 것은 Representational State Transfer API의 약자로, 웹 애플리케이션의 클라이언트와 서버 간 통신을 위한 *아키텍처입니다. Restful API는 HTTP 프로토콜을 기반으로 하며, Restful 웹 서비스는 HTTP 요청을 통해 데이터를 검색하거나 조작하는 데 사용된다고 합니다.

 

그렇다면 Restful API의 특징은 무엇일까요?

1.자원(Resourc) : 모든 자원에 고유한 식별자가 있고, 식별자를 통해 자원에 접근하는 방식.

2.행위(Verb) : HTTP 프로토콜의 메서드를 사용하여 자원에 대한 행위를 나타냅니다.
주로 사용되는 메서드는 GET, POST, PUT, DELETE 등이 있습니다

3.표현(Representations) - 클라이언트가 자원의 상태를 요청할 때, 서버는 해당 자원의 상태를 클라이언트에게 응답합니다.
이 응답은 JSON, XML 등 다양한 형태로 제공될 수 있습니다.

4.자기 서술적 메시지(Self-descriptive message) - RESTful API에서는 메시지 자체가 어떤 작업을 수행하는지 명확하게 알 수 있어야 합니다.
예를 들어, HTTP 프로토콜의 Accept 헤더를 사용하여, 클라이언트가 원하는 표현 형태를 지정할 수 있습니다.

5.하이퍼미디어(Hypermedia) - RESTful API에서는 하이퍼미디어를 사용하여, 자원 간의 관계를 표현합니다.
예를 들어, 블로그 글에 대한 URI를 표시하면서, 해당 글과 관련된 댓글, 태그 등의 정보도 함께 제공할 수 있습니다.

위와 같은 3개의 특징으로 인해서 RestFul API를 구분할 수 있습니다.

 

1. API의 사용자들은 API를 보다 쉽게 이해하고 사용할 수 있습니다.

- RESTful API를 구현하면, 자원의 구조를 명확하게 정의하고

- HTTP 메소드를 사용하여 자원에 대한 행위를 정의할 수 있습니다.

 

2. Restful API는 현재 가장 인기 있는 웹 서비스 아키텍처 중 하나입니다.

- Restful API를 따르는 웹 서비스는 클라이언트와 서버 간의 의사소통이 단순하고 효율적입니다.

- 또한, Restful API는 HTTP 프로토콜을 사용하기 때문에, HTTP 프로토콜을 지원하는 모든 플랫폼에서 사용할 수 있습니다.

 

Restful API의 종류

GET - 자원을 조회합니다.
POST - 자원을 생성합니다.
PUT - 자원을 수정합니다.
DELETE - 자원을 삭제합니다.
PATCH - 자원을 부분적으로 수정합니다.
OPTIONS - 서버가 지원하는 메서드를 확인합니다.
HEAD - GET 메서드와 유사하게, 자원의 헤더 정보만을 조회합니다.

 

Restful API가 아닌 것들

SOAP (Simple Object Access Protocol) - XML 기반의 프로토콜로, RESTful API와는 다른 방식으로 웹 서비스를 제공합니다.

gRPC (Google Remote Procedure Call) - 프로토콜 버퍼를 사용하여, RESTful API와는 다른 방식으로 통신합니다.

GraphQL - RESTful API와는 다른 쿼리 언어를 사용하여 데이터를 요청하고 응답합니다.

XML-RPC - XML을 사용하여 데이터를 전송하고, RPC(Remote Procedure Call) 방식으로 서버에서 제공하는 메소드를 호출합니다.

JSON-RPC - JSON을 사용하여 데이터를 전송하고, RPC 방식으로 서버에서 제공하는 메소드를 호출합니다.

위와 같은 API들은 RESTful API와는 다른 프로토콜과 방식으로 웹 서비스를 제공하므로, 사용 시 RESTful API와의 차이점을 이해하고 적절한 선택을 해야 합니다.

 

 

*아키텍처 : 아키텍처(Architecture)란 시스템이나 소프트웨어의 구조를 설계하고 구현하는 것을 의미.

'CS' 카테고리의 다른 글

캐시의 특징과 예시  (0) 2023.03.29
프레임워크와 라이브러리의 차이점  (0) 2023.03.29
Hoisting 과 TDZ란?  (0) 2023.03.28
parameter와 argument의 차이점  (0) 2023.03.28
웹 페이지가 랜더링되는 과정  (2) 2023.03.27
    'CS' 카테고리의 다른 글
    • 프레임워크와 라이브러리의 차이점
    • Hoisting 과 TDZ란?
    • parameter와 argument의 차이점
    • 웹 페이지가 랜더링되는 과정
    u_ju
    u_ju

    티스토리툴바