2022.07.11 ~ 2022.07.15
- Typescript, NestJS, TypeORM
- Github, Redis 7.0.2, MySQL 8.0.28
- Redis, MySQL 사전 설치 필요
- 프로젝트 세팅 및 배포
- 담당: 김태용
- Nest JS 프로젝트 세팅, DevOps
- User 생성 및 조회
- 담당: 고현석
- Boss - Raid
- 보스 레이드 시작 담당: 장주엽
- 보스 레이드 조회, 종료 담당: 김명일
- Redis를 활용한 랭킹조회
- 담당: 최아름
- 담당: 최아름
- 배포 링크: 미정
$ npm i
$ npm run start
# mysql
DB_HOST=
DB_USERNAME=
DB_PASSWORD=
DB_DATABASE=
- 유저를 생성하고 조회해서 유저의 게임 기록을 확인할 수 있다.
- 보스레이드 상태를 조회하고 시작, 종료를 할 수 있다.
- 보스레이드 합계점수를 합산해 랭킹을 조회할 수 있다.
https://shininggiver.gitbook.io/gameduo/reference/api-reference
-
유저 생성
- 유저는 이메일, 비밀번호, 닉네임 속성을 가진다.
- 비밀번호는 문자, 숫자, 특수문자를 최소 하나씩 가지며 8 - 16 문자열이다.
- 닉네임은 2 - 10 자리 문자열이다.
-
유저 조회
- 유저는 자신의 정보를 조회할 수 있다.
- 유저 조회시 자신의 레이드 기록과 레이드 기록에 대한 총 점수를 조회할 수 있다.
-
보스레이드 상태 조회
- 현재 진행중인 유저가 있다면 입장할 수 없다는 응답을 보내야한다.
- 현재 진행중인 유저가 없다면 입장할 수 있다는 응답을 보내야한다.
- 이때 입장 가능 조건은 아래와 같다.
** 입장 가능 조건
- 아무도 보스레이드를 시작한 기록이 없는 경우
- 시작한 사람이 보스레이드를 종료한 경우
- 시작한 사람이 제한 시간에 의해 보스레이드가 종료된 경우
-
보스레이드 시작
- 한 번에 한 명의 유저만 보스레이드를 시작할 수 있다.
- 레벨에 상관 없이 한 유저가 보스레이드를 진행중이라면 다른 유저는 보스레이드를 시작할 수 없다.
- 동시에 시작 요청이 오면 한 유저만 보스레이드를 시작할 수 있기때문에 동시성 처리가 필요하다.
-
보스레이드 종료
- 종료는 FAIL, SUCCESS 두 가지 타입을 가진다.
- 보스레이드를 시작한 사람만이 보스레이드를 종료할 수 있다.
- 제한 시간 이내에 종료 요청을 하게되면 보스레이드는 SUCCESS 타입이 된다.
- 그렇지 않다면 보스레이드는 FAIL 타입으로 처리된다.
- 보스레이드를 시작한 시간으로부터 제한 시간이 지나면 에러 처리를 한다.
- 보스레이드가 제한 시간 이내에 종료되면 각 레벨에 따라 점수를 부여한다.
-
보스레이드 랭킹조회
- 전체 랭킹과 유저 본인 랭킹을 조회할 수 있다.
- 랭킹은 보스레이드 총점수 기준 내림차순으로 관리된다.