Design Pattern

소프트웨어공학에서 얘기하는 디자인패턴이란?

객체 지향 프로그래밍 설계를 할 때 자주 발생하는 문제들을 피하기 위해 사용되는 패턴이다

여러 사람들이 협업하여 개발을 할 때 다른 사람들이 작성한 코드, 기존에 존재하는 코드를 곧바로 보고 이해하기 어려우므로 의사소통 수단의 일종으로 사용되기도 한다. 예를 들자면, Model class와 Views에 jsp파일을 만들고 Controller에서 컨트롤하게 프로젝트를 만들자고 얘기하는 것보다 MVC 패턴을 사용하자고 제안하는 것이다

컴파일러에서 처리하기 위해 반드시 따라야하는 문법과 다르게 효율성과 소통을 중시한 개발 방법론 중 하나이다. 그러므로 디자인패턴을 반드시 사용할 필요는 없다. 일반 프로그래머가 만나는 문제(오류들)가 지구상에서 유일한 문제일 확률은 거의 없으며, 이미 많은 사람들이 겪어보았고 해결책을 알고 있으며, 그에 따라 정립된 일종의 약속일 뿐이다

크게 생성패턴(클래스로부터 객체를 만드는 방법으로 구분), 구조패턴, 행위패턴으로 나뉘어진다

Getter, Setter를 사용할 필요도 없고 private으로 method들을 캡슐화할 필요도 없지만(캡슐화는 물론 객체지향의 주요한 특징 중 하나이므로 사용하는 것이 권장되기는 하지만) 사용하는 이유가 이러한 디자인패턴