사실 예전에 HTTP에 대한 내용을 자세히 다룬적이 있어서
여기서는 간단하게 소개정도만 하고 넘어가겠다..ㅎㅎ
자세한 내용을 원하면 제가 정리한 링크에 들어가서 확인하기 바랍니다.
HTTP란 두 컴퓨터간에 텍스트 데이터를 주고 받는 길이다.
FTP=> File Transfer Protocol
SMTP=>Simple Mail Transfer Protocol
HTTP=> Hyper Text Transfer Protocol
현재 내가 소개할 것은 HTTP 통신에 대해 알아 보겠다.
웹브라우저에서 홈페이지(Front-end)가 실행중이라면, 작성한 게시물 텍스트 데이터를 HTTP를 통해 Back-end 컴퓨터로 보내고 Back-end 컴퓨터에게 이 데이터를 데이터베이스에 저장 해달라고 요청한다.
요청을 받은 Back-end 컴퓨터가 성공, 실패 등 처리 결과를 응답한다.
HTTP 요청과 응답 할때 텍스트에 보내지는 형태는 객체이고 이러한 객체를 주고받을때 객체로 보내줄수 없기 때문에
이를 JSON형태의 문자열로 변환시켜 텍스트 형태로 변경해서 보낸다.
데이터 베이스에 바로 요청이 안되는 이유는 Back-end에서 검증과정을 거쳐야하기 때문에 아무나 데이터베이스에 요청을 할 수가 없다.
API는 HTTP 요청을 Back-end 컴퓨터에 보냈을때 실행되는 Back-end 기능으로 종류는 크게 rest-API, Graphql-API로 2가지가 있다. 만약 게시물이 아닌 프로필 데이터를 저장하고 싶으면 여러개의 HTTP라는 길이 존재해야 되고, 각각의 요청마다 담당자가 필요하며 우리는 이 담당자를 API라고 부른다.
API의 종류는 크게 rest-API, graphql-API로 2가지가 있다.
기존의 REST-API는 브라우저에서 불필요한것까지 응답을 받아 페이지가 나오는데 속도가 조금 걸리게된다. 그래서 페이스북에서 이러한 문제점을 발견하고 브라우저에서 필요한 값만 응답받아 쓸 수 있도록 GRAPHQL을 만들게 되었다.
배워야되는 이유
1) 많은 회사가 REST API를 사용
2) 취업한 회사에서 REST를 사용할 수 있음
3) OPEN-API에서 일반적으로 REST를 제공
rest-API는 API 이름이 마치 홈페이지 주소처럼 생겼고, graphql-API는 API이름이 일반적인 함수와 같다.
rest-API는 응답결과로 back-end 개발자가 만든 함수에서 보내주는 모든 데이터를 받아야만 하고, 반면에 graphql-API는 back-end 개발자가 만든 함수에서 필요한 데이터만 골라 받을 수 있다.
rest-API에 요청하는 담당자는 axios이고,
graphql-API에 요청하는 요청 담당자는 appllo-client로 API를 요청하는 담당자도 다르다. 여기서 요청하는 담당자는 Front-end에서 설치하는 라이브러리라고 할 수 있다.
rest-API와 graphql API를 사용하기 위해서는 프로그램을 설치해야되는데, 여기서 다른 점은 두 API가 사용하는 프로그램이 다르다는것이다. rest-API는 axios를 사용하고, graphql은 appllo-client를 사용한다.
API는 크게 4가지 방식으로 구분할 수 있다.
API 명세서는 API 사용 설명서이다.
홈페이지를 만들기 전, Back-end 개발자가 만들어놓은 API가 몇개 있고, 어떻게 구성되어있는지 확인하기 위해 필요하다.
API명세서는 Back-end 개발자에게 받아야되며, Back-end 개발자는 자신이 만든 API를 직접 문서 형태로 작성하거나 swagger라는 프로그램을 설치해서 만들어야된다.