[기여도]
백엔드 개발자(본인), 팀 내 프론트엔드 개발자와 진행
[문제]
504 Gateway Timeout 등 파일 업로드 및 다운로드 실패, 느린 API 레이턴시로 인해 불편하다는 VOC 지속적 인입
- TPS 1000명 이상의 동시 다발적인 파일 업로드 & 느린 API Latency → 피크 트래픽 504 Timeout 에러 자주 발생
[어려웠던 점과 극복 방법]
Presigned URL 방식은 클라이언트가 직접 S3에 요청을 보내는 구조 → 기존 WAS 기반 업로드/다운로드 방식과 다른 방식으로 구현 필요
- 협업의 어려움 : 클라이언트가 S3로 직접 접근하는 구조에 대해 프론트엔드 팀이 익숙하지 않아, 기술적 의사소통에 시간이 소요됨
→ 비즈니스 임팩트 (API 응답속도 개선 및 에러율 감소를 통한 만족도 개선)를 프론트엔드 팀에 문서화하여 전파 및 설득
[해결 방안]
WAS를 경유하지 않고 PresignedUrl 활용하여 S3에 직접 요청
- WAS를 경유한 업로드 방식의 한계 : WAS를 경유하는 방식 → 동시다발적 업로드 & 다운로드 → 서버 부하로 인한 서버 확장 필요, 네트워크 지연
- Presigned URL의 도입 : 클라이언트에서 직접 S3로 파일을 업로드 → 서버 부하 감소 및 업로드 & 다운로드 성능 개선
[결과]

플랫폼 파일 다운로드/업로드 API 성능 평균 3배, 최대 50배 개선, 에러 해소
- 프론트엔드 Datadog 모니터링 → Timeout 에러 해소 및 파일 다운로드/업로드 성능 평균 3배, 최대 20배 개선
- 동시접속자 1000명 대상 에러율 3% → 0%로 개선
[활용기술]
Java, Spring Boot, JPA, JUnit5, MySQL