본문 바로가기
Computer Science Foundation/Design Patterns

[Design patterns.1] 시작편

by 담백로봇 2024. 4. 21.

출처:https://refactoring.guru/ko/design-patterns


[리팩토링 구루] 라는곳에서 디자인패턴을 기가 막히게 피규어와 같이 설명해서 이를 정리해보고자한다.

 

디자인 패턴들은 소프트웨어 디자인 과정에서 자주 발생하는 문제들에 대한 일반적인 해결책들입니다. 이는 당신의 코드에서 반복적으로 되풀이되는 디자인 문제들을 해결하기 위하여 맞춤화할 수 있는 청사진들을 미리 만들어 놓은 것과 같습니다.

 

디자인 패턴은 크게 3가지 카테고리 (생성 패턴 5개, 구조 패턴 7개 , 행동 패턴 10개) 으로 이루어 져있다.

 

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

 

 

왜 패턴을 배워야하나요?
1.디자인 패턴은 소프트웨어 디자인의 일반적인 문제들에 대해 시도되고 검증된 해결책들을 모은 것입니다. 이러한 문제들을 다루지 않더라도 패턴을 알고 있으면 여전히 쓸모가 있는데, 그 이유는 패턴을 배우게 되면 객체 지향 디자인의 원칙들을 사용해 많은 종류의 문제를 해결하는 방법들을 배울 수 있기 때문
2.디자인 패턴은 당신과 당신의 팀원들이 더 효율적으로 의사소통하는 데 사용할 수 있는 공통 언어를 정의합니다. 예를 들어서 당신의 팀이 디자인 패턴을 이해하면 업무 처리 중 당신이 '그 문제를 위해서는 그냥 싱글턴을 사용하세요'라고 말하면 모두가 당신이 무엇을 뜻했는지 이해할 수 있을 것이며 싱글턴 패턴에 포함된 개념들은 설명할 필요도 없을 것

 

패턴에 대한 비판
많은 초보자는 패턴을 갓 배운 후, 더 간단한 코드로도 문제 해결이 되는 상황에도 모든 곳에 패턴을 적용하려고 합니다. 이것은 최근에 패턴에 익숙해진 많은 초보자를 괴롭히는 문제입니다.

 

고로 패턴은 절대적인것이 아닌 참고만할 지식정도만 알고있으면된다.

 

객체 지향 프로그래밍

디자인 패턴은 결국 객체 지향을 예쁘고 효율적으로 하기위한 방식을 배우는것이다. 아래 간단한 객체지향 프로그래밍을 위한 개념을 설명. SOLID는 객체지향의 핵심 단어이니 숙지할것.!!

 

 

아래 슬라이드는 클래스 다이어그램을 표시한 관계의 의미이므로 이또한 참고할것

 

이상으로 오랜만에 블로그 작성 시작이다.

댓글