레이어드 아키텍처 정보

2082 단어 DDD


현재 취급하는 시스템에서 채용되고 있는 아키텍처이므로, 이쪽을 읽고 초점을 좁힌 정리

레이어드 아키텍처란?



소프트웨어 시스템의 관심사를 분리하고 도메인 계층을 다른 사람으로부터 분리하는 기술.

도메인이란?



시스템이 담당하는 업무 지식, 업무 영향 또는 업무 활동 영역
사용자가 프로그램을 적용하는 대상 영역
레이어드 아키텍처의 핵 부분

도메인 계층이란?



도메인 로직의 책임을 지는 설계 및 구현의 일부. 단위
도메인 모델 소프트웨어의 표현을 그대로 반영시킨 장소

도메인 로직이란?



도메인을 성립시키는 프로그램 처리

도메인 모델이란?



특정 그림이 아닌 그림이 전달하려는 생각
다이어그램에서 지식이 엄격하게 구성되고 선택되어 추상화 된 것을 나타낼 수 있습니다.
뭔가 이해하기 어려웠지만 도메인 모델 다이어그램 이미지를 할 수 있다면 좋다고 생각합니다.

모델이란?



골라지고 단순해지고 의도적으로 조립된 지식의 표현 형식
정보의 의미를 밝히고 그 정보를 문제에 집중시킨 것

여기까지 전제적 지식

도메인 계층과 다른 계층 구성


  • 사용자 인터페이스 계층
  • 외부로부터의 조작에 의한 커멘드를 해석하는 영역
  • 예) 배치의 CLI, MVC의보기 등.

  • 애플리케이션 계층
  • 소프트웨어가 수행해야 할 작업을 정의하는 영역
  • 예) 프로그램의 진행 상태 반영 (로그), MVC의 컨트롤러 등


  • 도메인 계층
  • 비즈니스 개념, 정보 및 규칙을 나타내는 영역
  • 예) 도메인 로직, MVC의 Model 등.

  • 인프라 계층
  • 상위 레이어 전체를 지원하는 일반적인 기술적 기능
  • 외부와의 접속 기구, MVC에 있어서의 O/R Mapper 등


  • 중요한 사고 방식


  • 도메인 계층은 특별하다는 것
  • 레이어의 모든 요소는 동일한 레이어의 다른 요소 또는 그 "아래"레이어의 요소에만 의존합니다.
  • 응집도가 높은 측면을 격리하는 레이어를 선택한다
  • 비즈니스의 본질적인 정보 만이므로 변경, 유지 보수 및 추가하기 쉽습니다
  • 특정의 아키텍쳐에 의존하지 않는 것 (이므로 이것이 확립한 아키텍쳐인 것은 아니다)
  • DI화 된 계층화 된 아키텍처, 헥사 고날 아키텍처 등이 있습니다 (구현 수준의 다른 기사에서)

  • 책 정보



    htps : // 아 mz 응. 및 / 2Df8ZqX
    Eric Evans, 에릭 에반스의 도메인 기반 설계

    잡감



    도메인을 이해하기 위해서는, 「그 이외」를 이해할 수 없으면 안 되는 느낌이 들었다.
    레이어드 아키텍처가, 「도메인과 그 이외」라고 표현하는 것은 도메인이 본질적인 것을 강조하고 있는 것이며, 실제로는 「그 이외」의 레이어들도 적절하게 분리하는 것이 중요. 그래서 "그 이외"를 이해하지 않으면 안됩니다.

    좋은 웹페이지 즐겨찾기