-
프로토버프 MergeFrom()에서 만난 오류(feat. 'System.Runtime.CompilerServices.Unsafe)
서버와 클라이언트가 proto 파일을 컴파일한 결과물인 클래스 파일을 공유하는데 어떻게 역직렬화하는 과정에서 오류가 생길 수 있을까. 결론부터 말하자면 System.Runtime.CompilerServices.Unsafe의 버전 문제였다. 프로토버프를 서버와 연동하는 과정에서 System.Runtime.CompilerServices.Unsafe.dll을 csharp 환경에 있는 라이브러리에서 가져다 썼었다.C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.12 여기에 있던 dll 버전이 낮았나 보다. 전체 오류 메시지를 보면 버전이 언급되어 있었다.Could not resolve type with token 010000a6 from typeref (ex..
-
프로토버퍼 연동(feat. C# 프레임워크)
C# 프레임워크는 하나가 아니다. C++를 주로 하다가 C#도 이참에 해두면 좋을 것 같아서 시작했는데 프레임워크 종류를 면밀히 살피지 않고 그러려니 했었다. "뭐 대충 다 호환되겠지!". 어떤 일이든 조금이라도 얕잡아 보는 순간 역으로 당하는 법이다.어디에는 있는 API가 저기에는 없어 프로젝트를 마이그레이션 해야 했고, dll을 복사 붙여넣기 하니까 에러 로그 하나 안 뜨고 제대로 동작하지 않았다. 대상 프레임워크가 다른 것이 이유였음을 알게 됐다. 프로토버프도 마찬가지로, 여기에서 간단하게 설명할 것은 닷넷8.0으로 만든 서버 프로젝트와 2022.3.55f 유니티를 프로토버프로 연동하는 방법이다. 추가적으로 서버 프로젝트의 서버 로직의 dll을 유니티 프로젝트에서도 동작할 수 있게 해볼 거다.서버 ..
-
빌드 이벤트를 통해 자동화를 완성하자
PacketGenerator를 통해 패킷을 자동으로 만든다. 여기에서 관리하는 패킷의 변경사항이 있을 때 한 번의 빌드로, 이 패킷 파일을 사용하는 프로젝트에 자동으로 파일이 복사가 되면 편의성이 올라갈 것이다. 패킷을 수정하고 나서, 자동화 코드를 통해 패킷이 자동 생성되는데 이를 일일이 손으로 복사 붙여넣기를 하면 시간도 걸리고 휴먼 에러가 발생할 가능성이 높아진다. 이 부분에 대한 자동화다. 비주얼 스튜디오의 옵션 중에 빌드 이벤트가 존재하고 세부적으로는 빌드 전 이벤트, 빌드 후 이벤트가 있다. 우리는 빌드를 하고 나서 배치 파일을 실행해 패킷 파일을 각 프로젝트로 복사할 것이기 때문에 빌드 후 이벤트를 활용해보자. 1. 프로젝트 속성에 기입하는 방법이 있다. 2. 동일한 내용을 프로젝트 파일에도..
-
넷플릭스에서 2K 해상도로 시청하기(feat. 뭘 해도해도 안 될 때)
검색하면 자세한 방법이 나와있다.안 되는 사람은 뭘 해도 안 됐는데 내가 그 경우에 해당했다.1. HDCP 2.2 / DP 1.4 / hdmi 2.02. 그래픽 카드 30703. QHD 동일 모니터 두 대4. HEVC 코덱 설치5. 싱글 모니터로 해보기6. 윈도우107. 수많은 넷플릭스 앱 재설치 이 조건에서도 넷플릭스에서 정보를 보면 FHD가 나오고 HEVC 코덱이 적용이 안 되어 있는 걸 확인했었다.조금 알아보니 윈도우11에는 향상된 HEVC가 있는 것 같았고 기분 전환겸 윈도우11로 새로 설치했다. 업그레이드가 아니라 포맷 후 재설치를 했다.윈도우11 설치 이후에 HEVC를 설치하려고 하니 이미 설치가 되어 있다는 안내가 떠서 재설치는 하지 않았다. 이미 큰 기대는 하지 않은 상태에서 넷플릭스 앱을..