내 잡다한 노트
모놀리식 아키텍처와 마이크로서비스 아키텍처의 차이점 본문
앞으로 어떤 글을 읽고 정리, 설명하는 식으로 글을 작성하면 좋을 것 같다는 생각이 든다.
남에게 설명할 수 있을때야 말로 진짜 이해를 할 수 있는지 알 수 있기 때문이다.
면접에서 깨달았다.ㅠ
틀린 부분이 있을 수 있으니 지적해주시면 감사하겠습니다.
모놀리식 아키텍처는 단일 코드베이스에서 여러 서비스가 같이 존재하는 아키텍쳐이다. 그래서 레거시 어플리케이션에서 자주 사용되는 아키텍처이다. 레거시 어플리케이션이 보통 하나의 코드에서 여러 기능들이 다 동작하는 오래된 소프트웨어다보니 모놀리식 아키텍처를 사용한 소프트웨어가 많다.
단일 코드베이스에서 동작하다보니 확장성이 떨어지는 단점이 있다.
또한, 단일 코드베이스에서 작성을 하다보니 코드를 살펴보기도 굉장히 어렵고 복잡하다.
그리고 코드를 수정할 때 모든 코드에 영향을 줄 수 있어 디버깅을 할 때 굉장히 비효율적인 모습을 보여준다.
빌드 및 배포 하는것이 마이크로서비스 아키텍쳐에 비해 느리고 많은 시간이 소요될 수 있다.
마이크로서비스 아키텍처는 여러 서비스가 독립적으로 구성되어 있다. 그리고 각 서비스들은 클라우드 네이티브 애플리케이션으로 사용하기 좋게 컨테이너화가 되어있는게 일반적이다.
컨테이너로 이루어져 있다보니 배포, 자동화가 더 쉽고 빠르다. 또한 필요한 서비스의 컨테이너만 오토스케일 등의 작업을 할 수 있다.
그래서 개발을 진행할 때 각각 따로따로 구현을 진행한뒤 그 서비스들을 긴밀하게 묶는식으로 한다. 각 서비스들의 통신은 API를 통해 통신을 한다.
그러다보니 확장성이 좋아서 추가적인 기술을 사용하기 편하다. 또한 수정하기도 편한데 필요한 서비스에서만 코드를 수정하면 되기 때문이다. 디버깅적인 부분에서는 관련된 서비스에 대한 것들을 다 살펴봐야 할 수 있다.
보통 서비스가 여러개이고 거기에 배정되는 팀들이 다르니 팀들과 소통이 필요해질 수 있다.
이러한 장점이 있지만 모놀리식 보다 더 많은 계획과 설계가 필요하다. 대신 설계만 잘한다면 확장성도 좋고 유연성도 좋다.
참고한 사이트
https://aws.amazon.com/ko/compare/the-difference-between-monolithic-and-microservices-architecture/
'엔지니어링(TA,AA,SA) > 아키텍쳐' 카테고리의 다른 글
3-Tier Architecture of Web Application (0) | 2023.11.09 |
---|