동기(Synchronous)와 비동기(Asyncronous)는 코드 실행 방식을 설명하는 두 가지 주요 개념이다
차이점은 작업이 수행되는 순서와 완료 시점에 있다
- 동기 코드 실행
- 작업은 순차적으로 실행되며 한 작업이 완료될 때까지 다음 작업은 대기한다
- 코드 실행 순서가 명확하며 프로그램의 흐름을 이해하기 쉽다
- 시간이 오래 걸리는 작업이 있는 경우 그 작업이 완료될 때까지 프로그램이 멈춰있게 되어 천체 성능에 영향을 줄 수 있다
- 비동기 코드 실행
- 여러 작업이 동시에 수행되는 방식, 작업이 완료되는 것을 기다리지 않고 다음 작업을 진행
- 작업이 동시에 실행되어 오래 걸리는 작업이 다른 작업에 영향을 미치지 않는다
- 전체 성능과 효율성이 향상되며 특히 I/O바운드 작업에서 이점이 크다
- 코드 실행 순서가 명확하지 않아 프로그램의 흐름을 이해하거나 디버깅하기 어려울 수 있다
javascript는 기본적으로 동기적인 코드 실행 방식을 사용하지만 이벤트 루프, 콜 스택, 백그라운드 같은 내부 메커니즘을 사용하여 비동기 코드 실행 방식을 지원한다
작업이 끝나고 후속 처리를 하고 싶은 경우 콜백 함수나 Promise, async/await를 사용해서 비동기 처리를 한다
'과거공부모음' 카테고리의 다른 글
프로미스(Promise) (0) | 2023.04.17 |
---|---|
프로세스(Process)와 스레드(Thread) (0) | 2023.04.14 |
node.js 이벤트 루프(event loop) (0) | 2023.04.13 |
node.js 콜백(callback) (0) | 2023.04.13 |
Nest.js log를 파일로 만들어서 관리 (logging) (0) | 2023.04.02 |