3일차 통신 http / API / 데이터 전송 실습

김상도·2022년 11월 2일
0

두 컴퓨터간에 데이터 전송을 하려면 프로그램을 깔아야된다.

파일은 FTP(File Transfer Protocol)

메일은 SMTP(Simple Mail Transfer Protocol)

텍스트/하이퍼텍스트는 HTTP(HyperText Transfer Protocol)이다.

프로그램으로 컴퓨터간에 데이터 전송을 할 수 있는데 쉽게 말해 길을 깔아주는거다.

이렇게 편지 주고 받듯이 통신을 하는데 백엔드 컴퓨터로 요청한 종류에 따라 데이터베이스에 저장, 조회, 삭제 등등 요청을 하면 요청 받은 백엔드 컴퓨터가 성공, 실패 등 응답을 한다.

여기서 백엔드 컴퓨터에서 응답할 때 응답 상태코드를 함께 보내준다.

응답 상태코드는 100~599까지 있고 대표적으로 201(성공), 404(Not Found, 찾을 수 없음), 500(내부 서버 오류)이 있다. 개발을 하다보면 404는 정말 자주 보게된다...

API

API는 백엔드 개발자가 만드는 함수다. 예를 들어 식당에 가면 메뉴판을 보고 종업원에게 메뉴를 말해주면 종업원이 음식을 받아서 내 테이블 앞에 갖다준다. 여기서 API는 종업원이다. 백엔드 컴퓨터로 요청을 하면 API를 통해 정보를 받아 올 수 있는 것이다.

API 종류

API종류는 크게 2가지 REST-API, GRAPHQL-API가 있는데

GRAPHQL이 2015년에 나온 것으로 최근에 나왔다.

두 가지의 차이점을 보자.

첫번째로 rest의 이름은 홈페이지 주소같고, graphql은 일반적인 함수의 이름과 같다.

두번째는 Rest는 요청의 응답 결과로 모든 데이터를 다 가져와야 되지만, graphql는 필요한 데이터만 골라 받을 수 있다.
그렇기 때문에 graphql의 속도가 상대적으로 더 빠르다. 물론 rest도 빠르지만 이용자가 많은 사이트에서 데이터를 받는 속도에서 차이가 날 수 있다.

그럼 graphql만 배우면 될까?
안된다!

Rest를 배워야 되는 이유는 아직 많은 회사가 Rest를 사용하고 있고, open-api에서 일반적으로 Rest를 제공하고 있기 때문이다.

코드캠프에서 제공하는 graphql-API사이트에서 실습을 했다.

백엔드 개발자가 만든 API인 createUser는 유저정보를 새로 만들어 주는 함수이다.

createUserInput: CreateUserInput!에서의 !는 필수로 값을 적어야된다.

밑에 있는 CreateUserInput!를 클릭하면 email,password,name을 필수로 적어야 동작을 한다는 얘기다.

type details에 있는 user는 응답을 받을 때 백엔드 컴퓨터에서 주는 정보들이다.
id는 고유id를 주고 createAt는 현재 시간, updateAt는 수정한 시간이다.

이제 코드를 작성하면,

내가 적은 email, password, name이 유저 정보로 등록이 된거고, 오른쪽에 있는 값들은 백엔드 컴퓨터에서 나한테 준 정보들이다.

profile
개발잡

0개의 댓글