Featured image of post [OOAD] 13. 도메인 주도 설계(DDD)의 핵심 개념

[OOAD] 13. 도메인 주도 설계(DDD)의 핵심 개념

DDD는 새로운 패턴 모음이 아니라 '복잡한 도메인 로직을 어디에 둘 것인가'라는 질문에 대한 답입니다. 유비쿼터스 언어와 모델 주도 설계로 Phase 4의 4개 장이 다룰 전술 패턴 빌딩 블록의 전체 지도를 그립니다.

Featured image of post [OOAD] 14. 전략적 설계: 바운디드 컨텍스트

[OOAD] 14. 전략적 설계: 바운디드 컨텍스트

'주문'이라는 단어가 팀마다 다른 뜻이면, 하나의 모델로 억지로 통일하려는 시도 자체가 버그의 원인이 됩니다. 바운디드 컨텍스트로 모델의 경계를 정하고, 컨텍스트 맵으로 팀 간 관계를 명시적으로 표현하는 방법을 다룹니다.

Featured image of post [OOAD] 15. 전술적 설계: 엔티티와 밸류 오브젝트

[OOAD] 15. 전술적 설계: 엔티티와 밸류 오브젝트

엔티티와 밸류 오브젝트의 차이는 클래스 이름이 아니라 '동일성을 무엇으로 판단하는가'입니다. 식별자 기반 동일성과 구조적 동일성, 불변 객체 설계와 자가 검증 원칙을 컴파일 가능한 파이썬 예제 코드로 구분해서 정리합니다.

Featured image of post [OOAD] 16. 애그리거트와 리포지터리 패턴

[OOAD] 16. 애그리거트와 리포지터리 패턴

애그리거트는 '연관된 객체 묶음'이 아니라 트랜잭션 일관성의 경계입니다. 애그리거트 루트로 불변조건을 강제하고, 리포지터리로 그 경계 단위 영속화를 다뤄 DDD 전술 설계에 해당하는 Phase 4를 마무리 짓습니다.

Featured image of post [OOAD] 17. 마이크로서비스 아키텍처와 OOAD

[OOAD] 17. 마이크로서비스 아키텍처와 OOAD

마이크로서비스 경계를 기술 계층(UI/로직/DB)이 아니라 바운디드 컨텍스트로 그으면, 분산된 진흙 덩어리를 피할 수 있습니다. 서비스 분해 전략과 서비스별 데이터 소유권 원칙, 도입 여부를 가르는 판단 기준까지 다룹니다.

Featured image of post [OOAD] 18. 클린 아키텍처와 헥사고날 아키텍처

[OOAD] 18. 클린 아키텍처와 헥사고날 아키텍처

클린/헥사고날/어니언 아키텍처는 이름이 다를 뿐 '의존성은 항상 안쪽으로'라는 같은 규칙을 말합니다. 클린 아키텍처의 4개 동심원 구조와 경계를 넘는 데이터(DTO) 변환 규칙을 실무 파이썬 코드 예제로 정리합니다.

Featured image of post [OOAD] 19. 이벤트 기반 아키텍처와 CQRS

[OOAD] 19. 이벤트 기반 아키텍처와 CQRS

쓰기와 읽기의 요구사항이 크게 다르면 하나의 모델로 둘 다 만족시키려는 시도 자체가 무리수가 됩니다. CQRS로 모델을 분리하고, 도메인 이벤트와 사가 패턴으로 서비스 간 최종 일관성을 다루는 방법을 상세히 정리합니다.

Featured image of post [OOAD] 20. 레거시 시스템 현대화 전략

[OOAD] 20. 레거시 시스템 현대화 전략

레거시를 한 번에 새로 짜는 전면 재작성은 대부분 실패합니다. 스트랭글러 무화과 패턴으로 점진적으로 교체하고, 특성화 테스트로 기존 동작을 고정한 뒤 안전하게 이관하는 전략으로 20편에 걸친 시리즈 여정을 마칩니다.

Featured image of post [UnitTesting] 00. 단위 테스트, 왜 다시 배워야 하는가

[UnitTesting] 00. 단위 테스트, 왜 다시 배워야 하는가

테스트가 있어도 프로젝트가 느려지는 이유는 테스트가 없어서가 아니라 잘못된 테스트가 많기 때문입니다. 12편에 걸친 이 시리즈 전체의 동기와 상세 커리큘럼, 각 편이 다음 편에 왜 필요한지까지 자세히 함께 정리합니다.

Featured image of post [UnitTesting] 01. 단위 테스트의 목표: 지속 가능한 성장

[UnitTesting] 01. 단위 테스트의 목표: 지속 가능한 성장

단위 테스트의 목표는 버그를 줄이는 것이 아니라 프로젝트의 지속 가능한 성장을 가능하게 하는 것입니다. 좋은 테스트와 나쁜 테스트를 가르는 기준, 코드·분기 커버리지 지표의 함정을 실제 코드 예제로 자세히 다룹니다.