미디어위키(r14 Blame)
| r14 | ||
|---|---|---|
| r13 | 1 | [[분류:미디어위키]][include(틀:접근 제한, 문서명=미디어위키)] |
| r11 (r9으로 되돌림) | 2 | [include(틀:위키 엔진)] |
| 3 | ||<-2><tablewidth=400><tablealign=right><tablebordercolor=#ddd,#191919> {{{+1 '''미디어위키'''}}}[br] || | |
| 4 | ||<-2><bgcolor=#fff> [[파일:미디어위키 로고.jpg|width=65%]] || | |
| 5 | ||<width=30%> '''소프트웨어 종류''' ||<colbgcolor=#fff,#1f2023>[[위키 엔진]]|| | |
| 6 | || '''개설일''' ||[[2002년]] [[1월 25일]] ^^([age(2002-01-25)]주년)^^ || | |
| 7 | || '''버전''' ||[[https://m.mediawiki.org/wiki/Release_notes/ko|1.42.1]][*기준 [[2024년]] [[9월 9일]]] || | |
| 8 | || '''크기''' ||37MB || | |
| 9 | || '''운영체제''' ||[[Microsoft Windows]] | [[macOS]] | [[Linux]] | [[FreeBSD]] | [[OpenBSD]] | [[솔라리스(운영체제)|솔라리스]] || | |
| 10 | || '''개발 언어''' ||[[PHP]] || | |
| 11 | || '''사용 언어''' ||459개 [[https://github.com/wikimedia/mediawiki/blob/33440f23c6deab2c1fab0a9ca7ead30d64a3ea2e/languages/data/Names.php|#]] || | |
| 12 | || '''영리 여부''' ||'''비영리''' || | |
| 13 | || '''소유자''' ||[[위키미디어 재단]], 미디어위키 봉사자 || | |
| 14 | || '''라이선스''' ||'''[[GNU 일반 공중 사용 허가서|GPLv2]]''' || | |
| 15 | || '''관련 사이트''' ||[[https://www.mediawiki.org|[[파일:홈페이지 아이콘.svg|width=20]]]] || | |
| r4 (r2으로 되돌림) | 16 | |
| r11 (r9으로 되돌림) | 17 | [목차] |
| 18 | [clearfix] | |
| 19 | == 개요 == | |
| 20 | [[위키미디어 재단]]에서 개발, 배포하는 세계적인 설치형 위키 프로그램으로 [[오픈소스]] [[위키 엔진]]. [[PHP]] 기반이고, 라이선스는 [[GPL|GPLv2+]]를 사용한다. 이 엔진을 쓰는 가장 잘 알려진 위키는 [[위키백과]], [[리브레 위키]]로, 이 엔진 자체가 처음부터 위키백과를 위해 만들어진 것이다. 단, 미디어위키가 위키백과에 처음 쓰인 건 [[2002년]]으로, 미디어위키 개발 전의 초창기에는 유스모드 위키를 사용했다. | |
| r4 (r2으로 되돌림) | 21 | |
| r11 (r9으로 되돌림) | 22 | == 특징 == |
| 23 | 파일 기반이 아닌 [[데이터베이스|DB 데이터베이스]]를 사용한다. 기본적으로 [[MySQL]]을 사용하나, [[PostgreSQL]], [[SQLite]]도 사용 가능하다. 위키백과를 위해 개발되고 최신 기술 도입이 빠른 엔진이라서 성능 최적화가 그다지 좋지 않다. 개인 레벨 이상의 규모를 가진 위키중 다수가 이 엔진을 사용하는 이유는 미디어위키 특유의 강력한 기능과 DB를 지원하는 위키 엔진 중 미디어위키 이외에 서비스용 위키에 쓸만한 엔진이 거의 없기 때문이다. 한국어 지원 여부도 마찬가지로, [[http://www.wikimatrix.org/statistic/Data+Storage|wikimatrix.org의 통계]]에 따르면 위키 엔진중 절반 가까이가 DB를 지원하지만, 한국어 지원 엔진은 모두 합쳐도 10여종에 불과하다. 당장 [[the seed]]는 비공개 소프트웨어이며 대체 엔진으로 [[https://github.com/gdl-blue/imitated-seed-2|imitated-seed]]를 사용할 수 있지만 나무마크가 완전히 지원되지 않으며 버그도 많고, [[오픈나무]]는 아무리 미디어위키가 최적화 등 조금 부족한 면이 있지만, 미디어위키 대비 부족한점이 한두가지가 아니다. | |
| r4 (r2으로 되돌림) | 24 | |
| r11 (r9으로 되돌림) | 25 | 설치 및 사용을 위하여 MySQL 5.5.8 이상, PHP 7.4.3 이상을 최소 사양으로 요구한다. |
| 26 | 국내에 웹호스팅은 [[XpressEngine]]이나 [[워드프레스]] 등의 주요 PHP 솔루션들의 최소사양이 버전 5.3 이상으로 올라감에 따라 PHP 버전을 5.3 대로 올렸으나 5.5 버전대는 지원하지 않는 곳이 있으니 사전에 확인이 필요하다. | |
| r4 (r2으로 되돌림) | 27 | |
| r11 (r9으로 되돌림) | 28 | 최신 안정 버전은 1.41.0 버전이고, 최신 LTS 버전도 마찬가지로 1.39.1 버전이다. |
| 29 | 미디어위키의 버전을 살펴보면 [[LTS]](Long Term Support)라고 표기된 버전이 있는데, 이 버전은 다른 버전보다 지원기간이 길다. 보통 미디어위키의 프로그래밍이 이전 버전에서 크게 변경되면 일반 버전은 1년, LTS라고 표기된 버전은 3년간 지원이 계속된다. 알파 버전은 미리보기 버전이며, 일반적인 방법으론 다운로드가 불가능하고 [[Git]]를 통해 받아야한다. | |
| 30 | [[https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce|메일링 리스트]]에 등록하면 버전업이나 보안패치시 메일을 통해 알려준다. | |
| r4 (r2으로 되돌림) | 31 | |
| r11 (r9으로 되돌림) | 32 | 다른 [[위키 엔진]][* [[모니위키]]나 [[도쿠위키]] 등]보다 매우 다양한 기능들을 제공한다. 특히 분류(Category) 기능은 상당히 유용하게 잘 짜여져있다. 1.2.5 미만의 모니위키의 경우 분류를 하려면 분류용 문서를 따로 만든 뒤 일일이 수동으로 추가해야 되지만,[* 모니위키에도 분류가 있다. 단 분류를 보려면, 역링크를 이용해야 한다. 다만 미디어위키식 분류도 1.2.5에 도입되었다.] 미디어위키는 분류 문서를 만들어 두고 문서 아무데나 대충 "분류:XXX"만 입력해 두면 자동으로 분류된다. |
| r4 (r2으로 되돌림) | 33 | |
| r11 (r9으로 되돌림) | 34 | 여담으로 설치기에 [[문화어]]가 존재한다. ~~번역 품질은 쓰레기이다~~ |
| r4 (r2으로 되돌림) | 35 | |
| r11 (r9으로 되돌림) | 36 | == 장단점 == |
| 37 | === 장점 === | |
| 38 | * 개발 및 개선이 활발하게 이루어지고 있다. | |
| 39 | * 검색 기능이 강력하다. | |
| 40 | * 현존하는 위키 엔진 중에서는 가장 많은 수의 기능을 지원한다. | |
| 41 | * 확장 기능(Extension)을 통해 여러가지 기능 추가가 가능하다. | |
| 42 | * 여러 가지 스킨을 쓸 수 있다. | |
| 43 | * 인스톨러 페이지가 지원되어 설치의 복잡함이 줄어들었다.[* 미디어위키 파일을 서버에 올린 후 설정 페이지에 접속하면 알아서 서버의 현황을 확인하여 설치가 가능한지 여부를 알려준다. 모니위키의 설치 페이지보다 더욱 직관적이고 각 항목마다 도움말이 배정되어 설치 자체가 어렵지는 않게 되었다. 그리고 2012년 5월 하반기에 설치 메시지가 한국어로 번역되어 미디어위키 1.20부터 지원한다.] | |
| 44 | * 대부분의 기능이 한국어 번역과 지원이 잘 되어 있다. 만약 번역이 되어 있지 않은 메시지가 있다면 [[http://translatewiki.net|이곳]]의 MediaWiki 프로젝트에서 번역할 수 있다. | |
| 45 | * VisualEditor라는 기능을 통해 [[WYSIWYG]]을 지원한다. | |
| 46 | * 서버 파일이나 스킨을 수정할 필요 없이 사용자가 직접 CSS를 수정하고 자바스크립트를 적용할 수 있다. 다만 개별 사용자별 CSS는 설정 파일에서 켜주어야 한다. | |
| r4 (r2으로 되돌림) | 47 | |
| r11 (r9으로 되돌림) | 48 | === 단점 === |
| r14 | 49 | * 전체 위키문법이 상당히 복잡하다.[* [[http://www.aosabook.org/en/mediawiki.html|참고 링크]] 및 [[http://bluebrown.net/blog/archives/1051|번역 링크]] 참조. 이는 후술할 오리마크 등의 확장 기능으로 해결 가능하다. MediaWiki의 공식 확장기능인 VisualEditor로 쉽게 편집할 수 있다. 특히 표 만드는 게 많이 어려워서 [[http://www.tablesgenerator.com/markdown_tables|사이트]]까지 나왔다.] 특히 표 그리기 문법이 복잡하기로 악명이 높으며, 주석 문법[* [[나무마크]]의 경우 각주 문법이 간단하며 주 |
| 50 | 각주가 노출될 위치를 지정하지 않아도 된다 --그 덕분에 나무위키가 주석이 겁나 많다고 놀림을 받는 원인이 되었다--. 하지만 미디어위키 문법은 각주 넣는 것도 복잡하고(<ref>각주 내용</ref>) 각주가 노출될 위치도 반드시 지정을 해줘야 한다(<references />). 그런데 이마저도 미디어위키 기본 탑재 기능이 아니라 각주 확장기능[* cite라는 확장기능]을 추가로 깔아줘야 작동한다. 다만 요즘에는 설치 시에 기본적으로 제공하는 확장기능 중 하나이다.[* 설치기에서 선택할 수 있다.] 그리고 주석이 노출될 위치를 별도로 지정하지 않으면 알아서 맨 밑에 표시하지만, 스킨이나 미디어위키:Common.css 문서를 수정하지 않는 이상 나무위키처럼 주석 부분과 본문이 구분되지 않는다.]도 골치 아픈 편이다. 그리고 HTML 태그를 그대로 쓰거나 HTML과 유사한 <태그></태그> 마크업을 쓰는 경우도 많다. 다만 HTML 문법은 CSS나 자바스크립트를 적용하거나 데이터를 크롤링하기 훨씬 수월하므로 양날의 검이라고도 볼 수 있다.[* 예를 들어 __밑줄__은 <u>밑줄</u>로 써줘야 하고, 각주 또한 <ref>각주</ref>로 써줘야 한다. 이건 일반적으로 사용할 일이 적어서라고 봐야할 듯.][* 단 [[나무마크]]보다 편리한 부분도 있다. 틀(template)의 경우 미디어위키의 문법이 단순하다. 미디어위키에서는 {{틀 이름|첫 번째 변수|두 번째 변수|...}} 또는 {{틀 이름|변수 이름1=변수1|변수 이름2=변수2|...}} 형식으로 쓰면 틀이 삽입된다. 또 미디어위키는 나무마크와 달리 문서의 목차가 들어갈 위치를 굳이 지정할 필요가 없다. 미디어위키에서는 목차에 관한 명령어를 삽입하지 않을 경우 문단 수가 4개 이상이면 알아서 첫 번째 문단 위에 목차를 생성한다.] | |
| r11 (r9으로 되돌림) | 51 | * 확장기능 중 [[https://github.com/Oriwiki/php-namumark-mediawiki|나무마크]] 확장 기능이 있다. 흔히 오리마크라고 부른다. 유지보수가 안된지 오래되어 일부 지원이 안되는 문법이 있긴 하지만 어려운 문법을 나무위키 문법으로 대체하기에 좋다. 단, 설치 시 문법 충돌이 생길 수 있다. |
| 52 | * 대형 프로젝트를 대상으로 개발되었기 때문에, 소규모로 쓰기에는 상당히 무거운 편이다. | |
| r14 | 53 | * DB가 필요하다. 이 때문에 개인 PC에 설치하기에는 난이도가 높은 편이다.[* 단, sqlite도 지원하기 때문에 sqlite를 사용하면 간단해진다.] XAMPP나 APMSETUP, 오토셋과 같은 웹 서버 통합 설치툴을 사용하면 가능하나 해당 툴의 유지 관리가 초보자에게는 어렵다.[* 심지어 Windows에서는 가끔 intl이 설치되지 않았다는 억까가 발생하기도 한다. 해결법은 apache2의 bin 폴더를 환경 변수로 지정하는 것]다만 미디어위키는 개인 PC에 설치해서 개인용으로 쓰라는 엔진이 아니며, APM 내지 EPM이 설치된 서버 컴퓨터에 설치해서 서비스형 위키를 돌리는 것을 기본 전제로 하는 엔진이다. |
| r11 (r9으로 되돌림) | 54 | * 대부분의 기능이 번역된 위키 엔진답지 않게, 미디어위키 설명서의 영어 이외의 언어 지원이 부실하다. [[모니위키]]보다는 낫지만 도움말은 여전히 부실한 편. 쉬운 문제는 위키백과의 문법 도움말을 사용할 수 있지만, 설치나 스킨, API나 확장기능(Extension) 등의 관리 및 개발자용 도움말은 얄짤없이 공홈에서 봐야 하며 거의 다 영어다. |
| 55 | * 구 버전의 경우 최신 자바스크립트 지원이 부실하다. 서버에서 먼저 자바스크립트를 걸러내는데[* 이것을 리소스로더라고 부른다.], 이 걸러내는 데 쓰는 문법이 구형인 에크마스크립트2012 문법인지라 최신 문법인 ES6을 쓴다 할지라도 걸러져서 파싱이 안 될 수 있다. 1.36부터 리소스로더의 ES6 지원을 시작하였고 1.41부터 기본적으로 소도구 확장 기능으로 대체 가능한 모듈 문법을 제외한 ES6을 지원한다. 그러나 아직 async/await 등의 ES8 지원이 안 되기 때문에 최신 자바스크립트 개발 동향을 따라가지 못하고 있다. | |
| 56 | * 위키문법의 복잡함을 극복하기 위한 차원에서 VisualEditor을 통해 [[WYSIWYG]]을 지원하고 있지만, 일반적인 위키 편집방식에 익숙한 유저의 입장에서는 오히려 이 쪽이 더 쓰기 불편한 면도 있다. | |
| 57 | * 문서를 삭제한 후 해당 문서가 삭제 전엔 어떤 모습이었는지 볼 수 있는 방법이 없다. 미디어위키 엔진 특성상 [[기록말살형|'''문서의 역사 기록까지 전부 지워버리기 때문''']]이다. 이 때문에 삭제 기능은 운영진 전용 기능으로 고정되어 있다. | |
| 58 | * 토론 페이지가 스레드형[* 확장기능이 따로 있다.]이 아니고 일반 문서에 위키문법을 사용한다.--그냥 넣어주면 안되나-- | |
| 59 | * PHP 언어를 사용하므로 [[SPA#Single Page Application]]가 지원되지 않는다. | |
| r14 | 60 | * 또한 기본 스킨이 못생겼다. 그래서 (한국 한정) 대체품으로 [[리브레위키]]의 리버티를 많이 쓰는 편. the seed 계열의 리버티랑 디자인이 메우 다르다.[* 리브레위키 것이 원본] |
| r11 (r9으로 되돌림) | 61 | == 미디어위키를 사용하는 위키 == |
| 62 | * '''[[위키백과]]를 포함한 [[위키미디어 재단|위키미디어]] 프로젝트''': [[http://www.wikimedia.org]] | |
| 63 | * '''[[FANDOM]]''': [[https://community.fandom.com/ko/wiki]] - [[FANDOM]]식 미디어위키는 미디어위키를 약간 변형한 것이여서 조금 다르다. 물론 위키 문법 같은 것들에는 딱히 지장은 없다. | |
| 64 | * [[Miraheze]]: [[https://www.miraheze.org/]] - 미디어위키를 사용하는 위키 호스팅 서비스이다. | |
| 65 | * [[언사이클로피디아]]: [[http://en.uncyclopedia.co]] | |
| 66 | * [[백괴사전]]: [[http://uncyclopedia.kr]] - 언사이클로피디아의 [[한국어]]판이다. | |
| 67 | * [[리버티게임]]: [[http://libertyga.me]] - [[백괴게임]]의 포크로 시작된 위키이다. | |
| 68 | * ~~[[디시위키]]: [[http://wiki.dcinside.com]]~~ | |
| 69 | * [[누리위키]]: [[http://nuriwiki.net/wiki/]] | |
| 70 | * [[스레디키]]: [[http://thredic.com/wiki/]] | |
| 71 | * --[[위키쨩]]: [[http://wiki-chan.net]]-- | |
| 72 | * [[제이위키]]: [[http://jwiki.kr]] | |
| 73 | * [[제타위키]]: [[http://www.zetawiki.com]] | |
| 74 | * [[페미위키]]: [[https://femiwiki.com]] | |
| 75 | * [[풋케위키]]: [[http://footballk.net/mediawiki]] | |
| 76 | * [[IMFDB]]: [[http://www.imfdb.org/wiki/Main_Page]] | |
| 77 | * --IT위키: [[http://itwiki.kr/]]-- | |
| 78 | * 우리가요: [[https://www.urigayo.kr/]] | |
| 79 | * 위키소다: [[https://wikisoda.com/]] | |
| 80 | * --단어위키: [[http://wordwiki.net]]-- | |
| 81 | * --위키도키 : [[http://wkdk.me]]-- | |
| 82 | * 오미니아 위키: [[http://omnia.kro.kr]] | |
| 83 | * --비트맵 위키: [[https://wiki.kuzeent.com]]-- | |
| 84 | * --피니위키: [[http://finiwiki.com]]-- | |
| 85 | * 다미위키: [[https://wiki.lgyofficial.com]] | |
| 86 | * 샵위키: [[https://shopwiki.kr]] | |
| 87 | * 웃참위키: [[https://ootchampedia.miraheze.org]] | |
| 88 | * [[루리위키]]: [[https://wiki.ruliweb.com]] | |
| 89 | * 디비카페: [[http://dbcafe.co.kr]] - Oracle Database 관련 정보 제공 | |
| 90 | * RLCraft의 위키:[[https://rlcraft.wiki.gg/]] - 마인크래프트 하드코어 모드펙의 대명사인 RLCraft가 주제인 위키 | |
| 91 | 미디어위키의 [[https://www.mediawiki.org/wiki/Sites_using_MediaWiki/ko|미디어위키를 사용하는 사이트]]도 참조.(CC BY-SA 3.0에 따라 기여 가능) | |
| 92 | == 기타 기능 == | |
| 93 | === 편집 필터 === | |
| 94 | * 미디어위키에서는 편집 필터(Abusefilter)라는 시스템이 존재한다. 사용자의 조건[* 사용자 이름, 가진 권한, 계정 생성 후 지난 시간 등], 문서의 조건[* 이름공간, 문서 제목, 편집 후 바이트 차이, 문서에 포함된 내용 등], 동작[* 문서 편집, 이동, 삭제 등] 등 각종 주어진 변수와 문법을 이용하여 조건식을 프로그래밍하여 해당 조건에 맞는 편집을 저장하는 것을 시도하면 편집 필터가 작동한다. | |
| 95 | || [[파일:위키백과필터.png]] || | |
| 96 | || [[위키백과]]의 편집 필터 로고 || | |
| 97 | 편집 필터를 사용함으로써 [[문서 훼손]]이나 [[뻘문서]] 생성 등을 방지할 수 있다. 편집 필터가 작동하면 설정에 따라 태그, 경고[* 편집을 저장하기 전에 한 번 경고를 하며, 이후에도 저장 버튼을 누르면 저장된다. 불허의 하위호환이다.], 불허[* 편집 필터 조건에 해당되는 편집을 시스템적으로 완전히 막는다.], [[차단]][* 편집 필터 조건에 해당하는 편집을 하는 순간 자동으로 차단되며, 당연히 해당되는 편집은 시스템적으로 막히므로 불허의 상위호환이다. 차단 기간은 로그인/비로그인 사용자를 별도로 지정할 수 있다.], 모든 권한 해제 등의 조치가 자동으로 취해진다. 조치를 여러 개를 클릭하면 그 조치가 한번에 다 이루어진다. 속도 제한이라는 개념도 존재하는데, 특정 시간 동안 특정 단위로 묶어서[* 사이트 전체, 문서 단위, 사용자/IP 단위 등] 조건에 맞는 편집이 특정 횟수가 넘었을때만 작동한다. 속도 제한을 무시하는 권한이 존재하는데, 이 권한을 가진 사용자에게는 제한이 설정되어 있는 편집 필터는 무용지물이다. 횟수에 따라 조치를 다르게 할 수 있는 설정은 없으며, 굳이 그렇게 한다면 발동 조건은 동일하고 속도 제한과 조치가 다른 편집 필터를 여러 개 만드는 수밖에 없다. 편집 필터 규정을 반복적으로 위반할 시 처벌을 강하게 하는 것도 비슷한 이유로 편집 필터를 여러 개 설정해야 한다. | |
| r4 (r2으로 되돌림) | 98 | |
| r11 (r9으로 되돌림) | 99 | * 미디어위키에서는 편집 필터가 작동할 경우 편집 필터가 작동한 기록이 남는다. 따라서 장난을 시도한 것도 기록이 남을 수 있다. [[https://ko.m.wikipedia.org/wiki/%ED%8A%B9%EC%88%98:%ED%8E%B8%EC%A7%91%ED%95%84%ED%84%B0%EA%B8%B0%EB%A1%9D|위키백과의 예시]] |
| r4 (r2으로 되돌림) | 100 | |
| r11 (r9으로 되돌림) | 101 | === 미디어 위키 알림 === |
| 102 | [[나무위키]]의 위키엔진인 [[the seed]]와 비교해 보았을때 상당히 강력한 기능을 가지고 있다. [[https://www.mediawiki.org/wiki/Extension:Echo|Echo 확장기능]]을 통해 구현된다. 문서가 되돌려졌을 때 사용자에게 알림을 전달하는 기능이 있고, 그 외에 나무위키에서도 지원하는 사용자 토론이 편집되었을 때 알림을 보내주는 기능과 다른 문서나 토론에서 자신이 언급되었을 때 알려주는 기능도 있다. | |
| r4 (r2으로 되돌림) | 103 | |
| r11 (r9으로 되돌림) | 104 | == 기타 == |
| 105 | * 미디어위키와 Invision Power Board(IPB)라는 상용 게시판 소프트웨어를 결합한 [[http://www.ipbwiki.com/|Ipbwiki]]라는 소프트웨어도 있다. 개별 위키 문서의 토론 페이지를 IPB 기반의 게시판으로 바꿔 주고, 위키 본문에 [[BBCode]]를 사용할 수 있게 만들어 준다. 물론 미디어위키를 개발한 위키미디어 재단이나 IPB를 만든 Invision Power Services라는 곳과는 무관한 프로그래머들이 두 소프트웨어를 수정, 결합해 내놓고 있다. 그러니 Ipbwiki를 사용하고자 할 경우 주의할 것. | |
| r4 (r2으로 되돌림) | 106 | |
| r11 (r9으로 되돌림) | 107 | == 관련 문서 == |
| 108 | * [[위키 엔진]] | |
| 109 | * [[디시위키]] | |
| 110 | * [[모니위키]] | |
| 111 | * [[도쿠위키]] | |
| 112 | * [[위키백과]] | |
| 113 | * [[WordPress]] | |
| 114 | * [[phpBB]] | |
| 115 | * [[TinyIB]] | |
| 116 | * [[백괴사전]] | |
| r4 (r2으로 되돌림) | 117 | |
| r11 (r9으로 되돌림) | 118 | == 외부 링크 == |
| 119 | * 공식 사이트: [[http://www.mediawiki.org]] | |
| 120 | * 한국어 사이트: [[http://www.mediawiki.org/wiki/MediaWiki/ko]] | |
| 121 | * 다운로드: [[http://www.mediawiki.org/wiki/Download]] | |
| 122 | * 저장소: [[https://gerrit.wikimedia.org/g/mediawiki/core]] | |
| 123 | * [[깃허브]] 리포지터리: [[https://github.com/wikimedia/mediawiki]] | |
| 124 | [include(틀:문서 가져옴/나무위키)] |