커미션 신청서의 절반이 신청 버튼이 눌리지 않는다는 고객 이슈가 있었습니다.
처음에 백엔드에서 생긴 이슈는 꼭 alert로 표시하도록 코드를 작성했는데 고객은 아무런 응답도 받지 못했다고 합니다.
예상 원인
프론트팀과 테스트를 진행한 결과, NGINX에서 업로드한 파일의 용량이 너무 커서 413 에러가 발생한 것이 신청 실패의 원인이었습니다.
nginx 설정을 고쳤더니 이제 10개 이상의 이미지도 에러 없이 요청이 정상 접수되었습니다.
다만 고객에게 응답이 도착할 때까지 33초가 걸렸습니다;;; cloudinary에 업로드하는 과정을 단순 for문으로 작성해서 단체 커미션 신청의 경우 고객은 답답하게 계속 화면을 기다려야 합니다.
그래서 executorService
를 사용해서 업로드 요청을 10개의 스레드로 처리해서 테스트한 결과 33초에서 4초로 응답 시간이 개선되었습니다.
프론트에서는 로딩화면을 추가하고 파일 업로드 용량에 대한 안내 문구와 유효성 검사를 더 체계적으로 하도록 했습니다.
첨부해야 할 이미지가 15장 이상이라면 정리된 excel 또는 pdf 문서를 권유하는 내용을 추가합니다.
배포 시 테스트가 더 치밀했다면 사전에 알지 않았을까? 라는 마음으로 테스트 인원을 늘려서 모바일/pc + 브라우저별로 테스트를 진행했습니다.
이슈 관련해서는 신청자분들께 정중히 사과드리고 작업일 단축 무료 서비스를 제공했습니다.
소규모 코딩만 했던 제게 스레드 병렬, 동시성 관련 공부를 할 계기가 되었고, 기획에서 허술했던 점을 보완할 수 있었던 좋은 계기가 되었습니다.