JavaScript는 동기식 언어이다.
자바스크립트는 한 번에 하나의 작업을 수행한다.
한 작업이 실행되는 동안 다른 작업은 멈춘 상태를 유지하고 자신의 차례를 기다리는 것을 말한다.
마치 음식점에 여러 사람들과 갔을 때, 키오스크를 이용하여 한 사람씩 결제하는 것과 유사하다.
이러한 동작을 단일 스레드(싱글 스레드), 동기(Synchronous)라고 부른다.
비동기(asynchronous)란?
이전에 말했지만, 자바스크립트는 단일 스레드, 동기식으로 동작한다.
하지만 비동기는 어떠한 요청을 보내면 그 요청이 끝날 때까지 기다리는 것이 아니라, 응답에 관계없이 바로 다음 동작이 실행되는 방식을 말한다.
왜 필요한가?
예를, 웹 페이지가 로딩되거나, 어떠한 동작(Event) 하나가 30초 이상이 걸린다고 상상해보자.
그렇게 되면, 웹 페이지는 이 동작이 끝날 때까지 화면에 나타나지 않거나 다음 동작을 수행하는데 지장을 주게 된다.
또, 요즘 사용자들은 느리고 응답이 없는 웹 사이트를 원하지 않는다.
그렇기 때문에 자바스크립트가 웹 사이트에서 동작할 때, 비동기적으로 동작할 수 있어야 한다.
인바운드 규칙(외부 -> 인스턴스)과 아웃바운드 규칙(인스턴스 -> 외부)을 설정하여 여러 가지 트래픽을 제어 할 수 있다.
(ex: 80번 포트는 모든 트래픽을 허용하지 않고 내 IP주소로 들어오는 것만 허용한다. )
REST API란 REST를 기반으로 만들어진 API를 의미
Server-Client(서버-클라이언트 구조)
Stateless(무상태)
Cacheable(캐시 처리 가능)
Layered System(계층화)
Uniform Interface(인터페이스 일관성)