안녕하세요 저희는 탑스터 2.0을 기획한 힙스터즈 입니다.
저는 발표자 이태호입니다.
서비스 아키택쳐
CI/CD : 깃허브 액션스를 통해 트리거가 발동하면 DockerHub에 이미지를 빌드하고
S3에 docker compose파일을 포함한 파일들을 zip파일로 업로드합니다. 그리고 EB에 해당 zip파일을 수행할 것을 지시한다.
저희 프로젝트의 RDB로는 MySQL을, NoSQL으로 Redis를 사용하고 있습니다.
음악검색을 위해 SpotifyOpenAPI를 이용했습니다.
4-1 Redis
저희는 Redis를 이용해 데이터 캐싱, 리프래시 토큰을 저장하고 있습니다.
data caching
7번 페이지
데이터 캐싱을 통해 응답속도를 향상 시킬 수 있었습니다.
8번 페이지
캐싱 되지 않은 데이터는 1.4초의 응답시간이 걸렸습니다.
캐싱된 데이터는 18ms가 걸려 약 78배의 성능 향상을 확인 할 수 있었습니다.
외부 API요청시 비용이 부과됩니다. 따라서 API 요청의 횟수를 줄이기 위해 Data Caching을 도입했습니다.
9번 페이지
캐싱전략응로는 LRU를 선택했습니다.
서비스 특성상 자주 요청되는 앨범은 특정되어 있기 때문에, 자주 요청되는 앨범이 늦게 지워지고, 빈도수가 낮은 앨범이 먼저 지워질 수 있도록 LRU 캐싱전략을 선택했습니다.
10번 페이지