Every Senior Developer Needs To Know This!
- 배경 작업(Background Jobs) 또는 작업 큐 시스템은 많은 회사에서 사용되지만, 신입 개발자는 잘 모르는 개념입니다. ⚙️
- 일반적인 웹 요청에서 시간이 오래 걸리는 작업(예: 이메일 전송)을 배경 작업으로 분리하여 사용자 요청 처리 시간을 단축합니다. ⏱️
- 배경 작업 시스템은 웹 서버, 작업 큐, 워커로 구성됩니다. 워커는 큐에서 작업을 가져와 처리하고, 실패 시 재시도할 수 있습니다. 🔄
- Redis와 같은 인메모리 데이터베이스를 사용하여 작업 큐를 구현하면 작업 처리 속도를 높일 수 있습니다. 🚀
- 작업 큐 시스템은 작업의 우선순위, 지연 시간 등을 설정하여 작업 실행 순서를 제어할 수 있습니다. 🚦
- Worker의 동시성(Concurrency)을 높여 여러 작업을 동시에 처리할 수 있지만, 서버의 CPU 및 처리 능력이 더 많이 필요합니다. 🏋️
- 작업 큐, 워커, 작업 객체로 시스템을 구성하며, 필요에 따라 Redis 또는 PostgreSQL과 같은 다양한 어댑터를 구현할 수 있습니다. 🧩
- Worker는 무한 루프를 통해 작업을 처리하지만, 작업이 없을 경우 대기하여 시스템 자원 낭비를 방지합니다. 😴