안녕하세요! Pop-cloud 개발 일지를 들고 돌아온 개발자입니다. 지난번 뼈대 작업 이후, 이제 본격적으로 성능 개선 및 트러블슈팅에 착수했습니다. 아직 배포까지는 시간이 걸리겠지만, 꾸준히 문제 해결과 학습을 병행하며 차근차근 진행하고 있습니다. 저희 프로젝트의 백엔드 레포지토리는 여기에서 확인하실 수 있습니다.
오늘은 최근 진행한 PR (링크)을 중심으로, Redis를 활용한 인기 쇼케이스 캐싱 및 조회수 조작 방지 전략에 대해 자세히 이야기해보고자 합니다. 목표는 단순히 인기 쇼케이스를 보여주는 것을 넘어, 정확하고 빠른 서비스 제공입니다.
본론: Redis를 활용한 성능 향상 및 보안 강화
이번 작업의 핵심은 Redis를 도입하여 두 가지 문제를 해결하는 데 있습니다. 첫째는 인기 쇼케이스 조회 API의 성능 개선, 둘째는 조회수 조작(치팅) 방지입니다.
1. 인기 쇼케이스 조회 API 성능 개선: 매번 데이터베이스에서 인기 쇼케이스 목록을 조회하는 것은 자원 낭비일 뿐 아니라, 응답 속도 저하의 원인이 될 수 있습니다. Redis의 캐싱 기능을 활용하여 인기 쇼케이스 목록을 메모리에 저장함으로써, API 호출 시 데이터베이스 접근 횟수를 줄이고 응답 시간을 단축했습니다. Redis의 빠른 속도 덕분에 사용자는 더욱 빠르게 인기 쇼케이스를 확인할 수 있게 되었습니다.
2. IP 캐싱을 통한 조회수 치팅 방지: 조회수 조작은 서비스의 신뢰성을 심각하게 저해합니다. 이 문제를 해결하기 위해, 특정 IP에서의 쇼케이스 조회 횟수를 Redis를 이용하여 관리하도록 구현했습니다. 일정 시간 내 과도한 조회 시도를 감지하면, 해당 IP에 대한 추가 조회를 제한하는 방식입니다. 이를 통해 불법적인 조회수 증가를 효과적으로 방지할 수 있을 것으로 기대하고 있습니다.
3. 배치 스케줄러 추가: 인기 쇼케이스 순위는 실시간으로 변동될 수 있기 때문에, 배치 스케줄러를 추가하여 주기적으로 인기 쇼케이스 데이터를 업데이트하도록 했습니다. (아직 다중 환경 배포는 고려하지 않은 초기 버전입니다.) 이는 Redis 캐시의 데이터 신뢰성을 유지하는 데 중요한 부분입니다.
Redis를 선택한 이유는 그 우수한 성능과 캐싱 기능 때문입니다. 다른 캐싱 솔루션과 비교하여, Redis는 빠른 속도와 간편한 사용법으로 개발 효율성을 높였습니다. 물론, Redis의 메모리 사용량 관리 및 캐시 무효화 전략 등 고려해야 할 부분들이 존재하며, 앞으로 지속적인 모니터링과 개선을 통해 최적의 성능을 유지할 계획입니다.
결론: 지속적인 개선을 통한 더 나은 서비스
이번 작업을 통해 Pop-cloud의 성능과 안정성을 한 단계 끌어올렸습니다. Redis를 통한 캐싱 전략은 API 응답 속도를 개선하고, IP 캐싱 기반의 보안 강화는 조회수 조작으로 인한 부정확한 정보 제공을 예방하는 데 기여할 것입니다. 앞으로도 꾸준한 성능 최적화와 보안 강화를 통해 더욱 완성도 높은 서비스를 제공하기 위해 노력하겠습니다. 피드백은 언제든 환영입니다!