-
Notifications
You must be signed in to change notification settings - Fork 0
기능 정의
google OAuth를 사용하여 로그인 및 회원가입을 구현한다.
- 첫 로그인 시 name, display name, introduction, google에서 제공하지 않은 정보(phone number), 알림 수신 동의, 프로필 이미지 설정을 완료해야 회원가입이 끝난다.
이메일 로그인, 회원가입을 제공해야할까? 이 경우 Social Register 유저와 어떻게 나눌지 고려해야한다.
JWT token을 사용할까 session과 cookie를 따로 사용할까?
- 이름, 닉네임, 소개글을 수정할 수 있다.
- 개인정보 (email, phone number)는 수정이 불가하다.
알림 설정은 크게 5가지로 나뉜다. 알림 설정을 위해 수신 동의 및 단말 기기 정보가 필요하다. 사용자가 설정한 알림 설정대로 알림을 전송한다.
팔로잉, 팔로워 목록 및 팔로잉 상태, 프로필 이미, 이름, 설명, 작성된 게시물들을 조회할 수 있다.
게시글은 일반 게시글, take a snap 게시글, join 게시글 3가지로 나뉜다.
- 사진과 글을 업로드할 수 있다.
- 유저 태그 및 해시태그 설정이 가능하다. 글에만 포함시킬 수 있다.
- 좋아요 / 댓글 수 공개 여부를 설정할 수 있다.
- 댓글 허용 여부를 설정할 수 있다. 댓글이 존재하는 상황에서 댓글 금지로 수정 시, 이전 댓글들이 보이지 않는다.
여러 사진(optional)과 글을 게시할 수 있다.
- 사진 및 내용 수정이 가능하다.
게시글 작성 시 전면/후면 카메라 동시 촬영을 한 사진을 올리는 것을 SNAP이라 한다.
- 사진은 2장 (전면 / 후면)을 필수적으로 올려야하며, 2장을 초과할 수 없다.
- 게시물 수정 시 사진은 수정이 불가능하다.
친구 (서로 팔로잉한 관계)에게 SNAP을 요청받아 게시한다. 채팅으로 요청받으며, 요청을 통해서만 게시 가능하다.
: 요청 없이 자신이 직접 SNAP을 포스트하여 친구들에게 SNAP 포스팅에 Join하라는 글을 게시한다. 친구들은 Join 버튼을 통해 SNAP을 포스트하여 이에 동참할 수 있다.
- join은 4시간만 유효하다. 이후에는 참여가 불가하다.
- join한 post들을 따로 보여준다.
- Follower에게도 공개되는 게시글이지만, join은 친구만 가능하다.
팔로잉하는 모든 유저의 게시글이 순차적으로 보여진다.
유저가 feed를 새롭게 read할 때마다 쿼리를 통해 피드를 조회한다.
게시글이 포스트될 때, 팔로워들의 캐시에 해당 글의 id가 추가된다.
단, 일정 이상의 팔로워를 가진 이의 경우에는 팔로워가 피드를 새로고침할 때 (read할 때), 팔로우한 인플루언서 리스트를 조회하고, 새로 업데이트된 게시물이 있는지 확인하여 가져오도록 구현한다.
- 자신의 팔로워 & 팔로잉 리스트는 삭제가 가능하다
- 사용자의 팔로잉 & 팔로워 목록을 제공한다.
서로가 팔로잉되어 있는 관계를 뜻한다. take a snap 및 join은 친구끼리만 가능하다.
태그된 유저의 id 및 display name을 제공하여 유저 프로필로 접근할 수 있도록 한다.
해당 해시태그의 다른 글들을 볼 수 있다.
유저 검색, 해시태그 검색이 가능하다.
우선은 직접 쿼리를 날려서 구현하는 방식을 채택하되, 추후 elasticsearch와 같은 검색 엔진으로의 전환을 고려한다.
알림은 크게 5가지로 나뉜다. 내 게시물에 대한 이벤트, 팔로잉하는 유저에 대한 이벤트, 채팅, 태그당하는 경우, 새로운 팔로워가 생기는 경우
내 게시물을 누군가 좋아요 또는 댓글 작성시 알림이 발생한다.
새로운 게시글이 업로드된 경우, take a snap 요청이 들어오는 경우 유저별 알림 설정이 가능하다.
- All: 모두 수신한다.
- Some: take a snap 요청과 채팅 알림만 허용한다.
- Turn off: 알림 허용 x
태그하는 경우 알림이 뜬다.
채팅방별로 알림 설정이 가능하다.
누군가 사용자를 팔로잉 시작하는 경우 알림이 발생한다.