PromleeBlog
sitemap
aboutMe

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) 🔗

잘 설계된 아키텍쳐에서,