더북(TheBook)

1.4.3 서비스마다 DB가 따로 있다

마이크로서비스는 서로 느슨하게 결합되어 있고 오직 API를 통해서만 통신합니다. 그런데 이렇게 느슨하게 결합된 서비스는 각각 자체 DB를 갖고 있습니다. 가령 주문 서비스는ORDERS 테이블이 있는 DB를, 고객 서비스는 CUSTOMERS 테이블이 있는 DB를 각자 소유합니다. 이렇게 하면 개발 단계에서 다른 서비스 개발자와 일일이 협의하지 않고도 개발자 본인이 담당한 서비스 스키마를 변경할 수 있습니다. 런타임에 서비스는 서로 완전히 분리되어 있기 때문에, 이를테면 다른 서비스가 DB 락을 획득해 내 서비스를 블로킹(blocking, 차단)하는 일 따위는 일어나지 않습니다.

Note≡ 걱정 말자. 느슨하게 결합한다고 래리 엘리슨(Larry Ellison, 오라클 설립자 겸 CEO)이 벼락 부자가 될 일은 없다

서비스마다 자체 DB를 둔다는 요건은 자체 DB 서버를 설치해야 한다는 것이 아닙니다. 따라서 오라클 RDBMS 라이선스 구매 비용이 10배 상승할 일은 없습니다. 자세한 이야기는 2장에서 다룹니다.

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