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

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


회원로그인

IT Tip&Tech

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

페이지 정보

작성자 책읽는아이 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일19-09-18 11:21 조회2,661회 댓글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 136건 1 페이지
IT Tip&Tech 목록
번호 제목 글쓴이 날짜 조회
136 [JAVA]스프링 부트 1.4.2 이상에선 jar 파일로 빌드시 JSP안됩니다! 리틀캔들 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 10-22 147
135 [arduino]Arduino UNO WiFi Rev2 에서 LiquidCrystal_I2C 사용할때 주의점 리틀캔들 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 10-18 170
134 [JAVA]이클립스에서 자바스크립트 syntax coloring 이 되지 않을때 리틀캔들 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 10-17 148
133 [유니티]Resources.Load 가 안되는 황당한 이유 리틀캔들 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 10-10 169
132 아이폰에서 블루투스 키보드로 앱간전환하기 댓글1 첨부파일 리틀캔들 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 09-01 374
131 [JAVA]전체경로에서 파일명 얻기 리틀캔들 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 08-31 329
130 Visual Studio Code - Java 빌드 환경 설정 댓글1 첨부파일 책읽는아이 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 07-24 663
129 [java] java 의 integer 비교 댓글1 인기글 리틀캔들 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 02-20 1754
128 Xbox 무선 어뎁터 드라이버 입니다. 댓글3 인기글첨부파일 책읽는아이 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 02-14 1699
127 우클릭 context 메뉴에서 CMD 창 열기 / VSCode 열기 메뉴 추가 레지스트리 댓글1 인기글첨부파일 책읽는아이 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11-21 2164
126 Redmine 다음 메일 smtp 설정 인기글 책읽는아이 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11-19 2604
125 [Tip,C#] 간단히 만들어보는 메시지 처리 구조 2 댓글1 인기글 책읽는아이 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 10-11 2823
124 [Tip,C#] 간단히 만들어보는 메시지 처리 구조 인기글 책읽는아이 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 10-01 2733
123 [Tip,C#] protobuf 메시지 정의 나누어 배포하기 (내용추가) 인기글 책읽는아이 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 09-23 2693
열람중 [Tip,C#] protobuf 메시지 정의 나누어 배포하기 댓글3 인기글 책읽는아이 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 09-18 2662
게시물 검색

접속자집계

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