오늘의 공부 👍
오늘은 Microservice에 대해서 알아보겠다.
📝 Microservice
- Nestjs 폴더를 여러개 나누기 (DB도 같이 나눠야함)
▷ 모놀리식 아키텍처(Monolithic Architecture)
출처: https://www.nginx.com/blog/introduction-to-microservices/
- 로그인, 파일 업로드, 결제 등 필요한 역할별로 개발을 하고, 개발이 완료되면 하나로 묶어서 배포한다.
- 하나의 프로젝트를 개발하고 테스트하고 빌드하기 때문에 단순하다.
- 단점
- 한 기능이 문제가 생기면 모든 기능이 엉켜버리는 문제가 발생할 수 있다.
- 서비스가 점점 커질경우 하나의 프로젝트로 함께 묶는것이 점점 버거워지고 복잡해지게 된다.
- 소스코드 전체를 빌드/배포 하려면 오래 걸린다.
- ex) 게시판 API가 바뀌면 모든 소스코드를 다시 빌드/배포 해야한다.
- 개발자를 채용하는 데 한정적이다. (NestJS이면 NestJS 개발자만 채용 해야함)
▷ 마이크로서비스 아키텍처(Microservice Architecture)
모놀리식 아키텍처의 단점을 보완하기 위해 나온 것이 마이크로서비스 아키텍처(Microservice Architecture)다.
출처: https://www.nginx.com/blog/introduction-to-microservices/
- 한 프로젝트를 여러 작은 서비스로 분리하여 개발하고 운영, 배포하는 방법이다.
- 여러 모듈로 분리했기 때문에 팀별로 독립적으로 개발할 수 있다.
- 서비스 운영시, 만나게 되는 장애로부터 조금은 더 자유로워 질 수 있다.
- 어떠한 기능에 장애가 생겨도 해당 API만 사용이 불가능하고, 다른 기능에는 문제없이 서비스를 운영할 수 있게 된다.
- 단점
전체적인 기술 복잡도가 증가한다. (작은 서비스보다 큰 서비스에서 많이 사용)
출처 및 참고
코드캠프