본문 바로가기
Infra & Tools/CI & CD

모놀리스와 마이크로서비스

by 깐니 2022. 6. 2.


소프트웨어 아키텍처 패턴.

모놀리스 (Monolith) 아키텍처


모놀리스 아키텍처란 하나의 소프트웨어를 구성하는 모든 모듈을 한 프로젝트에서 관리함.


→ 한 프로젝트 내에 모든 모듈과 코드가 있음
→ 소프트웨어가 비규적 단순
→ 그러나, 애플리케이션 코드가 많아지고 서비스가 확장되면 전체 구조나 코드 흐름을 쉽게 이해하기 어려움.

한 프로젝트 내에 있는 코드이므로, 모든 코드가 결합되어 있기 때문에 사이드 이펙트가 일어날 수 있음.

⇒ 모놀리스 아키텍처는 하나의 소프트웨어를 하나의 프로젝트로 개발하는 아키텍처임.





마이크로서비스 아키텍처


마이크로 서비스는 하나의 소프트웨어를 구성하는 컴포넌트들을 독립적인 프로젝트들로 분리하여 관리함.

→ 각각의 컴포넌트들을 마이크로 서비스라고함.
→ 개발과 배포도 분리된 마이크로 서비스 단위로 진행함.
따라서, 하나의 소프트웨어가 정상 동작하기 위해서는 각각의 마이크로 서비스가 모두 정상 동작해야함.

→ 소프트웨어가 커지고 복잡해질 때 필요함.

예를 들어,
사용자 관련 도메인, 상품 관련 도메인, 결제 관련 도메인으로 되어있는 프로젝트인 경우,
세가지 도메인은 각각 다른 프로젝트에서 개발, 배포됨.
세 서버는 필요한 경우 서로 HTTP 통신하며 협력하는 방식으로 사용자에게 최종 기능을 제공함.
→ 각 마이크로 서비스별로 프로그래밍 언어나 데이터베이스를 따로 사용하는 등 기술 스택을 더 자유롭게 가져갈 수 있음.

⇒ 마이크로서비스 아키텍처는 하나의 소프트웨어를 여러 독립된 프로젝트로 나누어 개발하는 아키텍처임.

'Infra & Tools > CI & CD' 카테고리의 다른 글

배포란 ?  (0) 2022.06.02
가상화 기술과 도커  (0) 2022.06.02
CI & CD 에 대해 알아보자.  (0) 2020.07.26