C# 범범조조 2023. 3. 1. 20:39
참조 https://code-maze.com/command/ https://gmlwjd9405.github.io/2018/07/07/command-pattern.html 커맨드 패턴이란 커맨드 패턴이란, 실행될 기능을 캡슐화함 으로써 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스를 설계하는 패턴을 의미합니다. 즉, 어떤 이벤트가 발생했을 때 실행 될 기능이 다양하면서도 변경이 필요한 경우에 이벤트를 발생시키는 클래스를 변경하지 않고 재사용할 때 유용하게 사용할 수 있는 디자인 패턴입니다. 커맨드 패턴 다이어그램 다음은 커맨드 패턴을 보다 쉽게 이해하기 위한 다이어그램입니다. 실행될 기능을 캡슐화함으로써 기능의 실행을 요구하는 호출자(Invoker) 클래스와 실제 기능을 실행하는 수신자(Rec..
더 읽기
gRPC 범범조조 2023. 3. 1. 07:38
gRPC 인터셉터란? gRPC 애플리케이션을 만들 때 클라이언트나 서버에 원격 함수 실핸 전 후 몇가지 공통적인 로직을 실행할 필요가 있습니다. gRPC에서는 인터셉터 라는 확장 메커니즘을 사용하여 로깅, 인증, 메트릭 등과 같은 특정 요구 사항 충족을 위해 RPC 실행을 가로챌 수 있고, 클라이언트와 서버 gRPC 애플리케이션에서 인터셉터를 구현하고 설치하기 위한 간단한 API를 제공합니다. gRPC 인터셉터 장점 앞서, gRPC 정의를 통해 gRPC의 주요 확장 메커니즘 중 하나며 로깅, 인증, 권한 부여, 메트릭, 추적, 기타 요구 사항과 같은 여러 유스케이스에 매우 유용하게 사용됩니다. gPRC를 지원하는 모든 언어에서 인터셉터가 지원되는 것은 아니며, 각 언어별로 인터셉터의 구현이 다를 수 있으..
C#/단위테스트 범범조조 2023. 3. 1. 03:37
참고 참고 사이트 목적 C# 으로 gRPC Server 를 구현합니다. 원래는 Client 가 Server 에게 메시지를 전송해서 서로 통신을 해야 하지만, Client 를 C# 에서 단위테스트를 통해서 구현하여 C# 에서 gRPC 단위테스트 하는 방법에 대해서 알아 봅니다. gRPC 서버 구현 C# 에서 gRPC 서버 구현하는 방법은 ASP.NET Core gRPC 서비스 프로젝트를 생성하게 되면, 기본으로 greet.proto 파일과 함께 GreeterService 가 생성됩니다. 아무런 작업을 하지 않아도 기본으로 gRPC 서버가 생성된 것입니다. 하지만, 여기서 저는 테스트를 위해 2가지 작업을 진행해 주었습니다. 첫 번째로, IGreeter.cs 인터페이스를 생성하였고, 생성한 IGreeter ..
gRPC 범범조조 2023. 3. 1. 00:38
참고 사이트 참고 사이트 gRPC 인터셉터에 의한 서버 예외 처리 Interecptor 클래스에는 gRPC 요청을 가로채기 위한 많은 메서드가 있습니다. 여기서는 서버 측 수신 호출에 대한 최상의 방법은 UnaryServerHandler 메서드를 사용하는 것입니다. 다음은 서버 측 인터셉터 코드 예제 입니다. public class ExceptionInterceptor: Interceptor { private readonly ILogger _logger; public ExceptionInterceptor(ILogger logger) { _logger = logger; } public override async Task UnaryServerHandler( TRequest request, ServerCall..