[파이썬 플라스크] 모놀리식 아키텍처 & 마이크로서비스 아키텍처
업데이트:
모놀리식 아키텍처
: 소프트웨어 프로그램의 전통적인 모델
모든 코드가 한 곳에 통합 되어있는 형태로 내부 요소 간의 의존성이 강하다.
장점
→ 배포
실행 파일이나 디렉토리가 하나이기에, 배포하기 쉽다.
→ 쉬운 개발
→ 성능
하나의 API로 여러 API가 수행하는 것과 동일한 기능을 수행할 수 있다.
→ end-to-end 테스트 용이
분산된 애플리케이션보다 테스트를 빠르게 수행할 수 있다.
→ 간편한 디버깅
코드가 한 곳에 모여있어, 문제점을 찾기 쉽다.
단점
→ 느린 개발 속도
규모가 커질수록 개발하기 복잡해지고 속도도 느려진다.
→ 확장성
→ 안정성
하나의 오류가 전체에 영향을 끼친다.
→ 기술 채택의 장벽
프레임워크나 언어를 변경하기 까다롭다.
→ 유연성 부족
→ 배포
조금만 변경하더라도 전체 애플리케이션을 다시 배포해야 한다.
마이크로서비스 아키텍처
: 하나의 애플리케이션을 여러 개의 작은 애플리케이션으로 쪼개어 변경, 조합이 가능하게 만든 아키텍처
작업이 독립적으로 작동하고 관리하기 쉽다.
장점
→ 애자일 작업 방식
💡 애자일? Agile, 날렵한이란 뜻으로 일정한 주기를 갖고 계속 검토해 나가며 필요할 때마다 요구사항을 더하고 수정하여 개발해나가는 프로세스 모델 방식
→ 유연한 확장
→ 지속적 배포
→ 높은 유지 관리성, 테스트 편의성
→ 독립적 배포 가능
→ 기술 유연성
원하는 기술이나 도구를 자유롭게 선택할 수 있다.
→ 높은 안정성
서비스의 중단 없이, 특정 서비스에 대한 변경 사항을 배포할 수 있다.
→ 높은 팀의 만족도
승인을 기다릴 필요 없이 직접 구축하고 배포할 수 있기 때문에 더 자율적인 팀이 된다.
단점
→ 무분별한 개발 확산
데이터가 여러 곳에 분산되어 있어 한번에 조회하거나 관리하기 어렵다.
→ 기하급수적인 인프라 비용
테스트, 배포, 호스팅, 모니터링 등 많은 비용이 발생할 수 있다.
→ 조직 오버헤드 추가
→ 디버깅 문제
여러 시스템에서 하나의 프로세스가 실행되므로 디버깅이 복잡하다.
댓글남기기