NestJS 3

In NestJS's microservice, let it fix that cannot refer another microservice (2)

지난 글에서, NestJS 프레임워크의 microservice에서 다른 microservic를 참조하려고 할때 module init이 정상적으로 이뤄지지 않는 이슈가 있다고 설명했습니다. 해당 글을 작성한 이후에 NestJS의 INestApplication 쪽을 추가적으로 찾아보다가 아래 문서에서 INestApplicationContext 인터페이스를 inherit 하는 인터페이스가 2개 있다는 것을 발견했습니다. http://nestjs-doc.exceptionfound.com/interfaces/inestapplicationcontext.html 하나는 INestApplication이고 다른 하나는 INestMicroservice 였습니다. INestApplication은 일반적인 monolisic ..

NestJS 2023.04.08

In NestJS's microservice, let it fix that cannot refer another microservice

NestJS에서 MSA를 구현하다보면, 단순히 Client - Server 구조(https://kahnco.tistory.com/9)로 되어있는 프로젝트를 로컬 환경에서 돌리는 케이스는 별 에러없이 진행됩니다. 하지만, Client가 여러 개가 되고 각각의 Client가 Listen하고 있는 포트가 여러 개가 되면 Server(gRPC를 호출하는 쪽)에서 Client(gRPC를 제공하는 쪽)를 onModuleInit을 통해서 호출하고자 할때, override한 onModuleInit 함수가 정상적으로 호출되지 않는 문제가 있습니다. // client-svc.service.ts @Injectable() export class ClientSvcService implements OnModuleInit { pr..

NestJS 2023.04.02

Implementation gRPC MSA with Separated Projects in NestJS

개요 예전부터 MSA 아키텍처로 서버를 구성해보고 싶다는 생각이 들었는데, 좋은 기회가 있어서 구현해보게 되었습니다. 다양한 프레임워크 중에서도 제가 그나마 친숙한 NestJS로 진행해보고자 하는데, NestJS는 한국어로 잘 번역된 공식 문서도 있고 프레임워크에 MicroServices 파트가 공식적으로 지원하기 때문입니다. 정식으로 MSA 아키텍처를 구현해보기 전에, NestJS 공식 도큐먼트에 있는 간단한 MSA 예제를 먼저 실습해보았습니다. 아직 gRPC 프로토콜에 대해서 제대로 이해하지를 못해서, 이해를 위한 과정입니다. 여러 삽질과 구글링 끝에 MSA 실습을 성공하였고, 그 과정에서 생긴 오류와 해결 과정을 공유하기 위해서 이 글을 작성하게 되었습니다. 문제 NestJS 공식 도큐먼트에서 제공..

NestJS 2023.01.31