Microservice

이예음·2022년 10월 24일
0
post-thumbnail

Monolithic Architecture란?

나는 지금까지 여러 작고 중요한 모듈들이 합쳐진 하나의 거대한 프로젝트를 만들고 있었다. 로그인, 파일 업로드, 결제 등 필요한 역할별로 개발을 하고, 개발이 완료되면 하나로 묶어서 배포했었는데 이걸 모놀리식 아키텍쳐라고 한다.

출처

모놀리식 아키텍쳐의 단점

하나의 프로젝트를 개발하고 테스트하고 빌드하기 때문에 단순하다. 하지만, 여러 모듈들이 함께 있기 때문에 작은 부분에 문제가 생겨도 다른 부분에 영향을 준다. 예를 들어 파일 업로드 기능 때문에 서버에 문제가 생겼는데, 이로 인해 로그인도 안되고, 모든 기능이 엉켜버리는 문제가 발생할 수 있다.

서비스가 점점 커질경우 하나의 프로젝트로 함께 묶는것이 점점 버거워지고 복잡해지게 된다.

Microservice란?

이름에서 알 수 있듯이 한 프로젝트를 여러 작은 서비스로 분리하여 개발하고 운영, 배포하는 방법

위에 모놀리식 아키텍쳐의 단점을 해결하기 위해 나왔다.

여러 모듈로 분리했기 때문에 팀별로 독립적으로 개발할 수 있게 된다.

또한 서비스 운영시, 만나게 되는 장애로부터 조금은 더 자유로워 질 수 있다. 기존 모놀리식 구조에서는 장애 발생시 서버가 죽게 되면 모든 API가 사용 불가능했지만, 마이크로서비스로 분리하게 되면 어떠한 기능에 장애가 생겨도 해당 API만 사용이 불가능하고, 다른 기능에는 문제없이 서비스를 운영할 수 있게 된다.

주의할 점

전체적인 기술 복잡도가 증가 할 수 있으므로 이를 잘 판단하여 서비스의 구조를 결정해야 한다.

profile
응애

0개의 댓글