티스토리 뷰
- 엑셀 파일 어드민 페이지 업로드 api
- 엑셀 파일에 대한 검증이 필요했다. MultiPartFile로 받은 후, contentType을 확인하여 엑셀 파일인지 검증하였다.
- 이후 확장자가 .xlsx or .xls에 따라 2007년 이후 엑셀버전, 2003 이전 버전으로 나뉘므로 이를 구분지어 주도록 했다. .csv파일은 따로 처리하지 않도록 하고 엑셀 파일로 올리게 예외를 던지게 했다. (이부분은 맥 유저가 많은 회사였다면 구현이 필요했을듯 하다)
- 엑셀 데이터에 대해서는 첫번째 행을 먼저 key로 받고, 이후 행의 컬럼값을 key-value쌍으로 맵에 담았다. 매 행을 맵 객체로 파싱 후 맵 리스트에 추가하고, sheet가 더 있다면 이어서 받도록 구현했다.
- 정적으로 구현된 이 부분을 개선하기 위한 방안을 사수분한테 들은 아이디어는 종류 별 엑셀의 컬럼 값을 DB에 저장해놓고 요청하는 엑셀 파일 타입별로 db 테이블의 로우로 접근해서 컬럼 값을 가져오는 방법이였다. 현재는 엑셀 업로드를 한가지 종류로만 하지만 다양해진다면 고려해볼만한 방법이였다.
- sheet별 row의 cell에 대해 getCellTypeEnum()을 통해 문자열, 숫자, 빈칸 등을 체크하여 각 타입에 맞게 getNumericCellValue() 등의 함수를 사용했다. 빈칸이 나오면 데이터 목록이 종료되었다 판단하고 해당 행을 패스하고 반복문을 탈출하도록 했다.
- ArrayList<Map<String, String>> 구조에 모든 엑셀 데이터를 받은 후 iter로 돌면서 행 별로 entity로 변환 후 DB에 저장하였다.
- 엑셀 파일 어드민 페이지 수정 api
- 해당 기능은 위에서 업로드 하는 로직의 대부분을 공유하고 값의 변화만 체크하여 변경 후 재 저장하도록 했다.
- 이미지파일을 갖는 특정 객체 어드민 페이지 등록 api
- 이미지 파일을 AWS S3에 업로드 하고 해당 URL을 가져와서 객체와 함께 저장하도록 했다. AWS에 업로드 할 때는 IAM을 발급 받아서 퍼블릭으로 업로드 하였다. 이때 버킷도 정책이 퍼블릭이여야 외부에서 url로 볼 수 있음에 유의해야한다.
- MSA 관련 자료 학습
- 새롭게 정리할 예정
- 금융 결제원 오픈뱅킹 API 구현 및 테스트
- 새롭게 정리할 예정
반응형
'취업' 카테고리의 다른 글
2022 카카오스타일 백엔드 정규직 전환 후기 (2) | 2022.12.21 |
---|---|
2022 상반기 카카오스타일 백엔드 인턴 합격 후기 (21) | 2022.06.10 |
2022 상반기 SK C&C 인턴 코딩테스트 후기 (0) | 2022.06.08 |
2022 상반기 SK 쉴더스 합격 후기 (0) | 2022.06.06 |
면접 정리글 (0) | 2021.10.06 |
Comments
반응형
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday