목록Today I Learn (82)
나만의 작은 도서관
이번 주 한 마디: 게임에서 다른 유저의 동기화된 움직임을 가진다는 것을 생각보다 어려운 기술이라는 것을 알게된 한 주 였다.이번 주 배운 내용 TCP read ECONNRESET 오류VSCode 사이드바에서 열린 모든 폴더 접는 단축키slice()백틱으로 console.log를 찍으면 바이트 배열은 문자열로 변환된다.protoBuf의 verify함수자바스크립트 계산된 프로퍼티 (Computed Property)유니티 feaure.2d cannot be foundsetInterval의 time은 동적으로 변경할 수 없다.uuid의 중복 가능성추측 항법( Dead Reckoning )이번 주 한 일 TCP ech..
오늘 배운 내용 setInterval의 time은 동적으로 변경할 수 없다.자바스크립트에서 setInterval은 콜백함수와 시간을 매개변수로 넣어 사용하는 함수이다. setInterval()함수가 하는 역할은 매개변수로 받은 시간이 지나면 콜백함수를 실행하는 과정을 반복하는 것이다. 문제는 이런 setInterval()의 매개변수인 시간을 동적으로 변경할 수 없다는 것이다. 그렇다면 같은 interval을 사용하면서 시간을 바꿀 수는 없을까? 직접적으로 바꾸는 방법은 지원하지 않는다고 한다. 그렇다고 방법이 전혀 없는 것은 아니다. 아래와 같이 사용하면 시간을 동적으로 변경하는 것과 비슷한 기능을 할 수 있다. let intervalId;..
오늘 배운 내용 TCP과제 패킷 구조 파악TCP서버 구축에서 패킷의 구조를 파악하는 것이 중요하다 그래서 과제에서 나오는 패킷의 구조들을 하나씩 파악하며 어디에 쓰이는 지 확인해보았다. 최상단 패킷 서버와 클라이언트가 서로 통신할 때 가장 먼저 받게되는 구조이다. 각 구조는 다음과 같다.TOTAL_LENGTH(헤더): 패킷의 전체 길이PACKET_TYPE(헤더): 패킷의 타입PROTOBUF: protoBuf로 인코딩된 메세지프로토버프패킷에 들어있던 프로토버프의 종류이다. 종류는 요청에 사용하는 일반패킷과 응답에 사용하는 응답패킷, 총 2종류이며 각각의 패킷 필드는 다음과 같다. 일반패킷(CommonPacket)handlerId: 핸들러 Id..
오늘의 Trouble Shooting Problem 1. 유니티 feaure.2d cannot be found클라이언트 코드를 깃헙에서 내려받은 다음 유니티에서 열었더니, 패키지 매니저에서 빨간색 느낌표가 나오며 아래와 같은 오류가 발생했다.An error occurred while resolving packages:Project has invalid dependencies:com.unity.feature.2d: Package[com.unity.feature.2d@2.0.0] cannot be found이 오류 때문인지 게임 씬으로 이동해서 플레이를 해봐도 정상적으로 게임이 진행되지 않았다. Solve. 삭제후 재설치아래 링크를 통해 문제를 해결하는 방법을 보니 해결하는 방..
오늘 배운 내용 protoBuf의 verify함수Protocol Buffers(프로토콜 버퍼) 같은 경우, 각 메시지 타입은 자동으로 생성된 verify 메서드를 가집니다. 이 메서드는 해당 메시지가 정의된 스키마와 일치하는지 검사합니다.// 예제 프로토콜 버퍼 정의message Person { string name = 1; int32 age = 2;}// 자동 생성된 verify 메서드 사용 예시const person = { name: "Alice", age: "twenty-five" }; // age는 숫자여야 함const errorMessage = Person.verify(person);console.log(errorMessage)..
오늘 배운 내용 read ECONNRESET 오류 read ECONNRESET이라는 오류가 ctrl+c를 통해 서버나 클라이언트를 강제종료 했을때 net모듈을 이용한 TCP서버에서 발생하였다. 그래서 이 오류가 치명적인 오류인지 확인할 필요가 있었고, 구글링을 해본 결과, 해당 오류는 다음과 같았다. read ECONNRESET는 TCP conversation에서 한 쪽의 갑자기 닫혔을 때 발생하는 오류이다.즉, ctrl+c를 통해 강제로 닫아 생긴 오류였고, 크게 걱정할 필요가 없었던 오류였다. VSCode 사이드바에서 열린 모든 폴더 접는 단축키TCP서버를 구축하다보면 여기저기서 폴더를 열어 점점 열려있는 폴더들이 많아져 폴더들의 간격..