게임서버-스파르타코딩NodeJs_7기201 트러블슈팅 - 유저위치로 북마커추가 버튼 만들기 트러블슈팅유저위치로 북마커추가 버튼 만들기1. 북마커 추가 후 서버에서 해당 위치에 접근했음은 뜨지만 클라이언트에서 캐치핑크몽 이벤트가 발생하지 못함.테스트버튼클릭 후 10분 대기버튼 클릭 후 새로고침, 10분 대기버튼 클릭 후 새로고침 여러번, 10분 대기-> 동일 위치에 데이터가 중복되는 경우 새로고침, 긴 시간 기다려야함(왜지) 데이터 1개만 있으면 버튼 클릭 후 1분안에 뜸. 2. 중복 데이터 제거하기(유저 당 위치 하나 씩 만들기)패치 오타get 메서드는 바디값 못받음. 쿼리 파라미터로 전달/pinkmong-appear-location/getOne?user_email=${encodeURIComponent(decodedToken.email)}fetch 요청에서 method: 'get'을 사용하고 .. 2025. 3. 10. 테스트코드 작성 - achievement관련 📌 1. NestJS 의존성 주입 실패 문제🔍 질문UserGuard에서 UserService 의존성을 해결하지 못해 테스트가 실패하는 이유는?💡 해결 방법테스트 모듈에 UserService의 목업(mock) 버전을 제공하거나 UserModule을 임포트하여 의존성을 해결할 수 있습니다.테스트의 격리성과 속도를 위해 목업 사용을 추천합니다.목업 예시providers: [ { provide: UserService, useValue: { findUserById: jest.fn().mockResolvedValue({ id: 1, name: 'Test User' }), }, },]🛠 2. TypeScript 타입 불일치 문제 (sub-achievement.repository.t.. 2025. 3. 7. 트렌젝션 적용하는 방법 트렌젝션 적용하는 방법 1. 트랜잭션 적용 요청- 질문: `AchievementPService.post` 메서드에 트랜잭션을 적용해달라는 요청.- 답변: TypeORM의 `QueryRunner`를 사용해 트랜잭션을 구현. `startTransaction`, `commitTransaction`, `rollbackTransaction`을 추가하고, 모든 DB 작업을 트랜잭션 내에서 처리하도록 수정.- 추가 조언: `AchievementPRepository`에 `getQueryRunner()` 메서드가 필요하며, 이를 위해 `DataSource` 주입이 필요함을 언급. 2. `getQueryRunner()` 메서드 추가- 질문: `AchievementPRepository`에 `getQueryRunner(.. 2025. 3. 5. 오늘 물은 내용 -Geoadd데이터 저장할 때 Geoadd데이터 저장할 때 동일한 키에 저장하기// 서브업적 서비스async fillGeo() { // 1. DB에서 모든 서브업적 가져오기 const dbSub: SubAchievement[] = await this.repository.getAll(); if (!dbSub || dbSub.length === 0) { throw new NotFoundException('DB에 서브업적 데이터가 없습니다.'); } for (const sub of dbSub) { const key = `sub-achievement`; const image = typeof sub.sub_achievement_images === 'string' .. 2025. 3. 4. 도커 핑퐁 # redis-cli 127.0.0.1:6379> pingPONG127.0.0.1:6379> 2025. 3. 4. GEO 발키 사용 import { Injectable, OnModuleDestroy, OnModuleInit } from '@nestjs/common';import Redis from 'ioredis';@Injectable()export class GeoService implements OnModuleInit, OnModuleDestroy { private readonly S_GEO_KEY = 'sub-achievement'; // Valkey 내 Geo 데이터 키 private readonly P_GEO_KEY = 'pinkmong-appear-location'; // Valkey 내 Geo 데이터 키 private readonly client: Redis; constructor() { this.client.. 2025. 3. 4. 이전 1 2 3 4 5 ··· 34 다음