PromleeBlog
sitemapaboutMe

posting thumbnail
논리적 구조 설계
Logical Architecture

📅

🚀

UP 아티팩트 관계 예시 (UP Artifact Relationships)🔗

image
UP 아티팩트는 논리적 아키텍쳐(LA)에 영향을 미침
논리적 아키텍쳐는 소프트웨어 클래스가 정의되는
패키지
정의

UML 패키지 다이어그램 (UML Package Diagram)🔗

설계 모델
의 일부로 LA를 설명
소프트웨어 아키텍쳐 문서
에서 하나의 view로 요약 가능

🚀

논리적 아키턱쳐와 레이어 (Logical Architecture and Layers)🔗

논리적 아키텍쳐
소프트웨어 클래스
패키지
,
서브시스템
,
레이어
로 대규모 조직하는 것
다른 운영 시스템 프로세스나 네트워크의 물리적 컴퓨터에 배포되는 방법에 대한 결정은 하지 않는다.

레이어
응집된 책임
을 가진 클래스, 패키지 또는 서브시스템의
강한 결합
상위
레이어는
하위
레이어의 서비스를 호출하지만 그 반대는 아니다.
객체지향 시스템에서 일반적인 레이어: 사용자 인터페이스(UI), 애플리케이션 로직 및 도메인 객체, 기술 서비스

🚀

엄격한 vs 느슨한 레이어 아키텍쳐 (Strict vs Relaxed Layered Architecture)🔗

엄격한 레이어 아키텍쳐
한 레이어는 바로 아래에 있는 레이어의 서비스만 호출
네트워크 프로토콜 스택에서 일반적

느슨한 레이어 아키텍쳐
한 레이어는 여러 레이어의 서비스를 호출
예: UI 레이어는 직접 하위의 애플리케이션 로직 레이어뿐만 아니라, 로그 기록 등의 기술 서비스 레이어의 요소도 호출할 수 있다.
정보 시스템에서 일반적

🚀

소프트웨어 아키텍쳐란 무엇인가 (What is Software Architecture?)🔗

소프트웨어 시스템의 근본적인
구조와 시스템
을 만드는 학문
각 구조는 소프트웨어 요소, 그 관계, 그리고 이들의 속성을 포함

🚀

UML 적용: 패키지 다이어그램 (UML Applied: Package Diagrams)🔗

UML 패키지 다이어그램
은 논리적 아키텍쳐를 설명하는 데 자주 사용됨
UML 패키지 다이어그램은 요소를
그룹화
하는 방법을 제공

🚀

패키지 종속성 (Package Dependencies)🔗

패키지 간의 종속성은 패키지 다이어그램에 표시

🚀

레이어를 사용한 설계 (Designing with Layers)🔗

시스템의 대규모 논리적 구조를 조직화함

예시 (논리적 아키텍쳐의 일반적 레이어)🔗

  1. UI (사용자 인터페이스) 레이어
  2. 애플리케이션 로직(Application Logic) 레이어
  3. 도메인 객체 (Domain Object) 레이어
  4. 비즈니스 인프라스터럭쳐 (Business Infrastructure) 레이어
  5. 기술 서비스 (Technical Services) 레이어
  6. 기반 (Foundation) 레이어

🚀

레이어 사용의 장점 (Benefits of Using Layers)🔗

관심사, 고수준/저수준, 어플리케이션/일반 서비스 분리
관련된 복잡성은 캡슐화되고 분해 가능
일부 레이어는 새로운 구현으로 대체할 수 있다.
하위 레이어는 재사용 가능한 기능을 포함한다.
일부 레이어(주로 도메인 및 기술 서비스)는 분산될 수 있다.
논리적 분할 덕분에 팀 단위 개발이 용이하다.

🚀

도메인 레이어와 도메인 객체 (Domain Layer and Domain Objects)🔗

도메인 객체
도메인 레이어
image
객체 지향 개발자는 소프트웨어 클래스를 생성하기 위해 실제 도메인에서 영감을 얻는다.
이해 관계자가 도메인을 인식하는 방식과 소프트웨어에서의 표현 간의 간극이 줄어든다.

🚀

티어, 레이어, 파티션 (Tiers, Layers, and Partitions)🔗

티어
레이어
파티션

🚀

모델-뷰 분리 원칙 (Model-View Separation Principle)🔗

  1. 비 UI 객체
    UI 객체
    에 직접 연결하거나
    결합하지 않는다
    .
  2. 애플리케이션 로직
    UI 객체 메서드
    에 넣지 않는다.

🚀

SSD, 시스템 운영, 레이어 간의 연결 (Connection between SSD, System Operations, and Layering)🔗

잘 설계된 아키텍쳐에서,