본문 바로가기

Programming/과거포스팅

디자인패턴(Design Pattern)이란?

디자인패턴이란?

프로그래밍을 하다보면 디자인패턴이란 용어를 접하게 된다.

디자인 패턴은 객체지향 언어에서 클래스와 클래스의 메서드를 사용하는 패턴, 즉 특정 의도를 가지는 방법을 의미한다.

실무에서 실력이 뛰어난 사람의 코드를 보면 같은 동작을 하는 코드지만 심플하고 이해하기 쉽고 잘 짜여저 있다.

어떻게 그런게 가능할까?


개발을 하다보면 요구사항을 수용하고 자신이 만든 클래스를 수정하다보면 코드는 누더기가 되고

도무지 이게 무슨 코드인지 알수가 없다.

이런 경험들을 한 사람들은 이에대해 고민했고 프로그램안의 클래스들이 갖는 구조에서 일정한 형태를 찾아내게 되었다.

이럴 정리하여 객체지향적인 설계에 대한 노하우를 쌓기 시작하였고 이것이 정립되었다.

이것이 바로 디자인 패턴이다.


나는 디자인패턴을 공부하기전에 개발을 하면서 삽질을 많이 하였고. 여러 노하우가 생겼다. 코드를 보다 쉽게 확장 유지보수 하는 법

생성자의 파라미터가 많을 경우 Builder를 사용하는 법 등 혼자서 또는 검색을 통하여 코드를 보다 좀더 잘 짜는 법을 익혔는데

디자인 패턴을 공부하다보니 내가 쌓은 노하우들은 이미 정립된 하나의 디자인 패턴이었던 경우가 많았다.

물론 정립된 패턴은 내가 짠 코드보다 완벽하게 정립되어있다.


그래서 요즘 디자인 패턴이라는 것에 관심이 많이 생겼고.. 디자인 패턴과 관련된 여러 책들을 보고 있다.

디자인 패턴을 공부하면 좀더 쉽고 수주높은 객체지향적 설계가 가능할 것같다고 생각된다.


패턴에 관한 책들을 보는데 설명하는 패턴은 일정하다.

수십년간 정립된 노하우가 쌓여있기 때문에 책들의 차이는 설명하는 방법과 그 패턴을 얼마나 깊이있게 다루느냐인거 같다.

우선 쉬워보이는 책들을 다룬후 조금씩 더 깊이있는 책들을 볼 예정이다.


패턴을 공부하면서 여러 사이트와 책을 참조해서 나만의 스킬로 만들어 포스팅을 할 예정이다.

디자인 패턴을 공부하는 사람들에게 도움이 되길 바란다.


그리고 디자인패턴을 공부할 때 중요한점은 1년이상 실무경험을 쌓거나 4년제 컴공과를 다니면서 충분히 이론과 실무를 경험했다고 생각되면 

공부하길 바란다.

디자인 패턴을 적용하기 위해서 삽질을 좀 해봐야 이걸 왜 다뤄야 하는지 몸으로 느낄 수 있고 그 길이 그냥 무작정 외워서 적용하는것보다 빠르다고 생각된다.

뿐만아니라 디자인 패턴은 적절한 곳에 잘 사용해야지 디자인 패턴만을 생각하면서 객체를 설명하면 오히려 설계가 개판이 나는 경우도 있으니 유의 바란다.

아무리 좋은 설계라도 필요한 곳이 사용해야 빛을 보는 법이다.


다들 디자인패턴을 확실하게 공부해서 파워풀한 개발자가 되도록 하자!

'Programming > 과거포스팅' 카테고리의 다른 글

팩토리 패턴(Factory Pattern) - 느슨한 결합을 이용하는 디자인 패턴  (0) 2016.03.06
Bridge pattern (브릿지 패턴)  (0) 2015.08.09
Singleton패턴  (0) 2015.08.04
FACADE패턴  (0) 2015.08.04
MVC패턴  (0) 2015.08.04