동기와 비동기
동기(Synchronous: 동시성의)
- 작업실행시, 해당 작업 완료 전까지 대기한 후 다음 작업 진행(한 작업 후 다음 작업, 순서대로)
✅ 장점: 순서대로 작업을 진행할 때, 각 작업이 서로 의존적일 경우
❌ 단점: 많은 시간을 요구할 경우 효율성 감소
- 데이터 분석을 위해 데이터를 불러오고 분석하여 시각화
비동기(Asynchronous)
- 작업이 완료되지 않을지라도, 대기하지 않고 바로 후속 작업 진행
- 사용자의 불편을 감소하기 위해 서버와 서비스에서 많이 사용
- 콜백(callbacks), 프로미스(promises), async/await를 사용하여 구현됨.
✅ 장점: 다른 작업을 함께 수행할 수 있어 효율적, 병렬성이 중요할 경우, 대기시간이 긴 I/O작업이 많을 경우
❌ 단점: 자원관리, 테스팅 복잡, 코드와 디버깅 처리 복잡
- 이메일을 보내면, 이메일 회신 전까지 다른 일을 할 수 있음
참고
- 동기와 비동기에 대하여 간단하게 알려줘 [ChatGPT]