<!-- --- name: Refactor Request Template about: 리팩토링 제안 템플릿입니다. title: [REFACTOR] 리팩토링 내용 상세 labels: refactor assignees: '' --- --> <!-- 하나씩 확인 후 체크박스에 표시해주세요. --> ## ✅ Refactor Request check list - [x] 이슈 제목: [REFACTOR] '리팩토링 내용 상세' - [ ] Assignees, Label을 붙여주세요. ## 리팩토링 개요 - #202 관련 - 현재 sql을 이용해 랜덤한 소품샵을 찾게 구현되어 있는데, 해당 sql은 random()에 따라 전체 정렬을 하므로 성능이 좋은 방식은 아니라는 단점이 있습니다 - 따라서 성능을 높이기 위해 `redis에 소품샵 번호를 캐싱`해두고, 캐싱한 데이터에서 랜덤으로 n개 추출해서 사용하는 방식을 제안합니다 + 소품샵 개수가 500개 미만이므로 redis의 용량 부담은 적을 것으로 생각합니다 ## TODO - [ ] redis에 is_deleted가 false인 소품샵 번호 전부 저장 - [ ] 랜덤 소품샵 추천 요청이 들어오면 redis에서 소품샵 번호 목록 불러오기 - [ ] 소품샵 번호 목록에서 랜덤으로 n개 고르기 - [ ] db에서 n개 소품샵에 대한 상세 정보 읽어오기
✅ Refactor Request check list
리팩토링 개요
redis에 소품샵 번호를 캐싱해두고, 캐싱한 데이터에서 랜덤으로 n개 추출해서 사용하는 방식을 제안합니다TODO