경험을 바탕으로 적은 글입니다.

기존 통계 데이터를 조회하는 과정은 간략히 다음과 같았습니다.

  1. 클라이언트의 데이터 요청
  2. 데이터 취합
  3. 클라이언트에 완성된 통계 데이터를 응답

데이터 수가 적으면 괜찮겠지만, 실무에서는 테이블에 수십만 건의 데이터는 물론이고, 수백만 개도 넘는 데이터가 존재합니다.

더군다나 해당 데이터들을 여러 테이블에서 필터링 해서 가져오고, JOIN 한다면 DB에 부하가 생기고, 커넥션 풀(Connection Pool)을 오랫동안 잡고있게 되어 다른 작업에도 영향이 생겨 서비스에 영향이 생기게 됩니다.

결정적으로는 사용자에게 좋은 경험을 주기 어렵습니다.

몇가지 항목을 정해놓고 차례대로 개선 해보겠습니다.