업데이트:

모놀리식 아키텍처

: 소프트웨어 프로그램의 전통적인 모델

모든 코드가 한 곳에 통합 되어있는 형태로 내부 요소 간의 의존성이 강하다.

장점


→ 배포

실행 파일이나 디렉토리가 하나이기에, 배포하기 쉽다.

→ 쉬운 개발

→ 성능

하나의 API로 여러 API가 수행하는 것과 동일한 기능을 수행할 수 있다.

→ end-to-end 테스트 용이

분산된 애플리케이션보다 테스트를 빠르게 수행할 수 있다.

→ 간편한 디버깅

코드가 한 곳에 모여있어, 문제점을 찾기 쉽다.

단점


→ 느린 개발 속도

규모가 커질수록 개발하기 복잡해지고 속도도 느려진다.

→ 확장성

→ 안정성

하나의 오류가 전체에 영향을 끼친다.

→ 기술 채택의 장벽

프레임워크나 언어를 변경하기 까다롭다.

→ 유연성 부족

→ 배포

조금만 변경하더라도 전체 애플리케이션을 다시 배포해야 한다.

마이크로서비스 아키텍처

: 하나의 애플리케이션을 여러 개의 작은 애플리케이션으로 쪼개어 변경, 조합이 가능하게 만든 아키텍처

작업이 독립적으로 작동하고 관리하기 쉽다.

장점


→ 애자일 작업 방식

💡 애자일? Agile, 날렵한이란 뜻으로 일정한 주기를 갖고 계속 검토해 나가며 필요할 때마다 요구사항을 더하고 수정하여 개발해나가는 프로세스 모델 방식

→ 유연한 확장

→ 지속적 배포

→ 높은 유지 관리성, 테스트 편의성

→ 독립적 배포 가능

→ 기술 유연성

원하는 기술이나 도구를 자유롭게 선택할 수 있다.

→ 높은 안정성

서비스의 중단 없이, 특정 서비스에 대한 변경 사항을 배포할 수 있다.

→ 높은 팀의 만족도

승인을 기다릴 필요 없이 직접 구축하고 배포할 수 있기 때문에 더 자율적인 팀이 된다.

단점


→ 무분별한 개발 확산

데이터가 여러 곳에 분산되어 있어 한번에 조회하거나 관리하기 어렵다.

→ 기하급수적인 인프라 비용

테스트, 배포, 호스팅, 모니터링 등 많은 비용이 발생할 수 있다.

→ 조직 오버헤드 추가

→ 디버깅 문제

여러 시스템에서 하나의 프로세스가 실행되므로 디버깅이 복잡하다.

→ 표준화 부족

댓글남기기