📗 참고 학습자료
✔ 비전공자를 위한 이해할 수 있는 IT지식 - 최원영 지음
✔ 위키백과 (용어 정의)
데이터를 다룰 때 큰 틀의 기준이 되는 4가지 요청.
대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 묶어서 일컫는 말
ex. 클라이언트👩💻 : CRUD에 따라 타임라인에 사진을 ~해줘! 라고 한다면, 각 요청의 뜻은 아래와 같다.
CRUD | 요청의 뜻 |
---|---|
Create | 올려줘 |
Read | 불러와줘 |
Update | 바꿔줘 |
Delete | 지워줘 |
CRUD와 메소드의 관계에 대해 학습하기 전, API에 대한 이해가 필요하다.
API : 클라이언트와 서버가 같은 서로 다른 프로그램에서 요청과 응답을 주고 받을 수 있게 만든 체계 (클라이언트가 요청을 보내고, 이를 서버가 받아 응답한다)
쉽게 말하면, 소프트웨어가 다른 소프트웨어의 기능을 쓸 수 있도록 중간다리 역할을 해주는 체계!
ex. 맛집 정리 사이트를 만들 때, 네이버지도API를 통해 네이버지도 기능을 사용할 수 있다.
클라이언트의 요청이 잘 처리되려면 '정확한 곳'에 요청을 보내야 하고,
이 '정확한 곳'에 해당하는 주소는 서버 컴퓨터주소/** 형태로 되어있다.
따라서 API는 서버 개발자가 개발하고, 클라이언트 개발자가 사용한다.
CRUD 요청은 아래 예시와 같이 각각의 주소를 가지게 되고, 클라이언트는 각각의 주소로 요청을 보내면 된다.
ex. 클라이언트👩💻 : CRUD에 따라 타임라인에 사진을 ~해줘! 라고 한다면, 각 요청은 아래의 주소를 가진다.
CRUD | 요청의 뜻 | 각 요청의 주소 |
---|---|---|
Create | 올려줘 | 컴퓨터주소/ timelinecreate |
Read | 불러와줘 | 컴퓨터주소/timelineread |
Update | 바꿔줘 | 컴퓨터주소/timelineupdate |
Delete | 지워줘 | 컴퓨터주소/timelinedelete |
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 |
클라이언트가 서버에게 작업을 요청하면, 서버는 작업을 수행한 후 그 결과를 응답으로 보내준다.
이 때 HTTP 상태 코드를 사용해 작업의 성공/실패 여부도 알려주고, 혹시 실패했다면 그 원인도 알려준다.
HTTP 상태 코드는 아래와 같다. (주요 코드는 Bold 처리)
책을 읽다가 평소 잘 다가오지 않았던 개념들이 잘 정리되어 있길래, 내 머리에 새길 겸 적어보았다.
처음 접할 때만 해도 GET이 뭐고 POST는 또 뭐여..? 싶었는데
CRUD 요청부터 접근해나가니 조금은 익숙해진듯한 느낌
디딤돌이 될 지식을 건너뛰지말고 차근차근 다져나가자
CRUD!! API에서 정말 중요하죠!! 깔끔하게 잘 정리 된 자료 덕분에 이해하고 가요!