서버프로그래밍/gRPC 미니 프로젝트

C# gRPC 최소 개발환경 구축하기 2(개발환경 세팅)

codehunter 2022. 12. 17. 15:54

메인으로 가기

 

좀 더 디테일한 내용을 내가 정리한 개발환경 세팅(개인적인 글임)

 

개발프레임워크

   C# 11

   .net Framework 4.8 이상 

   .net Core 6.0 이상

 

에디터 : VSCode

개발플랫폼 : 윈도우, 맥

 

폴더 구성은 아래와 같이 한다.

 

gRPC_MINI_Framework/ (이하 gmf로 호칭)
        - Server
                - protoc (클라이언트와 통신할 프로토파일 모음)
                - gmfServer (프로젝트 솔루션)
                             - gmfCommon

                             - gmfServer (실제 서버 프로젝트)

 

.../gRPC_MINI_Framework/Server가 루트폴더이다. 해당 폴더에서 VSCode로 프로젝트를 구성한다.

깃 구성은 gRPC_MINI_Framework 폴더부터 구성한다.

 

그리고 닷넷 솔루션과 닷넷 프로젝트를 구성한다.

..\Server\gmfServer> dotnet --info

..\Server\gmfServer> dotnet new sln

..\Server\gmfServer> dotnet new console -o ./gmfServer

..\Server\gmfServer> dotnet sln add ./gmfServer/gmfServer.csproj

 

gmfCommon 콘솔 프로젝트를 구성한다.

솔루션에 gmfCommon라는 닷넷 콘솔 프로젝트를 포함시킨다.

..\Server\gmfServer> dotnet new console -o ./gmfCommon

..\Server\gmfServer> dotnet sln add ./gmfCommon/gmfCommon.csproj

 

gmfCommon 프로젝트는 일종은 공통라이브러리 형식으로 작동하는거라서 굳이 실행할 필요가 없다. 그래서

gmfCommon.csproj파일을 열어서 아래와 같이 수정한다.

----------------------------------------
바뀌기 전
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net6.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

</Project>

----------------------------------------
바뀐후
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
  </PropertyGroup>

</Project>

 

VSCode 상에서 proto파일을 기존 프로젝트에 추가하려면 다음과 같은 외부 패키지들이 필요하다. 설치할 NuGet 패키지 는 다음과 같다. (뒤에 버전정보를 빼면 최신버전으로 설치되는데 2022.12월 기준으로 최신버전은 다음과 같다)

   Grpc (2.46.5) 

   Google.Protobuf (3.21.12) 

   Grpc.Tools (2.51.0) 

..\Server\gmfServer> dotnet list package (이미 설치한게 있는지 확인)
..\Server\gmfServer> dotnet add ./gmfServer/gmfServer.csproj package Grpc 
..\Server\gmfServer> dotnet add ./gmfServer/gmfServer.csproj package Google.Protobuf 
..\Server\gmfServer> dotnet add ./gmfServer/gmfServer.csproj package Grpc.Tools --version 2.51.0
..\Server\gmfServer> dotnet list package (설치된 버전 확인)

 

이제 빌드를 한번 해보고 다른 이상이 없나 체크해본다.

..\Server\gmfServer> dotnet build --no-incremental -c Release

 

아래와 같이 일단 깨끗이 빌드가 됐다.

...
빌드했습니다.
    경고 0개
    오류 0개

 

여기까지 왔으면 기본 세팅은 끝난것이다. 깃에 등록하고 다음 작업을 이어가 보자.

..\gRPC_MINI_Framework 폴더에 .gitignore 파일을 복사하고 원격저장소에 프로젝트를 생성하고 주소를 얻자.

나는 깃랩을 주로 이용하고 주소는 https://gitlab.com/hunter10/csharp_grpc_miniframework.git 다음과 같다.

..\gRPC_Mini_Framework> git init
..\gRPC_Mini_Framework> git add .
..\gRPC_Mini_Framework> git commit -m "First Local Commit"
..\gRPC_Mini_Framework> git branch (브랜치 이름 확인하고 main이면 그냥 다다음으로...)
..\gRPC_Mini_Framework> git branch -m main (예전 깃 설치한건 기본이 master로 잡힌다)
..\gRPC_Mini_Framework> git remote add origin https://(만든 원격 깃 주소)
..\gRPC_Mini_Framework> git remote -v (url이 제대로 됐는지 확인)
..\gRPC_Mini_Framework> git pull origin main --allow-unrelated-histories (최초 풀)
..\gRPC_Mini_Framework> git push origin main