- 백프레셔는 생산자와 소비자 간 처리 속도 차이에서 발생하며, 유체 역학에서 유래됨 🌊.
- 메시지 큐, 디스크 읽기/쓰기, 프론트엔드 UI 렌더링 등 다양한 시나리오에서 발생 가능 💻.
- 백프레셔 해결 전략으로는 제어(control), 버퍼링(buffering), 드롭(drop), 무시(ignore)가 있음 ⚙️.
- 제어는 소비자가 생산자에게 속도 조절을 요청하는 방식이며, 풀 시스템에서 가능 🕹️.
- 버퍼링은 메시지를 RAM이나 디스크에 저장하는 방식이며, RAM 용량 제한을 고려해야 함 💾.
- 드롭은 중요하지 않은 메시지를 삭제하여 시스템 부하를 줄이는 방식이며, Twitch 댓글 예시 🗑️.
- 무시는 생산자의 속도와 버퍼 크기를 알고 있을 때, 시스템에 문제가 없을 경우 사용 가능 💤.
- Node.js 스트림에서 파이프(pipe)를 사용하면 백프레셔를 자동으로 처리할 수 있음 🔗.