소프트웨어 아키텍처 패턴

정의

소프트웨어 아키텍처 패턴은 시스템의 전반적인 구조를 설명합니다. 아키텍처 패턴은 시스템의 핵심 구조와 그 구조의 특징을 묘사하며, 대규모 설계 문제를 해결하기 위한 고수준의 템플릿입니다.

종류

  1. 계층형 패턴 (Layered Pattern): 시스템을 독립된 계층으로 나누고 각 계층간의 상호작용을 정의합니다.
     Presentation Layer, Application Layer,  Domain Layer(비즈니스 로직), Infra Layer(데이터베이스 상호작용)

  2. 클라이언트-서버 패턴: 클라이언트와 서버의 역할 분리로 서비스 요청과 처리를 관리합니다.
  3. MVC (Model-View-Controller) 패턴: 사용자 인터페이스와 비즈니스 로직을 분리하여 관리합니다.
     View(사용자 상호작용) -> Controller에서 Model(비지니스 로직)과  View사이의 중계자 역할을 하게 됨. 
  4. 이벤트 버스 패턴: 컴포넌트 간 메시지를 중앙 이벤트 버스를 통해 전달합니다.
  5. 마이크로서비스 패턴: 작은 서비스로 분할하여 독립적으로 운영 및 개발할 수 있게 합니다.
    그 외 6~10번   더 나열하자면...  
    (Master-slave pattern 
    . Pipe-filter pattern  - 파이프를 통해 흐르는 데이터를 중간중간 필터 모듈이 처리하는 패턴. 
    . Broker pattern 
    . Peer-to-peer pattern 
    . Blackboard pattern  - "블랙보드"에 비유되는 중앙 저장소에 데이터를 공유 . 
     (interpreter패턴도 여기 들어갈 수 있는데, 아래꺼랑 헤깔려서 일단 제외)

 

 

SW 디자인 패턴

정의

디자인 패턴은 소프트웨어 설계 단계에서 특정 문제를 해결하는 일반적인 해법을 제공합니다. 디자인 패턴은 보다 구체적이며, 작은 범위의 설계 문제에 적용됩니다.

종류

  1. 생성 패턴: 객체 생성과 관련된 패턴으로, 싱글턴, 팩토리 메서드, 추상 팩토리, 빌더, 프로토타입 등이 있습니다.
  2. 구조 패턴: 객체 간의 구조화된 관계를 설명하는 패턴으로, 어댑터, 브리지, 컴퍼지트, 데코레이터, 퍼사드, 플라이웨이트, 프록시 등이 있습니다.
  3. 행동 패턴: 객체 간의 상호작용과 책임을 다루는 패턴으로, 책임 연쇄, 명령, 해석자, 반복자, 중재자, 메멘토, 옵저버, 상태, 전략, 템플릿 메서드, 방문자 등이 있습니다.

Posted by yongary
,