제이슨의 개발이야기
[Design Pattern] 프로그래밍 개발에서 디자인 패턴?? GoF? 디자인패턴이란? 본문
저는 디자인 패턴 을 작년(2020) 학교수업을 통해서 공부 했었습니다 그러나 몇개월 지나고 나니깐 기억나는 패턴이 얼마 없더라구요 ㅠㅠ
그래서 요번 기회에 하나씩 복습하고자 블로그에 디자인 패턴을 하나씩 써보자 합니다
일단 처음에 프로그래밍 개발에 있어서 디자인 패턴이 무엇이고 왜 해야할까? 에 대해서 설명 하겠습니다
위키백과 에서 디자인 패턴에 대한 설명은 -> 디자인 패턴(Design pattern)은 건축학 및 컴퓨터 과학에서 사용되는 용어로, 설계 문제에 대한 해답을 문서화하기위해 고안된 형식 방법이다. 이 방식은 건축가 크리스토퍼 알렉산더가 건축학 영역에서 고안한 것을 그 시초로 하며[1], 이후 컴퓨터 과학 등 여러 다른 분야에도 도입되었다.[2]
라고 설명되어 있다라구요 물론 틀린 설명은 아닙니다 그러나 개인적으로 저는 디자인 패턴은 프로그래밍 개발 코드를 최대한 효율적으로 작성 하기 위한 패턴이라고 생각하고 있습니다 그러므로 혹시 누군가가 "디자인 패턴이 뭐야?" 라는 질문을 한다면
"디자인 패턴은 프로그래밍 개발 코드를 최대한 효율적으로 작성 하기 위한 패턴이야!" 라고 설명하시면 됩니다 ㅎㅎ
소프트웨어 개발 영역 에서 디자인 패턴 이란 용어를 구체적으로 제시한 곳은 GoF(Gang of Four) 라 불리는 네명의 컴퓨터 과학 연구자들이 쓴 서적 Design Patterns : Elements of Reusable Object-Oriented Software 란 서적이다
이 서적은 너무 유명해서 아마 큰 도서관에서 쉽게 찾으실 수 있는 책입니다!
GoF가 디자인 패턴을 23가지로 정리하고 세 가지로 크게 분류 했는대
생성 패턴 , 구조패턴 , 행위패턴 이 세가지 입니다.
생성 패턴에는 -> 추상 팩토리(abstract factory) , 빌더(builder) , 팩토리 메소드(factory method), 프로토타입(prototype) , 싱글턴(singleton)이 있고
구조 패턴에는 -> 어댑터(adapter) , 브리지(bridge) , 컴포지트(composite) , 데코레이터(decorator), 퍼사드 (facade),플라이웨이트(flyweight) , 프록시(proxy)
행위 패턴 -> 책임 연쇄(Chain of Responsibility) , 커맨드(command) , 인터프리터(interpreter) , 반복자(iterator) , 미디에이터(mediator) , 메멘토(memento) , 옵서버(Observer) , 스테이트(state) , 스트레티지(strategy), 템플릿 메소드(template method),비지터 (visitor)
가 있습니다 ! 이러한 패턴을 다 알고 재대로 사용할 줄 안다면 너무너무 좋지만 현실적으로 위 패턴을 다 숙지하기 쉽지 않습니다!
그래서 개발자가 자신이 필요로 하고 공부 하고 싶은 패턴을 찾아 충분히 공부해보는 것을 추천합니다 저 역시 저 23가지 중 14가지? 정도만 알고 모르는 패턴도 많습니다 ㅠㅠ 그 14가지 마저도 사용하지 않다보니 잘 기억이 안나는것도 있습니다
그래서 저 역시 블로그에 작성 해보면서 복습할 계획이고 혹시나 이미 알고 있으신분들도 같이 복습해보시는 건 어떨까요? 그리고 디자인 패턴에 대해 잘 모르시는 분들은 꼭 공부 했으면 좋겠습니다!
'디자인 패턴' 카테고리의 다른 글
[디자인패턴]MVC , MVP,MVVM 이란 무엇인가? (0) | 2021.04.13 |
---|---|
[디자인패턴] 데코레이터 패턴(Decorator Pattern) In java (0) | 2021.03.24 |
[Design Pattern] 스트래티지 패턴! strategy pattern (0) | 2021.03.11 |