본문 바로가기
IT개발/Tech Notes

동기와 비동기의 차이, 개발자라면 꼭 알아야 할 기본 개념!

by 시간기억자 2025. 4. 14.
반응형

 

개발을 하다 보면 ‘동기(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

 

반응형

댓글