ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 디자인 패턴
    개발공부 2023. 6. 26. 21:19

    디자인 패턴(Design Pattern)

    디자인 패턴(Design Pattern)은 소프트웨어를 설계할 때 자주 발생하는 문제들에 대한 해결책의 형식들이며, 모종의 표준 설계 방식이다. 어플리케이션 개발과정에서 발생하는 문제는 유사한 경우들이 많고, 해결책도 형식화 할 정도로 유사한(동일한) 경우가 많기 때문에 패턴이라 이름 붙인것 같다. 이처럼 디자인 패턴은 이미 많은 개발자들이 거쳐온 문제 해결의 방법으로서 형식화가 된 만큼 효율적이며 안정적이라 할 수 있다. 단, 디자인 패턴이 모든 문제의 답은 아니다. 굳이 디자인 패턴을 사용하지 않아도 될 수도 있으며 사용한다면 왜 효율적인지, 언제 써야하는지, 어떻게 써야하는지 등에 대해 충분한 인지가 필요하다.

     

    이런 디자인 패턴의 종류는 엄청나게 많으며 다양하지만, 이중 23개의 패턴을 분류한 'GoF 디자인 패턴' 이 자주 언급된다. 23개의 패턴은 5가지의 생성 패턴, 7가지의 구조패턴, 11가지의 행위 패턴으로 분류된다.

     

    생성 패턴 구조 패턴 행위 패턴
    추상 팩토리
    빌더
    팩토리 메서드
    프로토 타입
    싱글톤

    어댑터
    브리지
    컴포지트
    데코레이터
    퍼사드
    플레이웨이트
    프록시
    책임 연쇄
    커맨드
    인터프리터
    이터레이터
    미디에이터
    메멘토
    옵저버
    스테이트
    스트레이티지
    템플릿 메서드
    비지터

     

    생성 패턴

    생성 패턴은 객체 생성과 관련되어 사용되는 패턴으로, 객체를 수정해도 호출부가 영향을 받지 않게 한다.

    즉, 객체가 생성되는 과정의 유연성을 높이고 코드 유지를 쉽게 하는데 사용된다.

    구조 패턴

    구조 패턴은 객체를 조합해서 프로그램의 구조를 더 크게 만드는 패턴이다.

    프로그램의 자료구조, 인터페이스 구조 등 구조를 설계하는데 활용한다.

     

    행위 패턴

    객체간의 알고리즘이나 책임 분배 등 객체간의 커뮤니케이션에 관한 패턴이다.

    객체 하나로는 수행하기 힘든 작업을 여러 객체를 이용해 작업을 분배하며, 결합도를 최소화하는데 중점을 둔다.

     

    (각 세부적인 패턴은 따로 게시글을 통해 하나하나 실제 코드와 함께 작성하려 한다.)

    정리

    개인적인 생각으로, 디자인 패턴의 중점은 효율성이 아닐까 생각한다. 이터레이터나 싱글톤같은 패턴은 메모리나 연산을 효율적으로 사용할 수 있게 해준다. 또한 팩토리 패턴 등은 객체간의 관계를 유연하게하고 분리하여 OOP의 개방폐쇄 원칙에 맞게 개발 할 수 있게 된다. 즉 객체지향 프로그래밍의 장점인 확장성, 재사용성, 유지보수성 등을 얻기 때문에, 개발에 있어서 효율성을 얻을 수 있다고 생각한다.

     

     

    '개발공부' 카테고리의 다른 글

    메이븐  (0) 2024.06.13
    [javascript] for문과 setTimeout  (1) 2023.11.14
    [프로그래머스] 콜라츠 추측 - java  (0) 2023.06.25
    TCP와 UDP의 특징과 차이점  (0) 2023.06.20
    Spring 삼각형의 요소 PSA  (0) 2023.06.15
Designed by Tistory.