More
Сhoose
Head Office

경기도 성남시 수정구 위례서일로 6 우대빌딩 2층 로이드케이 (우) 13647

Contact Us

궁금한게 있으신가요? sales@lloydk.co.kr

사내 POC에 어울리는 아키텍처 선택

Publication cover
Category:  ARTICLE
Date:  2024.08.05

Written by @Aru Lee

MSA vs 모놀리식 아키텍처



안녕하세요, POC(Proof of Concept) 프로젝트에 적합한 아키텍처 선택에 대해 이야기해보려고 합니다. POC는 새로운 아이디어나 기술이 실현 가능한지를 검증하는 단계로, 이 과정에서 올바른 아키텍처를 선택하는 것은 매우 중요합니다.
이번 글에서는 MSA(Microservices Architecture)와 모놀리식 아키텍처(Monolithic Architecture)를 비교하여, 사내 POC에 어떤 아키텍처가 더 적합한지 알아보겠습니다.



MSA (Microservices Architecture)


MSA는 현대 소프트웨어 개발에서 주목받고 있는 아키텍처로, 많은 기업들이 이를 도입하고 있습니다.
MSA 아키텍처의 장점을 살펴보겠습니다.

1. 확장성 (세분화된 확장과 효율적인 자원 관리)


MSA에서는 각 서비스가 독립적으로 운영되기 때문에, 특정 서비스에만 리소스를 집중할 수 있습니다. 예를 들어, 트래픽이 많은 주문 처리 서비스만 확장하여 더 많은 인스턴스를 실행할 수 있습니다. 이는 모놀리식 아키텍처와 달리 전체 애플리케이션을 확장할 필요가 없음을 의미합니다. 또한 서비스별로 필요한 만큼의 자원만 할당할 수 있어 자원 관리가 효율적입니다. CPU나 메모리 사용량이 높은 서비스만 확장하여 불필요한 자원 낭비를 줄일 수 있습니다.

2. 유연성 (다양한 기술 스택 사용과 독립적인 배포 주기)


각 마이크로서비스는 독립적으로 개발, 배포되기 때문에 서로 다른 프로그래밍 언어, 프레임워크, 데이터베이스를 사용할 수 있습니다. 이를 통해 각 서비스에 최적화된 기술을 선택할 수 있으며, 기술 진화에 빠르게 대응할 수 있으며 독립적으로 배포하여 특정 서비스에 변경 사항이 있을 때 해당 서비스만 배포하면 됩니다. 이는 배포 주기를 단축시키고, 빠른 피드백 루프를 가능하게 합니다.

3. 독립적인 배포 (장애 격리와 빠른 배포와 롤백)


각 서비스가 독립적으로 운영되기 때문에 한 서비스의 장애가 전체 시스템에 영향을 미치지 않습니다. 이는 시스템의 안정성을 높여줍니다. 또한 서비스별로 배포가 독립적이기 때문에, 새로운 기능을 빠르게 배포할 수 있으며, 문제가 발생할 경우 해당 서비스만 롤백하면 됩니다. 이는 배포의 위험을 줄이고, 서비스 가용성을 높입니다.




모놀리식 아키텍처 (Monolithic Architecture)


모놀리식 아키텍처는 전통적으로 널리 사용되어 온 소프트웨어 아키텍처로, 특히 초기 개발 단계에서 많은 장점을 가지고 있습니다.

1. 단순성 (세분화된 확장과 효율적인 자원 관리)


모놀리식 애플리케이션은 하나의 코드베이스로 구성되어 있어 전체 시스템을 이해하고 관리하기가 상대적으로 쉽습니다. 모든 기능이 단일 프로젝트 내에 존재하기 때문에, 개발자는 코드 구조를 쉽게 파악할 수 있습니다. 이는 특히 소규모 팀이나 단순한 프로젝트에서 큰 장점으로 작용합니다.
모놀리식 아키텍처에서는 단일 빌드 및 배포 파이프라인을 설정하면 되기 때문에 초기 설정이 간편합니다. 모든 코드가 하나의 코드베이스에 존재하므로, 개발 환경을 설정하고 빌드하는 과정이 비교적 단순합니다.

2. 성능 (최적화된 통신과 데이터 일관성 유지)


모놀리식 아키텍처에서는 애플리케이션 내의 모든 구성 요소가 동일한 메모리 공간에서 실행되기 때문에, 함수 호출과 같은 로컬 통신이 매우 빠릅니다. 이는 네트워크 통신을 필요로 하는 마이크로서비스 아키텍처에 비해 성능 상의 이점을 제공합니다.
또한 단일 데이터베이스를 사용하기 때문에 데이터 일관성을 유지하는 것이 상대적으로 쉽습니다. 트랜잭션 관리가 간단하며, 데이터 일관성을 보장하기 위한 추가적인 노력이 필요하지 않습니다.

3. 초기 비용 절감 (빠른 초기 개발과 낮은 인프라 비용)


모놀리식 아키텍처는 초기 개발이 빠릅니다. 모든 기능을 하나의 프로젝트에서 시작할 수 있기 때문에, 초기 설정과 개발 속도가 빠르며, 빠르게 결과물을 도출할 수 있습니다.
단일 애플리케이션으로 운영되기 때문에 초기 인프라 비용이 낮습니다. 별도의 서비스 디스커버리, API 게이트웨이, 분산 트레이싱 등의 복잡한 인프라를 도입할 필요가 없습니다.




정리


간단히 정리하자면, 다음과 같습니다.

MSA (Microservices Architecture)


MSA는 그 유연성과 확장성 덕분에 많은 기업들이 채택하고 있는 아키텍처입니다. 독립적인 배포와 장애 격리, 다양한 기술 스택 사용 등의 장점을 통해 빠르게 변화하는 비즈니스 환경에 효과적으로 대응할 수 있지만 복잡한 서비스 간 통신, 데이터 일관성 관리, 운영 부담, 테스트 어려움, 초기 도입 비용, 네트워크 부하 등 여러 측면에서 추가적인 노력이 필요합니다.

모놀리식 아키텍처 (Monolithic Architecture)


모놀리식 아키텍처는 초기 개발 단계에서 단순성과 효율성을 제공하며, 특히 소규모 프로젝트나 단순한 애플리케이션에서 큰 장점을 가집니다. 하지만, 시간이 지남에 따라 확장성, 유연성, 배포, 개발 속도, 유지보수, 기술 부채 등의 여러 가지 문제를 초래할 수 있습니다.




결론


현재 사내 POC단계에서 MSA를 선택하는 것은 단기적으로는 초기 설정과 운영의 복잡성이 있을 수 있지만, 추후 개발을 위하여 유연성과 확장성이 중요하고 특히, 프로젝트가 성공하여 더 큰 규모로 확장될 가능성이 있는 경우, MSA는 그 잠재력을 최대한 발휘할 수 있는 아키텍처입니다.

또한 독립적인 배포 및 개발을 통해 추후 다른 POC프로젝트에서도 재사용을 할 수 있어 개발 시간을 단축할 수 있는 MSA가 POC에 더 적합하다는 결론에 도달했습니다. 팀의 역량과 프로젝트의 특성을 잘 고려하여, MSA를 통해 성공적인 POC를 완수하고, 향후 프로젝트의 안정적이고 효율적인 운영을 기대할 수 있습니다.


Tags: MSA, Monolithic Architecture, 모놀리식 아키텍처, PoC, Proof of Concept, 로이드케이, DO
Looking to quantum jump your business?
We'll help you turn your project into a success story.

성공적인 데이터 운영을 위한
완벽한 파트너와 함께하세요.