미디어위키
1. 개요
1. 개요
미디어위키는 위키미디어 재단이 개발한 위키 소프트웨어이다. 2002년 1월 25일에 최초 공개되었으며, PHP로 작성되었고 GNU 일반 공중 사용 허가서 하에 배포되는 자유 소프트웨어이다. 이 소프트웨어는 주로 위키 사이트를 구축하는 데 사용된다.
미디어위키는 위키백과를 비롯한 위키미디어 재단의 모든 프로젝트를 구동하는 엔진으로 가장 잘 알려져 있다. 이로 인해 대규모의 협업적 콘텐츠 작성과 관리에 특화된 강력한 기능을 갖추고 있다. 사용자들은 별도의 프로그래밍 지식 없이도 웹 브라우저를 통해 문서를 쉽게 생성하고 편집할 수 있다.
이 소프트웨어는 다국어 지원, 방대한 문서 역사 관리, 파일 업로드 기능, 사용자 권한 체계 등을 기본적으로 제공한다. 또한 풍부한 확장 기능과 템플릿 시스템을 통해 기능을 무한히 확장할 수 있어, 단순한 위키 이상으로 다양한 형태의 지식 관리 시스템이나 콘텐츠 관리 시스템으로 활용될 수 있다.
미디어위키의 안정성과 확장성 덕분에 전 세계 수많은 기업, 교육 기관, 비영리 단체에서 내부 지식 베이스나 공개 웹사이트를 구축하는 데 채택하고 있다.
2. 역사
2. 역사
미디어위키는 2002년 1월 25일에 최초 공개된 위키 소프트웨어이다. 이 소프트웨어는 위키백과를 운영하기 위해 매그너스 만스케가 개발한 UseModWiki의 포크로 시작되었다. 당시 위키백과의 성장에 따라 더욱 강력한 기능과 확장성을 갖춘 새로운 플랫폼이 필요했고, 이에 따라 PHP로 재작성된 미디어위키가 탄생하게 되었다.
초기 버전은 "위키백과 소프트웨어" 또는 "Phase III"로 불렸으며, 2003년에 현재의 이름인 미디어위키로 공식 명명되었다. 이후 모든 위키미디어 프로젝트의 표준 플랫폼으로 채택되면서 급속도로 발전하였다. 개발과 유지보수는 위키미디어 재단이 주도하고 있으며, 소스 코드는 GNU 일반 공중 사용 허가서 하에 공개되어 있다.
미디어위키의 역사는 위키백과와 위키미디어 운동의 성장과 궤를 같이한다. 소프트웨어는 대규모 협업 편집, 수많은 문서와 파일의 관리, 다국어 지원 등 위키미디어 프로젝트의 거대한 규모와 복잡한 요구사항을 충족시키기 위해 지속적으로 개선되어 왔다. 이러한 과정에서 강력한 템플릿 시스템, 파서 함수, 수천 개의 확장 기능이 개발되었다.
이 소프트웨어는 위키미디어 프로젝트 외에도 전 세계 수많은 기업, 기관, 개인이 내부 지식 관리 시스템이나 공개 커뮤니티 사이트를 구축하는 데 널리 사용되고 있다. 그 역사는 단순한 위키 엔진을 넘어, 대중적 협업과 자유 콘텐츠 생태계의 핵심 인프라를 구축한 이야기이다.
3. 기능 및 특징
3. 기능 및 특징
3.1. 편집 기능
3.1. 편집 기능
미디어위키의 편집 기능은 사용자가 쉽게 콘텐츠를 생성하고 수정할 수 있도록 설계되었다. 가장 큰 특징은 위키텍스트라는 경량 마크업 언어를 사용한다는 점이다. 사용자는 복잡한 HTML 코드를 배우지 않고도 간단한 기호를 이용해 텍스트 서식, 하이퍼링크, 목록, 표 등을 문서에 추가할 수 있다. 또한, '편집' 버튼을 클릭하면 즉시 해당 문서의 소스 코드를 수정할 수 있는 편집창이 나타나며, 변경 사항을 저장하기 전에 미리보기 기능을 통해 결과를 확인할 수 있다.
이 편집 환경은 초보자와 숙련된 사용자 모두를 배려한다. 기본적인 서식 도구 모음이 제공되어 자주 사용하는 기능에 쉽게 접근할 수 있으며, 동시에 고급 사용자를 위해 직접 위키텍스트를 작성할 수 있는 공간도 마련되어 있다. 편집 과정에서 발생할 수 있는 실수나 악의적인 편집을 방지하기 위해, 편집 요약을 작성하거나 변경 사항을 '사소한 편집'으로 표시하는 옵션도 제공된다. 이러한 기능들은 위키백과와 같은 대규모 협업 프로젝트에서 효율적인 문서 관리를 가능하게 하는 기반이 된다.
3.2. 관리 기능
3.2. 관리 기능
미디어위키는 방대한 규모의 위키를 운영하는 데 필요한 다양한 관리 기능을 제공한다. 이러한 기능들은 위키백과와 같은 대규모 공동 편집 프로젝트의 안정적 운영을 뒷받침하는 핵심 요소이다.
관리 기능의 핵심은 사용자와 콘텐츠에 대한 세밀한 통제에 있다. 관리자 권한을 가진 사용자는 문서를 삭제하거나 보호할 수 있으며, 봇 계정을 통해 대량의 자동 편집 작업을 수행할 수 있다. 또한, 사용자 차단 기능을 통해 훼손 행위를 일으키는 계정이나 IP 주소의 편집을 제한할 수 있다. 최근 변경 내역을 실시간으로 모니터링하고 되돌리는 기능은 악의적인 편집으로부터 위키를 보호하는 데 필수적이다.
파일 관리와 시스템 설정 또한 중요한 관리 영역이다. 파일 업로드 기능과 함께 업로드된 미디어 파일을 관리할 수 있는 도구가 제공된다. 이름공간을 활용하여 문서를 체계적으로 분류하고, 특수 문서를 통해 시스템의 다양한 통계와 정보를 확인할 수 있다. 사용자 권한 체계는 각 사용자 그룹(예: 익명 사용자, 등록 사용자, 관리자)에 대해 세부적인 편집 및 관리 행위의 허용 범위를 정의한다.
이러한 관리 도구들은 확장 기능을 통해 그 기능이 더욱 확장될 수 있다. 예를 들어, 스팸 방지, 편집 필터, 복잡한 권한 설정 등을 추가하는 확장 기능을 설치할 수 있다. 미디어위키의 강력한 관리 기능은 수백만 개의 문서와 수천 명의 활성 기여자를 가진 대형 위키 프로젝트의 성공적 운영을 가능하게 하는 기반이다.
3.3. 확장 기능
3.3. 확장 기능
미디어위키의 확장 기능은 코어 소프트웨어의 기본 기능을 확장하거나 수정하는 PHP 스크립트 모듈이다. 이를 통해 사이트 관리자는 위키의 기능을 커스터마이징하고 새로운 도구를 추가할 수 있다. 확장 기능은 위키미디어 재단이 운영하는 공식 확장 저장소를 통해 배포되며, 사용자는 필요에 따라 다양한 확장 기능을 선택하여 설치할 수 있다.
확장 기능의 종류는 매우 다양하다. 편집 경험을 향상시키는 위지윅 편집기, 특수 문서를 생성하는 파서 함수, 사용자 권한을 세분화하는 관리 도구, 외부 데이터를 연동하는 API 확장 등이 대표적이다. 또한 스킨을 변경하여 사이트의 외관을 바꾸는 것도 일종의 확장 기능에 해당한다.
이러한 확장 기능 시스템은 미디어위키가 단순한 위키 엔진을 넘어 다양한 콘텐츠 관리 시스템 역할을 할 수 있게 하는 핵심 요소이다. 수천 개에 달하는 공식 및 비공식 확장 기능 덕분에 미디어위키는 위키백과 같은 대규모 지식 베이스부터 기업 내부의 프로젝트 관리 도구에 이르기까지 광범위한 용도로 활용되고 있다.
3.4. 템플릿 시스템
3.4. 템플릿 시스템
미디어위키의 템플릿 시스템은 문서 내에서 반복적으로 사용되는 콘텐츠나 복잡한 서식을 효율적으로 관리하고 일관되게 적용하기 위한 핵심 기능이다. 이 시스템을 통해 사용자는 특정한 마크업이나 정보를 담은 템플릿 문서를 생성한 후, 다른 문서에서 해당 템플릿을 호출하여 삽입할 수 있다. 이는 유지보수의 편의성을 크게 높이며, 위키 전체의 통일성을 유지하는 데 기여한다.
템플릿의 기본 사용법은 중괄호 두 개({{템플릿 이름}})로 문서를 감싸는 것이다. 템플릿은 매개변수를 지원하여, 호출 시마다 다른 내용을 표시하도록 할 수 있다. 예를 들어, 정보 상자, 알림 메시지, 내비게이션 상자, 인용 형식 등을 템플릿으로 제작하여 광범위하게 활용한다. 위키백과를 비롯한 많은 미디어위키 기반 사이트에서는 이러한 템플릿을 적극적으로 사용하여 문서의 품질과 일관성을 관리한다.
고급 기능으로는 파서 함수와 매직 워드를 템플릿 내에서 활용하는 것이 있다. 이를 통해 조건부 표시, 날짜 계산, 변수 처리 등 동적인 콘텐츠 생성을 가능하게 한다. 또한, 템플릿은 다른 템플릿을 포함하는 중첩 구조를 가질 수 있어, 더 복잡한 사용자 인터페이스 요소나 표를 구성하는 데 유용하다.
템플릿 시스템의 강력함은 확장성에서도 드러난다. 확장 기능을 통해 템플릿의 기능을 더욱 풍부하게 할 수 있으며, 위키미디어 공용과 같은 중앙 저장소를 통해 프로젝트 간 템플릿을 공유하는 것도 가능하다. 이는 전 세계 위키 편집자들의 협업을 촉진하는 중요한 도구가 된다.
4. 사용 및 설치
4. 사용 및 설치
4.1. 시스템 요구사항
4.1. 시스템 요구사항
미디어위키는 PHP로 작성된 서버 측 응용 소프트웨어이므로, 운영을 위해서는 웹 서버, 데이터베이스 관리 시스템, PHP 인터프리터가 필요하다. 가장 일반적인 구성은 리눅스 운영 체제, 아파치 HTTP 서버, MySQL 또는 마리아DB 데이터베이스, 그리고 적절한 버전의 PHP를 함께 사용하는 LAMP 스택이다. 그러나 마이크로소프트 윈도우 서버와 IIS 웹 서버, 마이크로소프트 SQL 서버를 사용하는 구성도 공식적으로 지원된다.
시스템 요구사항은 미디어위키의 버전에 따라 달라진다. 최신 안정판을 실행하기 위해서는 일반적으로 특정 버전 이상의 PHP (예: 7.4.3 이상)와 호환되는 데이터베이스 (MySQL 5.7.0 이상, 마리아DB 10.3.0 이상, SQLite 3.8.0 이상, PostgreSQL 10.0 이상 등)가 필요하다. 또한 이미지 썸네일 생성이나 수학 공식 렌더링을 위한 ImageMagick이나 TeX 같은 추가 소프트웨어를 권장하기도 한다. 자세한 요구사항은 공식 매뉴얼의 설치 지침에서 확인할 수 있다.
미디어위키는 비교적 낮은 사양의 서버에서도 구동 가능하도록 설계되었지만, 위키백과나 위키미디어 공용 같은 대규모 사이트를 운영할 경우에는 상당한 서버 자원과 캐시 시스템(메모리 캐시, Varnish 등)을 통한 성능 최적화가 필수적이다. 설치 과정은 웹 기반 설치 스크립트를 통해 대부분 자동화되어 있어, 기본적인 시스템 관리 지식이 있다면 비교적 쉽게 완료할 수 있다.
4.2. 설치 과정
4.2. 설치 과정
미디어위키의 설치 과정은 비교적 표준화된 웹 애플리케이션 설치 절차를 따른다. 설치를 위해서는 먼저 PHP 스크립트 언어를 지원하는 웹 서버와 MySQL 또는 PostgreSQL과 같은 데이터베이스 관리 시스템이 필요하다. 또한, 이미지 업로드와 썸네일 생성을 위해 ImageMagick이나 GD 라이브러리 같은 그래픽 라이브러리가 권장된다.
설치는 일반적으로 미디어위키 공식 웹사이트에서 최신 안정판 소프트웨어를 다운로드하여 웹 서버의 문서 루트 디렉토리에 압축을 푼 후 시작한다. 웹 브라우저를 통해 해당 디렉토리에 접속하면 설치 스크립트가 자동으로 실행되어 사용자에게 필요한 정보를 단계별로 요청한다. 이 과정에서 데이터베이스 연결 정보, 사이트 이름, 관리자 계정 설정 등을 구성하게 된다.
설치 스크립트는 입력된 정보를 바탕으로 데이터베이스 테이블을 생성하고 기본 설정 파일(LocalSettings.php)을 자동으로 작성한다. 이 파일은 미디어위키의 모든 핵심 설정을 담고 있으며, 설치가 완료된 후에는 웹 서버의 문서 루트 디렉토리에서 config 폴더를 삭제하거나 이동하여 보안을 강화해야 한다. 이후부터는 이 LocalSettings.php 파일을 수정하여 사이트의 다양한 기능과 확장 기능을 관리할 수 있다.
설치 후에는 사용자 권한 설정, 네임스페이스 구성, 필수적인 확장 기능(예: 시각 편집기, 스팸 방지 도구)의 추가 설치 및 설정이 일반적으로 이루어진다. 대규모 사이트를 운영할 계획이라면 성능 최적화를 위해 캐시 시스템(예: Memcached)을 구성하는 것도 고려해야 한다.
5. 주요 활용 사례
5. 주요 활용 사례
미디어위키는 전 세계적으로 가장 널리 알려진 위키 소프트웨어로, 특히 대규모 협업 프로젝트를 운영하는 데 적합한 구조를 가지고 있다. 가장 대표적인 활용 사례는 위키백과를 비롯한 위키미디어 재단의 모든 프로젝트이다. 위키백과는 수백 개의 언어로 운영되며, 수천만 개의 문서를 미디어위키 플랫폼 위에서 관리하고 있다. 이처럼 방대한 양의 콘텐츠와 전 세계의 수많은 기여자를 안정적으로 지원하는 능력이 미디어위키의 강점으로 꼽힌다.
기업이나 기관 내부에서도 지식 관리 시스템이나 내부 위키를 구축하는 데 많이 사용된다. 복잡한 템플릿 시스템과 세분화된 사용자 권한 관리 기능을 통해 조직의 문서화 작업이나 매뉴얼 공유에 효과적이다. 또한, 다양한 확장 기능을 통해 기능을 추가할 수 있어, 단순한 문서 저장소를 넘어 프로젝트 관리 도구나 이슈 트래커의 역할도 수행할 수 있다.
교육 분야에서는 교육 기관이나 연구 단체가 공개 강의 자료를 공유하거나, 학생들이 협업하여 보고서나 용어 사전을 작성하는 플랫폼으로 활용되기도 한다. 그 외에도 특정 취미나 주제에 관한 커뮤니티가 정보를 체계적으로 축적하는 팬덤 위키를 만드는 데에도 널리 쓰인다. 이러한 다양성은 미디어위키가 가진 강력한 편집 기능과 개방성 덕분이다.
6. 기타 위키 소프트웨어와의 비교
6. 기타 위키 소프트웨어와의 비교
미디어위키는 위키백과 및 위키미디어 재단의 다른 프로젝트를 위해 특별히 개발된 위키 소프트웨어로, 대규모 공동 편집 프로젝트에 최적화되어 있다는 점에서 다른 솔루션들과 차별화된다. 이에 반해 모니위키는 경량화된 구조와 단순한 설치 과정을 특징으로 하며, 도쿠위키는 데이터베이스 대신 파일 시스템을 사용하여 구성이 간편하다. 티키위키는 위키 기능에 콘텐츠 관리 시스템과 포럼 등 다양한 커뮤니티 도구를 통합한 올인원 플랫폼을 지향한다.
미디어위키의 가장 큰 강점은 대용량 트래픽과 방대한 양의 문서를 효율적으로 처리하는 능력이다. 이는 복잡한 데이터베이스 구조, 강력한 캐싱 시스템, 그리고 정교한 접근 제어 및 문서 역사 관리 기능에서 기인한다. 반면, 피비위키나 모인모인과 같은 일부 소프트웨어는 더 가벼운 구조를 채택하여 소규모 팀이나 개인용 위키에 적합하다.
다른 솔루션과의 주요 비교 요소는 다음과 같다.
비교 요소 | 미디어위키 | 대표적 대안 (예시) |
|---|---|---|
주요 사용처 | 대규모 공개 위키 (위키백과) | 소규모 팀/개인 위키, 기업 내부 |
데이터 저장 | 관계형 데이터베이스 (MySQL, PostgreSQL 등) | 파일 시스템 (도쿠위키), 기타 데이터베이스 |
설치 및 관리 | 비교적 복잡함, 고성능 요구 | 일반적으로 간편함 |
확장성 | 매우 높음 (수많은 확장 기능) | 제한적 또는 중간 수준 |
기본 기능 | 강력한 편집, 템플릿, 파일 관리 | 핵심 위키 기능에 집중 |
라이선스 측면에서 미디어위키는 자유 소프트웨어인 GNU 일반 공중 사용 허가서를 따르며, 이는 모니위키의 GNU 약소 일반 공중 사용 허가서나 도쿠위키의 GNU 일반 공중 사용 허가서와 유사한 철학을 공유한다. 사용자는 프로젝트의 규모, 기술 요구사항, 운영 인력 등을 고려하여 적합한 위키 엔진을 선택할 수 있다.
