[Tip,C#] protobuf 메시지 정의 나누어 배포하기 > IT Tip&Tech

본문 바로가기
사이트 내 전체검색


회원로그인

IT Tip&Tech

[Tip,C#] protobuf 메시지 정의 나누어 배포하기

페이지 정보

작성자 책읽는아이 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일19-09-18 11:21 조회172회 댓글3건

본문

서버간 메시지 정의나 클라이언트에 노출시키고 싶지 않은 메시지/데이터 정의들을 따로 관리하고 싶을 때 다음과 같이 해주시면 약간이나마 편하게 하실 수 있습니다. 

 

1. 메시지 정의용 lib 프로젝트를 생성하고 Nuget 에서 Google.Protobuf 와 Grpc.Tools 를 추가해줍니다.

0eb86ebe329eb09897da7a92164c49f4_1568772861_3474.PNG 

 

이 때, Visual Studio 상에서 구분된 프로젝트를 만들어주는데 프로젝트 파일의 위치는 동일 위치로 해줍니다. 다음과 같이요.

 

0eb86ebe329eb09897da7a92164c49f4_1568772494_4737.PNG

 

그리고 proto 파일들을 생성해주고 해당 프로젝트에서 필요한 것은 속성에서 Build Action 은 Protobuf compiler 로, (gRPC 를 쓰지 않는다면) gRPC Stub Classes 는 Do not generate 로 바꿔줍니다.

 

0eb86ebe329eb09897da7a92164c49f4_1568773047_5544.PNG
 

프로젝트에 포함될 필요가 없는 proto 파일은 우클릭후 "프로젝트에서 제외" 를 클릭해 프로젝트에서 빼줍니다. (그냥 놔둬도 빌드액션이 정의가 안되면 무관하긴 하지만...)

 

2. msg.proto , server.proto 두 개의 proto 파일을 작성했고 서버간 메시지 정의는 server.proto 에만 담았다고 가정해 보겠습니다.

 

0eb86ebe329eb09897da7a92164c49f4_1568772401_1163.PNG
 

 

빌드 후에 dll 들을 DotPeeker 로 열어보면 다음과 같이 각각 잘 구별되서 담겨 있는 것을 확인할 수 있습니다.

 

Messages.dll

0eb86ebe329eb09897da7a92164c49f4_1568772657_8732.PNG

 

Messages.Server.dll
0eb86ebe329eb09897da7a92164c49f4_1568772657_9266.PNG
 

클라이언트에는 Messages.dll 을 배포하고 서버에는 Messages.Server.dll 을 배포하면 됩니다. 

[이 게시물은 리틀캔들님에 의해 2019-09-18 13:28:26 잡담게시판에서 이동 됨]

  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기

댓글목록

책읽는아이님의 댓글

책읽는아이 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일

꼭 proto 파일에만 해당 하는건 아니고 일반적인 cs 클래스 역시 마찬가지로 관리하면 됩니다.
결국 한줄 요약하면 '프로젝트를 동일한 경로에 위치시켜라' 입니다. ..
tip 이라고 하기도 좀 그런... 별거 없죠 'ㅅ'a

IT Tip&Tech 목록

Total 125건 1 페이지
IT Tip&Tech 목록
번호 제목 글쓴이 날짜 조회
125 [Tip,C#] 간단히 만들어보는 메시지 처리 구조 2 댓글1 책읽는아이 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 10-11 52
124 [Tip,C#] 간단히 만들어보는 메시지 처리 구조 책읽는아이 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 10-01 76
123 [Tip,C#] protobuf 메시지 정의 나누어 배포하기 (내용추가) 책읽는아이 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 09-23 128
열람중 [Tip,C#] protobuf 메시지 정의 나누어 배포하기 댓글3 책읽는아이 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 09-18 173
121 QT Creator, undefined symbol: FT_Get_Font_Format 오류 리틀캔들 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 09-08 176
120 배경 누끼 따주는 사이트 리틀캔들 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 08-27 197
119 [link] 메모리 관련 글 댓글1 인기글 책읽는아이 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11-15 1710
118 마소가 Azure Sphere 라는걸 만들었데요. 인기글 책읽는아이 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 04-17 2722
117 MTPutty 댓글2 인기글 책읽는아이 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 04-16 3089
116 Visual Studio 툴바 아이콘들 사라질때 해결방법 인기글첨부파일 black_H 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 04-13 2492
115 openvpn 연결 후 1시간뒤 연결이 자동으로 끊긴다면 인기글 책읽는아이 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 04-04 3293
114 openvpn ip 고정시키기 인기글 책읽는아이 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 04-03 2398
113 openvpn id/pwd 로 접속하기 댓글1 인기글 책읽는아이 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 04-02 2103
112 openvpn 설치해보기 댓글3 인기글 책읽는아이 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 04-02 2712
111 Pro Git 이 무료로 배포되고 있었군요. 댓글1 인기글 책읽는아이 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 03-20 3229
게시물 검색

접속자집계

오늘
669
어제
782
최대
3,675
전체
673,857
회사소개 개인정보취급방침 서비스이용약관
Copyright © LittleCandle All rights reserved.
문의메일 : littlecandle99@gmail.com
상단으로
모바일 버전으로 보기