ddd
-
소프트웨어 아키텍처 시리즈 16화 – 마이크로서비스 경계 설계와 바운디드 컨텍스트 적용 전략기술과 산업/아키텍처 2025. 8. 14. 17:20
마이크로서비스 아키텍처에서 경계 설계는 성공과 실패를 가르는 핵심 요소입니다. 이번 글에서는 DDD의 바운디드 컨텍스트 개념을 기반으로, 서비스 경계를 올바르게 설정하는 실전 전략을 소개합니다. 왜 경계 설계가 중요한가? 마이크로서비스의 핵심은 작고 독립적인 서비스입니다.하지만 “작다”는 것은 단순히 코드 라인이 적다는 뜻이 아니라, 명확한 비즈니스 책임을 가진다는 의미입니다. 잘못된 경계 설계는 다음과 같은 문제를 만듭니다: 서비스 간 데이터 공유와 의존성이 과도하게 발생배포/변경이 다른 서비스에 파급마이크로서비스가 오히려 “분산 모놀리식”으로 변질 바운디드 컨텍스트(Bounded Context)란? DDD에서 바운디드 컨텍스트는 특정 도메인 모델이 유효하게 적용되는 경계를 의미합니다. 각 컨텍스트..
-
소프트웨어 아키텍처 시리즈 12화 – 이벤트 소싱의 개념과 도입 시 고려사항기술과 산업/아키텍처 2025. 6. 27. 13:02
도메인 주도 설계 이후, 이벤트 기반 아키텍처로 확장 지난 회차에서 도메인 주도 설계(DDD)를 중심으로 도메인 로직을 어떻게 구조화할 수 있는지 살펴봤습니다. 이번에는 그 연장선에서, 최근 아키텍처 설계 시 자주 등장하는 이벤트 소싱(Event Sourcing) 개념과 이를 도입할 때 반드시 고려해야 할 실무 포인트를 살펴보려 합니다. 이벤트 소싱은 단순한 ‘데이터 저장 방식’이 아닙니다. 도메인의 상태를 ‘이벤트의 흐름’으로 저장하고 해석하는 새로운 접근 방식이며, 복잡한 업무 로직이 존재하는 시스템에서 특히 큰 장점을 가집니다. 이벤트 소싱이란? 이벤트 소싱은 기존의 CRUD 모델처럼 데이터베이스에 현재 상태만 저장하는 것이 아니라, 모든 상태 변화를 이벤트 단위로 기록하는 방식입니다. 즉, 도메인..
-
소프트웨어 아키텍처 시리즈 9화 – 헥사고날 아키텍처와 DDD의 통합 전략: 아키텍처와 도메인이 만나는 지점기술과 산업/아키텍처 2025. 6. 5. 12:41
헥사고날 아키텍처와 도메인 주도 설계(DDD)는 설계 철학과 기술적 구현에서 밀접하게 연결됩니다. 이 글에서는 두 개념이 어떻게 만나고, 실제 아키텍처에서 어떤 방식으로 통합될 수 있는지를 실무 사례 중심으로 설명합니다. 왜 DDD와 헥사고날 아키텍처는 궁합이 좋을까? 이유는 간단합니다.두 구조 모두 ‘도메인’을 중심에 두고, 외부 기술 요소들을 경계 밖으로 밀어내는 철학을 공유하기 때문입니다.개념핵심 가치DDD도메인을 현실 모델에 가깝게 표현하고, 유비쿼터스 언어로 통합헥사고날 아키텍처도메인을 외부 기술로부터 분리하고, 포트/어댑터로 유연성 확보즉, DDD는 도메인의 ‘내용’을 다루고,헥사고날은 도메인의 ‘위치’와 ‘연결 방식’을 다루는 구조적 틀이라고 보면 됩니다. 통합 구조: 계층 vs 동심원 v..
-
소프트웨어 아키텍처 시리즈 3화 – 레이어드 아키텍처의 구조와 실제 적용 방식기술과 산업/아키텍처 2025. 5. 28. 14:54
레이어드 아키텍처는 가장 널리 사용되는 소프트웨어 구조 중 하나입니다. 그 기본 개념부터 실제 프로젝트에서 어떻게 구현되고, 어떤 한계를 갖는지까지 실무 중심으로 정리해봅니다.레이어드 아키텍처란 무엇인가?레이어드 아키텍처(Layered Architecture)는 소프트웨어를 **기능적으로 구분된 계층(Layer)**으로 나누어 각 계층이 자신의 역할만을 책임지는 구조입니다. 아래와 같은 전형적인 계층 구성이 자주 등장합니다:Presentation Layer (프레젠테이션, UI 계층)사용자 인터페이스 또는 API 엔드포인트Application Layer (애플리케이션 계층)비즈니스 흐름 제어 및 유스케이스 처리Domain Layer (도메인 계층)비즈니스 규칙, 핵심 로직 (종종 Application과 ..