←
포트폴리오로 돌아가기
힘전소
2024.07 - 2025.02
휠체어 사용자를 위한 전동보장구 충전소 정보 / 커뮤니티 서비스
Spring Boot 3.2
MySQL
Redis
AWS S3
Docker
CloudWatch / Lambda
JPA / QueryDSL
핵심 성과
7,545ms → 1,212ms
파일 업로드 평균 응답 시간, 약 6배 단축
S3 Presigned URL + 이미지 API 분리
171초 → 1.3초
50명 동시 업로드 평균 시간, 약 130배 단축
서버 I/O 제거로 동시성 병목 해소
아키텍처
주요 구현 내용
S3 Presigned URL 도입
: 이미지 / 게시글 API 분리 후 클라이언트가 S3에 직접 업로드하도록 변경해 서버 I/O 부하를 근본 제거. 파일 업로드 평균 응답 7,545ms → 1,212ms (약 6배 단축)
동시 업로드 병목 해소
: 50명 동시 업로드 시 서버 I/O 경합이 사라져 평균 응답 171초 → 1.3초 (약 130배 단축)
고아 이미지 자동 정리
: CloudWatch Events + Lambda 스케줄러로 DB에 없는 S3 객체를 주기적으로 삭제, 스토리지 비용 낭비 방지
Cursor 페이지네이션 전환
: Offset → Cursor 방식으로 무한 스크롤 성능 향상, 복합 커서(created_at + id)로 정렬 모호성 제거
QueryDSL 조회 레이어 분리
: Repository를 조회 전용(QueryDSL)과 커맨드 전용(JPA)으로 분리해 복잡 조회 로직을 캡슐화하고 유지보수성 향상
전역 예외 처리 통합
: Enum 기반 에러 코드 체계 + @RestControllerAdvice로 일관된 에러 응답 보장
GitHub
jinho7/FIll_Energer_BackEnd_Server