Protobuf 이식 (코드리뷰)

CJB_ny·2022년 6월 22일
0

2D_Project

목록 보기
19/23

우리가 지금 SendBuffer를 큰 것을 할당한 다음에

이것을 쪼개서 사용을 하고 있었다.

공용으로 크게 하나를 관리를 해가지고 sendbuffer를 필요로하는 session한테 이 sendbuffer를 꽂아주는 방식이였는데

open close 방식으로

아주아주 큰 버퍼를 할당을 한다음에 쪼개서 사용하는 개념으로 만들었다.

그래서 어떤 세션에서 이 sendbuffer를 성공적으로 다 전송하지 않고 조금 남아있다고

하면은 이 큰 버퍼가 해제되지 않고 남아있는 -> 메모리가 증가하는 단점이 있다.

그래서 이 sendbuffer.cs파일은 과감히 삭제하고

다른 방법을 보여 줄 것이다.

구글 프로토 버퍼 교체 작업

https://developers.google.com/protocol-buffers/docs/csharptutorial

google -> google protobuf c#

그래서 이 단계를 거처서 뭔가를 해보도록 할 것이다.

그런데

이것을 하기 전에

프로토 버프를 만들어주는 "변환기"를 다운 받아야 함.

https://github.com/protocolbuffers/protobuf 에서

https://github.com/protocolbuffers/protobuf/releases/tag/v3.12.3

이버젼으로 다운 ㄱㄱ

그런데 우리가 빌드를 할것은 아니라서

밑에 이거 다운로드 받으면 된다.

그리고 우리 프젝 폴더에 Common 폴더 만들고 압축해제 ㄱㄱ

그리고 bin에 가보면

이게 있는데 이게 뭐냐면은

비유를 하자면

우리가 PacketGenerator를 만들었었는데

여기 bin -> exe파일이 우리만의 "변환기"였다.

이렇게 패킷을 정의를 한 것을 실질적으로 자동화된 코드로 변환하는 변환기 역할인데

이것이 우리가 다운받은 protc.exe 라는 애가 해준다고 보면된다.

이제 해야할거

protobuf에서 제공하는 문법대로

PDL.xml로 만든것 처럼 format자체를 어떻게든 만들어서 넣어주는 단계를 거치면된다.

중요한거

우리가 이전에는 PDL.xml로 했는데

.proto 로 해야한다.

구글에 나와있는대로 이렇게 해주고

그다음 이부분이 있는데

이것은 여기있는 프로토 파일은 C#파일로 변환을 할 때

그 namespace자체를 의미를 하는 것이다.

그 다음 이 테스트 하는 부븐 복붙해서 그대로 테스트 해보도록 하자.

그다음에

이렇게 어쩌구 이 코드입력해서 실행을 해라 어쩌구 있는데

그런데 우리가 변환기를 다운을 받았었다.

여기다가 직접 커맨드를 날려도되지만 "배치"파일을 만들면 조금더 나을듯?

이전에 배치 파일 만들었었다.

이거 복붙하자 Common -> bin 에다가

주석 처리 ㄱㄱ

지금까지한거

유니티에서 프로토 버퍼 설치

서버 붙일라믄

파일 올린거 Common, Server 다운받아서 사용하면된다.

그리고 이제 프로토 버퍼를 유니티에서도 설치 하는 방법 함.

일단 이번 시간 파일 다운 받으면

서버 켜둔 상태에서 유니티 실행하면

이까지 확인이 가능하다.

정리 및 후기

하나도 이해가 안가고 시간 존나 많이썻다...

profile
https://cjbworld.tistory.com/ <- 이사중

0개의 댓글