티스토리 뷰
# REST(Representational State Transfer)
REST는 웹의 창시자 중의 한 사람인 로이 필딩(Roy Fielding)이 2000년에 발표한 박사학위 논문에 의해서 소개되었다. 현재의 아키텍처가 웹의 본래 설계의 우수성을 많이 사용하지 못하고 있다고 판단했기 때문에 웹의 장점을 최대한 활용할 수 있는 네트워크 기반의 아키텍처를 소개했는데, 그것이 바로 Representational Safe Transfer (REST)이다. 간단한 의미로는, 웹 상의 자료를 HTTP위에서 SOAP이나 쿠키를 통한 세션 트랙킹 같은 별도의 전송 계층 없이 전송하기 위한 아주 간단한 인터페이스를 말한다. REST 원리를 따르는 시스템은 종종 RESTful이란 용어로 지칭된다.
# REST API의 구성
REST API는 다음 3가지 구성으로 이루어져있다.
1) 자원(Resource) - URI
2) 행위(Verb) - HTTP Method
3) 표현(Representations), 메시지
# HTTP 메서드
HTTP에는 여러가지 메서드가 있지만, REST에서는 CRUD(Create Read Update Delete)에 해당하는 4가지의 메서드를 사용한다.
메서드 |
Idempotent |
의미 |
POST |
X |
Create, 생성 |
GET |
O |
Select, 조회 |
PUT |
O |
Update, 수정 |
DELETE |
O |
Delete, 삭제 |
위의 테이블에서 Idempotent(멱등성)이란, 매번 결과가 달라지지 않는다는 뜻이다.
# REST API의 특성
1) 유니폼 인터페이스(Uniform Interface) : HTTP 표준에만 따른다면 어떠한 기술이든지 사용할 수 있는 인터페이스 스타일이다. 특정언어나 기술에 종속 받지 않고 사용할 수 있는 느슨한 결합 형태의 구조이다.
2) 무상태성(Stateless) : 클라이언트의 컨텍스트를 서버 쪽에 유지하지 않는다는 의미로, 세션 정보나 쿠키 정보를 별도로 저장하고 관리하지 않기 때문에 서버에서는 들어오는 요청만을 단순히 처리하면 된다.
3) 캐시가능(Cacheable) : HTTP 라는 기존 웹표준을 그대로 사용하기 때문에 웹에서 사용하는 기존 인프라를 그대로 활용이 가능해 HTTP가 가진 캐싱 기능이 적용 가능합니다.
4) 자체표현구조(Self-descriptiveness) : REST의 가장 큰 특징 중의 하나는 REST API 자체가 쉬워서 API메시지만 보고도 이를 이해 할 수 있는 자체 표현 구조로 되어있다는 것이다.
5) 클라이언트 서버 구조 (Client-Server) : 서버는 API를 제공하고 제공된 API를 이용해서 비즈니스 로직 처리 및 저장을 책임진다. 클라이언트는 사용자 인증이나 컨텍스트(세션, 로그인 정보를 직접 관리하고 책임지는 구조로 역할이 나누어지고 있다. 이렇게 각각의 역할이 확실하게 구분되면서 개발 관점에서 클라이언트와 서버에서 개발해야 할 내용이 명확해지고 서로의 개발에서 의존성이 줄어들게 된다.
6) 계층형 구조(Layered System) : 클라이언트로서는 REST API 서버만 호출하고, 서버는 다중 계층으로 구성될 수 있다. 다중 계층으로 구성된 서버는 보안, 로드 밸런싱, 암호화 계층을 추가해 구조상의 유연성을 둘 수 있고 PROXY, 게이트웨이같은 네트워크 기반의 중간매체를 사용할 수 있게 한다.
'Programming > Other' 카테고리의 다른 글
[MAC] Microsoft Remote Desktop 10 (1) | 2019.08.06 |
---|---|
[IT] Linux Crontab (0) | 2019.01.23 |
[IT] Request SMS Vertification on the Server (0) | 2019.01.17 |
[MAC] DockBar Delay (0) | 2018.11.20 |
[MAC] 마우스 속도조절 (0) | 2018.11.12 |