동기 (Synchronous)
동기 처리에서는 작업이 순차적으로 수행된다. 하나의 작업이 완료될 때까지 다른 작업이 시작되지 않는다. 즉, 함수 호출이나 작업 요청을 하면 그 작업이 완료될 때까지 기다렸다가 다음 작업을 시작합니다.
특징
- 순차적 실행: 모든 작업이 순서대로 실행됩니다.
- 블로킹(blocking): 작업이 완료될 때까지 대기 상태에 있게 됨.
- 단순성: 코드가 직관적이고 이해하기 쉽다.
장점
- 코드의 흐름이 직관적이고 이해하기 쉬움
- 디버깅과 오류 처리가 용이
단점
- 작업이 오래 걸리는 경우 전체 시스템의 응답성이 저하될 수 있습니다.
- 자원을 비효율적으로 사용할 수 있습니다.
비동기
비동기 처리에서는 작업이 병렬적으로 수행된다. 하나의 작업이 시작 된 후 완료될 때까지 기다리지 않고, 다른 작업을 계속해서 수행할 수 있습니다. 작업이 완료되면 콜백 함수나 이벤트 핸들러를 통해 결과를 처리한다.
특징
- 병렬적 실행: 여러 작업이 동시에 수행될 수 있습니다.
- 논블로킹(non-blocking): 작업이 완료될 때까지 대기하지 않고 다른 작업을 계속 수행
- 복잡성: 코드가 복잡해질 수 있으며, 동기화 문제가 발생할 수 있다.
장점
- 시스템의 응답성이 향상됨.
- 자원을 효율적으로 사용할 수 있다.
단점
- 코드가 복잡해지고 이해하기 어렵다.
- 디버깅과 오류 처리가 어려울 수 있다.
Share article