본문 바로가기
프로그래밍

프로그래밍 「 추천 편」디자인 패턴의 종류

by grapedoukan 2023. 7. 2.
728x90

이 장과 다음 장을 읽기 전에 전제 조건:

  • 컴퓨터 프로그래밍에 대한 지식이 필요합니다.
  • 객체 지향 개념에 대한 이해가 필요합니다.

"디자인 패턴을 이해하고 구현하면 소프트웨어 개발 프로세스가 크게 향상됩니다."

시작하자. 제목에서 알 수 있듯이 이것은 우리가 알고 있든 없든 소프트웨어 프로그래머가 일반적으로 사용하는 주요 디자인 패턴을 간략하게 소개하는 것을 목표로 합니다.

이러한 디자인 패턴은 세 가지 주요 범주로 분류할 수 있지만 널리 사용되는 추가 범주도 있습니다. 주요 범주는 다음과 같습니다.

  • 창조 패턴
  • 구조적 패턴
  • 행동 패턴

이 외에도 다음과 같이 개발자가 일반적으로 사용하는 다른 범주도 있습니다.

  • 아키텍처 패턴
  • 동시성 패턴
 

패턴 대 주요 초점 영역

창조 패턴

먼저 "창조"라는 용어를 이해합시다. 지금까지 나와 함께 있습니까?

대!

생성 패턴은 주로 객체 생성을 중심으로 이루어집니다. 클래스 객체를 만드는 방법과 쉽게 적응하고 확장할 수 있는 방법에 대한 지침을 제공합니다.

생성 패턴은 소프트웨어에서 개체를 효율적으로 생성할 수 있는 다양한 기술과 접근 방식을 제공합니다.

"인형, 자동차, 테디베어와 같은 다양한 종류의 장난감을 생산하는 장난감 제조 공장이 있다고 상상해 보십시오.

각 유형의 장난감이 장난감을 형성하는 금형이라고 생각하십시오. 장난감을 효과적으로 관리하고 만들려면 제공된 입력을 기반으로 각 Mold 개체를 선택하기 위해 장난감 제조 기계에 일부 입력을 전달하여 특정 개체를 만들어야 합니다.

이 객체 생성 목적을 위해 우리는 이 창조 패턴이 필요합니다."

창조 패턴 원칙을 고수하는 몇 가지 기술/패턴이 있습니다. 주목할만한 것들 중 일부는 다음과 같습니다.

  • 싱글톤 패턴
  • 팩토리 패턴
  • 추상 팩토리 패턴

따라서 우리가 작성하는 특정 코드 조각이 객체를 만들려고 할 때마다 생성 패턴을 따릅니다.

 

구조적 패턴

구조적 패턴은 더 큰 그림을 만들기 위해 퍼즐 조각을 조립하는 것처럼 소프트웨어 시스템의 다양한 구성 요소를 구성하고 연결하는 데 도움이 됩니다.

"컴퓨터의 디지털 도서관에 정리하고 전시하고 싶은 실제 책 모음이 있다고 상상해 보십시오. 그러나 디지털 도서관 소프트웨어는 PDF와 같은 특정 파일 형식의 전자책만 허용합니다.

이를 극복하기 위해 구조적 패턴은 실제 책과 디지털 도서관 사이의 다리 역할을 합니다. 실제 책 형식을 필요한 디지털 형식으로 변환하여 디지털 라이브러리에 원활하게 통합할 수 있습니다.

이 경우 물리적 책과 디지털 책 사이의 격차를 해소하기 위해 구조적 패턴이 필요합니다."

구조 패턴 지침을 따르는 알려진 패턴 중 일부는 다음과 같습니다.

  • 어댑터 패턴
  • 데코레이터 패턴
  • 프록시 패턴

이러한 패턴을 따르면 견고한 구조를 유지하면서 이해하기 쉽고, 수정하고, 확장할 수 있는 소프트웨어를 구축할 수 있습니다.

 

행동 패턴

이 패턴은 서로 다른 객체가 서로 통신하고, 협업하고, 조정하는 방법에 대한 청사진을 제공합니다.

또한 특정 동작을 별도의 객체로 캡슐화하여 코드를 보다 모듈화하고 재사용할 수 있도록 하는 데 도움이 됩니다.

"온라인 쇼핑 애플리케이션에서 사용자는 신용 카드, PayPal 또는 대금 상환과 같은 다양한 지불 방법을 선택할 수 있습니다. 각 결제 방법에는 결제 처리를 위한 고유한 동작과 로직이 있습니다.

여기서 주요 개념은 사용자가 결제를 하는 것이지만 결제 방식은 사용자 선택에 따라 다릅니다.

지불 모드에 따라 개체를 만들고 각 입력을 전달하여 지불해야 합니다.

이 문제를 해결하기 위해 행동 패턴을 사용할 수 있습니다.

알려진 행동 패턴 중 일부는 다음과 같습니다.

  • 관찰자 패턴
  • 전략 패턴
  • 명령 패턴

이 행동 패턴을 구현함으로써 우리는 쉽게 이해하고 유지 관리 및 수정할 수 있는 시스템을 설계할 수 있습니다.

 

다음 장에서 알려진 모든 패턴과 아키텍처 패턴 및 동시성 패턴과 같은 추가 패턴에 대해 논의해 보겠습니다.

728x90