본문 바로가기
소프트웨어공학론

Architectural Patterns - Layered architecture

by 학식러 2023. 4. 27.

 

-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

댓글