REST API

Brunch Kim·2022년 8월 25일
0

Web application

목록 보기
2/2
post-thumbnail

REST API웹 서비스를 통해 서로 다른 시스템이 데이터를 주고받을 수 있게 해주는 기술입니다. 쉽게 말해서, 인터넷 상에서 서버와 클라이언트(예: 웹 브라우저, 모바일 앱 등)가 서로 대화할 수 있도록 돕는 방법이죠.


핵심 개념

1. REST (Representational State Transfer)

- REST는 "상태 전이"라는 의미로, 웹에서 자원을 (데이터를) 요청하고 그 상태를 반환하는 방식입니다.
- REST는 기본적으로 HTTP 프로토콜을 사용하여 데이터가 요청되고 응답됩니다.
- 자원(resource)을 식별하는 URL(웹 주소)을 통해 데이터를 요청하거나 변경할 수 있습니다.

2. API (Application Programming Interface)

- API는 소프트웨어 간 상호작용을 위한 규칙입니다. 
- 서로 다른 소프트웨어가 서로 대화할 수 있도록 도와주는 "약속"입니다.

주요 특징

1. HTTP 사용

- 특징: HTTP는 우리가 웹사이트를 방문할 때 사용하는 기본적인 인터넷 통신 방법입니다. 예를 들어, 웹 주소를 입력하면 그 페이지를 가져오는 방식을 말합니다.
- 비유: 음식을 주문할 때 "전화"를 사용하는 것처럼, REST API도 HTTP를 통해 서버와 통신을 합니다. 전화를 통해 주문을 한다고 생각하면 됩니다.
- 주문 예시:
  - GET: 메뉴를 보고 "이거 주세요!" (음식을 요청)
  - POST: 새로운 음식을 추가하고 싶다! (새로운 정보를 보내기)
  - PUT: 이미 있는 음식의 가격을 바꾸고 싶다! (음식 정보 수정)
  - DELETE: 이제 더 이상 피자를 안 팔 거예요! (음식 삭제)

2. 자원에 대한 주소(URL)

- 특징: REST API는 **각각의 데이터에 고유한 주소(URL)**가 있습니다. 그 주소로 요청을 보내면 원하는 데이터를 받을 수 있습니다.
- 비유: 음식점에 전화할 때 "피자 메뉴" 또는 "치킨 메뉴"처럼 정확한 메뉴를 요청하는 것과 비슷합니다. **정확한 메뉴(자원)**를 요청하려면 **정확한 주소(URL)**가 필요합니다.
- 예시:
  - https://food.com/menu/pizza : 피자 메뉴를 요청하는 주소
  - https://food.com/menu/chicken : 치킨 메뉴를 요청하는 주소

3. 상태 독립성

- 특징: REST API는 각 요청이 독립적이어서, 이전의 요청이나 이후의 요청에 영향을 주지 않습니다. 한 번 주문했다고 해서 두 번째 주문이 달라지지 않습니다.
- 비유: 레스토랑에 갔을 때 **"피자 한 판 주세요!"**라고 요청하고, 그 뒤에 다시 **"피자 한 판 주세요!"** 라고 요청해도 매번 새롭게 시작하는 것과 같습니다. 이전 주문에 관계없이 다시 한 번 새로 시작하는 방식입니다.

4. 표현 방식 (JSON)

- 특징: REST API는 데이터를 **JSON 형식**으로 주고받습니다. JSON은 사람이 읽기 쉽고, 컴퓨터가 처리하기도 쉬운 간단한 데이터 포맷입니다.
- 비유: 레스토랑에서 주문서를 작성할 때 간단한 주문서 양식을 사용한다고 생각하시면 됩니다. 이 양식이 바로 JSON 같은 건데요, 음식의 이름, 수량, 가격 등을 표기하는 간단한 양식입니다.
- 예시:
  - 요청: "menu": "pizza"
  - 응답: {"name": "Pizza", "price": 15}

5. 클라이언트-서버 구조

- 특징: REST API는 **클라이언트**(사용자)와 **서버**(데이터를 관리하는 시스템)가 서로 독립적으로 작동합니다. 클라이언트는 서버에 요청을 보내고, 서버는 응답을 해줍니다.
- 비유: **고객**(클라이언트)은 **음식점**(서버)에서 음식을 주문하고, 음식점은 주문에 맞게 음식을 만들어서 고객에게 제공하는 구조입니다. 고객은 음식점의 내부 작업을 몰라도, 결과적으로 원하는 음식을 받을 수 있습니다.

RESTful

REST 개념을 잘 따르는 시스템을 RESTful 하다고 부릅니다.
REST API는 데이터(자원)를 요청하고 응답하는 방식을 정의하는 규칙 집합이라면,
RESTful은 그 규칙을 제대로 따르는 서비스라고 이해할 수 있습니다.


정리

  • REST API는 웹에서 서버와 클라이언트가 데이터를 주고받을 수 있도록 해주는 규칙입니다.
  • HTTP를 사용하여 다양한 요청(데이터 가져오기, 보내기, 수정하기, 삭제하기)을 할 수 있습니다.
  • 웹에서 자원(정보)을 URL을 통해 요청하고, 그에 대한 응답을 받는 방식입니다.
  • 이와 같은 방식은 모바일 앱, 웹사이트, 다른 서버 간의 통신에 광범위하게 사용됩니다.
profile
브런치 즐기는 여유있는 날

0개의 댓글