-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: 맛집 상세 정보 API 고도화 작업 #51
base: main
Are you sure you want to change the base?
Conversation
- 리뷰 개수가 10개 이상인 맛집 객체만 캐싱하는 조건 설정
- PointSerializer 직렬화 메소드 등록
- @JsonDeserialize(using = GeoUtils.PointDeserializer.class)
캐싱 교체 알고리즘을 찾아보시면 좋을 것 같아요! 타겟 유저에 따라 다르겠지만 저라면 이렇게 할 것 같아요!
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
고생하셨습니다 👍
🙋♀️ 이거 왜 ci 작업이 안되는지 모르겠네요.. 좀 찾아보겠습니다. |
우와.. 제가 너무 간단하게 생각한 것 같네요..! 좋은 피드백이랑 자료까지 너무 감사드려요!!👍 디벨롭 할 수 있으면 해보겠습니다😎 |
2번에 대한 의견이었는데 잘못 적었네요..! pr 1번에 대한 의견은 근데 저도 캐싱을 안해봐서 너무 신뢰하지 마세요 하하 개인적인 의견이었습니다!! |
|
||
@Embeddable | ||
@Getter |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
많은 도움이 되었습니다 👍 고생하셨습니당! :)
…o feature/map-details-advance # Conflicts: # src/main/java/oz/yamyam_map/module/restaurant/service/RestaurantService.java
…o feature/map-details-advance # Conflicts: # build.gradle # src/main/java/oz/yamyam_map/module/restaurant/entity/Restaurant.java
🙋🏻♀️ 저 코드 다 보진 못했는데, 개인적으로 궁금한 점이 있어서 여쭤봅니당! |
놀랍게도.. 그 부분은 생각도 못했네요.. 테스트할 때 같이 고민해서 진행해 볼게요! 좋은 지적 너무 감사합니다!🤗 |
🎟️ 관련 이슈
Fixes #38
👩💻 구현 내용
RedisConfig
파일 작성Point
타입역직렬화
정적 클래스 및 메소드 작성redis
에 저장(24시간 동안 유지)💬 코멘트
Point
객체를 직렬화, 역직렬화 하고redis
에 저장, 반환 시 반영하는 부분을 개발 시간의 90% 정도 할애한 것 같네요..직렬화는 도은님께서 작성해주신 클래스 사용했습니다!(감사해요🤗)
✅ 직렬화
캐시에 저장할 때
Point
객체를Json
으로 바꿔주어야 했습니다. 그래서RedisConfig
파일에서objectMapper
를 사용해서Point
객체를 직렬화하는 클래스를 넣어주고 반영했습니다.✅ 역직렬화
캐시에 저장된
Restaurant
타입의 맛집 데이터를 가져올 때Point
객체를 역직렬화 해주어야 했습니다.@JsonDeserialize
어노테이션을 사용해서 위에서 설정해준 역직렬화 클래스를 적용해 주었습니다.getRestaurantDetails()
메소드에 캐싱 처리를 주석으로 작성할까 하다가 제가 원래 주석을 잘 안 적기도 하고 + 작업하면서 쉽게 확인할 수 있게 하려고log.info(~~~)
로 작성했습니다!캐시를 사용했을 때 성능이 향상된다는 것을 테스트하기 위한 테스트 코드는 개인 과제 하면서 같이 진행해야 할 것 같습니다..!😥
💭 고려한 점
Spring Boot Starter Redis
를 사용하는 경우,redis
를 다룰 때RedisTemplate
과RedisRepository
를 사용한다고 하네요. 뭘 사용할까 하다가 각 작업에 대해 특정 데이터 형식에 맞는 Serializer 및 Deserializer를 구성할 수 있다.라는 글을 보고RedisTemplate
으로 골랐습니다!