-
셀러리(Celery)Python/Today 2025. 9. 5. 13:20
1. 셀러리란?
- 비동기 작업 처리(Asynchronous Task Processing) 및 분산 처리(Distributed Task Queue) 를 위한 파이썬 라이브러리
- 웹 서버에서 오래 걸리는 작업을 백그라운드로 넘겨 실행하게 함
- 즉, 웹 서버는 빠르게 응답하고, 무거운 작업은 다른 워커가 대신 처리
2. 셀러리의 핵심 구성 요소
구성 요소 설명 Producer 작업을 생성하고 Broker에 전달 웹 서버(Flask, Django 등) Task 실행할 작업(함수) 이메일 전송, 이미지 처리 Broker 작업을 저장하고 전달하는 메시지 큐 Redis, RabbitMQ Worker Broker에서 Task를 가져와 실행 celery -A tasks worker Result Backend 작업 실행 결과를 저장하는 저장소 Redis, DB, Memcached
3. 동작 구조
- 사용자가 웹 서버에 요청 (예: "회원가입 완료 메일 보내기")
- 서버는 메일 전송 작업을 Task 로 만들어 Broker(Redis 등)에 전달
- 대기 중이던 Worker 가 Broker에서 작업을 꺼냄
- Worker가 작업을 실행 (메일 전송 완료)
- 결과가 필요하다면 Result Backend 에 저장
4. 주요 장점 & 단점
구분 내용 ✅ 장점 - 웹 서버 부담 감소 (비동기 처리)
- 여러 서버에서 동시에 작업 처리 가능 (확장성)
- 스케줄링 가능 (정해진 시간마다 실행)
- 대규모 데이터 처리에 유용❌ 단점 - Redis/RabbitMQ 같은 외부 인프라 필요
- 셋업과 운영 복잡도 증가
- 작은 프로젝트에서는 오버엔지니어링 될 수 있음'Python > Today' 카테고리의 다른 글
타입 힌트(Tpye Hint) (0) 2025.09.03 @inject (0) 2025.08.27 Alembic (0) 2025.08.26 Mapped (0) 2025.08.25 SQLAlchemy 1.3 vs 2.0 차이점 (0) 2025.08.25