구현 자체에 목표를 두는 것이 좋다 (일단 만들어라)
코드를 이해하려고 하지 말고 콘솔로그 하나하나 찍어가면서 눈으로 확인하는게 가장 빠르다
작은 기능부터 만들어서 합쳐보는 것이 좋다
참고 블로그
git diff - 과거 코드변경 확인, 여기서 git reset (해시값) 하면 과거로 돌아갈 수 있다. 단 revert와 차이점이 있다.
-> git revert로 되돌린 커밋은 이후 커밋들이 유지되지만, git diff에서 reset으로 돌린 커밋은 이후 커밋이 모두 날아가버린다.
이후 커밋이 필요 없고 로그를 깨끗하게 관리하고 싶다면 git reset을, 기록보다 이후 커밋들이 중요하다면 git revert를 쓰자.
저희 수달 돼지 아니에요 엉엉
Map 객체는 키-밸류 페어로 이루어진, JSON 배열마냥 생긴 컬렉션이다. 스코어 관리를 하고 싶어 창민 튜터님께 여쭤보았더니 Map을 추천해 주셨다.
되게 레디스 처럼 생겼구나, 라는 생각이 들었다. 아마 이런 거에서 나온게 아닐까. (??)
const userScore = new Map()
이렇게 만들고, userScore.set(userId, 0)
이런 식으로 쓰면 초기화 될것.
userScore.get(userId)
이런 식으로 메서드를 써 가져올 수 있어서 배열에다가 find 쓰지 않아도 되어 편하다고. 컬렉션 내에 있는지 알고싶으면 (맵 이름).has
를, 컬렉션의 크기를 알고싶으면(맵 이름).size
를 쓰면 된다.
몬스터 JSON 파일에 처치 시 얻는 골드와 스코어가 있다.
game.js에서는 현재 스코어와 레벨이 있고, 몬스터를 잡다 보면 스코어와 레벨이 일정수치에 도달해 다음 레벨로 올라갈 것.
-> 이걸 몬스터 처치 핸들러에서 다 처리해줘야 하나? 라는 고민을 하고 있었다.
-> 일단 핸들러를 따로 만들고 몬스터 처치 핸들러 안에서 레벨업 관련 핸들러가 호출되면 좋을 것 같다는 생각을 했다.
-> game.js에서 핸들러가 소환되는 건 아닌 것 같다. game.js는 클라단이고 핸들러는 서버단이기 때문.