-
Notifications
You must be signed in to change notification settings - Fork 0
0503
-
요구사항 취합 및 정의
- 요구사항 우선 순위와 필수,선택적 구현 기능 정의
- 백엔드 도메인 분류
- 백엔드 도메인 담당자 선정
프로그램 요구사항 정의
-
코인
-
비회원/회원은 코인에 대한 실시간 시세, 차트, 호가, 거래내역을 볼 수 있다.
-
웹페이지는 코인을 선택하면 해당 코인에 대한 실시간 차트를 보여준다.
-
메인 웹페이지에서 채팅방을 클릭하면 해당 코인에 대한 차트와, 우측화면에는 채팅방이 존재하고 각 채팅방으로 접속하여 채팅을 할 수 있다.
- 비회원은 채팅방에 입력은 할 수 없다.
- 회원가입 유도
- 회원은 보이스까지 기능을 제공한다.
- 채팅방의 제목을 필터링하여 접속 할 수 있다.
- 채팅방은 제목이 존재한다.
- 방장은 채팅방의 제목을 수정 할 수 있다.
- 방장은 채팅방의 인원수를 제한 할 수 있다.
- (기술적 - Option) 제목필터링 디바운스(프론트)
- (Option) 각 채팅방은 비밀번호를 사용 할 수 있다.
- (Option) 채팅 댓글에 좋아요 기능을 사용한다.
- 방장은 강퇴기능을 사용할 수 있어야 됩니다.
- (Option) 강퇴후 재접속시간이 존재한다.
- 비회원은 채팅방에 입력은 할 수 없다.
-
기술
기술적 요구사항
- TypeScript 언어 사용
- React custom hook 만들어서 쓰기
- socket.io를 이용한 실시간 통신
- 검색 필터링 기능
-
-
캔버스
- (Option) 드로잉 캔버스를 차트위에 올리고, 해당 캔버스에 방장이 그림을 그리면 채팅방에 접속한 유저들 화면에 같이 그림이 그려진다.
- (Option) 기존 트레이딩뷰 차트와 x,y축 연동이 되야한다.
- (Option)차트에서 실시간 그림을 그린다, 모의 투자기능을 만들자. 비트코인을 100원에 산다고했으면 차트에 표시, 200원에 판다고하면 차트에 표시 코인이 200원에 도달하면 수익률 표시 , 실시간 모의투자기능
- (Option) 드로잉 캔버스를 차트위에 올리고, 해당 캔버스에 방장이 그림을 그리면 채팅방에 접속한 유저들 화면에 같이 그림이 그려진다.
-
회원관리 & 가입
-
로그인 기능을 제공한다.
-
회원가입시 이메일 인증 기능을 제공한다.
-
회원가입시 비밀번호는 SHA-128이상의 암호화를 한다.
-
회원가입시 아이디의 형태는 이메일 형태로 한다.
-
해당 사이트에 회원가입 기능을 제공한다.
-
프로필이미지는 디폴트이미지가 들어간다.
-
회원가입시 닉네임 중복체크를 진행한다.
-
마이페이지를 통해 회원정보를 수정한다. (닉네임, 비밀번호, 프로필)
-
어드민 페이지는 구현하지 않는다.
-
(기술적) 비밀번호 유효성은 담당자와 얘기
-
(기술적) 프로필 이미지는 s3를 이용한다.
-
(기술적) 로그인은 JWT를 활용한다.
-
(Option) 회원탈퇴 기능
- (기술적)soft delete(flag)
-
(Option) 자동가입 방지 기능(리캡챠)을 제공
-
(Option) 프로필 이미지 등록 기능을 제공
- (기술적 - option) 파일 확장자, 사이즈 제한 (5mb), 사이즈 옵티마이즈는 어디서?
-
(Option)회원은 Oauth를 통한 카카오 계정 가입, 자체 회원가입 기능을 제공한다.
- Oauth를 통해 가입할 경우 별도의 회원가입 절차(이메일 인증등)는 완전히 생략한다.
-
(Option) 회원 인기도 기능 / 추천 기능 /
기술적 요구사항
- JWT를 이용한 로그인
- OAuth 2.0을 이요한 소셜 로그인
-
권한부여에 따른 기능의 접근 제한
- 회원가입한 사용자만 채팅방을 만들 수 있다.
- 회원가입한 사용자만 음성채팅 기능이 활성화 된다.
- 회원가입, 로그인, 로그아웃, 마이페이지, 회원탈퇴 기능 구현
- 회원가입, 로그인 및 회원정보 수정 시 유효성 검사
- 회원 탈퇴나 리소스 삭제시 확인(confirm) 모달 제공
- 소셜 로그인 외 서비스 자체 회원가입 기능 제공
- 회원가입 없이 '체험하기' 형식으로 가볍게 기능을 이용할 수 있는 장치 마련
- 마이페이지를 통해 사용자 개인정보 수정 기능 제공
- (소셜 로그인이 아닐 경우) 비밀번호 수정 기능 제공
- 라이브러리를 사용하지 않고 React 컴포넌트 직접 작성 (유어클래스에서 다룬 것: 탭, 드랍다운, 모달 등)
- S3로 파일 업로드
- reCAPTCHA 사용
-
-
채팅방
-
익명, 회원은 각 코인에 대한 채팅방에 접속할 수 있다.
-
익명 접속자는 닉네임 익명을 가진다.
-
채팅방을 만든 사람은 방장 권한을 가지게됩니다.
-
채팅방에 접속한 모든 사용자는 채팅 메세지 보기와 보이스 듣기 기능을 사용할 수 있습니다.
-
회원은 채팅 메세지 보내기와 보이스 말하기 기능이 활성화 됩니다.
-
보이스 듣기/말하기 기능은 On/Off 기능을 제공합니다.
-
채팅방 이름을 필터링하여 검색 할 수 있습니다.
-
(option) 채팅방에 비밀번호 기능을 구현합니다( 공개방, 비공개방 )
-
(option) 방장은 방에 들어온 유저를 추방시킬 수 있습니다.
-
(option) 채팅 메시지 가리기/삭제 기능을 제공한다.
-
(option) 검색 필터링에 퍼지 기능 바나나 버나나 / 엘라스틱 서치?
- 기술적 요구사항
- socket.io를 이용한 실시간 통신
- 검색 필터링 기능
- 퍼지(fuzzy) 검색
- 모바일 환경 대응 및 반응형 웹
관리 측면 요구사항
-
-
카프카
- 클라우드 서버에 카프카와, 슬랙 서버를 구축한다.
- 슬랙 서버가 카프카를 구독하는 형태이다.
- 에러 메시지가 토픽별로 저장되고, 해당 메세지는 슬랙을 통해 전달 받는다.
- 프론트 에러는 고민을 해본다.
- 클라우드 서버에 카프카와, 슬랙 서버를 구축한다.
-
게이트웨이
- 인증(Authentication)과 인가(Authorization)
- JWT를 parsing해서 회원정보를 확인 후, 각 MSA로 라우팅 처리한다.