순번 제거 |
문서 내용 보강 |
||
| 3번째 줄: | 3번째 줄: | ||
{{틀:인용문|The DokuWiki Open Source Wiki Engine|깃허브 엔진 저장소 설명}}<br/> | {{틀:인용문|The DokuWiki Open Source Wiki Engine|깃허브 엔진 저장소 설명}}<br/> | ||
[https://www.dokuwiki.org/dokuwiki 도쿠위키 공식 홈페이지], [https://github.com/ | [https://www.dokuwiki.org/dokuwiki 도쿠위키 공식 홈페이지], [https://github.com/dokuwiki/dokuwiki 깃허브 도쿠위키 저장소], [https://download.dokuwiki.org/ 도쿠위키 다운로드 페이지] | ||
== | == 개요 == | ||
[[PHP]] | '''도쿠위키''' 또는 '''DokuWiki'''는 [[PHP]]로 작성된 [[오픈 소스]] [[위키 엔진]]이다. 가장 큰 특징은 [[MySQL]], [[MariaDB]], [[PostgreSQL]]과 같은 별도의 관계형 데이터베이스 관리 시스템을 필수 구성 요소로 요구하지 않는다는 점이다. 일반적인 위키 엔진이 문서, 사용자 정보, 변경 기록, 미디어 메타데이터 등을 DBMS에 저장하는 것과 달리, 도쿠위키는 문서와 설정 정보를 주로 파일 시스템에 저장한다. 이 때문에 설치와 이전, 백업, 복구가 비교적 단순하며, 소규모 개인 위키, 팀 내부 문서, 프로젝트 문서, 매뉴얼, 지식 베이스, 인트라넷 문서 시스템 등에 자주 사용된다.<ref name="official-main">[https://www.dokuwiki.org/dokuwiki DokuWiki 공식 소개 문서]</ref> | ||
도쿠위키는 본래 문서화를 목적으로 설계된 위키 엔진이다. 이름의 “Doku” 역시 독일어로 문서 또는 문서화를 뜻하는 “Dokumentation”에서 유래한 것으로 알려져 있다. 실제로 도쿠위키는 대규모 공개 백과사전보다는 개발팀, 연구실, 소규모 기업, 학교, 동아리, 개인 서버 운영자처럼 지속적으로 정리해야 할 문서가 있는 사용자층에 잘 맞는다. 복잡한 DB 설정 없이 웹 서버와 PHP 실행 환경만 갖추면 운영할 수 있으며, 기본 문법 또한 비교적 읽기 쉬운 편이어서 위키 시스템을 처음 접하는 사용자도 적응하기 쉽다. | |||
도쿠위키는 [[미디어위키]]와 같은 대형 위키 엔진에 비해 구조가 단순하다. 반면 미디어위키가 갖는 거대한 생태계, 방대한 확장 기능, 대규모 트래픽 대응 구조, 고도화된 권한 모델과 비교하면 기능적으로는 더 단정하고 가벼운 방향에 가깝다. 따라서 도쿠위키는 “최대한 많은 기능을 가진 위키”라기보다는 “설치와 유지보수가 간단하고, 문서 파일을 직접 다루기 쉬운 위키”로 보는 것이 적절하다. | |||
=== | == 기본 정보 == | ||
공식 | {| class="wikitable" | ||
! 항목 !! 내용 | |||
|- | |||
| 이름 || DokuWiki, 도쿠위키 | |||
|- | |||
| 종류 || 위키 엔진, 문서화 도구, 지식 베이스 소프트웨어 | |||
|- | |||
| 주요 구현 언어 || PHP | |||
|- | |||
| 저장 방식 || 플랫 파일 기반 저장 구조 | |||
|- | |||
| 데이터베이스 필요 여부 || 별도 DBMS 불필요 | |||
|- | |||
| 라이선스 || GNU General Public License v2 계열<ref name="github-readme">[https://github.com/dokuwiki/dokuwiki DokuWiki GitHub 저장소]</ref> | |||
|- | |||
| 주요 용도 || 내부 문서, 기술 문서, 프로젝트 문서, 개인 지식 베이스, 인트라넷 위키, 매뉴얼 | |||
|- | |||
| 공식 홈페이지 || [https://www.dokuwiki.org/dokuwiki dokuwiki.org] | |||
|- | |||
| 공식 다운로드 || [https://download.dokuwiki.org/ download.dokuwiki.org] | |||
|- | |||
| 공식 저장소 || [https://github.com/dokuwiki/dokuwiki github.com/dokuwiki/dokuwiki] | |||
|- | |||
| 최신 안정판 || 2025-05-14b “Librarian” 계열<ref name="github-releases">[https://github.com/dokuwiki/dokuwiki/releases DokuWiki GitHub Releases]</ref> | |||
|} | |||
== | == 역사 == | ||
도쿠위키는 2004년경 Andreas Gohr에 의해 시작된 위키 엔진이다. 초기부터 “문서화에 적합한 간단한 위키”라는 방향성을 가지고 개발되었으며, 시간이 지나면서 플러그인 구조, 템플릿 구조, 접근 제어, 인증 백엔드, 미디어 관리, 변경 기록, 검색 기능 등을 갖춘 범용 위키 엔진으로 발전하였다.<ref name="history">[https://www.dokuwiki.org/history_and_foss DokuWiki 역사 관련 공식 문서]</ref> | |||
도쿠위키의 개발 방향은 처음부터 [[미디어위키]]와 다소 달랐다. 미디어위키는 위키백과와 같은 대형 공개 협업 백과사전 운영에 적합한 구조를 갖고 성장한 반면, 도쿠위키는 문서 관리와 유지보수의 편의성에 더 큰 비중을 둔다. 별도의 DBMS 없이 문서를 파일로 저장하는 구조, 읽기 쉬운 문법, 간단한 설치 절차, 관리자 친화적인 백업 구조는 이러한 방향성에서 비롯된 특징이다. | |||
= | 릴리스명은 오래전부터 고유한 코드명을 사용하는 경우가 많다. 예를 들어 2024년 계열은 “Kaos”, 2025년 계열은 “Librarian”이라는 코드명을 사용하였다. 2024년 “Kaos” 계열에서는 PHP 7.4 이상 요구가 명확해졌고, 2025년 “Librarian” 계열에서는 여러 개선과 보안 수정이 이어졌다.<ref name="changes">[https://www.dokuwiki.org/changes DokuWiki 변경 기록]</ref> | ||
== | == 특징 == | ||
=== | === 데이터베이스가 필요 없는 구조 === | ||
도쿠위키의 가장 대표적인 특징은 데이터베이스가 필요 없다는 점이다. 문서 내용은 일반 텍스트 파일로 저장되며, 미디어 파일은 파일 시스템에 저장된다. 설정 파일, 사용자 정보, 접근 제어 규칙 역시 파일 기반으로 관리되는 경우가 많다. 이 구조 덕분에 서버 이전이나 백업을 할 때 DB 덤프와 복원 절차를 별도로 거치지 않아도 되는 경우가 많다. | |||
예를 들어 일반적인 DB 기반 CMS에서는 백업 시 웹 루트 파일과 데이터베이스를 모두 백업해야 한다. 반면 도쿠위키는 설치 디렉터리와 데이터 디렉터리, 설정 디렉터리, 플러그인 및 템플릿 디렉터리를 적절히 백업하면 대부분의 운영 데이터를 보존할 수 있다. 물론 실제 운영 환경에서는 캐시, 세션, 임시 파일, 서버 설정, 웹 서버 가상 호스트 설정, SSL 인증서, 백업 제외 대상 등을 구분해야 하므로 단순히 전체 폴더를 복사하는 것만으로 항상 최선의 백업이 되는 것은 아니다. | |||
=== 쉬운 설치 === | |||
도쿠위키는 웹 인스톨러를 제공하기 때문에 설치 난도가 낮은 편이다. 설치 파일을 서버에 업로드한 뒤 웹 브라우저에서 설치 페이지에 접근하여 위키 이름, 관리자 계정, 권한 정책 등을 설정하면 기본 설치가 가능하다. [[미디어위키]]처럼 DB 연결 정보, DB 사용자, DB 이름, 테이블 접두사 등을 입력해야 하는 절차가 없기 때문에 초보자에게 더 단순하게 느껴질 수 있다. | |||
==각주== | 다만 “쉽게 설치된다”는 말은 “보안까지 자동으로 완벽하게 설정된다”는 뜻은 아니다. 도쿠위키는 파일 기반 구조이므로 웹 서버가 쓰기 권한을 가져야 하는 디렉터리와 외부에서 직접 접근되면 안 되는 디렉터리를 구분해야 한다. 공식 문서에서도 파일 권한 설정은 중요한 설치 단계로 다룬다.<ref name="permissions">[https://www.dokuwiki.org/install:permissions DokuWiki 파일 권한 설정 문서]</ref> | ||
=== 문서화에 적합한 문법 === | |||
도쿠위키는 자체 위키 문법을 사용한다. 굵게, 기울임, 밑줄, 취소선, 제목, 목록, 표, 코드 블록, 내부 링크, 외부 링크, 이미지 삽입, 각주 등을 지원한다. 문법은 단순하면서도 문서 파일 자체의 가독성을 유지하는 방향으로 설계되어 있다.<ref name="syntax">[https://www.dokuwiki.org/wiki:syntax DokuWiki 문법 문서]</ref> | |||
도쿠위키 문법은 [[마크다운]]과 완전히 같지는 않다. 따라서 마크다운 기반 지식 베이스에 익숙한 사용자는 처음에 약간의 학습이 필요하다. 그러나 기본 문법이 크게 어렵지는 않으며, 툴바와 플러그인을 통해 편집 편의성을 높일 수 있다. 또한 플러그인을 이용하면 일부 마크다운 문법을 지원하게 구성할 수도 있다. | |||
=== 네임스페이스 기반 문서 구조 === | |||
도쿠위키는 문서를 네임스페이스 단위로 정리할 수 있다. 네임스페이스는 파일 시스템의 폴더 구조와 비슷하게 이해할 수 있다. 예를 들어 `project:alpha:install` 같은 문서 이름은 `project` 아래 `alpha` 범주에 속한 `install` 문서처럼 다룰 수 있다. | |||
이 구조는 프로젝트별 문서, 팀별 문서, 제품별 매뉴얼, 버전별 문서 등을 정리할 때 유용하다. 또한 접근 제어 규칙도 네임스페이스 단위로 적용할 수 있어, 특정 팀만 특정 문서 묶음을 볼 수 있게 하거나, 일부 사용자는 읽기만 가능하게 하는 식의 구성이 가능하다. | |||
=== 변경 기록과 차이 보기 === | |||
도쿠위키는 위키 엔진답게 문서의 변경 기록을 저장하고, 이전 판과 현재 판의 차이를 확인할 수 있다. 문서가 잘못 수정되었거나 삭제되었을 때 이전 판을 확인하고 복구할 수 있으므로 협업 문서 작성에 유리하다. | |||
다만 변경 기록 역시 파일 기반으로 저장되므로, 문서와 변경 이력이 많아질수록 저장 공간 사용량이 늘어난다. 장기간 운영하는 위키라면 변경 기록 보존 정책, 백업 정책, 캐시 정리, 로그 정리 등을 함께 고려하는 것이 좋다. | |||
=== 접근 제어 목록 === | |||
도쿠위키는 접근 제어 목록, 즉 ACL 기능을 제공한다. 관리자는 사용자 또는 그룹별로 문서나 네임스페이스에 대한 읽기, 편집, 생성, 업로드, 삭제, 관리자 권한 등을 설정할 수 있다.<ref name="acl">[https://www.dokuwiki.org/acl DokuWiki ACL 문서]</ref> | |||
ACL은 도쿠위키를 개인 메모장이 아니라 팀 문서 시스템이나 사내 위키로 사용할 때 매우 중요하다. 예를 들어 전체 사용자는 공지 문서를 읽을 수 있지만, 편집은 관리자만 가능하게 할 수 있다. 개발팀 네임스페이스는 개발팀 사용자 그룹만 편집 가능하게 하고, 외부 공개 문서는 로그인하지 않은 사용자에게도 읽기 권한을 줄 수 있다. | |||
=== 인증 백엔드 === | |||
도쿠위키는 자체 사용자 관리뿐 아니라 다양한 인증 방식과 연동할 수 있다. 공식 문서에서는 인증 플러그인 구조를 통해 사용자 정보와 비밀번호 저장, 외부 인증 연동 등을 다룬다.<ref name="auth">[https://www.dokuwiki.org/auth DokuWiki 인증 문서]</ref> | |||
운영 환경에 따라 LDAP, Active Directory, OAuth 계열 인증, 외부 CMS 인증, 포럼 계정 연동 등을 플러그인으로 구성할 수 있다. 다만 인증 플러그인의 유지보수 상태와 도쿠위키 최신 버전 호환성은 반드시 확인해야 한다. 인증은 보안과 직결되므로 오래된 플러그인을 그대로 사용하는 것은 위험할 수 있다. | |||
=== 다양한 플러그인 === | |||
도쿠위키는 플러그인으로 기능을 확장할 수 있다. 플러그인은 [[XpressEngine|XE]]의 모듈 및 애드온, [[미디어위키]]의 확장 기능, [[워드프레스]]의 플러그인과 비슷한 역할을 한다. 공식 확장 기능 저장소에는 문법 확장, 인증 연동, 편집기 개선, 검색 개선, 표 기능 보강, 태그, 목차, 데이터 관리, 양식 생성, 내보내기, 다이어그램, 수식, 코드 하이라이트 등 다양한 플러그인이 등록되어 있다.<ref name="extensions">[https://www.dokuwiki.org/extensions DokuWiki 확장 기능 문서]</ref> | |||
플러그인은 도쿠위키의 강점이지만 동시에 관리 부담이 되기도 한다. 오래된 플러그인은 최신 PHP 버전에서 경고나 오류를 일으킬 수 있고, 보안 취약점이 생길 수도 있다. 따라서 플러그인을 설치할 때에는 최근 업데이트 여부, 호환 버전, 사용자 평가, 공식 저장소의 상태, GitHub 저장소의 이슈 현황 등을 확인하는 것이 좋다. | |||
=== 다양한 템플릿 === | |||
도쿠위키의 외형은 템플릿으로 변경할 수 있다. 템플릿은 일반적으로 다른 CMS의 테마와 비슷한 개념이다. 기본 템플릿만 사용해도 문서 위키로는 충분하지만, 사이드바, 반응형 디자인, 문서형 레이아웃, 기업 인트라넷 스타일, 블로그형 스타일 등을 원할 경우 별도 템플릿을 설치할 수 있다. | |||
템플릿은 단순히 색상과 모양만 바꾸는 요소가 아니다. 일부 템플릿은 사이드바 구성, 상단 메뉴, 문서 탐색, 목차 표시, 모바일 대응, 검색창 배치, 로그인 메뉴, 도구 버튼 배치까지 사용자 경험에 큰 영향을 준다. 따라서 장기 운영을 계획한다면 템플릿 선택도 중요하다. | |||
=== 가벼운 운영 구조 === | |||
도쿠위키는 일반적인 PHP 웹 호스팅 환경에서도 구동할 수 있다. 별도의 DBMS가 필요 없기 때문에 VPS나 공유 호스팅에서 부담이 적으며, 개인 서버나 사내 서버에서도 운영하기 쉽다. 문서량이 적거나 중간 규모인 환경에서는 매우 간단하고 안정적인 구성을 만들 수 있다. | |||
다만 문서 수가 매우 많고, 검색 요청이 많고, 첨부 파일과 변경 기록이 방대해지는 환경에서는 파일 기반 구조가 항상 유리하지는 않다. 파일 수가 지나치게 많아지면 백업, 동기화, 검색 색인, 권한 검사, 파일 시스템 I/O 측면에서 부담이 생길 수 있다. | |||
== 설치 사양 == | |||
2026년 기준 최신 안정판 계열을 기준으로 도쿠위키를 운영하려면 웹 서버와 PHP 실행 환경이 필요하다. 공식 요구사항 문서에서는 현재 안정판이 PHP 7.4 이상을 요구한다고 안내한다.<ref name="requirements">[https://www.dokuwiki.org/requirements DokuWiki 시스템 요구사항]</ref> | |||
기존 문서에 적혀 있던 “PHP 5.6 이상”이라는 설명은 오래된 도쿠위키 버전에는 해당할 수 있으나, 최신 안정판 기준으로는 더 이상 적절하지 않다. 특히 PHP 5.x 계열과 PHP 7.0, 7.1, 7.2, 7.3 계열은 현대적인 운영 환경에서 보안상 권장하기 어렵다. 도쿠위키 자체가 PHP 7.4 이상을 요구하더라도, 실제 운영에서는 가능하면 운영체제 배포판에서 보안 업데이트가 제공되는 PHP 8.x 계열을 사용하는 것이 좋다. | |||
=== 기본 요구사항 === | |||
{| class="wikitable" | |||
! 항목 !! 설명 | |||
|- | |||
| 웹 서버 || Apache, Nginx, Caddy, Lighttpd 등 PHP 실행이 가능한 웹 서버 | |||
|- | |||
| PHP || 최신 안정판 기준 PHP 7.4 이상 | |||
|- | |||
| PHP 확장 || 이미지 처리, XML 처리, 국제화, 압축, 세션, 파일 업로드 등에 필요한 확장 사용 가능 | |||
|- | |||
| 저장 공간 || 문서, 미디어 파일, 변경 기록, 캐시, 로그를 저장할 충분한 공간 | |||
|- | |||
| 파일 권한 || 웹 서버 프로세스가 필요한 디렉터리에 쓰기 가능해야 함 | |||
|- | |||
| DBMS|| 기본 설치에는 필요 없음 | |||
|} | |||
=== 권장 환경 === | |||
공식 최소 요구사항은 말 그대로 실행을 위한 최소 조건에 가깝다. 실제 운영에서는 다음과 같은 구성을 권장할 수 있다. | |||
{| class="wikitable" | |||
! 항목 !! 권장 내용 | |||
|- | |||
| PHP 버전 || 배포판에서 보안 업데이트가 제공되는 PHP 8.x 계열 | |||
|- | |||
| 웹 서버 || Apache 또는 Nginx | |||
|- | |||
| HTTPS || 공개망 운영 시 필수 | |||
|- | |||
| 백업 || 파일 단위 정기 백업 및 복구 테스트 | |||
|- | |||
| 권한 설정 || 데이터 디렉터리 직접 접근 차단 | |||
|- | |||
| 업데이트 || 코어, 플러그인, 템플릿 정기 업데이트 | |||
|- | |||
| 계정 보안 || 강력한 관리자 비밀번호, 필요 시 외부 인증 연동 | |||
|} | |||
== 설치 방법 == | |||
=== 공식 다운로드 파일을 이용한 설치 === | |||
가장 기본적인 설치 방식은 공식 다운로드 페이지에서 안정판을 내려받아 웹 서버에 배치하는 것이다. 도쿠위키 다운로드 페이지에서는 최신 버전을 내려받을 수 있으며, 언어, 포함 플러그인, 버전 등을 선택할 수 있다.<ref name="download">[https://download.dokuwiki.org/ DokuWiki 다운로드 페이지]</ref> | |||
일반적인 설치 절차는 다음과 같다. | |||
# 공식 다운로드 페이지에서 최신 안정판 압축 파일을 내려받는다. | |||
# 웹 서버의 문서 루트 또는 원하는 하위 디렉터리에 압축을 푼다. | |||
# 웹 서버 사용자가 필요한 디렉터리에 쓰기 권한을 갖도록 설정한다. | |||
# 브라우저에서 <code>install.php</code>에 접속한다. | |||
# 위키 이름, 관리자 계정, 라이선스 표시, 초기 접근 정책 등을 설정한다. | |||
# 설치가 끝난 뒤 <code>install.php</code>를 삭제하거나 접근할 수 없게 처리한다. | |||
# 관리자 화면에서 기본 설정, ACL, 플러그인, 템플릿, 사용자 정책을 조정한다. | |||
=== 웹 다운로더를 이용한 설치 === | |||
도쿠위키는 호스팅 환경에서 더 쉽게 설치할 수 있도록 다운로더 스크립트도 제공한다. 이 방식은 사용자가 직접 전체 압축 파일을 내려받고 업로드하는 대신, 작은 PHP 스크립트를 서버에 올린 뒤 필요한 파일을 서버에서 내려받게 하는 방식이다.<ref name="downloader">[https://github.com/splitbrain/dokuwiki-downloader DokuWiki Downloader 저장소]</ref> | |||
다만 다운로더 방식은 서버가 외부 네트워크에 접근할 수 있어야 하며, 설치 후에는 해당 스크립트를 반드시 제거해야 한다. 설치 도구가 서버에 남아 있으면 보안상 위험할 수 있다. | |||
=== Docker를 이용한 설치 === | |||
도쿠위키는 Docker 환경에서도 운영할 수 있다. 공식 Docker 이미지는 PHP Apache 기반 이미지를 토대로 도쿠위키 설치 환경을 제공하며, 일반적으로 SSL 종료와 인증 처리는 리버스 프록시 앞단에서 담당하는 구성이 권장된다.<ref name="docker">[https://hub.docker.com/r/dokuwiki/dokuwiki DokuWiki Docker 이미지]</ref> | |||
Docker 운영의 장점은 배포와 이전이 쉽고, 컨테이너 이미지와 볼륨을 분리하여 관리할 수 있다는 점이다. 그러나 Docker, 네트워크, 볼륨, 권한, 리버스 프록시, 백업 구조를 이해하지 못한 상태에서 무리하게 운영하면 오히려 문제 해결이 어려워질 수 있다. | |||
=== 리눅스 배포판 패키지를 이용한 설치 === | |||
일부 리눅스 배포판은 도쿠위키 패키지를 제공한다. 이 방식은 패키지 관리자를 통해 설치와 보안 업데이트를 받을 수 있다는 장점이 있다. 그러나 배포판 패키지는 공식 최신판보다 늦게 제공되는 경우가 있으며, 디렉터리 구조가 공식 압축 파일 설치와 다를 수 있다. | |||
따라서 배포판 패키지를 사용할 때에는 현재 제공되는 도쿠위키 버전, PHP 버전, 보안 패치 백포트 여부, 플러그인 설치 경로, 웹 서버 설정 방식을 확인해야 한다. | |||
== 기본 구성 요소 == | |||
=== 문서 파일 === | |||
도쿠위키의 문서는 일반 텍스트 파일로 저장된다. 파일 자체를 텍스트 편집기로 열어도 내용을 어느 정도 읽을 수 있으며, 이 점은 장기 보존과 데이터 이동 측면에서 장점이 된다. DB에 종속되지 않기 때문에 특정 DBMS의 덤프 형식이나 스키마에 묶이지 않는다. | |||
=== 미디어 파일 === | |||
이미지, 문서 파일, 압축 파일 등은 미디어 관리자를 통해 업로드할 수 있다. 미디어 파일 역시 파일 시스템에 저장된다. 위키 문서에서 이미지를 삽입하거나 첨부 파일로 연결할 수 있으며, 권한 설정에 따라 업로드 가능 여부를 제어할 수 있다. | |||
=== 설정 파일 === | |||
도쿠위키의 주요 설정은 `conf` 디렉터리 아래의 설정 파일로 관리된다. 관리자 화면에서 변경한 설정도 파일에 기록된다. 이 구조는 설정 백업과 이전을 쉽게 하지만, 동시에 설정 파일이 외부에 노출되지 않도록 웹 서버 설정을 올바르게 해야 한다. | |||
=== 캐시와 색인 === | |||
도쿠위키는 성능 향상을 위해 캐시와 검색 색인을 사용한다. 문서가 많아질수록 검색 색인과 캐시 파일의 관리가 중요해진다. 캐시는 삭제해도 다시 생성될 수 있는 경우가 많지만, 운영 중 무작정 삭제하면 일시적인 성능 저하나 재색인 시간이 발생할 수 있다. | |||
== 장점 == | |||
=== 설치와 이전이 쉽다 === | |||
도쿠위키는 별도의 DBMS가 필요 없으므로 설치 절차가 짧다. 서버 이전도 비교적 단순하다. 도쿠위키 파일과 데이터 디렉터리를 새 서버에 복사하고, PHP와 웹 서버 설정을 맞추면 이전할 수 있다. DB 덤프를 만들고, 문자셋을 맞추고, 사용자 권한을 재설정하는 과정을 줄일 수 있다. | |||
=== 백업이 단순하다 === | |||
도쿠위키는 파일 기반 구조 덕분에 백업 전략을 세우기 쉽다. 문서, 미디어, 설정, 사용자 정보, ACL, 플러그인, 템플릿을 파일 단위로 백업할 수 있다. 특히 소규모 위키에서는 전체 디렉터리를 압축하여 보관하는 방식만으로도 충분한 백업이 가능하다. | |||
다만 백업이 “쉽다”는 것이 “아무렇게나 복사해도 된다”는 뜻은 아니다. 운영 중인 서버에서 백업할 때에는 파일이 쓰이는 도중 복사되는 문제, 권한 정보 보존 여부, 심볼릭 링크, 제외해야 할 캐시 파일, 개인정보 포함 여부 등을 고려해야 한다. | |||
=== 소규모 위키에서 빠르고 가볍다 === | |||
문서 수가 많지 않고 동시 접속자가 적은 환경에서는 도쿠위키가 매우 가볍게 동작한다. DB 연결 오버헤드가 없고 구조가 단순하기 때문에 개인 서버, 라즈베리 파이, 소형 VPS, 사내 인트라넷 서버에서도 부담이 적다. | |||
=== 문서 파일의 장기 보존성이 좋다 === | |||
문서가 일반 텍스트 파일로 저장되기 때문에, 도쿠위키 자체가 없어도 원문 내용을 비교적 쉽게 읽을 수 있다. 이는 장기간 보존해야 하는 기술 문서나 연구 기록에 유리하다. DB 기반 시스템에서는 소프트웨어와 DB 스키마가 사라지면 데이터를 해석하기 어려워질 수 있지만, 도쿠위키의 텍스트 파일은 그런 위험이 상대적으로 작다. | |||
=== 관리자가 이해하기 쉬운 구조 === | |||
도쿠위키는 복잡한 서비스 스택을 요구하지 않는다. PHP, 웹 서버, 파일 권한, 백업 구조만 이해해도 기본 운영이 가능하다. 이 점은 전담 인프라 인력이 없는 소규모 조직에서 큰 장점이다. | |||
=== 플러그인과 템플릿으로 확장 가능하다 === | |||
도쿠위키는 기본 기능만으로도 문서 위키를 만들 수 있지만, 플러그인과 템플릿을 이용하면 상당히 다양한 기능을 추가할 수 있다. 예를 들어 코드 하이라이트, 태그, 목차, 표 확장, 폼 입력, 데이터 표, 문서 포함, 다이어그램, 인증 연동, 내보내기 기능 등을 추가할 수 있다. | |||
=== 접근 제어가 기본 제공된다 === | |||
도쿠위키는 ACL을 통해 문서와 네임스페이스별 권한을 설정할 수 있다. 공개 위키뿐 아니라 비공개 팀 위키, 부서별 문서 시스템, 고객별 매뉴얼 사이트처럼 권한 분리가 필요한 환경에도 사용할 수 있다. | |||
=== 유지보수가 비교적 쉽다 === | |||
도쿠위키는 구조가 단순하고 관리자 화면에서 많은 설정을 처리할 수 있다. 플러그인 설치와 템플릿 변경도 관리자 화면에서 가능한 경우가 많다. 또한 파일 기반 구조 덕분에 문제가 생겼을 때 플러그인 디렉터리를 제거하거나 설정 파일을 되돌리는 식의 응급 조치가 비교적 쉽다. | |||
== 단점 == | |||
=== 대규모 운영에는 한계가 있다 === | |||
도쿠위키는 파일 기반 위키 엔진이므로 문서 수, 첨부 파일 수, 변경 기록, 사용자 수, 검색 요청이 매우 많아지면 성능과 관리 측면에서 한계가 드러날 수 있다. 파일 수가 많아질수록 백업 시간이 길어지고, 파일 시스템 탐색 비용이 증가하며, 검색 색인 관리도 부담이 될 수 있다. | |||
대형 공개 위키, 수십만 문서 이상의 위키, 매우 많은 동시 접속자를 처리해야 하는 위키라면 [[미디어위키]]나 다른 대규모 운영에 적합한 시스템을 검토하는 것이 좋다. | |||
=== 현대적인 편집 경험이 부족할 수 있다 === | |||
도쿠위키의 기본 편집 방식은 위키 문법 기반이다. 이는 텍스트 중심 문서 작성에는 장점이지만, [[WYSIWYG]] 편집기에 익숙한 사용자에게는 불편할 수 있다. 문서를 직접 보고 바로 수정하는 현대적인 노션형 편집 경험과 비교하면 기본 UI가 오래되어 보일 수 있다. | |||
플러그인을 통해 편집 편의성을 높일 수는 있지만, 플러그인 호환성이나 유지보수 상태를 확인해야 한다. 모든 사용자가 위키 문법에 익숙하지 않은 조직에서는 교육 비용이 발생할 수 있다. | |||
=== 플러그인 품질이 균일하지 않다 === | |||
도쿠위키 생태계에는 다양한 플러그인이 있지만, 모든 플러그인이 활발하게 유지보수되는 것은 아니다. 오래된 플러그인은 최신 도쿠위키나 최신 PHP에서 오류를 일으킬 수 있다. 특히 인증, 업로드, HTML 삽입, 외부 서비스 연동, 파일 처리와 관련된 플러그인은 보안 위험을 충분히 검토해야 한다. | |||
=== 파일 권한 설정이 중요하다 === | |||
도쿠위키는 파일에 데이터를 저장하므로 웹 서버 권한 설정이 매우 중요하다. 데이터 디렉터리, 설정 파일, 사용자 파일, ACL 파일 등이 외부에서 직접 내려받아질 수 있으면 심각한 보안 문제가 된다. 웹 서버 설정이 잘못되면 DB 기반 시스템보다 오히려 민감 파일 노출 위험이 커질 수 있다. | |||
=== 백업은 쉽지만 규모가 커지면 오래 걸릴 수 있다 === | |||
소규모 위키에서는 폴더 전체 백업이 매우 쉽다. 그러나 문서, 미디어, 변경 기록, 캐시, 색인 파일이 많아지면 파일 수가 폭증할 수 있다. 파일 하나하나를 복사하는 백업 방식은 DB 덤프 하나를 만드는 방식보다 오래 걸릴 수 있으며, 원격 동기화에서도 많은 파일 수가 부담이 될 수 있다. | |||
=== DB 기반 기능을 기대하기 어렵다 === | |||
도쿠위키는 기본적으로 관계형 데이터베이스를 사용하지 않기 때문에, 복잡한 질의, 대규모 통계, 구조화 데이터 분석, 다중 조건 검색, 정교한 보고서 생성 같은 기능은 기본 구조와 잘 맞지 않을 수 있다. 일부 플러그인이 구조화 데이터를 지원하지만, DB 기반 CMS나 전문 지식 관리 시스템과 같은 수준의 데이터 모델링을 기대하기는 어렵다. | |||
== 미디어위키와의 비교 == | |||
도쿠위키는 종종 [[미디어위키]]와 비교된다. 둘 다 PHP 기반 위키 엔진이고, 위키 문서를 작성하고 관리한다는 점은 같지만 설계 철학과 적합한 사용처가 다르다. | |||
{| class="wikitable" | |||
! 항목 !! 도쿠위키 !! 미디어위키 | |||
|- | |||
| 저장 구조 || 파일 기반 || DBMS 기반 | |||
|- | |||
| 설치 난도 || 비교적 낮음 || DB 설정 필요 | |||
|- | |||
| 대규모 공개 위키 || 제한적 || 강점 | |||
|- | |||
| 소규모 팀 문서 || 강점 || 가능하나 다소 무거울 수 있음 | |||
|- | |||
| 백업 || 파일 백업 중심 || 파일과 DB 모두 고려 | |||
|- | |||
| 확장 생태계 || 플러그인 다양, 규모는 중간 || 매우 큰 확장 생태계 | |||
|- | |||
| 문서 구조 || 네임스페이스 중심 || 네임스페이스와 카테고리, 템플릿 등 고도화 | |||
|- | |||
| 편집 문법 || 도쿠위키 문법 || 미디어위키 문법 | |||
|- | |||
| 대표 용도 || 내부 문서, 매뉴얼, 지식 베이스 || 대형 공개 위키, 백과사전형 사이트 | |||
|} | |||
도쿠위키는 “간단한 설치와 유지보수”가 중요한 경우에 적합하다. 미디어위키는 “대규모 협업, 방대한 확장 기능, 공개 위키 운영”이 중요한 경우에 적합하다. 따라서 둘 중 하나가 절대적으로 우월하다기보다는 운영 목적에 따라 선택하는 것이 맞다. | |||
== 주요 기능 == | |||
=== 문서 작성 === | |||
도쿠위키의 핵심 기능은 문서 작성과 편집이다. 문서는 제목 구조를 가질 수 있으며, 내부 링크와 외부 링크, 목록, 표, 이미지, 코드 블록, 각주 등을 포함할 수 있다. 문서를 저장하면 변경 기록이 남고, 이전 판과 비교할 수 있다. | |||
=== 내부 링크 === | |||
도쿠위키에서는 문서 이름을 이용해 내부 링크를 만들 수 있다. 아직 존재하지 않는 문서로 링크를 걸면, 해당 링크를 통해 새 문서를 만들 수 있다. 이 방식은 위키 문서의 자연스러운 확장에 유리하다. | |||
=== 네임스페이스 === | |||
네임스페이스는 문서의 계층 구조를 만드는 기능이다. 프로젝트, 부서, 제품, 버전, 고객, 주제별로 문서를 분리할 수 있다. 네임스페이스를 잘 설계하면 문서가 많아져도 관리하기 쉽다. | |||
=== 미디어 관리 === | |||
미디어 관리자는 이미지와 파일 업로드, 파일 선택, 문서 삽입을 지원한다. 문서형 위키에서는 스크린샷, 다이어그램, PDF, 압축 파일, 샘플 코드 등을 첨부해야 하는 경우가 많으므로 미디어 관리 기능은 중요하다. | |||
=== 검색 === | |||
도쿠위키는 자체 검색 기능을 제공한다. 문서 수가 적은 환경에서는 충분히 유용하지만, 대규모 문서 검색에서는 전문 검색 엔진과 비교해 한계가 있을 수 있다. 검색 품질을 높이기 위해 플러그인이나 외부 검색 연동을 검토할 수 있다. | |||
=== 변경 기록 === | |||
문서마다 변경 이력이 저장된다. 누가 언제 어떤 내용을 바꾸었는지 확인할 수 있고, 필요하면 이전 판으로 되돌릴 수 있다. 팀 문서에서는 이 기능이 매우 중요하다. | |||
=== 차이 보기 === | |||
도쿠위키는 두 판 사이의 차이를 표시할 수 있다. 문서 수정 내역을 검토하거나 잘못된 변경을 찾아낼 때 유용하다. | |||
=== 사용자 관리 === | |||
기본 사용자 관리 기능을 통해 계정을 만들고 그룹을 지정할 수 있다. 사이트 운영 방식에 따라 공개 가입, 관리자 승인, 외부 인증 연동 등을 선택할 수 있다. | |||
=== 관리자 화면 === | |||
관리자 화면에서는 설정 변경, 사용자 관리, ACL 설정, 확장 기능 관리 등을 할 수 있다. 도쿠위키는 단순한 구조에도 불구하고 기본적인 관리 인터페이스를 제공하므로, 서버 파일을 직접 수정하지 않고도 많은 설정을 변경할 수 있다. | |||
== 보안 == | |||
=== 설치 후 install.php 처리 === | |||
도쿠위키 설치가 끝난 뒤에는 설치 스크립트에 접근할 수 없게 해야 한다. 설치 스크립트가 남아 있으면 악의적인 사용자가 설정을 변경하거나 설치 과정을 악용할 수 있다. | |||
=== 데이터 디렉터리 보호 === | |||
도쿠위키의 데이터는 파일로 저장된다. 따라서 `data`, `conf`, `bin`, `inc` 같은 주요 디렉터리에 외부 사용자가 직접 접근하지 못하도록 웹 서버 설정을 확인해야 한다. Apache 환경에서는 `.htaccess` 설정이 도움이 될 수 있으나, Nginx 환경에서는 별도 location 차단 규칙을 직접 작성해야 할 수 있다. | |||
=== 관리자 계정 보호 === | |||
관리자 계정은 강력한 비밀번호를 사용해야 하며, 가능하면 재사용된 비밀번호를 피해야 한다. 공개망에서 운영하는 경우 HTTPS는 사실상 필수이다. 외부 인증을 사용하는 경우에도 관리자 그룹 매핑이 정확한지 확인해야 한다. | |||
=== 플러그인 보안 === | |||
플러그인은 도쿠위키 기능을 확장하지만, 동시에 공격 표면을 넓힐 수 있다. 특히 HTML 삽입, 파일 업로드, 외부 URL 가져오기, 인증 연동, 스크립트 실행, 데이터베이스 연결 기능을 제공하는 플러그인은 주의해야 한다. 설치 전에는 최근 업데이트 날짜와 호환 버전을 확인하고, 사용하지 않는 플러그인은 비활성화하거나 삭제하는 것이 좋다. | |||
=== 업데이트 === | |||
도쿠위키 코어와 플러그인, 템플릿은 정기적으로 업데이트해야 한다. 2024년과 2025년 계열에서도 XSS 취약점 수정 릴리스가 있었으므로, 오래된 버전을 계속 사용하는 것은 권장되지 않는다.<ref name="github-releases"/> | |||
=== 백업과 복구 테스트 === | |||
보안의 마지막 방어선은 백업이다. 파일이 손상되거나 서버가 침해되거나 관리자가 실수로 문서를 삭제했을 때 복구할 수 있어야 한다. 백업은 만드는 것보다 복구 테스트가 더 중요하다. 실제로 복구가 가능한지 확인하지 않은 백업은 신뢰하기 어렵다. | |||
== 업데이트와 유지보수 == | |||
도쿠위키 유지보수에서 중요한 것은 코어 업데이트, 플러그인 업데이트, 템플릿 업데이트, PHP 버전 관리, 백업, 권한 점검이다. | |||
=== 코어 업데이트 === | |||
도쿠위키 코어는 공식 릴리스를 기준으로 업데이트하는 것이 좋다. 업데이트 전에는 반드시 전체 백업을 만들고, 사용 중인 플러그인과 템플릿이 새 버전과 호환되는지 확인해야 한다. 특히 PHP 최소 요구사항이 바뀌는 릴리스에서는 서버의 PHP 버전도 함께 확인해야 한다. | |||
=== 플러그인 업데이트 === | |||
관리자 화면의 확장 관리자에서 플러그인 업데이트를 확인할 수 있다. 다만 업무용 위키라면 운영 서버에서 바로 업데이트하기보다 테스트 환경에서 먼저 확인하는 것이 좋다. 문법 플러그인 하나가 깨져도 다수의 문서 렌더링에 영향을 줄 수 있다. | |||
=== 템플릿 업데이트 === | |||
템플릿은 외형뿐 아니라 페이지 도구, 로그인 링크, 관리자 메뉴 접근성, 모바일 화면에도 영향을 줄 수 있다. 오래된 템플릿은 최신 도쿠위키의 UI 구조나 PHP 버전과 맞지 않을 수 있으므로 정기적으로 확인해야 한다. | |||
=== PHP 업데이트 === | |||
도쿠위키는 PHP 기반이므로 PHP 버전의 지원 상태가 중요하다. 운영체제 배포판에서 더 이상 보안 업데이트를 제공하지 않는 PHP 버전을 사용하면 웹 애플리케이션 전체가 위험해진다. 도쿠위키 자체 요구사항뿐 아니라 운영체제의 PHP 보안 지원 기간도 확인해야 한다. | |||
== 백업 전략 == | |||
도쿠위키의 백업 대상은 일반적으로 다음과 같다. | |||
{| class="wikitable" | |||
! 대상 !! 설명 | |||
|- | |||
| <code>data/pages</code> || 문서 본문 | |||
|- | |||
| <code>data/media</code> || 업로드된 미디어 파일 | |||
|- | |||
| <code>data/meta</code> || 문서 메타데이터 | |||
|- | |||
| <code>data/attic</code> || 이전 판 저장 데이터 | |||
|- | |||
| <code>conf</code> || 설정, 사용자, ACL 관련 파일 | |||
|- | |||
| <code>lib/plugins</code> || 설치된 플러그인 | |||
|- | |||
| <code>lib/tpl</code> || 설치된 템플릿 | |||
|- | |||
| 웹 서버 설정 || Apache, Nginx, 리버스 프록시 설정 | |||
|- | |||
| SSL 인증서 설정 || HTTPS 운영 시 필요 | |||
|} | |||
소규모 위키는 전체 디렉터리를 압축하여 백업하는 방식으로 충분할 수 있다. 그러나 큰 위키는 증분 백업, 원격 백업, 스냅샷, 보관 주기, 암호화, 무결성 검증을 고려해야 한다. 특히 개인정보나 내부 문서가 포함된 위키라면 백업 파일 자체도 민감 정보로 취급해야 한다. | |||
== 운영 사례 == | |||
=== 개인 지식 베이스 === | |||
도쿠위키는 개인 지식 베이스로 사용하기 좋다. 서버 한 대에 설치해 기술 메모, 독서 기록, 명령어 정리, 프로젝트 노트, 설정 문서 등을 저장할 수 있다. 파일 기반이므로 백업과 이전도 쉽다. | |||
=== 사내 문서 시스템 === | |||
소규모 기업이나 팀에서는 도쿠위키를 사내 문서 시스템으로 사용할 수 있다. 설치가 간단하고 ACL을 제공하므로 부서별 문서, 개발 문서, 운영 매뉴얼, 장애 대응 문서, 인수인계 문서 등을 정리하기 좋다. | |||
=== 프로젝트 문서 === | |||
개발 프로젝트에서는 설치 방법, API 문서, 배포 절차, 장애 처리 절차, 코드 규칙, 회의록 등을 저장할 수 있다. 네임스페이스를 프로젝트별로 나누면 관리하기 쉽다. | |||
=== 교육 기관과 연구실 === | |||
연구실, 동아리, 학과 내부 문서에도 적합하다. 장비 사용법, 실험 절차, 서버 계정 안내, 논문 정리, 회의록, 운영 규칙 등을 정리할 수 있다. | |||
=== 공개 매뉴얼 사이트 === | |||
도쿠위키는 공개 매뉴얼 사이트로도 사용할 수 있다. 다만 공개 사이트로 운영할 경우 검색 엔진 최적화, 스팸 방지, 캐시, CDN, 보안 업데이트, 접근 제어, 문의 대응 등을 함께 고려해야 한다. | |||
== 다른 CMS와의 연동 == | |||
도쿠위키는 구조가 단순하고 인증 플러그인 체계가 있어 다른 CMS나 웹 애플리케이션과 연동하기 비교적 수월한 편이다. 과거에는 [[XpressEngine|XE]], [[그누보드]]와 연동하는 사례가 공유되기도 했다. 다만 오래된 연동 문서는 최신 PHP, 최신 도쿠위키, 최신 CMS 버전과 맞지 않을 가능성이 크다. | |||
연동을 고려할 때에는 다음 사항을 확인해야 한다. | |||
# 해당 CMS의 현재 버전과 도쿠위키 최신 버전이 호환되는가? | |||
# 인증 연동 플러그인이 현재도 유지보수되는가? | |||
# 비밀번호 해시 방식이 안전한가? | |||
# 사용자 그룹과 도쿠위키 ACL을 어떻게 매핑할 것인가? | |||
# 로그아웃, 세션 만료, 계정 삭제, 권한 변경이 양쪽 시스템에 올바르게 반영되는가? | |||
# 보안 취약점이 있는 오래된 연동 코드를 사용하고 있지는 않은가? | |||
단순히 “예전에 연동 사례가 있었다”는 이유만으로 최신 운영 환경에 적용해서는 안 된다. 특히 회원 정보와 인증을 다루는 연동은 보안 검토가 필수이다. | |||
== 도쿠위키가 적합한 경우 == | |||
도쿠위키는 다음과 같은 상황에 적합하다. | |||
* 별도의 DBMS를 설치하고 관리하고 싶지 않은 경우 | |||
* 소규모 팀 문서나 개인 문서 위키가 필요한 경우 | |||
* 백업과 이전이 쉬운 문서 시스템이 필요한 경우 | |||
* 텍스트 파일 기반 저장 구조를 선호하는 경우 | |||
* 복잡한 기능보다 안정성과 단순성을 중시하는 경우 | |||
* 내부 매뉴얼, 운영 문서, 기술 문서를 체계적으로 정리하려는 경우 | |||
* 웹 호스팅 환경이 제한적이어서 DB 사용이 어렵거나 번거로운 경우 | |||
* 문서의 장기 보존성과 원본 접근성을 중요하게 보는 경우 | |||
== 도쿠위키가 적합하지 않을 수 있는 경우 == | |||
다음과 같은 상황에서는 도쿠위키보다 다른 솔루션이 더 적합할 수 있다. | |||
* 위키백과급 대규모 공개 위키를 운영하려는 경우 | |||
* 매우 많은 동시 접속자와 문서를 처리해야 하는 경우 | |||
* WYSIWYG 중심의 현대적인 문서 편집기를 필수로 요구하는 경우 | |||
* 마크다운 기반 워크플로만 허용해야 하는 경우 | |||
* DB 기반의 복잡한 질의와 통계가 필요한 경우 | |||
* 정교한 워크플로, 승인 절차, 전자결재, 문서 수명주기 관리가 필요한 경우 | |||
* 플러그인 유지보수 상태를 직접 점검하기 어려운 경우 | |||
* 기업용 통합 검색, 감사 로그, 세밀한 권한 보고서가 필수인 경우 | |||
== 설치 후 점검 목록 == | |||
도쿠위키를 설치한 뒤에는 다음 항목을 점검하는 것이 좋다. | |||
{| class="wikitable" | |||
! 점검 항목 !! 설명 | |||
|- | |||
| `install.php` 제거 || 설치 완료 후 설치 파일이 남아 있지 않은지 확인 | |||
|- | |||
| HTTPS 적용 || 공개망 운영 시 TLS 인증서 적용 | |||
|- | |||
| 데이터 디렉터리 접근 차단 || `data`, `conf` 등 민감 디렉터리 직접 접근 방지 | |||
|- | |||
| 관리자 비밀번호 || 충분히 긴 비밀번호 사용 | |||
|- | |||
| ACL 정책 || 공개, 로그인 사용자, 그룹별 권한 확인 | |||
|- | |||
| 사용자 가입 정책 || 공개 가입 허용 여부 확인 | |||
|- | |||
| 플러그인 상태 || 불필요한 플러그인 제거 | |||
|- | |||
| 템플릿 호환성 || 모바일과 최신 PHP 호환성 확인 | |||
|- | |||
| 백업 자동화 || 정기 백업 설정 | |||
|- | |||
| 복구 테스트 || 백업 파일로 실제 복구 가능한지 확인 | |||
|- | |||
| 업데이트 계획 || 코어와 플러그인 업데이트 주기 설정 | |||
|} | |||
== 평가 == | |||
도쿠위키는 단순성과 실용성을 강점으로 하는 위키 엔진이다. DBMS 없이 동작하는 구조는 설치와 유지보수를 크게 단순화하며, 문서가 텍스트 파일로 남는다는 점은 장기 보존과 이전성 측면에서 큰 장점이다. 특히 개인 위키, 소규모 팀 문서, 기술 매뉴얼, 인트라넷 문서 시스템에는 여전히 매력적인 선택지이다. | |||
반면 대규모 공개 위키나 현대적인 협업 문서 플랫폼을 기대한다면 한계가 있다. 기본 UI와 편집 경험은 최신 노션형 문서 도구와 비교하면 보수적이며, 플러그인 품질도 균일하지 않다. 또한 파일 기반 구조는 소규모에서는 장점이지만, 매우 큰 규모에서는 백업과 검색, 파일 I/O 측면에서 부담이 될 수 있다. | |||
따라서 도쿠위키를 선택할 때에는 “DB가 없어서 무조건 좋다”거나 “오래된 UI라서 무조건 나쁘다”는 식으로 판단하기보다, 운영 목적과 규모를 기준으로 평가해야 한다. 간단하고 오래 유지할 수 있는 문서 위키가 필요하다면 도쿠위키는 여전히 좋은 선택이 될 수 있다. 그러나 대규모 협업, 고급 권한 관리, 풍부한 시각적 편집 경험, 복잡한 통계 기능이 필요하다면 미디어위키, Wiki.js, BookStack, Outline, Confluence, XWiki 등 다른 도구와 비교해 보는 것이 좋다. | |||
== 같이 보기 == | |||
* [[위키 엔진]] | |||
* [[미디어위키]] | |||
* [[PHP]] | |||
* [[MySQL]] | |||
* [[CMS]] | |||
* [[오픈 소스]] | |||
* [[지식 베이스]] | |||
* [[마크다운]] | |||
* [[WYSIWYG]] | |||
* [[XpressEngine]] | |||
* [[그누보드]] | |||
== 외부 링크 == | |||
* [https://www.dokuwiki.org/dokuwiki 도쿠위키 공식 홈페이지] | |||
* [https://download.dokuwiki.org/ 도쿠위키 공식 다운로드] | |||
* [https://github.com/dokuwiki/dokuwiki 도쿠위키 GitHub 저장소] | |||
* [https://www.dokuwiki.org/manual 도쿠위키 공식 매뉴얼] | |||
* [https://www.dokuwiki.org/requirements 도쿠위키 시스템 요구사항] | |||
* [https://www.dokuwiki.org/extensions 도쿠위키 확장 기능] | |||
* [https://www.dokuwiki.org/plugins 도쿠위키 플러그인] | |||
* [https://www.dokuwiki.org/templates 도쿠위키 템플릿] | |||
* [https://www.dokuwiki.org/acl 도쿠위키 접근 제어 문서] | |||
* [https://www.dokuwiki.org/auth 도쿠위키 인증 문서] | |||
* [https://www.dokuwiki.org/wiki:syntax 도쿠위키 문법 문서] | |||
* [https://www.dokuwiki.org/changes 도쿠위키 변경 기록] | |||
== 각주 == | |||
<references /> | |||
2026년 6월 16일 (화) 15:57 기준 최신판
| 미디어위키 문법 | |||
|---|---|---|---|
| 미디어위키 | 리버티 엔진 | ||
| 나무위키 문법 | |||
| the seed | openNAMU | 나무마크 (확장기능) | PressDo |
| 기타 문법을 사용하는 엔진들 | |||
| 도쿠위키 | 모니위키 | ||
- “ The DokuWiki Open Source Wiki Engine
” — 깃허브 엔진 저장소 설명
도쿠위키 공식 홈페이지, 깃허브 도쿠위키 저장소, 도쿠위키 다운로드 페이지
개요[편집 / 원본 편집]
도쿠위키 또는 DokuWiki는 PHP로 작성된 오픈 소스 위키 엔진이다. 가장 큰 특징은 MySQL, MariaDB, PostgreSQL과 같은 별도의 관계형 데이터베이스 관리 시스템을 필수 구성 요소로 요구하지 않는다는 점이다. 일반적인 위키 엔진이 문서, 사용자 정보, 변경 기록, 미디어 메타데이터 등을 DBMS에 저장하는 것과 달리, 도쿠위키는 문서와 설정 정보를 주로 파일 시스템에 저장한다. 이 때문에 설치와 이전, 백업, 복구가 비교적 단순하며, 소규모 개인 위키, 팀 내부 문서, 프로젝트 문서, 매뉴얼, 지식 베이스, 인트라넷 문서 시스템 등에 자주 사용된다.[1]
도쿠위키는 본래 문서화를 목적으로 설계된 위키 엔진이다. 이름의 “Doku” 역시 독일어로 문서 또는 문서화를 뜻하는 “Dokumentation”에서 유래한 것으로 알려져 있다. 실제로 도쿠위키는 대규모 공개 백과사전보다는 개발팀, 연구실, 소규모 기업, 학교, 동아리, 개인 서버 운영자처럼 지속적으로 정리해야 할 문서가 있는 사용자층에 잘 맞는다. 복잡한 DB 설정 없이 웹 서버와 PHP 실행 환경만 갖추면 운영할 수 있으며, 기본 문법 또한 비교적 읽기 쉬운 편이어서 위키 시스템을 처음 접하는 사용자도 적응하기 쉽다.
도쿠위키는 미디어위키와 같은 대형 위키 엔진에 비해 구조가 단순하다. 반면 미디어위키가 갖는 거대한 생태계, 방대한 확장 기능, 대규모 트래픽 대응 구조, 고도화된 권한 모델과 비교하면 기능적으로는 더 단정하고 가벼운 방향에 가깝다. 따라서 도쿠위키는 “최대한 많은 기능을 가진 위키”라기보다는 “설치와 유지보수가 간단하고, 문서 파일을 직접 다루기 쉬운 위키”로 보는 것이 적절하다.
기본 정보[편집 / 원본 편집]
| 항목 | 내용 |
|---|---|
| 이름 | DokuWiki, 도쿠위키 |
| 종류 | 위키 엔진, 문서화 도구, 지식 베이스 소프트웨어 |
| 주요 구현 언어 | PHP |
| 저장 방식 | 플랫 파일 기반 저장 구조 |
| 데이터베이스 필요 여부 | 별도 DBMS 불필요 |
| 라이선스 | GNU General Public License v2 계열[2] |
| 주요 용도 | 내부 문서, 기술 문서, 프로젝트 문서, 개인 지식 베이스, 인트라넷 위키, 매뉴얼 |
| 공식 홈페이지 | dokuwiki.org |
| 공식 다운로드 | download.dokuwiki.org |
| 공식 저장소 | github.com/dokuwiki/dokuwiki |
| 최신 안정판 | 2025-05-14b “Librarian” 계열[3] |
역사[편집 / 원본 편집]
도쿠위키는 2004년경 Andreas Gohr에 의해 시작된 위키 엔진이다. 초기부터 “문서화에 적합한 간단한 위키”라는 방향성을 가지고 개발되었으며, 시간이 지나면서 플러그인 구조, 템플릿 구조, 접근 제어, 인증 백엔드, 미디어 관리, 변경 기록, 검색 기능 등을 갖춘 범용 위키 엔진으로 발전하였다.[4]
도쿠위키의 개발 방향은 처음부터 미디어위키와 다소 달랐다. 미디어위키는 위키백과와 같은 대형 공개 협업 백과사전 운영에 적합한 구조를 갖고 성장한 반면, 도쿠위키는 문서 관리와 유지보수의 편의성에 더 큰 비중을 둔다. 별도의 DBMS 없이 문서를 파일로 저장하는 구조, 읽기 쉬운 문법, 간단한 설치 절차, 관리자 친화적인 백업 구조는 이러한 방향성에서 비롯된 특징이다.
릴리스명은 오래전부터 고유한 코드명을 사용하는 경우가 많다. 예를 들어 2024년 계열은 “Kaos”, 2025년 계열은 “Librarian”이라는 코드명을 사용하였다. 2024년 “Kaos” 계열에서는 PHP 7.4 이상 요구가 명확해졌고, 2025년 “Librarian” 계열에서는 여러 개선과 보안 수정이 이어졌다.[5]
특징[편집 / 원본 편집]
데이터베이스가 필요 없는 구조[편집 / 원본 편집]
도쿠위키의 가장 대표적인 특징은 데이터베이스가 필요 없다는 점이다. 문서 내용은 일반 텍스트 파일로 저장되며, 미디어 파일은 파일 시스템에 저장된다. 설정 파일, 사용자 정보, 접근 제어 규칙 역시 파일 기반으로 관리되는 경우가 많다. 이 구조 덕분에 서버 이전이나 백업을 할 때 DB 덤프와 복원 절차를 별도로 거치지 않아도 되는 경우가 많다.
예를 들어 일반적인 DB 기반 CMS에서는 백업 시 웹 루트 파일과 데이터베이스를 모두 백업해야 한다. 반면 도쿠위키는 설치 디렉터리와 데이터 디렉터리, 설정 디렉터리, 플러그인 및 템플릿 디렉터리를 적절히 백업하면 대부분의 운영 데이터를 보존할 수 있다. 물론 실제 운영 환경에서는 캐시, 세션, 임시 파일, 서버 설정, 웹 서버 가상 호스트 설정, SSL 인증서, 백업 제외 대상 등을 구분해야 하므로 단순히 전체 폴더를 복사하는 것만으로 항상 최선의 백업이 되는 것은 아니다.
쉬운 설치[편집 / 원본 편집]
도쿠위키는 웹 인스톨러를 제공하기 때문에 설치 난도가 낮은 편이다. 설치 파일을 서버에 업로드한 뒤 웹 브라우저에서 설치 페이지에 접근하여 위키 이름, 관리자 계정, 권한 정책 등을 설정하면 기본 설치가 가능하다. 미디어위키처럼 DB 연결 정보, DB 사용자, DB 이름, 테이블 접두사 등을 입력해야 하는 절차가 없기 때문에 초보자에게 더 단순하게 느껴질 수 있다.
다만 “쉽게 설치된다”는 말은 “보안까지 자동으로 완벽하게 설정된다”는 뜻은 아니다. 도쿠위키는 파일 기반 구조이므로 웹 서버가 쓰기 권한을 가져야 하는 디렉터리와 외부에서 직접 접근되면 안 되는 디렉터리를 구분해야 한다. 공식 문서에서도 파일 권한 설정은 중요한 설치 단계로 다룬다.[6]
문서화에 적합한 문법[편집 / 원본 편집]
도쿠위키는 자체 위키 문법을 사용한다. 굵게, 기울임, 밑줄, 취소선, 제목, 목록, 표, 코드 블록, 내부 링크, 외부 링크, 이미지 삽입, 각주 등을 지원한다. 문법은 단순하면서도 문서 파일 자체의 가독성을 유지하는 방향으로 설계되어 있다.[7]
도쿠위키 문법은 마크다운과 완전히 같지는 않다. 따라서 마크다운 기반 지식 베이스에 익숙한 사용자는 처음에 약간의 학습이 필요하다. 그러나 기본 문법이 크게 어렵지는 않으며, 툴바와 플러그인을 통해 편집 편의성을 높일 수 있다. 또한 플러그인을 이용하면 일부 마크다운 문법을 지원하게 구성할 수도 있다.
네임스페이스 기반 문서 구조[편집 / 원본 편집]
도쿠위키는 문서를 네임스페이스 단위로 정리할 수 있다. 네임스페이스는 파일 시스템의 폴더 구조와 비슷하게 이해할 수 있다. 예를 들어 `project:alpha:install` 같은 문서 이름은 `project` 아래 `alpha` 범주에 속한 `install` 문서처럼 다룰 수 있다.
이 구조는 프로젝트별 문서, 팀별 문서, 제품별 매뉴얼, 버전별 문서 등을 정리할 때 유용하다. 또한 접근 제어 규칙도 네임스페이스 단위로 적용할 수 있어, 특정 팀만 특정 문서 묶음을 볼 수 있게 하거나, 일부 사용자는 읽기만 가능하게 하는 식의 구성이 가능하다.
변경 기록과 차이 보기[편집 / 원본 편집]
도쿠위키는 위키 엔진답게 문서의 변경 기록을 저장하고, 이전 판과 현재 판의 차이를 확인할 수 있다. 문서가 잘못 수정되었거나 삭제되었을 때 이전 판을 확인하고 복구할 수 있으므로 협업 문서 작성에 유리하다.
다만 변경 기록 역시 파일 기반으로 저장되므로, 문서와 변경 이력이 많아질수록 저장 공간 사용량이 늘어난다. 장기간 운영하는 위키라면 변경 기록 보존 정책, 백업 정책, 캐시 정리, 로그 정리 등을 함께 고려하는 것이 좋다.
접근 제어 목록[편집 / 원본 편집]
도쿠위키는 접근 제어 목록, 즉 ACL 기능을 제공한다. 관리자는 사용자 또는 그룹별로 문서나 네임스페이스에 대한 읽기, 편집, 생성, 업로드, 삭제, 관리자 권한 등을 설정할 수 있다.[8]
ACL은 도쿠위키를 개인 메모장이 아니라 팀 문서 시스템이나 사내 위키로 사용할 때 매우 중요하다. 예를 들어 전체 사용자는 공지 문서를 읽을 수 있지만, 편집은 관리자만 가능하게 할 수 있다. 개발팀 네임스페이스는 개발팀 사용자 그룹만 편집 가능하게 하고, 외부 공개 문서는 로그인하지 않은 사용자에게도 읽기 권한을 줄 수 있다.
인증 백엔드[편집 / 원본 편집]
도쿠위키는 자체 사용자 관리뿐 아니라 다양한 인증 방식과 연동할 수 있다. 공식 문서에서는 인증 플러그인 구조를 통해 사용자 정보와 비밀번호 저장, 외부 인증 연동 등을 다룬다.[9]
운영 환경에 따라 LDAP, Active Directory, OAuth 계열 인증, 외부 CMS 인증, 포럼 계정 연동 등을 플러그인으로 구성할 수 있다. 다만 인증 플러그인의 유지보수 상태와 도쿠위키 최신 버전 호환성은 반드시 확인해야 한다. 인증은 보안과 직결되므로 오래된 플러그인을 그대로 사용하는 것은 위험할 수 있다.
다양한 플러그인[편집 / 원본 편집]
도쿠위키는 플러그인으로 기능을 확장할 수 있다. 플러그인은 XE의 모듈 및 애드온, 미디어위키의 확장 기능, 워드프레스의 플러그인과 비슷한 역할을 한다. 공식 확장 기능 저장소에는 문법 확장, 인증 연동, 편집기 개선, 검색 개선, 표 기능 보강, 태그, 목차, 데이터 관리, 양식 생성, 내보내기, 다이어그램, 수식, 코드 하이라이트 등 다양한 플러그인이 등록되어 있다.[10]
플러그인은 도쿠위키의 강점이지만 동시에 관리 부담이 되기도 한다. 오래된 플러그인은 최신 PHP 버전에서 경고나 오류를 일으킬 수 있고, 보안 취약점이 생길 수도 있다. 따라서 플러그인을 설치할 때에는 최근 업데이트 여부, 호환 버전, 사용자 평가, 공식 저장소의 상태, GitHub 저장소의 이슈 현황 등을 확인하는 것이 좋다.
다양한 템플릿[편집 / 원본 편집]
도쿠위키의 외형은 템플릿으로 변경할 수 있다. 템플릿은 일반적으로 다른 CMS의 테마와 비슷한 개념이다. 기본 템플릿만 사용해도 문서 위키로는 충분하지만, 사이드바, 반응형 디자인, 문서형 레이아웃, 기업 인트라넷 스타일, 블로그형 스타일 등을 원할 경우 별도 템플릿을 설치할 수 있다.
템플릿은 단순히 색상과 모양만 바꾸는 요소가 아니다. 일부 템플릿은 사이드바 구성, 상단 메뉴, 문서 탐색, 목차 표시, 모바일 대응, 검색창 배치, 로그인 메뉴, 도구 버튼 배치까지 사용자 경험에 큰 영향을 준다. 따라서 장기 운영을 계획한다면 템플릿 선택도 중요하다.
가벼운 운영 구조[편집 / 원본 편집]
도쿠위키는 일반적인 PHP 웹 호스팅 환경에서도 구동할 수 있다. 별도의 DBMS가 필요 없기 때문에 VPS나 공유 호스팅에서 부담이 적으며, 개인 서버나 사내 서버에서도 운영하기 쉽다. 문서량이 적거나 중간 규모인 환경에서는 매우 간단하고 안정적인 구성을 만들 수 있다.
다만 문서 수가 매우 많고, 검색 요청이 많고, 첨부 파일과 변경 기록이 방대해지는 환경에서는 파일 기반 구조가 항상 유리하지는 않다. 파일 수가 지나치게 많아지면 백업, 동기화, 검색 색인, 권한 검사, 파일 시스템 I/O 측면에서 부담이 생길 수 있다.
설치 사양[편집 / 원본 편집]
2026년 기준 최신 안정판 계열을 기준으로 도쿠위키를 운영하려면 웹 서버와 PHP 실행 환경이 필요하다. 공식 요구사항 문서에서는 현재 안정판이 PHP 7.4 이상을 요구한다고 안내한다.[11]
기존 문서에 적혀 있던 “PHP 5.6 이상”이라는 설명은 오래된 도쿠위키 버전에는 해당할 수 있으나, 최신 안정판 기준으로는 더 이상 적절하지 않다. 특히 PHP 5.x 계열과 PHP 7.0, 7.1, 7.2, 7.3 계열은 현대적인 운영 환경에서 보안상 권장하기 어렵다. 도쿠위키 자체가 PHP 7.4 이상을 요구하더라도, 실제 운영에서는 가능하면 운영체제 배포판에서 보안 업데이트가 제공되는 PHP 8.x 계열을 사용하는 것이 좋다.
기본 요구사항[편집 / 원본 편집]
| 항목 | 설명 |
|---|---|
| 웹 서버 | Apache, Nginx, Caddy, Lighttpd 등 PHP 실행이 가능한 웹 서버 |
| PHP | 최신 안정판 기준 PHP 7.4 이상 |
| PHP 확장 | 이미지 처리, XML 처리, 국제화, 압축, 세션, 파일 업로드 등에 필요한 확장 사용 가능 |
| 저장 공간 | 문서, 미디어 파일, 변경 기록, 캐시, 로그를 저장할 충분한 공간 |
| 파일 권한 | 웹 서버 프로세스가 필요한 디렉터리에 쓰기 가능해야 함 |
| DBMS | 기본 설치에는 필요 없음 |
권장 환경[편집 / 원본 편집]
공식 최소 요구사항은 말 그대로 실행을 위한 최소 조건에 가깝다. 실제 운영에서는 다음과 같은 구성을 권장할 수 있다.
| 항목 | 권장 내용 |
|---|---|
| PHP 버전 | 배포판에서 보안 업데이트가 제공되는 PHP 8.x 계열 |
| 웹 서버 | Apache 또는 Nginx |
| HTTPS | 공개망 운영 시 필수 |
| 백업 | 파일 단위 정기 백업 및 복구 테스트 |
| 권한 설정 | 데이터 디렉터리 직접 접근 차단 |
| 업데이트 | 코어, 플러그인, 템플릿 정기 업데이트 |
| 계정 보안 | 강력한 관리자 비밀번호, 필요 시 외부 인증 연동 |
설치 방법[편집 / 원본 편집]
공식 다운로드 파일을 이용한 설치[편집 / 원본 편집]
가장 기본적인 설치 방식은 공식 다운로드 페이지에서 안정판을 내려받아 웹 서버에 배치하는 것이다. 도쿠위키 다운로드 페이지에서는 최신 버전을 내려받을 수 있으며, 언어, 포함 플러그인, 버전 등을 선택할 수 있다.[12]
일반적인 설치 절차는 다음과 같다.
- 공식 다운로드 페이지에서 최신 안정판 압축 파일을 내려받는다.
- 웹 서버의 문서 루트 또는 원하는 하위 디렉터리에 압축을 푼다.
- 웹 서버 사용자가 필요한 디렉터리에 쓰기 권한을 갖도록 설정한다.
- 브라우저에서
install.php에 접속한다. - 위키 이름, 관리자 계정, 라이선스 표시, 초기 접근 정책 등을 설정한다.
- 설치가 끝난 뒤
install.php를 삭제하거나 접근할 수 없게 처리한다. - 관리자 화면에서 기본 설정, ACL, 플러그인, 템플릿, 사용자 정책을 조정한다.
웹 다운로더를 이용한 설치[편집 / 원본 편집]
도쿠위키는 호스팅 환경에서 더 쉽게 설치할 수 있도록 다운로더 스크립트도 제공한다. 이 방식은 사용자가 직접 전체 압축 파일을 내려받고 업로드하는 대신, 작은 PHP 스크립트를 서버에 올린 뒤 필요한 파일을 서버에서 내려받게 하는 방식이다.[13]
다만 다운로더 방식은 서버가 외부 네트워크에 접근할 수 있어야 하며, 설치 후에는 해당 스크립트를 반드시 제거해야 한다. 설치 도구가 서버에 남아 있으면 보안상 위험할 수 있다.
Docker를 이용한 설치[편집 / 원본 편집]
도쿠위키는 Docker 환경에서도 운영할 수 있다. 공식 Docker 이미지는 PHP Apache 기반 이미지를 토대로 도쿠위키 설치 환경을 제공하며, 일반적으로 SSL 종료와 인증 처리는 리버스 프록시 앞단에서 담당하는 구성이 권장된다.[14]
Docker 운영의 장점은 배포와 이전이 쉽고, 컨테이너 이미지와 볼륨을 분리하여 관리할 수 있다는 점이다. 그러나 Docker, 네트워크, 볼륨, 권한, 리버스 프록시, 백업 구조를 이해하지 못한 상태에서 무리하게 운영하면 오히려 문제 해결이 어려워질 수 있다.
리눅스 배포판 패키지를 이용한 설치[편집 / 원본 편집]
일부 리눅스 배포판은 도쿠위키 패키지를 제공한다. 이 방식은 패키지 관리자를 통해 설치와 보안 업데이트를 받을 수 있다는 장점이 있다. 그러나 배포판 패키지는 공식 최신판보다 늦게 제공되는 경우가 있으며, 디렉터리 구조가 공식 압축 파일 설치와 다를 수 있다.
따라서 배포판 패키지를 사용할 때에는 현재 제공되는 도쿠위키 버전, PHP 버전, 보안 패치 백포트 여부, 플러그인 설치 경로, 웹 서버 설정 방식을 확인해야 한다.
기본 구성 요소[편집 / 원본 편집]
문서 파일[편집 / 원본 편집]
도쿠위키의 문서는 일반 텍스트 파일로 저장된다. 파일 자체를 텍스트 편집기로 열어도 내용을 어느 정도 읽을 수 있으며, 이 점은 장기 보존과 데이터 이동 측면에서 장점이 된다. DB에 종속되지 않기 때문에 특정 DBMS의 덤프 형식이나 스키마에 묶이지 않는다.
미디어 파일[편집 / 원본 편집]
이미지, 문서 파일, 압축 파일 등은 미디어 관리자를 통해 업로드할 수 있다. 미디어 파일 역시 파일 시스템에 저장된다. 위키 문서에서 이미지를 삽입하거나 첨부 파일로 연결할 수 있으며, 권한 설정에 따라 업로드 가능 여부를 제어할 수 있다.
설정 파일[편집 / 원본 편집]
도쿠위키의 주요 설정은 `conf` 디렉터리 아래의 설정 파일로 관리된다. 관리자 화면에서 변경한 설정도 파일에 기록된다. 이 구조는 설정 백업과 이전을 쉽게 하지만, 동시에 설정 파일이 외부에 노출되지 않도록 웹 서버 설정을 올바르게 해야 한다.
캐시와 색인[편집 / 원본 편집]
도쿠위키는 성능 향상을 위해 캐시와 검색 색인을 사용한다. 문서가 많아질수록 검색 색인과 캐시 파일의 관리가 중요해진다. 캐시는 삭제해도 다시 생성될 수 있는 경우가 많지만, 운영 중 무작정 삭제하면 일시적인 성능 저하나 재색인 시간이 발생할 수 있다.
장점[편집 / 원본 편집]
설치와 이전이 쉽다[편집 / 원본 편집]
도쿠위키는 별도의 DBMS가 필요 없으므로 설치 절차가 짧다. 서버 이전도 비교적 단순하다. 도쿠위키 파일과 데이터 디렉터리를 새 서버에 복사하고, PHP와 웹 서버 설정을 맞추면 이전할 수 있다. DB 덤프를 만들고, 문자셋을 맞추고, 사용자 권한을 재설정하는 과정을 줄일 수 있다.
백업이 단순하다[편집 / 원본 편집]
도쿠위키는 파일 기반 구조 덕분에 백업 전략을 세우기 쉽다. 문서, 미디어, 설정, 사용자 정보, ACL, 플러그인, 템플릿을 파일 단위로 백업할 수 있다. 특히 소규모 위키에서는 전체 디렉터리를 압축하여 보관하는 방식만으로도 충분한 백업이 가능하다.
다만 백업이 “쉽다”는 것이 “아무렇게나 복사해도 된다”는 뜻은 아니다. 운영 중인 서버에서 백업할 때에는 파일이 쓰이는 도중 복사되는 문제, 권한 정보 보존 여부, 심볼릭 링크, 제외해야 할 캐시 파일, 개인정보 포함 여부 등을 고려해야 한다.
소규모 위키에서 빠르고 가볍다[편집 / 원본 편집]
문서 수가 많지 않고 동시 접속자가 적은 환경에서는 도쿠위키가 매우 가볍게 동작한다. DB 연결 오버헤드가 없고 구조가 단순하기 때문에 개인 서버, 라즈베리 파이, 소형 VPS, 사내 인트라넷 서버에서도 부담이 적다.
문서 파일의 장기 보존성이 좋다[편집 / 원본 편집]
문서가 일반 텍스트 파일로 저장되기 때문에, 도쿠위키 자체가 없어도 원문 내용을 비교적 쉽게 읽을 수 있다. 이는 장기간 보존해야 하는 기술 문서나 연구 기록에 유리하다. DB 기반 시스템에서는 소프트웨어와 DB 스키마가 사라지면 데이터를 해석하기 어려워질 수 있지만, 도쿠위키의 텍스트 파일은 그런 위험이 상대적으로 작다.
관리자가 이해하기 쉬운 구조[편집 / 원본 편집]
도쿠위키는 복잡한 서비스 스택을 요구하지 않는다. PHP, 웹 서버, 파일 권한, 백업 구조만 이해해도 기본 운영이 가능하다. 이 점은 전담 인프라 인력이 없는 소규모 조직에서 큰 장점이다.
플러그인과 템플릿으로 확장 가능하다[편집 / 원본 편집]
도쿠위키는 기본 기능만으로도 문서 위키를 만들 수 있지만, 플러그인과 템플릿을 이용하면 상당히 다양한 기능을 추가할 수 있다. 예를 들어 코드 하이라이트, 태그, 목차, 표 확장, 폼 입력, 데이터 표, 문서 포함, 다이어그램, 인증 연동, 내보내기 기능 등을 추가할 수 있다.
접근 제어가 기본 제공된다[편집 / 원본 편집]
도쿠위키는 ACL을 통해 문서와 네임스페이스별 권한을 설정할 수 있다. 공개 위키뿐 아니라 비공개 팀 위키, 부서별 문서 시스템, 고객별 매뉴얼 사이트처럼 권한 분리가 필요한 환경에도 사용할 수 있다.
유지보수가 비교적 쉽다[편집 / 원본 편집]
도쿠위키는 구조가 단순하고 관리자 화면에서 많은 설정을 처리할 수 있다. 플러그인 설치와 템플릿 변경도 관리자 화면에서 가능한 경우가 많다. 또한 파일 기반 구조 덕분에 문제가 생겼을 때 플러그인 디렉터리를 제거하거나 설정 파일을 되돌리는 식의 응급 조치가 비교적 쉽다.
단점[편집 / 원본 편집]
대규모 운영에는 한계가 있다[편집 / 원본 편집]
도쿠위키는 파일 기반 위키 엔진이므로 문서 수, 첨부 파일 수, 변경 기록, 사용자 수, 검색 요청이 매우 많아지면 성능과 관리 측면에서 한계가 드러날 수 있다. 파일 수가 많아질수록 백업 시간이 길어지고, 파일 시스템 탐색 비용이 증가하며, 검색 색인 관리도 부담이 될 수 있다.
대형 공개 위키, 수십만 문서 이상의 위키, 매우 많은 동시 접속자를 처리해야 하는 위키라면 미디어위키나 다른 대규모 운영에 적합한 시스템을 검토하는 것이 좋다.
현대적인 편집 경험이 부족할 수 있다[편집 / 원본 편집]
도쿠위키의 기본 편집 방식은 위키 문법 기반이다. 이는 텍스트 중심 문서 작성에는 장점이지만, WYSIWYG 편집기에 익숙한 사용자에게는 불편할 수 있다. 문서를 직접 보고 바로 수정하는 현대적인 노션형 편집 경험과 비교하면 기본 UI가 오래되어 보일 수 있다.
플러그인을 통해 편집 편의성을 높일 수는 있지만, 플러그인 호환성이나 유지보수 상태를 확인해야 한다. 모든 사용자가 위키 문법에 익숙하지 않은 조직에서는 교육 비용이 발생할 수 있다.
플러그인 품질이 균일하지 않다[편집 / 원본 편집]
도쿠위키 생태계에는 다양한 플러그인이 있지만, 모든 플러그인이 활발하게 유지보수되는 것은 아니다. 오래된 플러그인은 최신 도쿠위키나 최신 PHP에서 오류를 일으킬 수 있다. 특히 인증, 업로드, HTML 삽입, 외부 서비스 연동, 파일 처리와 관련된 플러그인은 보안 위험을 충분히 검토해야 한다.
파일 권한 설정이 중요하다[편집 / 원본 편집]
도쿠위키는 파일에 데이터를 저장하므로 웹 서버 권한 설정이 매우 중요하다. 데이터 디렉터리, 설정 파일, 사용자 파일, ACL 파일 등이 외부에서 직접 내려받아질 수 있으면 심각한 보안 문제가 된다. 웹 서버 설정이 잘못되면 DB 기반 시스템보다 오히려 민감 파일 노출 위험이 커질 수 있다.
백업은 쉽지만 규모가 커지면 오래 걸릴 수 있다[편집 / 원본 편집]
소규모 위키에서는 폴더 전체 백업이 매우 쉽다. 그러나 문서, 미디어, 변경 기록, 캐시, 색인 파일이 많아지면 파일 수가 폭증할 수 있다. 파일 하나하나를 복사하는 백업 방식은 DB 덤프 하나를 만드는 방식보다 오래 걸릴 수 있으며, 원격 동기화에서도 많은 파일 수가 부담이 될 수 있다.
DB 기반 기능을 기대하기 어렵다[편집 / 원본 편집]
도쿠위키는 기본적으로 관계형 데이터베이스를 사용하지 않기 때문에, 복잡한 질의, 대규모 통계, 구조화 데이터 분석, 다중 조건 검색, 정교한 보고서 생성 같은 기능은 기본 구조와 잘 맞지 않을 수 있다. 일부 플러그인이 구조화 데이터를 지원하지만, DB 기반 CMS나 전문 지식 관리 시스템과 같은 수준의 데이터 모델링을 기대하기는 어렵다.
미디어위키와의 비교[편집 / 원본 편집]
도쿠위키는 종종 미디어위키와 비교된다. 둘 다 PHP 기반 위키 엔진이고, 위키 문서를 작성하고 관리한다는 점은 같지만 설계 철학과 적합한 사용처가 다르다.
| 항목 | 도쿠위키 | 미디어위키 |
|---|---|---|
| 저장 구조 | 파일 기반 | DBMS 기반 |
| 설치 난도 | 비교적 낮음 | DB 설정 필요 |
| 대규모 공개 위키 | 제한적 | 강점 |
| 소규모 팀 문서 | 강점 | 가능하나 다소 무거울 수 있음 |
| 백업 | 파일 백업 중심 | 파일과 DB 모두 고려 |
| 확장 생태계 | 플러그인 다양, 규모는 중간 | 매우 큰 확장 생태계 |
| 문서 구조 | 네임스페이스 중심 | 네임스페이스와 카테고리, 템플릿 등 고도화 |
| 편집 문법 | 도쿠위키 문법 | 미디어위키 문법 |
| 대표 용도 | 내부 문서, 매뉴얼, 지식 베이스 | 대형 공개 위키, 백과사전형 사이트 |
도쿠위키는 “간단한 설치와 유지보수”가 중요한 경우에 적합하다. 미디어위키는 “대규모 협업, 방대한 확장 기능, 공개 위키 운영”이 중요한 경우에 적합하다. 따라서 둘 중 하나가 절대적으로 우월하다기보다는 운영 목적에 따라 선택하는 것이 맞다.
주요 기능[편집 / 원본 편집]
문서 작성[편집 / 원본 편집]
도쿠위키의 핵심 기능은 문서 작성과 편집이다. 문서는 제목 구조를 가질 수 있으며, 내부 링크와 외부 링크, 목록, 표, 이미지, 코드 블록, 각주 등을 포함할 수 있다. 문서를 저장하면 변경 기록이 남고, 이전 판과 비교할 수 있다.
내부 링크[편집 / 원본 편집]
도쿠위키에서는 문서 이름을 이용해 내부 링크를 만들 수 있다. 아직 존재하지 않는 문서로 링크를 걸면, 해당 링크를 통해 새 문서를 만들 수 있다. 이 방식은 위키 문서의 자연스러운 확장에 유리하다.
네임스페이스[편집 / 원본 편집]
네임스페이스는 문서의 계층 구조를 만드는 기능이다. 프로젝트, 부서, 제품, 버전, 고객, 주제별로 문서를 분리할 수 있다. 네임스페이스를 잘 설계하면 문서가 많아져도 관리하기 쉽다.
미디어 관리[편집 / 원본 편집]
미디어 관리자는 이미지와 파일 업로드, 파일 선택, 문서 삽입을 지원한다. 문서형 위키에서는 스크린샷, 다이어그램, PDF, 압축 파일, 샘플 코드 등을 첨부해야 하는 경우가 많으므로 미디어 관리 기능은 중요하다.
검색[편집 / 원본 편집]
도쿠위키는 자체 검색 기능을 제공한다. 문서 수가 적은 환경에서는 충분히 유용하지만, 대규모 문서 검색에서는 전문 검색 엔진과 비교해 한계가 있을 수 있다. 검색 품질을 높이기 위해 플러그인이나 외부 검색 연동을 검토할 수 있다.
변경 기록[편집 / 원본 편집]
문서마다 변경 이력이 저장된다. 누가 언제 어떤 내용을 바꾸었는지 확인할 수 있고, 필요하면 이전 판으로 되돌릴 수 있다. 팀 문서에서는 이 기능이 매우 중요하다.
차이 보기[편집 / 원본 편집]
도쿠위키는 두 판 사이의 차이를 표시할 수 있다. 문서 수정 내역을 검토하거나 잘못된 변경을 찾아낼 때 유용하다.
사용자 관리[편집 / 원본 편집]
기본 사용자 관리 기능을 통해 계정을 만들고 그룹을 지정할 수 있다. 사이트 운영 방식에 따라 공개 가입, 관리자 승인, 외부 인증 연동 등을 선택할 수 있다.
관리자 화면[편집 / 원본 편집]
관리자 화면에서는 설정 변경, 사용자 관리, ACL 설정, 확장 기능 관리 등을 할 수 있다. 도쿠위키는 단순한 구조에도 불구하고 기본적인 관리 인터페이스를 제공하므로, 서버 파일을 직접 수정하지 않고도 많은 설정을 변경할 수 있다.
보안[편집 / 원본 편집]
설치 후 install.php 처리[편집 / 원본 편집]
도쿠위키 설치가 끝난 뒤에는 설치 스크립트에 접근할 수 없게 해야 한다. 설치 스크립트가 남아 있으면 악의적인 사용자가 설정을 변경하거나 설치 과정을 악용할 수 있다.
데이터 디렉터리 보호[편집 / 원본 편집]
도쿠위키의 데이터는 파일로 저장된다. 따라서 `data`, `conf`, `bin`, `inc` 같은 주요 디렉터리에 외부 사용자가 직접 접근하지 못하도록 웹 서버 설정을 확인해야 한다. Apache 환경에서는 `.htaccess` 설정이 도움이 될 수 있으나, Nginx 환경에서는 별도 location 차단 규칙을 직접 작성해야 할 수 있다.
관리자 계정 보호[편집 / 원본 편집]
관리자 계정은 강력한 비밀번호를 사용해야 하며, 가능하면 재사용된 비밀번호를 피해야 한다. 공개망에서 운영하는 경우 HTTPS는 사실상 필수이다. 외부 인증을 사용하는 경우에도 관리자 그룹 매핑이 정확한지 확인해야 한다.
플러그인 보안[편집 / 원본 편집]
플러그인은 도쿠위키 기능을 확장하지만, 동시에 공격 표면을 넓힐 수 있다. 특히 HTML 삽입, 파일 업로드, 외부 URL 가져오기, 인증 연동, 스크립트 실행, 데이터베이스 연결 기능을 제공하는 플러그인은 주의해야 한다. 설치 전에는 최근 업데이트 날짜와 호환 버전을 확인하고, 사용하지 않는 플러그인은 비활성화하거나 삭제하는 것이 좋다.
업데이트[편집 / 원본 편집]
도쿠위키 코어와 플러그인, 템플릿은 정기적으로 업데이트해야 한다. 2024년과 2025년 계열에서도 XSS 취약점 수정 릴리스가 있었으므로, 오래된 버전을 계속 사용하는 것은 권장되지 않는다.[3]
백업과 복구 테스트[편집 / 원본 편집]
보안의 마지막 방어선은 백업이다. 파일이 손상되거나 서버가 침해되거나 관리자가 실수로 문서를 삭제했을 때 복구할 수 있어야 한다. 백업은 만드는 것보다 복구 테스트가 더 중요하다. 실제로 복구가 가능한지 확인하지 않은 백업은 신뢰하기 어렵다.
업데이트와 유지보수[편집 / 원본 편집]
도쿠위키 유지보수에서 중요한 것은 코어 업데이트, 플러그인 업데이트, 템플릿 업데이트, PHP 버전 관리, 백업, 권한 점검이다.
코어 업데이트[편집 / 원본 편집]
도쿠위키 코어는 공식 릴리스를 기준으로 업데이트하는 것이 좋다. 업데이트 전에는 반드시 전체 백업을 만들고, 사용 중인 플러그인과 템플릿이 새 버전과 호환되는지 확인해야 한다. 특히 PHP 최소 요구사항이 바뀌는 릴리스에서는 서버의 PHP 버전도 함께 확인해야 한다.
플러그인 업데이트[편집 / 원본 편집]
관리자 화면의 확장 관리자에서 플러그인 업데이트를 확인할 수 있다. 다만 업무용 위키라면 운영 서버에서 바로 업데이트하기보다 테스트 환경에서 먼저 확인하는 것이 좋다. 문법 플러그인 하나가 깨져도 다수의 문서 렌더링에 영향을 줄 수 있다.
템플릿 업데이트[편집 / 원본 편집]
템플릿은 외형뿐 아니라 페이지 도구, 로그인 링크, 관리자 메뉴 접근성, 모바일 화면에도 영향을 줄 수 있다. 오래된 템플릿은 최신 도쿠위키의 UI 구조나 PHP 버전과 맞지 않을 수 있으므로 정기적으로 확인해야 한다.
PHP 업데이트[편집 / 원본 편집]
도쿠위키는 PHP 기반이므로 PHP 버전의 지원 상태가 중요하다. 운영체제 배포판에서 더 이상 보안 업데이트를 제공하지 않는 PHP 버전을 사용하면 웹 애플리케이션 전체가 위험해진다. 도쿠위키 자체 요구사항뿐 아니라 운영체제의 PHP 보안 지원 기간도 확인해야 한다.
백업 전략[편집 / 원본 편집]
도쿠위키의 백업 대상은 일반적으로 다음과 같다.
| 대상 | 설명 |
|---|---|
data/pages |
문서 본문 |
data/media |
업로드된 미디어 파일 |
data/meta |
문서 메타데이터 |
data/attic |
이전 판 저장 데이터 |
conf |
설정, 사용자, ACL 관련 파일 |
lib/plugins |
설치된 플러그인 |
lib/tpl |
설치된 템플릿 |
| 웹 서버 설정 | Apache, Nginx, 리버스 프록시 설정 |
| SSL 인증서 설정 | HTTPS 운영 시 필요 |
소규모 위키는 전체 디렉터리를 압축하여 백업하는 방식으로 충분할 수 있다. 그러나 큰 위키는 증분 백업, 원격 백업, 스냅샷, 보관 주기, 암호화, 무결성 검증을 고려해야 한다. 특히 개인정보나 내부 문서가 포함된 위키라면 백업 파일 자체도 민감 정보로 취급해야 한다.
운영 사례[편집 / 원본 편집]
개인 지식 베이스[편집 / 원본 편집]
도쿠위키는 개인 지식 베이스로 사용하기 좋다. 서버 한 대에 설치해 기술 메모, 독서 기록, 명령어 정리, 프로젝트 노트, 설정 문서 등을 저장할 수 있다. 파일 기반이므로 백업과 이전도 쉽다.
사내 문서 시스템[편집 / 원본 편집]
소규모 기업이나 팀에서는 도쿠위키를 사내 문서 시스템으로 사용할 수 있다. 설치가 간단하고 ACL을 제공하므로 부서별 문서, 개발 문서, 운영 매뉴얼, 장애 대응 문서, 인수인계 문서 등을 정리하기 좋다.
프로젝트 문서[편집 / 원본 편집]
개발 프로젝트에서는 설치 방법, API 문서, 배포 절차, 장애 처리 절차, 코드 규칙, 회의록 등을 저장할 수 있다. 네임스페이스를 프로젝트별로 나누면 관리하기 쉽다.
교육 기관과 연구실[편집 / 원본 편집]
연구실, 동아리, 학과 내부 문서에도 적합하다. 장비 사용법, 실험 절차, 서버 계정 안내, 논문 정리, 회의록, 운영 규칙 등을 정리할 수 있다.
공개 매뉴얼 사이트[편집 / 원본 편집]
도쿠위키는 공개 매뉴얼 사이트로도 사용할 수 있다. 다만 공개 사이트로 운영할 경우 검색 엔진 최적화, 스팸 방지, 캐시, CDN, 보안 업데이트, 접근 제어, 문의 대응 등을 함께 고려해야 한다.
다른 CMS와의 연동[편집 / 원본 편집]
도쿠위키는 구조가 단순하고 인증 플러그인 체계가 있어 다른 CMS나 웹 애플리케이션과 연동하기 비교적 수월한 편이다. 과거에는 XE, 그누보드와 연동하는 사례가 공유되기도 했다. 다만 오래된 연동 문서는 최신 PHP, 최신 도쿠위키, 최신 CMS 버전과 맞지 않을 가능성이 크다.
연동을 고려할 때에는 다음 사항을 확인해야 한다.
- 해당 CMS의 현재 버전과 도쿠위키 최신 버전이 호환되는가?
- 인증 연동 플러그인이 현재도 유지보수되는가?
- 비밀번호 해시 방식이 안전한가?
- 사용자 그룹과 도쿠위키 ACL을 어떻게 매핑할 것인가?
- 로그아웃, 세션 만료, 계정 삭제, 권한 변경이 양쪽 시스템에 올바르게 반영되는가?
- 보안 취약점이 있는 오래된 연동 코드를 사용하고 있지는 않은가?
단순히 “예전에 연동 사례가 있었다”는 이유만으로 최신 운영 환경에 적용해서는 안 된다. 특히 회원 정보와 인증을 다루는 연동은 보안 검토가 필수이다.
도쿠위키가 적합한 경우[편집 / 원본 편집]
도쿠위키는 다음과 같은 상황에 적합하다.
- 별도의 DBMS를 설치하고 관리하고 싶지 않은 경우
- 소규모 팀 문서나 개인 문서 위키가 필요한 경우
- 백업과 이전이 쉬운 문서 시스템이 필요한 경우
- 텍스트 파일 기반 저장 구조를 선호하는 경우
- 복잡한 기능보다 안정성과 단순성을 중시하는 경우
- 내부 매뉴얼, 운영 문서, 기술 문서를 체계적으로 정리하려는 경우
- 웹 호스팅 환경이 제한적이어서 DB 사용이 어렵거나 번거로운 경우
- 문서의 장기 보존성과 원본 접근성을 중요하게 보는 경우
도쿠위키가 적합하지 않을 수 있는 경우[편집 / 원본 편집]
다음과 같은 상황에서는 도쿠위키보다 다른 솔루션이 더 적합할 수 있다.
- 위키백과급 대규모 공개 위키를 운영하려는 경우
- 매우 많은 동시 접속자와 문서를 처리해야 하는 경우
- WYSIWYG 중심의 현대적인 문서 편집기를 필수로 요구하는 경우
- 마크다운 기반 워크플로만 허용해야 하는 경우
- DB 기반의 복잡한 질의와 통계가 필요한 경우
- 정교한 워크플로, 승인 절차, 전자결재, 문서 수명주기 관리가 필요한 경우
- 플러그인 유지보수 상태를 직접 점검하기 어려운 경우
- 기업용 통합 검색, 감사 로그, 세밀한 권한 보고서가 필수인 경우
설치 후 점검 목록[편집 / 원본 편집]
도쿠위키를 설치한 뒤에는 다음 항목을 점검하는 것이 좋다.
| 점검 항목 | 설명 |
|---|---|
| `install.php` 제거 | 설치 완료 후 설치 파일이 남아 있지 않은지 확인 |
| HTTPS 적용 | 공개망 운영 시 TLS 인증서 적용 |
| 데이터 디렉터리 접근 차단 | `data`, `conf` 등 민감 디렉터리 직접 접근 방지 |
| 관리자 비밀번호 | 충분히 긴 비밀번호 사용 |
| ACL 정책 | 공개, 로그인 사용자, 그룹별 권한 확인 |
| 사용자 가입 정책 | 공개 가입 허용 여부 확인 |
| 플러그인 상태 | 불필요한 플러그인 제거 |
| 템플릿 호환성 | 모바일과 최신 PHP 호환성 확인 |
| 백업 자동화 | 정기 백업 설정 |
| 복구 테스트 | 백업 파일로 실제 복구 가능한지 확인 |
| 업데이트 계획 | 코어와 플러그인 업데이트 주기 설정 |
평가[편집 / 원본 편집]
도쿠위키는 단순성과 실용성을 강점으로 하는 위키 엔진이다. DBMS 없이 동작하는 구조는 설치와 유지보수를 크게 단순화하며, 문서가 텍스트 파일로 남는다는 점은 장기 보존과 이전성 측면에서 큰 장점이다. 특히 개인 위키, 소규모 팀 문서, 기술 매뉴얼, 인트라넷 문서 시스템에는 여전히 매력적인 선택지이다.
반면 대규모 공개 위키나 현대적인 협업 문서 플랫폼을 기대한다면 한계가 있다. 기본 UI와 편집 경험은 최신 노션형 문서 도구와 비교하면 보수적이며, 플러그인 품질도 균일하지 않다. 또한 파일 기반 구조는 소규모에서는 장점이지만, 매우 큰 규모에서는 백업과 검색, 파일 I/O 측면에서 부담이 될 수 있다.
따라서 도쿠위키를 선택할 때에는 “DB가 없어서 무조건 좋다”거나 “오래된 UI라서 무조건 나쁘다”는 식으로 판단하기보다, 운영 목적과 규모를 기준으로 평가해야 한다. 간단하고 오래 유지할 수 있는 문서 위키가 필요하다면 도쿠위키는 여전히 좋은 선택이 될 수 있다. 그러나 대규모 협업, 고급 권한 관리, 풍부한 시각적 편집 경험, 복잡한 통계 기능이 필요하다면 미디어위키, Wiki.js, BookStack, Outline, Confluence, XWiki 등 다른 도구와 비교해 보는 것이 좋다.