본문 바로가기

개발 지식

CRUD와 HTTP 요청 메소드

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 : (서버 오류) 서버가 명백히 유효한 요청에 대해 충족을 실패했다

 

 

 

 

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

본 글은 2021년 6월 3일 개인 블로그(velog)에 작성된 글입니다.