the seed

에 마지막으로 수정됐습니다.

파일:Semi_protect.png
로그인 후 편집 가능한 문서입니다.
1. 개요2. 이 엔진을 사용하는 위키3. 업데이트 내역4. 여담5. 장점6. 단점7. 특성8. 모니위키와의 차이점

1. 개요[편집]

위키 엔진의 일종. 정식 명칭은 the seed이다. 2019년 1월 21일 전까지 옆동네에선 the seed engine으로 불렸다. 그래서 알파위키에선 the seed로 부르는군![1] namu, PPPP, kasio등의 개발자들이 만들었다. Node.js의 Express 프레임워크으로 작성되었다고.

2. 이 엔진을 사용하는 위키[편집]

3. 업데이트 내역[편집]

파일:alpha5.png   자세한 내용은 the seed/업데이트 내역 문서
부분을
참고하십시오.

4. 여담[편집]

  • the seed 버전 정보와 라이선스를 확인하려면 /License 페이지에 가면 된다. 예시
  • 엔진 관련 기술적 내용을 논의[4]을 논의하는 곳이 있다. 바로가기
  • 클로즈드 소스인 관계로 볼 수 있는 소스는 웹 브라우저의 개발 도구를 열면 보이는 HTML, CSS 그리고 theseed.js 하나 그리고 스킨 스크립트이다. 게다가 이것은 Node.js이 아니라 그냥 자바스크립트이다.[5] 참고로 이 스크립트는 현재도 남아있으나 내부 작동방식이 완전히 변경되면서 작동하지 않고 사용되지도 않는다.
  • 2018년 7월 기준 IP 차단 페이지인 IPACL에서 규칙 삭제(차단 해제) 시 뜨는 확인 메시지 내용이 "정말로?"이다(...). 문서 ACL에서는 "삭제하시겠습니까?". 현재는 IPACL은 사라졌다.
  • 405 오류를 404로 표시한다(...).[6]
  • 비로그인 상태로 편집 후 계정을 만든 후 기여를 이전하면 기여 목록에서 사용자 문서 생성 전에 기여가 있게 된다.
  • 4.16.0 버전부터 구 프론트엔드 사용이 불가능하다.
  • 나무위키에서 사용되는 the seed 엔진은 약간의 차이가 있다. 예를 들어서 기존 난수 토론 주소 접속 시 나무위키에서만 리다이렉트가 된다.
  • 4.13.0부터 API도 추가되었다. 다만 그냥 요청하면 400 코드가 반환되고 헤더를 약간 변경해야 한다. 이를 통해 브라우저를 통한 위키 접속 없이도 문서 조회 등이 가능하게 되었다.
  • 기존에는 요청 헤더에 사용자 에이전트가 없으면 역사 및 이미지가 작동하지 않았다. 현재는 수정되었다.
  • 일부 표기가 영어로 되어있다. 예를 들어 편집요청, 뒤로 및 다음 페이지 단추 등. 그런데 옛날 나무위키 스크린샷을 보면 IPACL 페이지에 스페인어(...)[7]도 있었던 듯하다.
  • 구 프론트엔드는 스크립트를 압축하지 않은 버전도 접근이 가능했고 클래스명도 알아보기 쉬워서 커스텀 JS나 CSS를 만드는 것이 쉬웠다. 신 프론트엔드는 스크립트가 Vue.js+webpack+obfuscator로 컴파일되었고, 클래스명은 한 자리이거나 아예 없고, data-v-xxxxxxxx이라는 속성명을 사용하는데, 이것은 계속 바뀌기 때문에(...), 직접 CSS/JS를 제작하는 것이 조금 어렵게 되었다.

5. 장점[편집]

6. 단점[편집]

  • 엔진이 비공개라 개인이 위키를 만들 때 쓸 수 없다. 클로즈드 소스인 이유는 코딩 스타일을 이용해서 namu가 누구인지 청동이 추론할 수 있기 때문이라는 주장이 있다.
  • 닉네임을 영문, 숫자, 밑줄로만 설정할 수 있다.[10][11]
  • 파서 함수가 지원되지 않는다.
  • 현재는 해결됐지만 2020년 4월부터 8월까지 나무위키를 제외한 곳에서 파이어폭스 계열에서 조금씩 느려지는 현상이 있었다. 특히 컴퓨터 성능이 좋지 않으면 접속만 해도 랙 + 응답없음 콤보(...)가 나는 경우가 있었다. 거기다가 당시에는 개발자 도구가 열리면 페이지가 얼음이 되기도 했는데 중간에서 저성능 컴퓨터 파이어폭스 기준 개발자 도구를 열면 한참 동안 응답 없음이 뜨는 경우도 있어서 백스페이스를 누르려다 F12를 눌러버리면 한참을 기다려야 하는 경우도 있었다. 참고로 개발자 도구가 열려있는 상태에서 사이트 이용이 불가한 것은 나무위키도 해당했었다.

7. 특성[편집]

  • 시간을 내부적으로 초단위 유닉스 시간으로 처리하는 듯하다.
  • 프론트엔드 자바스크립트가 난독화되어있다. 4.14~15.0부터 시작되었다. 코드 패턴으로 보았을 때에는 obfuscator.io의 서비스를 이용하는 것으로 추정되며, 코드의 길이가 거의 2,000,000자리(...)에 달한다. 그리고 중간중간 의미없는 코드도 있고,[12] 모든 문자열을 배열에 모아놓고 함수로 접근하도록 되어있다. 더시드엔진은 클로즈드 소스인데 이 스크립트에 UI 및 프론트엔드 렌더링 코드가 있어서 그런 것으로 추정된다.[13]
  • 기존에는 HTML 클래스명이 일반적이었지만 4.13.0부터는 클래스명이 한 자리이고 data-v-<해시>라는 속성으로 요소를 구분하는데, 이 때문에 사용자 JS/CSS 제작이 약간 어려워진다. 거기다가 HTML의 중간중간에 <!---->(빈 주석)이 달려있다.
  • 4.12.0버전까지는 jQuery를 사용하였다.
  • 템플릿 엔진으로 Nuxt.js를 사용한다.
  • 4.13.0 버전에는 페이지 이동 시 페이드 애니메이션 효과가 있었으나 언제부턴가 사라졌다.
  • (window.webpackJsonP = window.webpackJsonP || []) 코드가[14] 있는 것이 확인되어 webPack를 사용하는 듯하다.

8. 모니위키와의 차이점[편집]

파일:alpha5.png   자세한 내용은 모니위키와 더시드의 비교 문서
부분을
참고하십시오.
[1] 알파위키와 나무위키는 관계가 최악 그 자체다.[2] 쉽게 말해서 히든위키와 비슷하다.[3] 유저가 없어진 뒤 호스트 서버 오류로 사실상 폐쇄되었다(...). 현재는 아예 빈 페이지만 나온다.[4] 기능 추가 요청, 버그 제보 등[5] 당연한거다. Node.js 런타임은 서버에 있기 때문.[6] 다만 Express.js 특성상 이렇게 되기는 한다. 거기에서는 app.get로 GET 요청을, app.post로 POST 요청을 처리하는데 POST 전용 페이지의 경우 app.get 코드가 아예 없다면 404가 뜨게 되는 것. 그런데 app.all를 사용하면 모든 메소드에 대한 요청을 처리할 수 있기는 하다.[7] AL 활성화 확인란 레이블이 Si(스페인어로 '예'라는 뜻이다)라고 되어있었다.[8] 미디어위키는 일부 문법에서 html 태그를 사용하는 데 비해, the seed는 그런 거 없다[9]. 나무마크 문서 참조. 다만 이게 나무마크에 있어서도 문제점으로 작용하기도 하는데, HTML 문법이 제한되어 있어 복잡한 틀을 만들기가 심히 어렵다.[9] html을 사용할 수 있는 문법이 있긴 하다. 다만 심히 불편할 뿐더러 이미지 삽입 및 CSS조차 지원이 빈약하다는 문제점이 있다.[10] 다만 나무위키는 한글 닉네임이 있는 것으로 보아 강제적으로도 한글 닉네임을 사용할 수 있는 것 같다.[11] 숫자나 밑줄로 시작하면 안 된다. 또한 3자 이상 32자 이하이여야 한다.[12] 보통 함수가 만들어져있는데 실행해봤자 의미가 없는 코드로 구성되어있고, 한 번 호출하고 사용되지 않는 함수들이 해당된다. 이미 코드 초반부에 3개가 있다.[13] 여담으로 이것이 사실이라면 API만 동일한 양식으로 반환하는 위키 엔진을 만들면 거기서도 더시드엔진 UI를 사용할 수 있다(!) 다만 이렇게 스크립트를 가져다가 쓰면 저작권 침해에 해당하므로 오프라인으로 혼자서만 가지고 놀 것이 아니라면 하지 말자. 아니면 반대로 직접 스크립트를 만들어서 자신만의 UI로 위키를 이용할 수도 있다.[14] 실제로는 바로 webpackJsonP를 사용하지 않고 복잡한 단계로 접근하게 된다.

Contents are available under the CC BY-NC-SA 2.0 KR; There could be exceptions if specified or metioned. theseed-skin-buma by LiteHell, the seed engine by theseed.io