SMAIVNN
article thumbnail
Published 2023. 11. 17. 10:13
레벨업과 경험치 적용-2 Project

이전 게시글에서 레벨업, 경험치를 관련해서 어떻게 구현을 할지 기초적인 설계를 진행했다.

추가적인 설계를 조금 진행한 후 구현에 들어가려고 한다.

 

데이터베이스 구조 설계

 

캐릭터 생성 시 그 캐릭터는 약 4~5개의 스텟을 지닌다. 또한 이 스텟은 추가되거나 삭제되거나 등의 변동성을 갖는다.

 

문제는 나의 요구사항에 따르면 각 스텟별로 레벨과 경험치가 존재하여 각 스텟의 변동 사항을 개별적으로 관리하여야 한다는 것이다. 따라서 캐릭터 내에 스텟을 임베디드 시키는 것과 참조 시키는 것 중에서 어떤 방식이 더 나을까를 판단했을 때, 참조 방식이 더욱 적절하다고 판단하였다.

 

따라서, 캐릭터와 스텟은 One to Many 관계를 갖는 참조 방식으로 설계를 진행하였다.

 

실행 흐름 설계

 

간략히 생각해본 경험치 상승과 레벨업에 대한 실행 흐름은 다음과 같다.

 

목표가 달성 되었을 때, 카테고리 분류, 경험치 분류에 있어서 chat AI를 활용하는 것은 별도의 template을 만들어서 관리하기로 하였다. 이를 통해 하나의 메서드에서 분기 처리를 통해 관리할 수 있다.

 

카테고리를 분류하는 작업과 경험치를 산정하는 작업은 서로 영향을 미치지 않는다. 따라서 둘은 병렬로 처리하는 것이 속도 측면에서 바람직하다고 판단하였다. 

 

경험치 상승 과정에서 가득 찬다면, 총량 - 현재 경험치를 진행한 후, 이 결과를 현재 경험치로 적용하고 레벨을 1 상승시킨다. 

 

캐릭터 생성

시작하기 앞서 우선 캐릭터 생성을 먼저 진행하였다.

진행 과정에서 진짜 여러가지 문제가 있었는데.. 특히, 여러가지 상수 파일을 만드는 것, mongoose의 문서 반환 등 힘들었다. 하지만 이번에 정리하면서 잘 알게 돼서 추후 작업이 수월해질 것 같다.

 

일단 캐릭터는 원하는 방식대로 잘 생성이 된다. 

또한, 스탯의 추가도 잘 된다. 

 

이제 드디어 행동과 경험치 상승을 결합하는 작업을 할 시간이다.

진행중인 코드는 이곳에서 확인할 수 있습니다.

profile

SMAIVNN

@SMAIVNN

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!