snack-game / front

스낵게임! 선택한 스낵 숫자합을 10을 만들면 점수를 얻는 게임입니다!
https://snackga.me
14 stars 0 forks source link

fix: `GameResultProps`의 percentile을 필수 속성으로 변경 #260

Closed nijuy closed 2 months ago

nijuy commented 2 months ago

💻 개요

📋 변경 및 추가 사항

상위 0% 일 때도 문구가 정상적으로 보이도록 코드를 수정했습니다 (사진은 percentile 변수에 고의로 0 넣어서 테스트한 거고, 34점일 때 상위 0% 아닙니다! 혹시 수상하게 생각하실까봐)

image

💬 To. 리뷰어

아래는 구구절절 히스토리인데요 사실 굳이 안 읽으셔도 되긴 합니다

  1. percentile = 0일 때 0만 보였냐!

    {percentile && <p>전체 사용자 중 상위 {percentile}%의 점수에요!</p>}
    • and 연산자는 처음으로 만나는 falsy 값을 반환함 (0은 falsy)
    • 따라서 주어진 상황에서 표현식은 아래처럼 바뀜

    {percentile} //  percentile 값 = 0만 출력하게 됨
  2. and 연산자는 왜 썼냐

      interface GameResultProps {
        score: number;
        percentile?: number; // percentile이 선택 속성이라, undefined일 수 있기 때문에 and 연산자가 필요했음
        reStart: () => void;
      }
  3. 왜 선택 속성으로 만들었냐

    레거시 코드의 변경 사항에서 눈치 채셨겠지만? 예전에는 게임 종료 API 연결 전이어서 넘길 percentile 값이 없었음 = percentile을 잠시 선택 속성으로... 근데 서버에서는 percentile 값을 항상 주는데, 레거시 코드를 위해 선택 속성으로 해둔다면 나중에 헷갈릴 수 있을 거 같아 필수 속성으로 바꿨습니당