Asynchronous & Synchronous
Synchrounous 동기 프로그래밍
- 데이터의 요청과 결과가 한 자리에서 동시에 일어나는 것
- 즉, 요청을 하면 시간이 얼마나 걸리던지 요청한 자리에서 결과가 주어져야한다.
- 작업들이 순차적으로 실행되며, 한 작업이 완료 될 때 까지 다음 작업이 대기한다.
- 동기 방식에서는 코드의 실행 흐름이 작업의 완료를 기다린다.
- 동기 프로그래밍을 사용하면 코드의 가독성이 높아지고, 로직의 흐름을 이해하기 쉽다.
Asynchronous 비동기 프로그래밍
-
요청과 결과는 동시에 일어나지 않을거라는 약속.
-
한 작업이 끝나기를 기다리지 않고 다음 작업을 실행 할 수 있다.
-
작업의 완료와 관계 없이 다음 코드 라인이 실행된다.
-
작업의 완료는 콜백 함수나 프로미스, async/await 을 통해 처리된다.
-
이는, 동시에 여러 작업을 처리할 수 있어서 효율적인 자원 사용과 빠른 응답시간을 제공한다.
-
특히나 네트워크 요청이나 파일I/O와 같이 시간이 많이 소요되는 작업을 처리 할 때 유리하다. (백그라운드에서 처리하게 냅두고 다른 작업하면 되니까)
-
비동기 프로그래밍은 웹 개발에서 사용된다.
-
자바스크립트와 Node.js 환경에서는 비동기 I/O 를 기본으로 하여 네트워크 요청, 파일 시스템 작업 등을 효율적으로 처리 할 수 있다.
- Node.js 는 비동기 이벤트 기반 모델을 사용하여, 단일 스레드에서도 높은 성능 제공.
-
프론트엔드 개발에서 AJAX (Asynchronous JavaScript and XML) 는 웹 페이지를 새로고치지 않고도 서버와 비동기적으로 데이터를 교환할 수 있게 해주어, 동적인 웹 어플리케이션 구현을 가능하게 한다.
- AJAX를 사용하면 사용자의 인터렉션에 신속하게 반응하는 인터렉션을 만들 수 있음.