Developer hub/ko



이 문서는 미디어위키 개발을 위한 높은 레벨의 개요입니다. 이 문서에는 미디어 위키 개발자들을 위한 핵심 문서, 리소스, 툴로의 링크가 포함되어 있습니다. 미디어위키를 사용해본 경험이 있는 숙련된 LAMP 개발자들을 위해 쓰여졌습니다.


 * 만약 위키미디어 웹 API를 "사용하고" 싶으시다면 웹 API 허브를 방문해주세요(작업중입니다).
 * 미디어위키 개발 시작을 위한 가이드가 필요하다면, 미디어위키 해커가 되는 법을 읽어주세요.
 * 미디어위키의 인스톨과 커스터마이즈에 도움이 필요하다면, 을 봐 주세요.
 * 미디어위키 사용에 관한 도움말은 에서 볼 수 있습니다.

개요
미디어위키는 PHP 프로그래밍 언어를 사용하여 오픈소스 스타일로 개발되었는데 주로 LAMP 플랫폼을 위한 것입니다. 핵심 개발은 주로 온라인 협업으로 이루어집니다.


 * 개발 토론는 다양한 메일링 리스트와 IRC 채널에서 이루어집니다. 메인 개발자 리스트는 wikitech-l에 있습니다. 메인 개발자의 IRC 채널은 #mediawiki와 #wikimedia-dev입니다. 메일링 리스트와 IRC 채널에 있는 사람들에 대한 것은 개발자들을 참고하세요.
 * 소스 코드는 Git의 버전 관리 시스템으로 관리됩니다. 미디어위키 개발자들이 Git을 어떻게 사용하는지 알고 싶으시면 Git 문서를 읽어주세요. 만약 당신이 시작하고 싶다면, wikitech:Help:Access를 읽어주세요.
 * 코드 리뷰는 에서 수행됩니다. 패치 내용을 제출하고 싶으시다면, 이 튜토리얼을 보고 git과 gerrit을 설치하세요.
 * 핵심 코드로 작업하는 대신 미디어위키로 확장이나 인터페이스를 개발을 하는 경우에는 API나 Hooks 시스템과 Skins 같은 편리한 확장 도구들을 사용할 수 있습니다. 이 페이지의 #미디어위키 확장 부분에서 볼 수 있습니다.

주요 문서


코드, 개발과 스타일

 * 개발 정책 – 핵심 개발 정책이 정리되어있습니다.
 * 코딩 관례 – 미디어위키 형식으로 코드 작성하는 법을 배워보세요.
 * 개발자를 위한 보안 - 미디어위키 보안을 유지하는 법을 배워보세요.
 * 코드 적용 전 체크리스트 – 코드를 적용하기 전에 읽어보세요.
 * 코드 리뷰 가이드 - 미디어위키 소스 코드를 커밋하려는 리뷰어를 위한 가이드입니다.
 * 의견 요청 - 미디어위키 환경의 새로운 요소들에 대해 읽거나 제안해주세요.

디버깅과 테스트

 *  – 미디어위키 프로젝트의 버그 트래킹의 개요입니다.
 * 디버그하는 방법 – 미디어위키의 디버깅 가이드
 * 설명서:오류와 증상 – 흔한 미디어위키 오류와 그에 따른 증상입니다.
 *  – 셀레늄을 사용해서 미디어위키의 UI 테스트를 하는 법을 배워보세요.
 * 유닛 테스팅 - PHP 유닛을 사용해서 미디어위키의 유닛 테스트를 하는 법을 배워보세요.
 *  – 보안 이슈는 [mailto:security@wikimedia.org security@wikimedia.org]로 보고됩니다.



구조

 * 메뉴얼:코드 – 미디어위키 소스코드의 주요한 부분에 대한 개요입니다.
 * 데이터베이스 레이아웃 - 미디어위키 데이터베이스 스키마의 개요입니다.
 * 글로벌 객체 변수 – 핵심 글로벌 변수 목록입니다.
 * 현지화 – 미디어위키의 글로벌화 체계에 대해 알아보세요.
 * 메뉴얼 이 위키의 네임스페이스 - 개발자들을 위한 문서화
 * [//doc.wikimedia.org/mediawiki-core/master/php/ 미디어위키 클래스 레퍼런스] - 미디어위키 소스코드에서 파생된 기술적인 문서. (참고: 클래스 레퍼런스가 커서, 페이지 로딩이 느릴 수 있습니다.
 *  – 매뉴얼, 가이드, 선택된 문서들의 모음.

하위 시스템

 * API – 미디어위키 데이터베이스에 들어 있는 데이터로의 높은 수준의, 직접적인 접근을 제공합니다.
 * ContentHandler – 페이지 내용의 커스텀을 돕기 위한 미디어위키의 프레임워크.
 *  – 데이터베이스의 축약된 레이어로의 간결한 가이드를 포함하는, 미디어위키에서 데이터베이스를 사용하는 것에 대한 개요
 *  – 오래 걸리는 작업을 비동기적으로 처리하는데 쓰이는 미디어위키의 프레임워크
 *  – PHP와 JS를 사용해 로컬라이즈 된 어플리케이션 메세지를 제공하는 미디어위키의 프레임워크.

미디어위키 확장
미디어위키는 "핵심 코드"를 변경하는 일 없이 수정할 수 있도록 설계되었습니다. 이 덕분에 낡은 확장 기능 코드에 수작업으로 머지 하는 일 없이 새로운 미디어위키의 버젼을 간단하게 업데이트할 수 있습니다. 6개의 주요 확장 기능이 있고, 개발자들은 이를 통해 위키미디어가 할 수 있는 것을 바꾸거나 확장할 수 있습니다. 해당 확장 기능은 다음과 같습니다:


 * API – 강력한 웹 API를 통해 미디어위키의 데이터와 메타데이터에 접근하세요.
 * Hooks - 주어진 일이 일어날 때마다 무엇인가를 합니다.
 * Parser Functions - 새로운 커멘드를 작성하는:
 * Skins - MediaWiki의 룩 앤드 필을 변경한다.
 * Special Pages - 새로운 특별 페이지를 추가한다.
 * Tag Extensions - 새로운 태그를 작성합니다:

확장 기능 개발자를 위한 도움말

 * Manual:Developing extensions – a guide to developing extensions.
 * Project:WikiProject Extensions
 * Extensions FAQ
 * See Category:Extensions, for a list of extensions.
 * Manual:$wgExtensionFunctions – use to defer setup (or run other callbacks) for extensions until after the MediaWiki core is setup.
 * Extension:BoilerPlate - a blank extension template

스킨 개발자를 위한 도움말


 * Manual:Skinning Part 1 – 미디어위키 스킨을 만드는 방법
 * Manual:Skin configuration – 위키에 스킨을 구성하는 방법

라이브러리 코드 재사용을 위한 도움말
 * – MediaWiki에서 사용 할 타사 라이브러리 패키징에 대한 안내

제 3자의 위키 사용

 * - 기업의 위키를 위한 것
 * - 학술적 위키를 위한 것