====== 마이크로 서비스 아키텍처 (MSA) ====== ===== MSA 적용 시 고려사항 ===== 디자인 패턴으로 유명한 Martin Fowler는 모놀리식으로 관리하기에 특별히 복잡한 시스템을 운영할 상황이 아니면 마이크로 서비스 도입을 고려하지 말 것을 강조 하고 있다.\\ 시스템 복잡도 단계 따라 아키텍처 선택 시 개발 생산성에 크게 영향을 받을 수 있기 때문이다.\\ 특히 SW엔지니어에게는 개발, 운영에 관한 다양한 스킬셋과 해결 방안뿐 아니라 단일 서비스가 아닌, 전체 동작에 대한 이해까지 요구될 수 있기 때문에 더욱 신중을 기하여 아키텍처를 선정해야 한다. {{:egovframework:msa:msa_productivity.png?600|시스템 복잡도와 아키텍처}} 마이크로서비스 기반 애플리케이션을 도입 시 다음 사항들을 고려해 볼 필요가 있다. * MSA를 도입할 경우 비용을 얼마나 절감할 수 있는가? * 마이크로서비스를 요구할 만큼 시스템 복잡도가 높은가? 또는 복잡도를 지나치게 높인 마이크로서비스가 생산성을 저해하고 있지는 않은가? * 개발팀에게 개발과 운영을 동시에 요구할 만큼 인프라가 준비되어 있는가? ===== 참고자료 ===== * [[https://martinfowler.com/bliki/MicroservicePremium.html|MicroservicePremium by Martin Fowler]] * [[https://www.samsungsds.com/global/ko/support/insights/msa.html|마이크로서비스 아키텍처가 꼭 필요한가요? ]]