카테고리 없음

내일배움캠프 8주차 화요일 TIL

news0516 2024. 12. 17. 20:16

금일은 모의면접과 개인 프로젝트를 진행하였다.

꼬리질문에 집중한 나머지 오히려 본 질문에 대해 소홀했던 것 같다. 본 질문을 중심으로 모의면접이 진행되어서 준비한것 만큼 지식을 사용하지는 못했다. 또한 경우의 수를 한번씩은 모두 집어야 할 것 같다. 예를 들어 IPv4 체계에서는 주소 자동 구성 시 DHCP를 주로 사용한다고 숙지 하였는데, 실제 연습때는 DHCP가 무조건 사용되어야만 하는것인가에 대한 질문을 받아서 당황해버렸다. 다시 생각해보면 한번 집고 넘어갈 수 있던 문제였다.
또한 때에 따라 다르겠지만, 내가 아는 것을 모두 말하는 것 보다는 간결하게 전달하는 것이 중요하다 생각했는데, 길고 자세하게 내가 아는 것을 모두 말해야하는 경우도 대비를 해놓아야 한다는 것을 배웠다.
그리고 혼자 많은 양의 말을 조리있게 하는게 힘들었다. 긴장도 때문일 수 도 있지만 원래 말이 길어지면 해매는 경향이 있어서 이부분에 개선이 필요할 것 같다.

이후 프로젝트를 진행하기 위해 구조를 파악하는데 힘썼는데 조금은 이해가 되어 수정을 해보았다.

스테이지 변경 점수 도달 시 서버로 요청을 보내고, 중복되지 않게 하도록 로직을 수정하기 위해 Score.js의 score 클래스를 수정하였다.

  update(deltaTime) {
    this.score += deltaTime * 0.01;

    console.log(this.score);
    // 스코어가 100의 배수일 때, stageChange가 true인 경우 이벤트 전송
    if (Math.floor(this.score) % 100 === 0 && this.stageChange) {
      this.stageChange = false; // 중복 전송 방지
      sendEvent(11, { currentStage: this.currentStage, targetStage: this.currentStage + 1 });
      this.currentStage += 1; // 스테이지 업데이트
    }

    // 스코어가 100을 초과하고 stageChange가 false일 때 다시 true로 설정
    if (Math.floor(this.score) % 100 !== 0) {
      this.stageChange = true; // 다음 스테이지 이벤트를 가능하게 함
    }
  }

100을 넘을 때 마다 스테이지가 넘어가도록 가정하고 설정하였다. 해당 부분을 거쳐 서버에 핸들러 아이디 11과 currentStage, targetStage가 payload로 전달된다.

이후 서버에서 payload.currentStage, payload.targetStage 같은 형식으로 불러올 수 있다.

서버에서 currentStage 값을 불러와 스테이지 표시에 적용하여 처음 시작시 1stage, 100점 도달시 2stage...인 구조를 메세지로 표현하는데는 성공했다. 정석대로 한건지는 잘 모르겠어서 확인이 필요하다.

조금이나마 구조 파악에 성공해 다행이였다. 이제 스테이지별 획득 점수 변화를 구현하여야 한다.