TIL. 좋아요(회원vs비회원)

Kim Chioh·2021년 3월 7일
1
  • 안녕하세요 오늘은 좋아요에 대해 한번 알아보는 시간을 갖겠습니다
    좋아요를 누를때는 일반적으로 회원일 경우만 허용되는데요, 그럼 다음 페이지와같이 하트에 구멍이 뚫어져있어서 좋아요를 표시할때는 백엔드는 어떡해야할까요? 회원만 가능하니까 애초에 표시를 안해주기만 하면 될까요?

일반적으로 전체상품뷰은 다음과같은 로직이 필요합니다
1. 프론트 측과 키값 조율
2. 카테고리별 필터링
3. 상품하나의디테일 & for문
4. 리턴

하지만 여기서 아래와 같은 좋아요기능이 있으면 우선 한번 멈춰야합니다

좋아요같은 경우 유저와 프로덕트 사이에 MtoM 관계이며 유저가 해당상품을 좋아하는지아닌지 그리고 얼마나 많은 유저들이 해당 상품을 좋아하는지표시를 해주어야 하기 때문입니다

비회원일 경우에는 해당상품 좋아요 기능이 완전 막힌채로 좋아요 버튼을누른다면 로그인이 필요하다는 메시지를 띄워줘야하며, 좋아요를 누른 히스토리는 없고 총 좋아요 개수만을 보여주어야합니다.

따라서 이와같은 경우 접근은 로그인데코레이터를 붙이면 안됩니다. 로그인 데코레이터레는 로그인될 경우 만을 경우의 수로 가져가기때문이죠.

그럼 이와같은 경우 어떻게 처리를 해야할까요?

바로 로그인 되지않은 회원을 경우로하는 데코레이터가 필요하다고 생각합니다.

아래는 논유저일 경우 받아들이는 데코레이터입니다.

액세스큰이 없을때, 요청 유저를 None처리하고, 실행하는 것이죠. 그럼 이럴경우에 액세스토큰이 있다면 반대처리가 될것이고 결국에는 로그인 된 유저만 처리하는 것이아니라 로그인 되지 않은 비회원또한 같이 처리할 수 있기때문에 저희가 구현하고 싶었던 좋아요 기능을 달고있는 전체 프로덕트 뷰를 쉽게 구현 할 수있다고 생각합니다.

오늘도 잘 배웠습니다~!

profile
Just do what to do

1개의 댓글

comment-user-thumbnail
2022년 5월 31일

위코드에서 프로젝트 했을 때 위와 동일하게 구현했었는데요! 실제 회사에 와서 비슷한 기능을 적용해보게 되었는데 user을 none으로 주면 프론트에서 새로 짤 내용이 많다고 하던데 혹시 비회원은 비회원용 토큰을 발급하는 방법도 있을까요? 비회원이 장바구니를 사용하는 경우 어떻게 처리해야하는지 궁금합니다.

답글 달기