HTTP통신/API/CRUD

wooo·2023년 3월 15일
0

http

웹서비스에서의 통신이란 데이터 요청(request)응답(response)를 의미한다.
여기에서 http는 텍스트나 하이퍼 텍스트를 전송하는 통로이며 각각의 요청과 응답은 요청은 헤더(header)바디(body)로 구성 된다.

헤더에는 누가 보내는지(브라우저)와 보내는 형태(객체)가 포함되어 있고
바디에는 객체의 디테일한 정보가 담겨 있다. 이렇게 요청한 정보는 백엔드 컴퓨터의 데이터베이스에 담긴다.

BackEnd 컴퓨터에 데이터의 생성/조회/수정/삭제 등을 요청 했을 때 각각의 요청에 반응하는 담당자를 API라고 부른다.
API데이터의 처리를 요청하는 하나의 기능, 함수라고 생각하면된다. 그리고 이러한 API에는 게시물 등록, 프로필 저장, 프로필을 조회할 수 있는 다양한 함수들이 존재함

이후 응답 헤더에서도 똑같이 보내는이(백엔드 컴퓨터), 보내는 내용 형태(객체)의 데이터 보낸다.이 데이터에는 상태코드를 같이 보내는데 요청에 대한 성공/실패 메세지가 담겨있다.

⭐️ 성공일 경우 --------------------> 2XX 상태코드 표시
⭐️ 클라이언트 오류일 경우 ----------> 4XX 상태코드 표시
⭐️ 백엔드서버 오류일 경우 ----------> 5XX 상태코드 표시

이때 전송되는 데이터는 주로 객체 형태의 JSON 파일이다.
JSONJavaScript Object Notation 자바스크립트에서 사용하는 객체 표기법의 약자이며 텍스트나 객체가 아닌 형태를 객체로 전환해서 데이터를 보내주는 역할을 한다.

정확하게는 객체를 보내는게 아니라 객체 형태로 바꾼 JSON파일(문자형태)을 전송하는 것이다.


REST vs GRAPHQL

이러한 API에는 크게 REST-APIGRAPHQL-API가 있다.

REST 의 큰 특징은 아래와 같으며

  1. 기존에 많이 사용
  2. 그렇기 때문에 많은 회사들이 REST API를 사용
  3. OPEN-API에서 일반적으로 REST를 제공

아래는 GRAPHQL의 대표적인 특징들이다.

  1. 원하는 데이터만 골라서 받기 가능
  2. 모두 받는 것보다 용량이 작아서 빠름
  3. 페이스북, 깃허브, 에어비엔비 등 글로벌 서비스 사용

차이점은 REST-API는 홈페이지 주소처럼 생겼으며 axios로 이용해 데이터를 요청하며 응답 결과로 백엔드의 모든 데이터를 받아오지만
GRAPHQL-API은 일반 함수 같이 생겼으며 apollo-client로 데이터를 요청하며 필요한 데이터만 골라서 받을 수 있다.

가장 큰 차이는 필요한 데이터만 가져올 수 있다는 점!!
데이터의 용량이 클 경우 REST-API는 전부를 불러와야해서 속도가 느리지만 GRAPHQL-API은 해당 데이터의 원하는 정보만 요청하여 상대적으로 빠르게 처리가 가능하다.


CRUD(+목록조회)

API는 크게 생성(create), 조회(read), 수정(update), 삭제(delete) 4가지 방식으로 구분하고 이것을 CRUD라고 부른다.

REST-API의 CRUD 명령어는 POST, PUT, DELETE, GET
GRAPHQL-API의 CRUD 명령어는 READ는 QUERY, 나머지는 MUTATION 명령어
📌mutation은 데이터의 정보가 변하기 때문에 조심히 다뤄야함

REST-APIGRAPHQL-API
⭐️ 가장 큰 차이는 골라서 받기 가능!⭐️



🍯오늘의 팁 - 거짓을 의미하는 애들

1. 0
2. ""(빈 문자열)
3. false
4. null
5. undifined
6. NaN

// 이 값들 앞에 !를 붙이면 true로 반환!!

0개의 댓글