2024. 11. 15. 23:48ㆍ[Node.js_6기 본캠프 TIL]
기본 클라이언트를 파일을 받아, 기획에 맞게 수정하기 전에 일단 서버를 붙여보기로 했다. 기본적인 패킷 설명서가 있었기 때문에, 하나씩 분석하고 기능을 구현하던 중 코드가 너무 길고 비효율적이라는 생각에 정리를 해보자는 의견이 나왔다.
위치만 바꿨을 뿐인데, 사라져버린 캐릭터
최초 입장 시, 클라이언트에서 보내주는 C_Enter 패킷의 Response로 S_Enter 패킷을 보내주는 기능만 핸들러에 우선적으로 구현해둔 상태였다. 플레이어가 여러명 접속해도 서로의 모습이 보이는 부분까지 문제가 없는 것을 확인했기에, 위와 같이 주르륵 나열된 부분을 뜯어 utils 폴더에서 따로 관리할 수 있게 수정하는 것은 쉬운 일이라고 생각했다.
이전 프로젝트에서도 같은 작업을 해봤기에, 자신있게 시작했으나...
캐릭터가 스폰되지 않고, 마을의 전경만 화면에 가득 찬 상태가 계속 되었다.
기존의 코드와 같은 형태로 잘 보내주고 있는 것 같은데, 로그인 한 정보값도 다 찍히는데 무엇이 문제인지 알 수가 없어서 코드를 썼다 지우기를 반복했다.
import도 제대로 되어있고, user도 인자값으로 잘 주고 받고 있는데 무엇이 문제일까. 다시 처음으로 돌아가 패킷 명세서부터 뜯어보기로 했다. 누락된 데이터는 분명 없는데, 오타를 낸 것인가 싶어 패킷 명세서를 옆에 붙여놓고 하나하나 대조해보았다.
그리고 놀랍게도...
PlayerInfo를 player로 한번 더 묶어주어야 하나의 온전한 패킷으로 인식한다는 것을 뒤늦게 깨달았다. 코드 첨삭을 도와주던 팀원이 한번 고쳐주었던 것을 깜빡하고, 몇시간을 오류에 시달리고 나서야 알게 된 것이다. 이전 '타워 디펜스 리팩토링 프로젝트'를 통해 패킷에 좀 익숙해졌다고 생각했는데 여전히 기본 내실이 부족한 것을 다시 한번 깨달았다.
'[Node.js_6기 본캠프 TIL]' 카테고리의 다른 글
[최종 프로젝트] 서버와 기획에 맞게 클라이언트 수정하기 (1) | 2024.12.16 |
---|---|
[최종 프로젝트] 트러블 슈팅 - 1118 (0) | 2024.11.18 |
[알고리즘 코드카타] 바탕화면 정리 (0) | 2024.11.09 |
[CH6] 타워 디펜스 리마스터 프로젝트 - 트러블슈팅110 (2) | 2024.11.08 |
CH5_멀티 플레이 과제 - 트러블슈팅 (1) | 2024.11.01 |