본문 바로가기
Study

HTTP, REST, REST API에 대해

by 이매➰ 2024. 10. 7.

모던 자바스크립트 Deep Dive에서 REST API 부분을 읽고 잘 모르겠는 부분들은 찾아보며 정리한 글 !

 

HTTP에 대해서는 주소창에 google.com을 입력하면 일어나는 일을 포스팅할 때 짧게 썼다

그리고 HTTP에 대해 자세히 기록한 포스팅도 있다

짧게 말해 HTTP는 웹에서 클라이언트와 서버 간의 데이터 전송을 위한 프로토콜이다

 

REST란? HTTP 프로토콜을 기반으로 클라이언트가 서버의 리소스(= 자원, 데이터)에 접근하는 방식을 규정한 아키텍처

REST의 기본 원칙을 성실히 지킨 서비스 디자인을 RESTful이라고 한다

 

REST API란? REST 아키텍처를 기반으로 설계된 API로 클라이언트가 서버의 리소스에 접근하고 상호작용할 수 있도록 한다

REST API는 리소스, 행위, 표현 세 가지 요소로 구성된다

  • 리소스(Resource): 다루고자 하는 데이터의 단위이며, 고유한 URL로 식별된다
    예를 들어, 사용자 목록을 나타내는 URL은 https://api.example.com/users가 될 수 있다
  • 행위(Action): 리소스에 대해 수행할 수 있는 작업을 HTTP 메서드로 표현한다
    GET 메서드는 리소스을 조회하고, POST 메서드는 새 리소스을 생성한다
  • 표현(Representation): 리소스의 상태를 나타내는 데이터 형식으로, 일반적으로 JSON이나 XML와 같은 페이로드를 사용한다
    페이로드 : 데이터 전송 시 실제로 전달되는 유의미한 데이터
    • 사용자 정보를 JSON 형식으로 표현한 예시
      {
        "id": 1,
        "name": "John Doe",
        "email": "john@example.com"
      }

 

구성 요소 내용 표현 방법
리소스 리소스 URL
행위 리소스에 대한 행위 HTTP 요청 메서드
표현 리소스에 대한 행위의 구체적 내용 페이로드 

 

주소창에 google.com을 입력하면 일어나는 일에서 HTTP를 고속도로 (웹 데이터를 주고받는 더 빠른 통신 경로)에 비교했는데

HTTP가 고속도로라면

  • REST : 교통규칙 (고속도로(= HTTP)에서 데이터가 어떻게 이동할지에 대한 규칙)
  • REST API : 내비게이션 시스템 (교통 규칙(= REST)을 기반으로 목적지에 도달하는 방법을 안내)

로 비유할 수 있다

 

REST API에서 리소스와 행위는 잘 구분되어야 한다

 

  • 올바른 방식 (행위는 메서드로, 리소스는 URL로)
    • GET /users: 사용자 목록 조회
    • POST /users: 새 사용자 추가
    • PUT /users/123: ID 123인 사용자 수정
    • DELETE /users/123: ID 123인 사용자 삭제
  • 잘못된 방식 (URL에 동사 포함)
    • /getUsers, /createUser처럼 동사를 포함한 URL (행위는 URL이 아니라 메서드로 표현해야 한다)