본문 바로가기

Dev.World/개발상식&언어

[개발상식] 4. REST or RESTFul




Node.js 를 공부하는 중에 서버에서 데이터를 전송하는 방식에는 

GET과 POST 방식 이렇게 크게 두 가지가 있다는 것을 배웠다.

그러면서 GET방식에서 'params' 라는 것을 배우는데

나중에 다룰 'RESTFul'을 알아야 하기 때문에 일단 넘어간다고 해서 한 번 알아봤다.


RestFul
Rest (Representational State Transfer)
> 소프트웨어 아키텍처 > 네트워크 시스템의 아키텍처 스타일
어떤 범주에 속하느냐로 우선 접근해보았다.
소프트웨어 아키텍처 중 하나였고 그 중에서도 네트워크와 관련된 아키텍처 스타일이였다.

위키백과의 정의,
1. 월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식.
2. 네트워크 아키텍처 원리(자원을 정의하고 자원에 대한 주소를 지정하는 방법 전반)의 모음.
3. 웹 상의 자료를 HTTP 위에서 SOAP이나 쿠키를 통한 세션 트랙킹 같은 별도의 전송계층 없이 전송하기 위한 간단한 인터페이스

구체적으로는 HTTP URL을 통해 Resource를 명시하고
HTTP Method (Post, Get, Put, Delete)를 통해
해당 Resource에 대한 CRUD Operation을 적용하는 것이다.

즉 REST 는 ROA(Resource Oriented Architecture) 설계의 중심에 Resource가 있고 HTTP Method를 통해 Resource를 처리하도록 설계된 아키텍쳐이다.

URL은 정보의 자원을 표현해야 한다.
자원에 대한 행위는 HTTP Method로 표현한다.

HTTP Method란?

 Method 

CRUD

POST

create

GET

read

PUT

update

DELETE

delete

CRUD 란 Create Read Update Delete 의 앞글자만 가져온 것으로
대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리기능을 묶어서 일컫는 말이다.



RestFul의 장점
1. Open API 제공하기 쉽다.
2. 멀티 플랫폼을 지원한다.
3. 원하는 타입으로 데이터를 주고 받을 수 있다.
4. 기존 웹 인프라 그대로 활용(HTTP)할 수 있다.
But, Method(4가지)가 적고 표준이 없어 관리가 어렵다.



REST Architecture 6가지 원칙
-  균일한 인터페이스
- 상태없음 stateless
- 캐시 Cache
- 클라이언트/서버 형태
- 계층 시스템
- 조건부 (code on demand)


여기까지 RESTFul


-..-