게임 서버 API 설계 도메인 분석 사용 시나리오 in Figma 많은 동시접속자를 소화해야 한다 (1000명 이상, 아직 정확한 바는 없음) 이를 위해 스케일 아웃을 할 가능성이 아주 높다 따라서 서버 간 인증 정보 동기화에 대한 비용을 줄이고자 JWT를 채택한다 인증 기능 토큰에서 사용자를 식별한다. API 닉네임으로 토큰을 발급한다. 사용자 이름, 그룹은 없을 수 있다. 기능 임시 사용자를 생성한다. 이름을 무작위 생성한다. 이름, 그룹이름으로 사용자를 생성한다. 이름은 중복될 수 없다. 이름을 수정한다. 이름은 중복될 수 없다. 그룹을 수정한다. API 닉네임으로 사용자를 생성한다. 사용자 정보와 토큰을 반환한다. 임시 사용자를 생성한다. 사용자 정보와 토큰을 반환한다. 이름을 수정한다. 그룹을 수정한다. 자신의 정보를 알 수 있다. 특정 이름으로 시작하는 그룹 이름을 검색한다 특정 이름으로 시작하는 사용자 이름을 검색한다 랭킹 기능 전체 랭킹을 조회한다. 베스트 점수가 기준이다. 50등까지 조회한다. 내 랭킹(전체)을 포함한다. 그룹 내 랭킹을 조회한다. 특정 이름으로 시작하는 사용자들의 랭킹을 조회한다. 사과 게임 도메인 기능 게임 10*18 사이즈의 게임판을 생성한다. 초기화한다 게임판을 재생성한다. 게임 시간을 초기화한다. 점수를 초기화한다 특정 범위의 사과들을 제거한다 제거 개수만큼 점수를 얻는다 생성된지 120초가 지나면 더 이상 조작할 수 없다. 게임 주인인지 알 수 있다 게임판 원하는 크기의 게임판을 랜덤 생성한다. 특정 범위의 사과들을 제거한다 범위가 게임판과 일치하는지 검증한다 사과 좌표들에 사과가 없으면 예외 사과 좌표들 외에 사과가 있으면 예외 사과들의 합이 10이어야 제거할 수 있다 제거된 개수를 반환한다 범위 좌상단을 알 수 있다 우하단을 알 수 있다 범위 내의 모든 좌표들을 알 수 있다 사과 좌표들을 알 수 있다 빈 좌표들을 알 수 있다 좌표 음수이면 예외를 던진다 사과 숫자는 1~9 사이이다. 랜덤 숫자로 생성할 수 있다. 빈 사과인지 알 수 있다