[면접 질문] RESTful란 무엇인가?

개발하는 구황작물·2023년 3월 1일
0

REST란 ?

월드와이드웹(www)같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식
-> Rest는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 사용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일
(보통 HTTP URI를 통해 자원을 명시하고 Http Method를 통해 해당 자원에 대한 CRUD 오퍼레이션을 적용한 것이라고 부르는데...명확히는 아니다)

Rest 의 장점

  • HTTP 프로토콜의 인프라를 그대로 사용하므로 REST API사용을 위한 별도의 인프라를 구축할 필요 없음
  • HTTP 표준 프로토콜에 따르는 모든 플랫폼에 사용이 가능하다

단점

  • 표준이 존재하지 않는다
  • 사용할 수 있는 메서드가 4개밖에 없다(Http Method 형태가 제한적이다.)

Rest 제약조건

  1. Client-Server
    API를 통해 정보를 교환하는 주체는 클라이언트-서버 구조를 가져야 한다.
    (자원이 있는 쪽이 서버, 자원을 요청하지 않는 곳이 클라이언트)
    Server : API를 제공하고 비즈니스 로직 처리 및 저장을 책임진다.
    Client : 사용자 인증이나 Context 등을 관리한다.
    클라이언트와 서버간 서로의 의존성이 줄어든다.

  2. Stateless
    Http프로토콜은 Stateless이므로 Rest도 Stateless이다.
    클라이언트와 서버 모두 상대의 상태를 저장하고 있지 않음

  3. Cache
    HTTP 프로토콜을 그대로 사용하므로 웹에서 사용하는 기존의 인프라를 그대로 활용할 수 있다.
    캐시 사용을 통해 응답이 빨라지고 Rest Server 트랜잭선이 발생하지 않기 때문에 서버의 성능을 향상시킬 수 있다.

  4. Layered System
    리소스 상태를 요청하는 클라이언트와 응답을 다시 보내는 서버사이에는 여러 서버가 존재한다.
    이러한 서버는 보안계층, 캐싱계층, 부하 분산 계층 또는 기타 기능을 제공할 수 있다.

  5. Uniform Interface
    URI로 지정한 Resource에 대한 조작을 통일되고 한정적인 인터페이스로 수행한다.

  6. Code-On-Demand
    Server로부터 스크립트를 받아서 Client에서 실행한다.

Rest API

Rest 기반으로 API를 정의한 것

Rest API 설계 기본 규칙

  1. URI는 정보의 자원을 표현해야 한다.
    • resource는 동사보다 명사를, 대문자보다는 소문자를 사용해야 한다.
  2. 자원에 대한 행위는 HTTP Method로 표시한다.
    • 이때 URI에 Method가 들어가면 안됨
  3. 슬래시(/)는 계층 관계를 나타내는데 사용한다.
  4. URI 마지막 문자로 슬래시(/)를 포함하지 않는다.
  5. 하이픈은 URI 가독성을 높이는데 사용된다.
  6. ( _ ) 는 사용되지 않는다
  7. URI에는 소문자가 적합한다.
  8. 파일 확장자는 포함시키지 않는다.

Restful이란

  • 일반적으로 Rest라는 아키텍처를 구현하는 웹서비스를 의미한다.
profile
어쩌다보니 개발하게 된 구황작물

0개의 댓글