아키텍처
비트윈의 스티커 시스템 구현 이야기
두줄요약
스티커 스토어·다운로드·권한 검증 구조와 구현 선택을 정리했습니다.\nWebP, CDN, GAE, 서명 토큰으로 용량·운영·보안 문제를 해결했습니다.
문제 상황
- 스티커 구매·전송·다운로드를 위한 스토어, 채팅 서버, 파일 배포 구조 필요
- 투명 배경 고해상도 애니메이션의 파일 용량·저사양 단말 디코딩 시간 문제
- 구매 사용자만 스티커를 전송하도록 하는 접근 제어 요구
구조와 흐름
- Java 기반 스티커 스토어와 MySQL, Cordova 연동 구조
- S3 원본 파일과 CloudFront CDN 배포, GAE 기반 다운로드 URL 변환
- 토큰 버전·스티커 ID·사용자 ID·유효기간·서명 검증 기반 전송 권한 확인
선택 이유
- 팀의 Java 숙련도를 고려한 Flask·SQLAlchemy 계획 철회와 Jetty·Jersey 채택
- 투명도와 파일 크기를 함께 고려한 WebP 다운로드, 로컬 PNG 프레임 캐싱
- 클라이언트의 해상도별 파일 선택 로직 은닉을 위한 GAE Rewrite Engine 활용
성능/운영 포인트
- 저해상도·저성능 단말에는 PNG 파일 제공으로 WebP 디코딩 지연 완화
- CloudFront 캐시 중심의 다운로드 처리로 GAE 요청·운영 비용 최소화
- 별도 EC2 다운로드 서버 회피와 GAE·AWS 관리형 서비스 활용
