Dev.

Top 5 Most Used Architecture Patterns

hotpotato0 2023. 12. 6. 07:03

아키텍처 패턴

 

Layered Architecture

 이 패턴은 시스템의 컴포넌트(구성 요소)를 별개의 계층으로 분리.
주로 Presentation Layer, Business Layer, Database Layer로 구분.

예로, 사용자 인터페이스 설계시, 우리는 MVP(Model-View-Presenter) 패턴을 볼수 있음.

 Layered Architecture(계층 구조)의 주된 목표는 한 계층의 변화가 다른 계층에 부정적인 영향을 미치지 않도록 분리하는 것입니다.

 

이 아키텍처는 각각의 레이어가 고유한 책임을 갖도록하여 추상화, 캡슐화를 제공함.

 

Event-driven Architecture

 

이 패턴은 느슨하게 결합된 소프트웨어 구성 요소와 서비스 간의 이벤트 생산 및 소비를 촉진합니다.

 

CQRS패턴

대표적인 예로 CQRS 패턴이 존재.

 

Microkernel Architecture

 

예를 들어 운영 체제에서 마이크로커널은 프로세스 간 통신과 같은 중요한 작업을 감독하는 동시에 다른 시스템 기능을 외부 구성 요소로 오프로드할 수 있습니다.

 

Microservices

이 아키텍처는 기능의 모듈화를 촉진하여 서비스를 독립적으로 개발, 배포 및 확장할 수 있습니다.

 

민첩성을 높이고 넷플릭스와 같은 회사가 빠르게 혁신할 수 있도록 합니다.

 

그러나 상호 서비스 간 통신을 관리하고 데이터 일관성을 유지하는 데 있어 복잡성이 더해진다는 점이 Trade-off로 발생합니다.

 

Monolithic Architecture

핵심인 단일 설계는 데이터 액세스 및 비즈니스 로직에서 사용자 인터페이스에 이르기까지 애플리케이션의 모든 구성 요소를 하나의 코드 베이스로 묶어서 하나의 단위로 실행하는 것을 의미합니다.

 이런 접근은 개발과 배포를 단순화시킨다.

 

그러나 모듈형 모노리스의 부상에 주목할 필요가 있습니다. 이 접근법은 단일 배치 가능한 유닛의 이점을 유지하면서도 코드베이스와의 명확한 모듈 경계를 강조합니다.