REST 탄생
REST는 Representational State Transfer라는 용어의 약자로서 2000년도에 로이 필딩 (Roy Fielding)의 박사학위 논문에서 최초로 소개되었습니다. 로이 필딩은 HTTP의 주요 저자 중 한 사람으로 그 당시 웹(HTTP) 설계의 우수성에 비해 제대로 사용되어지지 못하는 모습에 안타까워하며 웹의 장점을 최대한 활용할 수 있는 아키텍처로써 REST를 발표했다고 합니다.
REST 정의
HTTP URL로 잘 표현된 리소스를 HTTP Method로 정의하여 리소스의 내용 (xml, json 등)으로 표현하는 것.
URI(Uniform Resource Identifier)으로 통합 자원 식별자라는 의미로 특정 자원의 위치를 나태내는 유일한 주소로 대표적으로 URL(Uniform Resource Locator)가 URI에 포함된다.
REST 특징
1. Uniform(유니폼 인터페이스) : 정해진 URI 리소스에 대해서 조작을 통일되고 정형화된 인터페이스로 수행하는 아키텍쳐 스타일
2. Statesless(무상태성) : REST는 상태정보를 별도로 저장하지 않고 관리도 하지 않는다. 세션이나 쿠키정보를 저장하지 않기 때문에 API에 들어오는 요청만 단순처리하면 된다.
3. Cacheable(캐시 가능) : 기존 HTTP 웹 표준을 그대로 사용하기때문에 HTTP의 캐싱 기능 적용 가능. Last-Modified태그나 E-Tag를 이용하여 캐싱 구현 가능
4. Self-Descriptivness(자체 표현 구저) : REST에 표현만 보고도 쉽게 이해할 수 있는 자체 표현 구조로 되어있다.
5. Client-Server 구조 : 클라이언트는 사용자 인증이나 컨텍스트(세션, 쿠키 등)을 직접 관리하는 구조로 각각의 역할이 확실히 구분되기 때문에 클라이언트와 서버에서 개발해야 할 내용이 명학해지고 서로의 대한 의존성이 줄어든다.
6. 계층형 구조 : REST서버는 다중 계층으로 구성할 수 있고 이에 대해서 클라이언트는 알 수 없다. 보안, 로드 밸런싱, 암호화 계층을 추가해 구조상에 유연성을 줄 수 있고 Proxy, 게이트웨어 같은 네트워크 기반의 중간매체를 사용할 수 있다.
'개발 > 기타' 카테고리의 다른 글
리눅스(CentOS7) 파일 용량 이슈 (0) | 2020.09.25 |
---|---|
CentOS7 node/react 설치 (0) | 2020.06.09 |
OWASP Top 10 (0) | 2018.04.15 |
디자인 패턴 (0) | 2018.04.15 |
GET/POST 차이 (0) | 2018.04.09 |