Architecture Pattern 17

API Gateway Pattern 이란?

API 게이트웨이 패턴은 특정 개인이나 조직이 공식적으로 발표한 개념이라기보다는, 마이크로서비스 아키텍처가 널리 사용되기 시작하면서 자연스럽게 등장하고 발전한 패턴입니다. 2010년대 초반, 넷플릭스(Netflix)와 같은 대규모 웹 서비스 회사들이 마이크로서비스 아키텍처를 도입하면서 이를 효과적으로 관리하기 위한 다양한 패턴을 연구하고 공유했는데, 그중 하나가 바로 API 게이트웨이 패턴입니다. 넷플릭스는 마이크로서비스 기반 애플리케이션의 클라이언트 요청을 관리하기 위해 자체 API 게이트웨이 솔루션인 **Zuul**을 개발했고, 이는 API 게이트웨이 패턴의 초기 사례 중 하나로 꼽힙니다. 이후 AWS, Microsoft, Google 등 여러 클라우드 제공업체가 API 게이트웨이 서비스를 제공하며 ..

Saga 패턴 이란 ?

Saga 패턴은 1987년에 Hector Garcia-Molina와 Kenneth Salem이 발표했습니다. 이들은 논문 "Sagas"를 통해, 긴 트랜잭션을 효율적으로 처리하기 위한 방법으로 Saga 패턴을 제안했습니다. 이 패턴은 주로 분산 시스템의 트랜잭션 관리에서 사용되며, 트랜잭션을 여러 개의 작은 작업으로 나누고, 실패 시 이를 복구할 수 있는 보상 동작을 사용해 시스템의 일관성을 유지하는 방법을 설명합니다. Garcia-Molina와 Salem의 연구는 데이터베이스 및 분산 시스템의 안정성을 확보하는 방안으로 큰 영향을 미쳤으며, 이후 마이크로서비스 아키텍처가 대두되면서 Saga 패턴이 더욱 주목받게 되었습니다. SAGA 패턴이란 마이크로서비스들끼리 이벤트를 주고 받아 특정 마이크로서비스에서..

CQRS (Command Query Responsibility Segregation) 패턴 이란 ?

CQRS 패턴은 마이크로소프트의 소프트웨어 아키텍트이자 소프트웨어 설계 전문가인 그레그 영(Greg Young)에 의해 제안되었습니다. CQRS 패턴은 2000년대 후반에, 정확히는 2009년경, 그가 DDD(Domain-Driven Design)와 관련된 커뮤니티와 컨퍼런스에서 CQRS 개념을 처음 설명하면서 널리 알려지기 시작했습니다.  또한, CQRS 패턴은 DDD(Domain-Driven Design) 커뮤니티에서도 널리 채택되었으며, 에릭 에반스(Eric Evans)의 DDD 철학과 밀접한 관련이 있습니다. 그레그 영은 DDD의 철학을 더욱 발전시켜 CQRS와 같은 패턴을 만들어냈으며, 그 이후 마이크로서비스 아키텍처와 이벤트 소싱 등에서도 자주 사용되며 많은 기업에서 이를 채택하고 있습니다. ..

PoEAA를 적용한 실제 프로젝트 구축 사례

PoEAA(Patterns of Enterprise Application Architecture)를 적용한 실제 프로젝트 구축 사례는 주로 대규모 엔터프라이즈 애플리케이션이나 복잡한 비즈니스 로직을 처리하는 시스템에서 흔히 볼 수 있습니다. 다음은 PoEAA 패턴을 활용하여 성공적으로 구축된 몇 가지 프로젝트 사례입니다. 1. 온라인 은행 시스템프로젝트 설명: 은행의 온라인 뱅킹 플랫폼은 복잡한 금융 거래와 사용자 관리 기능을 지원해야 하는 중요한 시스템입니다. 고객은 자신의 계좌 정보를 확인하고, 자금을 이체하며, 대출 신청 및 기타 금융 서비스를 이용할 수 있어야 합니다.적용 패턴:Service Layer (서비스 레이어): 은행의 다양한 비즈니스 로직(이체, 대출 신청, 계좌 관리 등)은 서비스 레..

PoEAA (Patterns of Enterprise Application Architecture)에 관하여…

PoEAA (Patterns of Enterprise Application Architecture)는 마틴 파울러(Martin Fowler)가 제안한 엔터프라이즈 애플리케이션의 설계 패턴 모음입니다. 이 책에서는 대규모 비즈니스 애플리케이션을 구축할 때 반복해서 나타나는 문제들을 해결하기 위한 설계 패턴을 소개하고 있으며, 이러한 패턴을 사용하면 애플리케이션의 확장성, 유지보수성, 성능 등을 향상시킬 수 있습니다. 이 패턴 모음은 주로 복잡한 비즈니스 로직을 처리하고 데이터베이스와 상호작용하는 애플리케이션의 구조를 설계하는 데 도움이 됩니다. PoEAA는 2002년에 처음 발표되었으며, 그 이후에도 많은 소프트웨어 개발자들 사이에서 널리 사용되고 있습니다. PoEAA의 구조와 목표PoEAA는 주로 다음과..

POSA II Architecture Pattern

POSA II(***Pattern-Oriented Software Architecture Volume 2***)는 분산 시스템을 설계할 때 유용한 패턴들을 소개합니다. 이 책은 주로 대규모 분산 시스템에서 발생할 수 있는 복잡한 문제들을 해결하기 위한 아키텍처 패턴을 제시하며, **중간 계층 소프트웨어(middleware)**에 집중하고 있습니다. POSA II에서 제안하는 주요 아키텍처 패턴은 다음과 같습니다: 1. **브로커 패턴 (Broker Pattern)**    **브로커 패턴**은 분산 컴퓨팅 환경에서 클라이언트와 서버 간의 통신을 중재하는 패턴입니다. 이 패턴은 네트워크 상의 여러 서비스가 서로 독립적으로 동작할 수 있도록 중개자(브로커)가 클라이언트와 서버 사이에 위치하여 통신을 관리합니..

POSA I Architecture Pattern

POSA I (Pattern-Oriented Software Architecture, Volume 1)에서 제안하는 주요 아키텍처 패턴들은 아래와 같음Layers (계층) 패턴:시스템을 계층으로 구성하여 각 계층이 특정 수준의 추상화를 제공합니다.상위 계층은 하위 계층의 서비스를 사용하며, 각 계층은 독립적으로 개발 및 수정할 수 있습니다.예: OSI 네트워크 모델, 웹 애플리케이션의 프레젠테이션-비즈니스-데이터 계층Pipes and Filters (파이프와 필터) 패턴:데이터 스트림 처리 작업을 여러 독립적인 처리 단계(필터)로 나눕니다.각 필터는 입력을 받아 처리하고 출력을 다음 필터로 전달합니다.예: UNIX 쉘 명령어 파이프라인, 컴파일러의 처리 단계Blackboard (블랙보드) 패턴:복잡한 문..