개발 노트

동기 / 비동기처리와 콜백함수 본문

JavaScript

동기 / 비동기처리와 콜백함수

알 수 없는 사용자 2023. 9. 21. 16:37

Q. js 병렬처리 가능?

A. js언어자체는 한번에 코드 한줄씩 차례로 실행됨

 

동기식처리(Synchronous)

  • 그냥 js는 오래걸리는 연산 만나면 멈춤
  • 한번에 코드 한줄씩 차례로 실행

 

비동기식처리(Asynchronous)

  • Web API와 연관된 특수한 함수들을 쓰면 작업이 오래걸릴 때, 다른거부터 실행가능
  • 오래걸리는 작업이 있으면 제끼고 다른거부터 처리하는 방식 ( js가 아니라 js를 실행하는 브라우저 덕분에 가능 )
    ex) setTimeout, 이벤트리스너, ajax

 

콜백함수

  • js를 순차적으로 실행하려면 콜백함수를 사용
  • 함수안에 들어가는 함수
  • 함수 디자인 패턴일 뿐 (비동기, 동기를 보장하는 건 아님)
  • 문제점
    • 여러 개 만들면 코드가 어렵고 복잡해짐 (옆으로 길어짐)
    • 쉽게 쓰기 위해 Promise 패턴이 있음 (옆으로 길어지진 않음)

'JavaScript' 카테고리의 다른 글

async / await  (0) 2023.09.21
Promise  (0) 2023.09.21
객체 안에서 key를 [ ]로 감싸면  (0) 2023.08.27
js - split()  (0) 2023.08.10
js - slice()  (0) 2023.08.10