Skip to content

Latest commit

 

History

History
64 lines (43 loc) · 2.9 KB

designp.md

File metadata and controls

64 lines (43 loc) · 2.9 KB

디자인 패턴

디자인 패턴이란?

"소프트웨어를 설계할때 특정 부분에서 자주 발생하는 고질적인 문제들이 또 발생했을때 재사용할 수 있도록 하는 훌륭한 해결책"

"개발자들이 협업을 할 때, 의사소통을 효율적으로 할 수 있도록 도와주는 것"

"효율적으로 코드를 개선할 수 있다"

"바퀴를 다시 발명하지마라"

각기 다른 소프트웨어 모듈이나 기능을 가진 다양한 프로그램 시스템들을 개발할때에도 서로간의 공통되는 설계 문제가 존재하고, 이를 해결하는 방법들의 공통점을 패턴이라고 한다.

말 그대로 디자인 패턴이란, 개발자들끼리 협업을 잘할 수 있도록 코드들의 패턴을 짜면서 코드의 질, 효율성을 높히는 것이라 부를 수 있다는 것을 알 수 있다.


디자인 패턴의 장점과 단점

장점

  • 개발자 간의 원할한 의사소통
  • 소프트웨어 구조 파악 용이
  • 재사용을 통한 개발 시간 단축
  • 설계 변경 요청에 대한 유연한 대처
  • 야근없이, 빠른 퇴근 가능
  • 불필요한 리소스 낭비 방지

단점

  • 객체지향 설계 / 구현 위주로 사용된다.
  • 초기 투자 비용 부담

디자인 패턴 유형

  • Creation Pattern

    • 객체의 생성에 관련된 패턴. 객체의 생성 로직을 숨김으로써 유연성을 향상시킨다.
  • Structural Pattern

    • 클래스와 객체의 구성에 관련된 패턴
  • Behavioral Pattern

    • 객체와 객체 간의 통신에 관련된 패턴

디자인 패턴 종류

GoF 디자인 패턴의 분류

이름 설명
생성 패턴 객체 생성에 관련된 패턴 객체의 생성과 조합을 캡슐화하여 특정 객체가 생성, 변경되어도 프로그램 구조에 영향을 크게 받지 않도록 유연성을 제공한다.
구조 패턴 클래스나 객체를 조합해 더 큰 구조를 만드는 패턴 예를 들어 서로 다른 인터페이스를 지닌 2개의 객체를 묶어 단일 인터페이스를 제공하거나, 객체들을 서로 묶어 새로운 기능을 제공하는 패턴이다.
행위 패턴 객체나 클래스 사이의 알고리즘이나 책임 분배에 관련된 패턴 한 객체가 혼자 수행할 수 없는 작업을 여러 개의 객체로 어떻게 분배하는지, 또 그렇게 하면서도 객체 사이의 결합도 최소화하는 것에 중점을 둔다.

GoF 디자인 패턴 종류

  • 생성 패턴
    • 추상 팩토리 , 빌더 , 팩토리 메서드 , 프로토타입 , 싱글턴
  • 구조 패턴
    • 어댑더 , 브리지 , 컴버지트 , 데커레이터 , 퍼사드 , 플라이웨이트 , 프록시
  • 행위 패턴
    • 책임 연쇄 , 커맨드 , 인터프리터 , 이터레이터 , 미디에이터 , 메멘토 , 옵저버 ,스테이트 , 스트레티지 , 템플릿 메서드 , 비지터