Skip to main content

Command Palette

Search for a command to run...

장소 좋아요 클릭시 map id 불러오기 + 캐싱작업 가능할까

Published
•2 min read•View as Markdown
장소 좋아요 클릭시 map id 불러오기 + 캐싱작업 가능할까

유저가 지도 검색 후 해당 지도에 좋아요 버튼을 누르면 유저의 프로필과 지도 내에서 나타나게 하려고 했다.

그러기 위해서는 지도의 id가 필요하였고, 장소 검색에서 나오는 id를 사용하면 될거라 생각했지만

해당 이미지에서 나오는 id 필드는 카카오 API에서 반환된 장소의 id 이다.

내가 필요한건 django model의 map 테이블 id 이므로, 카카오 api에서 받은 장소 데이터를 사용하여 django의 map model에 해당 장소를 저장하여 주고, 이때 새로운 map id를 생성하면 된다.

그래서 검색할 때마다 나오는 데이터를 db에 저장하는가?

모든 데이터들을 db에 저장하는 것은 비효율적이다.

→ 선택한 장소만 db에 저장한 후, 해당 장소에 대해 좋아요 기능을 구현한다.

이렇게 하면 선택한 장소가 이미 db에 저장되어 있는지 확인한 후, 저장되어 있지 않으면 저장해준다.

그리고 해당 map id를 사용하여 좋아요 기능을 구현한다.

구현

  1. 사용자가 장소를 선택할 때 장소 정보를 저장 사용자가 원하는 장소를 선택했을 때, 해당 장소의 정보를 django의 Map model에 저장

  2. 좋아요 기능 구현 해당 Map 객체의 id를 사용하여 좋아요 기능 구현

1. 원하는 장소 저장

2. map_id를 사용하여 사용자가 장소에 좋아요 누르기

장소를 저장한 후, 사용자가 해당 장소에 좋아요를 누를 수 있다.

map_id를 기반으로 좋아요 추가나 삭제 기능을 구현해야 한다.


1. 좋아요 추가, 삭제 로직 충돌

처음 좋아요를 구현할 때, 사용자가 좋아요를 누르면 MapLikeUser 모델에 객체를 생성하고,

다시 한번 누르면 객체를 삭제하는 로직을 작성함

그러나 serializer에서 create()메서드가 항상 객체를 반환해야 한다는 규칙 때문에,

좋아요 삭제 시 None을 반환하는 로직에서 AssertionError 발생

해결

좋아요 추가와 삭제 로직을 분리

  • 좋아요 추가

    • 사용자가 좋아요를 누르면 MapLikeUser 모델에 새로운 객체 생성

    • 해당 과정은 create() 메서드를 통해 수행되며, 항상 객체를 반환하도록 함

  • 좋아요 삭제

    • 사용자가 이미 좋아요를 누른 상태에서 다시 버튼을 누르면 MapLikeUser 객체 삭제

More from this blog

s3사용 및 s3:PutBucketPolicy 권한 오류

1. S3 생성 중 정책 생성 페이지에서 s3:PutBucketPolicy 권한이 없어 오류 발생 IAM 사용이 아닌 루트 사용자 버전으로 설명 AWS IAM 콘솔 → 정책 → AdministratorAccess⁠검색→ 정책이 나타나면 사용자에 연결→ 없다면 새로운 정책 추가 없으므로 AdministratorAccess 생성 정책 생성 버튼 클릭 → JSON 탭 선택 후 아래 코드 입력 → 생성 { "Version": "2012-10-1...

Mar 12, 20252 min read9
s3사용 및 s3:PutBucketPolicy 권한 오류

챗봇과 사용자의 대화 내용이 길어질수록 llm 호출 시 토큰 수가 증가하여 응답 시간이 지연되는 문제가 발생

https://youtu.be/5soSQgVHGEA OpenAI API를 이용한 챗봇을 만들면서 대화가 길어질수록 LLM 호출 시 토큰 수 증가로 응답 시간이길어지는 문제가 발생 문제분석 여기서 생각하는 문제는 db 조회의 부하 처음 챗봇에게 부여하는 역할이 너무 긴데, 이걸 매 API 호출마다 전송함 대화 흐름을 기억하기 위해 챗봇-유저 간 대화 내용을 모두 DB에 저장한 다음 그대로 API 호출 마다 LLM에 전달함 → 모든 대화 ...

Jan 16, 20253 min read122
챗봇과 사용자의 대화 내용이 길어질수록 llm 호출 시 토큰 수가 증가하여 응답 시간이 지연되는 문제가 발생

dayeon's blog

124 posts