클라이언트가 페이지를 요청한다.
웹 서버는 접근한 클라이언트의 Request-header 필드인 Cookie를 확인하여
클라이언트가 해당 session-id를 보냈는지 확인한다.
session-id가 존재하지 않는다면 서버는 session-id를 생성해서 클라이언트에게 반환한다.
서버에서 클라이언트로 돌려준 session-id를 쿠키를 사용해 서버에 저장한다.
클라이언트는 재접속 시 해당 쿠키를 이용하여 session-id값을 서버에 전달한다.
스택(STACK)이란?
스택이란 쌓아 올린다는 것을 의미한다.
따라서 스택 자료구조라는 것은 책을 쌓는 것처럼 차곡차곡 쌓아 올린 형태의 자료구조를 말한다.
스택은 위의 사진처럼 같은 구조와 크기의 자료를 정해진 방향으로만 쌓을 수 있고, top으로 정한 곳을 통해서만 접근할 수 있다.
top에 가장 위에 있는 자료는 가장 최근에 들어온 자료를 가리키고 있으며, 삽입되는 새 자료는 top이 가리키는 자료의 위에 쌓이게 된다.
스택에서 자료를 삭제할 때도 top을 통해서만 가능하다. 스택에서 top을 통해 삽입하는 연산을 (push), top을 통해 삭제하는 연산을 (pop)이라고 한다. 따라서 스택은 시간 순서에 따라 자료가 쌓여서 가장 마지막에 삽입된 자료가 가장 먼저 삭제된다는 구조적 특징을 가지게 된다. 이러한 스택의 구조를 후입선출(LIFO)구조라고 한다.
그리고 비어있는 스택에서 원소를 추출하려고 할 때 stack underflow라고 하며, 스택이 넘치는 경우는 stack overflow라고 한다.
유명한 사이트 stack overflow의 이름이 여기서 유래 되었다고 한다.
큐(Queue)란?
큐의 사전적 의미는 줄, 혹은 줄을 서서 기다리는것을 의미한다. 따라서 일상생활에서 놀이동산에서 줄을 서서 기다리는 것, 은행에서 먼저 온 사람의 업무를 창구에서 처리하는 것과 같이 선입선출(FIFO) 방식의 자료구조를 말한다.
정해진 한 곳을 통해서 삽입, 삭제가 이루어지는 스택과는 달리 큐는 한쪽 끝에서 삽입 작업이, 다른 쪽 끝에서 삭제 작업이 양쪽으로 이루어진다. 이 때 삭제연산만 수행되는 곳을 프론트(front), 삽입연산만 이루어지는 곳을(rear)로 정하여 각각의 연산작업만 수행된다. 이 때, 큐의 리어에서 이루어지는 삽입연산을 인큐(enQueue), 프론트에서 이루어지는 삭제연산을 디큐(deQueue) 라고 한다.
Callback이란?
다른 함수가 실행을 끝낸 뒤 실행되는 함수를 말한다.
즉, 코드를 통해 명시적으로 호출하는 함수가 아니라 함수를 등록해놓은 후 어떤 이벤트가 발생했거나 특정 시점에 도달했을 때
시스템에서 호출하는 함수를 말한다.
파라미터로 함수를 전달 받아 함수의 내부에서 실행된다.
Callback 함수의 사용 이유
Promise란?
Promise의 3가지 상태
• Pending(대기) : 비동기 처리 로직이 아직 완료되지 않은 상태.
• Fulfilled(이행) : 비동기 처리가 완료되어 프로미스가 결과값을 반환해준 상태.
◦ Rejected(실패) : 비동기 처리가 실패하거나 오류가 발생한 상태.
Async, Await이란?
요약