용어 정리
- 사용자 : 비회원 + 회원
- 인증된 사용자 : 회원
- 채널 : 게시판
기본 요구사항
- 사용자는 회원가입과 로그인을 할 수 있습니다.
- 회원가입 시 필요한 정보
- 이름
- 이메일 (서버에 중복 체크 기능이 없음)
- 비번 / 비번확인 (로컬에서 중복 체크)
회원가입 시 프로필 이미지 필요?
소셜 로그인?
로그인 시 토큰 저장 위치?
로그인 시 유저 정보 저장 or 필요할 때마다 요청?
- 사용자는 채널에 올라온 글을 볼 수 있습니다.
- (주의) 채널 목록 요청 시 채널 이름 한글이면 인코딩하여
endPoint
에 붙이고 요청해야 됨 - (주의) 채널 컴포넌트가 인증을 요구하면 안 되고 포스트 컴포넌트가 요구해야 됨 - (이유) 포스트 검색에서 채널 컴포넌트를 가져오기가 애매함
- 사용자는 가입자 목록을 볼 수 있습니다.
- 이미 검색이 있어서 이 요구사항이 하는 역할을 모르겠음 (필요함?)
- 사용자는 가입자를 이름으로 검색을 할 수 있습니다.
검색어 자동 완성?
- 사용자는 가입자의 정보를 볼 수 있습니다.
- 사용자는 포스트 혹은 가입자를 검색할 수 있습니다.
- 가입자 검색은 친구 찾기 기능 구현시 필요
- 포스트 + 가입자 검색은 메인 페이지 검색창에서 필요
- (문제점) 검색어 자동 완성/추천 기능 구현 시 포스트 + 가입자 검색창이 보여져야 될 키워드가 다름
- 검색어 자동 완성 툴팁을 위아래 2분할하여 보여줘야 할 듯
- 포스트 검색도 전체 검색에서 Post만 필터링하면 됨
가입자 검색
포스트 + 가입자 검색 (전체 검색)
- 인증된 사용자는 자신의 정보를 변경할 수 있습니다.
- (주의) fullName만 카멜케이스고 username은 소문자임
- 두 필드를 우리가 커스텀 형식으로 맞추면 더 많은 정보 저장 가능
- (ex) fullName : { age: 20, friends: [ id, id ] }
- 인증된 사용자는 채널에 올라온 글을 볼 수 있습니다.
필터, 정렬?
- 인증된 사용자는 채널에 포스트를 남길 수 있습니다.
에디터 라이브러리 or 핸드메이드?
- 인증된 사용자는 포스트를 좋아요 할 수 있습니다.
- 인증된 사용자는 포스트에 댓글을 남길 수 있습니다.
비회원과의 댓글 UI 차이점? (블러처리 or disabled)
- 인증된 사용자는 자신의 알림 목록을 확인 할 수 있습니다.
- (주의) 댓글, 팔로우, 좋아요, 메세지 상호작용 시 알림 생성 api를 직접 요청해야 됨
- SPA 형태로 만들어주세요.
- 엉뚱한 페이지에 접속하면 404 페이지를 보여주세요.
- 라우터와 관련된 컨벤션도 정해야 할 듯
에러 바운더리?
서브 요구사항
- 사용자는 현재 접속 중인 사용자를 볼 수 있습니다.
- 인증된 사용자는 다른 가입자에게 메시지를 보낼 수 있습니다.
- 현재 api로는 실시간 채팅 안됨 (상대방이 보내온 메세지가 있는지 주기적으로 확인 하는 비효율적인 방법 뿐임)
실시간 채팅을 자체 서버를 두고 webSocket으로 구현?
- 인증된 사용자는 자신에게 온 메시지 목록을 확인 할 수 있습니다.
메시지 목록 컴포넌트에 빨간불(알림) 들어오려면 주기적으로 메시지 목록 요청해야 됨 (비효율적)
- 인증된 사용자는 특정 사용자와의 메시지 대화 내역을 확인 할 수 있습니다.
- 인증된 사용자는 프로필 이미지 변경 및 포스트를 작성할 때 이미지를 첨부할 수 있습니다. 파일 업로드를 구현해보세요.
- 다크 모드를 적용해보세요.
기능 정리 - 동건님 차트
태깅 당한 사람 은 알람받아서 바로 그 화면가면되지않나?