티스토리 뷰
안녕하세요 강정호입니다. 오늘은 객체지향적 분석 설계에서 "레이어를 사용한 논리적 아키텍쳐"에 대해서 공부해볼게요
소프트웨어 아키텍쳐란?
성능, 수정 가능성 및 보안 등과 같은 시스템 품질의 중요 요소
- 논리적 구조는 소프트웨어 클래스를 패키지, 서브 시스템 및 레이어(정적보기)로 대규모 조직화 한 것
- 이러한 요소가 서로 다른 물리적 플랫폼 간에 배포되는 방법에 대한 결정이 없기 때문에 논리적 아키텍쳐라고 한다.
레이어 아키텍쳐란?
- 시스템의 주요 관점에서 응집력 있는 responsibility를 갖는 클래스, 패키지 및 서브시스템을 큰 크기로 묶어 놓은 것.
- 계층은 상위 계층이 하위 계층의 서비스를 호출하도록 구성됩니다.
- 프레젠테이션 레이어 : 보여지는 부분을 담당하는 모듈
- 외부 객체(사람, 다른 시스템)에게 정보를 제공하는 경계 개체
- 유저 인터페이스
- 어플리케이션 로직 레이어(Application Logic Layer)
- 어플리케이션 요구사항을 충족하는 도메인 개념(예: 판매)을 나타내는 소프트웨어 객체.
- 기술 서비스 레이어(Technical Service Layer) : APP이 구동되는 기반 시설
- 데이터베이스와의 인터페이스 또는 오류 로깅과 같은 지원 기술 서비스를 제공하는 범용 객체 및 하위 시스템.
- 이러한 서비스는 대개 응용 프로그램 독립적이며 여러 시스템에서 재사용할 수 있습니다.
Presentaion, Application, Technical Layer 그림 예시
레이어 디자인을 위한 가이드(**시험문제)
- SOC(Seperation of Concerns) : 기능들을 모듈화 하는 것. 수정이 가능해지고 결국 유지보수성이 좋아진다.
- 시스템의 대규모 논리적 구조를 명확하고 일관된 책임을 지닌 분리된 계층으로 조직하는 것.
- 하위 계층은 하위 수준 및 일반 서비스이고 상위 계층은 응용 프로그램과 관련이 있다.
- 협업 및 결합은 상위 계층에서 하위 계층으로 이루어진다. 낮은 계층에서 높은 계층으로의 연결을 피할 수 있다.
- 시스템의 논리적 구조는 서로 구별되는 계층들로 조직화되고, 이 계층들은 연관된 책임을 갖는다. 예를 들어 하위 계층은 일반적인 서비스를 제공하고 상위 계층은 보다 어플리케이션 종속적인 서비스를 제공한다.
- 따라서 명확하며 응집력 있도록 관심 분리를 이용하여 계층들을 조직.
** 하위 계층일수록 독립적, 상위 계층일수록 종속적
레이어 사용의 장점
- SOC는 결합도와 의존도를 낮추고, 응집도와 명확성을 높인다.
- 관련된 복잡성은 캡슐화되고 분해 가능하다.
- 일부 레이어(UI, 응용 프로그램, 도메인)를 새 구현으로 바꿀 수 있다.
- 일부 레이어(도메인, 기술 서비스)를 배포할 수 있다.
- 팀별 개발은 논리적인 세분화에 도움을 준다.
일반적인 정보시스템의 논리 아키텍쳐 계층 구조
밑으로 갈 수록 의존성이 낮아진다. Business Infra, Tech Service는 공통모듈로서 의존성이 낮다.
Mixing views of Architecture
왼쪽의 아키텍쳐는 물리, 논리 아키텍쳐가 섞여 있다. 오른쪽 아키텍쳐는 logical 아키텍쳐로만 구성하여 기본적인 이해가 쉽다.
Model - View 분리 원칙
1. 비 UI 객체와 UI 객체를 직접적으로 연결하지 마라.
2. UI 객체에 어플리케이션 로직을 적용하지 말아라.
**시험문제
FURPS가 무엇인가?
Functionality
Usability
Reliability
Performance
Supportability
'Computer Science' 카테고리의 다른 글
[데이터베이스] DB 인덱스(2편) (0) | 2018.11.14 |
---|---|
[오픈소스] 중간고사(AWS, 성당과시장,깃) (2) | 2018.10.19 |
[도메인 분석설계] 요구사항 분석(System Sequence Diagrams) (2) | 2018.10.17 |
[데이터베이스] Inner Join, Outer Join (0) | 2018.10.17 |
[도메인 분석설계] 도메인 모델 연관관계 추가하기 (0) | 2018.10.16 |
- Total
- Today
- Yesterday
- docker
- ```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````
- 2023년
- 열반스쿨기초반
- 유즈케이스
- 깃허브
- front
- 항해플러스백엔드
- push_back
- 항해솔직후기
- 인셉션
- Inception
- pop_back
- 개발자 회고
- 폭포수
- GIT
- resize
- 파라메터
- 월부닷컴
- 재테크공부
- 부동산공부
- github
- Use case
- 도커
- Spring boot
- 내년은 빡세게!!
- 깃
- 관계대수
- 월급쟁이부자들
- 항해플러스후기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |