너! Nestjs 폴더를 왜 여러개 만들고 있니?!
그래프뷰엘 MSA는 더 쉽군!
아하! 한 회사에서 다양한 언어를 쓸 수 있구나!
Nestjs 폴더 나누기(DB도 같이 나눠야 함)
어떤 컴퓨터(서비스)로 가는지 알수 없기에 중재해주는 API게이트웨이가 필요하다!(ip주소가 고정되어 있다)
큰규모에 서비스에서는 금액이 비싼 단점이 있지만 감수하고 사용한다!
소스코드 전체를 빌드/배포 하려면 오래 걸림
=> 게시판API 바뀌면게시판 폴더만 다시 배포
에러나서 서버가 죽으면 모든 API가 사용불가능
=> 게시판 죽어도 상품, 로그인 등 나머지는 모두 사용간으
Nestjs 개발자만 뽑아야함
=> 다양한 개발자 채용가능
1.막대한금액
2.전체적인 기술복잡도 증가
따라서, 작은서비스보다 큰 서비스에서 많이 사용
3. 결론: 필수는 아님(필요없는 데 사용하는 것을 오버엔지니어링
이라고 함)
지금까지는 같은 프레임워크, 같은 API 쿼리 언어(Rest-API 또는 GraphQL-API)를 사용했다.그런데 만약 다른 프레임워크 다른 API 쿼리 언어를 사용했다면 어떻게 진행해야 할까?
이때 NginX를 이전에 배웠던 API-Gateway 용도로 사용하면 된다. 이런 방법을 NginX의 Reverse Proxy라고 한다.
예를 들어 해외여행을 갔다는 가정했을 때 직항 비행기가 없어 경유하여 목적지에 가야 한다. 여기서 경유지가 Proxy가 된다. 즉 Proxy 서버란 중계 서버이다.
인가는 Nginx에서 해주는데 그것이 다 해주기 힘든 경우도 있어서 Nginx+를 사용하긴 해야한다.
외부에서 내부 서버가 제공하는 서비스 접근 시, Proxy 서버를 먼저 거쳐서 내부 서버로 들어오는 방식입니다.
Reverse Proxy 사용으로 얻는 장점은 크게 아래와 같습니다.
보안 : 외부 사용자는 실제 내부망에 있는 서버의 존재를 모르게 됩니다. 모든 접속은 Reverse Proxy 서버에게 들어오며, Reverse Proxy는 요청에 맵핑되는 내부 서버의 정보를 알고 요청을 넘겨줍니다. 따라서 내부 서버의 정보를 외부로부터 숨길 수 있습니다.
로드밸런싱 : Proxy 서버가 내부 서버의 정보를 알고 있으므로 로드밸런싱을 통해 부하 여부에 따라 요청을 분배 할 수 있습니다.