리버티게임:토론란/플러그인 시스템 검토
아래 내용은 완료된 토론을 보존한 것입니다.
- 이 토론은 현재 사이트 침체, Miraheze 호스팅 서버와의 호환성 문제 및 이미지 데이터 손실로 인해 작동이 정지된 플러그인 HTML5 게임이 많음에 따라 논의가 중단되었으며 차후 문제가 발생할 경우 별도의 문서에서 논의하는 것을 강력히 권장합니다. --Senouis(토론장, 기여) 2022년 10월 1일 (토) 20:09 (KST)
발의[원본 편집]
- 요청 및 토론할 주제: 리버티게임:플러그인
리버티게임:발전소/Undertale: The Challenge 토론에서 저작권 위반이라는 총의가 모아져 삭제로 결론나기는 했습니다만, 솔직히 말해 아직 뒷정리가 완전히 끝나지 않았습니다. 문제가 되는 플러그인을 설치한 사용자의 커먼자스 과거판을 아직 정리하지 않았기 때문입니다. 문제가 되는 플러그인만 간편하게 삭제할 수 있으면 그만입니다만, 엉뚱한 플러그인을 같이 날려버렸다거나, 플러그인을 제대로 삭제 못해 오류를 일으키는 것이 있을지도 몰라 과거판을 임시로라도 남겨놓는 것이 좋다고 판단했기 때문입니다.
그나마 이 플러그인 설치는 얼마 이뤄지지 않아 삭제 과정에서 문제가 없었던 듯 보입니다. 그런데 플러그인 사용 게임에서 저작권 문제가 터지는 것이 저 게임이 처음이자 마지막은 아닐 것입니다. 그러면 그 때마다 관리자가 사용자 커먼자스를 일일이 확인해서 삭제하고 그러다 보면 문제 터질 가능성을 배제할 수 없습니다. 인기 플러그인에서 저런 문제가 터진다면 처리 과정 자체가 일 투성이라는 점에서도 현 플러그인 시스템은 검토를 하고 넘어가야 합니다.
사실, 플러그인을 쉽게 자동으로 삭제할 수 있도록만 된다면 그러는 것이 좋긴 합니다만, BANIP님이 다시 백괴게임에 열정을 주시지 않는 이상 그러기는 힘들 것 같습니다. 또 일일이 문제가 된 플러그인 설치 사용자를 찾아야 한다는 단점은 남을 수 있겠지만, 이 점은 최소한 보안 문제에서 비교적 자유로운 해결책이라는 점에서 아쉽다는 생각 밖에 안 듭니다.
그러면 보안 문제 발생을 감수하고서라도 다른 대책이 있냐 한다면 플러그인 문서에는 자바스크립트 부분만 남겨놓고, 해당 자바스크립트의 특정 판을 특정 함수를 통해 사용자 커먼자스에 적재하는 방법이 있습니다. 이 특정 판 명시가 안 되면 반달로 인한 심각한 보안 문제가 발생할 수 있습니다만 이거 안 지키는 게임 제작자나 사용자 문제를 배제할 수가 없어서 보안 문제를 감수해야하는 대책으로 설명드리는 것입니다.
이 외에 여러 대책이 있을 지도 모르겠지만, 제 지식으로는 여기까지가 한계네요. 이도저도 안 될 것 같다면 삭제 정책을 재검토해야겠죠. --by manymaster (토론|기여) 2018년 7월 20일 (금) 06:47 (KST)
토론[원본 편집]
- 질문 혹시 사용자:사용자명/common.js/게임_플러그인명 같이 하위 문서로 생성한 뒤 불러올 수 있나요? --Lausui Lieto "Lemminkäinen" 2018년 7월 20일 (금) 15:25 (KST)
- 설리 저도 이러한 불편함을 깨닫고 도입 초기부터 이를 대체할 시스템 개발을 한번 시도해 보고 있긴 합니다. --사용자:Gustmd7410/서명 2018년 7월 20일 (금) 23:14 (KST)
- 하지만 시간이 꽤 걸릴 것이므로 일단 아래와 같은 코드로 땜빵시켜야겠네요. 단, 기존 방식 대신에 콘텐츠 모델을 자바스크립트로 설정해서 해당 문서에는 자바스크립트 코드만 넣는 방식으로 바꿔야 합니다. 판 번호는 {{REVISIONID}}로 얻고 data로 보내면 되겠지요.--사용자:Gustmd7410/서명 2018년 7월 21일 (토) 02:11 (KST)
$.getScript('/w/index.php?oldid=' + $(/*DOM*/).data('revision') + '&action=raw');
- 하지만 시간이 꽤 걸릴 것이므로 일단 아래와 같은 코드로 땜빵시켜야겠네요. 단, 기존 방식 대신에 콘텐츠 모델을 자바스크립트로 설정해서 해당 문서에는 자바스크립트 코드만 넣는 방식으로 바꿔야 합니다. 판 번호는 {{REVISIONID}}로 얻고 data로 보내면 되겠지요.
- 플러그인을 구별할 수 있는 방법이 있습니다. 바로 주석을 활용하는 것인데요, 제가 만든 uncybeat 플러그인을 보면
/** 플러그인 UncyBeat*************************** * 버그 수정 * 버전 => 1.03 * 작성자 : [[사용자:Bd3076|Bd3076]] * JSON => UncyBeat = {"name":"UncyBeat","descript":"버그 수정","version":"1.03","local":true,"creat":"Bd3076","state":"UncyBeat/plugin","executable":true}; */
- 이렇게 시작합니다. 그리고 끝날 때는
/* UncyBeat 끝 */
- 이렇게 끝나죠. 이걸 확인하는 플러그인이나 루아모듈을 만든다면 사용자 커먼자스 문서가 어떤 플러그인으로 이루어져 있는지 분석할 수 있을 것이고, 원하는 부분을 삭제하는 것도 가능할 겁니다. -- Bd3076 (토론) (둘러보기)기여 횟수:
만든 게임: Bd3076의 게임 2018년 8월 8일 (수) 17:02 (KST) - 의견 아예 스크립트를 찾아 바꾸는 건 어떤가요? Bd님의 의견대로 말이죠. --올ㅋ 잡담 게임들 2018년 8월 12일 (일) 21:28 (KST)
- 아, 알고 보니 BANIP님이 이미 플러그인 제거 코드를 만들어 놓으셨습니다. common.js의
//commonjs에서 특정 플러그인 제거 function removePluginByDoc(pluginTitle, doc) { var reg = new RegExp("\\/\\*\\* 플러그인 " + pluginTitle + "([\\s\\S]*)\\/\\* " + pluginTitle + " 끝 \\*\\/", "g"); doc = doc.replace(reg, ""); return doc }
- 이것입니다. -- Bd3076 (토론) (둘러보기)기여 횟수:
만든 게임: Bd3076의 게임 2018년 11월 7일 (수) 19:07 (KST)
여기서 결과가 나와서 시스템을 어떻게 바꾼다 하더라도, 그 시스템을 적용하려면 현 플러그인 시스템을 전부 제거해야 하는 상황이 발생합니다. -- Bd3076 (토론) (둘러보기)기여 횟수:
만든 게임: Bd3076의 게임 2018년 11월 4일 (일) 18:55 (KST)
정보 Bd3076님이 틀:PluginX를 만드셨더군요. 일반 플러그인 대신 해당 틀을 쓰는 선택지도 나쁘지만은 않은 선택일 것 같습니다. —Js091213 (토론) 2019년 1월 11일 (금) 23:31 (KST)
- 동의합니다. 일단 현재의 플러그인 게임들은 임시로 PluginX로 이주시키고 그러는 동안 새로운 시스템을 만들면 되지 않을까... 합니다만, 플러그인X를 적용하기 힘든 게임들은 어떻게 할 지가 걸리네요. — Malgok1 (토론·기여) 2019년 1월 12일 (토) 09:34 (KST)
- 만약 자신의 사용자 문서 common.js에 꼭 넣어야 한다면,
var api = MediawikiAPI();
var code = api.getDocument(실제 코드가 저장될 문서 이름);
var pvjs = api.getDocument(mw.config.get("wgUserName") + "/common.js");
if(mw.config.get("wgUserName") !== null){
api.changeDocument("사용자:" + mw.config.get("wgUserName") + "/common.js", "플러그인 설치", pvjs + "\n\n\n" + code);
}
- 와 같은 코드를 넣으면 됩니다. -- Bd3076 (토론) (둘러보기)기여 횟수:
만든 게임: Bd3076의 게임 2019년 1월 24일 (목) 10:01 (KST)
- 와 같은 코드를 넣으면 됩니다. -- Bd3076 (토론) (둘러보기)기여 횟수:
원점으로 돌아가서, 이 토론의 목적이 뭔지부터 명확히 합시다. -- Bd3076 (토론) (둘러보기)기여 횟수:
만든 게임: Bd3076의 게임 2019년 2월 14일 (목) 19:49 (KST)
- 일단 소도구 이야기가 나왔네요. 소도구 사용으로 시스템을 바꾸는 건 전 일단 찬성입니다. 일단 주요 플러그인들은 커먼자스에 편입하는 작업을 이루고, 그 다음에 플러그인X로 임시 이주시킨 다음에 소도구와 같은 새 시스템을 개발해야할 것 같습니다. 갈 길이 멀군요. — Malgok1 (토론·기여) 2019년 2월 19일 (화) 22:15 (KST)
반달 문제[원본 편집]
플러그인을 이용하면 반달러들이 반달용 플러그인을 만들 수 있는데, 이건 어떻게 생각하시나요? -- Bd3076 (토론) (둘러보기)기여 횟수:
만든 게임: Bd3076의 게임 2018년 8월 28일 (화) 21:15 (KST)
- 플러그인에 반달 같은 내용이 들어 있지 않는지(예: 같은 패턴이 계속 반복, 허무주의로 내용이 도배됨 등)를 검사하는 편집 필터를 넣는 게 최선으로 보입니다.--올ㅋ 잡담 게임들 2018년 9월 9일 (일) 18:13 (KST)
- 코딩에 대해서 문외한인 제가 말하긴 어렵지만, 허무주의로 내용이 도배되는 자바스크립트 플러그인을 만드는 방법도 여러 가지 방법이 있을 것입니다. 마치 미디어위키에서 만들고 싶은 것을 만드는 데 방법이 한두가지가 아닌 것 처럼 말입니다. 그렇다면 편집 필터는 더 많은 것을 막아야 하고, 그로 인해 피해도 생길 수 있다고 봅니다. --이의섭(사토|기여|노 백괴게임, 노 잼) 2018년 10월 21일 (일) 00:15 (KST)
- 하긴 그건 사실입니다. 편집 필터로 괜히 막았다가 정상적인 편집을 방해받는 사용자가 생길 수도 있고요. 플러그인을 관리자가 "검토"할 수 있는 시스템을 만드는 것은 불가능할까요? -- Bd3076 (토론) (둘러보기)기여 횟수:
만든 게임: Bd3076의 게임 2018년 10월 22일 (월) 19:09 (KST)- 혹시 기존 플러그인에 반달할라고 수정하면 그 수정된 내용을 막는 방법은 없나요--Olimpic is back!(토론) 2018년 10월 22일 (월) 19:12 (KST)
- 그게 편집 필터를 이용한 방법인데, 꽤나 위험이 따릅니다. -- Bd3076 (토론) (둘러보기)기여 횟수:
만든 게임: Bd3076의 게임 2018년 10월 22일 (월) 19:23 (KST)
- 그게 편집 필터를 이용한 방법인데, 꽤나 위험이 따릅니다. -- Bd3076 (토론) (둘러보기)기여 횟수:
아예 승인을 받아야만 실행이 가능하게 하는건 안되려나요? 관리자도 많고 활동하는 사용자도 적어서 승인받는데는 딱히 오래 걸릴 것 같지는 않는데... 아니면 이미 편집된 리비전에 관리자가 임의로 태그를 추가하는 건 안되려나요? --사용자:Gustmd7410/서명 2019년 1월 12일 (토) 03:21 (KST)- 검토하는 시스템을 만드려면 미디어위키의 태그 시스템만 응용하면 충분할 것 같습니다. 그런데 어차피 관리자의 허가를 받아야 한다면 소도구를 응용하는 것도 좋은 대안이 될 수 있을 것 같은데요, 소도구는 미디어위키:Common.js와 비슷한 기능이지만 한 문서에 때려박아야 하는 커먼자스와는 달리 여러 부분으로 쪼개서 모듈화할 수 있다는 것이 특징입니다. 소도구는 미디어위키나 소도구 이름공간을 사용해야 하고,
반드시 관리자가 직접 내용을 복붙해야한다는 제약이 있지만,대부분이 구현되어 있어 도입이 매우 빠르다는 장점이 있습니다. 그리고 환경설정에서 입맛대로 사용할 기능을 고를 수 있고, API를 잘 활용한다면 플러그인처럼 쓸 수 있을 것으로 보입니다. 기존의 플러그인 방식을 계속 채택하는 것이 좋을까요? 아니면 소도구 기능을 개량해서 플러그인 처럼 쓸 수 있게 하는 것이 좋을까요? 추신: 소도구 이름공간을 편집하는 별도의 권한도 있더군요. 이 권한을 자동 인증된 사용자 같은 그룹에 넣으면 관리자 권한 없이도 소도구를 편집할 수 있습니다. (현재는 아무에게도 권한이 주어지지 않아 관리자를 포함한 그 누구도 편집할 수 없으며, 지금까지 미디어위키 이름공간을 사용해 왔습니다.) 만약 소도구를 활성화하기로 결정이 난다면 새로 토론을 파서 현행대로 관리자가 대리할지, 아니면 자동 인증된 사용자가 바로 편집할 수 있거나 별도 신청한 사람이 심사 등을 통해 허가할지를 정하고 관련 규정을 마련할 필요가 있어 보입니다. --사용자:Gustmd7410/서명 2019년 1월 23일 (수) 02:14 (KST)- 소도구 기능을 사용하게 된다면 개발 난이도는 아무래도 자스보다 올라가지 않을까 싶습니다. 그리고 조금 불편해질 거고요. 그것만 빼면 소도구가 자스보다 훨씬 낫죠. -- Bd3076 (토론) (둘러보기)기여 횟수:
만든 게임: Bd3076의 게임 2019년 1월 23일 (수) 10:57 (KST) - 새 소식을 가지고 왔습니다. 미디어위키를 개발하는 위키미디어 재단 측에서 요즘 기술 제안을 받고 있는데요, 소도구와 관련해서 리버티게임에서도 흥미를 가질법한 제안을 발견했습니다. 위키문법으로 소도구를 활성화시키는 기능을 만들자는 제안인데요, 이것이 구현된다면 다른 시스템을 만들 필요 없이 미디어위키에서 플러그인같은 기능을 기본적으로 이용할 수 있게 될 것이라고 기대합니다. 관심있으신 분들은 한번 읽어보고 평가해도 좋을 것 같습니다. (영어입니다.) --hsl(토론, 기여, 게임, 메일) 2020년 12월 20일 (일) 02:38 (KST)
- 소도구 기능을 사용하게 된다면 개발 난이도는 아무래도 자스보다 올라가지 않을까 싶습니다. 그리고 조금 불편해질 거고요. 그것만 빼면 소도구가 자스보다 훨씬 낫죠. -- Bd3076 (토론) (둘러보기)기여 횟수:
- 혹시 기존 플러그인에 반달할라고 수정하면 그 수정된 내용을 막는 방법은 없나요--Olimpic is back!(토론) 2018년 10월 22일 (월) 19:12 (KST)
- 하긴 그건 사실입니다. 편집 필터로 괜히 막았다가 정상적인 편집을 방해받는 사용자가 생길 수도 있고요. 플러그인을 관리자가 "검토"할 수 있는 시스템을 만드는 것은 불가능할까요? -- Bd3076 (토론) (둘러보기)기여 횟수:
- 코딩에 대해서 문외한인 제가 말하긴 어렵지만, 허무주의로 내용이 도배되는 자바스크립트 플러그인을 만드는 방법도 여러 가지 방법이 있을 것입니다. 마치 미디어위키에서 만들고 싶은 것을 만드는 데 방법이 한두가지가 아닌 것 처럼 말입니다. 그렇다면 편집 필터는 더 많은 것을 막아야 하고, 그로 인해 피해도 생길 수 있다고 봅니다. --이의섭(사토|기여|노 백괴게임, 노 잼) 2018년 10월 21일 (일) 00:15 (KST)
- 반달 문제도 중요합니다만, 이 토론장에서는 시스템의 개선이나 변경 등을 다루고자 하고 있고, 이런 개선이나 변경에 따라서는 자연스럽게 해결될 가능성도 있으므로 현 상황에서 이야기가 계속된다면 주제를 따로 빼서 이야기하셨으면 좋겠습니다. by manymaster (토론|기여) 2018년 10월 23일 (화) 01:08 (KST)
위 토론은 보존되어 있습니다. 특별한 이유가 없다면 편집하지 말아 주십시오.