TIL-1/12

RumbleBi·2022년 1월 12일
0

HTTP 통신

HTTP두 컴퓨터간에 텍스트 데이터를 주고 받는 길이다.

HTTP라는 길로 요청(request)응답(response)2가지를 서로 주고 받을 수 있다.

HTTP Request와 Response

HTTP 요청(Request)
웹브라우저에서 홈페이지(Front-end)가 실행중이라면, 작성한 게시물의텍스트 데이터를 HTTP를 통해Back-end로 보내고Back-end 컴퓨터에게 이 데이터를 DB에 저장해달라고Request한다.

HTTP 응답(Response)
요청을 받은 Back-end 컴퓨터가 성공, 실패 등의 처리를Response한다.

Back-end 컴퓨터는 응답할 때,응답 상태코드라는 것도 함께 보내준다. 응답 상태코드는 100~599까지의 숫자로 구성되어 있다. 주요 코드는 성공(200), Front-end 에러(400), Back-end 에러(500) 등이 있다. 만약 성공하였으면 메세지와 함께응답 상태코드200을 함께 보내준다.
평소 보게되는 대표적인 문제인 404 NOT FOUND 는 Front쪽 에서의 문제임을 알수 있다.
참조: https://developer.mozilla.org/ko/docs/Web/HTTP/Status

또한 DB에 바로 요청하는 것은 보안, 데이터 정제 등의 이유로 Back-end에서 검증 과정(관리자인지 일반 사용자인지 등)을 거쳐야 하기 때문에 아무나 DB에 요청할 수 없다. 된다면 해킹이겠지..?

API

API란 HTTP 요청을 Back-end 컴퓨터에 보냈을때 실행되는 Back-end 기능이다.
Front-end에서 HTTP라는 길을 통해서 게시물 데이터를 Back-end에 보내 저장시켰으면, 게시물이 아닌 프로필 데이터를 저장하고 싶다면? 그러기 위해선, 여러개의 HTTP 라는 길이 존재해야 하고, 각각의 요청마다 담당이 필요하다. 우리는 이 담당자를 API라고 부른다.

API가 기능이면, 즉 함수인가?
맞다. Back-end 개발자가 만든 함수다. 함수에는 인자와 return 데이터가 있고, API에 Request할 때 보내는 데이터는 API함수로 들어갈 인자이고, Response로 받게되는 데이터가 API 함수의 return 데이터다.

API 종류 (rest-API VS graphql-API)

API의 종류는 크게 rest-API,graphql-API로 2가지가 있다.
이 둘에는 몇가지의 차이점들이 존재한다.

1. 함수 이름의 차이

rest-API는 API 이름이 마치 홈페이지 주소처럼 생겼다.
graphql-API API 이름이 일반적인 함수와 같다.

2. 응답 결과물의 차이

rest-API는 응답 결과로 back-end 개발자가 만든 함수에서 보내주는모든 데이터를 받아야만 한다.
graphql-API는 back-end 개발자가 만든 함수에서필요한 데이터만골라서 받을 수 있다.

그러므로 각 API에 전송을 요청하는 담당자도 다르다.
rest-API의 요청담당자는axios
graphql-API의 요청담당자는 apollo-client

물론 이것들은, front-end 에서 설치하는 라이브러리이다.

graphql은 필요한 데이터만 골라 받을 수 있는 장점이 있어서, 효율적인 통신을 할 수 있다.
graphql은 페이스북에서 발생하는 수많은 데이터를 처리하기 위해 페이스북 개발팀에서 만들었으며,
facebook, airbnb, github 등 유명한 사이트에서 사용중인 통신 방법이다.

그럼 rest-API 는 배울 필요가 있는가?
물론이다. rest-API가 먼저 나왔기 때문에, 웹 개발에서 아직은 rest-API를 사용한 팀, 회사가 많다. 그리고 개발은 함께 하는 것이기 때문에 프로젝트에서 rest-API를 사용한다면 따라야 하기 때문이다.
또한, 다른 회사에서 제공해주는 API를 사용하는 경우가 있기 때문이다. 예를들어, 구글로 로그인, 카카오로 로그인 등의 외부 기능들은 그 곳에서 제공하는 API를 사용해야 하는데, 이러한 기능들은 대부분 rest-API로 제공되고 있기 때문이다.

API, CRUD

기본적으로 API는 4가지 기능을 구현하고 있어야 한다.
CREATE: 생성
READ: 조회
UPDATE: 수정
DELETE: 삭제

실사용 방법

한장에 정리한 부분

API 명세서

API 명세서API 사용 설명서이다.
홈페이지를 만들기 전, back-end 개발자가 만든 API가 몇 개 있고, 어떻게 구성되어있는지 확인하기 위해 필요하다.

API명세서는 Back-end 개발자에게 받아야 한다.back-end 개발자는 자신이 만든 API를 직접 문서 형태로 작성하거나, swagger 라는 프로그램을 설치해서 만든다.

API 요청 결과 타입(JSON)

JSON이란? 자바스크립트(Javascript)의 객체(Object)처럼 표기(Notation)
의 글자들을 따서 부른다.

profile
기억보다는 기록하는 개발자

0개의 댓글