REST API

박총명·2025년 3월 5일
post-thumbnail

🎈REST

REST 등장 배경

HTTP는 다양한 HTTP 메서드(GET, POST, PUT, DELETE 등)를 지원한다. 실제로는 서버가 HTTP 메서드를 기존 설명에 맞게 사용하지 않더라도, 프로그램 개발은 가능하다. 하지만 각 서비스가 서로 다른 방식으로 개발하면, 개발자 사이의 소통에 문제가 발생할 수 있다. 따라서 기준이 되는 아키텍처로 REST를 채택할수 있다.

REST 이해하기

Representational State Transfer의 약자, 특정한 자원에 대하여, 자원의 상태에 대한 정보를 주고받는 개발 방식

HTTP URI(Uniform Resource Indentifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE, PATCH 등)를 통행 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미한다.

REST 특징

  1. Server-Client : 자원이 있는 쪽이 Server, 자원을 요청하는 쪽이 Client
  2. Stateless(무상태) : Client의 context를 Server에 저장하지 않는다. Server는 각각의 요청을 완전히 별개의 것으로 인식하고 처리한다.
  3. Cacheable(캐시 처리 가능) : 대량의 요청을 효율적으로 처리할 수 있다.
  4. Layered System(계층화) : 다중 계층으로 구성될 수 있다
  5. Uniform Interface(인터페이스 일관성) : URI로 지정한 Resource에 대한 요청을 통일되고, 한정적으로 수행하는 아키텍처 스타일을 의미한다.
  6. Self-Descriptivenss(자체표현) : 요청 메시지만 보고도 쉽게 이해할 수 있는 자체 표현 구조로 되어있다.

CRUD Operation

대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create, Read, Update, Delete를 묶어서 일컫는 말

  • Create : 데이터 생성(POST)
  • Read : 데이터 조회(GET)
  • Update : 데이터 수정(PUT, PATCH)
  • Delete : 데이터 삭제(DELETE)

REST 구성요소

구분설명
자원(resource)URI을 이용
행위(verb)HTTP 메서드를 이용
표현(representation)페이로드(payload)를 이용

REST 예제

Rest 방식을 채택한 서버로 요청(request)을 보내는 예시
1. 클라이언트가 회원가입을 하고 싶은 상태이다.
2. 이때, 아이디는 "gildong", 비밀번호는 "1234"로 설정하고 싶다면?

구분설명
자원회원(user)
행위회원 등록
표현아이디: "gildong", 비밀번호 "1234"

-> 패킷으로 표현하면

URI : https://www.example.com/users
HTTP Method : POST
Payload : {"id" : "gildong", "password" : "1234"}

REST의 장단점

장점

  • HTTP 프로토콜의 인프라를 그대로 사용하므로 REST API 사용을 위한 별도의 인프라를 구출할 필요가 없다.
  • HTTP 프로토콜의 표준을 최대한 활용하여 여러 추가적인 장점을 함께 가져갈 수 있게 해준다.
  • HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능하다.
  • REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악할 수 있다.
  • 서버와 클라이언트 역할을 명확하게 분리한다.

단점

  • 표준이 존재하지 않는다.
  • 사용할 수 있는 메소드가 4가지 뿐이다.
  • 구형 브라우저에서 아직 제대로 지원해주지 못하는 부분이 존재한다.

🎈REST API

API

Application Programming Interface, 프로그램이 상호작용하기 위한 인터페이스

애플리케이션 간에 데이터나 기능을 교환할 수 있도록 하는 일련의 규칙이나 프로토콜이다.

REST API

REST 아키텍처를 따르는 API

규칙
1. URI는 동사보다는 명사를, 대문자보다는 소문자를 사용하여야한다.
2. 마지막에 슬래시를 포함하지 않는다.
3. 언더바 대신 하이폰을 사용한다.
4. 파일확장자는 URI에 포함하지 않는다.
5. 행위를 포함하지 않는다.

호출

REST 방식을 따르고 있는 서버에 특정한 요청(request)을 전송하는 행위

REST API 연습하기

목킹(Mocking) : 어떠한 기능이 있는 것처럼 흉내내어 구현한 것을 의미한다.
처음부터 모든 서버 기능을 개발하고, 클라이언트 개발을 시작하면 개발 일정에 지연이 생길 수 있다. 따라서 클라이언트 개발을 위해 서버 기능을 테스트할 때 목킹을

RESTful

REST의 원리를 따르는 시스템을 의미

REST API의 설계 규칙을 올바르게 지킨 시스템을 RESTful하다고 할 수 있다.
REST API의 설계 규칙을 올바르게 지키지 못한 시스템은 REST API를 사용하지만 RESTful 하지 못한 시스템이라고 할 수 있다.

🔗출처

REST API 장단점
REST API 올바르게 사용하기

0개의 댓글