본문 바로가기
Programming/Django

[MINTime 프로젝트] 영화 추천, 리뷰 사이트 개발 회고록 - 1 (accounts)

by IN.0 2020. 6. 24.
728x90
반응형

ROOT 게시물은 이쪽 ↓

https://in0-pro.tistory.com/29

 

[MINTime 프로젝트] 영화 추천, 리뷰 사이트 개발 회고록 - 1

SSAFY 1학기 최종 프로젝트로 '영화 추천, 리뷰 사이트' 개발을 했다. 모두에게 동일한 주제가 주어졌기 때문에 자유 주제보다는 명세가 확실하여 편했다. 기본 조건은 영화 추천 알고리즘이 존재�

in0-pro.tistory.com


 

1. 회원가입

회원가입 버튼은 네비게이션 최우측에 있다. 로그인 페이지 안에 회원가입을 포함시킬까? 잠깐 고민했는데, 접근성을 고려하면 바깥에 있는 것이 나을 것 같다고 판단했다.

회원가입 폼

 

사용자 이름(아이디로 사용됨), 비밀번호만 지정하면 회원가입이 완료된다.

보통 일반적인 사이트는 이메일이나 휴대폰 번호 인증까지 있지만, 8일 프로젝트에서 이것까지 신경 쓰면 머리가 터질 것 같아서.. ㅎㅎ 과감히 패스했다.

한 가지 아쉬운 점은 사용자 이름에 도움말이 배경색에 가려져 잘 안보인다는 점이다.

저 부분만 좀 더 어두운 회색으로 처리했어야 했나? 싶긴 하다.

그리고 회원가입과 로그인 페이지로 이동하면 자동으로 저 이름 부분에 커서가 깜빡이고 바로 입력할 수 있게 되어있는 점이 만족스럽다.

+ 만약 로그인 한 상태에서 회원가입 페이지에 접근하면 메인 페이지로 redirect 되도록 if request.user.is_authenticated를 이용하여 처리하였다.

또한, 회원가입 후에는 로그인 과정 필요 없이 유효성 검사 후 자동으로 로그인까지 되도록 구현했다.

 

2. 로그인

로그인 페이지

로그인 페이지도 간결하게 구성하였다.

다만, 카카오 계정으로도 로그인을 할 수 있도록 API를 이용했다.

카카오 로그인 API 구현은 팀원 분이 맡아서 해주셔서 내가 모두 설명할 수는 없지만, 코드를 보면

1. 버튼을 클릭할 경우 kakao_login이라는 패스로 넘어가고, 해당 패스에서 클라이언트 아이디(카카오에서 발급받은 것)와 redirect 할 uri(oauth라고 정의했다.)를 세션에 저장하고 특정 카카오 주소로 redirect 시킨다. 

2. 그리고 그 곳에서 카카오가 나름대로 처리를 해주고 oauth로 주소를 다시 넘겨주는데, 아까 넘긴 세션 정보와 방금 넘어온 코드를 합쳐 다시 get을 요청한 다음, 받은 최종 값(access_token)을 헤더에 담아 어디론가 또 get 요청을 한다.

3. 그리고 받은 값에 따라 이미 가입된 회원이면 이메일 값을 그대로 받고, 새로운 회원이면 이메일 값을 새로 받는다. 그리고 로그인을 해준다.

이 정도의 과정을 거치는 듯 하다.

 

3. 로그아웃

보통 웹사이트가 그러하듯 로그아웃은 따로 페이지가 없고, 네비게이션에 버튼만 존재한다.

로그인되어있는 유저만 접근이 가능하고(@login_required) 카카오 로그아웃은 따로 존재한다.

카카오 계정은 로그아웃 말고 탈퇴 기능도 있다.

일반 계정도 탈퇴 기능을 만들걸,, 하는 아쉬움이 조금 있다.

 

4. 프로필

프리미엄 회원의 프로필 구성이다.

일반 회원의 경우 금색 버튼과 헬프 메시지가 없다.

4-1. 추천 영화, 맞춤 상영예정작

알고리즘은 팀원님께서 구현해주셨다. 

사용자가 '좋아요' 표시한 영화의 장르를 카운트하고, 카운트한 숫자가 많은 2개의 장르를 선택하여 추천 영화를 보여주고,

맞춤 상영예정작은 2개의 장르만 선택하지 않고, 사용자가 좋아요 한 모든 장르를 우선순위로 보여준 다음 남은 영화를 후순위로 보여준다.

추천 영화는 본인의 페이지인 경우에만 보이고, 다른 사람의 페이지를 방문한 경우에는 제외하고 보여준다.

 

4-2. 작성한 게시글, 작성한 댓글, 좋아요 한 영화, 작성한 리뷰

당연한 것들을(?) 보여준다. 네이버나 다음 카페에서 내가 쓴 글 보기 버튼과 동일한 기능을 한다.

좋아요한 영화는 각 영화마다 하트가 있어 이 탭에서 바로 좋아요 취소를 할 수 있다.

다만 비동기 처리가 되어있기 때문에, 좋아요 취소 시 리스트에서 바로 사라지므로

다시 좋아요를 누르기 위해서는 영화를 찾아야 할 것이다.

 

4-3. 닉네임 수정

이름 옆에 작게 붙어있는 닉네임 수정을 누르면 아래의 페이지로 이동한다.

닉네임 변경 페이지

닉네임과 아이디를 따로 구분하지 않고 사용하며, 

게시글, 리뷰 등과도 외래 키로 연결되어있기 때문에 닉네임을 변경하면 내가 이전에 쓴 글의 작성자명도 자동으로 바뀐다.

 

다음 챕터에서는 우리 서비스의 main app인 movies를 살펴보자.

728x90
반응형

댓글