코딩이 즐겁다

동기(Synchronous)와 비동기(Asynchronous)의 개념 갓벽 가이드 본문

Javascript

동기(Synchronous)와 비동기(Asynchronous)의 개념 갓벽 가이드

코즐 2025. 3. 12. 07:00
반응형
반응형

 

동기(Synchronous)란?

동기 방식은 작업이 순차적으로 실행되는 방식입니다. 즉, 하나의 작업이 끝나야만 다음 작업이 실행될 수 있습니다.

💡 동기 특징

  • 코드가 위에서 아래로 차례대로 실행됨.
  • 하나의 작업이 끝나야 다음 작업을 실행.
  • 실행 순서가 보장됨 (예측하기 쉬움).
  • 실행 시간이 긴 작업이 있으면 전체 코드 실행이 멈춤 (블로킹 발생).

✅ 예제 코드:

console.log("1. 아침 식사 준비");
console.log("2. 밥 먹기");
console.log("3. 설거지 하기");

🎯 실행 결과:

1. 아침 식사 준비
2. 밥 먹기
3. 설거지 하기

순차적으로 실행되므로 실행 순서가 보장됩니다.

 


 

비동기(Asynchronous)란?

비동기 방식은 작업을 동시에 처리할 수 있는 방식입니다. 즉, 어떤 작업이 끝나길 기다리지 않고 다음 작업을 실행할 수 있습니다.

💡 비동기 특징

  • 하나의 작업이 끝날 때까지 기다리지 않고 다른 작업을 먼저 수행 가능.
  • 실행 순서가 예측되지 않을 수 있음.
  • 주로 setTimeout(), Promise, async/await 같은 비동기 함수 사용.
  • 긴 작업(예: 서버 요청, 파일 읽기)을 효율적으로 처리 가능.

✅ 예제 코드:

console.log("1. 아침 식사 준비");

setTimeout(() => {
    console.log("2. 밥 먹기 (3초 후 실행)");
}, 3000);

console.log("3. 설거지 하기");

🎯 실행 결과:

1. 아침 식사 준비
3. 설거지 하기
(3초 후)
2. 밥 먹기 (3초 후 실행)

비동기 방식이므로 "설거지 하기"가 먼저 실행되고, 3초 후에 "밥 먹기"가 실행됩니다.

 


동기 vs 비동기 비교

비교 항목 동기(Synchronous) 비동기(Asynchronous)
실행 방식 순차적으로 실행 동시에 여러 작업 가능
실행 순서 코드 순서대로 실행됨 실행 순서가 보장되지 않을 수 있음
예제 console.log(), 일반 함수 실행 setTimeout(), fetch(), Promise, async/await
단점 느린 작업이 있으면 전체가 멈춤 순서가 뒤섞일 수 있어 코드 관리가 어려울 수 있음
장점 실행 순서가 예측 가능 긴 작업을 처리할 때 효율적

 


요약 정리

  • 동기(Synchronous): 순차적으로 실행되며, 하나가 끝나야 다음이 실행됨.
  • 비동기(Asynchronous): 동시에 여러 작업이 진행될 수 있으며, 실행 순서가 예측되지 않을 수 있음.
  • 비동기는 서버 요청, 파일 읽기, 데이터베이스 작업 등 시간이 오래 걸리는 작업에서 유용함.

 

반응형