동기(Synchronous)와 비동기(Asynchronous)

샘물공원·2023년 4월 14일
0

javascript

목록 보기
7/8

동기(Synchronous)와 비동기(Asynchronous)는 코드 실행 방식을 나타내는 용어입니다.

동기(Synchronous)

동기 코드 실행 방식은 코드를 순차적으로 실행하면서 한 작업이 끝날 때까지 기다리는 방식입니다. 예를 들어, 함수를 호출하면 그 함수의 작업이 완료될 때까지 코드 실행이 중지되며, 그 다음 코드가 실행됩니다

  • 장점
    1. 코드 실행이 순차적으로 진행되므로, 코드의 이해와 디버깅이 쉽습니다.
    2. 동기식으로 실행되는 함수나 작업이 완료될 때까지 다음 코드 실행을 기다리므로, 코드 실행 순서가 명확하고 예측 가능합니다.
  • 단점
    1. 한 작업이 끝날 때까지 기다려야 하므로, 실행 시간이 길어질 수 있습니다.
    2. 작업이 블로킹(Blocking)되므로, 다른 작업을 수행할 수 없습니다.
    3. 병렬 처리를 할 수 없기 때문에, 시스템의 확장성이 제한될 수 있습니다.

비동기(Synchronous)

비동기 코드 실행 방식은 코드를 순차적으로 실행하지 않고, 작업이 완료될 때까지 기다리지 않고 즉시 다음 코드를 실행하는 방식입니다. 이 방식은 작업이 완료될 때까지 기다리지 않기 때문에 다른 작업을 동시에 수행할 수 있습니다. 예를 들어, 네트워크 요청을 보낼 때, 요청이 완료될 때까지 기다리지 않고 다음 코드를 실행하며, 요청이 완료되면 콜백 함수를 호출하여 결과를 받아옵니다.

  • 장점
    1. 작업이 완료될 때까지 기다리지 않기 때문에, 실행 시간이 짧아집니다.
    2. 다른 작업을 수행하면서도 작업을 처리할 수 있기 때문에, 시스템의 확장성이 높아집니다.
    3. 비동기식으로 실행되는 함수나 작업이 완료될 때까지 기다리지 않으므로, 다른 코드와 병렬로 실행될 수 있습니다.
  • 단점
    1. 코드 실행 순서가 예측하기 어렵고, 이해와 디버깅이 어려울 수 있습니다.
    2. 동기식에 비해 구현이 복잡할 수 있습니다.
    3. 비동기식으로 실행되는 함수나 작업이 완료되면, 콜백 함수를 호출해야 하기 때문에, 콜백 지옥(Callback Hell)이 발생할 수 있습니다.
profile
게임개발

0개의 댓글