[TIL] 20241205 TIL : 프로젝트 진행 중 트러블 슈팅 기록

Jaeyoung Ko·2024년 12월 5일
0

Format Mismatch 문제


//====================================================================================================================
//====================================================================================================================
// src/routes/matches.router.js
// 유저 api 라우터
//====================================================================================================================
//====================================================================================================================

import express from 'express';
import { prisma } from '../utils/prisma/index.js';
import authMiddleware from '../middlewares/auth.middleware.js';
import simulateMatch from '../utils/gameLogic/gameLogic.js';
import crypto from 'crypto';

const router = express.Router();

/* 앞 부분 이하 생략 ... */

router.post('/matches', authMiddleware, async (req, res, next) => {
      	/* 앞 부분 이하 생략 ... */
        // utils에서 게임로직통해 매치에서의 양팀 스코어 생성
        const { userSquadScore, opponentSquadScore } = simulateMatch(userSquad, opponentSquad);
        console.log(":: userSquadScore :: " + userSquadScore);
		
      	/* 뒷 부분 이하 생략 ... */
  
});

//====================================================================================================================
//====================================================================================================================
// utils/gameLogic.js
// 게임 로직 함수 구현부
//====================================================================================================================
//====================================================================================================================
import crypto from 'crypto';
import { GAME_LOGIC_WEIGHTS, STAMINA_DECAY_RATIO } from '../../config/gameLogic.config.js';

// export 하려는 매치 시뮬레이션 로직
const simulateMatch = (squad1, squad2) => {
    // 점수 초기화
    let { SquadScore1, SquadScore2 } = { userSquadScore: 0, opponentSquadScore: 0 };
		
      	/* 뒷 부분 이하 생략 ... */
      



utils 폴더에 작성한 게임 로직 관련한 함수를 이용하는데 개별단으로 테스트할 때에는 문제가 없었지만,

API 테스트를 해 볼 때에 적합한 형식이 아니라는 에러 로그가 나오는 것을 발견했다.

쿼리나 속성 읽는 게 문제는 없어서 의아했으나 찾아본 결과

위의 코드 스니펫을 보면 알 수 있듯이,

함수에서 SquadScore1, SquadScore2라고 선언된 변수의 변수명과

실제 사용하는 API 단에서 userSquadScore, opponentSquadScore 변수명이 일치하지 않아 생기는 문제였다.



Data Migration 문제


데이터 모델 변경 이후에 마이그레이션에 관해

npx prisma generate 

를 통해 한 번 제너레이터를 돌려 주어야 하는데, 이 작업을 한 줄 알고 자꾸 마이그레이션 에러가 나타났었다.

profile
안녕하세요, 고재영입니다. 언제나 즐겁게 살려고 노력합니다.

0개의 댓글