http://bcho.tistory.com/953의 글을 참고했습니다!

Rest란?

Representational safe transfer이며, 웹의 장점을 최대한 활용할 수 있는 네트워크 기반의 아키텍쳐

Rest 기본 요소

크게 리소스, 메소드, 메세지 3가지 요소로 구성된다. 예를 들어 "Terry인 사용자를 생성한다."라는 호출이 있을 때 '사용자'는 생성되는 리소스, '생성한다'라는 행위는 메소드, '이름이 Terry인 사용자'는 메세지이다. 이를 REST 형태로 표현하면

  
HTTP POST , http://myweb/users/
{  
  "users":{  
     "name":"terry"
  }
}

HTTP 메소드

HTTP에는 여러가지 메소드가 있지만 REST에서는 CRUD(Create, Read, Update, Delete) 4가지만 사용한다.

Create = Post(X)

Read = Get(O)

Update = Put(O)

Delete = Delete(O)

오른쪽의 O/X 는 Idempotent는 여러번 수행을 해도 결과가 같은 것을 의미한다.

REST 리소스

REST는 리소스 지향 아키텍쳐이므로 모든 것을 리소스(명사)로 표현한다. 예를 들어 사용자 리소스를 http://myweb/users라고 정의했다면, terry라는 id를 갖는 리소스는 http://myweb/users/terry라는 형태로 정의한다.

REST 특성

유니폼 인터페이스

rest는 http표준이라면 어떤 기술이던지 사용 가능한 인터페이스(모든 플랫폼에 사용가능한 느슨한 결합)이다. 흔히 REST라고 하면 HTTP + JSON를 떠올리는데, JSON은 하나의 옵션이다.

무상태성/스테이트리스(Stateless)

rest는 Stateless(상태를 유지하지 않음)이 특징이다. 상태가 있다/없다는 것은 클라이언트의 컨텍스트를 서버 쪽에서 유지하지 않는다는 의미이다. 쉽게 이야기하면 http 세션과 같은 컨텍스트 저장소에 상태 정보를 저장하지 않는 형태이다. rest의 각 API 서버는 들어오는 요청만을 메시지로 처리할 뿐이다. 세션과 같은 컨텍스트는 신경 쓸 필요가 없기 때문에 구현이 단순하다.

더 많은 특징 참조 주소 : http://bcho.tistory.com/953

'CS기본지식 > 컴퓨터 기본 지식' 카테고리의 다른 글

1의 보수와 2의 보수  (0) 2017.08.15

1의 보수란 어떤 수를 커다란 2의 제곱수-1에서 빼서 얻은 이진수이다. 또는 비트를 반전시켜 얻을수 있다. 1의 보수는 대부분의 산술연산에서 원래 숫자의 음수처럼 취급된다. 주어진 이진수와 자리수가 같고 모든 자리가 1인 수에서 주어진 수를 빼서 얻은 수가 1의 보수이다. 혹은 주어진 이진수의 모든 자리의 숫자를 반전(0을 1로, 1을 0으로)시키면 1의 보수를 얻을 수 있다.


https://ko.wikipedia.org/wiki/1%EC%9D%98_%EB%B3%B4%EC%88%98



그러면 1의 보수를 왜쓰냐!!!!!!!하면!!

음수(-)를 표현해주기 위해서 입니다!

컴퓨터는 숫자를 비트로 나타내자나요!?? 4bit라고 생각했을 때 0001이면 1, 0010이면 2

이런식으로 0000~1111 까지 4비트라면 0~15를 나타낼 수 있습니다.

이런 방식이 흔히 우리가 코딩할 때 쓰는 unsigned 방식입니다. 음수를 나타내지 않는 방식이죠.


int는 32비트이니깐 0 ~ (2의 32승 - 1)까지 나타낼 수 있겠죠????

unsigned에 2의 32승 - 1을 대입하시면 숫자가 망가지지 않는 걸 볼 수 있습니다.


그런데

signed(int앞에 키워드를 안붙여도됨 디폴트 값임)에 2의 32승 -1을 넣으면 깨질까욥 안꺠질까욥?

깨집니다!!!!!!!


이유는 signed를 사용하면 음수 값을 사용할 수 있게 되는데! 32비트개의 비트중 맨 앞에 비트를 음수인지 양수인지 구분하는 비트로 사용하기 때문입니다.

그렇기 때문에 0 ~ (2^32 - 1) 이었던 범위가 ! 반으로 싹 ! 쪼게집니다. 그러면 -(2^31 - 1) ~ (2^31 - 1)까지 표현이 가능합니다!


근데 여기서 1의 보수의 문제점을 발견할 수 있습니다!

무엇이냐!!!!!!

4비트로 예를 들어드릴게요!

4비트를 쭉! 써보겠습니다.

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111


이렇게 16가지의 숫자가있죠! 0에서 15까지!!!!!

근데 우리는 맨앞의 부호를 -로 쓰기로했으니 -7에서 7까지의 숫자가 표현이가능합니다!!!!!

여기서 발생하는 문제는 무엇일까요!?

-7 ~ 7까지의 숫자는 16개가 아니고 15개죠??? 왜일까요????

0이 두번 체크되기 때문인데요


1의 보수는 모든 비트를 반전시키는 것이라고 말씀드렸습니다.


그렇다면 0000을 반전시키면 1111 -> -0 값을 갖는데 -0이라는 숫자는 0과 같죠. 두 번 세줄 필요가 없는 것입니다.

그렇다면 이 문제를 어떻게 해결할까요??


바로!!!!!!!!


2의 보수입니다.!

2의 보수 = 1의 보수 + 1 인데요!!!!!!!!

정의 한번 볼까욥


2의 보수란 어떤 수를 커다란 2의 제곱수에서 빼서 얻은 이진수이다. 2의 보수는 대부분의 산술연산에서 원래 숫자의 음수처럼 취급된다. 주어진 이진수보다 한 자리 높고 가장 높은 자리가 1이며 나머지가 0인 수에서 주어진 수를 빼서 얻은 수가 2의 보수이다. 혹은 주어진 이진수의 모든 자리의 숫자를 반전(0을 1로, 1을 0으로)시킨 뒤 여기에 1을 더하면 2의 보수를 얻을 수 있다.


https://ko.wikipedia.org/wiki/2%EC%9D%98_%EB%B3%B4%EC%88%98


이렇게하면 4비트로 -8부터 7까지 표현이 가능해집니다!


그 이유는 !!!!!

0 ~ 7 까지는 총 8개인데 0 ~ 7 까지를 반전시키면 ! -0 ~ -7에서 -1 ~ -8로 바껴버리지요용!!!!!!!! 그러므로 -8 ~ 7까지 총 16개의 수를 전부 사용할 수 있습니당!!!!!!!!!!!!!

'CS기본지식 > 컴퓨터 기본 지식' 카테고리의 다른 글

rest란??  (0) 2017.11.19

+ Recent posts