CRUD와 HTTP 요청 메소드

DongHee Kim·2021년 6월 3일
2

Web

목록 보기
2/9
post-thumbnail

📗 참고 학습자료
✔ 비전공자를 위한 이해할 수 있는 IT지식 - 최원영 지음
✔ 위키백과 (용어 정의)

CRUD

데이터를 다룰 때 큰 틀의 기준이 되는 4가지 요청.
대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 묶어서 일컫는 말


ex. 클라이언트👩💻 : CRUD에 따라 타임라인에 사진을 ~해줘! 라고 한다면, 각 요청의 뜻은 아래와 같다.

CRUD요청의 뜻
Create올려줘
Read불러와줘
Update바꿔줘
Delete지워줘

CRUD와 HTTP 요청 메소드의 상관관계

1. API (Application Programming Interface)

CRUD와 메소드의 관계에 대해 학습하기 전, API에 대한 이해가 필요하다.

API : 클라이언트와 서버가 같은 서로 다른 프로그램에서 요청과 응답을 주고 받을 수 있게 만든 체계 (클라이언트가 요청을 보내고, 이를 서버가 받아 응답한다)
쉽게 말하면, 소프트웨어가 다른 소프트웨어의 기능을 쓸 수 있도록 중간다리 역할을 해주는 체계!
ex. 맛집 정리 사이트를 만들 때, 네이버지도API를 통해 네이버지도 기능을 사용할 수 있다.

클라이언트의 요청이 잘 처리되려면 '정확한 곳'에 요청을 보내야 하고,
이 '정확한 곳'에 해당하는 주소는 서버 컴퓨터주소/** 형태로 되어있다.
따라서 API는 서버 개발자가 개발하고, 클라이언트 개발자가 사용한다.

CRUD 요청은 아래 예시와 같이 각각의 주소를 가지게 되고, 클라이언트는 각각의 주소로 요청을 보내면 된다.

ex. 클라이언트👩💻 : CRUD에 따라 타임라인에 사진을 ~해줘! 라고 한다면, 각 요청은 아래의 주소를 가진다.

CRUD요청의 뜻각 요청의 주소
Create올려줘컴퓨터주소/ timelinecreate
Read불러와줘컴퓨터주소/timelineread
Update바꿔줘컴퓨터주소/timelineupdate
Delete지워줘컴퓨터주소/timelinedelete

2. HTTP 요청 메소드(HTTP Request Methods)

HTTP(Hypertext Transfer Protocol): 웹상에서 클라이언트와 서버 간에 요청/응답으로 데이터를 주고 받을 수 있는 프로토콜(상호간의 규칙).
메소드(Method) : 입력값이 있고, 그 입력값을 받아서 무언가 한 다음 결과를 도출해 내는 수학의 함수와 비슷한 개념. 요청을 보내면, 결과가 나오는 API의 모습이 함수와 같아서 메소드라는 용어가 사용된다. 이 때 함수의 x에 해당하는 변수를 요청변수, 파라미터(Parameter)라 한다.

👉 HTTP Request 메소드 : 클라이언트가 웹서버에게 요청하는 목적 및 그 종류를 알리는 수단

앞 내용에서 CRUD 요청은 각각의 주소를 가지게 되고, 클라이언트는 각각의 주소로 요청을 보낸다고 했다. 그런데 모든 CRUD마다 주소가 생기면?
주소의 수가 너무 많아져 관리가 어려워지고,기능이 겹치는 주소가 담긴 API에 버그가 생긴다.


이를 해결하기 위해 사람들은 CRUD를 하나의 주소로 관리하는 API,
RESTful API (Representational State Transfer API)를 사용하기 시작했다.
RESTful API에선 요청을 보낼 때 어떤 요청을 보냈는지 파악할 수 있는 일종의 '표시'를 붙여 전송한다. 여기서의 '표시'는 현업에서 메소드라 칭한다. 정확한 정의는 위쪽의 음영박스 참고!


HTTP 요청 메소드는 여러 종류가 있지만, CRUD요청은 아래의 주요 메소드와 매칭된다.
가장 많이 쓰이고, 또 (내가) 헷갈리는 건 POST와 GET

CRUD요청의 뜻메소드
Create올려줘POST
Read불러와줘GET
Update바꿔줘PUT(전체)/PATCH(일부)
Delete지워줘DELETE

3. HTTP 상태 코드

클라이언트가 서버에게 작업을 요청하면, 서버는 작업을 수행한 후 그 결과를 응답으로 보내준다.
이 때 HTTP 상태 코드를 사용해 작업의 성공/실패 여부도 알려주고, 혹시 실패했다면 그 원인도 알려준다.
HTTP 상태 코드는 아래와 같다. (주요 코드는 Bold 처리)

  • 1xx : (정보) 요청을 받았으며 프로세스를 계속한다
  • 2xx : (성공) 요청을 성공적으로 받았으며 인식했고 수용하였다
  • 3xx : (리다이렉션) 요청 완료를 위해 추가 작업 조치가 필요하다
  • 4xx : (클라이언트 오류) 요청의 문법이 잘못되었거나 요청을 처리할 수 없다
  • 5xx : (서버 오류) 서버가 명백히 유효한 요청에 대해 충족을 실패했다


책을 읽다가 평소 잘 다가오지 않았던 개념들이 잘 정리되어 있길래, 내 머리에 새길 겸 적어보았다.
처음 접할 때만 해도 GET이 뭐고 POST는 또 뭐여..? 싶었는데
CRUD 요청부터 접근해나가니 조금은 익숙해진듯한 느낌
디딤돌이 될 지식을 건너뛰지말고 차근차근 다져나가자

profile
일상의 성실이 자존감을 만드는 성취주의자

2개의 댓글

comment-user-thumbnail
2021년 8월 5일

CRUD!! API에서 정말 중요하죠!! 깔끔하게 잘 정리 된 자료 덕분에 이해하고 가요!

1개의 답글