| 1 | | [[분류:알파위키의 기능]][[분류:위키 엔진]] |
|---|
| 2 | 1 | [include(틀:회원 수정)] |
|---|
| 2 | [include(틀:다른 뜻)] |
|---|
| 3 | * [[메이플스토리]]의 던전 - [[더 시드]] |
|---|
| 4 | * [[소드 아트 온라인]]에 등장하는 가상의 소프트웨어 - [[더 시드(소드 아트 온라인)]] |
|---|
| 5 | * [[Shirosky]]의 네번째 EP앨범 - [[The Seed]] |
|---|
| 3 | 6 | [include(틀:알파위키)] |
|---|
| 4 | 7 | [목차] |
|---|
| 8 | |
|---|
| 9 | '''[[https://feedback.theseed.io|더시드 포럼]]''' |
|---|
| 10 | |
|---|
| 5 | 11 | == 개요 == |
|---|
| 6 | | [[위키 엔진]]의 일종. 정식 명칭은 the seed이다. 2019년 1월 21일 전까지 [[나무위키|옆동네]]에선 the seed engine으로 불렸다. --그래서 알파위키에선 '''the seed'''로 부르는군![* 알파위키와 나무위키는 관계가 최악 그 자체다.]-- [[namu]], PPPP, kasio등의 개발자들이 만들었다. Node.js의 Express 프레임워크으로 작성되었다고. |
|---|
| 12 | [[나무위키]]에서 사용하는 [[위키 엔진]]으로 [[namu]], [[PPPP]], [[kasio]]가 개발했다. the seed라는 이름은 개발 단계에서 통용되는 코드네임[* 이에 대한 [[https://namu.wiki/topic/2816#26|PPPP의 답변]]]이었으나 나무위키의 엔진을 지칭하는 공식적인 이름이 된 것으로 보인다.([[https://namu.wiki/License|#]]) 본 엔진은 [[Node.js]]의 Express.js [[프레임워크]]를 사용했다. 2016년 5월 7일 the seed의 라이센싱 계약이 [[namu|개발자]] 측과 [[umanle S.R.L.]] 측 사이에 체결되었다. |
|---|
| 7 | 13 | |
|---|
| 8 | | == 이 엔진을 사용하는 위키 == |
|---|
| 9 | | * [[알파위키]]
|
|---|
| 10 | | * [[나무위키]] |
|---|
| 11 | | * [[더시드위키]]
|
|---|
| 12 | | * --[[더 시드(위키)|더 시드]]-- - 위의 더시드위키와는 또 다르며 간단하게 설명하면 [[Tor]] 인트라넷 상에서 구동되는 [[다크 웹]] 기반 위키.
|
|---|
| 13 | | * --[[R18위키]]-- - [[더시드엔진]] 기반 테스트용 위키.
|
|---|
| 14 | | == [[/업데이트 내역|업데이트 내역]] == |
|---|
| 15 | | [include(틀:상세 내용, 문서명=the seed/업데이트 내역)] |
|---|
| 14 | == [[알파위키:문법 도움말|문법]] == |
|---|
| 15 | [include(틀:상세 내용, 문서명=알파위키:문법 도움말)] |
|---|
| 16 | [[알파위키]]에선 '나무마크'라는 자체적인 텍스트 문법을 사용한다. |
|---|
| 16 | 17 | |
|---|
| 17 | | == 여담 == |
|---|
| 18 | | * the seed 버전 정보와 라이선스를 확인하려면 '''/License''' 페이지에 가면 된다. [[https://awiki.theseed.io/License|예시]]
|
|---|
| 19 | | * 엔진 관련 기술적 내용을 논의[* 기능 추가 요청, 버그 제보 등]을 논의하는 곳이 있다. [[https://feedback.theseed.io|바로가기]] |
|---|
| 20 | | * 클로즈드 소스인 관계로 볼 수 있는 소스는 웹 브라우저의 개발 도구를 열면 보이는 HTML, CSS 그리고 [[https://theseed.io/js/theseed.js|theseed.js]] 하나 그리고 스킨 스크립트이다. 게다가 이것은 Node.js이 아니라 그냥 자바스크립트이다.[* 당연한거다. Node.js 런타임은 서버에 있기 때문.] 참고로 이 스크립트는 현재도 남아있으나 내부 작동방식이 완전히 변경되면서 작동하지 않고 사용되지도 않는다. |
|---|
| 21 | | * 2018년 7월 기준 IP 차단 페이지인 IPACL에서 규칙 삭제(차단 해제) 시 뜨는 확인 메시지 내용이 "정말로?"이다(...). 문서 ACL에서는 "삭제하시겠습니까?". 현재는 IPACL은 사라졌다.
|
|---|
| 22 | | * 405 오류를 404로 표시한다(...).[* 다만 Express.js 특성상 이렇게 되기는 한다. 거기에서는 {{{app.get}}}로 GET 요청을, {{{app.post}}}로 POST 요청을 처리하는데 POST 전용 페이지의 경우 {{{app.get}}} 코드가 아예 없다면 404가 뜨게 되는 것. 그런데 {{{app.all}}}를 사용하면 모든 메소드에 대한 요청을 처리할 수 있기는 하다.]
|
|---|
| 23 | | * 비로그인 상태로 편집 후 계정을 만든 후 기여를 이전하면 기여 목록에서 사용자 문서 생성 전에 기여가 있게 된다.
|
|---|
| 24 | | * 4.16.0 버전부터 구 프론트엔드 사용이 불가능하다.
|
|---|
| 25 | | * 나무위키에서 사용되는 the seed 엔진은 약간의 차이가 있다. 예를 들어서 기존 난수 토론 주소 접속 시 나무위키에서만 리다이렉트가 된다.
|
|---|
| 26 | | * 4.13.0부터 API도 추가되었다. 다만 그냥 요청하면 400 코드가 반환되고 헤더를 약간 변경해야 한다. 이를 통해 브라우저를 통한 위키 접속 없이도 문서 조회 등이 가능하게 되었다.
|
|---|
| 27 | | * [[:파일:tsdjserr.gif|오래된 브라우저에서 접속할 때 붉은색 로딩 화면이 뜨는 경우가 있다.]]
|
|---|
| 28 | | * 기존에는 요청 헤더에 사용자 에이전트가 없으면 역사 및 이미지가 작동하지 않았다.
|
|---|
| 29 | | * 일부 표기가 영어로 되어있다. 예를 들어 편집요청, 뒤로 및 다음 페이지 단추 등. 그런데 옛날 나무위키 스크린샷을 보면 IPACL 페이지에 스페인어(...)[* AL 활성화 확인란 레이블이 Si(스페인어로 '예'라는 뜻이다)라고 되어있었다.]도 있었던 듯하다.
|
|---|
| 30 | | * 구 프론트엔드는 스크립트를 압축하지 않은 버전도 접근이 가능했고 클래스명도 알아보기 쉬워서 커스텀 JS나 CSS를 만드는 것이 쉬웠'''었'''다. 신 프론트엔드는 스크립트가 Vue.js+webpack+obfuscator로 컴파일되었고, 클래스명은 한 자리이거나 아예 없고, data-v-xxxxxxxx이라는 속성명을 사용하는데, 이것은 계속 바뀌기 때문에(...), 직접 CSS/JS를 제작하는 것이 조금 어렵게 되었다.
|
|---|
| 31 | | * '''현재 부분적으로 코드가 공개되었다.''' 현재 볼 수 있는 코드는 프론트엔드 렌더링 소스코드와[* 개발자 도구를 열고 {{{<script src="<숫자>.<A, B, C, D, E, f 및 숫자로 이루어진 긴 문자열>.js" defer>}}}가 있을 것이다. 그것이 프론트엔드 렌더링 코드이다. 최근 토론 페이지의 코드를 보려면 거기서 이 스크립트를 확인하면 된다.] 편집기 소스코드[* [[https://github.com/namu-wiki/monaco-namu|#]] ]이다.
|
|---|
| 32 | | * 신 프론트에서는 스크립트의 총 크기가 2MB 이상이므로 데이타 네트워크로 접속 시 주의가 필요하다. ~~스크립트 난독화 스크립트 뻥튀기~~
|
|---|
| 18 | == [[the seed/업데이트|업데이트 내역]] == |
|---|
| 19 | [include(틀:상세 내용, 문서명=the seed/업데이트)] |
|---|
| 33 | 20 | |
|---|
| 34 | | == 장점 == |
|---|
| 35 | | * [[리그베다 위키]] 호환성을 위해 [[모니위키]] 문법을 일부 계승한 관계로 [[미디어위키]]보다 훨씬 문법이 쉽고 간편하다.[* 미디어위키는 일부 문법에서 html 태그를 사용하는 데 비해, the seed는 [[그런 거 없다]][* html을 사용할 수 있는 문법이 있긴 하다. 다만 심히 불편할 뿐더러 이미지 삽입 및 CSS조차 지원이 빈약하다는 문제점이 있다.]. [[나무마크]] 문서 참조. 다만 이게 나무마크에 있어서도 문제점으로 작용하기도 하는데, HTML 문법이 제한되어 있어 복잡한 틀을 만들기가 심히 어렵다.]
|
|---|
| 21 | == 추가 예정인 기능 == |
|---|
| 22 | 더시드포럼에서 Planned 상태가 된 글이다. |
|---|
| 36 | 23 | |
|---|
| 37 | | == 단점 ==
|
|---|
| 38 | | * 엔진이 비공개라 개인이 위키를 만들 때 쓸 수 없다. 클로즈드 소스인 이유는 코딩 스타일을 이용해서 namu가 누구인지 청동이 추론할 수 있기 때문이라는 주장이 있다.
|
|---|
| 39 | | * 닉네임을 영문, 숫자, 밑줄로만 설정할 수 있다.[* 다만 나무위키는 한글 닉네임이 있는 것으로 보아 강제적으로도 한글 닉네임을 사용할 수 있는 것 같다.][* 숫자나 밑줄로 시작하면 안 된다. 또한 3자 이상 32자 이하이여야 한다.] |
|---|
| 40 | | * 파서 함수가 지원되지 않는다. |
|---|
| 41 | | * 현재는 해결됐지만 2020년 4월부터 8월까지 나무위키를 제외한 곳에서 파이어폭스 계열에서 조금씩 느려지는 현상이 있었다. 특히 컴퓨터 성능이 좋지 않으면 접속만 해도 랙 + 응답없음 콤보(...)가 나는 경우가 있었다. 거기다가 당시에는 개발자 도구가 열리면 페이지가 얼음이 되기도 했는데 중간에서 저성능 컴퓨터 파이어폭스 기준 개발자 도구를 열면 한참 동안 응답 없음이 뜨는 경우도 있어서 백스페이스를 누르려다 F12를 눌러버리면 한참을 기다려야 하는 경우도 있었다. 참고로 개발자 도구가 열려있는 상태에서 사이트 이용이 불가한 것은 나무위키도 해당했었다. |
|---|
| 24 | * [[https://feedback.theseed.io/posts/3/injeungdoen-sayongja-acl-jogeon|인증된 사용자 ACL]] |
|---|
| 25 | * [[https://feedback.theseed.io/posts/12/ridairegteu-munbeob-byeongyeong|리다이렉트 문법 변경]]: 리다이렉트의 대상이 되는 문서에서 '[\[넘겨주기:리다이렉트]]'꼴로 리다이렉트를 설정할 수 있도록 리다이렉트 문법을 변경하는 내용이다.[* 여담으로 예전부터 편집창에 "[의견수렴\] 리다이렉트 문법 변경"이라는 링크가 붙어서 의견 수렴을 진행했었다.] |
|---|
| 26 | * [[https://feedback.theseed.io/posts/2/alrim-siseutem|알림 시스템]] |
|---|
| 27 | * [[https://feedback.theseed.io/posts/6/namuwiki-baegyeong-tumyeongdo-seoljeong|나무위키 배경 투명도 설정]] |
|---|
| 28 | * [[https://feedback.theseed.io/posts/23/samun-hawimunseo-gwanryeon|사용자 문서의 하위문서 관련]]: 사용자 문서의 하위 문서가 최상위 문서로 옮겨지면 삭제하거나 옮기는 것이 불가능해지는데 이를 가능하게 해달라는 요청이다. |
|---|
| 29 | * [[https://feedback.theseed.io/posts/24/torongwanryeon|숨겨진 댓글 표시 설정]] |
|---|
| 30 | * [[https://feedback.theseed.io/posts/8/cadannaeyeog-gwanryeon|차단내역 수정 기능]] |
|---|
| 31 | * [[https://feedback.theseed.io/posts/1/pyeonjib-pilteo|편집 필터]] |
|---|
| 32 | * [[https://feedback.theseed.io/posts/40/samun-pyeonjibyoceong-isseul-ddae-alrimi-ddeuge-hamyeon-johgessseubnida|사용자 문서 편집 요청 알림]] |
|---|
| 33 | * [[https://feedback.theseed.io/posts/70/jadong-pyeonjib-api|자동 편집 API]] |
|---|
| 34 | == 기타 == |
|---|
| 35 | 기본적으로 비공개 엔진이기 때문에 일반인들이 구할 수 없다. 대체용으로 나온 게 [[오픈나무]]. |
|---|
| 42 | 36 | |
|---|
| 43 | | == 특성 ==
|
|---|
| 44 | | * 시간을 내부적으로 초단위 유닉스 시간으로 처리하는 듯하다.
|
|---|
| 45 | | * 프론트엔드 자바스크립트가 난독화되어있다. 4.14~15.0부터 시작되었다. 코드 패턴으로 보았을 때에는 [[https://obfuscator.io|obfuscator.io]]의 서비스를 이용하는 것으로 추정되며, 코드의 길이가 거의 2,000,000자리(...)에 달한다. 그리고 중간중간 의미없는 코드도 있고,[* 보통 함수가 만들어져있는데 실행해봤자 의미가 없는 코드로 구성되어있고, 한 번 호출하고 사용되지 않는 함수들이 해당된다. 이미 코드 초반부에 3개가 있다.] 모든 문자열을 배열에 모아놓고 함수로 접근하도록 되어있다. 더시드엔진은 클로즈드 소스인데 이 스크립트에 UI 및 프론트엔드 렌더링 코드가 있어서 그런 것으로 추정된다.[* 여담으로 이것이 사실이라면 API만 동일한 양식으로 반환하는 위키 엔진을 만들면 거기서도 더시드엔진 UI를 사용할 수 있다(!) 다만 이렇게 스크립트를 가져다가 쓰면 저작권 침해에 해당하므로 오프라인으로 혼자서만 가지고 놀 것이 아니라면 하지 말자. 아니면 반대로 직접 스크립트를 만들어서 자신만의 UI로 위키를 이용할 수도 있다.]
|
|---|
| 46 | | * 기존에는 HTML 클래스명이 일반적이었지만 4.13.0부터는 클래스명이 한 자리이고 data-v-<해시>라는 속성으로 요소를 구분하는데, 이 때문에 사용자 JS/CSS 제작이 약간 어려워진다. 거기다가 HTML의 중간중간에 {{{<!---->}}}(빈 주석)이 달려있다.
|
|---|
| 47 | | * 4.12.0버전까지는 [[jQuery]]를 사용하였다.
|
|---|
| 48 | | * 템플릿 엔진으로 Nuxt.js를 사용한다.
|
|---|
| 49 | | * 4.13.0 버전에는 페이지 이동 시 페이드 애니메이션 효과가 있었으나 언제부턴가 사라졌다.
|
|---|
| 50 | | * {{{(window.webpackJsonP = window.webpackJsonP || [])}}} 코드가[* 실제로는 바로 webpackJsonP를 사용하지 않고 복잡한 단계로 접근하게 된다.] 있는 것이 확인되어 webPack를 사용하는 듯하다.
|
|---|
| 37 | [[나무위키]] 외에도 더시드위키, 알파위키에서도 사용된다. 지금은 폐쇄된 R18위키에서도 사용되었다. |
|---|
| 51 | 38 | |
|---|
| 52 | | == [[모니위키]]와의 차이점 ==
|
|---|
| 53 | | [include(틀:상세 내용, 문서명=모니위키와 더시드의 비교)] |
|---|
| 54 | | 나무위키도 서술되어 있으니 안심, |
|---|
| 39 | 4.12.0 이하 버전은 HTML과 자바스크립트를 알아보기 쉬웠는데, 현재는 페이지들의 HTML을 열어보면 data-v-(해시) 등의 속성으로 요소들을 구분하게 되어있어 일반적으로 알아보기 어렵게 되어있다. 또한 자바스크립트도 전부 난독화되어있어 변수 및 함수 이름들이 16진수 숫자로 되어있고, 작동하지 않는 코드들이 삽입되어있고, 문자열도 인코딩되어있어 알아보기 매우 어렵게 되어있다. 거기에 더해서 모든 문자열들을 한 배열에 모아놓고 함수를 통해서 배열에 접근하는 등 매우 복잡하게 되어있다. |
|---|
| 40 | |
|---|
| 41 | 4.13.0부터 내부 구조가 대거 수정되었다. 4.15.0까지는 기존 방식의 스킨과의 호환성을 위해 해당 스킨을 적용하면 옛 인터페이스를 사용할 수 있었다. 나무위키는 2019년 말쯤에 4.16.0으로 업데이트되어 기존 레이아웃을 사용할 수 없었으나 더시드위키는 업데이트되지 않아 거기서 계속 사용할 수 있었다. 그러다가 2020년 3월 1일에 더시드위키도 4.16.0으로 업데이트되어서 기존 방식과 인터페이스는 더 이상 볼 수 없게 되었다. |
|---|
| 42 | |
|---|
| 43 | 리버티 스킨 기준으로 신 프론트엔드(버전 4.16.0) 이후로 스크립트의 총 크기가 거의 1MB[* 나무위키에는 없는 buma 스킨은 2MB, senkawa 스킨은 약 0.7MB이다.]씩 되어서 모바일에서 데이터 네트워크를 사용하여 접속하는 경우 주의가 필요하다. 다만 지금은 크기가 좀 줄긴 했다. |
|---|
| 44 | |
|---|
| 45 | 2021년 1월 20일 부로 홈페이지가 리뉴얼되었다. |
|---|
| 46 | |
|---|
| 47 | Date 오브젝트를 그대로 대입해서인지 차단되었을 때 나오는 오류 메시지의 만료일의 형식이 "Sat Dec 27 2132 04:42:20 GMT+0900 (대한민국 표준시)"이고, 앞부분이 영어로 나온다. |
|---|
| 48 | |
|---|
| 49 | 2020년 중후반에 자동 로그인 후 로그아웃이 되지 않는 오류가 있었다. honoka 쿠키의 반환이 제대로 안 되어서 그런데, 값이 "[object Object]"로 잘못 반환되었다. 쿠키를 JSON(오브젝트)으로 관리하는 듯하다.[* 그렇다면 오브젝트의 속성에 접근하는 것을 깜빡해서 발생했을 버그일 가능성이 높다.] |
|---|
| 50 | |
|---|
| 51 | 기여 목록의 특성으로 미루어 보아 내부적으로 초 단위 유닉스 시간을 통해 관리하는 듯하다. |
|---|
| 52 | |
|---|
| 53 | 이전에는 [[Tor(익명 네트워크)|Tor]] 네트워크 위에서 "더시드"라는 이름의 [[딥 웹]] 위키를 [[namu]]가 운영했다. 주소는 .com이나 .wiki가 아니라 .onion으로 끝난다. |
|---|
| 54 | |
|---|
| 55 | 엔진 수정권을 주지 않았음에도 나무위키에'''만''' 있는 기능이 있는 것으로 보아 플러그 인이나 확장 프로그램 기능이 있는 듯하다. |
|---|
| 56 | |
|---|
| 57 | [[분류:알파위키의 기능]][[분류:위키 엔진]] |
|---|