본문으로 건너뛰기

아키텍처 스타일, 디자인 패턴 비교

· 약 4분

아키텍처스타일과 디자인패턴의 개념

  • 아키텍처스타일: SW를 구성하는 서브시스템, 컴포넌트 간 관계를 분리하는 시스템 구조 및 스타일
  • 디자인패턴: SW개발 과정에서 발견된 설계의 노하우를 재사용하기 좋은 형태로 정리한 패턴

아키텍처스타일, 디자인패턴의 관계도, 주요 유형

아키텍처스타일, 디자인패턴의 관계도

아키텍처스타일의 주요 유형

구분내용비고
Layered Architecture소프트웨어를 계층으로 나누어 각 계층이 특정 기능을 담당하며 상위 계층이 하위 계층에 의존하는 구조MVC 패턴
Client-Server요청-응답 구조, 주로 네트워크 기반 애플리케이션에서 사용웹 애플리케이션
Microservices독립적으로 배포 가능한 작은 서비스들로 구성된 아키텍처로, 각 서비스는 특정 비즈니스 기능을 담당대규모 시스템에
Event-Driven시스템 구성 요소가 이벤트를 발생시키고, 이벤트를 수신하여 처리하는 구조실시간 처리
SOA서비스 단위로 시스템을 구성, 각 서비스는 명확하게 정의된 인터페이스로 통신재사용, 유연성 향상
Serverless요청시 CSP가 자동으로 서버 자원을 할당하고 실행하는 구조AWS Lambda 등
Reactive비동기 데이터 스트림을 사용하여 변화에 빠르게 반응하는 시스템을 구성고성능 실시간 시스템
Pipeline데이터가 여러 단계를 거쳐 처리되는 구조로, 각 단계는 독립적으로 작동하고 데이터를 변환ETL 프로세스 등
Broker클라이언트와 서버가 직접 통신하지 않고 중개자를 통해 통신하는 구조메시지 큐
Peer-to-Peer모든 노드가 동등한 자격으로 통신하고 자원을 공유하는 구조분산 시스템

디자인패턴 주요 유형

구분개념비고
생성패턴객체의 생성방식 결정, 클래스 정의, 구조화, 캡슐화Factory, Builder, Singleton
구조패턴객체 조직화 방법 제시, 객체 구성에 확장성 추가Adaptor, Bridge, Decorator
행위패턴객체 행위를 조직화, 그룹화, 객체와 클래스 연동Strategy, Observer, Visiter, Template

아키텍처스타일, 디자인패턴 적용시 고려사항

  • CBAM, ATAM을 통해 적절한 아키텍처 스타일 선택
  • 디자인패턴이 적용되어있는 프레임워크 사용