■ Web

[Web] RestFul Service에 대해서 알아보자 (2)

지난 시간에는 웹서비스의 의미와 리소스에 대해서 알아보았다.

이번에는 지난 시간보다 아주 살짝 깊이 들어가볼 것이다.

먼저 크게 두가지를 이해하고 시작하자.

 

1. 네트워크 통신이란 것은 하드웨어적인 부분을 제외하면 다음과같다.

“우리끼리 통신하려면 약속이 필요하니까 앞으로 무조건 이러한 약속(프로토콜)으로 구현하자!”

 

2. 우리가 사용하는 MMORPG게임처럼 웹브라우져도 하나의 어플리케이션이다.

“우리 브라우져의 역할은 서버로부터 받아온 데이터를 파싱해서(읽어서) 사용자들에게 보여주고 상호작용하게 해주자!”

 

1번에 대한 부분은 앞시간에 다룬 내용이다.

그럼 오늘은 2번부분에 대해서 알아보겠다.

 

브라우져의 관점으로 설명할텐데, 그렇다면 브라우져는 어떻게 각기 서로 다른 서버로부터 일정하게 화면에 출력해 주는 역할을

수행할까?

 

다음과같은 기본적인 약속 혹은 프로토콜이라 부르는 규약이 있다. 참고로 http통신한다고 할때, http가 프로토콜이다.

우린 http프로토콜에 대해서 알아볼 것이다. (http의 맨뒤가 protocol자체를 의미하지만 억양상 http프로토콜이라 하겠다.)

 

40

 

이것은 trello 라는 웹서비스를 크롬 개발자 툴로 연 상태이다.

 

우선 path, method, type 이 세가지를 보자.

path는 요청주소이다. 즉 리소스이다. 해당 리소스에 요청한다는 의미이다. 어떻게 어떤원리로 요청하는지는 마크업언어인 TAG내에서 <form> 태그를 구현하면 브라우져가 알아서 요청해준다. 즉 비프로그래머가 이해하기엔 “프로그래머가 <form>태그에 관한 부분을 타이핑하고 저장해 놓으면 된다.” 라고 이해해도 무방하다. 또한 ajax를 활용하여 비동기로 요청이 가능하다.

만약 브라우져가 아닌 모바일에서는 각각 플랫폼에 맞는 형식으로 구현이 되어있다.

다음으로 method이다. 이부분은 동사를 의미한다. 즉 all.js라는 자바스크립트 파일을 GET 한단것은 해당 자바스크립트파일을 얻어와서 브라우져가 이용한다는 의미이다.

이밖에도 POST, PUT, DELETE 라는 REST서비스의 주요 메소드가 있다.

각각 역할에 대해서 알아보면

POST : 신규 리소스 작성 (단 서버측에서 리소스명을 정한다.)

PUT : 신규 리소스 작성 (단 클라이언트가 정한다.), 리소스의 수정

DELETE : 리소스의 삭제

GET : 리소스의 획득

 

이렇게 정리해놓으면 된다.

대체 저 method를 어떻게 정하는 것이냐 라고 비개발자가 물어보면 이렇게 표현할 수있다.

“그냥 <form method=”GET” …..> 이렇게 정해놓고 저장해 놓으면 됨.”

 

앞서 리소스는 명사라고 했다.

그럼 저 리소스명과 메소드가 합쳐져서 프로그램을 개발하는 근간이 된다는 말이 될것이다.

연습을 몇개 해보겠다.

 

중고 자동차 업체가 있다. 도메인은 존나싸닷컴이다.

http://www.jonnassa.com/

 

리소스를 정의해보자.

1. 신규 중고 자동차가 들어왔다. 종류는 소형차이며 이름은 abangte이다.

2. 곧이어 바로 신규 중고 자동차가 또들어왔다 종류는 또한 소형차이며 이름은 mybmw이다.

3. 소비자가 회원가입을 한다. 회원가입에 필요한 리소스를 모두 정의해보자.

4. 소비자가 mybmw를 키워드 검색한다.

5. 소비자가 mybmw를 구매한다.

6. abangte의 연식이 잘못되었다. 관리자는 연식을 수정한다. (2013년도로)

7. 회원이 구매하고 바로 서비스를 탈퇴한다.

 

일련의 저러한 절차를 리소스명과 메소드로 구성하면 api를 만든다고 할수 있다.

위에 절차를 모두 만들어보았으면 조금더 디테일하게 들어가보자.

 

그렇다면 브라우져가 해당 리소스를 통해 통신을 할텐데, 성공, 실패는 어떻게 구분할까?

그건 서버에서 처리한다. 즉 서버측 언어에서 디비 검색을 해보고 디비가 없다면 그 유명한 404라는

status code라고 하는 부분을 작성하고 보내준다.

 

trello를 보면 status란에 200이란 숫자가 보일것이다. 저것이 바로 성공이란 것을 의미한다.

이부분을 처음 접해봐서 어려울것 같으면 단 몇개만 외워보자.

200 : 성공

201 : 생성

204 : 성공했는데 보낼게 없음.

301 : 리다이렉트

400 : 사용자 요청에러

404 : 데이터없음

500 : 서버 맛감

 

더 자세한 것은 아래링크를 참조하면된다.

https://support.google.com/webmasters/answer/40132?hl=ko

Standard

댓글 남기기