1. 마이크로서비스 소개

마이크로서비스가 제공하는 확장성, 유연성, 독립적 배포성과 함께 다양한 단점은 적절한 도구로 쉽게해결할 수 있기에 인기가 높아진다. 그 과저에서 보편적인 클라우드 기반 환경의 발달과 NoSQL의 등장은 이러한 흐름을 동조하였다.

IT 시스템 아키텍처 접근 방식 중 하나로 비즈니스 요구서항의 구현을 여러 애플리케이션으로 느슨하게 연결시키는 것으로 서비스 기반 아키텍처(SOA)의 다른 형태이다.

장점

이해가 쉽다.

마이크로서비스의 소스 코드 규모는 상대적으로 작아서 프로젝트에 새로 참여하는 개발자가 이해하기 쉽다. 주로 마이크로서비스에서는 하나의 비즈니스 영역만 구현하기 때문에 좀 더 다른 코드의 변화가 다른 서비스에 영향을 끼치지 않는다.

분리로 인한 책임

잘 설계된 마이크로서비스는 비즈니스 영역에 대한 책임을 지기 때문에 분리가 잘 되어 불필요한 시스템 생성을 방지한다.

주로 복잡한 엔터프라이즈 시스템을 다루는 경우 서브 시스템에 따라 시스템을 나누게 된다. ~~예를 들어 통신 관련 조직에는 청구 시스템이 존재하기에 이러한 청구의 복잡성을 감추며 API를 제공하는 서브 시스템을 생성한다. 다만, 청구 시스템의 사용자 정의가 어려워 필요한 데이터를 저장하기 어렵기에 새로운 하위 시스템을 만들게 된다. ~~