Microservice Architecture

김현지·2024년 9월 19일

Monolithic Architecture

모놀리식 아키텍처는 하나의 모듈로 이루어진 시스템을 말하는 용어이다. 모듈이 하나이기 때문에 코드 관리에 용이하고 개발과 배포가 쉽다는 등의 많은 장점이 있다. 하지만 시스템이 점점 거대해질수록 모듈을 빌드하는데에 오래 걸리게 되는데, 작은 변경사항이 생겨도 모듈 전체를 다시 빌드하고 배포해야하는 모놀리식 아키텍처에서는 매우 비효율적이다. 또한 어느 한 부분에 오류가 생기면 전체 시스템이 영향을 받게된다. 그래서 등장한 것이 바로 마이크로서비스 아키텍처이다.

Microservice Architecture

마이크로서비스 아키텍처는 독립적인 작은 서비스들로 이루어진 시스템을 말한다. 각 서비스는 독립적인 데이터베이스를 가지고, 다른 서비스에 영향을 끼치지 않고 독립적으로 개발, 빌드, 배포된다. 그래서 서비스마다 다른 프레임워크나 데이터베이스를 사용하는 것이 가능하여 유연한 시스템을 구축할 수 있고 서비스를 확장하기에도 용이하다.

하지만 마이크로서비스 아키텍처에는 장점만 있는 것이 아니다. 마이크로서비스끼리 서로 통신하면서 여러 데이터베이스에 걸쳐 트랜잭션이 진행되어 데이터의 일관성을 관리하기 힘들다. (다음 글에서 분산 트랜잭션의 두 가지 관리 방법에 대해서 설명한다) 또한 각 서비스마다 생성되는 로그를 중앙집중화하여 관리해야한다.


두 아키텍처 중에 좋고 나쁜 것은 없다. 프로젝트 규모에 따라 더 적합한 아키텍처를 선택하면 된다.

profile
백엔드 개발자😎

0개의 댓글