ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 디자인패턴 - 소개
    Web 개발/디자인 패턴 2022. 12. 19. 15:33

    디자인패턴 분류 기분

    • 복잡성 
    • 상세도
    • 설계중인 시스템에 적용 범위
    • 의도 
    • 목적

    가장 기본적인 하위 수준 패턴을 이디엄이라고 한다. 일반적으로 이디엄은 하나의 프로그래밍 언어에만 해당한다.

     

    가장 보편적인 상위 수준 패턴은 아키텍쳐 패턴이다. 개발자들은 거의 모든 언어로 이러한 패턴을 구현할 수 있다. 아키텍쳐 패턴은 애플리케이션 전체구조(아키텍처)를 설계하는데 사용할 수 있다.

    디자인 패턴의 주요 세가지 그룹

    • 생성 패턴 : 기존 코드를 재활요하고 유연선을 증가시키는 객체 생성 매커니즘을 제공한다.
    • 구조 패턴 : 구조를 유연하고 효율적으로 유지하면서 객체와 클래스를 더 큰 구조로 조합하는 방법을 설명한다.
    • 행동 패턴: 객체 간의 효과적인 의사소통과 책임 할당을 처리한다.

    디자인 패턴은 객체지향 설계의 일반적인 문제에 대한 전형적인 해결책이다. 한 해결책이 다양한 프로젝트에서 계속 반복되면 결국 누군가 이름을 붙이고 핵결책이 자세히 설명된다. 이것이 기본적으로 패턴이 발견되는 방법이다.

     

    좋은 디자인의 특징

     

    코드 재사용

    코드재사용은 개발비용을 줄이는 가장 일반적인 방법의 하나이다. 코드를 재사용하는 의도는 상당히 명백하다 무언가를 계속 처음부터 다시 개발하지 말고, 기존 코드를 새 프로젝트에 다시 사용하자는 것이다.

     

    하지만 새로운 상황에서 기존 코드를 작동하게 하는 것은 쉽지 않다. 왜냐하면 컴포넌트 간의 단단한 결합, 인터페이스 대신 구상클래스들에 대한 대한 의존 관계, 하드코딩 된 작업과 같은 여러가지 요인들이 코드의 유연성을 감소시키고 재사용성을 어렵게 만들기 때문이다.

     

    에릭 감마의 코드 재사용에서의 디자인 패턴 역활의 견해

    저는 재사용을 세가지 수준으로 이해합니다.

    가장 낮은 수준에서 클래스들을 재사용합니다. 그 예로는 클래스 라이브러리, 컨테이너 및 컨테이너/반복자와 같은 어떤 클래스 '팀'이 있습니다.

    반면 프레임워크들은 최고수준에서, 해당 프레임워크 사용자들의 디자인적인 결정을 정제하려고 열심히 노력한다. 프레임워크들은 문제를 해결하기 위한 핵심 추상화들을 식별한 후 해당 추상화들을 클래스로 표현하고 그들사이의 관계를 정의합니다.

    프레임워크는 일반적으로 단일 클래스보다 입자들이 큽니다. 또한 프레임워크에 연결할 때는 어딘가를 서브클래싱하여 연결합니다. 프레임워크는 사용자 지정행동을 정의할 수 있도록해주고, 사용자가 어떤 작업을 수행항 차례가 되면 사용자를 호출합니다.(어떤 결정을 하게 한다.)

    중간 수준의 재활용도 있습니다. 저는 디자인패턴이 이 수준에 속한다고 생각합니다. 디자인패턴은 프레임워크 보다 더 작고 추상적입니다. 디자인 패턴은 몇 개의 클래스들이 서로 어떻게 관련이 되어 있으며, 상호 작용할 수 있는지에 대한 상세한 설명입니다.
    클래스 -> 패턴 -> 프레임워크로 이동할수록 재사용 수준이 높아진다.

    모든 노련한 개발자들은 앱의 아키텍처를 설계할 때 미래에 변경이 가능하게 하려고 노력합니다.

    댓글

Designed by Tistory.