[Network] RESTful

박세건·2024년 5월 12일
0

CS 학습

목록 보기
18/23
post-thumbnail

REST

Rest 정의 : 분산 하이퍼미디엇 시스템을 위한 소프트웨어 아키텍처의 한 형식
_아키텍처 : 구조의 설계
즉, 네트워크에서 Client와 Server 사이의 통신 방식(규칙)

  • HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용
  • 자원의 이름으로 구분하여 자원의 상태를 주고받는 것을 의미

REST 구성요소

  • 자원을 나타내는 URL
    • URL을 통해서 자원을 나타냄
    • 고유한 이름을 갖음
      ex) member/1 : ID가 1 인 학생을 의미
  • 행위를 나타내는 Method
    • URL에 의해 정해진 자원을 어떤 방식으로 가공할지를 나타내는 Method
    • HTTP Method를 사용
      ex) get, post, put ...
  • 표현
    • 서버가 보내주는 응답 자원의 상태를 의미
      ex) JSON, XML 등

REST를 사용하는 이유

  • 이해하기 쉬운 API를 제작 가능
    • 일관적이기에 다른 사람이 보고 이해하기가 쉬움
  • 정해진 컨벤션으로 API를 쉽게 이해하고 호환성을 높이는 것이 목적

REST 특징

REST는 HTTP를 사용하기 때문에 HTTP의 장점을 소유할 수 있음

  • Uniform(통일화)
    • URI로 지정된 요청이 통일되고 지정된 인터페이스로만 수행 가능
  • Stateless
    • 요청에 대한 상태정보를 따로 저장하지 않는다
    • 들어오는 요청만 처리
  • Cacheable
    • HTTP의 캐시 기능 적용 가능

      HTTP 캐시 : HTTP응답을 저장해놓고 이전과 동일한 요청이 들어오면 응답 재활용

  • Self-Descriptiveness(자기 기술성)
    • 클라이언트가 API 메시지를 보고 명확하게 이해 가능
  • Client-Server
    • 클라이언트와 서버의 역할이 확실하게 구분
    • 의존성이 줄어듬
  • 계층형 구조
    • REST 서버는 다중 계층으로 구성될 수 있음

RESTful

RESTful, REST 원리를 따르는 시스템

RESTful 특징

  • 확장성과 재사용성이 높아 유지보수 및 운영이 편리
  • HTTP를 기반으로 하기때문에 HTTP를 지원하는 프로그래밍언어를 사용해서 구축가능

RESTful 규칙

ex) (GET 방식) /book/{id} : id번째 book의 정보를 알려줘
ex) (PUT 방식) /book/{id} : id번째 book의 정보를 수정할게
ex) (DELTE 방식) /book/{id} : id번째 book의 정보를 삭제할게

RESTful 규칙을 확인해보자

HTTP Method

  • GET : 조회
  • POST : 추가
  • PUT : 수정
  • DELETE : 삭제
  • PATCH : 부분적 수정
    • PUT 방식과 차이

      PUT 방식으로 일부분을 보내면 나머지는 default 값으로 수정되기 때문에 주의

POST를 제외한 Method 모두 멱등성을 띈다

멱등성 : 데이터가 변경되지 않는 한, 동일한 호출에 동일한 결과를 얻음

profile
멋있는 사람 - 일단 하자

0개의 댓글

관련 채용 정보