MicroService Architecture

조성민·2022년 8월 20일
0

API

목록 보기
3/5

보통 혼자서 연습용으로 개발하거나 규모가 작은 개발은 로그인, 파일 업로드, 결제 등 역할별로 개발하고, 개발이 완료되면 한 곳에 묶어서 배포합니다. 단순하고 편리하지만 기능들이 같이 있기 때문에 하나의 기능이 망가지면 다른 부분에도 영향을 미치게 됩니다. 서비스가 점점 커지면 하나의 프로젝트로 묶는 것이 점점 어려워지고 복잡해지게 됩니다. 그래서 나온 것이 마이크로서비스 아키텍처 입니다.

nestjs로 이해하기 쉽게 간단히 예를 들자면

  1. 하나의 nestjs 폴더 안에 api들을 3개의 nestjs 폴더(각각 컴퓨터 하나)로 나눔
    각각 yarn start:dev로 실행 => 각각 db를 갖게 됨

  2. 브라우저에서 이제 어느 api로 갈지 정해주기 위해 중간부분에 api게이트웨이 nestjs 폴더 하나 추가 ( reverse proxy ), 이 api는 주소를 보고 판단 후 api로 보냄

예시만 봐도 컴퓨터가 7대가 필요하게 되는데 장점이 무엇일까요?

1. 소스코드 전체를 빌드/배포 하려면 오래 걸림

ㄴ API중에 하나를 수정하려면 다 끄고 다시 다 켜야하는 불편함 해결
ㄴ 특정 API가 바뀌면 특정 API만 다시 빌드/배포 하면 됨

2. 에러나서 서버가 죽으면 모든 API 사용 불가능

ㄴ 특정 API가 죽어도 나머지 API는 정상 작동

3. Nestjs 개발자만 뽑아야함

ㄴ 각각의 API를 다른 언어로 만들 수 있게 됨
ㄴ 유능한 다른 언어를 쓰는 개발자도 뽑을 수 있게 됨

단, 서비스의 규모가 어느정도 클 때 해당하는 얘기입니다.

단점.
전체적인 기술 복잡도 증가 ( 여러개의 언어, 등 )

profile
풀리면 재밌는 알고리즘

0개의 댓글