제작기간 : 5/20 ~ 5/29
제작인원 : 1인
🛠️ Tech Stack: 백엔드 기술 스택
- 웹 프레임워크 Node.js의 대표적인 웹 프레임워크인 Express를 이용합니다.
- 패키지 매니저 yarn을 이용합니다.
- ES6 부터 도입 된 모듈 시스템(ESModule, type: "module")을 이용합니다.
- 데이터베이스 숙련 주차 강의 후반에서 다룬 MySQL을 사용합니다. 직접 설치하지 않고, Cloud 서비스인 AWS RDS를 이용합니다.
- ORM(Object Relational Mapping) MySQL의 데이터를 쉽게 읽고 쓰게 해주는 Prisma를 사용합니다.
ERD 구현
두개의 데이터베이스(User, Item)를 이용하여서 조금 더 현실성 있게 데이터베이스를 제작하였음
구현된 기능
1. 회원 가입 기능 API
2. 로그인 기능 API
3. 캐릭터 생성 (JWT인증) API
- 로그인했을 경우 해당 계정으로 캐릭터를 생성하게 끔 하였고 Id값을 출력해주게 하였다.
4. 캐릭터 삭제 (JWT인증) API
5. 캐릭터 상세 조회 API
- 캐릭터 ID를 파라미터값으로 받고, 캐릭터를 조회할 때 자기 캐릭터의 경우 money즉 보유한 돈까지 보이고 로그인을 하지 않거나, 로그인했어도 자기 캐릭터가 아닌경우 보유 돈을 띄워주지 않게 하였다.
6. 아이템 생성 API
7. 아이템 수정 API
8. 아이템 목록 조회 API
9. 아이템 상세 조회 API
-파라미터값으로 item_code 값을 받으면 해당하는 item_code에 해당하는 아이템의 상세정보를 출력해준다.
10. 아이템 구입 (JWT인증) API
- 캐릭터ID값을 parameter 값으로 받고 해당 계정으로 로그인을 한 뒤, 살 item_code값과 count값을 설정해주면, 해당하는 item을 count만큼 구매해준다. 단 캐릭터가 가지고있는 돈보다 많은 값어치의 아이템을 구매하려한다면 구매못하게 에러가 나온다.
11. 아이템 판매 (JWT인증) API
- 캐릭터ID값을 parameter 값으로 받고 해당 계정으로 로그인을 한 뒤, 팔 item_code값과 count값을 설정해주면, 해당하는 item을 count만큼 팔아준다. 가격은 원가의 60%이고, count한 아이템이 인벤토리에 없을 경우 에러를 출력해준다.
12. 캐릭터가 보유한 인벤토리 내 아이템 목록 조회 (JWT인증) API
- 현재 캐릭터가 보유한 인벤토리 내의 아이템 목록 원래 이름까지 띄울려고 했지만 실패했다.
13. 캐릭터가 장착한 아이템 목록 조회 API
14. 아이템 장착 (JWT인증) API
15. 아이템 탈착 (JWT인증) API
-현재 아이템을 장착 중이라면 아이템 코드를 입력받고 해당 아이템을 장착해제한다. 아닐시 에러
16. 게임 머니를 버는 (JWT인증) API
-캐릭터ID를 받고 해당 캐릭터로 로그인 했을 경우 해당 API를 실행할 때 마다 100원을 준다.
추가적인 기능
- JWT와 Authorization 을 이용하여서 인증과 인가를 거쳐야 특정 API를 이용가능 하도록 하였다.
- .env파일을 이용하여서 공개하지 말아야할 정보 (port, ip주소 등등은 배포에 숨겼다.)
- .prettierrc 파일을 통해 코드가 일정한 간격을 가지고 있도록 하였다.
- 프론트엔드는 구현하지 못했지만 EC2와 Gabia를 이용하여 실제 홈페이지에 기능을 올렸다.
배포용 GitHub
https://github.com/rladmswlr/gameserver2
GitHub - rladmswlr/gameserver2: 게임서버 2번째 개인 과제 아이템시뮬레이션학습 심화버전
게임서버 2번째 개인 과제 아이템시뮬레이션학습 심화버전. Contribute to rladmswlr/gameserver2 development by creating an account on GitHub.
github.com
'코딩 > 프로젝트' 카테고리의 다른 글
[프로젝트 개인과제 결산] (0) | 2024.07.12 |
---|---|
[Backend] WebSocket을 이용한 러닝게임 (0) | 2024.06.17 |
아이템 , 게임캐릭터 관리 시스템 제작[MongoDB] (0) | 2024.05.20 |
할일 메모 사이트 제작 (0) | 2024.05.17 |