디자인 패턴이란

💡소프트웨어 설계를 위한 디자인 패턴에 대하여 정리하였습니다.

 

디자인 패턴(Design Pattern)

  • 디자인 패턴은 소프트웨어 설계에서 자주 발생하는 문제를 해결하기 위한 재사용 가능한 해결책을 뜻합니다.

디자인 패턴은 반복적으로 나타나는 설계 문제에 대한 최적화된 해결 방안을 정리한 것이며, 구체적인 코드를 제시하기보다는 문제를 해결하는 방법론과 구조적인 틀을 제공합니다.

디자인 패턴의 목적

  • 검증된 설계 패턴을 사용하여 코드의 재사용성을 높입니다.
  • 설계 패턴을 적용하여 명확한 코드 구조와 유지보수를 쉽게 합니다.
  • 변경에 유연하게 대처할 수 있는 구조를 만들어 확장성을 높입니다.
  • 소프트웨어 개발자 간에 문제 해결 방법에 대한 공통적인 용어와 접근 방식을 제공합니다.

객체 지향 4원칙

  • 디자인 패턴은 객체 지향 설계의 4가지 원칙을 기반으로 합니다.

추상화

  • 세부 구현을 숨기고 상위 개념만을 노출합니다.

캡슐화

  • 데이터와 기능을 하나로 묶고 외부에 노출되지 않도록 보호합니다.

상속

  • 기존 클래스를 확장하여 재사용성을 높입니다.

다형성

  • 동일한 인터페이스나 부모 클래스를 통해 다양한 방식으로 동작합니다.

디자인 패턴의 종류

  • 디자인 패턴은 크게 생성 패턴, 구조 패턴, 행위 패턴으로 나눌 수 있습니다.

생성 패턴(Creational Patterns)

  • 객체 생성과 관련된 패턴으로, 객체 생성 과정을 캡슐화하여 코드의 유연성을 높입니다.
  • 싱글톤 패턴, 팩토리 패턴, 빌더 패턴 등이 있습니다.

구조 패턴(Structural Patterns)

  • 클래스나 객체를 구성하는 방법에 대한 패턴으로, 객체 간의 관계를 조직화하고 효율적으로 관리하는 데 도움을 줍니다.
  • 어댑터 패턴, 데코레이터 패턴, 프록시 패턴 등이 있습니다.

행위 패턴(Behavioral Patterns)

  • 객체 간의 상호작용과 책임 분배에 대한 패턴으로, 객체 간의 의사소통 방법을 정의합니다.
  • 옵저버 패턴, 상태 패턴, 전략 패턴 등이 있습니다.

정리

  • 디자인 패턴은 소프트웨어 개발 과정에서 발생하는 공통적인 문제들을 해결하기 위해 제안된 해결책 모음입니다.
  • 적절한 패턴을 활용함으로써 코드의 유연성과 재사용성을 높이고, 시스템을 더 견고하게 만들 수 있습니다.

참고

https://ittrue.tistory.com/550