[javascript] 동기적인 코드와 비동기적인 코드의 차이점

목차

동기적인 코드

동기적인 코드는 순차적으로 실행되는 코드를 말합니다. 즉, 한 작업의 완료를 기다렸다가 다음 작업을 수행합니다. 동기적인 코드는 단순하고 이해하기 쉽다는 장점이 있지만, 하나의 작업이 완료될 때까지 다음 작업을 시작할 수 없기 때문에 성능 저하가 발생할 수 있습니다.

비동기적인 코드

반면에, 비동기적인 코드는 병렬적으로 실행되는 코드를 말합니다. 한 작업이 실행되는 동안 다른 작업을 기다리지 않고 계속해서 다음 작업을 수행합니다. 비동기적인 코드를 사용하면 성능을 향상시킬 수 있지만, 코드의 복잡성이 증가할 수 있습니다.

차이점

동기적인 코드는 한 작업의 완료를 기다리며 순차적으로 실행되지만, 비동기적인 코드는 병렬적으로 실행되어 실제 작업의 완료 여부와는 상관없이 다음 작업을 수행합니다.

또한, 비동기적인 코드는 콜백 함수 또는 프라미스와 같은 메커니즘을 사용하여 비동기 작업의 완료를 처리합니다. 이로써 코드의 흐름을 유지하면서 비동기 작업을 처리할 수 있습니다.

예시

다음은 JavaScript에서 동기적인 코드와 비동기적인 코드의 간단한 예시입니다.

동기적인 코드

console.log('첫 번째 작업');
console.log('두 번째 작업');
console.log('세 번째 작업');

비동기적인 코드

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

위의 비동기적인 코드에서 setTimeout 함수는 1초 후에 콜백 함수를 실행하므로 ‘두 번째 작업’이 ‘세 번째 작업’보다 먼저 출력됩니다.

참고 자료