일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- StateObject
- 앱 비교 프로젝트
- 신입ios개발자회고
- 네이버 부스트캠프
- OS
- Apple Developer Academy @ POSTECH
- Swift 기능
- 개발회고
- 네이버 치지직
- 숭실대
- swift문법
- global soop
- 신입 ios 개발자
- 운영체제
- 애플 디벨로퍼 아카데미
- sqoop
- 애플 디벨로퍼 아카데미 후기
- 애플 디벨로퍼 아카데미 21주차 회고
- 데이터베이스
- iOS 개발 오류
- 제앱소
- 개발자 회고
- Swift 디자인패턴
- Swift 문법
- react
- apple developer academy 후기
- 소프트웨어분석및설계
- 애플 아카데미 후기
- SWIFT
- 치지직
- Today
- Total
사과하는 제라스
[소프트웨어 분석 및 설계] 10. SW Architecture Design 본문
목차
- SW Architecture?
- SW Acrhitecture Description(AD)
- Architecture Styles
- Batch Sequential Architecture Style
- Pipe and Filter Architecture Style
- Shared Repository Architecture Style
- Active Repository Architecture Style
- Layered Acrhitecture Style
- Model View Controller Architecture Style
- N-Tier Architecture Style
- Client Server Architecture Style
- Broker Architecture Style
- Dispatcher Architecture Style
- Microservice Architecture Style
- Publish and Subscribe Architecture Style
다음 4가지 순서로 배울 것임.
1) SW Architecture 소개
2) Architecture Styles - 디자인 패턴 같은 거를 배움, Reusable Design임.
3) Architecture Viewpoints
4) Architecture Design for NFR - NFR이란? quality requirement(ex. security, reliability, efficiency 등)
SW Architecture?
: Architecture는 그냥 Structure(구조물)이다. SW Architecture는 요소(Component), 관계(Inter-component Relationship), 원칙(아키텍쳐가 어떤 컴포넌트와 그 관계들로 구성되어져 있는지)들을 지닌 시스템의 기본 개념 혹은 특징임.



OOAD(기능적 요구사항에 대해서 효과적으로 설계할 수 있는 기법) -> only Functional Requirement만 만족
SW Architecture -> Functional Requirement + Non-Functional Requirement 모두 만족
SW Acrhitecture Description(AD)
: SW Architecture를 설계한 문서
- 비기능적 요구사항까지 만족하게 설계되어 작성됨.
- AD는 시스템 전체에 대한 구조적 디자인이라 문서가 매우 길다.

- 구성요소:
1) Skeleton Architecture
-> Architecture Styles 지식을 알아야 함.
2) Design for Views
-> Architecture Viewpoints(각 View에 대한 가이드라인) 지식을 알아야 함.
3)Design for NFRs
-> NFR를 만족시키는 Architecture Tactics(기법)

- 30+- Architecture Styles
- 7 Viewpoints
- SW Quality Model, Tactics
Architecture Design을 하기 위해선 우리가 알고 있는 기술 뿐만 아니라 이를 적용해서 설계할 수 있는 방법론이 필요함.
Architecture Styles
: 설계 명세로, 자주 발생하는 SW 구조적 문제들을 해결하기 위해 적용됨.
얘네들은 40여년 동안 개발되고 증명되어와서 신뢰해도 됨.


Batch Sequential Architecture Style
: 데이터를 모아서 한번에 Ouput 처리하는 것.
ex. 월별 요금청구서

Pipe and Filter Architecture Style
: Batch와는 달리 pipe로 구성되어 앞에서 보내는 족족 pipe를 통해 넘어감. 이때 각 컴포넌트는 Filtering을 함.(필터링을 병렬로도 처리가 가능함.)

Shared Repository Architecture Style
: 공유 레포지토리(DB)를 두고 각 Data Accessor가 dataset들을 Read&Write하며 공유하는 형태. 이때 서로 공유하는 것은 효율적이긴 하나 업데이트된 값을 가져오려면 수동 접근을 해야 함. 이런건 좀 비효율적임.
ex. 은행 시스템

Active Repository Architecture Style
: 수동적인 메모리 공유 방식인 Shared Repository와 달리 자동적으로 datasets을 공유하는 방식임.

Layered Acrhitecture Style
: 각자 역할이 정해진 Layer들이 수직으로 구성된 형태로, 아래의 Layer는 위의 Layer에 Virtual Machine을 제공하기에 더 밑의 Layer 내용을 알 필요가 없음.

Model View Controller Architecture Style
: Layered와 비슷한데 3가지 Layer를 가짐.(Model, Controller, View)

N-Tier Architecture Style
: 네트워크로 연결된 티어들의 시스템 형태.

Client Server Architecture Style
: 두개의 tier(Client tier, Server tier)로 구성되어 있는 시스템 형태.
Server tier는 Client tier에게 공통 기능(common service)을 제공하고,
Client tier들끼리는 Server tier로부터 제공된 기능을 서로 공유할 수 있다.

Broker Architecture Style
: Client node와 여러 Server node들 사이에 Broker node가 끼어있는 것으로 높은 서비스 신뢰도와 QoS를 보장함. 이들 사이에 Broker node가 있기에 client와 server는 직접 상호작용하지 않음.

Dispatcher Architecture Style
: Broker와 비슷한데, Broker node 대신 Dispatcher node가 있음. 처음엔 Broker 처럼 굴다가 Client와 서버를 연결시켜주면 그때부턴 얘 안거치고 Client와 Server가 직접 통신함.

Microservice Architecture Style
: 현재 가장 널리 쓰이는 스타일로, Client와 Micro Service의 인터페이스가 서로 다를 경우 이걸 맞춰주는 역할(adapter)을 하는 gateway가 함.
- QoS 보장해줌(microservice A가 fail or 성능 저하 -> 다른 걸로 대체함)
- 개발 비용이 절감됨.

Publish and Subscribe Architecture Style
: Publisher와 Subscriber 사이에 Notification Broker가 있고 이를 통해 둘 사이를 연결해주기에 역할이 중요함.

'대학 전공 공부 > 소프트웨어 분석 및 설계' 카테고리의 다른 글
[소프트웨어 분석 및 설계] 11. Architecture Design For Functional View (2) | 2022.12.15 |
---|---|
[소프트웨어 분석 및 설계] 9. Design Patterns (0) | 2022.12.15 |
[소프트웨어 분석 및 설계] 8. Functional and Data Components (1) | 2022.11.12 |
[소프트웨어 분석 및 설계] 1. 소프트웨어 분석 및 설계 (1) | 2022.10.27 |
[소프트웨어 분석 및 설계] 7. State Machine Diagram(상태 머신 다이어그램) (0) | 2022.10.27 |