///
Search
1️⃣

Cell 생성 정책 설정과 성능 문제

100,000개의 셀을 불러오기 과정에서 10분이 넘는 시간이 소요됨
수정 전 코드
해당 현상의 원인이 되는 코드 이다. 이 코드로 인하여 하나의 셀을 제작하는 과정에서 병목현상이 일어나 약 100,000 개의 셀 정도를 삽입하는 과정에서 성능이 저하되었다. 초기에 이렇게 코드를 디자인했던 이유는 엑셀의 경우 Row(행)에서만 Cell(스프레드시트의 가장 작은 단위)을 만들 수 있었기 때문이다. 이 때문에 곧바로 Row에서 없는 Cell을 가져오려고 한다면 적절한 예외처리가 되지 않고 NullPointerException이 발생했다. 이로 인하여 예외가 발생하지 않고, 항상 Cell을 생성하여 넘겨줄 수 있도록 하기 위하여 초기에 코드를 제작했다. 하지만 결과적으로 성능이 매우 저하되는 이슈가 생겼다. 그래서 POI 내부 구현을 찾아 Cell 생성 정책 설정을 통하여 코드를 수정했다. 결과적으로 동일한 실행 시에 10초 이내로 성능을 개선할 수 있었다.
수정 후 코드
전자정부 프레임워크의 유사한 코드
또한 전자정부 프레임워크도 동일하게 항상 Cell을 생성하기 위하여 기존 코드와 유사한 형태의 코드를 사용하는 것을 확인할 수 있었다.