본문 바로가기
스터디/기타 (소공, 보안)

[소프트웨어공학] 디자인 패턴

by zoodi 2021. 5. 28.
728x90

💡디자인 패턴이란?

소프트웨어 디자인 패턴(software design pattern)은 소프트웨어 공학에서 소프트웨어 디자인에서 특정 문맥에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책이다. 소스나 기계 코드로 바로 전환될수 있는 완성된 디자인은 아니며, 다른 상황에 맞게 사용될 수 있는 문제들을 해결하는데에 쓰이는 서술이나 템플릿이다. (출처 : 위키백과)

 

- SW를 설계 할 때 자주 발생하는 문제를 재사용하여 해결할 수있도록 하는 해결책

- 이미 만들어져 잘 되는 것을 처음부터 다시 만들 필요 X

- 패턴 : 각기 다른 SW 모듈이나 기능을 다양한 응용 SW 시스템을 개발할 때에도 서로 공통되는 설계 문제나 해결책에 공통점이 있다. 이러한 유사점을 패턴이라고 한다.

 

💡디자인 패턴 종류

GoF 디자인 패턴

- Gang of Fout 이라 불리는 사람들이 만듦

- 23가지의 디자인 패턴을 정리하고 각각의 디자인 패턴을 생성/구조/행위 3가지로 분류했다.

1) 생성 : 객체 생성 관련 패턴

2) 구조 : 클래스나 객체를 조합한 더 큰 패턴

3) 행위 : 객체나 클래스 사이 알고리즘 관련 패턴

 

GoF 디자인 패턴 종류

1) 생성 패턴

  • 싱글톤 : 전역 변수를 사용하지 않고 객체 하나만 생성하여 생성된 객체를 어디에서든지 참조할 수 있도록 하는 패턴
    •     장점 : 객체를 어디에서든지 참조 가능, 인스턴스가 1개이므로 불필요한 메모리 낭비 최소화
    •     단점 : 여러 프로세스가 동시에 참조하는 것은 불가능 
  •  추상 팩토리
  •  팩토리 메서드

 

2) 구조 패턴

  •  컴퍼지트
  •  데커레이터

3) 행위 패턴

  •  옵서버
  •  스테이트
  •  템플릿 메서드
  •  커맨드

 

 

참고 : https://gmlwjd9405.github.io/2018/07/06/design-pattern.html

728x90

댓글