우선 디자인 패턴을 배우기 전에 인지하고 지나가야할 부분 중 하나다.
과연 디자인 패턴이 쓸모가 있는가?
우리는 디자인 패턴이 없으면 잘할 수 없는가?
위와 같은 질문에 대해 대답할 수 있어야할 것이다.
그렇지 않고서 배우는 것은 수동적인 배움에 불과할 것이다.
알아보자
디자인 패턴 중
디자인도 알고 패턴도 아는 단어다.
디자인은 어떠한 틀을 말하는 것 같고
패턴은 어떤 정해진 양식을 말하는 것 같다.
맞다.
디자인 패턴은 오랫동안 쓰여저 굳어진 어떠한 우리의 정보 표현 단위다.
**여기서 정보 표현이란 프로그래밍하는 방식이라고 생각하면 되겠다.
즉, 우리가 패턴을 배운다면 앞선 세대들도 알고 뒷 세대들까지 굳어져서 어떠한 것인지 알게 된다는 말이다.
우리가 곱셈공식을 알게 되듯이 말이다.
(a+b)^2는 중학교만 졸업하면 알게되는 것과 마찬가지다. (고등학교인가?)
우리는 자동으로 a^2 + 2*a*b + b^2 라는 공식이 튀어나오는 것과 마찬가지다.
디자인 패턴 또한 해당 패턴 이름을 듣는다면 어떠한 프로그래밍 스타일인지 알 수 있을 것이다.
하지만 여기서 질문이 생길 수도 있다.
그럼 무조건 디자인 패턴대로만 프로그래밍을 해야하나요??
아니다. 하지만 사람들이 바보가 아니다.
사람들이 이것이 많이 쓰여져 정형화가 되었다면 100%는 아니어도 90%는 이것이 가장 효율적이라고 생각해도 된다.
즉, 닭 잡는데 소 잡는 칼을 쓸 필요가 없다.
하지만 소 잡는 칼이 닭도 더 잘 잡는 것을 증명하기 위해 우리가 공부를 한다면 말리지는 않겠다.
그렇게 증명이 된다면 그 또한 후에 패턴으로 굳어질 것이다.
그렇다면 디자인 패턴을 외우면 되는 것이지
굳이 따로 공부해야할 필요가 있나요?
라는 질문이 나올 수 있다.
맞다. 어떻게 구현하는지 외우면 당장 쓸 수는 있을 것이다.
하지만 디자인 패턴이라는 것은 전 세대를 꿰뚫는 것과 마찬가지의 지식의 함축이라 그 안에서 배울 것이 있다.
프로그래밍을 할 때에도 콜백 함수, 클래스를 아무 생각 없이 쓰는 경우가 많지만
디자인 패턴을 공부하면서
왜 이것이 가장 효율적이고 왜 이것은 쓰지 않는지를 통찰하고 돌아보면서 자신을 성장시킬 수 있고
이러한 역량은 디자인 패턴을 쓰는 데에 있는 것이 아니라
전체적인 프로그램의 완성도를 높이는 데에 쓰일 것이다.
디자인 패턴은 몇개나 공부하면 되나요?
위와 마찬가지다.
디자인 패턴은 외우는 것이 아니라 해당 패턴으로 옛날부터 지금까지 내려온 생각을 배운다는 마음 가짐으로 익혀야 할 것이다.
++물론 나도.. 노력하고 있다.
디자인 패턴을 많이 아는 것은 중요하지 않다.
디자인 패턴을 써봤는 지도 중요하지 않다.
왜 이렇게 했을까? 어디에다 쓸 수 있을까? 를 한 번이라도 생각하는 것이 중요할 것이다.
마지막으로 디자인 패턴에 대해서 사견을 말해보자면
디자인 패턴은 무기다.
칼만 가지고 싸울 것인지, 칼과 총을 모두 들고 싸울 것인지
아니면
망치로 땅을 팔 건지, 삽으로 땅을 팔 건지
어떻게든 우리는 프로그래밍을 할 수 있다.
하지만 무엇으로 하느냐는 우리의 손에 달렸다.
또한 망치로 땅을 판다는 판단을 하는 우를 범하지 않기 위해
우리는 디자인 패턴에 대해 왜 이런 식으로 구현했는지를 판단하고 배워보는 것이 좋을 것이다.
시작해보자
'Game Development, 게임개발 > 디자인패턴' 카테고리의 다른 글
Prototype Pattern, 프로토타입 패턴 [디자인패턴] (0) | 2021.10.02 |
---|---|
Observer Pattern, 관찰자, 감시자 패턴 [디자인패턴] (0) | 2021.10.01 |
Flyweight Pattern, 경량 패턴 [디자인패턴] (0) | 2021.09.28 |
Command Pattern, 명령 패턴 [디자인패턴] (0) | 2021.09.27 |
디자인 패턴을 만들어내는 이유 (0) | 2021.09.24 |