두 컴퓨터 간에 텍스트 데이터를 주고 받는 길
요청: 작성한 게시물 텍스트 데이터를 HTTP를 통해 Back-end 컴퓨터로 보내고 Back-end 컴퓨터에게 이 데이터를 데이터베이스에 저장해달라고 요청한다.
응답: 요청을 받은 Back-end 컴퓨터가 성공, 실패 등 처리 결과를 응답한다. Back-end 컴퓨터는 응답할 때, 응답 상태코드 라는 것도 보낸다.
응답 상태코드
▪︎ 100 ~ 599까지의 숫자로 구성
▪︎ 200 성공
▪︎ 400 Front-end 에러
▪︎ 500 Back-end 에러
API란 HTTP 요청을 Back-end 컴퓨터에 보냈을 때 실행되는 Back-end 기능이다.
데이터 요청을 받고 응답을 주는 담당자
▪︎ 응답 결과로 back-end 개발자가 만든 함수에서 보내주는 모든 데이터를 받아야만 한다.
▪︎ rest-API에 요청하는 요청담당자: Axios
서버와 데이터를 주고 받는 2가지 방식
rest-API 또는 graphql-API를 사용해서 해야할 일은 요청에 대한 응답을 받은 객체(JSON)를 변수에 담아서 사용한다. 응답 결과를 변수에 담아서 사용하려면 통신이 완료될 때까지 기다려야한다. 이 때 async / await를 활용하여 기다려야한다.
// 비동기 통신
async function 함수이름(){
axios('API이름') // 서버 컴퓨터에 요청(기다리지 않음)
}
// 동기 통신
async function 함수이름(){
await axios('API이름') // 서버 컴퓨터에 요청(기다림)
}
동기 방식은 설계가 매우 간단하고 직관적이지만, 결과가 주어질 때까지 아무것도 못한다.
비동기 방식은 좀 더 복잡하지만, 결과가 주어지는 시간 동안 다른 작업을 할 수 있으므로 시간 사용에 있어서 효율적이다.
자바스트립트 비동기 처리에 사용되는 객체
API가 실행되면 서버에다가 요청을 보내는데 받아오기도 전에 화면에 데이터를 표시하려고하면 오류가 발생하거나 빈화면이 뜸(이런 문제점을 해결하기위한 방법이 Promise)
✚ Promise는 비동기적으로 실행하는 작업의 결과를 나타내는 객체이다.
// 비동기통신
async function aaa(){
const data = axios.get('https://koreanjson.com/posts/1')
cosnlole.log(data)
// Promise
}
//동기 통신
async function bbb(){
const data = await axios.get('https://koreanjson.com/posts/1')
cosnlole.log(data)
//{id:1, title:"정당의 목적이나 활동이.."}
}
Reference
https://velog.io/@h1225hs/http
https://danac.tistory.com/251