본문 바로가기
Node js/Nest js

Nest js , MSA 기본 구조 설계

by Bill Lab 2022. 10. 3.
728x90

Nest를 써본지도 언 2년이 넘은듯 한다.

.net core 포함 .net, Java spring 으로 작업을 하다가 

Python(Django), node(express)도여러차례 써볼일이 생겼지만, 

스타트업으로 넘어오면서 Backend 쪽은 node 위에 nest js를 사용하게 될 일이 많아졌다.

 

오늘부터 한동안은 최근 핫한 MSA 구조에 대해 이야기 해보고 Nest 기반으로 어떻게 MSA 를 구축할 것인가를 써보겠다.

아래 사이트는 (Source: https://scalablescripts.com) 에서 구조를 가져온 부분인데 기본을 설명하기 가장 적절해 보여 캡쳐하였다.

 

 

위의 그림대로 Client는 react 든, angular든, vue든 상관이 없다. 

API url이 정해지면 서비스에 맞도록 요청을 진행하면 된다.(admin or main)

도메인별도 route 별로 서버단에서 미리분리하고 Front 단에서는 분리된 url 경로로 호출하면 되는구조이다.

 

흔히 알려진 MSA 구조와는 사뭇 다른 부분이다. 폴리그랏한 형태를 (2개이긴 하지만) 뛰는건 동일한 패턴이지만,

위의 아키로 가기되면 프론트엔드 단에서 Main으로 송수신할지, Admin으로 송수신할지 결정을 해야한다.

(만약, 쪼개지는 Micro Service 가 늘어난다면?? 프론트에서 관리해야할 엔드포인트 수가 많아질 것이고 Auth 처리도 복잡해 질 가능성이 존재한다.)

 

서버단 간 통신에서도 internal api 를 호출할수 있는 api를 추가하고 두개의 backend 서버에 대해 transaction 이 필요한 경우에는 Evnet call 처리를 통한 rabiitMQ등과 같은 MQ 기반의 로직을 사용하면 된다.

 

2편은 다음기회에...

728x90