Web Square5 개발자 교육 10

김연수·2023년 2월 14일
0

websquare

목록 보기
10/12

GridView Excel Provider 사용하기

  • advancedExcelDownload API를 통해 10000건의 data를 excel로 다운로드
    fileName을 설정한 것 이외에는 다른 option을 설정한 것은 없다

-> 이처럼 client를 통해 대용량의 request 정보를 전송하면 속도도 매우 느려질뿐만 아니라, 사용하는 WAS에도 매우 큰 부담을 주어 경우에 따라서는 사용하는 WAS가 비정상 종료 될 수 있다

  • provider 옵션 사용 : client 에서 전송하는 request data를 줄여주기 위해,
    provider에서 지정한 class를 통해 server에서 직접 data를 호출,
    이때 이 class는 WebSquare5에서 지정하는 IExternalGridDataProvider Interface를 상속받아 구현

    dataProvider option을 사용하고 있음, 해당 option을 통해 별도의 class를 지정하고 있음

    *data provider 구현방법
    IExternalGridDataProvider 상속 => service call을 통해 data조회
    => 조회된 data를 1차원 Array 형태로 return

-> provider를 적용하면, client에서 많은 양의 data를 server 내려주지 않아도 되어서, was 부담을 줄여 줄 수는 있지만, 10만건 이상의 큰 data를 조회할 경우 여전히 WAS에 부담이 됨

  • split provider 옵션 사용 : provider 기능 처럼 별도의 class를 지정하고 있음, IExternalSplitProvider라는 Interface를 상속받아 구현, data를 분할하여 처리, WAS의 부담을 줄여준다
    지정한대로 1000건씩 분할하여 처리하고 있음

*split provider 구현방법
IExternalSplitProvider 상속 => service call을 통해 data조회
=> 조회된 모든 data에 대해 지정된 건수 만큼 data를 분할하여 1차원 Array 형태로 return(지정된 건수 만큼 처리 후 sendCompleted를 통해 더 처리할 data 여부를 확인)

-> data를 분할하여 처리하기에 기본 data provider 보다 훨씬 더 안정적으로 사용할 수 있지만 분할 처리를 하기 때문에 처리 속도는 그리 빠르진 않다websquare_home - config - websquare.xml 파일을 통해 설정 할 수 있다

profile
코린이

2개의 댓글

comment-user-thumbnail
2023년 2월 27일

안녕하세요!! 혹시 setProviderData 메서드 구현 어떻게 하셨는지 알 수 있을까요??

1개의 답글