개인과제 오늘 한 작업
[fix] 스테이지 테이블 변경 [update] assets 클라에 보내주기
[fix] 1. stage.json 속성 조정
- 스테이지별 유지 시간 변경
- 스테이지별 속도 속성 추가
[fix] 2. 기존 하드코딩 부분 데이터 참조로 개편
- getItem 메서드 획득 점수 테이블에서 참조
- 스테이지 변경 시 현 스테이지와 목표 스테이지의 id 테이블에서 참조
[fix] 3. 리드미 최적화
[update] 1. handleConnecetion 함수로 에셋들 클라에 전달
- public 폴더에서도 같은 데이터 지향하고자 함
[update] 2. Socket.js에서 에셋들 받아 변수에 저장
- stage, item, unlock 별로 변수 생성해 받아온 객체 나누어 할당
- export 후 필요한 모듈에서 받아 사용
[fix] 상수->데이터 참조 [add] 아이템 핸들러 생성
[fix] 1. 클라 단에서 상수로 하드코딩 된 부분들 데이터 테이블 참조하도록 변경
- "connection" 이벤트 시 서버에서 로드한 에셋들을 클라에 전달하도록 해서 활용
- 필요한 모듈에서 import하여 사용
[add] 1. item-model.js 파일 생성
- 서버에서 유저의 아이템 획득 정보를 저장하고 조회하기 위함
[add] 2. itemHandler 구현
- mapping 목록에 추가
- getItem 메서드에서 sendEvent
- 획득 점수, 획득 스테이지, 획득 주기 등의 적합성 검증
개인과제 오늘 만난 문제
1. response가 한 박자 늦다!!
아이템 획득 시 보내는 이벤트에 대한 응답이 "success"냐, "fail"이냐에 따라 점수 획득 여부를 가리도록 하고 싶었다!!
그래서 소켓을 통해 클라에 전해진 reponse 메세지를 변수에 할당하고, 이를 export해서 아이템 획득 로직이 있는 모듈에 가져와 활용해보려고 했다!! 참고로 위 사진은 최신 사진은 아니고, 같은 문제를 겪었다가 도망쳤던 흔적... 결국 중요한 부분에서 다시 마주해 버렸다!!
21번 핸들러가 아이템 관련 검증을 하는 핸들러! 처음엔 길이가 5로 제한된 배열인 resLog에 push하는 식으로도 시도해 봤는데 핵심적인 문제인 한 박자 밀리는 건 같아서 일단 테스트를 위해 변수에 할당하고 있다!
그래서 아이템획득에 따라 점수를 획득하는 getItem 메서드에서 조건문을 만들어 저 += points 부분을 넣고 싶었는데, 한 박자가 계속해서 늦었다는!! 당연히 순서 문제니 비동기 작업에 대해 고민을 했고, 저 sendEvent에 프로미스 객체를 반환하도록 하기도 하고, 그 뒤에 then을 붙이고 res를 확인해본다거나, sendEvent 함수 안에서 response 메세지를 받는다거나 등등등 여러 시도를 해보았지만 다 실패했고, 정규 학습 시간 종료 후 동료들과 수다를 떨던 중 집단지성의 힘을 빌어 도움을 요청해보았다!!
마침 튜터 님이 계셨기에 조언을 얻을 수 있었는데, 아이템 획득과 동시에 점수 증가가 이뤄지고 있는 게 문제일 거 같다는 조언을 해주셨다!! 아하! 싶었기 때문에 오늘 해결은 못 했지만 내일은 메서드를 분리하여 시도를 해보아야겠다!! 그래도 하루 종일 이 문제로 고생했고, 정신이 없어서 기록도 제대로 못 남겼는데, 희망을 좀 찾은 거 같아 기쁘다! 내일도 파이팅!
추가로 알게 된 사실
- shift() ← 얘는 자른 요소를 반환한답니다?
'TIL&WIL' 카테고리의 다른 글
241219 TIL - 개인과제04 (2) | 2024.12.20 |
---|---|
241218 TIL - reduce(), concat(), 개인과제03 (3) | 2024.12.18 |
241213 TIL - 개인과제01, 음수인덱스 (0) | 2024.12.13 |
241212 TIL - 개인과제 기획 (0) | 2024.12.12 |
241211 TIL - splice(), Node.js 내장 모듈, meta data, ESM, (0) | 2024.12.11 |