[BackEnd] REST란

뽕칠이·2024년 7월 4일
0

REST(Representational State Transfer)

소프트웨어 아키텍처 스타일 중 하나로 인터넷과 같은 복잡한 네트워크 통신을 관리하기 위해 어떻게 동작해야 하는지에 대한 제약 조건을 정의한다. REST 기반 아키텍처를 사용하면 대규모의 고성능 통신을 안정적으로 사용할 수 있다.

REST의 6가지 제약 조건

  • 클라이언트-서버 : 클라이언트는 잘 정의된 인터페이스로 서버와 분리
  • 무상태 : 서버가 이전의 모든 요청과 독립적으로 모든 클라이언트 요청을 완료하는 통신 방법
  • 캐시 : 응답은 자체 캐시에 저장
  • 균일한 인터페이스 : 아키텍처를 단순화하고 분리하여 각 부분이 독립적으로 발전하도록 함
  • 계층 시스템 : 클라이언트는 일반적으로 최종 서버에 직접 연결되었는지, 아니면 중간에 있는 중개자에게 연결되었는지 알 수 없음
  • 주문형 코드 : 서버는 가상 머신 내에서 실행될 수 있는 논리를 클라이언트로 전송하여 클라이언트의 기능을 일시적으로 확장하거나 정의할 수 있음

API(Application Programming Interface)

다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙을 정의하는 것을 의미한다.

REST API === RESTful API

REST 아키텍처 스타일을 따르는 API를 의미한다.

REST API 동작

  1. 클라이언트가 서버에 요청, 클라이언트는 API 문서에 따라 서버가 이해하는 방식으로 요청 형식을 지정

  2. 서버가 클라이언트를 인증하고 해당 요청을 수행할 수 있는 권한이 클라이언트에 있는지 확인

  3. 서버는 요청을 수신하고 내부적으로 처리

  4. 서버가 클라이언트에게 응답을 반환, 요청 성공 여부와 요청한 정보를 포함

REST API 구성요소

  • 고유 리소스 식별자
    REST 서비스의 경우 서버는 일반적으로 URL을 사용하여 리소스를 식별

  • 메서드
    HTTP 메서드는 리소스를 수행해야 하는 작업을 서버에 전달

  • 대표적인 HTTP 메서드 4가지

    	GET : 클라이언트가 서버의 지정된 URL에 있는 리소스에 액세스, 
    		   API 요청에 파라미터를 넣어 전송하여 전송 전에 데이터를 필터링하도록 서버에 지시 가능
    
    	POST : 클라이언트가 서버에 데이터를 전송
    
    	PUT : 서버의 기존 리소스를 업데이트
    
    	DELETE : 리소스를 제거, 서버의 상태 변경 가능
  • HTTP 헤더
    요청 및 응답의 형식을 나타내고 요청 상태 등에 대한 정보 제공
    데이터 : HTTP 메서드를 동작하기 위한 데이터
    파라미터 : URL의 경로를 지정하는 경로 파라미터, 리소스에 대한 초가 정보를 요청하는 쿼리 파라미터, 빠른 인증을 위한 쿠키 파라미터

0개의 댓글