패턴 언어

Pattern language

패턴 언어는 체계적이고 일관성 있는 패턴 집합으로, 각각의 패턴은 특정한 전문 분야 내에서 여러 가지 방법으로 사용될 수 있는 문제와 해결책의 핵심을 설명한다.이 용어는 건축가 크리스토퍼 알렉산더에 의해 만들어졌고 1977년 그의 책 A 패턴 언어에 의해 대중화되었다.

패턴 언어는 또한 일련의 상호연결된 패턴을 통해 인간 노력의 특정 분야 내에서 무엇이 진정성을 가져다 주는가에 대한 더 깊은 지혜를 표현하려는 시도가 될 수 있다.앨리시티는 "이름이 없는 품질"을 나타내는 하나의 자리 표시자 용어로서, 다양한 형태는 있지만 정확하고 경험적으로 증명할 수 있다는 우아함, 정신 또는 은혜에 대한 감각이다.[1]알렉산더는 보통 사람들이 이 디자인 접근법을 사용하여 매우 크고 복잡한 디자인 문제를 성공적으로 해결할 수 있다고 주장한다.

패턴이란 무엇인가?

디자이너가 집, 컴퓨터 프로그램, 램프 등 어떤 것을 디자인할 때, 그들은 문제를 해결하는 방법에 대해 많은 결정을 내려야 한다.하나의 문제는 그 전형적인 장소(구문)로 문서화되어 있고, 사전에서 본 예처럼 야생에서 가장 흔하고 인정받는 좋은 해법이 있는 사용(문법)으로 기록되어 있다.그러한 각 항목은 단일 설계 패턴이다.각각의 패턴은 이름, 서술적 항목, 그리고 사전 항목과 같은 약간의 상호 참조를 가지고 있다.문서화된 패턴은 그 솔루션이 패턴의 맥락에서 좋은 이유를 설명해야 한다.

"문" 또는 "파트너십"과 같은 요소적 또는 보편적 패턴은 건축, 의학, 소프트웨어 개발 또는 거버넌스 등에서 반복적인 맥락과 상황에서 힘의 총체적 해결로 명시적으로 기술되는 경험에서 발견되는 설계 또는 실제 요소로서 사용하기 위한 다용도 이상이다.패턴은 인간의 환경을 특징짓는 자연적으로 발생하는 디자인 패턴과 같이 발명되거나 발견되고 연구될 수 있다.[2]

모든 언어와 마찬가지로 패턴 언어도 어휘, 구문, 문법이 있지만 패턴 언어는 의사소통 이외의 어떤 복잡한 활동에 적용된다.디자인 패턴 언어에서 부품은 다음과 같이 분해된다.

  • 언어 설명(어휘)은 관심 분야의 문제에 대해 명명되고 기술된 해결책의 모음입니다.이를 디자인 패턴이라고 한다.그래서 예를 들어, 건축언어는 정착지, 건물, 방, 창문, 걸쇠 등과 같은 항목들을 설명한다.
  • 각 솔루션은 더 크고, 더 포괄적이거나, 더 추상적인 설계에서 솔루션이 어디에 적합한지 보여주는 구문을 포함한다.이것은 자동으로 솔루션을 필요한 다른 해결책의 거미줄로 연결한다.예를 들어, 방은 빛을 얻는 방법과 사람들을 출입시키는 방법이 있다.
  • 해법은 해법이 문제를 해결하거나 이익을 창출하는 방법을 설명하는 문법을 포함한다.따라서 이점이 필요하지 않으면 솔루션을 사용하지 않는다.아마도 설계의 그 부분은 돈이나 다른 자원을 절약하기 위해 비워둘 수 있다; 만약 사람들이 방에 들어가기 위해 기다릴 필요가 없다면, 간단한 출입구가 대기실을 대신할 수 있다.
  • 언어 설명에서 문법 및 구문 교차 지수(흔히 문자 그대로의 영문자 패턴 이름의 인덱스를 가지고 있음)에서 다른 명명된 솔루션으로 설계자는 하나의 솔루션에서 관련되고 필요한 솔루션으로 빠르게 생각하고 논리적으로 문서화할 수 있다.크리스토퍼 알렉산더의 저서 A 패턴 언어에서 패턴은 크기별로 감소하고 있으며 별도의 알파벳 색인을 가지고 있다.
  • 언어 색인에서 관계의 거미줄은 설계 과정을 통해 많은 경로를 제공한다.

이것은 설계자들이 그들이 이해하고 있는 문제의 어떤 부분으로부터 과정을 시작할 수 있고 알려지지 않은 부분을 향해 작업할 수 있기 때문에 설계 작업을 단순화한다.동시에 많은 프로젝트에 패턴 언어가 잘 작동했다면 처음에는 디자인 문제를 완전히 이해하지 못하는 디자이너라도 디자인 과정을 완료하고 그 결과를 사용할 수 있을 것이라고 믿을 만한 이유가 있다.예를 들어, 안으로 들어오는 스키어들은 눈을 치우고 장비를 보관해야 한다.지저분한 눈과 장화 청소부는 밖에 있어야 한다.그 장비는 주의가 필요하므로 선반은 안에 있어야 한다.

많은 패턴이 언어를 형성한다.

구어를 유용하게 만들기 위해서는 서로 문법적, 의미적 관계를 가져야 하듯이, 디자인 패턴은 패턴 언어를 형성하기 위해서는 위치적, 효용적 순서에서 서로 관련되어야 한다.크리스토퍼 알렉산더의 작품은 디자이너가 (아마도 상업적인 과제에서) 문제를 가지고 있고, 해결책을 선택한 다음, 더 큰 해결책에서 비롯되는 새롭고 작은 문제들을 발견하는 분해 과정을 묘사하고 있다.때때로 작은 문제들은 해결책이 없고, 다른 더 큰 해결책을 선택해야 한다.결국 남은 설계 문제는 모두 건설업자의 즉흥적으로 해결할 수 있을 정도로 작거나 일상적인 것으로 '설계'가 이루어진다.

실제 조직 구조(계층적, 반복적 등)는 문제에 따라 설계자의 재량에 맡겨진다.이것은 디자이너가 어떤 작은 부분부터 시작하여 디자인을 탐구할 수 있도록 명시적으로 허용한다.이런 일이 일어날 때, 디자이너는 문제가 실제로 더 큰 해결책의 일부라는 것을 깨닫는 것이 일반적이다.이 시점에서 디자인은 거의 항상 더 나은 디자인이 된다.

그러므로 언어에서 각각의 패턴은 다른 패턴과 언어 전체와의 관계를 표시해야 한다.이것은 언어를 사용하는 디자이너에게 반드시 해결되어야 하는 관련 문제에 대한 많은 지침을 제공한다.

외부 전문가에게 패턴 언어를 적용하도록 하는 데 있어서 가장 어려운 부분은 사실 해결되어야 할 문제의 신뢰할 수 있고 완전한 목록을 얻는 것이다.물론 그 문제에 가장 익숙한 사람들은 디자인이 필요한 사람들이다.그래서 알렉산더는 매우 실행 가능한 대규모 초기 솔루션을 형성하고, 설계의 효용성을 극대화하고, 설계 재작업을 최소화하는 강력한 방법으로서,[3][4] 관련되고, 사용자에게 권한을 부여하고, 현장 즉흥성을 주장하였다.건축 사용자들에게 힘을 실어주고자 하는 욕구는 사실 알렉산더가 애초에 건축을 위한 패턴 언어 프로젝트에 착수하도록 이끈 것이었다.

컨텍스트에서 문제 설계

설계 패턴의 중요한 측면은 좋은 시스템을 열악한 시스템(집, 컴퓨터 프로그램 또는 일상 용도의 대상일 수 있음)과 다르게 만드는 핵심 아이디어를 식별하고 문서화하는 것이며, 미래 시스템의 설계를 지원하는 것이다.패턴으로 표현된 아이디어는 그 맥락 안에서 매우 다른 시스템에 적용될 수 있을 정도로 일반적이어야 하지만, 건설적인 지침을 제공할 수 있을 만큼 충분히 구체적이어야 한다.

패턴에서 다루는 문제와 해결책이 적용되는 상황의 범위를 그 맥락이라고 한다.각 패턴에서 중요한 부분은 이 문맥을 설명하는 것이다.예를 들면 그 패턴이 매우 다른 상황에 어떻게 적용되는지 더 자세히 설명할 수 있다.

예를 들어 알렉산더의 패턴 "A PLACE TO WAIT"은 여전히 유용하고 건설적인 해결책을 제안하면서 수술 대기실과 같은 방식으로 버스 정류장을 다룬다.Gang-of-Four의 디자인 패턴 by Gamma 등은 프로그램 언어와 프로그램의 응용 영역과 독립된 솔루션을 제안한다.

그럼에도 패턴으로 기술된 문제와 해결책은 한쪽은 추상성과 일반성, 다른 한쪽은 특수성 정도에 따라 달라질 수 있다.결국 이것은 저자의 선호도에 달려있다.그러나 아주 추상적인 패턴일지라도 본질적으로 절대적으로 구체적이고 구체적인 예를 포함할 것이다.

패턴은 또한 그들이 실제 세계에서 얼마나 증명되었는가에 따라 달라질 수 있다.알렉산더는 각 패턴에 0점, 1, 2개의 별을 부여하여 실제 사례에서 얼마나 잘 증명되었는지를 보여준다.일반적으로 모든 패턴에는 최소한 현존하는 실제 사례가 필요하다고 주장한다.그러나 아직 구현되지 않은 아이디어를 패턴과 같은 형식으로 문서화하는 것은 상상할 수 있다.

알렉산더의 책에 있는 패턴은 또한 규모 면에서 다양하다. 어떤 것은 마을이나 이웃을 건설하는 방법을 묘사하고 있으며, 다른 것들은 개별적인 건물과 방의 내부를 다루고 있다.알렉산더는 저조 유물을 대규모 세계의 건설적인 요소로 보고 있기 때문에 계층적 네트워크로 연결될 수 있다.

힘의 균형

패턴은 해결하고자 하는 문제, 이러한 문제가 발생하는 상황이나 상황, 제안된 해결책을 권고할 수 있는 조건을 특징지어야 한다.

종종 이러한 문제들은 서로 다른 이해 관계나 "강제"의 충돌에서 발생한다.그 후 군대의 균형을 맞추고 마침내 결정을 내리는 데 도움이 될 대화로서 패턴이 나타난다.

예를 들어, 무선 전화를 암시하는 패턴이 있을 수 있다.그 세력은 의사소통의 필요성과 동시에 다른 일을 해야 하는 필요성(요리, 책장 점검)이 될 것이다.매우 구체적인 패턴은 "무선 전화기"일 뿐이다. 보다 일반적인 패턴은 "무선 장치" 또는 "보조 활동"일 것이며, 이는 2차 활동(전화 통화 또는 청바지 주머니 검사 등)이 다른 활동에 지장을 주어서는 안 된다는 것을 암시한다.

그것의 맥락에서 상당히 구체적이지는 않지만, "보조 활동" 패턴의 힘은 "무선 전화"의 힘과 매우 유사하다.따라서, 경쟁력은 패턴으로 표현되는 설계 개념의 본질 중 일부라고 볼 수 있다.

패턴은 그 나름의 근거를 가지고 있다.

일반적으로 패턴에는 주어진 값을 나타내는 이론적 근거가 포함되어 있다.크리스토퍼 알렉산더에게 있어서, 건축물과 접촉하게 될 사람들에 대해 생각하는 것이 가장 중요하다.그의 중요한 가치들 중 하나는 이 사람들을 더 살아있다고 느끼게 하는 것이다.그는 "이름 없는 품질"(QWAN)에 대해 말한다.

좀 더 일반적으로, 우리는 좋은 시스템이 그것을 사용하게 되어 있는 사람들에 의해, 또는 심지어 그것이 영향을 미치는 모든 사람들에 의해, 일상의 풍요로움으로 받아들여지고 환영되고 행복하게 받아들여져야 한다고 말할 수 있다.예를 들어, 길거리 카페에 대해 이야기할 때, 알렉산더는 손님들의 가능한 욕망에 대해 이야기하지만, 그냥 지나가는 사람들에 대해서도 언급한다.

전화나 자동차와 같은 기술 기기, 프로젝트에서 일하는 팀과 같은 사회 구조나 컴퓨터 프로그램의 사용자 인터페이스에도 같은 생각을 적용할 수 있다.예를 들어 소프트웨어 시스템의 품질은 사용자가 시스템을 즐기는지 또는 사용하는 데 시간을 소비하는지를 관찰함으로써 평가될 수 있다.

인간의 삶에 미치는 영향에 초점을 맞추면 변화하는 기술로부터 독립된 패턴을 파악해 '시대 없는 품질'(알렉산더)을 찾을 수 있다.

일반 구조 및 배치

보통 패턴 언어 또는 컬렉션의 저자는 문맥, 문제 진술, 솔루션 등과 같은 일반적인 섹션으로 나누면서, 그 안에 포함된 모든 패턴에 대한 일반적인 구조를 선택한다.

예를 들어 크리스토퍼 알렉산더의 패턴은 각각 짧은 이름, 등급(최대 두 개의 '*' 기호), 감각적인 그림, 맥락 설명, 문제 진술, 예시와 설명이 포함된 텍스트의 더 긴 부분, 해답문, 스케치 및 추가 참조로 구성된다.이 구조와 레이아웃을 "알렉산드리안 양식"이라고 부르기도 한다.

알렉산더는 그의 패턴의 다른 부분을 표시하기 위해 특별한 텍스트 레이아웃을 사용한다.예를 들어, 문제 문장과 해결 문장은 굵은 글꼴로 인쇄되며, 후자는 항상 "Therefore:" 키워드가 선행한다.그 대신에 일부 저자들은 어느 정도의 중복성을 만들어 내는 명시적인 라벨을 사용한다.

의미 있는 이름

팀에 의해 디자인이 이루어지면 패턴 이름은 공유할 수 있는 어휘를 형성하게 될 것이다.이것은 패턴 이름이 기억하기 쉽고 매우 서술적일 필요가 있게 한다.알렉산더의 작품에서 나온 예로는 WINDOW PLACE(도움말)와 A PLACE TO WAIT(도움말) 등이 있다.

연관 네트워크의 집계(패턴 언어)

알렉산더가 구상한 패턴 언어는 한 패턴에서 다른 패턴으로 연결되는 링크를 포함하고 있기 때문에 프로젝트에서 한 패턴을 적용하려고 할 때 디자이너는 그 맥락에서 도움이 된다고 여겨지는 다른 패턴으로 밀려난다.

알렉산더의 책에서, 그러한 연결은 "참조" 부분에서 수집되고 링크된 패턴의 "콘텍스트" 부분에서 메아리쳐진다 – 따라서 전체적인 구조는 지시된 그래프다."참조"에서 연계된 패턴은 대개 더 높은 규모의 문제의 일부로 제시되는 저규모 문제를 다룬다.예를 들어, "공용 실외실" 패턴은 "스테이어 시트"를 참조한다.

패턴 설명이 없어도 의미 있는 이름과 함께 다음과 같은 메시지가 표시된다.사람들이 시간을 보낼 수 있는 외부 장소("공용 실외실")를 지을 때, 사람들이 앉을 수 있는 계단("스테이어 시트")으로 그 장소를 둘러싸는 것을 고려한다.사무실("Workshops AND Office")을 계획하는 경우, 작은 그룹("Small Working Groups")으로 작업 공간을 정렬해 보십시오.알렉산더는 네트워크에서의 연결은 패턴 자체의 텍스트보다 훨씬 더 의미 있는 것으로 여겨질 수 있다고 주장한다.

알렉산더의 책에 있는 링크들은 분명히 계층적 네트워크를 형성한다.알렉산더는 문법의 서열과 평행선을 그린다 – 그것은 그가 패턴 언어를 말하는 하나의 주장이다.

링크 뒤의 의미론적 이론은 다를 수 있지만, 일반적으로 패턴 작성자들 사이에서 받아들여진다.그러나 설계 패턴의 감마 외 연구진과 같은 일부 저자들은 패턴 연계를 거의 사용하지 않는다. 이는 패턴 연계가 패턴 집합에 대해 그다지 타당하지 않기 때문일 수 있다.이런 경우에 우리는 패턴 언어보다는 패턴 카탈로그에 대해 말할 것이다.[5]

사용법

알렉산더는 자신의 시스템을 이용하여 자신의 언어를 확장하는 사람들을 그들만의 패턴으로 격려했다.이것을 가능하게 하기 위해서, 그의 책들은 건축이나 토목 공학에 엄격하게 초점을 맞추지 않는다; 그는 또한 패턴 언어의 일반적인 방법을 설명한다.A Pattern Language라는 책의 원래 개념은 3-링 바인더 형태로 출판되어 나중에 페이지가 쉽게 추가될 수 있도록 한다는 것이었다; 이것은 출판에서 비실용적인 것으로 판명되었다.[6]패턴 언어 접근법은 다양한 분야의 전문 지식을 문서화하는 데 이용되어 왔다.몇 가지 예로는 건축 패턴, 컴퓨터 과학 패턴, 상호작용 설계 패턴, 교육학적 패턴, 패턴 원예, 사회적 행동 패턴, 집단 촉진 패턴 등이 있다.패턴 언어 접근은 또한 중요한 공유 문제를 함께 연구하고 있는 다양한 사람들과 지역사회를 위한 행동 조율을 도와 시민 지능을 증진시키는 방법으로 추천되었다.[7]알렉산더의 패턴 언어 사용과 새로운 언어 생성에 대한 명세서는 여전히 영향력이 있으며, 그의 책들은 관련 없는 분야의 전문가들에 의해 스타일을 참조하고 있다.

UML이나 플로우차트 기호 모음과 같은 표기법은 패턴 언어가 아니라는 점에 유의해야 한다.그것들은 알파벳과 더 밀접하게 비교될 수 있다: 그들의 상징은 패턴 언어를 문서화하는 데 사용될 수 있지만 그들 스스로는 언어가 아니다.처음부터 끝까지 하나의 올바른 경로만 가지고 따라야 할 레시피나 다른 순차적인 단계의 집합도 패턴 언어가 아니다.그러나 새로운 레시피를 설계하는 과정은 패턴 언어의 사용으로부터 이익을 얻을 수 있다.

패턴의 간단한 예

  • 이름: 초콜릿칩라티오
  • 컨텍스트:당신은 가족과 친구들을 위해 작은 묶음으로 초콜릿 칩 쿠키를 굽고 있다.
  • 먼저 이러한 패턴을 고려하십시오: SugarRatio, FrowRatio, EggRatio.
  • 문제:쿠키 반죽에 대한 초콜릿 칩의 최적 비율 결정
  • 해결책:대부분의 사람들이 초콜릿 칩 쿠키의 가장 좋은 부분이라고 생각하는 것을 관찰하라.또한 초콜릿을 너무 많이 먹으면 쿠키가 서로 붙는 것을 방해하여 쿠키의 매력을 떨어뜨릴 수 있다는 것을 관찰하라.당신이 작은 묶음으로 요리를 하기 때문에 비용은 고려 대상이 아니다.그러므로, 정말 튼튼한 쿠키를 만드는 초콜릿 칩의 최대량을 사용하라.
  • 다음을 고려하십시오.NutRatio 또는 CookingTime 또는 FreezingMethod

기원

건축가 겸 작가인 크리스토퍼 알렉산더는 패턴 언어라는 용어를 만들었다.[3]그는 그것을 건물과 마을의 설계건설의 공통적인 문제들과 그것들이 어떻게 해결되어야 하는지에 대해 언급하기 위해 사용했다.이 책에서 제안된 해결책에는 도시와 마을을 어떻게 구조화해야 하는지부터 방에 창문을 어디에 두어야 하는지에 이르기까지 다양한 제안들이 포함되어 있다.

"패턴 언어" 접근법의 틀과 철학은 크리스토퍼 알렉산더와 5명의 동료들이 1970년대 후반 캘리포니아 버클리 환경 구조 센터에서 쓴 책 "A Pattern Language"에서 초기에 대중화되었다.A 패턴 언어는 첫 번째 패턴인 '독립지역'(가장 일반적)부터 마지막 패턴인 '독립지역'(가장 일반적)까지 253개의 '패턴'을 담고 있는 반면, 알렉산더의 저서 '시간 없는 건축의 길'은 작품의 동기와 목적에 대해 좀 더 깊이 있게 다룬다.A 패턴 언어에서 "패턴 언어"와 "패턴 언어"의 정의는 다음과 같다.[3]

"패턴은 건물에 생명을 불어넣는 구성 중 하나를 설명하면서 건물 맥락 안에서 반복되는 문제에 대한 지속적인 해법에 대한 세심한 설명이다.각각의 패턴은 우리 환경에서 반복적으로 발생하는 문제를 설명한 다음, 그 문제에 대한 핵심 해결책을 설명하는데, 그 방법을 100만 번 반복해서 사용할 수 있고, 두 번 반복해서 같은 방식으로 사용하지 않아도 된다."[3]

패턴 언어는 서로를 부르는 패턴의 네트워크다.패턴은 우리가 디자인에 대한 통찰력과 지식을 기억하도록 도와주고 해결책을 만들기 위해 함께 사용될 수 있다.

응용 프로그램 도메인

크리스토퍼 알렉산더의 생각은 다른 분야에서도 채택되었는데, 종종 A 패턴 언어라는 책에서 묘사된 것과 같이 건축에 패턴을 적용하는 원래 방식보다 훨씬 더 많이 채택되었다.[3]1990년대 이후의 예로는 소프트웨어 공학에서의 소프트웨어 설계 패턴과, 보다 일반적으로 컴퓨터 공학에서의 건축 패턴, 상호작용 설계 패턴 등이 있다.1990년대 후반부터 교육학적 패턴은 교사의 좋은 관행을 문서화하는 데 사용되어 왔다.[8]적어도 2000년대 중반부터 패턴 언어의 개념이 시스템 아키텍처 설계에 도입되었다.[9][10]지속가능성과 민주주의, 긍정적인 사회변화를 촉진하기 위해 정보통신 이용에 136개의 패턴을 담은 책 '소통혁명을 위한 패턴언어'가 2008년 더 많은 패턴을 담은 웹사이트와 함께 출간됐다.[11]2011년 갑판 '그룹 작품: 모임 및 기타 모임에 생명을 불어넣기 위한 패턴 언어'가 출간됐다.[12]패턴 언어의 아이디어는 퍼머컬쳐 디자인에도 적용되었다.[13]

위키발명자워드 커닝햄마이클 메헤피와 함께 위키와 패턴 언어 사이에는 깊은 관계가 있으며, 위키는 "사실상 패턴의 효율적인 공유와 수정을 용이하게 하는 도구로 개발되었다"[14]고 주장하는 논문을 공동 집필했다.

참고 항목

참조

  1. ^ Alexander, Christopher (1979). The Timeless Way of Building. Oxford University Press. ISBN 978-0-19-502402-9.
  2. ^ Henshaw, J. 자연발생설계 지침서: 요소들. 2015년 7월 3~5일 PURPSOC 2015 절차, 2015년 7월 5일 오스트리아 PURPLSOC 회의에서 패턴의 이론적 배경과 연구 및 교육에서 패턴 방법의 실제 구현에 관한 많은 공개적인 과학적 질문에 대해 논의하였다.
  3. ^ a b c d e Alexander, Christopher (1977). A Pattern Language: Towns, Buildings, Construction. Oxford University Press, USA. p. 1216. ISBN 978-0-19-501919-3.
  4. ^ 알렉산더, 크리스토퍼 오레곤 프로젝트
  5. ^ Andy Dearden, Janet Finlay (January 2006). "Pattern Languages in HCI: A critical review". Human Computer Interaction. 21 (1).
  6. ^ 2009년 포틀랜드 도시건축연구소 심포지엄, A패턴언어 원작자 6명 중 4명이 발표.
  7. ^ 동기 부여와 근거에 대한 추가 논의는 물론 예시 및 실험에 대한 자세한 내용은 다음을 참조하십시오.
  8. ^ Fincher, Sally (September 1999). "Analysis of design: an exploration of patterns and pattern languages for pedagogy". Journal of Computers in Mathematics and Science Teaching. 18 (3): 331–348.
  9. ^ Cloutier, Robert J.; Verma, Dinesh (June 2007). "Applying the concept of patterns to systems architecture". Systems Engineering. 10 (2): 138–154. doi:10.1002/sys.20066.
  10. ^ Cloutier, Robert J.; Muller, Gerrit; Verma, Dinesh; Nilchiani, Roshanak; Hole, Eirik; Bone, Mary (March 2010). "The concept of reference architectures". Systems Engineering. 13 (1): 14–27. doi:10.1002/sys.20129.
  11. ^ "Liberating Voices Pattern Language". publicsphereproject.org. Retrieved 6 March 2017.
  12. ^ "Group Pattern Language Project". groupworksdeck.org. Retrieved 6 March 2017.
  13. ^ Jacke, Dave; Toensmeier, Eric (2005). "A Forest Garden Pattern Language". Edible Forest Gardens, Volume II: Ecological Design And Practice for Temperate-Climate Permaculture. White River Junction, VT: Chelsea Green Publishing. pp. 63–139. ISBN 1-931498-80-6.
  14. ^ Cunningham, Ward; Mehaffy, Michael W. (2013). "Wiki as pattern language". Proceedings of the 20th Conference on Pattern Languages of Programs, October 23–26, 2013, Monticello, Illinois. PLoP '13. Corryton, TN: The Hillside Group. pp. 32:1–32:14. ISBN 9781941652008.

추가 읽기

외부 링크

일반적인 패턴 정보

온라인 패턴 컬렉션