본문 바로가기
근무일지

고객목록(약3만)을 관리페이지에서 확인하는데에 너무오랜 시간이걸리는 이슈

by Developer RyanKim 2019. 3. 7.

현재 Spring + jsp + mybatis 로 되어있고 데이터를 ajax요청으로 받아오는 것이 아닌

View 페이지 랜더링 시 모든 데이터를 받아오는 jstl을 사용하기 때문에 먼저 ajax요청을 하여

받아오도록 변경하였다.


변경 전에는 목록페이지로 이동할때 흰화면이 매우오래 지속되었다면, 변경 후에는 페이지는 일단 랜더링 되고

목록로딩 중에는 로딩중인 화면을 띄우고 목록을 불러오는데 속도는 변경 전 후가 큰 차이는 없었다.


그리고 페이징이나 필터링을 할 때에도 무조건 서버에서 다시 데이터를 받아 페이지를 새로 만드는 구조로 되어있어 (ajax 미사용)

속도개선방법이 없을까 고민하다가 DataTable이라는 js 라이브러리를 사용하기로 했다.

하지만 일단 View쪽에 데이터를 모두 받아와야 필터링과 페이징이 빨라지기 때문에 초기 로딩속도는 오히려 더욱 느려지는 문제가 생겼다.


어떻게 해결해야할까? DB 쿼리 쪽에서 해결하는 방향으로 고민중이다.



-----


추가


고객목록조회가 전체목록 조회 , 특정 필터 적용 조회 등 모든 고객 조회동작을 한 메소드를 호출하고

Mybatis에서 쿼리를 생성하는 부분도 한 메소드로 처리하기 때문에 매우 길고 복잡하게 되어있었다.


전체조회 메소드와 쿼리만 따로 빼내었고 실행해본 결과 속도가 어느정도 향상되었다.

댓글