Developer hub/ko

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


 * 만약 위키미디어 웹 API를 "사용하고" 싶으시다면 웹 API 허브를 방문해주세요(작업중입니다).
 * 위키미디어 소프트웨어 개발에 기여하고 싶다면, 새로운 개발자들을 확인하세요.
 * 미디어위키 개발 시작을 위한 가이드가 필요하다면, 미디어위키 해커가 되는 법을 읽어주세요.

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


 * 개발 토론는 다양한 메일링 리스트와 IRC 채널에서 이루어집니다. 메인 개발자 리스트는 wikitech-l에 있습니다. 메인 개발자의 IRC 채널은 #mediawiki와 #wikimedia-dev입니다.
 * 소스 코드는 Git의 버전 관리 시스템으로 관리됩니다.
 * 코드 리뷰는 에서 수행됩니다. 패치 내용을 제출하고 싶으시다면, 이 튜토리얼을 따라서 Git과 Gerrit을 설치하세요.
 * Bug reports and tasks for most projects are managed on Phabricator.
 * 핵심 코드로 작업하는 대신 미디어위키로 확장이나 인터페이스를 개발을 하는 경우에는 API나 Hooks 시스템과 Skins 같은 편리한 확장 도구들을 사용할 수 있습니다. 이 페이지의 #미디어위키 확장 부분에서 볼 수 있습니다.

주요 문서


코드, 개발과 스타일

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

디버깅과 테스트

 * 디버그하는 방법 – 미디어위키의 디버깅 가이드
 * 설명서:오류와 증상 – 흔한 미디어위키 오류와 그에 따른 증상입니다.
 *  – 셀레늄을 사용해서 미디어위키의 UI 테스트를 하는 법을 배워보세요.
 * 유닛 테스팅 - PHP 유닛을 사용해서 미디어위키의 유닛 테스트를 하는 법을 배워보세요.
 *  – 보안 코드를 쓰는 법을 배워보세요.



구조

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

하위 시스템

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

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


 * API – 웹 API를 통해 미디어위키의 데이터와 메타데이터에 접근하세요.
 * Hooks - 주어진 일이 일어날 때마다 무엇인가를 합니다.
 * 파서 기능 - 다음과 같은 새로운 커맨드를 생성하세요:
 * 스킨 - 미디어위키의 외형과 느낌을 변경합니다.
 * 특수 페이지 - 새로운 특수 페이지를 추가합니다.
 * 태그 확장 - 새로운 태그를 작성합니다:

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

 * Manual:Developing extensions – 확장기능을 개발하는 방법에 대한 가이드
 * Project:WikiProject Extensions
 * Extensions FAQ
 * Category:Extensions에서는 확장 기능 리스트를 볼 수 있습니다.
 * Manual:$wgExtensionFunctions – 미디어위키 코어가 설치될때까지 다른 셋업을 사용하거나 다른 것을 작동합니다..
 * Extension:BoilerPlate - 비어있는 확장 템플릿

스킨 개발자를 위한 도움말


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

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

제 3자의 위키 사용

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