본문 바로가기

전체 글109

Event-driven Control -Event-driven Control = Broadcast models = Publish-subscribe models 설명 1) 한 모듈이 다른 모듈의 서비스를 사용할 수 있다. ex) 서브 시스템1이 서브 시스템4의 서비스를 사용 가능, 서브 시스템3이 서브 시스템1의 서비스를 사용 가능 2) 그 과정에서 함수를 직접 호출x, handler를 통해 event를 날리는 것o 직접x, event와 메시지를 중개자를 통해 주고받음o 예시 안드로이드 앱에서 컴포넌트들 사이에 서로 직접 호출하지 않는다. 대신 intent라는 메시지를 날린다. 안드로이드 플랫폼이 중개자가 되어 수신자 컴포넌트에게 전달해준다. 사용 상황 : 분산된 컴포넌트들을 연동할 때 효과적 장점 시스템 변경이 상대적으로 쉽다. : 각 서브.. 2023. 4. 27.
Model-View-Controller (MVC) architecture -Model-View-Controller (MVC) architecture 설명 1) 데이터를 보여주는 것과 처리하는 것을 분리 2) 세가지 논리적 요소로 시스템을 구성 a) 모델: 데이터 처리 담당, 로직 b) 뷰: 데이터 보여주기 ex) 동일한 데이터를 표나 그래프로 보여주기, 웹페이지 자체 c) 컨트롤러: 모델과 뷰를 조합하여 사용자 입력을 처리, 뷰와 모델은 직접 호출하지 않고 컨트롤러를 통해 한다. ex) 계산기 프로그램. 모델 : 순수하게 계산을 해주는 부분 뷰 : 버튼, 계산결과 창 컨트롤러 : 사용자가 누르면 해당하는 계산을 하라고 모델에게 요청, 모델이 계산하면 뷰에게 그리라고 요청 예시 : 거의 모든 UI 프로그램, web-based application 사용 상황 1) 여러 방법으로 .. 2023. 4. 27.
Client-Server architecture -Client-Server architecture 설명 1) 여러 서버로 서비스를 제공함, 여러 클라이언트가 자기가 원하는 서비스를 사용함. 2) 인터넷 네트워크를 통해서 클라이언트와 서버가 연결되어있음 예시 : Web (ex. 영화, 비디오/DVD, 웹툰, SNS, ...) 사용 상황 1) 여러 지역에서 공유 데이터베이스를 사용할 때 ex) YouTube : 전세계 모든 사람들이 서비스를 사용. 2) 시스템 부하가 가변적이고 복제 서버를 둘 수 있을 때 : 서버를 여러개 둬서 접속을 분산시킴 장점 1) 네트워크로 서버들을 분산 배치할 수 있는 구조 2) 모든 사용자가 서비스를 받을 수 있다 단점 1) 각 서비스는 서비스 거부 공격(DOS)이나 서버 다운에 취약 2) 성능은 컴퓨터 시스템 뿐만 아니라 네.. 2023. 4. 27.
Architectural Patterns - Layered architecture -Architectural Patterns 1. Layered architecture 2. Client-server architecture 3. Model-View-Controller (MVC) 4. Event-driven control 5. Repository architecture 6. Pipe and filter architecture 1. Layerd architecture 설명 1) 시스템을 계층적으로 구성하고 각 계층에 연관된 기능을 배치 2) 각 계층은 그 위 계층에 서비스를 제공, 아래 계층의 서비스를 사용, 가장 아래 계층은 핵심 서비스를 표현 예시 : Windows, Linux 운영체제, Android 플랫폼 사용 상황 1) 이미 있는 시스템 위에 새로운 기능을 쌓을 때 ex) 안드로이.. 2023. 4. 27.
Representation 6.2 Architectural Representation -아키텍처 표현하는 방법 1. Package Diagram *package : 같은 일을 하는, 같은 그룹에 속하는 여러 클래스, sub package를 모아놓은 것. 1) 표기법 박스+왼쪽 작은 박스 : 패키지 화살표 : 왼쪽 어떤 클래스가 오른쪽 어떤 클래스를 사용한다. 상속, 의존, ... 관계 표시 2) 특징 a) Hierarchical Decomposition(계층적 분할)을 표현할 수 있다. ex) Clerk User Interface 패키지 안에 Customer, RentalUI 클래스가 포함되어 있다. 그리고 패키지 안에 Business System Client 라는 sub패키지도 들어있다. 즉 패키지 안에 패키지가 들어있다. b).. 2023. 4. 26.
Design architecture -Software Architecture 요구사항 분석에서 설계 단계로 가는 것은 그 반대와는 다르게 많은 창의성을 요구한다. -정의 1) 설계유형(설계도) : 구조, 동작, 상호작용, 비기능적 속성 2) 설계 결정의 집합 : 분석에서 수집한 요구사항 목록, 모델은 큰 방향은 결정해주지만 빠진 부분들이 많다. 어떻게 채울 것인가-> 의사결정이 필요 설계할 때 하는 의사결정들의 집합. -SA 예시1 : Windows MFC Layered Architecture (계층 아키텍처) : 박스를 층층이 쌓아 놓은 것 Layered Architecture (계층 아키텍처)의 특징 : 바로 위,아래 박스로만 서로 호출, 리턴할 수 있는 관계 -SA예시2 : Android Apps Component architectu.. 2023. 4. 26.