Skip to content

Week1 Assignment

박성준 edited this page Jan 24, 2019 · 27 revisions

CRUD

  • CRUD 란?
    • Create, Read, Update, Delete의 제일 앞 문자를 하나씩 따와서 만든 줄임말
    • 데이터를 처리하는 시스템이 지속성을 갖기위해 갖춰야 하는 기본적인 데이터 처리 4가지 기능이다.

CREATE

  • 새로운 데이터가 생성될 때 사용됩니다.

READ

  • 현재 데이터베이스에 있는 데이터를 검색하고 결과를 표시하기 위해 사용됩니다.

UPDATE

  • 데이터에 대한 정보를 변경해야 할 때 사용됩니다.

DELETE

  • 데이터를 삭제하기를 원할 때 사용됩니다.

HTTP Method

  • HTTP Method 란?
    • 클라이언트가 서버에게 사용자 요청의 목적/종류를 알리는 수단

GET

  • 해당 리소스를 조회하고 자세한 정보를 가져온다.

  • 데이터가 HTTP Message의 Header 부분 URL에 담겨서 전송된다.

    • URL 공간에 데이터가 담겨가기 때문에 전송할 수 있는 데이터의 크기가 제한적이다.
  • 데이터가 URL에 그대로 노출되기 때문에 보안성은 없다.

POST

  • 해당 리소스의 값이나 상태를 변경하거나 추가할 수 있다.

  • 데이터가 HTTP Message의 Body 부분에 담겨서 전송된다.

    • GET 방식보단 담을 수 있는 데이터의 크기가 크고 보안성이 좋다.
    • 하지만 보안적인 측면에서는 암호화를 하지 않는 이상 비슷하다.

PUT

  • 자원에 대해서 업데이트 혹은 교체를 할때 사용한다.

    • 해당 자원의 모든 영역을 알고 있어야 하고, 내용이 없는 부분은 빈값을 넣거나 초기화를 해야한다.
  • 또한 존재하지 않는 리소스 아이디에 대해서 PUT을 요청할때 생성할 수 있어야 한다.

    • 하지만 혼동할 여지가 있으므로 최대한 이렇게 해서는 안된다.
  • Server 자원의 상태를 변경할 수 있기 때문에 안전한 요청이 아니다.

PATCH

  • 자원에 대해서 업데이트 혹은 변경을 할때 사용한다.

    • 해당 자원의 모든 영역을 알고 있을 필요가 없다. 필요한 부분만 body에 넣어서 전달한다.
  • PUT 과 다르게 동시적으로 요청이 들어왔을 때 문제가 생길 수 있다.

    • PATCH는 서버에 있는 자원과 현재 값을 비교한 뒤 바뀐 부분만 변경한다.
    • 예를 들어서 클라이언트가 예전 리소스를 들고 있으면 서버에 있는 현재 리소스와 다르기 때문에 어떤 값을 처리해야할지 혼동이 생길 수 있다.
  • Server 자원의 상태를 변경할 수 있기 때문에 안전한 요청이 아니다.

DELETE

  • 요청된 자원을 삭제할 때 사용한다.

  • PUT과 같이 웹 애플리케이션 등에 의한 인증 기능과 짝을 이루는 경우나 REST와 같이 웹 끼리 연계하는 설계양식을 사용할 때 주로 사용한다.

  • HTTP 규격에 Client의 요청에 서버가 무효화 시킬 수 있도록 정의되어있다.

    • 안전성 문제로 대부분의 서버에서 비활성화 시킨다.

CRUD & HTTP Method Mapping

CRUD HTTP Method Function
CREATE POST Base URI를 이용해 새로운 URI를 생성한다.
READ GET URI의 데이터를 읽어온다.
UPDATE PUT, PATCH 이미 존재하는 URI를 업데이트 한다.
DELETE DELETE 해당 URI를 삭제한다.
Clone this wiki locally