미디어위키

'''미디어위키'''()는 자유 웹 기반 위키 소프트웨어이며, PHP와 MySQL을 사용하고 GNU GPL 라이선스로 배포된다. 또한 미디어위키는 현재 위키백과와 같은 위키미디어 재단의 여러 위키에 이용되며, 다른 백과사전 형식의 위키에서도 많이 이용된다.
미디어위키의 최초 버전은 2002년에 자유 콘텐츠 위키백과 백과사전의 요구를 충당하기 위해 이용되었다. 그 뒤로 내부 지식경영을 위한 저작물 관리 시스템으로서 수많은 회사들이 이용하기 시작했다. 특히 노벨은 이를 이용하여 트래픽이 높은 웹사이트 일부를 운영하고 있다. 수 천개의 웹사이트들이 미디어위키를 사용하고 있다. 일부 교육인도 협업 그룹 프로젝트를 위해 학생들에게 미디어위키를 이용하게 하고 있다.
이 소프트웨어는 700개 이상의 구성 설정과 더불어 사용자가 세세한 부분을 변경할 수 있으며 1,800개 이상의 확장 기능을 이용하여 다양한 기능을 추가하거나 제거할 수 있다. 600개가 넘는 자동화, 반자동화된 봇 프로그램과 기타 도구들이 개발되고 있으며 이는 미디어위키 사이트들의 편집을 도와 준다.
미디어위키는 GNU 일반 공중 사용 허가서 버전 2 이후 버전에 따라 배포되는 자유 및 오픈 소스 소프트웨어이다. 반면 미디어위키의 문서는 크리에이티브 커먼즈 라이선스 BY-SA 3.0 및 일부 퍼블릭 도메인으로 배포된다. 미디어위키 개발은 일반적으로 오픈 소스 미디어 포맷의 이용을 선호한다.
매그너스 맨스케
위키백과가 2001년 1월 처음 시작했을 때에는 펄로 작성되었고 모든 위키 문서를 텍스트 파일로 저장하는 위키 소프트웨어 유스모드위키를 이용하여 구동되었다. 이 소프트웨어는 곧 기능과 성능 면에서 모두 제한이 있는 것으로 확인되었다. 2001년 중순에 쾰른 대학교의 학생이자 개발자이며 위키백과 편집자이기도 했던 매그너스 맨스케(Magnus Manske)는 위키백과의 이용에 적합하면서, 유스모드위키를 대체할 새로운 소프트웨어의 개발에 착수하였다. 이 소프트웨어는 PHP로 작성되었고 모든 정보를 MySQL 데이터베이스에 저장하였다. 2002년 1월에 영어 위키백과에 포함된 뒤 당시 모든 언어의 위키백과에 점차 적용되었다. 이 버전의 소프트웨어는 제 2단계(phase II)로 불렀는데, 이는 제 1단계인 유스모드위키를 대체하는 것이다.
사용량이 늘면서 문제가 다시 불거지자 곧이어 리 대니얼 크로커(Lee Daniel Crocker)가 제3단계(Phase III) 소프트웨어를 작성하였다. 이 새로운 소프트웨어 또한 제2단계와 마찬가지로 MySQL 백엔드를 포함한 PHP로 작성되었으며, 제2단계 소프트웨어의 기본 인터페이스는 유지하되 더 나은 크기 조절을 가능케 했다. 이 버전은 2002년 7월까지 유지되었다.
위키미디어 재단은 2003년 7월 위키백과 기여자 대니얼 메이어(Daniel Mayer)가 "위키미디어"에 빗대어 미디어위키(MediaWiki)라는 이름을 이 소프트웨어에 사용할 것을 제안했다고 발표하였다.
미디어위키의 과거 로고
이 제품의 로고는 플로랑스 드부아르가 찍은 꽃 사진을 에릭 묄러가 이용하여 제작하였으며, 이 로고는 원래 2003년 중순에 개최된 새로운 위키백과 로고를 위한 국제 로고 콘테스트에 제출된 것이었다. 이 로고는 3위를 차지하면서 위키백과 대신 위키미디어를 대표하도록 선정되었으며, 2위에 들어선 로고는 위키미디어 재단에 사용되었다. 해바라기 사진 주변의 이중 대괄호는 미디어위키가 다른 위키 문서로의 하이퍼링크를 이용하는데 쓰이는 문법을 상징한다.
미디어위키 개발의 혁신적인 부분들이 분류 시스템에 포함되어 2004년에 추가되었다. 구문 분석 기능이 2006년에 추가되었다. 플래그 리비전이 2008년에 추가되었다.
=== 버전 역사 ===
미디어위키의 최초 버전 1.1은 2003년 12월에 출시되었다.
미디어위키는 위키백과와 위키미디어의 다른 프로젝트에 쓰이는 것으로 잘 알려져 있다. 그러나 미디어위키는 공적으로나 사적으로 수백 수천 개의 다른 위키 사이트에도 사용되고 있다.
위키백과의 대안으로서 시티즌디움, 컨서버피디아, 메타피디아, 스칼라피디아를 비롯, 미디어위키를 구동하는 수많은 위키 백과사전들이 존재한다.
세계에서 유명한 위키 호스팅 서비스 가운데 하나인 위키아는 미디어위키로 구동한다. 위키아를 호스트하는 저명한 위키 가운데 리릭위키, 메모리 알파, 백괴사전, 와우위키, 우키피디아가 있다.
미디어위키를 구동하는 다른 유명한 위키로는 페미위키, 위키하우, AboutUs.org, Mahalo.com, 위키리크스가 있다.
미디어위키는 노벨과 인텔과 같은 저명한 기업에서도 내부적으로 이용된다.
미디어위키는 확장 기능을 추가하여 부가 기능을 제공하게 하는 핵심 기능들을 제공한다. 위키미디어 프로젝트에서 여러 언어들에 대한 지원이 강조되므로 국제화와 지역화가 개발자들로부터 큰 집중을 받고 있다.
사용자 인터페이스는 300개 이상의 언어로 부분적으로나 완전히 번역되고 있으며 사이트 관리자들이 직접 원하는대로 수정이 가능하다. (완전한 인터페이스는 위키를 통해 편집 가능)
=== 설치 및 구성 ===
미디어위키를 설치하려면 사용자가 PHP 및 호환 SQL 데이터베이스를 실행 중인 서버에서 관리자 권한을 소유해야 한다. 일부 사용자의 경우 미디어위키와 잘 호환되지 않는 프레임워크(Zope나 루비 온 레일즈 따위)를 실행 한다면 가상 호스트를 구축하는 것이 유용하다.
설치 PHP 스크립트는 웹 브라우저를 통해 접근하여 위키 설정을 초기화한다. 여기서 변경 가능 여부, 업로드 가능 여부, 사이트 로고 추가, 확장 기능 설치 여부, LocalSettings.php 파일에 포함되는 구성 설정 수정과 같은 사용자가 최소한의 필수 변수들을 설정해 주어야 한다.
미디어위키 일부는 특수 문서를 통해서나 특정 문서의 편집을 통해 구성할 수 있다. 이를테면 부정 행위 방지 필터들은 특수 문서를 통해 구성할 수 있으며 특정 소도구들은 미디어위키 이름공간에다 자바스크립트 문서를 작성하여 추가할 수 있다. 미디어위키 공동체는 완전한 설치 안내서를 제공하고 있다.
=== 마크업 ===
유스모드위키(UseModWiki)와 더불어 미디어위키와 다른 위키 엔진들과의 초기의 차이점들 가운데 하나는 낙타 대문자(CamelCase) 대신 위키텍스트를 이용한다는 것이었다. 미디어위키를 만들 때 World Wide Web에 대한 문서의 링크를 만들려면 위키는 "WorldWideWeb"과 같은 글자를 요구했다. 한편 미디어위키의 링크들은 과 같이 이중 대괄호()로 낱말들을 감싸야 했다. 이러한 변화는 제목의 정확성이 중요한 백과사전을 만들 때 중요하게 작용했다.
미디어위키는 확장 가능하면서 HTML보다 배우고 쓰기 더 쉬운 가벼운 위키 마크업을 이용한다. 미디어위키 마크업과 HTML 사이에 표와 같은 내용을 변환하는 도구들이 존재한다. 미디어위키 마크업 규격을 만드는 노력이 있었으나, 위키코드에 문맥 대응 문법 규칙이 필요하다는 총의가 모인 것으로 보인다. 다음의 비교표는 위키 마크업과 HTML 간 차이점을 나타내고 있다:
미디어위키 문법
HTML 대응
결과물
모기가 말했습니다. "너의 가정 교사가 너를 아가씨 ''miss''라고 부른다면 좋을 거야. 그럼 넌 수업을 빠져도 ''miss'' 될테니까. 농담이야, 너도 농담을 했으면 좋겠는데."
앨리스가 물었습니다. "넌 왜 내가 농담을 하길 바라니? 재미도 없는 걸."
하지만 모기는 뺨 위로 '''굵은 눈물'''을 주르르 흘리며 한숨만 내쉴 뿐이었습니다. 앨리스가 말했습니다. "농담을 하고 나서 그렇게 슬퍼진다면 농담을 하지 말아야지."
모기가 말했습니다. "너의 가정 교사가 너를 아가씨 miss라고 부른다면 좋을 거야. 그럼 넌 수업을 빠져도 miss 될테니까. 농담이야, 너도 농담을 했으면 좋겠는데."
앨리스가 물었습니다. "넌 왜 내가 농담을 하길 바라니? 재미도 없는 걸."
하지만 모기는 뺨 위로 굵은 눈물을 주르르 흘리며 한숨만 내쉴 뿐이었습니다. 앨리스가 말했습니다. "농담을 하고 나서 그렇게 슬퍼진다면 농담을 하지 말아야지."
모기가 말했습니다. "너의 가정 교사가 너를 아가씨 ''miss''라고 부른다면 좋을 거야. 그럼 넌 수업을 빠져도 ''miss'' 될테니까. 농담이야, 너도 농담을 했으면 좋겠는데."
앨리스가 물었습니다. "넌 왜 내가 농담을 하길 바라니? 재미도 없는 걸."
하지만 모기는 뺨 위로 '''굵은 눈물'''을 주르르 흘리며 한숨만 내쉴 뿐이었습니다. 앨리스가 말했습니다. "농담을 하고 나서 그렇게 슬퍼진다면 농담을 하지 말아야지."
(루이스 캐럴의 이상한 나라의 앨리스에서 인용)
=== 편집 인터페이스 ===
미디어위키의 문서 편집 도구들은 배우기가 가끔 쉽지 않은 것으로 알려져 있다. 미디어위키 기반의 위키를 이용하도록 한 학생들의 조사에 따르면 위키에 관한 주된 미해결 문제에서 24%가 형식과 관련한 기술적 문제였다고 응답했다. (이를테면 "그림을 어떻게 넣는지 모르겠다. 낱말에 링크를 어떻게 나타나게 하는지 모르겠다.)
기나긴 내용의 문서를 쉽게 편집할 수 있도록 미디어위키는 머릿말로 구분되는 한 문서의 하부 섹션을 편집할 수 있게 하고 있다. 사용자는 편집이 사소한 편집인지 아닌지를 구분할 수 있다. 이를테면 맞춤법 수정은 사소한 편집에 해당하지만 새로운 내용의 문단을 추가하는 것은 사소한 편집이 아니다.
한 사용자가 편집을 하는 동안에 두 번째 사용자가 같은 부분의 문서의 편집분을 저장할 수도 있다. 여기서 최초의 사용자가 문서를 저장하려고 하면 편집 충돌이 일어난다. 선택적 확장 기능을 이용하면 편집 충돌이 일어날 때 특정 사용자 그룹에 편집 우선권을 제공할 수 있다.
미디어위키는 여러 언어로 사용자 인터페이스를 제공한다. 위키 내용의 언어 그 자체를 HTTP 헤더(콘텐츠 언어)와 HTML 특성(언어)으로 설정할 수 있다.
미디어위키 1.17 이상부터는 이전의 편집 도구 모음이 더 이상 포함되어 있지 않다.
=== API ===
미디어위키는 미디어위키 데이터베이스에 포함된 데이터에 대한 높은 수준의 직접 접근을 제공하는 확장 가능한 API를 소유하고 있다. 클라이언트 프로그램들은 API를 이용하여 로그인하고 데이터를 수집하며 변경 사항들을 적용할 수 있다.
=== 리치 콘텐츠 ===
미디어위키는 특별한 문법을 통해 만들어진 리치 콘텐츠를 지원한다.
=== 편집 추적 ===
편집을 추적하는 일을 도와주는 미디어위키의 기능들 가운데 "최근 바뀜" 기능은 위키에서 최근 일어난 편집들의 목록을 제공한다. 이 목록에는 도움이 되지 않는 편집을 방지할 목적으로, 수정 가능한 부정 행위 방지 필터 등의 확장 기능을 통해 추가된 태그를 비롯하여, 편집 중인 사용자, 편집 요약, 편집된 문서와 같은 기본 편집 정보를 포함한다.
=== 내비게이션 ===
위키를 통한 내비게이션은 대개가 내부 위키링크를 통한다. 인터위키 링크는 이름공간과 매우 동일한 방식의 역할을 한다.
=== 내용물 관리 ===
* '''문서 탭 및 연결 문서''': 문서 탭은 문서의 맨 상단에 위치해 있다. 또, 개별 문서마다 여러 판의 문서가 연결되어 역사에 존재하고 있으므로 사용자가 선택한 두 판에 대한 차이를 확인할 수 있다.
* '''이름공간''': 초기 기능들 가운데 하나가 이름공간이다. 이름공간은 정보나 기능의 종류를 구분하는 폴더처럼 나타난다. 사용자 지정 이름공간은 사이트 관리자가 추가할 수 있다.
* '''분류 태그''': 사용자는 새로운 분류를 만들고, 하나 이상의 분류 태그를 본문에 추가하여 문서와 파일에 분류를 달 수 있다.
* '''하위 문서''': 이름공간뿐 아니라, 하위 문서를 이용하여 내용을 정렬할 수 있다. 과 같이 슬래시를 이용함으로써 자동 사이트 이동 경로를 지정할 수 있다.
=== 사용자 지정 ===
* '''틀''': "미디어위키:" 이름공간은 원래 특별한 문법을 사용하여 다른 문서로 동적으로 불러들일 수 있는 사용자 지정 텍스트 블록을 만드는데 이용되었다. 이러한 내용은 나중에 저만의 이름공간인 "틀:"로 이동되었다.
* '''사용자 그룹 및 접근 제한''': 미디어위키는 사용자 그룹을 만들고 정의하는 유연성을 제공한다. 이를테면 사용자를 차단하고 문서를 삭제할 수 있는 권한을 가진 임의의 "닌자" 그룹을 만들 수 있다.
* '''확장성''': 미디어위키의 코드에는 콜백 함수를 이용하여 다양한 후크(hook)를 포함하고 있으므로 부가적인 PHP 코드를 확장 가능한 방법으로 추가할 수 있다.
미디어위키에는 서버 접근 권한이 있는 사용자가 "확장 기능"을 설치하여 부가 기능을 넣을 수 있다. 확장 기능은 여러 가지 종류가 있는데, 기능에 따라 다른 추가 기능, 권한, 특수 문서 등이 생긴다. 이러한 확장 기능은 위키 내의 특수:버전에서 확인 가능하다.
미디어위키는 MySQL/MariaDB, PostgreSQL, SQLite 관계형 데이터베이스 관리 시스템 중 하나를 선택할 수 있다. 오라클 데이터베이스의 경우 지원이 제한적이다.
미디어위키 개발자들은 전 세계에 분포해 있으나 대부분은 미국과 유럽에 위치해 있다. 미디어위키 개발자들을 위한 대면 회의와 프로그래밍 세션은 2004년부터 한 해에 여러 번 개최되고 있다.
미디어위키의 사용자 지원은 다음에서 이루어진다 :
* MediaWiki.org의 지원 데스크
* MediaWiki-l 공식 메일링 리스트
* 미디어위키 관리에 대한 정보가 포함된 일부 서적들 (일부 자유 온라인 서적 포함)
* 
* 
 
분류:자유 소프트웨어
분류:자유 위키 소프트웨어
분류:2002년 소프트웨어
분류:PHP로 작성된 자유 소프트웨어
분류:크로스 플랫폼 자유 소프트웨어
분류:자유 저작물 관리 시스템
분류:버전 관리 시스템