본문 바로가기

IT 기타

[IT 상식] Design Pattern

반응형

소프트웨어 디자인 패턴(software design pattern)

특정 문맥에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책이다.

소스나 기계 코드로 바로 전환될수 있는 완성된 디자인은 아니며, 다른 상황에 맞게 사용될 수 있는 문제들을 해결하는데에 쓰이는 서술이나 템플릿이다.

디자인 패턴은 프로그래머가 어플리케이션이나 시스템을 디자인할 때 공통된 문제들을 해결하는데에 쓰이는 형식화 된 가장 좋은 관행이다.

디자인패턴은 객체지향 언어에 맞춰 발표된것으로 객체 관련된 패턴이 많이 사용된다.

즉, 서브시스템에 속하는 컴포넌트들끼리의 관계를 설계하기 위한 참조 모델이 많다.

 

예1) 객체 생성시 중복적으로 일어나는 문제 해결

예2) 클래스나 객체를 조합 시 구조 형성

예3) 객체 간의 상호작용과 책임 분배 정의

 

현재는 더 많은 디자인 패턴이 있다.

 

wikipedia - 소프트웨어 디자인 패턴

4인방 (Gang of Four) 패턴 생성 패턴 추상 팩토리, 빌더, 팩토리 메소드, 프로토타입, 싱글턴
구조 패턴 어댑터, 브리지, 컴포지트, 데코레이터, 퍼사드, 플라이웨이트, 프록시
동적 패턴 책임 연쇄, 커맨드, 인터프리터, 반복자, 중재자, 메멘토, 옵서버, 상태, 전략, 템플릿 메소드, 비지터
동시성 패턴 액티브 오브젝트, Balking, 바인딩 속성, 더블 체크 라킹, 이벤트 기반 비동기, 가디드 서스펜션, 조인, 락, 모니터(동기화), 프로액터, 반응자 패턴, 읽기 쓰기 락, 스케줄링(컴퓨팅), 스레드 풀, 스레드 로컬 스토리지
아키텍처 패턴 프론트 컨트롤러, 인터셉터, 모델-뷰-컨트롤러, 모델-뷰-프리젠터, 모델-뷰-뷰모델, 다층 구조, 사양, 발행-구독 모델, 네이키드 오브젝트, 서비스 로케이터, 액티브 레코드, 아이덴티티 맵, 데이터 접근 객체, 데이터 전송 객체, ADR, 제어 반전
기타 패턴 블랙보드, 비즈니스 델리게이트, 컴포지트 엔티티, 의존성 주입, 인터셉터 필터, 지연된 로딩, 모의 객체, 널 객체, 객체 풀, 서번트, 트윈, 타입 터널, 메서드 체이닝

 

번외) 아키텍처 패턴과 디자인 패턴

특징 디자인 패턴 아키텍처 패턴
적용 범위 특정 클래스 또는 객체 설계 시스템 전체 구조 설계
세부성 미세한 수준 거시적인 수준
초점 코드 구현 및 상호작용 모듈 구성 및 시스템 설계
Singleton, Observer 등 MVC, Microservices 등

 

참조

https://ko.wikipedia.org/wiki/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4_%EB%94%94%EC%9E%90%EC%9D%B8_%ED%8C%A8%ED%84%B4

 

소프트웨어 디자인 패턴 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 소프트웨어 디자인 패턴(software design pattern)은 소프트웨어 공학의 소프트웨어 디자인에서 특정 문맥에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결

ko.wikipedia.org

https://4z7l.github.io/2020/12/25/design_pattern_GoF.html

 

[Design Pattern] GoF(Gang of Four) 디자인 패턴 - HERSTORY

디자인 패턴이란 디자인 패턴은 모듈의 세분화된 역할이나 모듈들 간의 인터페이스 구현 방식을 설계할때 참조할 수 있는 전형적인 해결 방식을 말한다. 디자인 패턴을 통해 설계 문제, 해결 방

4z7l.github.io

 

반응형