이미 앞서 언급한 것처럼, MVC 패턴은 데이터, 비즈니스 로직 및 사용자 인터페이스를 분리하여 소프트웨어 시스템을 구성한다.
모델은 데이터와 비즈니스 로직을 처리하고, 뷰는 사용자에게 정보를 표시하며, 컨트롤러는 사용자 입력을 처리한다.
MVVM 패턴은 데이터 바인딩을 중심으로 하는 패턴이다.
뷰와 모델 사이에 뷰모델(ViewModel)이 위치하여 뷰와 데이터 사이의 동기화를 처리한다.
사용자 입력에 따라 뷰모델은 모델의 상태를 업데이트하고, 뷰는 뷰모델의 상태를 표시한다.
Flux는 Facebook에서 개발한 아키텍처 패턴으로, 단방향 데이터 흐름을 강조한다.
액션(Action), 디스패처(Dispatcher), 스토어(Store), 뷰(View)로 구성된다.
액션이 발생하면 디스패처가 해당 액션을 스토어로 전달하고, 스토어는 상태를 변경한 후에 변경 내용을 뷰에게 통지한다.
계층형 아키텍처는 백엔드 시스템을 여러 개의 논리적인 계층으로 구성한다.
일반적으로 데이터 액세스 계층, 비즈니스 로직 계층, 프리젠테이션 계층 등으로 나뉩니다. 각 계층은 특정한 책임과 역할을 가지며, 위에서 아래로 데이터와 제어 흐름이 전달된다.
앞서 언급한 계층형과는 개념은 같지만 구현 방법은 조금 다르다.
소프트웨어 아키텍처에서의 계층형 아키텍처 : 소프트웨어 시스템을 여러 개의 논리적인 계층으로 구성하는 방식을 의미한다.
이러한 계층은 각각 특정한 책임과 역할을 가지며, 상위 계층은 하위 계층에 의존하면서 데이터와 제어 흐름이 전달되는데 일반적으로 데이터 액세스 계층, 비즈니스 로직 계층, 프리젠테이션 계층 등으로 구성된다.
이러한 계층은 시스템을 모듈화하고 유지보수와 확장성을 개선하기 위해 사용된다.
백엔드 아키텍처에서의 계층형 아키텍처 : 백엔드 시스템을 여러 개의 계층으로 구성하는 방식을 의미한다.
이러한 계층은 백엔드 시스템의 다양한 측면을 담당하며, 주로 데이터 저장, 비즈니스 로직 처리, 보안, 인증 및 권한 부여, 외부 시스템과의 통합 등을 다룬다.
마이크로서비스 아키텍처는 작은 규모의 독립적인 서비스들로 시스템을 구성한다.
각 서비스는 특정한 비즈니스 기능을 수행하며, 독립적으로 배포되고 확장될 수 있다.
이 아키텍처는 높은 확장성과 유연성을 제공하며, 서비스 간의 통신은 API를 통해 이루어진다.
이벤트 기반 아키텍처는 시스템의 구성 요소들이 비동기적으로 상호작용하는 방식을 강조한다.
이벤트 발생 시 이벤트를 수신하는 컴포넌트들이 이를 처리하고 필요한 작업을 수행한다.
이 아키텍처는 느슨한 결합과 확장성을 제공하며, 실시간 처리 및 이벤트 주도 기능에 적합하다.
서버리스 아키텍처는 서버를 개발자가 직접 관리하는 것이 아니라 클라우드 서비스 제공 업체에 의해 자동으로 관리되는 방식이다.
개발자는 코드 실행에 집중하고, 서버 관리 및 확장은 클라우드 서비스에 의해 처리된다.
함수형 컴퓨팅(Function-as-a-Service, FaaS)은 서버리스 아키텍처의 일종으로, 개별 함수 단위로 기능을 구현하고 필요한 시점에 실행한다.