Micro Services Design 의 장단점?

hyun·2023년 3월 6일
0

AWS_SA 면접

목록 보기
5/9

Micro Services Design은 소프트웨어를 구축하기 위한 아키텍처 및 조직적 접근 방식으로, 애플리케이션을 상호 독립적인 최소 구성 요소로 분할하는 것입니다. 이러한 구성 요소는 잘 정의된 API를 통해 통신하며, 각각 독립적으로 배포 및 확장할 수 있습니다.

Micro Services Design의 장점은 다음과 같습니다

  • 민첩성: 마이크로 서비스는 독립적으로 배포되기 때문에 버그 수정 및 기능 릴리스를 관리하기가 더 쉽습니다. 또한 한 기능 팀에서 충분히 구축, 테스트 및 배포할 수 있어 협업과 소통이 원활해집니다.
  • 기술의 혼합: 마이크로 서비스는 각각 다른 프로그래밍 언어나 프레임워크를 사용할 수 있기 때문에 최적의 기술을 선택하고 적용할 수 있습니다. 또한 새로운 기술을 시도하거나 교체하기도 용이합니다.
  • 결함 격리: 마이크로 서비스는 하나가 실패해도 다른 서비스에 영향을 주지 않기 때문에 전체 애플리케이션의 가용성과 안정성을 높일 수 있습니다. 또한 장애 복구 시간도 단축됩니다.
  • 확장성: 마이크로 서비스는 각각 개별적으로 확장할 수 있기 때문에 자원의 낭비를 줄이고 성능을 향상시킬 수 있습니다. 또한 클라우드 환경과 잘 어울리며 자동화된 배포와 모니터링을 지원합니다.

Micro Services Design의 단점은 다음과 같습니다

  • 복잡성: 마이크로 서비스는 많은 수의 작은 서비스로 구성되기 때문에 관리하고 조정하는데 어려움이 있을 수 있습니다. 또한 서비스 간의 의존성과 통신을 정확하게 설계하고 유지해야 합니다.
  • 데이터 일관성: 마이크로 서비스는 각각 자신만의 데이터베이스를 가질 수 있기 때문에 데이터 일관성을 보장하기 위해 추가적인 로직과 동기화가 필요합니다. 또한 분산 트랜잭션 처리와 같은 복잡한 문제들도 발생할 수 있습니다.
  • 테스트와 디버깅: 마이크로 서비스는 여러 개의 독립적인 컴포넌트들로 이루어져 있기 때문에 전체 시스템을 테스트하고 디버깅하는데 어려움이 있을 수 있습니다. 또한 모든 서비스들의 버전 호환성과 상호 작용도 확인해야 합니다.

Micro Services Design은 애플리케이션 개발에 유연함과 확장성을 제공하지만, 동시에 복잡함과 오버헤드도 증가시킬 수 있기 때문에 잘 고려하고 적용해야 합니다.

0개의 댓글