1. 개요
보이스봇, 챗봇 저작 운영 서비스의 각종 데이터를 엑셀 파일을 활용해서 다운로드, 업로드 할 수 있는 공통 컴포넌트를 개발
2. 요구사항 정리
다운로드
1) 다운로드 버튼을 눌러 해당 데이터 전체를 다운로드할 수 있다.
2) 다운로드하고 싶은 속성을 개발자가 지정할 수 있다. ex) ["이름", "key", "최소값", "최대값"]
업로드
1) 엑셀 파일을 활용해 새 데이터들을 등록할 수 있다.
2) 엑셀 업로드 버튼 클릭시 모달이 보여지고 해당 모달은 업로드에 활용할 파일을 선택할 수 있고, 샘플 다운로드 버튼을 통해 엑셀 업로드 파일 양식을 다운로드 할 수 있다.
3) 업로드 후 결과를 사용자에게 보여준다.
이전 버전 2.0 서비스의 경우 엑셀 업로드, 다운로드 기능이 공통으로 존재하지 않고 각 페이지마다 따로 구현이 되어 있었다.
중복이 많고 변경시 작업량이 많기 때문에 공통 컴포넌트로 추상화해서 개발을 했다.
이전 버전 2.0 서비스의 경우 엑셀 업로드시 결과를 엑셀파일로 변환하여 사용자가 다운로드하여 보게 했다. 또한 업로드 실패한 항목에 대해 왜 실패했는지를 알려주지 않았다.
이는 사용자 입장에서 번거로운 일이기 때문에 모달창으로 결과를 보여주고, 실패 항목들에 대해서는 왜 실패했는지 이유들을 보여줬다.
3. 라이브러리 선정
회사에서 제공해주는 엑셀 2013의 경우 C++를 기반으로 제작되어 있다. C++에 대한 지식이 없기 때문에 직접 엑셀파일을 제작하는 것은 비용이 너무 많이 들기 때문에 객체 -> 엑셀, 엑셀 -> 객체로 변환해주는 라이브러리를 하나 써야 했다.
라이브러리 선정에 앞서 고려한 사항들은 다음과 같다.
1) 모든 브라우저에서 잘 작동해야 한다.
익스플로러 같은 브라우저에서 잘 작동하지 않으면 남이 제작한 라이브러리를 직접 뜯어보면서 예외처리도하고 매우 비용이 많이 들 수 있다. 따라서 모든 브라우저에서 잘 작동해야 한다.
2) 많은 사람들이 사용하고 있는 라이브러리여야 한다.
다른 사람들이 쓰고 정리한 블로그 포스팅 등을 보고 참고하여 더 빠르게 작업을 진행할 수 있다.
3) 엑셀 -> 객체, 객체 -> 엑셀 변환이 간단해야 한다.
해당 요건들을 고려하여 xlsx 라이브러리를 사용하기로 했다. 이 라이브러리의 경우 1) 모든 브라우저에서 잘 작동하며 2) 많은 사람들이 사용하고 있고 한글로 된 포스팅들도 많아 참고할 자료가 많고 3) 액셀 -> 객체 , 객체 -> 엑셀 변환을 utils.aoa_to_sheet
, sheet_to_aoa
등 간단하게 메소드를 활용하여 처리할 수 있다.
'프로젝트 회고 > 엑셀 다운로드, 업로드 공통 모듈 개발' 카테고리의 다른 글
4. 정리 - 엑셀 공통 모듈 (1) | 2022.08.27 |
---|---|
3. 개발 - 엑셀 업로드 (1) | 2022.08.27 |
2. 개발 - 레이아웃, 엑셀 다운로드 (0) | 2022.08.26 |