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 Header3
CREATE POST cell 1x3
READ GET cell 2x3
UPDATE PUT cell 3x3
DELETE DELETE cell 3x3
Clone this wiki locally