노드 심화_4

·2022년 12월 27일
0

노드 심화

목록 보기
4/9

도메인 (Domain)

프로세스가 지원하는 활동

1) 도메인

  • 가구 판매 회사의 도메인은 구매 및 조달, 제품 설계, 물류 및 배달 등 다른 분야를 뜻할 수 있다.

  • 도메인은 다시 하위 도메인으로 나눌 수 있습니다.

    • 도메인 구성 : 주문, 회원, 혜택, 결제, 배송, 정산, 카탈로그, 리뷰
    • 하위 도메인다른 하위 도메인과 연동하여 완전한 기능을 제공합니다.
      • ex) 고객 → 물건 주문 → 결제 → 배송 → 혜택 제공
  • 하위 도메인을 어떻게 구성할 지 여부는 상황에 따라 달라집니다.

    • B2B(Business-to-Business), B2C(Business to Consumer)

2) 도메인 모델(Domain Model)

  • 유용한 특성을 포함하는 프로세스나 현상의 지도(Map)

  • 특정 도메인을 개념적으로 정리한 모델

  • 사용할 개체를 기억하기 쉬운 이름(식별자)을 부여해 대상을 쉽게 공유

  • 만약 누군가가 공을 던진다면 무의식적으로 공의 움직임을 예측해 회피
    => 이미 공간상 물체가 움직이는 방식에 대한 모델이 있어 무의식으로 예측

도메인 모델링의 종류

  1. 엔티티

    실제 DB 테이블과 연관되어 있는 핵심 클래스이고, 엔티티를 기준으로 테이블이 생성되고 DB 스키마가 변경

  • 엔티티요청(Request)이나 응답값(Response)으로 전달하는 클래스로 사용하면 안됩니다.
  • 엔티티 내부의 속성변경되더라도 여전히 동일한 엔티티로 남아있습니다.
  • 엔티티는 시간에 따라 변하는 속성포함될 수 있습니다.
  • 어떤 요소가 엔티티유일하게 식별하는지 정의하는 것 또한 중요합니다.
    • 보통 이름이나 참조 번호 등을 사용합니다.
    • ex) User 클래스의 userId
  1. 값 객체
  2. 도메인 서비스

아키텍처 패턴 (Architecture Pattern)

소프트웨어의 구조를 구성하기위한 가장 기본적인 토대를 제시

  • 아키텍처 패턴은 각각의 시스템들과 그 역할이 정의되어 있고, 여러 시스템 사이의 관계규칙 등이 포함되어 있다.

  • 검증된 구조로 개발을 진행하기 때문에 안정적인 개발이 가능

  • 아키텍처 패턴을 도입할 경우 도메인이 복잡할수록 모델이나 코드를 더 쉽게 변경할 수 있다는 측면에서 큰 이익을 얻을 수 있다.

대표적인 아키텍처 패턴

  • 저장소 패턴 (Repository pattern)
    • 영속적인 저장소에 대한 추상화
    • 가장 많이 쓰임
  • 서비스 계층 패턴 (Service layer pattern)
    • 유스 케이스(Usecase)의 시작을 명확하게 정의하기 위한 패턴
    • 가장 많이 쓰임
  • 작업 단위 패턴 (Unit of work pattern)
    • 원자적 연산을 제공
  • 애그리게이트 패턴 (Aggregate pattern)
    • 데이터 정합성을 강화하기 위한 패턴

아키텍처 패턴을 도입하기 전에 고민해야 할 것

  1. 아키텍처 패턴이 주는 이익비용에 대해 확실한 이유가 있어야 함
  2. 해당하는 아키텍처 패턴을 채택했을 때 어떤 장단점이 존재하는지 명확하게 인지
  3. 여러 계층을 추가하기 위해 들이는 노력시간을 투자할 만한 가치가 있을 정도로 어플리케이션도메인복잡한 경우에만 아키텍처 패턴을 도입해야 함
profile
개발자가 되는 과정

0개의 댓글