개발새발개발/JavaScript

[JavaScript] 동기와 비동기

birdsfoot 2025. 1. 28.

 

 

동기

 

 

 

 

- 동기 : 여러개의 작업이 있을 때 이 작업들을 순서대로 한 번에 하나씩 처리하는 것

- 쓰레드 : 작업을 직접 실행하고 처리해주는 역할을 하는 것

- 자바스크립트는 기본적으로 모든 코드가 동기적으로 실행됨

 

 

 

 

 

- 혹시라도 중간에 오래 걸리는 작업이 섞여있을 경우 전체 프로그램의 성능이 저하될 수 있다는 치명적인 단점이 있다

 

 

 

 

 

- 자바나 C언어는 여러개의 스레드를 동시에 사용하는 멀티스레드 기법을 사용하여 이러한 문제를 해결함

- 하지만 자바스크립트 엔진에는 쓰레드가 1개밖에 없음

-> 이를 해결하기 위해 비동기 방식을 사용함

 

 

 

 

 

비동기

 

 

- 비동기 : 작업을 순서대로 처리하지 않음

- 앞선 작업을 기다리지 않고 다른 작업을 동시에 진행시킬 수 있음 

 

 

 

 

- 결과값을 활용해야 할 때는 콜백함수를 사용함

 

 

 

 

 

setTimeout

 

- 코드를 특정 시간이 지난 이후에 비동기적으로 실행시켜주는 기능 

- setTimeout(() => {}, 3000) 

    - 특정 시간(3000ms)이 지난 후에 콜백함수를 실행시켜 줌 

 

 

 

 

 

 

싱글 스레드인데 비동기작업이 가능한 이유

 

 

 

- 이 영역 안에서 실제 자바스크립트의 비동기 작업들이 실행됨

 

 

 

 

 

- 타이머가 끝나면 javascript 코드로 출력됨

 

 

 

 

 

출처 ) 인프런 : 이정환 - 한입 크기로 잘라 먹는 리액트 강의

댓글