더북(TheBook)

2.1.1 비즈니스 문제의 분해

대부분의 사람은 복잡한 문제를 접하면 다룰 수 있는 크기의 덩이(chunks)로 분해하려고 한다. 이렇게 하면 문제의 세부 사항을 모두 기억하지 않아도 된다. 또 사람들은 문제를 추상화해 핵심 부분으로 나누고 이 부분들 사이에 존재하는 관계를 찾는다.

마이크로서비스 아키텍처에서 아키텍트는 비즈니스 문제를 각 활동 영역을 대표하는 덩이들로 분해하고, 비즈니스 영역의 특정 부분과 연관된 비즈니스 규칙과 데이터 로직을 이 덩이들 안에 캡슐화한다.

마이크로서비스가 단일 트랜잭션을 수행하기 위한 모든 비즈니스 규칙을 캡슐화하길 원하더라도 항상 실현 가능한 것은 아니다. 한 트랜잭션 전체를 완료하기 위해 비즈니스 영역의 다양한 부분과 동작하는 마이크로서비스가 필요한 상황을 자주 겪는다. 아키텍트는 데이터 영역이 서로 어울리지 않는다면 마이크로서비스들의 서비스 경계를 나눈다.

예를 들어 아키텍트는 코드가 수행할 비즈니스 흐름(business flow)을 보고 고객 및 제품 정보가 필요하다는 것을 알 수 있다. 이러한 2개의 개별 데이터 영역이 있다는 것은 여러 마이크로서비스의 출현을 암시한다. 2개의 다른 비즈니스 트랜잭션 부분이 교류하는 방식이 일반적으로 마이크로서비스의 서비스 인터페이스가 된다.

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