도서/JAVA 객체지향 디자인패턴

디자인 패턴이 뭐냐 🤔

괴발맨 2022. 2. 3. 20:57

나는 객체 지향 시스템을 개발하는 일을 한다.

그런데 일을 시작한지 얼마 되지 않아서 그런지,

아니면 내가 머리가 나쁜건지,

아니면 다들 그런건지

단 하루라도 난관에 부딪치지 않은 적이 없다.

머리를 쥐어짜며 문제를 어떻게든 해결해도

뭔지 모를 찝찝함이 남아있을 때가 있다.

디자인 패턴들을 마스터했다면, 훨씬 빠르게 확장성있는 코드를 작성했을텐데....

디자인 패턴

디자인 패턴이 뭘까?

JAVA 객체 지향 디자인 패턴 이라는 책에서는 디자인 패턴을 다음과 같이 소개한다.

디자인 패턴은 우리 주변에서 자주 반복해서 발생하는 문제와 그 문제를 해결하는
핵심을 기술해 동일한 일을 두번 다시 하지 않고 해결할 수 있도록 한다


그러니까, 쉽게 말하면 어떤 유형의 문제를 해결할 수 있게 도와주는 도구다.

나는 수능을 잘 보진 못했지만,
수능 수학을 준비할때 문제를 유형별로 분류하여
각 유형에 맞는 풀이와 공식을 습득하려고 했던 기억이 있다.
근의 공식을 이용해 이차방정식의 해를 구하고,
피타고라스의 정리를 이용해 삼각형의 변의 길이를 구했었다.

수학 공식들

아무튼, 디자인 패턴도 이와 비슷한 것 같다.
코드를 짤때도 비슷한 유형의 문제들을 마주칠 때가 있는데,
디자인 패턴을 수학 공식처럼 활용해
개발할때 마주하는 특정 유형의 문제를 가장 좋은 방법으로 해결할 수 있게 도와준다.

그래서, 아주 고맙게도
Gang of Four 라고 불리는 분들이
23 개나 되는 디자인 패턴들을 만들어 주셨다.

앞으로 JAVA 객체 지향 디자인 패턴 책에서 나오는 디자인 패턴들을 하나씩 소개해볼 계획이다.