-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) 안드로이드 플랫폼(이미 있는 시스템) 위에 앱(새로운 기능)을 만들 때
2) 여러 팀이 각 기능 계층을 하나씩 맡아 개발할 때
3) 보안성을 여러 겹으로 강화하는 요구사항이 있을 때
: 보안성이 높은 자원들은 가장 아래 계층에 배치
장점
1) 인터페이스를 동일하게 유지하면 하나의 계층을 새로운 구현으로 대체할 수 있다
ex) arm이라는 하드웨어 아키텍처상에서 도는 안드로이드 플랫폼을 윈도우즈 운영체제로 옮길 수 있다.
2) 각 계층에 기능(예: 인증)을 중복 추가하여 신뢰성을 높일 수 있다
단점
1) 계층적으로 명백하게 구분하는 작업이 보통 어렵다. 위 계층이 바로 아래 계층을 이용하기보다 더 아래 계층을 사용할 수도 있다
2) 여러 계층을 통해서 하나의 서비스를 제공하므로 성능 문제가 발생할 수 있다
: 가장 아래에 있는 서비스만 쓰고 싶은데 하나씩 거쳐서 내려가야 하기 때문에 느릴 수 있다.
'소프트웨어공학론' 카테고리의 다른 글
Model-View-Controller (MVC) architecture (0) | 2023.04.27 |
---|---|
Client-Server architecture (0) | 2023.04.27 |
Representation (0) | 2023.04.26 |
Design architecture (0) | 2023.04.26 |
UML tools and functions (0) | 2023.04.26 |
댓글