동기와 비동기

썩은요플렛's avatar
Aug 01, 2024
동기와 비동기
 

동기 (Synchronous)

 
동기 처리에서는 작업이 순차적으로 수행된다. 하나의 작업이 완료될 때까지 다른 작업이 시작되지 않는다. 즉, 함수 호출이나 작업 요청을 하면 그 작업이 완료될 때까지 기다렸다가 다음 작업을 시작합니다.
 

특징

  1. 순차적 실행: 모든 작업이 순서대로 실행됩니다.
  1. 블로킹(blocking): 작업이 완료될 때까지 대기 상태에 있게 됨.
  1. 단순성: 코드가 직관적이고 이해하기 쉽다.
 
 

장점

  • 코드의 흐름이 직관적이고 이해하기 쉬움
  • 디버깅과 오류 처리가 용이
 

단점

  • 작업이 오래 걸리는 경우 전체 시스템의 응답성이 저하될 수 있습니다.
  • 자원을 비효율적으로 사용할 수 있습니다.
 
 

비동기

 
비동기 처리에서는 작업이 병렬적으로 수행된다. 하나의 작업이 시작 된 후 완료될 때까지 기다리지 않고, 다른 작업을 계속해서 수행할 수 있습니다. 작업이 완료되면 콜백 함수나 이벤트 핸들러를 통해 결과를 처리한다.
 

특징

 
  1. 병렬적 실행: 여러 작업이 동시에 수행될 수 있습니다.
  1. 논블로킹(non-blocking): 작업이 완료될 때까지 대기하지 않고 다른 작업을 계속 수행
  1. 복잡성: 코드가 복잡해질 수 있으며, 동기화 문제가 발생할 수 있다.
 

장점

  • 시스템의 응답성이 향상됨.
  • 자원을 효율적으로 사용할 수 있다.
 

단점

  • 코드가 복잡해지고 이해하기 어렵다.
  • 디버깅과 오류 처리가 어려울 수 있다.
     
    Share article

    RottenYogurt's Development Blog