발단 프로젝트에서 아래 간단한 코드를 실행하던 도중 서버 오류가 발생하였다. 우선 발단이 된 코드는 다음과 같다. async createStat(stat: CreateStatDto): Promise { const newStat = { ...stat, }; const createdStat = await this.statModel.create(newStat); return createdStat } 발생한 서버 오류는 다음과 같다. [MyApp] error 2023-11-20 09:48:40 [ExceptionsHandler] callback is not a function - { stack: [ 'TypeError: callback is not a function\n' + ...code... 처음에는 인터셉..
이전 게시글에서 레벨업, 경험치를 관련해서 어떻게 구현을 할지 기초적인 설계를 진행했다. 추가적인 설계를 조금 진행한 후 구현에 들어가려고 한다. 데이터베이스 구조 설계 캐릭터 생성 시 그 캐릭터는 약 4~5개의 스텟을 지닌다. 또한 이 스텟은 추가되거나 삭제되거나 등의 변동성을 갖는다. 문제는 나의 요구사항에 따르면 각 스텟별로 레벨과 경험치가 존재하여 각 스텟의 변동 사항을 개별적으로 관리하여야 한다는 것이다. 따라서 캐릭터 내에 스텟을 임베디드 시키는 것과 참조 시키는 것 중에서 어떤 방식이 더 나을까를 판단했을 때, 참조 방식이 더욱 적절하다고 판단하였다. 따라서, 캐릭터와 스텟은 One to Many 관계를 갖는 참조 방식으로 설계를 진행하였다. 실행 흐름 설계 간략히 생각해본 경험치 상승과 레..
캐릭터를 육성하는 프로젝트를 하나 진행하고 있다. 퀘스트와 같은 행위를 완료할 경우 경험치가 증가하는 알고리즘을 작성해야하는데, 이를 위해 고려할 것이 조금 있다. 요구사항 특정 행동을 완료 했을 때 해당 행동의 카테고리에 속한 능력치의 경험치가 상승한다. 예를 들어 팔굽혀펴기를 하면 근력 경험치가 상승한다. 레벨이 상승할수록 행동에 대해 요구하는 역치가 증가한다. 예를 들어, 근력 레벨 1이 팔굽혀펴기 10개를 하면 힘들어 하지만, 레벨 3이 팔굽혀펴기 10개를 하면 쉬워한다. 이러한 것을 기반으로, 내가 구현할 것에는 다음과 같은 고민이 필요했다. 유저 행동은 정말 다양한데, 어떻게 카테고리화 시킬 것인가? 마찬가지로, 사람의 행동은 정말 다양한데 이것에 대한 경험치는 어떻게 정의할 것인가? 레벨 상..
더 공부하고 정리한 추가 게시물이 있습니다. node.js의 Express와 nestJs에서의 mongoDB find()메서드 차이점 mongoose의 find()메서드를 Express환경에서 사용할 경우 다음과 같이 출력된다. [ { "_id": "id항목입니다", "title": "test2", "content": "toDo Contents2", "status": true, "priority": 0, "dueDate": "2024-03-21T00:00:00.000Z", "category": "sports", "completedDate": "2023-10-25T07:59:36.295Z" }, ] 반면nestJs에서 find()를 사용할 경우 다음과 같이 메타데이터들이 출력된다. [ { "$__": { ..