본문 바로가기
반응형

소프트웨어 아키텍처 the hard parts10

[MSA] 서비스의 데이터 오너십(소유) 종류와 처리 방법 마이크로서비스에서 일반적으로 테이블에 데이터 쓰는(Write) 서비스가 해당 데이터에 대한 오너십을 가지게 된다. 명확하게 도메인 단위로 데이터 분리가 가능하다면 오너십이 명확해지지만, 여러 서비스가 공동 오너십을 가지는 경우 복잡해지게 된다. 데이터에 대한 오너십의 종류와 처리 및 해결 방법에 대해 알아본다. 아래 내용들은 도서 '소프트웨어 아키텍처 The Hard Parts'를 참조했다.  데이터 오너십(Ownership) 종류1. 단독 오너십- 오직 한 서비만 테이블에 테이터를 쓰는 것- 가장 단순하고 명확하고 직관적이라 관리가 쉽다 2. 공통 오너십- 대부분(많은)의 서비스들이 동일한 테이블에 데이터 쓰기를 하는 경우 - 예를들어, 많은 서비스에서 공통으로 적용되는 Audit 감사 테이블 등이 .. 2024. 8. 10.
[MSA] 코드 재사용 및 공유 패턴 종류 및 장단점 서비스를 구현하면서 공통되는 코드들을 재사용 및 공유하는 방법을 알아보고, 각 패턴들의 장단점을 알아본다. 아래 내용들은 도서 '소프트웨어 아키텍처 The Hard Parts'를 참조했다.  코드 재사용에 수반되는 트레이드오프에 대한 분석없이 무턱대고 사용하면 아키텍처적으로 문제가 될 수 있다. 예를들어, 21초반까지 유행했던 서비스지향 아키텍처(SOA)는 지나친 재사용을 강조하여 현재까지 많은 레거시들이 변경관리와 유지보수 등으로 힘들어한다. 기본적으로 코드 재사용은 추상화를 통해서 발생하지만, 변경 빈도가 낮을 때 가치가 있다. 1. 코드 복제- 코드를 복제해서 각 서비스에 복사해서 사용하는 방법- 코드가 정적이고, 버그 위험성이 없고, 변경이 거의 없는 경우에 적합(ex. 단순 유틸리티, 어노테이션.. 2024. 8. 5.
반응형