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

김재섭·2024년 12월 23일
post-thumbnail

Django와 동기

Django는 동기적 프레임워크로 동작합니다.
이는 각 요청이 순서대로 처리된다는 것을 의미합니다. 쉽게 말해, 어떤 작업이 완료될 때까지 다음 작업을 기다려야 한다는 것입니다.

  1. 사용자 A가 서버에 요청을 보냅니다.

  2. 서버가 요청을 처리하는 동안 사용자 B가 요청을 보냅니다.

  3. 서버가 사용자 A의 요청을 완료한 후 사용자 B의 요청을 처리합니다.

이 방식은 간단하고 이해하기 쉽지만, 여러 작업을 동시에 처리해야 할 때는 비효율적일 수 있습니다.

FastAPI와 비동기

FastAPI는 비동기적 프레임워크로 설계되었습니다.
이는 여러 작업을 동시에 처리할 수 있다는 의미입니다. 즉, 하나의 작업이 완료될 때까지 기다리지 않고 다른 작업을 병렬로 처리할 수 있습니다.

  1. 사용자 A가 서버에 요청을 보냅니다.

  2. 서버가 사용자 A의 요청을 처리하는 동안 사용자 B의 요청을 처리합니다.

  3. 두 요청이 동시에 처리되기 때문에 응답 속도가 빨라집니다.

비동기 방식은 특히 네트워크 I/O 작업이나 데이터베이스 쿼리 등 대기 시간이 긴 작업에서 효율적입니다.

동기 (Synchronous)

처리 방식: 요청을 순서대로 처리.

장점: 이해하기 쉽고, 구현이 간단.

단점: 여러 요청이 동시에 들어오면 처리 속도가 느려질 수 있음.

비동기 (Asynchronous)

처리 방식: 여러 요청을 동시에 처리.

장점: 대기 시간이 긴 작업에서도 효율적, 응답 속도가 빠름.

단점: 구현이 복잡할 수 있음.

profile
Upward Developer

0개의 댓글