Design Pattern

강정우·2023년 6월 24일
0

자습

목록 보기
9/11
post-thumbnail

font-end design pattern

  • 그렇다면 이제 이 포스팅을 한 이류인 font-end와 back-end pattern에 대해 알아보자.

MVC (Model-View-Controller) pattern

  • 이미 앞서 언급한 것처럼, MVC 패턴은 데이터, 비즈니스 로직 및 사용자 인터페이스를 분리하여 소프트웨어 시스템을 구성한다.

  • 모델은 데이터와 비즈니스 로직을 처리하고, 뷰는 사용자에게 정보를 표시하며, 컨트롤러는 사용자 입력을 처리한다.

MVVM (Model-View-ViewModel) pattern

  • MVVM 패턴은 데이터 바인딩을 중심으로 하는 패턴이다.

  • 뷰와 모델 사이에 뷰모델(ViewModel)이 위치하여 뷰와 데이터 사이의 동기화를 처리한다.

  • 사용자 입력에 따라 뷰모델은 모델의 상태를 업데이트하고, 뷰는 뷰모델의 상태를 표시한다.

Flux 아키텍처

  • Flux는 Facebook에서 개발한 아키텍처 패턴으로, 단방향 데이터 흐름을 강조한다.

  • 액션(Action), 디스패처(Dispatcher), 스토어(Store), 뷰(View)로 구성된다.
    액션이 발생하면 디스패처가 해당 액션을 스토어로 전달하고, 스토어는 상태를 변경한 후에 변경 내용을 뷰에게 통지한다.

기타 font-end pattern

  • 프레임워크 및 라이브러리 기반의 아키텍처가 각각 별도로 존재한다. 최근에는 React, Angular, Vue.js와 같은 프론트엔드 프레임워크 및 라이브러리들이 독자적인 아키텍처 패턴을 제시한다.
    예를 들어, React는 컴포넌트 기반 아키텍처를 강조하고, Angular는 컴포넌트 기반 아키텍처와 의존성 주입(Dependency Injection) 패턴을 활용한다.

back-end design pattern

Layered pattern

  • 계층형 아키텍처는 백엔드 시스템을 여러 개의 논리적인 계층으로 구성한다.

  • 일반적으로 데이터 액세스 계층, 비즈니스 로직 계층, 프리젠테이션 계층 등으로 나뉩니다. 각 계층은 특정한 책임과 역할을 가지며, 위에서 아래로 데이터와 제어 흐름이 전달된다.

  • 앞서 언급한 계층형과는 개념은 같지만 구현 방법은 조금 다르다.

sw architecture(Layered Architecture) vs back-end pattern(Layered pattern)

  • 소프트웨어 아키텍처에서의 계층형 아키텍처 : 소프트웨어 시스템을 여러 개의 논리적인 계층으로 구성하는 방식을 의미한다.
    이러한 계층은 각각 특정한 책임과 역할을 가지며, 상위 계층은 하위 계층에 의존하면서 데이터와 제어 흐름이 전달되는데 일반적으로 데이터 액세스 계층, 비즈니스 로직 계층, 프리젠테이션 계층 등으로 구성된다.

  • 이러한 계층은 시스템을 모듈화하고 유지보수와 확장성을 개선하기 위해 사용된다.

  • 백엔드 아키텍처에서의 계층형 아키텍처 : 백엔드 시스템을 여러 개의 계층으로 구성하는 방식을 의미한다.
    이러한 계층은 백엔드 시스템의 다양한 측면을 담당하며, 주로 데이터 저장, 비즈니스 로직 처리, 보안, 인증 및 권한 부여, 외부 시스템과의 통합 등을 다룬다.

Microservices pattern

  • 마이크로서비스 아키텍처는 작은 규모의 독립적인 서비스들로 시스템을 구성한다.

  • 각 서비스는 특정한 비즈니스 기능을 수행하며, 독립적으로 배포되고 확장될 수 있다.

  • 이 아키텍처는 높은 확장성과 유연성을 제공하며, 서비스 간의 통신은 API를 통해 이루어진다.

Event-Driven pattern

  • 이벤트 기반 아키텍처는 시스템의 구성 요소들이 비동기적으로 상호작용하는 방식을 강조한다.

  • 이벤트 발생 시 이벤트를 수신하는 컴포넌트들이 이를 처리하고 필요한 작업을 수행한다.

  • 이 아키텍처는 느슨한 결합과 확장성을 제공하며, 실시간 처리 및 이벤트 주도 기능에 적합하다.

Serverless pattern

  • 서버리스 아키텍처는 서버를 개발자가 직접 관리하는 것이 아니라 클라우드 서비스 제공 업체에 의해 자동으로 관리되는 방식이다.

  • 개발자는 코드 실행에 집중하고, 서버 관리 및 확장은 클라우드 서비스에 의해 처리된다.

  • 함수형 컴퓨팅(Function-as-a-Service, FaaS)은 서버리스 아키텍처의 일종으로, 개별 함수 단위로 기능을 구현하고 필요한 시점에 실행한다.

profile
智(지)! 德(덕)! 體(체)!

0개의 댓글