비동기,,

김재현·2022년 11월 24일
0

유닛 진행!

목록 보기
14/18

비동기란 무엇일까 먼저 동기적이 무엇인지에 대해 알아보자.

동기적이라 하면 시작 시점과 완료 시점이 같은 상황이다.
(blocking 하나의 작업이 끝날때 까지 이어지는 작업을 막는것) 예를 들어
음식을 주문할때 손님1이랑 손님2가 주문할때 손님1의 메뉴가 나와야 손님2가 주문을 할 수 있다.

상당히 비효율적이다. 효율적으로 계속 주문을 받을 수 있으면 아주 좋겠다. 그래서 Node.js를 비동기적으로 작동하는 런타임으로 개발하게 된다.

대표적 예

  • 백그라운드 실행, 로딩 창 등의 작업
  • 인터넷에서 서버로 요청을 보내고, 응답을 기다리는 작업
  • 큰 용량의 파일을 로딩하는 작업
    특히 비동기적이여야 할 상황들이다.

비동기 호출

먼저 callback 함수를 알아야 한다. 다른 함수의 전달인자로 넘겨주는 함수이다.

응답이 비동기적으로 이루어지고 이벤트가 생기면 콜백한다.
예를 들면

1.주문이 들어온다. // 응답이 비동기적으로 이루어짐
2.카페라떼가 완성되면 직원이 손님을 부른다. // 완성되면 (이벤트) callback 손님을 부른다.
3.카페라떼를 손님에게 전달한다.

비동기 주요 사례

  • DOM Element 이벤트 핸들러
  • 타이머
  • 서버에 자원 요청 및 응답

Promise



알아야할 3가지

  • Promise는 클래스이기 때문에 new Promise()로 인스턴스가 만들어진다.
  • resolve()로 실행하고 에러가 있으면 reject()를 쓸 수 있다.
  • .then()을 쓸 수 있다.

async await

노드 버전이 높으면 쓸 수 있다. ES8..?


함수 앞에 async 키워드를 사용하고 async 함수 내에서 await 키워드를 사용하면 된다.
await 키워드가 작성된 코드가 동작하고 나서야 다음 순서의 코드가 동작한다!

이해가 잘 안된다면 코드를 많이 써보자!

profile
티스토리로 이사갔습니다. => https://lobsterhyeon.tistory.com/

0개의 댓글