디자인 패턴을 공부해야 하는 이유와 공부하지 않아도 되는 이유

Mon, Nov 30 2020 04:52:54

1. 공부해야 하는 이유

사람들 말할 때 옵저패 패턴을 썼네, 팩토리 패턴을 썼네, 싱글톤 패턴을 썼네.. 이런 얘기하는데.. 그걸 모르면 말이 안 통합니다. 그래서 배워야 합니다. 무슨 무슨 패턴을 써서 만들었다.. 이렇게 말하는 건, 자기가 프로그래밍할 때… 이러 이러한 코드로 변수 뭘 두고 함수 뭘 두고.. 이렇게 말하면 상호 말이 안 통하니까.. 무슨 무슨 패턴을 썼다.. 이렇게 간편하게 말하는 겁니다.

2. 공부하지 않아도 되는 이유

그리고, 디자인패턴 이런 거 몰라도 프로그래밍을 하다보면 디자인 패턴책에 나오는 비스무리한 패턴을 스스로 고안해서 쓰게 됩니다. 디자인패턴은 1990년대 중반에 보편적으로 알려졌습니다.
https://en.wikipedia.org/wiki/Software_design_pattern#History
그러면 디자인 패턴책 나오기 이전 사람들은 디자인패턴이라는거 몰랐던게 아니고, 다들 디자인패턴을 썼어요. 개발자들이 개발하면서 자주 쓰는 패턴을 GoF 책으로 내서 그게 히트치고 보편적으로 알려진거죠. 굳이 디자인패턱 책을 공부하지 않아도, 여러 책에 무슨 무슨 패턴이라고 패턴 이름을 명시하지는 않았지만, 반복적인 “패턴”이 나옵니다.

옵저버 패턴은 그 흔한 자바책에 나오고, 그 흔한 c 책에 callback 라고 나옵니다.
팩토리 패턴도 그 흔한 자바책에 나오고, c 책에 subject_create (void *object) 이런 함수로 써먹죠. 아니면 enum 으로 유사하게 써먹던가요. 퍼사드 패턴도 그 흔한 자바책에 나오고요~~ 팩토리, 퍼사드, 데코레이터 패턴은 OOP 프로그래밍을 공부하면 기본적으로 나옵니다. 다만, 책에서 무슨 무슨 패턴이라고 이름을 명시하지는 않았을 뿐이죠. 그리고 데코레이터 패턴은 c 언어에서 union, struct 같은 걸로 interface 만들면서 유사하게 써먹을 수 있습니다. 마찬가지로 데코레이터 패턴이라고 명시하지는 않았지만, c 책에도 나오는거죠. 싱글톤 패턴은.. atomic 연산 비스무리하고요. 마찬가지로 c 책, 자바책, 시스템 프로그래밍책에도 나옵니다. 이것저것 공부 열심히 하면 디자인 패턴 책 사서 따로 굳이 공부하지 않아도 되요~~ 하지만, 무슨무슨 패턴이라는게 뭘 의미하는지는 알아야겠죠.