본문 바로가기

ETC/용어공부

동기적 vs 비동기적 차이

동기(Synchronous)와 비동기(Asynchronous)는 프로그램이나 함수가 작업을 처리하는 방식을 설명하는 용어입니다.

  1. 동기(Synchronous): 동기적인 작업은 순차적으로 실행되는 작업을 의미합니다. 즉, 한 작업이 완료될 때까지 다음 작업이 실행되지 않습니다. 동기 코드는 순서에 따라 한 번에 하나씩 실행됩니다. 예를 들어, A 작업이 끝나야 B 작업이 시작됩니다. 동기 코드는 일반적으로 직관적이고 이해하기 쉽지만, 한 작업이 오랜 시간이 걸리면 다음 작업이 실행되기까지 대기해야 하는 단점이 있습니다.
  2. 비동기(Asynchronous): 비동기적인 작업은 순차적으로 실행되지 않고, 동시에 여러 작업을 수행할 수 있습니다. 비동기 코드에서는 작업이 완료될 때까지 기다리지 않고 다른 작업을 계속 수행합니다. 이를 통해 시간이 오래 걸리는 작업을 기다리는 동안 다른 작업을 수행할 수 있습니다. 주로 콜백 함수, 프로미스(Promise), 혹은 async/await를 통해 비동기 작업을 처리합니다.

예시:

console.log("첫 번째 작업 시작");
console.log("두 번째 작업 시작");
console.log("세 번째 작업 시작");
console.log("첫 번째 작업 시작");
setTimeout(() => {
    console.log("두 번째 작업 시작");
}, 1000);
console.log("세 번째 작업 시작");

위 예시에서 setTimeout() 함수는 1초 후에 실행되는 작업을 설정합니다. 따라서 "첫 번째 작업 시작", "세 번째 작업 시작"은 즉시 실행되고, 1초 후에 "두 번째 작업 시작"이 실행됩니다.

동기와 비동기는 어떤 작업이 수행되는 순서와 시간에 대한 제어 방식의 차이를 의미합니다. 동기적 작업은 순차적이고 직렬적인 반면, 비동기적 작업은 병렬적이고 동시에 처리될 수 있습니다.

728x90