"쉽게 배워 바로 써먹는 디자인 패턴"을 읽고~
오늘은 디자인 패턴이 무엇인지 알아볼게요!
디자인 패턴의 주체는 디자인이 아니라 패턴
이 주체입니다.
어? 그렇다면 디자인패턴
과 패턴
은 무엇일까요.
디자인 패턴
이란 소프트웨어 디자인 과정에서 자주 발생하는 문제들에 대한 전형적인 해결책입니다.
패턴
은 표준화 된 라이브러리처럼 ctrl x, ctrl v 가능한게 아니에요. 패턴은 코드 조각이 아니라 특정 문제를 해결하는 개념 입니다.
아니에요. 비슷해보이지만 달라요!!!!!! 간단히 말하자면 알고리즘은 절차
라면, 패턴은 설계 도면
같은거에요. 응용 가능한 도면.
다시 정리하자면 패턴은 재사용성을 가지는 객체지향 소프트웨어의 요소입니다.
패턴은 의도
와 목적
에 따라 분류가 나뉘어요.
코드의 재사용성과 유연성을 증가시키는 객체 생성 메커니즘을 공유하는 생성 패턴
객체와 클래스를 확장시키는 방법인 구조 패턴
객체간의 효율적인 행동 처리와 분리를 위한 행동 패턴
이 있습니다.
패턴을 배웠다고 막 가져다 쓰면 안돼요
“망치만 있으면 모든 것이 못처럼 보인다.”
뭔 말이냐면 꼴깝떨지 말라는 말입니다.
패턴에 대해 배웠다고 더 간단한 일에 굳이 패턴을 사용하여 코드를 복잡하게하는 바보같은짓 하지 말라는 거에요
디자인 패턴과 성능은 별개에요.
디자인 패턴은 코드의 가독성과 유지보수를 위해 객체의 메서드를 분리합니다. 분리로 인하여 호출도 자주 발생하겠죠??
함수 호출과 객체간 호출은 적을수록 성능이 좋답니다 그러니까 너무 많이 사용하지말고 적절히 사용해야 한다는 뜻이에요.
디자인 패턴이 무엇인지 알아보았어요. 이제 다음부터는 생성, 구조, 행동 패턴에 대해 알아보고 코드를 구현해볼거에요.
참고로 이 책은 PHP로 쓰였습니다.
듣기만하던 php를 책으로 먼저 실습할 줄 몰랐는데,,
아무튼 열심히 해볼게요.
클린 코드는 가독성을 위해, 리팩토링은 코드의 유지보수를 위해 읽는다고 생각합니다.
그렇기때문에 클린코드를 뛰어넘고, 패턴에 대해 공부한 후, 리팩토링을 공부하는게 도움되는 순서일 것이라고 판단했습니다.
뭐 읽어서 나쁜건 없지만~ 바쁘다 바빠 현대사회에서 적당한 생략과 선택은 가능하지 않은가요?
나름의 변명같기도 하네요. 제 생각은 그렇다,, 입니다~ 책을 선택한 이상, 이 책을 열심히 읽고 공부해야겠죠? 마무리하고 공부하러 가겠습니다. 화이팅! O(`・∀・´)○