[TIL] 아키텍처 패턴

Manta·2024년 10월 2일
0

TIL

목록 보기
14/22
post-thumbnail

💥아키텍처 패턴(Architecture Pattern)

정의 : 주어진 상황의 소프트웨어 구조에서 발생하는 문제점을 해결하기 위한 일반화된 재사용 가능한 솔루션

아키텍처 패턴은 디자인 패턴보다 더 큰 범주에 속해 있으며 소프트웨어의 전체적인 그림을 만드는 솔루션이라 할 수 있습니다.

1. MVP패턴

개념: MVP 패턴은 Model + View + Presenter를 합친 용어입니다. Model과 View는 MVC 패턴과 동일하고, Controller 대신 Presenter가 존재합니다.

Model

  • 데이터와 비즈니스 로직을 담당하는 부분입니다.
  • 데이터를 가져오고 저장하는 역할을 수행합니다.
  • 보통 데이터베이스, 네트워크 요청 또는 파일 시스템과 같은 데이터 소스와 상호 작용합니다.

View

  • 사용자 인터페이스를 담당하는 부분입니다.
  • 사용자가 보는 화면을 표시하고, 사용자 입력을 처리하며, Presenter에 의해 보여질 데이터를 표시하는 등의 역할을 수행합니다.
  • 사용자의 행동은 Presenter에 의해 처리되도록 설계되어야 합니다.

Presenter

  • view와 Model 사이에서 중재자 역할
  • 사용자와 인터페이스의 이벤트를 감지하고, 해당 이벤트를 처리하는 비즈니스 로직을 수행합니다.
  • Model과 상호작용하여 데이터를 가져오거나 업데이트하고, View에 데이터를 업데이트하는 역할을 합니다.

2. 계층형 아키텍처 패턴(Layered Architecture Pattern)

  • 시스템의 서로 다른 기능을 여러 계층(Layer)으로 분할하는 패턴
  • 일반적으로 컨트롤러(Controller), 서비스(Service), 저장소(Repository) 계층으로 분리됨

3. 클린 아키텍처 패턴(Clean Architecture)

  • 소프트웨어를 내부 도메인으로 향하는 의존성을 가지는 여러 계층으로 분리하는 패턴
  • 클라이언트의 요청 처리, 데이터베이스 조작, 외부 시스템과의 통신은 외부 계층에서 처리
  • 소프트웨어의 유지보수성과 확장성을 향상시키는 것이 주요 목표

4. 마이크로 서비스 아키텍처 패턴(Microservices Architecture Pattern)

  • 시스템을 작고, 독립적으로 배포 가능한 서비스로 분할하는 패턴
  • 하나의 시스템에서 다양한 언어와 프레임워크를 도입할 수 있는 패턴
  • 서비스 간의 통신은 API 또는 이벤트 기반 아키텍처(EDA, Event Driven Architecture)를 통해 통신합니다.
profile
공부할게 너무 만타🫠

1개의 댓글

comment-user-thumbnail
2024년 11월 1일

시스템 아키텍쳐에 대해 잘 정리해주셨습니다. 프로젝트의 상황에 따라 어떤 시스템 아키텍쳐를 구성하느냐가 굉장히 중요합니다. 그리고 이러한 아키텍쳐는 위에서 기술한 여러 가지 패턴들이 동시에 적용될 수 도 있습니다. 또한 무엇보다 어떤 아키텍쳐를 실제 프로젝트에 적용해보는 경험이 중요합니다. 이를 잘 적용하고, 운영해보는 경험을 쌓아보면 좋겠습니다.

답글 달기