Home 도메인 주도 설계 첫걸음 - 05장 간단한 비지니스 로직 구현
Post
Cancel

도메인 주도 설계 첫걸음 - 05장 간단한 비지니스 로직 구현

범위

  • [Part 2] 전술적 설계 - 05장: 간단한 비지니스 로직 구현

개념 정리

책에서 기억하고 싶은 내용

  • 비지니스 로직은 소프트웨어에서 가장 중요한 부분이며 애초에 소프트웨어를 구현하는 이유이기도 하다.

트랜잭션 스크립트

  • 트랜잭션 스크립트 패턴은 프로시저를 기반으로 시스템의 비즈니스 로직을 구성하며, 각 프로시저는 퍼블릭 인터페이스를 통해 시스템 사용자가 실행하는 작업을 구현한다.

구현

  • 각 프로시저는 간단하고 쉬운 절차지향 스크립트(procedural script)로 구현된다.
  • 각 작업은 성공하거니 실패할 수 있지만, 유효하지 않은 상태를 만들면 안 된다.

그렇게 쉽진 않다!

  • 트랜잭션 동작 구현에 실패하는 간단한 예는 전체를 아우르는 트랜잭션 없이 여러 업데이트를 하는 경우다.
  • 여러 저장 장치에 걸쳐 있는 분산 트랜잭션은 복잡하고 확장하기 어렵고 오류가 발생하기 쉬우므로 일반적으로 피하는 방식이다.

트랜잭션 스크립트를 사용하는 경우

  • 트렌잭션 스크립트 패턴은 비즈니스 로직이 단순한 적차적 작업처럼 매우 간단한 문제 도메인에 효과적이다.
  • 트랜잭션 스크립트 패턴은 정의상 비즈니스 로직이 단순한 지원 하위 도메인에 적합하다.
  • 트랜잭션 스크립트 패턴의 주요 장점은 단순함이다.
  • 핵심 하위 도메인에는 트랜잭션 스크립트를 사용하면 안 된다.
  • 핵심 하위 도메인의 비즈니스 로직이 복잡한 경우 트랜잭션 스크립트 패턴이 대체할 수 없다는 문제점이 발생할 수 있다.

액티브 레코드

구현

  • 액티브 레코드 패턴은 액티브 레코드라고 하는 전용 객체를 사용하여 복잡한 자료구조를 표현한다.
  • 이 패턴의 목적은 메모리 상의 객체를 데이터베이스 스키마에 매핑하는 복잡성을 숨기는 것이다.
  • 액티브 레코드 객체에는 비즈니스 로직이 포함될 수 있다.
  • 액티브 레코드 객체의 고유한 기능은 자료구조와 동작(비즈니스 로직)의 분리다.

액티브 레코드를 사용하는 경우

  • 액티브 레코드는 본직적으로 데이터베이스에 대한 접근을 최적화하는 트랜잭션 스크립트이기 때문에 이 패턴은 기껏해야 사용자 입력의 유효성을 검사하는 CRUD 작업과 같은 비교적 간단한 비즈니스 로직만 지원할 수 있다.
  • 액티브 레코드 패턴은 지원 하위 도메인, 일한 하위 도메인과 외부 솔루션 연동, 모델 변환 작업에 적합하다.

실용적인 접근 방식

결론, 요약

  • 비즈니스 로직을 구현하기 위한 두 가지 패턴
    • 트랜잭션 스크립트
      • 이 패턴은 시스템 작업을 간단하고 쉬운 procedural script로 구성한다.
      • 이 절차는 작업에 트랜젝션을 적용해서 작업이 성공하거나 실패하도록 보장한다.
      • 이 패턴은 ETL(Extract(추출)-Transform(변환)-Load(적재))처럼 단순한 비즈니스 로직을 가진 지원 하위 도메인에 적합하다.
    • 액티브 레코드
      • 비즈니스 로직이 다눈하지만 복잡한 자료구조에서 작동하는 경우 해당 자료구조를 액티브 레코드로 구현할 수 있다.
      • 액티브 레코드 객체는 간단한 CRUD 접근 방식을 제공하는 자료구조다.
This post is licensed under CC BY 4.0 by the author.

LINE 앱을 위한 확장 가능한 멀티 데이터 센터 ID제너레이터 - 2021 Korean version -

App 개발 등에 자유롭게 사용 가능한 폰트