피드로 돌아가기
Move Fast and Break Things Was Fun. Now We’re Paying For It.
Dev.toDev.to
Backend

단순 Caching 대신 Event Driven 설계로 시스템 복잡도 근본적 제거

Move Fast and Break Things Was Fun. Now We’re Paying For It.

Kirill2026년 5월 6일2intermediate

Context

부하 발생 시 API 응답 시간이 10초까지 지연되는 간헐적 성능 저하 발생. 표면적인 응답 속도 개선을 위해 Caching 레이어를 추가했으나 Cache Invalidation 문제와 데이터 정합성 오류로 인한 시스템 복잡도 증가.

Technical Solution

  • 요청-응답 구조의 근본 원인 분석을 통한 Frontend의 과도한 Polling 패턴 식별
  • 상태 동기화를 위한 API 호출 횟수 최적화 및 불필요한 State 제거
  • Change Notifications 도입을 통한 실시간 데이터 업데이트 구조 설계
  • Event Driven 방식으로의 전환을 통한 서버 부하 분산 및 API 호출 빈도 감소
  • 임시방편적 Patch 대신 도메인 요구사항 재정의를 통한 단순한 아키텍처 지향

- 지연 시간 발생 시 즉각적인 Cache 도입 전 요청 발생 빈도와 원인 분석 - Frontend의 데이터 갱신 전략이 Backend 부하의 원인인지 검토 - 구현 속도보다 유지보수 비용을 낮추는 단순한 구조의 설계 우선 순위 설정 - 문제 해결을 위한 코드 작성 전 '올바른 문제 정의' 단계 필수 포함

원문 읽기