10.2 Architectural Patterns(아키텍처 패턴)

2024. 3. 11. 00:49CS - Roadmap.sh/10. Design Patterns

※[https://roadmap.sh/computer-science]를 따라서 공부하고 기록한 글입니다.

cs - 10. Design Patterns - 10.2 Architectural

Architectural Patterns

Architectural patterns are a high-level design pattern that focuses on the overall structure of the system. They are similar to design patterns, but they are more concerned with the structure of the system. They are used to solve problems that are common to many software systems.

 

 

 

아키텍처 패턴은 소프트웨어 아키텍처 설계 과정에서 공통된 무넺를 해결하기 위해 재사용 가능한 솔루션을 제공합니다. 이러한 패턴은 시스템의 전체적인 구조와 구성 요소 간의 관계, 그리고 그들이 상호작용하는 방법을 정의합니다. 이러한 패턴은 시스템의 전체적인 구조와 구성 요소 간의 관게, 그리고 그들이 상호작용 하는 방법을 정의합니다.

아키텍처 패턴은 소프트웨어 설계의 초기 단게에서 중요한 결정을 내리는 데 도움을 줍니다.

 

 

주요 아키텍처 패턴

1. Layered (n-tire) Architecture

- 여러 계층으로 구성되며, 각 계층은 특정한 역할과 책임을 가집니다.

- 예: 프레젠테이션 계층, 비즈니스 로직 계층, 데이터 액세스 계층

- 장점: 유연성, 재사용성, 테스트 용이성
- 단점: 때때로 성능 문제, 계층 간의 경계가 모호할 수 있음

 

2. Client-Server
- 클라이언트와 서버 구성요소로 이루어져 있으며, 각각이 특정한 역할을 수행합니다.
- 클라이언트는 서비스를 요청하고, 서버는 그 요청을 처리하여 응답합니다.
- 장점: 분산 시스템 구성 용이, 확장성
- 단점: 네트워크 의존도가 높음, 보안 취약점에 노출될 수 있음

 

3. Model-View-Controller (MVC)
- 애플리케이션을 세 부분으로 구분: 모델(Model), 뷰(View), 컨트롤러(Controller)
- 사용자 인터페이스와 비즈니스 로직의 분리를 촉진
- 장점: 유지보수성, 유연성, 테스트 용이성
- 단점: 초기 개발 비용이 높을 수 있음, 복잡한 데이터 모델에는 적합하지 않을 수 있음

 

4. Microservices Architecture
- 작고 독립적인 서비스들이 특정 비즈니스 기능을 수행하면서 함께 작동
- 각 마이크로서비스는 독립적으로 개발, 배포, 확장 가능
- 장점: 확장성, 유연성, 고장 격리
- 단점: 복잡한 배포 및 관리, 데이터 일관성 유지 어려움

 

5. Event-Driven Architecture
- 이벤트 생성, 전달, 처리를 중심으로 구성된 아키텍처
- 시스템 구성요소들이 이벤트를 통해 비동기적으로 통신
- 장점: 확장성, 유연성, 반응성
- 단점: 이벤트 추적 및 디버깅의 복잡성

 

 

주요 패턴을 보면 정말 중요한 개념들이 너무나 많습니다.

 

레이어, 클라이언트-서버 등등..

특히 최근에 중요시되는 MSA, 마이크로 서비스 아키텍처..

모놀리스(Monolithic)구조를 논리/물리적으로 구조화 하기위해 나온 개념

 

아키텍처 패턴의 주요 개념들이 하나의 거대한 하나의 소프트웨어에서 구조적으로 분리해서 확장성, 유연성 등을 개선하는 형태를 띄고있습니다.

 

차후 하나씩 다뤄보면서 자세히 정리해보겠습니다.

 

728x90