Skip to content

Conversation

@nijuy
Copy link
Collaborator

@nijuy nijuy commented Dec 23, 2025

💻 개요

  • 리팩토링

📋 변경 및 추가 사항

스낵 타입 상수화

  • 기존 스낵 타입은 type SnackType: number로 정의되어 있어 범위가 넓었습니다.
    이로 인해 게임 관련 코드에 0 1 2 같은 매직 넘버가 직접 사용되면서
    각 숫자가 어떤 스낵을 의미하는지 주변 코드를 보고 이해해야 했어용
    (물론 스낵 종류가 사실상 2개라 막 되게.. 어렵진 않지만..)

  • 스낵 타입을 상수로 정의해서 사용하는 방향으로 수정했습니다

    • SnackType 타입도 상수 기반 유니온 타입으로 변경했습니다.
    • 코드 전반에서 매직 넘버 (0, 1, 2) 대신 SNACK_TYPE.*를 사용하도록 수정했습니다.

에셋 매핑 구조 개선

  • 기존에는 snackGameGetSnack()이 반환하는 배열을 인덱스로 해석해서 스낵 타입 - 에셋명을 매핑했습니다.

      const snacks = snackGameGetSnack(config.mode); // ['snack', 'golden_snack']
    
      if (!this.commonTypes.length) {
        this.typesMap = {};
    
        for (let i = 0; i < snacks.length; i++) {
          const name = snacks[i];
          const type = i + 1;
    
          this.commonTypes.push(type);
          this.typesMap[type] = name; // { 1: 'snack', 2: 'golden_snack' }
        }
      }
  • 게임 모드별로 사용되는 스낵 타입, 에셋 이름을 매핑한 객체를 유틸 파일에 정의했습니다.

    const snackAssetsByMode: Record<SnackGameMode, Partial<Record<SnackType, string>>> = {
      default: {
        [SNACK_TYPE.NORMAL]: 'snack',
        [SNACK_TYPE.GOLDEN]: 'golden_snack',
      }, // for문에서 만들던 객체랑 동일한 형태
      inf: {
        [SNACK_TYPE.NORMAL]: 'snack',
      },
    };

💬 To. 리뷰어

@nijuy nijuy self-assigned this Dec 23, 2025
@nijuy nijuy merged commit fb9b169 into develop Jan 5, 2026
1 check passed
@nijuy nijuy deleted the refactor/snack-type branch January 5, 2026 12:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants