[ 오늘 푼 알고리즘 코드카타 ]
150370. 개인정보 수집 유효기간
178871. 달리기 경주
회원가입 API
1) 비밀번호 해싱된 값 저장
2) 아이디 중복 불가 및 영어 소문자 + 숫자 조합 구성
3) 비밀번호 최소 6자 이상, 비밀번호 확인란과 일치
4) 회원가입 성공 시 비밀번호를 제외 한 사용자 정보 반환
로그인 API
1) 아이디, 비밀번호로 로그인 요청
2) 계정정보 불일치 시 Status Code, 에러메세지 반환 / 아이디 존재하지 않는 경우, 비밀번호 불일치
3) 로그인 성공 시 액세스 토큰 생성 및 반환 / 액세스 토큰의 Payload에 로그인 계정 ID 삽입
캐릭터 생성 API(JWT 인증 필요)
1) 캐릭터명 request 전달받음, 생성 완료 시 response로 캐릭터 ID 반환
2) 이미 존재하는 캐릭터명 생성 시도 시 생성 불가
3) 캐릭터 기본스탯 health:500 / power:100 / money:10000 부여
캐릭터 삭제 API(JWT 인증 필요)
1) 삭제할 캐릭터 ID params로 전달받음
2) 내가 보유한 캐릭터가 아닌 경우 삭제 불가
캐릭터 상세 조회 API
1) 조회할 캐릭터 ID params로 전달받음
2) 캐릭터 이름, HP, 힘 스탯 반환
3) 내 캐릭터를 조회할 때에는 게임머니까지 반환
아이템 생성 API
1) 아이템 코드, 아이템 명, 아이템 능력, 아이템 가격 request 전달 받아서 등록
2) 아이템 능력은 JSON 포맷으로 전달받음
아이템 수정 API
1) 아이템 코드 params로 전달받음
2) 아이템 명, 아이템 능력 request로 전달받음
3) 아이템 가격은 수정 불가
아이템 목록 조회 API
1) 아이템 코드, 아이템 명, 아이템 가격 내용만 조회
2) 아이템 생성 API를 통해 생성된 모든 아이템들이 목록으로 조회할 수 있어야 함
아이템 상세 조회 API
1) 아이템 코드를 params로 전달받아 아이템 코드, 능력, 가격을 조회
prisma model
model Users {
userNo Int @id @default(autoincrement()) @map("userNo")
userId String @unique @map("userId")
userPw String @map("userPw")
userName String @map("userName")
Characters Characters[]
@@map("Users")
}
prisma model
model Characters {
characterNo Int @id @unique @default(autoincrement())
userNo Int
characterName String @unique
health Int @default(500)
power Int @default(100)
money Int @default(10000)
user Users @relation(fields: [userNo], references: [userNo], onDelete: Cascade)
inventory Inventories?
equip Equips?
@@map("Characters")
}
prisma model
model Items {
itemNo Int @id @default(autoincrement())
itemName String
itemStat Json
itemPrice Int
@@map("Items")
}
prisma model
model Inventories {
inventoryNo Int @id @unique
items Json
character Characters @relation(fields: [inventoryNo], references: [characterNo])
@@map("Inventories")
}
prisma model
model Equips {
equipNo Int @id @unique
items Json
character Characters @relation(fields: [equipNo], references: [characterNo])
@@map("Equips")
}