• yundream
  • 2016-01-16 16:09:20
  • 2016-01-16 16:09:20
  • 169606

Design pattern

패턴은 프랑스어인 patron을 그 기원으로 하고 있다. 패턴은 어떤 구조물에서 찾아볼 수 있는 규칙적인 성질이나 이벤트 혹은 구조를 말한다.

패턴으로 객체 그 자체를 설명할 수 있는 건 아니다. 프레임 - 구조 -를 보여줄 뿐이다. 비록 프레임을 보여주는 것이지만 패턴을 이용하면 원하는 객체를 손쉽게 설계할 수 있다.

개에게서 공통적으로 나타나는 행동양식과 겉모습 즉, 뽀족한 코를 가지고 꼬리가 말려있고 멍멍짓고 사람과 친숙하다라는 것은 공통적으로 발견되는 패턴이다. 이 패턴만을 가지고는 특정한 종류의 개를 설명할 수 없다. 그러나 이러한 공통적인 패턴을 알고 있다면, 개를 쉽게 정의할 수 있을 것이다. 또한 어떤 새로운 개와 비슷한 동물이 발견되었을 때, 우리는 알려진 패턴을 이용해서 그게 개인지 아니면 고양이인지 쉽게 분류할 수 있을 것이다.

패턴은 커뮤니케이션 비용을 줄인다. 잘 알려진 패턴을 이용하면 대화하고자 하는 대상을 쉽게 설명할 수 있기 때문이다.

한식, 양식, 중식, 일식이 있다. 이들은 모두 요리들이다. 그렇다면 어떻게 서로를 구분할 수 있을 것을까. 많은 방법이 있을 수 있겠지만 가장 손쉬운 방법은 이들 요리의 패턴의 차이를 가지고 구분하는 것이다. 한식과 중식은 요리하는 패턴에 있어서 구분할 수 있는 명백한 차이를 가지고 있다. 반대로 이러한 한식의 패턴을 알고 있다면, 한식을 좀더 쉽게 익힐 수 있으리란 것도 알 수 있다.

그러나 패턴이 만능은 아니다. 패턴은 어디까지나 프레임을 만들어주는 것일 뿐이다. 재즈음악의 패턴을 알고 있다고 해서 훌륭한 재즈음악을 만들 수 있는건 아니다.

패턴이 널리 사용된 영역은 아마도 건축,음악,미술 분야일 것이다. 이중 건축은 특히 산업적인 이유 때문에 패턴이 널리 사용되었다. 일반적으로 패턴이 가장 먼저 나타난 영역을 건축이라고 보는 이유이기도 하다.

컴퓨터 과학에서 패턴은 보통 Design pattern을 말하며, 소프트웨어를 디자인 함에 있어서 발생하는 여러가지 문제나 과제에 일반적으로 적용할 수 있는 재사용 가능한구조나 방법을 말한다. 컴퓨터과학에서 패턴에 대한 연구는 비교적 최근들어서 이루어지게 되었는데, 반복되는 동일한 구조나 특징들을 찾아내고 분류하고 정리해서 패턴을 만들기 위해서는 충분한 샘플들이 있어야 하기 때문이다.

attachment:pattern.png

Pattern