설계 3

도메인 주도 설계 첫걸음 6장.

6장. 복잡한 비즈니스 로직 다루기 도메인 모델 패턴을 사용하여 복잡한 비즈니스 로직을 다룰 수 있다. 도메인 모델 패턴 비즈니스 로직에만 집중하여 복잡도를 줄인다: 비즈니스 로직 자체만으로 복잡하기 때문에, 더 복잡하게 만들면 안 된다. 비즈니스 로직 외의 것은 포함하지 않아야 한다. 예를 들어 DB 연결이나 외부 시스템 호출 등의 기술적 관심사같은 것들은 포함하지 않아야 한다. 코드에서 유비쿼터스 용어를 사용해야 한다: 구현하는 바운디드 컨텍스트의 유비쿼터스 용어를 사용해야 한다. 이렇게 함으로써 도메인 전문가, 개발자, 그 외 커뮤니케이션해야할 사람과 효율적으로 동기화할 수 있다. 구성요소: 밸류오브젝트, 애그리게이트, 도메인서비스 밸류 오브젝트 값 자체로 식별할 수 있는 데이터 값 자체가 식별자로..

설계 2022.09.25

도메인 주도 설계 첫걸음 5장.

5장. 간단한 비즈니스 로직 구현 간단한 비즈니스 로직을 구현할 때는 트랜잭션으로 데이터의 정합성만 신경쓰면된다. 트랜잭션 스트립트 패턴, 액티브 레코드 패턴을 사용한다. 트랜잭션 스크립트 패턴 레코드 변경 시, 트랜잭션으로 감싸 실패했을 때에 롤백하거나 보상 절차를 타도록 해야 한다. 단순히, 레코드를 트랜잭션으로 감싸기만 하면 된다고 생각하기 쉽지만... 의외로 신경써야할 포인트들이 있다. + 앞으로 이 책에서 소개할 여러 패턴의 기본이라고 한다. 정합성 깨지는 경우들: 트랜잭션 스크립트 패턴을 아예 안 쓴 경우 OR 잘 못 쓴 경우 1. 트랜잭션없이 여러 레코드를 업데이트하는 경우 여러 레코드를 한 함수 안에서 변경하는 경우 ➡️ 트랜잭션으로 감싸서, 실패한 경우 롤백하도록 한다. https://g..

설계 2022.09.25

도메인 주도 설계 첫걸음 1장. 2장.

1장. 비즈니스 도메인 분석하기 비즈니스 도메인은 회사의 핵심 비즈니스를 말하며, 여러 개의 서브 도메인으로 나뉜다. 서브 도메인은 경쟁우위, 복잡성 등에 따라 유형이 분류되며 유형에 따라 직접 개발하는 것이 효율적인 것도 있다. 비즈니스 도메인 뭐 하는 회사야? 할 때의 "뭐" 예) 모노리스는 테마파크 운영 서비스를 개발하는 회사야 서브 도메인 비즈니스 도메인은 여러 개의 서브 도메인으로 나뉜다(회사를 경영하는 데 여러 개의 부서가 필요한 것과 같다) 꼭 소프트웨어 분야에만 한정된 것은 아니고, 회계, 고객서비스 등등 모든 영역이라고 보면된다. (개발팀만 있는 건 아니니까) 핵심 서브 도메인만 꼭 있어야 하는 것은 아니고, 세 개가 모두 있어야 기업이 운영될 수 있다. (모든 팀이 있어야 회사가 굴러가..

설계 2022.09.08