Skip to content

Instantly share code, notes, and snippets.

@shane-shim
Created August 2, 2025 07:16
Show Gist options
  • Select an option

  • Save shane-shim/a793733f9eac523525c55744c328f5d6 to your computer and use it in GitHub Desktop.

Select an option

Save shane-shim/a793733f9eac523525c55744c328f5d6 to your computer and use it in GitHub Desktop.
패턴 언어로서의 위키 - 한국어 번역

패턴 언어로서의 위키 (Wiki as Pattern Language)

저자: WARD CUNNINGHAM (Cunningham and Cunningham, Sustasis Foundation)
저자: MICHAEL W MEHAFFY (Delft University of Technology, Sustasis Foundation)

초록

우리는 널리 영향력을 미치게 된 위키 기술의 기원과 소프트웨어에서의 패턴 언어 개발과의 관계를 설명합니다. 우리는 이 관계가 이전에 이해되었던 것보다 더 깊다는 것을 보여줍니다. 이 깊은 공유 논리는 "연합(federated)" 위키의 새로운 세대를 포함하여 위키의 확장된 기능과 함께 실현되지 않은 잠재력을 가리킵니다. 우리는 지식 시스템을 "큐레이션"(집단적으로 수집하고 개선)하기 위한 이 기술과 관련 기술의 사용에 대한 결론을 도출합니다.

카테고리 및 주제 설명자: H.5.2 [정보 인터페이스 및 표현]: 사용자 인터페이스—평가/방법론; H.1.2 [모델 및 원칙]: 사용자/기계 시스템—인간 정보 처리

일반 용어: 인간 요소

추가 키워드 및 구문: 위키, 패턴 언어, 최소 연합 위키, 시나리오 모델링

ACM 참조 형식: Cunningham, W. and Mehaffy, M.W. 2013. "Wiki as Pattern Language." In Proceedings of the 20th Conference on Pattern Languages of Programs (PLoP'13), Monticello, Illinois, USA (October 2013). 15 pages.

서론

오늘날 위키는 사용자들이 빠르고 쉽게 정보를 협업적으로 공유하고, 수정하고, 개선할 수 있게 해주는 일종의 웹사이트로 널리 확립되어 있습니다(Leuf and Cunningham, 2001). 아마도 가장 잘 알려진 예시인 Wikipedia에서는 위키를 "사용자가 일반적으로 단순화된 마크업 언어나 리치 텍스트 편집기를 사용하여 웹 브라우저를 통해 콘텐츠를 추가, 수정 또는 삭제할 수 있게 해주는 웹사이트"로 설명합니다(Wikipedia, 2013). 실제로 위키는 매우 잘 확립되어 있어서, Google 검색 엔진 결과에서 이 용어는 약 12.5억 페이지의 "히트"를 표시합니다(Google, 2013a).

이러한 성장과 함께, "위키"를 구성하는 것의 정의는 1995년 도입 이후 확대되었습니다. WikiLeaks의 예를 생각해보면, 편집 가능한 콘텐츠는 사이트의 목적을 무너뜨릴 것입니다. 우리는 이러한 다른 광범위한 용어 사용에 대한 논의는 제외하고, 원래의 위키와 대중적인 백과사전에 대한 논의로 제한할 것입니다.

위키의 일반적인 개념은 매우 잘 알려져 있지만, 위키 개발의 역사는 다소 덜 알려져 있습니다. 위키는 소프트웨어에서 "패턴 언어" 또는 때때로 "디자인 패턴"이라고 불리는 것의 개발에서 파생되었습니다. 아래에서 설명하듯이, 위키는 실제로 패턴의 효율적인 공유와 수정을 용이하게 하는 도구로 개발되었습니다. 이러한 이유로 위키 자체의 구조는 패턴과 패턴 언어의 구조와 관계를 가지고 있습니다 - 이 관계는 흥미로운 새로운 기회를 제공합니다. 이 관계와 그것이 제시하는 진화하는 기회는 이 논문의 중심 초점이 될 것입니다.

패턴 언어와 위키의 공유 논리 - 그리고 가능한 미래

패턴 언어와 위키 모두에 익숙한 많은 사람들은 직접적인 연결에 대해 알게 되면 놀랍니다. 그러나 가장 간단한 용어로, 패턴은 특정 맥락에서 가치를 가진 세계의 구조를 나타냅니다. 기본적인 수준에서 위키도 같은 일을 합니다.

패턴과 위키 모두 출판의 맥락에서만 유용합니다 - 즉, 웹 페이지, 책 또는 다른 유형의 보급 형태입니다. 종이 형태의 예로는 각 언어의 패턴을 페이지에 (문자 그대로) 출판하는 책인 'A Pattern Language'가 있습니다. 또 다른 예는 c2.com 사이트에서 생성되고 출판된 프로그래밍 패턴을 위한 초기 위키입니다. 가장 익숙한 또 다른 예는 각각 자체 웹 페이지에 백과사전 기사의 연결된 네트워크를 출판하는 Wikipedia입니다.

세 가지 경우 모두에서, 출판물은 단일하고 이산적이며 정적인 정보 본문이 아니라 사용자의 필요에 따라 유용한 방식으로 연결될 수 있는 하이퍼링크 네트워크입니다. 그러나 세 가지 예시 모두에 대한 근본적인 한계도 있습니다: 출판 자체가 맥락의 성장과 진화를 제한합니다. 원래 제작자의 의도를 초월할 방법이 없고, 이후에 콘텐츠를 만들 수 있는 커뮤니티 간의 중복을 허용할 방법이 없습니다.

아래에서 더 자세히 탐구하겠지만, 이러한 한계를 초월할 수 있는 방법은 상대적으로 최근에 등장한 "연합된" 출판 방법론입니다. 이러한 방법론은 다른 필요, 개념 및 접근 방식을 가질 수 있는 당사자들에 의한 작업의 "중복"을 허용합니다 - 복수적이고 민주적인 문화가 중복을 허용하는 것과 같은 방식으로.

패턴 언어의 초기 개발

패턴 언어의 일반적인 논리는 객체 지향 프로그래밍의 계층적으로 압축된 구조와 밀접하게 관련되어 있습니다. 재사용 가능한 정보 패킷의 시리즈는 입력과 출력을 결합하고 교환하기 위한 문법과 같은 규칙 세트 내에서 단위로 조작될 수 있습니다. 그러나 우리가 논의할 것처럼, 패턴 언어는 자연어의 것과 더 유사한 특히 유용한 속성을 가지고 있습니다.

"패턴 언어"의 공식화된 개념은 건축가 Christopher Alexander가 개발했으며, 그의 저서 'Notes on the Synthesis of Form'(Alexander, 1964)에서 출판된 작업에서 성장했습니다. Alexander는 특정 문제 구성에 적응된 솔루션으로서 형태가 어떻게 발생하지만 다른 유사한 용도로 일반화될 수 있는지 이해하려고 했습니다. 복잡한 기술 시스템이 일상화되고 새로운 디자인 전략이 필요한 사이버네틱 시대에 이 문제는 새로운 관련성을 가졌습니다. Alexander가 서론에서 언급했듯이, "오늘날 기능적 문제는 항상 덜 간단해지고 있습니다. 그러나 디자이너들은 그것들을 해결할 수 없음을 거의 고백하지 않습니다."

대신, Alexander는 디자이너들이 임의로 선택된 형식적 질서에 의존하며, 부정적인 결과를 초래한다고 주장했습니다.

이 설명은 같은 시기에 Herbert A. Simon의 고전적인 논문 "The Architecture of Complexity"(Simon, 1962)에서 그의 작업과 대응됩니다. Simon은 복잡한 시스템 중에서 구조의 원칙을 찾고 있었고, 복잡성이 "거의 분해 가능한 계층"의 형태를 취하는 경향을 주목했습니다. 그러한 복잡한 시스템의 요소들은 종종 강한 상호작용 능력뿐만 아니라 약한 것들도 가지고 있었고, 강한 상호작용 능력은 계층적 하위 시스템을 형성하는 경향이 있어, 시스템이 우리의 모델 내에서 "거의 분해"될 수 있게 했습니다.

Alexander도 강하고 약한 관계를 식별했으며, 강한 관계는 그가 "다이어그램"(나중에 "패턴")이라고 부른 것을 형성했습니다. 이러한 하위 시스템은 문법과 같은 규칙을 따라 디자인 모델 내에서 재결합 가능한 단위로 처리될 수 있었습니다. Alexander는 인간 언어에서도 비슷한 일이 일어난다는 것을 관찰했습니다.

소프트웨어에서의 패턴 언어

많은 건축가들이 Alexander의 작업을 무시한 것처럼 보이는 반면, 소프트웨어 엔지니어들과 다른 사람들은 상당히 더 많은 관심을 가지고 이 작업을 따라왔습니다. 1970년대의 여러 영향력 있는 프로그래머들은 이미 'Notes on the Synthesis of Form'을 알고 있었고 영향을 받았습니다. 그러나 1980년대부터 'A Pattern Language'는 현재 "프로그래밍의 패턴 언어" 또는 "디자인 패턴"으로 알려진 것의 기초를 형성했습니다 - 주어진 맥락 내에서 일반적으로 발생하는 문제에 대한 일반적인 재사용 가능한 솔루션입니다.

위키의 개발

위키의 영향력은 디자인 패턴보다 눈에 띄게 큽니다 - 한 가지 지표로, 12.5억의 Google 히트 점수는 "디자인 패턴"보다 250배 이상 크고, "패턴 언어"보다 2,500배 더 큽니다. 이것이 우리에게 무엇을 말해줍니까? 이는 사용의 용이성과 협업 능력을 결합한 방법이 도달되었음을 나타낼 수 있습니다.

위키의 가장 잘 알려진 예는 확실히 현재 월드 와이드 웹에서 가장 많이 사용되는 콘텐츠 사이트인 온라인 백과사전 Wikipedia입니다. 그러나 웹을 빠르게 살펴보면 쉽게 알 수 있듯이, 많은 다양한 분야에 걸쳐 수백 또는 수천 개의 다른 종류의 위키가 있습니다.

위키의 진화론적 관계는 간단합니다. 위키는 1995년에 소프트웨어에서 패턴 언어의 개발을 지원하는 도구로 개발되었습니다(Cunningham, 2009). 더 구체적으로, 많은 사람들이 공유된 문제에 대한 더 나은 집단적 솔루션을 발전시킬 때 협업할 수 있도록 하는 도구로 개발되었습니다.

기본 패턴 언어로서의 위키

우리는 실제로 위키와 패턴 언어가 기본적인 구조적 특성을 공유한다고 믿습니다 - 그리고 위키(원래 의도된 형태에서)가 실제로 기본 패턴 언어의 한 형태라고 주장하는 것이 과하지 않다고 믿습니다.

그들은 모두 다음과 같은 고유한 특성 세트를 공유합니다:

A. 둘 다 하이퍼링크로 연결된 단일 하위 집합(페이지 또는 패턴)으로 구성된 개방형 정보 세트입니다. B. 둘 다 특징적인 구조를 가진 주제 에세이입니다: 개요(링크 포함), 정의, 토론, 증거, 결론, 추가 링크. C. 둘 다 많은 사람들이 쉽게 생성, 공유 및 편집할 수 있도록 구조화되어 있습니다. D. 둘 다 (원칙적으로) 진화적이고, 반증 가능하며, 개선 가능합니다. E. 둘 다 언어의 더 공식화된 하위 집합으로서 세계의 일부에 대한 유용한 존재론적 모델을 만드는 것을 목표로 합니다.

언어의 자연적 능력을 활용하는 새로운 기술

패턴과 위키 모두의 경우, 목표는 기존의 최고의 구조적 지식에서 작업하여 새로운 지식을 생성하기 위해 언어의 힘과 유연성을 활용하는 것이었습니다. 두 경우 모두 이것은 이 기존 지식의 협업적 식별과 저장을 필요로 했습니다.

두 경우 모두 기술의 개발은 John Searle(1965), Noam Chomsky(1980), George Lakoff(2008) 및 기타 사상가들에 의해 알려진 언어 철학에 의해 영향을 받았습니다. 우리는 이 철학을 다음과 같은 요점으로 요약할 수 있습니다:

  1. 인간은 일련의 행위를 통해 공유된 현실을 구성할 수 있는 능력을 가지고 있습니다.
  2. 그러한 행위가 발성일 때 우리는 그것들을 자연어에서 화행이라고 부릅니다.
  3. 그러한 행위와 그 결과는 유전 가능하므로 진화의 대상이 됩니다.
  4. Christopher Alexander가 개발한 패턴 언어는 건축의 유전 가능한 지식의 유용한 하위 집합을 매핑했습니다.
  5. Ward Cunningham이 개발한 위키는 사용자 웹사이트와 그들의 임무 또는 "사이트 헌장"의 맥락 내에서 유전 가능한 지식의 유용한 하위 집합을 매핑합니다.

더 "민첩한" 기술 형태로서의 패턴과 위키

디자인 패턴과 위키 모두 소프트웨어의 근본적인 문제를 해결하기 위해 개발되었습니다: 새로운 문제에 대한 새로운 솔루션을 순서대로 지정하면 코드가 복잡해지고 예측할 수 없고 의도하지 않은 상호작용으로 인한 오작동 가능성이 증가합니다. 오레곤 포틀랜드 근처의 Tektronix Corporation에서 일하던 Cunningham과 Beck은 수학자들이 종종 "우아함"이라고 부르는 것을 표시하는 새로운 형태의 소프트웨어를 찾고 있었습니다: 더 적은 것으로 더 많은 것을 할 수 있는 능력. Cunningham은 이 원칙을 "가능한 한 작동할 수 있는 가장 간단한 것은 무엇인가?"라는 질문에 구현했습니다.

Cunningham은 언어가 그 자체의 모호성과 경제성 속에서 문제 해결을 위한 유용한 작업 모델로서 더 능숙하게 제공할 수 있는 능력에 흥미를 느꼈습니다. 문제는 정의상 간단한 기능 단위로 사전 분해되지 않지만, Alexander가 언급했듯이 많은 중복되고 모호한 연결을 가지고 있습니다. 언어는 이 능력을 반영하며, 여기에 그 유용성이 있습니다.

큐레이션으로서의 위키

이러한 주제들이 제기하는 문제들은 웹에서 정보가 폭발적으로 증가하고 있고 - 일부는 웹을 어지럽힌다고 말할 것입니다 - 그 정보의 신뢰성이 점점 더 문제가 되는 시대에 특별한 긴급성을 띱니다. 전통적인 형태의 지식(예: 인쇄물)은 쇠퇴하고 있으며, 오래된 방법들은 단순히 너무 빠르게 변화하여 신뢰할 수 없습니다.

이러한 환경에서 위키(특히 Wikipedia)는 유용하게 교훈적인 모델을 제공합니다. 예를 들어, 거의 모든 블로그의 댓글 섹션과의 대조는 놀랍습니다. Wikipedia 기사에 요구되는 "중립적 톤"과 대조적으로 대부분의 댓글 섹션의 거친 의견 톤을 제외하고도, 주어진 정보의 신뢰성에 대한 정반대의 설명을 매우 쉽게 볼 수 있습니다.

Wikipedia와 같은 위키 지식 개발 도구에서는 다른 분야에서 신뢰할 수 있는 지식이 획득되고 개선되는 방식과 강한 관계가 있습니다 - 비록 위키가 그렇게 하는 더 빠르고 효율적인 방법을 나타내지만. 다시 말해, 질문은 부분-전체 관계와 지식의 부분론으로 갑니다 - 우리가 지식의 일부를 다른 것들과 조화시킬 수 있고, 상당한 정도로 전반적인 작업 신뢰성을 결정할 수 있는 방법입니다.

건축에서 패턴 언어의 남은 문제들

Alexander와 그의 공동 개발자들은 실제로 Karl Popper의 반증 가능성 모델을 따라 패턴을 위한 진화 모델을 추구했습니다. 그들은 각 패턴이 일종의 가설이며, 적용되고, 테스트되고, 개선되거나 심지어 버려질 수 있다고 제안했습니다. 이 방법론은 성공 또는 실패의 피드백이 즉각적인 경향이 있는 소프트웨어 디자인의 경우에 비교적 쉽게 적용할 수 있었습니다. 도시 디자인 분야에서는 훨씬 더 어려운 것으로 입증되었는데, 여기서 평가는 결정적인 증거가 확립되고 보고되기 전에 수년 또는 수십 년의 사용이 필요할 수 있습니다.

건축에서 패턴 언어의 더 근본적인 한계도 있었습니다. 'The Timeless Way of Building' 책은 많은 수의 패턴과 패턴 언어를 작성하는 필수적인 방법론이 있으며, 'A Pattern Language' 책은 그러한 언어의 한 가지 사례일 뿐이라는 것을 분명히 합니다. 실제로 'A Pattern Language'의 도입부 "이 책 사용하기"는 "이 책에서 우리는 The Timeless Way에서 요구된 종류의 가능한 패턴 언어 중 하나를 제시합니다"라고 명시합니다.

그러나 이것은 일어나지 않았습니다. 부분적으로 책이 그러한 성공적인 완전한 문학 작품이었기 때문에, 원래의 253개 패턴은 사실상 시간에 동결되었습니다. 원래 저자들조차 이제 거부하는 패턴과 패턴의 일부는 변경되지 않은 채로 남아 있으며, 이 원래 코퍼스에 출판된 패턴은 추가되지 않았습니다.

위키의 새로운 지평

이전 평가에서, 우리는 이제 위키의 미래를 위한 몇 가지 흥미로운 기회를 설명할 수 있다고 믿습니다.

A. 연합 개발

첫 번째는 위키가 공유되고 개선되는 방식입니다. 원래의 위키 기술은 개인이 전체를 점진적으로 개선하기 위해 작은 조각을 기여할 수 있도록 하는 직접적인 오픈 소스 모드에서 작동했습니다. 그러나 이것은 위키의 더 큰 측면을 개발하는 데 제약을 가했습니다.

오픈 소스 소프트웨어 개발 커뮤니티에서는 연합으로 알려진 새로운 접근 방식이 개발되었습니다. Linus Torvalds의 "Git" 방법론으로 대표되는 이것은 시스템(소프트웨어 또는 기타 정보)의 전체 사본을 새로운 사이트로 자유롭게 복사하고 원본 사본인 것처럼 처리할 수 있게 했습니다. (이것은 사본을 "포크"하는 것으로 알려져 있습니다.) 그런 다음 이 사본에 유익한 변경이 이루어지면 별도의 개선된 버전으로 유지되거나 원본과 재결합되거나 둘 다 될 수 있습니다.

"최소 연합 위키"라고 불리는 새로운 세대의 위키는 이제 이 연합 모델을 기반으로 합니다. 위키는 새로운 사이트로 포크되고 다른 협력자들과 공유될 수 있습니다.

B. 데이터 조작 기능

새로운 세대 위키의 또 다른 근본적인 혁신은 정량적 데이터를 처리할 수 있는 능력입니다. 이것은 위키에 처리 작업과 모델링 기능을 처리할 수 있는 힘을 부여하며, 여기서 정량적 데이터는 예측된 변환을 통해 취해질 수 있습니다.

우리는 의류 제조업체 Nike를 위해 개발된 프로토타입 위키에서 이 기능을 사용했습니다. 작동 중에 디자이너는 디자이너의 재료 선택 또는 다른 디자인 요소에 해당하는 위키 페이지 또는 패턴을 선택합니다. 그런 다음 디자이너는 물과 에너지 사용과 같은 다양한 지속 가능성 기준에 대한 성능 메트릭을 추출할 수 있는 다른 위키 페이지를 선택합니다.

C. 데이터 출력을 사용한 시나리오 모델링

이 시점에서 패턴 언어 기반 모델링 시스템으로 기능하는 이러한 접근 방식의 힘이 명백해집니다. 실제로 각 위키 페이지는 이제 명시적으로 패턴으로 처리되고 페이지는 함께 작동하는 패턴 언어를 형성합니다. 새로운 위키 시스템에 명시적으로 통합된 패턴은 정량적 변환을 안내할 수 있으며, 각 패턴이 해당 단계에서 발생하는 상호작용을 지배하는 방식입니다.

D. 요소의 패턴과 프로세스의 패턴

건축의 이전 패턴 언어 접근 방식에서 아직 명백하지 않은 이 접근 방식의 또 다른 강력한 측면은 물리적 구조의 패턴과 모델링 프로세스의 패턴의 명시적 조합입니다. 위의 예에서와 같이 "폴리에스테르 직물" 패턴은 "Tier 1 재료 요약" 패턴과 원활하게 결합될 수 있습니다.

참고문헌

[논문의 참고문헌 섹션은 원본 형식을 유지합니다]


번역 완료: 2025년 8월 2일
번역자 노트: 이 논문은 위키 기술과 패턴 언어의 깊은 연관성을 탐구하며, 두 개념이 어떻게 상호보완적으로 발전해왔는지를 보여줍니다. 특히 '연합 위키'라는 새로운 개념과 데이터 처리 능력의 통합은 미래의 협업적 지식 관리 시스템에 대한 중요한 통찰을 제공합니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment