핵심 요약
월급쟁이부자들은 S3 + Lambda를 활용해 채팅 첨부 이미지의 썸네일(480×480)을 자동 생성하는 아키텍처를 도입했고, 원본은 S3에 저장하며 서버는 메시지 저장에 집중하고 썸네일 URL은 비동기로 갱신합니다. 이를 통해 애플리케이션 서버의 메모리 소모를 줄이고 목록 조회 시의 효율을 개선했습니다.
구현 방법
- 프론트엔드가 presigned URL로 원본 이미지 S3 업로드
- S3 업로드 이벤트로 Lambda 트리거 → 480×480 JPEG로 리사이징
- 썸네일은 /contract/thumbs 경로에 저장
- 서버: 메시지 저장 후 비동기로 썸네일 URL 갱신
- 웹소켓 전송 시 DB에 썸네일 URL이 있으면 전송, 없으면 S3 확인 후 있으면 전송, 없으면 null
- 누락 데이터 보완으로 정기 배치를 통한 재생성/재시도 도입
주요 결과
- 애플리케이션 서버의 이미지 리사이징 부하를 Lambda로 분리해 메모리 사용 감소
- 썸네일 기반 목록 조회로 채팅 목록 조회 속도/응답성 개선
- 썸네일 생성 완료 전 초기 조회는 원본 이미지를 우선 표시될 수 있음, 이후 갱신으로 빠르게 표시
