친구 정보, Redis에서 MySQL로 옮긴 이유
상황
현재 사용자의 친구 정보들을 "카카오톡 친구 API"를 통해 받은 뒤, redis에 저장해 놓고 있었다.
하지만 "자신의 친구들 중 친한 친구를 표시할 수 있다."라는 기능을 제공하고 있고, 이 정보 또한 redis에 함께 저장하고 있다.
문제점
1. 인메모리 구조인 redis에서 정보가 사라질 경우, 친구 목록은 "카카오톡 친구 API"를 통해 다시 받으면 되지만, 친한 친구 정보는 복구할 수 있는 방법이 쉽지 않다. 또한 우리 서비스에서 제공하는 기능에 대한 정보를 인메모리 구조인 레디스에서 관리하는 것이 자연스럽지 않다고 판단했다.
2. 친구들의 펀딩 게시글 조회 기능을 구현 할 때 redis를 통해 친구 목록을 받은 후, 이 정보를 바탕으로 mySQL에 있는 펀딩 게시글 목록을 조회 해야한다. 또한 친한 친구의 펀딩 게시글을 먼저 보여줄 수 있게 우선순위를 부여하고 싶은데 로직이 복잡해진다.
해결 방법
친구 정보를 redis에 저장하지 말고, mySQL로 옮기기로 했다.
이렇게 했을 때 문제점1을 해결 할 수 있다.
뿐만 아니라 join을 이용해서 문제점2도 해결된다.
'개발' 카테고리의 다른 글
친구 목록 동기화 시 기존 데이터를 업데이트하지 않고 새로운 데이터로 저장되는 문제 (0) | 2025.01.17 |
---|---|
DDD(Domain-Driven Design)와 Clean Architecture의 원칙을 반영한 이유 (6) | 2025.01.10 |
permitAll()로 요청한 api들이 JwtFilter를 거쳐서 가는 문제 (0) | 2024.04.29 |
예외 처리시 원하는 예외 응답값이 안오는 경우 (4) | 2024.04.29 |
@ColumnDefault 동작 안함(사실 동작함. 단지 적용이 안됐을 뿐.) (4) | 2024.04.15 |