11st-tech / blog-comments

utterances를 활용해 https://11st-tech.github.io 블로그의 댓글이 저장되는 저장소입니다.
1 stars 0 forks source link

11번가 인턴의 카탈로그 리뷰 API 개선기 | 11번가 TechBlog — 11번가 기술블로그 #18

Open utterances-bot opened 11 months ago

utterances-bot commented 11 months ago

11번가 인턴의 카탈로그 리뷰 API 개선기 | 11번가 TechBlog — 11번가 기술블로그

안녕하세요. 11번가 PDP개발팀 신치용입니다. 작년 11월 중순부터 5주가량 진행된 인턴 기간동안 과제를 진행하면서 느낀 경험을 담은 글입니다. 많이 부족하지만 짧은 인턴 기간 동안 진행한 과제라는 점을 고려해주시면서 읽어주시면 감사하겠습니다! 😄 목차 인턴 과제 카

https://11st-tech.github.io/2023/07/19/improve-catalog-review-api/

px201226 commented 11 months ago

멀티레이어 캐시 계층구조를 구성할 때, 보통 빠르고 용량이 작은 스토리지를 가장 위에 두고 피라미드 모양으로 만드는게 일반적인데요. 1차 캐시를 redis, 2차 캐시를 로컬 캐시로 하면 역피라미드 모양이 되서 1차 캐시에서 cache miss가 나면 2차 캐시에서도 무조건 miss가 날 것 같은데 맞나요?

chiyongs commented 11 months ago

안녕하세요. 🙇🏻 말씀주신 것처럼 멀티 레이어 캐시를 적용 시에는 빠르고 작은 캐시를 먼저 배치합니다. Redis Sorted Set을 사용하여 캐시 자동 최신화를 고려하기 전까지는 로컬 캐시를 앞단, Redis를 그 뒤에 배치하여 멀티 레이어 캐시 구조를 고려하며 작업했습니다. 하지만, Redis Sorted Set을 적용하고 로컬과 Redis의 순서가 바뀌게 되면서 말씀해주신 cache miss 가 발생하게 됩니다. 해당 구조에서 로컬 캐시를 제거하는 것도 고려했지만, 5주가량의 인턴으로 진행하는 과제에서 기존 소스 코드를 대체하는 것은 안정성에 무리가 있다고 생각했습니다. 따라서, 기존 소스를 제거하지 않고, 스위치를 통해 기존 로직 또는 개선 로직이 수행될 수 있도록 조치했습니다.

저도 px201226님과 같은 문제를 고민하여 PDP개발팀에 합류한 후 멀티 레이어 캐시가 피라미드 모양으로 동작할 수 있도록 멀티 레이어 캐시를 코드로 구현하여 적용하고 있습니다.

추후에 위 인턴 과제에서 느낀 아쉬움을 해결하기 위해 Multi-layer Cache를 구현한 경험도 공유해 보겠습니다.
 감사합니다.