일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 객체관계형DB
- compare
- 공간DB
- ANSI-SPARC
- 소프트웨어아키텍처 기술 동향
- 계층형DB
- 소프트웨어 개발도구
- BOJ
- 정렬
- 프로그래밍 언어
- 메인 메모리 DB
- 백트래킹
- TOPCIT
- 네트워크형DB
- aws winscp
- 객체 지향형 DB
- 클라우드기반 IDE
- 멀티미디어DB
- compare구조체
- 시간초과
- 개발프레임워크의 기술 동향
- 온라인처리
- Backtracking
- vector unique erase
- 프로그래밍 언어 기술 동향
- sync_with_stdio(0)
- boj 11659
- 개발프레임워크
- c++
- Flutter
옐그's 코딩라이프
[TOPCIT][01] V. 소프트웨어 아키텍처 설계 (에센스 정리 요약) 본문
학습 목표
1. 소프트웨어 아키텍처(SA, Software Architecture)의 기본 개념과 구성 요소를 열거할 수 있다.
2. 대표적인 소프트웨어 아키텍처 유형들에 대하여 설명할 수 있다.
3. 소프트웨어 아키텍처 설계 표현 방법을 설명할 수 있다.
핵심 키워드
- 모듈, 컴포넌트와 커넥터, 서브시스템, 프레임워크
- 저장소 구조, MVC(Model-View-Controller)구조, 클라이언트-서버 모델, 계층구조, 파이프 필터 구조
- 컨텍스트(Context) 모델, 컴포넌트(Component) 다이어그램, 패키지(Package) 다이어그램, 배치(Deployment) 다이어그램
01 소프트웨어 아키텍처 설계
소프트웨어 아키텍처
- 소프트웨어 개발에 직간접적으로 영향을 미치고 복잡도를 높이는 다양한 요소들을 체계적으로 다루기 위한 개발 대상 소프트웨어의 청사진
- 의사소통 수단 및 프로젝트 초기 의사결정 도구로 활용됨
- 시스템 전체 구조 및 개발 프로젝트 조직 결정 시 참조됨
소프트웨어 아키텍처 설계 절차
- 요구사항분석, 아키텍처 분석 및 설계, 아키텍처 검증 및 승인 절차로 진행됨
- 아키텍처 설계는 시스템의 요구사항을 만족시키기 위해 시스템 구성을 설정하는 프로세스
- 서브시스템이란? 일반적으로 자료와 제어구조를 포함하며, 독립적으로 기능을 수행할 수 있고 컴파일 될 수 있는 프로그램 구성요소
- 프레임워크란? 구체적인 서브시스템을 만들기 위해 확장될 수 있는 일반 구조를 나타내며, 구체적인 구현 방법 등을 제공함으로써 설계 추상화의 수준을 높여줌
02 소프트웨어 아키텍처 스타일
소프트웨어 아키텍처 유형
1. 저장소 구조
한 서브시스템에서 데이터를 생성하고 다른 서브시스템들이 데이터를 사용하는 경우 시스템에서 사용되는 모든 공유 데이터를 한 곳에 보관하여 모든 서브시스템들이 데이터를 공유할 수 있도록 만든 구조
2. MVC (Model-View-Controller) 구조
GUI 설계에 많이 활용되는 프레임워크로 한 객체의 여러 가지 표현이 서로 상호 작용하도록 지원하는 접근법
3. 클라이언트-서버 모델
서비스를 요구하는 클라이언트와 서비스를 제공하는 서버의 집합으로 구성되는 모델
4. 계층 구조
시스템을 여러 계층으로 구성하며, 각 계층은 특정 서비스를 제공하는 것
03 소프트웨어 아키텍처 설계 표현 방법
컨텍스트(Context) 모델
우리가 개발해야 할 시스템의 영역을 기술하고, 시스템과 외부 환경과의 경계를 결정하며, 외부와의 인터페이스를 제시하여 시스템의 입출력 데이터를 보여줌
컴포넌트 다이어그램
- 컴포넌트란? 재사용 가능한 부품
- 이 기술의 근간을 이루는 것은 결국 재사용성이며, 재사용 기술은 가능한 한 이미 검증된 부분을 다시 사용함으로써 소프트웨어 개발 속도와 생산성을 높이고자 하는 가속 기술
패키지 다이어그램
- 패키지란? 다수의 사용자를 위해 개발된 상업용 소프트웨어
- 패키지로 정의되면 패키지 내부의 자세한 사항을 외부에 감추어 패키지 사이의 의존 관계를 최소화할 수 있음
- 서브시스템들 사이의 의존 관계를 나타낸 것으로 높은 수준의 추상화된 서브시스템을 나타내어 소프트웨어 아키텍처를 표현하는데 적합함
'TOPCIT' 카테고리의 다른 글
[TOPCIT][01] VII. 사용자 인터페이스(UI)/사용자 경험(UX) 설계 (에센스 정리 요약) (0) | 2023.02.10 |
---|---|
[TOPCIT][01] VI. 객체 지향 설계 (에센스 정리 요약) (0) | 2023.02.10 |
[TOPCIT][01] IV. 소프트웨어 설계 원리와 구조적 설계 (에센스 정리 요약) (0) | 2022.12.27 |
[TOPCIT][01] III. 자료구조와 알고리즘 (에센스 정리 요약) (0) | 2022.11.27 |
[TOPCIT][01] II. 소프트웨어 재사용 (에센스 정리 요약) (1) | 2022.11.27 |