본문 바로가기

과거공부모음

동기(Synchronous)와 비동기(Asyncronous)

동기(Synchronous)와 비동기(Asyncronous)는 코드 실행 방식을 설명하는 두 가지 주요 개념이다

차이점은 작업이 수행되는 순서와 완료 시점에 있다

 

  1. 동기 코드 실행
    1. 작업은 순차적으로 실행되며 한 작업이 완료될 때까지 다음 작업은 대기한다
    2. 코드 실행 순서가 명확하며 프로그램의 흐름을 이해하기 쉽다
    3. 시간이 오래 걸리는 작업이 있는 경우 그 작업이 완료될 때까지 프로그램이 멈춰있게 되어 천체 성능에 영향을 줄 수 있다
  2. 비동기 코드 실행
    1. 여러 작업이 동시에 수행되는 방식, 작업이 완료되는 것을 기다리지 않고 다음 작업을 진행
    2. 작업이 동시에 실행되어 오래 걸리는 작업이 다른 작업에 영향을 미치지 않는다
    3. 전체 성능과 효율성이 향상되며 특히 I/O바운드 작업에서 이점이 크다
    4. 코드 실행 순서가 명확하지 않아 프로그램의 흐름을 이해하거나 디버깅하기 어려울 수 있다

javascript는 기본적으로 동기적인 코드 실행 방식을 사용하지만 이벤트 루프, 콜 스택, 백그라운드 같은 내부 메커니즘을 사용하여 비동기 코드 실행 방식을 지원한다

작업이 끝나고 후속 처리를 하고 싶은 경우 콜백 함수나 Promise, async/await를 사용해서 비동기 처리를 한다