반응형
개발을 하다 보면 ‘동기(Synchronous)’와 ‘비동기(Asynchronous)’라는 말을 자주 듣게 된다.
특히 프론트엔드와 백엔드 간의 통신, API 호출, 파일 읽기 등 다양한 상황에서 이 개념은 매우 중요하다.
하지만 초보자라면 헷갈리기 쉬운 개념이기도 하다.
이번 글에서는 동기와 비동기의 차이, 실생활 예시, 그리고 개발에서의 사용 사례까지 자세히 정리해보겠다.
✅ 동기(Synchronous)란?
- 작업이 순차적으로 처리됨
- 앞 작업이 끝나야 다음 작업이 시작됨
- 결과가 나올 때까지 기다림
- 처리가 예측 가능하지만 느릴 수 있음
예시:
ATM에서 돈을 인출할 때 → 앞사람이 끝날 때까지 기다림
코드 예제 (JavaScript):
function task1() {
console.log("작업 1");
}
function task2() {
console.log("작업 2");
}
task1();
task2();
// 출력: 작업 1 → 작업 2
✅ 비동기(Asynchronous)란?
- 작업이 동시에 실행되거나 대기 없이 넘어감
- 앞 작업이 끝나지 않아도 다음 작업이 시작될 수 있음
- 결과가 도착하면 콜백/이벤트 등으로 처리
- 빠른 처리 가능하지만 예측이 어려움
예시:
배달 앱에서 음식 주문 → 요리사가 조리하는 동안 다른 앱도 사용 가능
코드 예제 (JavaScript):
console.log("작업 1");
setTimeout(() => {
console.log("작업 2 (2초 후 실행)");
}, 2000);
console.log("작업 3");
// 출력: 작업 1 → 작업 3 → 작업 2 (2초 후)
📌 핵심 차이 요약
항목 | 동기 (Synchronous) | 비동기 (Asynchronous) |
실행 방식 | 순차적으로 실행 | 병렬 또는 대기 없이 실행 |
응답 대기 여부 | 응답을 기다림 | 응답을 기다리지 않음 |
코드 흐름 | 직관적이지만 느림 | 복잡하지만 효율적 |
사용 예시 | 파일 읽기, 데이터 처리 등 | API 호출, 이벤트 처리 등 |
🎯 언제 어떤 걸 써야 할까?
- 단순한 작업이나 작은 규모의 앱에서는 동기 방식이 직관적이라 편함
- API 호출, 대규모 사용자 처리, 이벤트 기반 UI에서는 비동기가 성능상 유리
💡 면접/필기에서 나올 수 있는 질문
- "동기와 비동기의 개념 차이를 설명해보세요."
- "비동기 프로그래밍을 왜 써야 하나요?"
- "자바스크립트에서 비동기를 처리하는 방법에는 어떤 게 있나요?"
📌 매일 간단히 IT 관련 개념을 익히고 싶다면 구독하세요!👇👇👇
http://www.youtube.com/@itbite_daily
오늘의 IT한입
👋 하루 한 입, 쉽게 배우는 IT & 개발 개념! 프로그래밍, 데이터베이스, 운영체제, 네트워크, 보안, 코딩테스트까지! 취업 준비부터 실무 감각까지 매일 짧고 강력하게 정리해드립니다. 📍 매일
www.youtube.com
반응형
'IT개발 > Tech Notes' 카테고리의 다른 글
OSI 7계층 완벽 정리! 네트워크 개념 한 방에 끝내기 (0) | 2025.04.15 |
---|---|
DNS와 IP의 차이, 초보자도 이해할 수 있게 쉽게 정리해봤습니다 (0) | 2025.04.15 |
Server, DB, DBMS의 차이 – 제대로 알고 가자! (0) | 2025.04.14 |
JWT란 무엇인가? (0) | 2025.04.14 |
GET과 POST의 차이, 완벽하게 정리해보자 (0) | 2025.04.13 |
댓글