요새 구인 글을 보다보면 우대사항에 MSA 에 대한 경험 유무를 많이 물어보는 것 같다. 그래서 MSA가 무엇인지 알아보고 왜 중요한지에 알아보는 시간을 가지고자 합니다.
Microservice Architecture의 줄임말로써 소프트웨어 개발 기법입니다.
Monolithic
개발 기법과는 다르게 작고, 독립적으로 배포 가능한 각각의 기능을 수행하는 서비스들로 구성된 프레임워크가 MSA 입니다.
여러 개의 서비스를 조합하여 애플리케이션을 구현함으로 서비스마다 데이터베이스를 가지고 동작하기 때문에 개발부터 빌드, 배포까지 효율적으로 수행할 수 있습니다.
MSA가 유행하기 이전 애플리케이션은 Monolithic
방식으로 배포가 되었습니다. 하지만 이 방식은 일부 서비스의 오류가 발생될 때 전체 시스템을 중단하고 해결해야하는 일이 빈번하였습니다. 위의 문제를 해결하기 위해서 MSA
라는 방식이 도입되기 시작하였으며, 개별적인 서비스의 오류가 생기더라도 전체 시스템을 중단하지 않아도 됩니다.
앞 서 Monolithic 기법에 대해 언급하였는데, 좀 더 자세히 알아보고 넘어가도록 하겠습니다.
Monolithic은 소프트웨어의 모든 구성 요소가 한 프로제그에 동합되어 있는 형태이며, 모듈 별로 개발을 하고 이를 하나의 결과물로 패키징하여 배포하는 형태를 뜻합니다.
그렇다면 MSA에는 장점만 있는 것일까요? 이번에는 MSA의 장단점을 보도록 하겠습니다.
참고: https://www.redhat.com/ko/topics/microservices/what-are-microservices