본문 바로가기

IT Note/Note

[IT Note] REST(Representational State Transfer)

728x90

REST(Representational State Transfer) 정의

  • HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 정보 전달 방식
  • 자원 기반의 구조(ROA, Resource Oriented Architecture) 설계의 중심에 Resource가 있고 HTTP Method를 통해 Resource를 처리하도록 설계

 

CRUD Operation

CRUD HTTP Method
Create 생성(POST)
Read 조회(GET)
Update 수정(PUT)
Delete 삭제(DELETE)


### **관련 용어** - REST API: REST를 기반으로 만들어진 API - RESTful: REST API를 활용하여 개발되는 서비스 -

REST의 구성

  • 자원(Resource)
    • 모든 자원에 고유한 ID가 존재 (Server에 존재)
    • 자원을 구별하는 ID는 HTTP URI (예 : '/groups/:group_id')
    • Client는 URI를 이용해서 자원을 지정하고 해당 자원의 상태(정보)에 대한 조작을 Server에 요청
  • 행위(Verb)
    • HTTP 프로토콜의 Method 사용
    • HTTP 프로토콜은 GET, POST, PUT, DELETE 와 같은 메서드 제공
  • 표현(Representation)
    • Client가 자원의 상태(정보)에 대한 조작을 요청하면 Server는 이에 적절한 응답(Representation)을 회신
    • HATEOAS 개념을 통해 해당 자원에 대해 상태를 반영하여 표현
    • REST에서 하나의 자원은 JSON, XML, TEXT, RSS 등 여러 형태로 표현
    • 일반적으로 JSON이나 XML 이용

 

HATEOAS(Hypermedia As The Engine Of Application State)

  • Hypermedia를 Application의 상태를 관리하기 위한 매커니즘으로 사용



REST의 속성

  • Server-Client
  • Stateless(무상태)
  • Cacheable(캐시 처리 가능)
  • Layered System(계층화)
  • Code-On-Demand(실행 코드 제공)
    • 클라이언트의 기능을 일시적으로 확장하거나 커스트마이징 가능
    • Java Applet, JavaScript, Flash 등이 Code On Demand의 예시
    • 보안 취약점 발생
  • Uniform Interface(인터페이스 일관성)



REST의 장단점

  • 장점
    • REST API 메시지를 통해 의도를 명확하게 파악 가능
    • Stateless한 특징 때문에 수행 내용(Execution Context)이 독립적으로 진행
    • HTTP 구성을 그대로 사용하기 때문에 별도의 인프라 구축 필요 없음
  • 단점
    • 표준이 존재하지 않음
    • HTTP Method 형태가 제한적



 

728x90
반응형