Microservices Architecture
MSA 는 서비스를 어느 기준으로 가를 것인가의 결정이다. 도메인 경계, 데이터 소유권, 스케일 패턴, 장애 격리 — 어느 것을 우선하느냐가 경계를 만들고 통신과 데이터를 차례로 결정한다.
MSA 는 서비스를 어느 기준으로 가를 것인가의 결정이다. 도메인 경계, 데이터 소유권, 스케일 패턴, 장애 격리 — 어느 것을 우선하느냐가 경계를 만들고 통신과 데이터를 차례로 결정한다.
ES 와 CQRS 는 시스템의 원본 데이터와 그 표현의 분리를 다룬다. 도입 비용이 시스템 전반에 분산되므로 채택 가치를 명시할 수 있을 때 채택할 만하다고 본다.
분산 트랜잭션은 모놀리스의 단일 ACID 트랜잭션이 분산 환경에서 어떻게 분해되고, 그 조각을 어떻게 재조립하는가의 문제다. 2PC, Saga (Choreography vs Orchestration), Outbox 의 역할과 트레이드오프.
코드를 기술 계층별로 나누는 수평 분할과, 기능/도메인별로 나누는 수직 분할의 차이를 정리한다. 각각의 장단점과 선택 기준.
레이어드 아키텍처는 기술적 책임 기준으로 코드를 수평 계층으로 나눈다. 4계층 구조의 각 역할, 의존성 방향 규칙, DIP로 계층 간 결합을 끊는 방법을 정리한다.
Hexagonal Architecture의 핵심 개념과 Go에서의 관용적 구현. 암묵적 인터페이스와 패키지 구조를 활용한 의존성 방향 제어.