MediaWiki
개요/소개
MediaWiki는 위키 플랫폼의 대표적인 오픈소스 소프트웨어로, 위키백과(Wikipedia)와 같은 대규모 공동 작업 웹사이트를 구축하는 데 사용됩니다. 2001년에 Magnus Manske에 의해 처음 개발되었으며, 현재는 위키미디아 재단(Wikimedia Foundation)이 주도하여 지속적으로 업데이트되고 있습니다. MediaWiki는 WYSIWYG(What You See Is What You Get) 편집 기능, 확장성 있는 플러그인 시스템, 다국어 지원 등 다양한 특징을 갖추고 있어, 학술적, 기업용, 개인용 위키 프로젝트에 널리 활용되고 있습니다. 본 문서에서는 MediaWiki의 주요 기능, 역사, 아키텍처, 설치 방법, 사용 사례 등을 상세히 탐구합니다.
주요 특징
WYSIWYG 편집
MediaWiki는 전통적인 마크다운 형식이 아닌 그래픽 인터페이스를 통한 시각적 편집을 지원합니다. 이 기능은 사용자가 HTML이나 코드를 직접 입력하지 않아도 문서를 쉽게 작성하고 수정할 수 있도록 합니다. 예를 들어, 텍스트 포맷팅, 이미지 삽입, 링크 추가 등이 마우스 클릭으로 가능합니다.
확장성 있는 플러그인 시스템
MediaWiki는 확장 기능(Extension)을 통해 기본 기능을 유연하게 확장할 수 있습니다. 예를 들어, "Semantic MediaWiki" 확장을 사용하면 데이터를 구조화된 방식으로 저장하고 검색할 수 있으며, "Cite" 확장은 참고문헌 관리를 지원합니다. 이러한 플러그인은 PHP 기반의 API를 통해 개발자들이 자유롭게 추가할 수 있습니다.
다국어 지원
MediaWiki는 100개 이상의 언어로 번역되어 있으며, 사용자가 자신의 언어 설정을 선택하여 인터페이스와 문서를 보고 편집할 수 있습니다. 이 기능은 국제적인 협업 프로젝트에 필수적입니다.
역사
위키백과의 탄생
MediaWiki는 2001년에 Magnus Manske가 개발한 "UseModWiki"를 기반으로 시작되었습니다. 이후 2002년, 위키백과(English Wikipedia)가 출범하면서 MediaWiki는 대규모 공동 작업 플랫폼으로 자리매김했습니다.
주요 버전 업데이트
- 1.35 (2019): 모바일 최적화 및 보안 강화
- 1.36 (2020): API 개선 및 확장성 향상
- 1.37 (2021): 사용자 인터페이스 개편
위키미디아 재단의 역할
2004년, 위키백과를 운영하는 위키미디아 재단이 MediaWiki의 주요 개발을 맡았으며, 현재는 커뮤니티와 기업 개발자들이 협력하여 유지되고 있습니다.
아키텍처
핵심 구성 요소
MediaWiki는 PHP로 작성된 서버 측 애플리케이션으로, 주요 구성 요소는 다음과 같습니다:
- 데이터베이스: MySQL 또는 PostgreSQL을 사용하여 문서와 사용자 데이터를 저장합니다.
- 캐시 시스템: 페이지 로딩 속도 향상을 위해 캐시를 활용합니다.
- 보안 모듈: SQL 인젝션 방지, 사용자 권한 관리 등이 포함됩니다.
API 및 확장성
MediaWiki는 RESTful API를 제공하여 외부 애플리케이션이 데이터를 읽거나 쓸 수 있도록 합니다. 예시로, api.php
를 통해 문서 내용을 JSON 형식으로 가져올 수 있습니다.
// MediaWiki API 예제 (PHP)
$apiUrl = "https://en.wikipedia.org/w/api.php";
$params = [
'action' => 'query',
'format' => 'json',
'titles' => 'MediaWiki'
];
$response = file_get_contents($apiUrl . '?' . http_build_query($params));
설치 및 설정
시스템 요구사항
구성 요소 |
최소 사양 |
웹 서버 |
Apache 2.4 또는 Nginx |
데이터베이스 |
MySQL 5.7+ 또는 PostgreSQL |
PHP |
7.4 이상 |
설치 단계
- MediaWiki 다운로드: https://www.mediawiki.org에서 최신 버전을 받습니다.
- 서버에 업로드: 웹 서버의 특정 디렉토리(예:
/var/www/mediawiki
)에 압축 해제합니다.
- 데이터베이스 설정: MySQL에서 사용자와 데이터베이스를 생성하고,
LocalSettings.php
파일을 구성합니다.
- 설치 완료: 브라우저에서
http://yourdomain.com/mediawiki
에 접속하여 설치 마법사를 진행합니다.
사용 사례
위키백과
MediaWiki의 가장 유명한 활용 사례는 위키백과입니다. 3,000만 개 이상의 문서를 보유하며, 전 세계 사용자가 협업해 정보를 공유하고 있습니다.
기타 프로젝트
- Wikimedia Commons: 미디어 파일 저장소
- Wiktionary: 사전 및 어휘 자료집
- Corporate Wikis: 기업 내부 문서 관리 (예: Confluence와 유사한 기능)
커뮤니티 및 생태계
오픈소스 협력
MediaWiki는 GNU GPL v2 라이선스 하에 공개되어 있으며, 개발자들이 자유롭게 코드를 수정하고 배포할 수 있습니다. 주요 기여자는 위키미디아 재단 직원과 글로벌 커뮤니티 구성원입니다.
지원 자원
참고 자료
- MediaWiki 공식 웹사이트
- 위키백과의 기술 아키텍처
- MediaWiki 확장 기능 목록
# MediaWiki
## 개요/소개
MediaWiki는 위키 플랫폼의 대표적인 오픈소스 소프트웨어로, **위키백과(Wikipedia)**와 같은 대규모 공동 작업 웹사이트를 구축하는 데 사용됩니다. 2001년에 Magnus Manske에 의해 처음 개발되었으며, 현재는 위키미디아 재단(Wikimedia Foundation)이 주도하여 지속적으로 업데이트되고 있습니다. MediaWiki는 **WYSIWYG(What You See Is What You Get)** 편집 기능, 확장성 있는 플러그인 시스템, 다국어 지원 등 다양한 특징을 갖추고 있어, 학술적, 기업용, 개인용 위키 프로젝트에 널리 활용되고 있습니다. 본 문서에서는 MediaWiki의 주요 기능, 역사, 아키텍처, 설치 방법, 사용 사례 등을 상세히 탐구합니다.
---
## 주요 특징
### WYSIWYG 편집
MediaWiki는 전통적인 마크다운 형식이 아닌 **그래픽 인터페이스를 통한 시각적 편집**을 지원합니다. 이 기능은 사용자가 HTML이나 코드를 직접 입력하지 않아도 문서를 쉽게 작성하고 수정할 수 있도록 합니다. 예를 들어, 텍스트 포맷팅, 이미지 삽입, 링크 추가 등이 마우스 클릭으로 가능합니다.
### 확장성 있는 플러그인 시스템
MediaWiki는 **확장 기능(Extension)**을 통해 기본 기능을 유연하게 확장할 수 있습니다. 예를 들어, "Semantic MediaWiki" 확장을 사용하면 데이터를 구조화된 방식으로 저장하고 검색할 수 있으며, "Cite" 확장은 참고문헌 관리를 지원합니다. 이러한 플러그인은 PHP 기반의 API를 통해 개발자들이 자유롭게 추가할 수 있습니다.
### 다국어 지원
MediaWiki는 **100개 이상의 언어**로 번역되어 있으며, 사용자가 자신의 언어 설정을 선택하여 인터페이스와 문서를 보고 편집할 수 있습니다. 이 기능은 국제적인 협업 프로젝트에 필수적입니다.
---
## 역사
### 위키백과의 탄생
MediaWiki는 2001년에 **Magnus Manske**가 개발한 "UseModWiki"를 기반으로 시작되었습니다. 이후 2002년, 위키백과(English Wikipedia)가 출범하면서 MediaWiki는 대규모 공동 작업 플랫폼으로 자리매김했습니다.
### 주요 버전 업데이트
- **1.35 (2019)**: 모바일 최적화 및 보안 강화
- **1.36 (2020)**: API 개선 및 확장성 향상
- **1.37 (2021)**: 사용자 인터페이스 개편
### 위키미디아 재단의 역할
2004년, 위키백과를 운영하는 **위키미디아 재단**이 MediaWiki의 주요 개발을 맡았으며, 현재는 커뮤니티와 기업 개발자들이 협력하여 유지되고 있습니다.
---
## 아키텍처
### 핵심 구성 요소
MediaWiki는 PHP로 작성된 서버 측 애플리케이션으로, 주요 구성 요소는 다음과 같습니다:
- **데이터베이스**: MySQL 또는 PostgreSQL을 사용하여 문서와 사용자 데이터를 저장합니다.
- **캐시 시스템**: 페이지 로딩 속도 향상을 위해 캐시를 활용합니다.
- **보안 모듈**: SQL 인젝션 방지, 사용자 권한 관리 등이 포함됩니다.
### API 및 확장성
MediaWiki는 RESTful API를 제공하여 외부 애플리케이션이 데이터를 읽거나 쓸 수 있도록 합니다. 예시로, `api.php`를 통해 문서 내용을 JSON 형식으로 가져올 수 있습니다.
```php
// MediaWiki API 예제 (PHP)
$apiUrl = "https://en.wikipedia.org/w/api.php";
$params = [
'action' => 'query',
'format' => 'json',
'titles' => 'MediaWiki'
];
$response = file_get_contents($apiUrl . '?' . http_build_query($params));
```
---
## 설치 및 설정
### 시스템 요구사항
| 구성 요소 | 최소 사양 |
|----------------|---------------------------|
| 웹 서버 | Apache 2.4 또는 Nginx |
| 데이터베이스 | MySQL 5.7+ 또는 PostgreSQL |
| PHP | 7.4 이상 |
### 설치 단계
1. **MediaWiki 다운로드**: [https://www.mediawiki.org](https://www.mediawiki.org)에서 최신 버전을 받습니다.
2. **서버에 업로드**: 웹 서버의 특정 디렉토리(예: `/var/www/mediawiki`)에 압축 해제합니다.
3. **데이터베이스 설정**: MySQL에서 사용자와 데이터베이스를 생성하고, `LocalSettings.php` 파일을 구성합니다.
4. **설치 완료**: 브라우저에서 `http://yourdomain.com/mediawiki`에 접속하여 설치 마법사를 진행합니다.
---
## 사용 사례
### 위키백과
MediaWiki의 가장 유명한 활용 사례는 **위키백과**입니다. 3,000만 개 이상의 문서를 보유하며, 전 세계 사용자가 협업해 정보를 공유하고 있습니다.
### 기타 프로젝트
- **Wikimedia Commons**: 미디어 파일 저장소
- **Wiktionary**: 사전 및 어휘 자료집
- **Corporate Wikis**: 기업 내부 문서 관리 (예: Confluence와 유사한 기능)
---
## 커뮤니티 및 생태계
### 오픈소스 협력
MediaWiki는 **GNU GPL v2** 라이선스 하에 공개되어 있으며, 개발자들이 자유롭게 코드를 수정하고 배포할 수 있습니다. 주요 기여자는 위키미디아 재단 직원과 글로벌 커뮤니티 구성원입니다.
### 지원 자원
- **공식 문서**: [https://www.mediawiki.org/wiki/Manual](https://www.mediawiki.org/wiki/Manual)
- **포럼**: [https://phabricator.wikimedia.org](https://phabricator.wikimedia.org)
- **GitHub 저장소**: [https://github.com/wikimedia/mediawiki](https://github.com/wikimedia/mediawiki)
---
## 참고 자료
1. [MediaWiki 공식 웹사이트](https://www.mediawiki.org)
2. [위키백과의 기술 아키텍처](https://en.wikipedia.org/wiki/Wikipedia:Technical_architecture)
3. [MediaWiki 확장 기능 목록](https://www.mediawiki.org/wiki/Category:Extensions)