위키백과:메타 템플릿 사용 금지
Wikipedia:![]() | 이것은 실패한 제안이다. |
템플릿 메시지는 많은 페이지에 특정 표준 텍스트를 포함하도록 허용하며, 일반적으로 미래에는 텍스트 블록에 대한 변경사항이 한 곳에서 변경될 수 있다는 생각으로 허용된다."메타템플리트"라는 용어는 이 글에서 사용된 것과 같이 다른 템플리트에 함수나 형식을 추가하기 위해 만들어지고 사용되는 중첩된 템플리트를 가리킨다.
매우 유용하고 편리할 수 있지만, 즉시 명확하지 않을 수 있는 우려 때문에 피하도록 제안한다.메타 템플릿 체계는 취약할 수 있고 새로운 편집자들이 이해하기 어려울 수 있다.그들은 또한 대량살상무기와 영향 유지 노력을 위한 길을 제공할 수 있다.이 페이지에 나열된 이유는 메타 템플릿을 사용하는 것에 반대한다.
유해효과
복잡성
중첩된 템플릿 체계는 복잡하고 일반 편집자가 파악하기 어려울 정도로 어렵다.특히 템플릿에 어떤 정보를 제공해야 하는지 가장 잘 아는 주제 전문가가 난해성 코딩의 사용으로 템플릿을 편집할 수 없는 비기술 분야에서는 더욱 그렇다.그 결과 일상적인 유지·변경이 소홀해지고, 부적절한 사용이 급증하고, 혁신이 어려움을 겪을 수 있다.손쉬운 대체가 되기 위한 해결책은 개선하고자 했던 기능보다 더 어려워진다.복잡한 코드를 템플릿으로 이동하면 이해할 수 있지만 분명한 아티클 소스와 템플릿 소스가 가장 선호된다.이럴 경우 복잡성을 최소한으로 줄이는 조치를 취해야 한다.
템플릿 링크
페이지를 편집할 때, 해당 페이지에서 사용 중인 모든 템플리트 목록이 데이터베이스에 저장된다.이 목록은 편집 모드에 있을 때 하단의 링크 목록으로 볼 수 있다.거기서 직접 호출되는 템플릿뿐만 아니라, 어떤 상위 수준의 메타 템플릿도 나열되어 있다.이 기능은 편집자 중 하나를 편집하려는 경우 페이지에서 어떤 템플리트가 사용되고 있는지 쉽게 알 수 있도록 하기 위해 편집자에게 유용한 보조 도구로 작성되었다.메타템플릿은 이 리스트를 어지럽혀 어떤 링크가 정확한지 정확히 편집자가 알 수 없게 만든다.
메타템플릿에 의해 만들어진 템플릿 링크 또한 템플릿 네임스페이스 유지보수를 위해 자주 문제를 일으킨다.템플릿의 경우:A는 여러 페이지에서 사용 중이지만 Template:B를 추가 또는 제거하도록 변경되며, "B"에 대한 기사 레벨 템플릿 링크는 각 기사를 편집하거나 "수정"할 때까지 업데이트되지 않는다.링크를 완전히 신뢰할 수 없기 때문에 해당 정보에 의존하는 템플릿 유지보수가 어렵거나 불가능하게 된다.자동화된 봇은 템플릿 대체 또는 템플릿 간에 마이그레이션을 수행할 때와 같은 링크에도 의존한다.
반달리즘
매우 높은 비율의 페이지에 사용되는 모든 템플릿은 뛰어난 서비스 거부 공격 벡터로서, 해당 템플릿 또는 해당 템플릿에 사용되는 구성 요소를 변경하면 사이트 캐시의 상당 부분을 플러시할 수 있기 때문에 사이트 성능에 중요하며 일반적으로 전체 히트 중 약 75~80%를 제공한다.공간의 덧셈처럼 한 가지 미묘한 변화도 그 영향을 끼친다.
따라서 간접적으로 널리 사용되는 중첩된 템플릿에 대해서는 주의를 기울여야 한다.하위 서브템플릿은 불쾌한 내용으로 파손될 수 있다.서브템플릿은 자주 편집되지 않고 워치리스트 1개 또는 몇 개에만 표시되며 적시에 추적하기 어렵기 때문에 이러한 것들은 즉시 알아차리기가 어려울 수 있다.
그러나, 몇 페이지 또는 심지어 몇 백 페이지에서만 사용될 메타템플릿을 쓰는 것이 가능하고 유용하다는 것을 기억해야 한다.반대로, 상호 참조 템플릿과 같은 템플릿이 있는데, 이 템플릿은 메타 템플릿이 되지 않고 매우 광범위하게 사용된다.
보호
공공 기물 파손과 위에서 설명한 잠재적인 서버 부하 문제 때문에, 여러 개의 고사용 메타 템플릿을 보호해야 했기 때문에 관리자에 의해서만 편집할 수 있었다.메타 템플릿이 거의 변경되지 않는다면, 어떤 딸 템플릿도 변경되지 않을 수 있으므로 포맷을 딸 템플릿으로 이동하는 것이 타당할 수 있다.이것은 이제 더 이상 메타 템플릿 체계를 사용하지 않는 스텁 템플릿을 사용하여 수행되었다.다음 항목도 기억하십시오. 메타:보호된 페이지는 유해하다고 간주된다.
조건
설정된 매개변수에 따라 텍스트나 이미지를 선택적으로 숨기거나 표시하는 조건부 식을 모방하기 위해 중첩된 템플릿 레이어를 사용하는 계획은 더 나은 대안에 익숙하지 않은 사용자에 의해 만들어지기도 한다.조건부는 일반적으로 사용 시 유의미한 이점이 없는 한 피해야 한다.반드시 사용해야 하는 경우 다음과 같은 조건부 논리 방법을 사용할 수 있으며 중첩된 템플릿을 사용하는 것보다 선호도가 높다.
- 매개 변수 기본값 - 이 방법은 매우 일반적이며 특정 매개 변수가 -not-set인 경우에만 기본 대체 텍스트를 표시하도록 설계되어 있다.매우 단순하지만 복잡한 요구에는 그다지 강력하지 않다.
- m:ParserFunctions - 템플릿 내에서 조건문을 위한 프레임워크를 제공한다.미디어위키 코드에 내장되어 있기 때문에 백엔드에서는 비교적 효율적이지만, 비기술적 편집자에게는 매우 복잡할 수 있다.
대안
- 설계, 문서화 및 구현 — 위키피디아의 경우 예를 들면 다음과 같다.자매 프로젝트, 메타템플릿을 사용하자는 제안이 나왔다.이 영역에서는 공통의 모양과 형식을 결정하고, 새로운 관련 템플릿이 필요할 경우 쉽게 참조할 수 있는 표준을 문서화한 다음, 사용 중인 몇 가지 템플릿에 걸쳐 구현하는 것이 훨씬 좋다.변화가 필요할 때, 이것은 토론과 개정을 위한 하나의 중심적인 장소를 제공한다.변화에 대한 공감대가 형성되면 관심 있는 편집자들이 빠르게 적용할 수 있다.각 템플리트를 표시하는 페이지를 작성하는 것도 합의된 형식을 따르지 않는 템플리트를 찾는 데 도움이 된다.
- CSS 사용 — 일부 메타템플릿은 크기, 위치, 색상과 같은 특정한 시각적 형식을 생성하는 데만 사용된다.이러한 것이 확인되면 CSS 클래스를 사이트의 글로벌 스타일시트에 추가할 수 있다.메타템플릿은 관련 페이지의 CSS 클래스로 대체될 수 있다.이것은 서버에 부담을 주지 않고 사이트 전체에 걸쳐 균일한 스타일을 유지하는 동일한 목적을 달성할 것이다.이를 통해 시각적 스타일을 개인적으로 맞춤화할 수 있다.
- 템플리트나 카테고리가 아닌 목록 사용 — 일부 템플리트와 카테고리는 편집자가 특정 관심 주제 영역에서 기사를 찾을 수 있도록 돕는 것을 목적으로 사용된다.이를 위해 주석을 달고 우선순위를 정할 수 있는 목록을 작성하는 것이 더 가치 있는 경우가 많다.많은 위키프로젝트들은 이미 작업이 필요한 기사를 보고하는 영역을 유지하고 있다. (참고, 유사한 이유로 카테고리도 서버 로드를 많이 한다는 점에 유의하십시오.)위키백과 참조:범주, 목록 및 시리즈 상자
- {{subst: } — 템플릿 대체는 템플릿의 텍스트를 전폐를 유발하지 않고 임의의 딸 템플릿(하위 템플릿)에 복사하여 두 번째 템플릿 호출을 제거한다.물론, 이것은 메타 템플릿이 변경될 때, 딸 템플릿이 업데이트되지 않으며, 여기에 있는 What 링크 기능으로 추적되지 않는다는 것을 의미한다.이것은 자주 변경되지 않거나 모든 페이지에서 정확한 텍스트를 최신 상태로 유지할 필요가 없는 템플릿에 적합한 솔루션이다.
아직도 쓰고 싶어?
메타 템플릿 사용을 고려하는 경우 다음 질문을 하십시오.
- 최종 제품이 위키피디아에 유용한가, 아니면 주로 장식적인 특징인가?유용한 템플릿이라도 위의 문제와 비교해 보아야 한다.
- 템플릿의 인지도가 높은가?높은 프로파일 템플릿은 서버 로드를 증가시키므로 메타 템플리트에는 적합하지 않다.
- 원하는 효과는 메타템플릿을 통해서만 달성할 수 있는가, 아니면 기본적으로 동일한 외관의 템플릿이 그것 없이 만들어질 수 있는가?동일한 효과를 크게 더 이상 문제 없이 다르게 달성할 수 있다면 메타 템플릿은 피해야 한다.
- 나중에 편집자들이 이것이 어떻게 작동하는지 이해할 것인가?반면에, 후에 편집자들은 대체 방법을 이해할 것인가?
메타템플릿은 정당한 이유 없이 사용하면 안 된다.만약 당신이 하나를 만든다면, 같은 목적을 달성하는 다른 방법에 열려있어야 하고, 메타템플릿의 문제를 피하기 위해 기능성을 교환할 준비를 해야 한다.