미디어위키

미디어위키 문법 Liberty Engine 미디어위키
the seed openNAMU 나무마크 (확장기능)
기타 도쿠위키 모니위키

MediaWiki.svg

-

Beacause ideas want to be free.

 
— 미디어위키 슬로건

정보

가온 위키에서도 사용하고 있는 오픈 소스 위키 엔진 프로그램으로, PHP를 기반으로 한다.

2002년 위키피디아에서 사용하기 위해 개발된 프로그램으로, 2003년 미디어위키라고 이름을 바꾸었다.

장점

다양한 DB 지원

DB를 사용하므로 안정성이 높다. 파일 DB를 사용하는 도쿠 위키등은 파일이 손상되면 읽어 올 수 없기 때문이다.

현재 MySql, MariaDB, PostgreSQL, SQLite을 지원하며, 제한적으로 Oracle DB[1]MSSQL을 지원한다.[2]

강력한 확장기능

XE의 모듈에 해당하는 확장기능을 지원한다. 미디어위키 자체에서 지원하지 않는 기능들(예를 들어 유튜브 영상 첨부 등)을 지원 할 수 있도록 해준다.

확장기능을 통해 코어를 수정하지 않고도 사용이 가능하다는 장점이 있지만, 미디어위키의 버전이 올라가면 구버전의 사용이 점점 더 어려워 진다. 따라서 지속적으로 업데이트를 하는 확장기능을 선택하는것이 좋다.

이러한 확장기능을 잘 쓰면 리브레 위키위키-게시판 로그인 연동과 같은 것도 만들 수 있다. 다만 잘 쓰면 이라는 조건이 붙지만...[3]

방대한 양의 개발 문서

개발 문서가 잘 써져 있어 개발시 많은 도움이 된다. 다만 대부분의 개발 문서는 영어로 작성되어 있고 한글화 된 문서는 극히 적거나 구버전 내용밖에 없다. 자세한 내용은 하단의 개발 문서의 한글화 부족 문단을 참고하자.

웹 인스톨러 존재

특장점을 뽑자면, 웹 인스톨러가 있다는 것이다.

물론 설치 후반부에 LocalSettings.php 파일을 미디어위키가 설치된 폴더의 최상단에 업로드 해야 한다.[4]

검색 기능

미디어위키의 문서 검색 기능이 우수하다.

옵션에 따라 해당 단어가 포함되어 있는지의 여부도 설정 할 수 있는 점은 다른 위키 엔진에서 찾아 볼 수 없는 기능이다.

다양한 스킨들의 존재

스킨들이 다양하다. 미디어위키 스킨 소개 페이지, 깃허브 미디어위키 스킨 검색 결과를 보면 많은 수의 스킨들이 있다는 것을 알 수 있다.

스킨의 갯수는 다른 위키 엔진들이 가지고 있는 스킨 갯수를 훨씬 앞지르는 숫자이다.

단점

무겁다

원래 미디어위키는 위키미디어에서 사용하려는 목적으로 만든것으로써 소규모 위키(가온 위키도)에서 사용하기엔 무리가 있다.

위키미디어는 램을 박으면 되지만, 소규모 위키의 경우에는 재정적인 문제 등이 있기 때문에 캐시를 효율적으로 사용해야 한다. 아래의 해결 방안 문단을 참고하자.

해결 방안

가벼운 스킨 사용

가온 위키가 사용하는 리버티 스킨은 무거운 편에 속한다. 멋 따윈 버린다면 기본 스킨을 쓰는게 좋다.[5]

리버티 스킨과 같이 엔진에 api를 호출해 값을 얻어오는 기능[6]이 있다면 로드 시간 중에 값을 가져오는 기능도 포함되므로 없애는 방법도 좋은 방법이다.

캐시 때려 박기

캐시를 때려 박으면 캐시된 값을 가져오기 때문에 그만큼 CPU 부하도 줄며 로드 속도도 빨라진다.

브라우저 캐시를 설정하면 바뀐 파일만 로드하기 때문에 빨라진다. 단 재 방문 시에만 해당한다. 아파치 브라우저 캐시 설정 엔진엑스 브라우저 캐시 설정

설정 파일 의존

다른 엔진들과 달리 미디어위키는 미디어위키/LocalSettings.php 파일에 의존한다. 그렇기 때문에 확장 기능 설정이나 미디어위키 설정 변경시에도 코어 변경이 필요 없는 경우 대부분 LocalSettings.php 파일에 추가/수정/제거를 한다.

이 부분이 좋지 못하다는 것은 해당 파일이 손상된 경우에는 접속이 불가능하다. 물론 재생성이 가능하지만 일부 설정이 바이바이 할 수도 있다.

문서는 DB에 저장하지만 설정은 파일에 저장한다는 점에서 모순이...

태그의 복잡성?

이 부분은 호불호(?)가 갈리는 편이다. HTML 태그처럼 <태그>내용</태그> 이런 식으로 태그를 사용한다.

태그 안 내용이 짧다면 보기에 간결하지만 내용이 복잡하다면 타유저의 태그 수정이 불편하다.

거기에 일부 태그는 이중으로 사용이 불가능 하다. 예를 들어 <ref>이런 것이<ref>불가능하다</ref></ref>

개발 문서의 한글화 부족

개발 문서는 대부분 영문으로 작성되어 있기 때문에 영어를 못하는 경우에는 번역기에 의존해야 한다. 이는 엔진의 한글화와 대조되는 부분이다.

사용처

그 외에도 많은 곳에서 사용중이다.

각주

  1. 1.34 버전부터 오라클 DB를 지원하지 않는다.
  2. 다양한 DB를 지원하기 때문에 XML 가져오기(import)시에도 사용하는 DB로 변환하여 사용한다.
  3. 해당 확장기능은 타 위키에서는 사용이 거의 불가능하다. oauth 오류를 뿜어낸다.
  4. FTP를 사용하기 귀찮다면 마지막 부분에 LocalSettings.php를 에디터로 열고 모든 내용을 드래그 후 복사(클립보드에 복사)해 놓은 상태로 SSH로 접속해 최상단 폴더로 이동 후 'vi LocalSettings.php'(다른 에디터를 사용해도 된다.)를 입력 후 붙혀넣기 후 저장해도 된다. 이때 파일명의 대소문자에 유의하자
  5. 기본 스킨을 사용하면 좋은 점이 더 있는데, 확장 기능들 중에서 기본 스킨들만 지원하는 무식한확장 기능들이 존재하기 때문이다. 물론 그런 확장 기능을 사용하지 않거나 자신이 수정 할 수 있다면 상관은 없지만
  6. 리버티 엔진 PC 버전에서 우측의 최근 글 변경