[C#] 동기(Synchronous) vs 비동기(Asynchronous)

Flaming Bun·2025년 6월 30일

C#

목록 보기
23/35

🔥 동기(Synchronous)

메서드를 호출하면, 그 작업이 끝날 때까지 다음 코드가 실행되지 않는다.

작업이 순차적으로 실행된다.

하나의 작업이 완료되어야 다음 작업이 시작된다.

[작업 A 실행 중...]
     |
     v
[작업 A 완료 후 작업 B 실행]
     |
     v
[작업 B 완료 후 작업 C 실행]

⚔ 예시

PlayOneShot();
GoBack();

PlayOneShot()이 끝나야 GoBack()이 실행된다.



🔥 비동기(Asynchronous)

메서드를 호출하면, 기다리지 않고 바로 다음 코드를 실행한다.

작업이 병렬적으로 실행된다.

백그라운드에서 작업이 진행되고, 완료되면 결과를 알려준다.


[작업 A 시작 ──────────────▶ 완료]
[작업 B 시작 ───────▶ 완료]
[작업 C 시작 ─────────────────────────────▶ 완료]

어떤 작업이 먼저 끝날지 예측이 힘들지만, 동시에 진행된다.


⚔ 예시

PlayOneShotAsync();
GoBack();

PlayOneShotAsync()은 백그라운드에서 실행되고,
동시에 GoBack()이 실행된다.



📌 동기(Synchronous) vs 비동기(Asynchronous)

구분동기 (Sync)비동기 (Async)
실행 순서순차적병렬, 동시에 진행 가능
다음 코드 실행작업이 끝나야 가능작업 중에도 다음 코드 실행 가능
장점순서 보장, 단순사용자 경험 향상
단점작업 완료까지 대기해야 한다.흐름 추적이 어렵고, 예외 처리 복잡해질 수 있다.

0개의 댓글