더북(TheBook)

Y축 확장: 기능에 따라 애플리케이션을 서비스로 분해

X축/Z축 확장을 하면 애플리케이션 능력과 가용성은 개선되지만, 애플리케이션이 점점 더 복잡해지는 문제는 해결되지 않습니다. 따라서 Y축 확장, 즉 기능 분해가 필요합니다(그림 1-6). 모놀리식 애플리케이션을 여러 서비스로 쪼개는 것입니다.

▲ 그림 1-6 Y축 확장은 애플리케이션을 여러 서비스로 나눈다. 각 서비스는 특정 기능을 담당하며 X축/Z축 확장으로 확장된다

서비스는 주문 관리, 고객 관리 등 지엽적 기능이 구현된 미니 애플리케이션입니다. 서비스에 따라 X축/Z축 확장도 가능하죠. 예를 들어 주문 서비스는 여러 서비스 인스턴스를 부하 분산하는 형태로 구성할 수 있습니다.

마이크로서비스 아키텍처는 고수준에서 바라보면 하나의 애플리케이션을 여러 서비스로 기능 분해하는 아키텍처 스타일입니다. 여기서 중요한 것은 크기가 아니라, 각 서비스가 집중된(focused)/응집된(cohesive) 책임을 맡고 있다는 사실입니다. 이 말이 무슨 뜻인지는 뒷부분에서 다시 이야기합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.