2010년 4월 4일 일요일

restful 서비스와 http method

HTTP 메소드라고 하면 GET과 POST가 먼저 떠오른다.
HTTP 메소드가 어떻게 설계되었든간에 GET과 POST만 있으면 흔히 말하는 CRUD를 모두 처리할 수 있다.
form의 메서드로 GET으로 설정한다고 해도 문제될 게 없지만
일반적으로 GET메서드는 조회나 삭제를 할 경우와 같이 파라미터가 간단한 경우에 사용되고,
POST는 insert나 update처럼 다수의 파라미터를 사용할 경우에 사용한다.
하지만 restful 관련 문서를 읽다보면 일반적으로 많이 사용하지 않은 PUT가 DELETE를 사용하는 경우를 볼 수 있다.
아마도 HTTP 메서드 자체가 각각의 용도에 맞게 설계된 듯 하다.

GET: 조회
POST: INSERT용
DELETE: 삭제
PUT: UPDATE

우리나라에서 DELETE나 PUT을 사용하는 것을 고운 시선으로 볼 것으로 생각하지 않지만 장점이 있다면 적극 사용하고 싶다.
서블릿의 경우 doGet, doPost등이 나누어져 있지만 흔히 doGet() { doPost(req, res); } 이런식으로 사용한다. 서블릿을 단위 기능별로 구현하는 습관때문에 그런 것으로 생각된다. 하지만 하나의 서블릿에서 doGet, doPost, doDelete, doPut을 구현할 수 있다면 서비스 단위로 서블릿을 구현할 수 있다.
앞으로 Http 메서드를 접하면서 작업을 할 때에는 그동안 해왔던 습관을 버리고 접근해야 겠다.

댓글 없음:

댓글 쓰기