통합 관리 페이지 가이드 (v10)
이 문서는 2026-09-28에 새로 썼습니다.
이 위키에는 관리자 페이지를 설명하는 문서가 한 건도 없었습니다. 관리자 화면은 2026-07-20 배포된 10.4.0에서 처음 생겼고, 그 뒤 10.5.0·10.5.1에서 관리자 인증 방식이 두 번 바뀌었습니다. 15건 사용자 문서 어디에도 admin/ 이라는 경로가 한 번도 등장하지 않았습니다.>
이 문서는 10.5.1을 기준으로 씁니다. 10.4.0과 10.5.0에서 무엇이 달랐는지도 §7에 적었으므로, 그 판본을 쓰신 분도 거기서 확인하십시오.
1. 관리자 페이지가 뭔지 먼저
10.4.0 이전에는 설정이 코드 파일 안에 흩어져 있었습니다. config/t2_config.php 를 열어 상수를 고치고, config/upload_config.php 를 열어 확장자 목록을 고쳤습니다. t2_config.php 직접 수정은 10.2.0에서 공식적으로 권장되지 않게 됐습니다. 그때부터 바뀐 값을 관리 화면에서 다루게 됐고, 그것이 이 페이지입니다.
관리자 페이지에는 14개 메뉴가 4개 묶음으로 나뉘어 있습니다. 소스 기준으로 전수 확인했습니다 (admin/index.core.php:808-864).
| 묶음 | 메뉴 | 화면 안의 설명 (원문) |
|---|---|---|
| 메인 | 대시보드 | T2Editor 관리자 현황 개요 |
| 라이선스 | T2Editor 본체의 라이선스 검증 상태를 확인합니다 | |
| Extend 현황 | extend/php, extend/js 에 로드되는 파일 목록 | |
| 에디터 업데이트 | 현재 메이저 버전의 권장 최신 릴리스를 자동으로 검사하고, 새 메이저 버전과 이전 버전은 고급 옵션에서 검토한 뒤 선택적으로 업데이트합니다. | |
| 마켓 및 설치 | Open T2Editor와 독립 T2Editor Provider Market에서 Plugin, Extend, Locales를 찾아 설치합니다. | |
| 에디터 설정 | 기본 설정 | 활성 에디터 런타임의 기본 설정을 관리합니다 |
| NSFW 필터 | 이미지 업로드 시 성인 콘텐츠를 자동 감지합니다 | |
| 플러그인 관리 | 플러그인 활성화·비활성화 및 로딩 우선순위를 설정합니다 | |
| 아이콘 관리 | 플러그인별 툴바 버튼 아이콘을 자유롭게 바꿉니다 | |
| 반응형 툴바 | 화면 너비별로 일부 버튼을 그룹(서브 메뉴)으로 묶어 출력합니다 | |
| 서버 설정 | 도메인 설정 | 허용 URL 도메인 및 iframe 임베드 플랫폼을 관리합니다 |
| 업로드 설정 | 파일 업로드 크기, 형식, 보안 옵션을 설정합니다 | |
| 캐시 관리 | 런타임 인덱스와 다국어 컴파일 캐시의 상태를 확인하고 삭제·재생성합니다 | |
| 계정 | 보안 | CMS 관리자 인증, T2Editor 자체 로그인 및 설정 초기화 |
출처: 메뉴 버튼 14개는admin/index.core.php:808-864(묶음 컨테이너 808·827·846·859, 라벨 809·828·847·860), 섹션 패널 14개는admin/index.core.php:905 / 957 / 970 / 987 / 1067 / 1186 / 1267 / 1308 / 1339 / 1390 / 1410 / 1446 / 1485 / 1514(각 패널 다음 줄에<div class="section-header">이 있고 그 안에<h2>제목 +<p>설명이 있습니다).
2. 어디에 있습니까 — 3가지 진입 방법
진입 방법 1 · URL 직접
<에디터가 있는 폴더>/admin/index.php
예) 스탠드얼론이라면 https://내도메인/t2editor/admin/index.php, 그누보드5라면 https://내도메인/plugin/editor/t2editor/admin/index.php 입니다.
admin/index.php 는 478 바이트짜리 불변 다리 파일입니다. 안에는 구현이 없고 admin/index.core.php 로 넘기기만 합니다(admin/index.php:5-6). 그래서 갱신할 때 이 파일을 덮어써도 됩니다. 실제 화면은 admin/index.core.php (265,888 바이트)에 있습니다.
진입 방법 2 · 에디터 하단 T2E_Admin 링크 (권장)
글쓰기 화면 에디터의 버전 정보 옆에 T2E_Admin 링크가 보입니다(editor.core.php:1101-1104).
- 일반 사용자에게는 이 링크와 관리자 경로가 노출되지 않습니다(S1 10.5.0 원문: "현재 사용자가 관리자로 확인되면 에디터 하단 버전 정보 옆에 T2E_Admin 링크가 표시됩니다. 일반 사용자에게는 링크와 관리자 경로가 노출되지 않습니다.")
- 10.5.1부터는 로그인하면 새로고침하지 않아도 이 링크가 바로 나타납니다(
editor.core.php:1550-1556주석,:1557-1569구현).
진입 방법 3 · 에디터 하단 진단 모달
버전 정보 텍스트를 누르면 열리는 디버깅 패널에서 로그인·설정을 합니다. 10.5.0에서 이 패널에 "관리자 로그인하기" 버튼이 추가됐고(editor.core.php:1099-1101의 .t2-debug-trigger → showT2DebugModal()), 10.5.1에서는 로그인 성공 시 그 버튼이 "관리자 페이지 열기" 링크로 페이지 새로고침 없이 교체됩니다(editor.core.php:1571-1575).
⚠ 관리자 페이지 안에는 도움말 링크가 없습니다
admin/index.core.php 전문에서 http 문자열을 전수 검색한 결과 3건뿐이고, 셋 다 입력란 기본값입니다: :2257 https://example.com/market/index.php (마켓 등록 예시), :2104·:2265 는 url:'https://' — 빈 접두사 자리표시자입니다. 외부 문서로 가는 링크는 0건입니다. 관리자 화면이 dsclub.kr 문서를 가리키는 링크를 갖고 있는지 여부는 [확인 필요] 입니다. 저는 파일 내용만으로 판단했으므로, 화면에 실제로 보이는 링크를 확인하려면 관리자 페이지에 직접 로그인해 보셔야 합니다.
3. ⭐ 관리자 인증 — 10.5.0에서 CMS로, 10.5.1에서 자체 로그인이 돌아옴
이 부분이 v10에서 가장 자주 바뀐 곳입니다. 세 단계를 거쳐 왔습니다.
3-1 · 10.5.0 (2026-07-22) — CMS 관리자 로그인을 쓰기로 함
S1 릴리즈 노트 원문 그대로:
CMS 관리자 권한 연동- 그누보드5와 라이믹스에서는 T2Editor 전용 관리자 비밀번호를 별도로 입력하는 대신, 현재 CMS의 관리자 로그인 상태를 이용해 T2Editor 관리자 권한을 확인하도록 변경했습니다. 업데이트, 서드파티 설치 등 관리자 승인이 필요한 기능도 CMS 관리자 세션을 기준으로 처리합니다.이때 생긴 문제를 10.5.1 릴리즈 노트가 그대로 기록하고 있습니다:
- 10.5.0에서는 그누보드5나 라이믹스가 감지되면 T2Editor 자체 비밀번호 대신 CMS 관리자 로그인 상태만 확인했습니다. 하지만 일부 그누보드5 또는 빌더 환경에서는 관리자로 로그인한 상태인데도 T2Editor가 이를 인식하지 못해 관리자 페이지에 들어갈 수 없는 문제가 있었습니다.10.5.0이 배포된 지 5일 만에 10.5.1이 나왔고, 그 5일의 목적이 이 수정이었습니다.
3-2 · 10.5.1 (2026-07-27) — 자체 로그인이 다시 돌아옴
S1 릴리즈 노트 원문 그대로:
CMS 환경의 T2Editor 자체 로그인 지원* 그누보드5와 라이믹스에 설치한 경우에도 CMS 관리자 로그인과 별개로 T2Editor 자체 비밀번호로 로그인할 수 있습니다.* 관리자 인증 화면에 T2Editor 자체 로그인하기 버튼을 추가했습니다.* CMS 관리자 로그인 상태가 정상적으로 인식되지 않는 환경에서도 T2Editor 관리자 페이지에 접근할 수 있습니다.CMS 환경의 자체 로그인 최초 설정 지원* 그누보드5와 라이믹스 환경에서도 T2Editor 자체 로그인 설정이 완료되지 않은 경우 최초 설치 안내 화면을 표시합니다.* admin/t2admin.key.txt 파일을 admin/t2admin.key로 변경하고 자체 관리자 비밀번호를 설정하면 자체 로그인을 사용할 수 있습니다.* 기존 CMS 관리자 인증은 그대로 유지되며, 자체 로그인은 필요할 때 선택해서 사용할 수 있습니다.3-3 · 그래서 지금 어떻게 동작합니까
소스가 말하는 현재 규칙 (S3 실측):
| 배치 | 관리자 인증 방식 | 근거 |
|---|---|---|
| 스탠드얼론 (CMS 없음) | 자체 비밀번호 필수 | config/t2_cms_auth.php:103-110 t2editor_admin_requires_local_credentials() — 감지 결과가 standalone 이거나 인증 어댑터가 없으면 true |
| 그누보드5 | CMS 관리자 로그인 또는 자체 비밀번호 | integration/cms/adapters/gnuboard5.php:132-133 이 auth_require_path·auth_authorize 를 등록 |
| 라이믹스 | CMS 관리자 로그인 또는 자체 비밀번호 | integration/cms/adapters/rhymix.php auth_bootstrap·auth_authorize |
| 워드프레스 | ❌ CMS로 감지되지 않음 | integration/cms/adapters/wordpress.php 의 validate_context 가 항상 false 를 반환 — 아래 §3-4 참조 |
두 인증은 OR 관계입니다. 코드에 그대로 있습니다:
php// config/t2_cms_auth.php:132-138 function t2editor_admin_is_authorized() { t2editor_admin_auth_bootstrap(); if (t2editor_admin_local_session_is_authorized()) return true; // 자체 로그인 return t2editor_admin_cms_is_authorized(); // CMS 로그인 }
3-4 · 워드프레스는 CMS 어댑터가 아니라 "브리지"입니다
S3 10.5.1 10.3.0이 워드프레스 업로드 연동을 추가했지만, 그 어댑터는 자동 감지 대상이 아닙니다:
php// integration/cms/adapters/wordpress.php 'validate_context' => function () { return false; },
⇒ 워드프레스용으로 넣은 코드가 그누보드5로 오인되지도, 워드프레스로 감지되지도 않습니다. 받는 것은 워드프레스 미디어 라이브러리 업로드이며, CMS 관리자 연동·데이터 경로 분리는 받지 않습니다. 데이터 경로는 그누보드/라이믹스처럼 CMS가 알려주지 않으므로 스탠데얼론 규칙이 적용됩니다. 자세한 건 N-05-cms-adapter-and-data-paths.md를 보십시오.
3-5 · 중요한 작업은 재인증합니다
S1 10.5.1 원문:
중요 관리자 작업의 재인증 방식 개선* T2Editor 자체 로그인으로 접속한 경우 업데이트, 백업 복구, 서드파티 설치 같은 중요 작업에서 자체 관리자 비밀번호를 다시 확인하도록 수정했습니다.* CMS 관리자로 접속한 경우에는 기존처럼 CMS 관리자 권한을 기준으로 작업을 승인합니다.⇒ 자체 로그인으로 들어가셨다면 업데이트·복구·설치 직전에 비밀번호를 다시 묻습니다. 버그가 아닙니다. 화면에 "비밀번호 변경"이 아니라 "확인"이 뜹니다.
3-6 · 비밀번호 변경과 설정 초기화
보안 메뉴(admin/index.core.php:1514-1545)에 세 가지가 있습니다. 화면에 적힌 그대로 옮기면:
| 항목 | 화면 문구 | 주의 |
|---|---|---|
| 비밀번호 변경 | 현재 비밀번호 / 새 비밀번호 (8자 이상) / 새 비밀번호 확인 | 8자 미만 불가 |
| 관리자 인증 방식 | 현재는 관리자 세션으로 인증하고 있습니다. CMS 로그인과 별개로 사용할 T2Editor 자체 비밀번호도 추가로 설정할 수 있습니다. | 어느 쪽으로 인증 중인지 화면에 표시됨 |
| 설정 초기화 | 모든 관리자 설정을 기본값으로 초기화합니다. CMS 로그인 정보와 T2Editor 자체 관리자 비밀번호는 유지됩니다. | 설정만 초기화. 인증 정보는 남습니다 |
4. ⭐ 최초 설정 게이트 — 설정이 끝나기 전에는 에디터가 잠깁니다
10.4.0 릴리즈 노트 원문:
처음 설치할 때 나오는 안내 화면은, 관리자 기능이 켜져 있는지, 비밀번호는 설정했는지, 파일을 저장할 폴더에 쓰기 권한은 있는지, 서버가 필요한 기능을 지원하는지 등을 자동으로 확인해줍니다. 내 서버 환경에 맞춰 어떤 명령어를 입력하면 되는지, FTP 프로그램으로는 어떻게 설정할 수도 알려줍니다. 이런 필수 설정이 끝나지 않으면 잘못된 상태로 에디터가 쓰이는 걸 막기 위해 잠시 편집 기능이 잠깁니다.4-1 · 잠기는 것을 S3로 확인했습니다
에디터 본문이 실제로 클릭·입력 불가가 됩니다. 추측이 아니라 실측입니다.
js// extend/js/t2_first_run_guide.js:166-167 html.t2-first-run-locked,body.t2-first-run-locked{overflow:hidden!important} html.t2-first-run-pending .t2-editor-container,html.t2-first-run-locked .t2-editor-container{pointer-events:none!important;user-select:none!important}
pointer-events:none!important= 마우스·터치 입력 전부 차단user-select:none!important= 텍스트 선택도 차단overflow:hidden!important= 화면 스크롤까지 잠김
이 클래스를 누가 붙이느냐가 핵심입니다:
php// editor.core.php:812-813 if (!empty($_t2_first_run_bootstrap['required'])) { $html .= "document.documentElement.classList.add('t2-first-run-pending');"; }
⇒ 서버가 "설정 필요"라고 판정한 첫 요청에만 잠깁니다. 안내를 끝까지 마치면 t2_first_run_guide.js:205-207 에서 pending 를 떼고 locked 로 바꿔 안내 화면을 고정하며, 완료를 확인하면 :218-219 에서 두 클래스를 모두 제거해 편집이 풀립니다.
완료 상태는 브라우저가 아니라 서버에 저장됩니다 — t2editor_db/first_run_state.php (extend/php/t2_first_run_setup.php:41-46). 브라우저 캐시를 지워도 다시 잠기지 않습니다.
4-2 · 막힐 때 뜨는 문장 (4가지)
config/first_run_api.php:61,64,67,71 에서 서버가 실제로 돌려주는 문장입니다. 사용자에게 이 중 하나가 보이면 그 자체가 진단 단서입니다.
| 상황 | 서버가 보내는 문장 | 위치 |
|---|---|---|
| 관리자 키를 안 바꿨을 때 | 먼저 admin/t2admin.key.txt를 admin/t2admin.key로 이름 변경하세요. | config/first_run_api.php:61 |
| 비밀번호를 안 정했을 때 | 관리자 페이지에서 관리자 비밀번호를 먼저 설정하세요. | :64 |
| 데이터 폴더 쓰기가 안 될 때 | 공용 데이터 디렉터리에 PHP 실행 계정의 쓰기 권한을 부여하세요. | :67 |
| 데이터 폴더 준비 실패 | T2Editor 데이터 디렉터리를 준비하거나 쓰기 권한을 확인하세요. | :71 |
그리고 안내를 끝까지 읽지 않았거나 확인 칸을 안 찍었다면: 안내를 끝까지 읽고 확인 체크박스를 선택하세요. (:55)
4-3 · 단계 수 — 스탠드얼론 4단계, CMS 3단계
extend/js/t2_first_run_guide.js:334-335 가 실제로 두 갈래로 나뉩니다.
| 배치 | 단계 |
|---|---|
| 스탠드얼론 (4단계) | ① admin/t2admin.key.txt 파일명을 admin/t2admin.key 로 변경 ② 관리자 페이지에서 관리자 비밀번호 설정 ③ 공용 데이터 디렉터리를 최소 권장 707 부터 설정하고 PHP 실제 쓰기 시험 확인 ④ 안내를 끝까지 읽기 (:19-22) |
| CMS (3단계) | ① 그누보드5 또는 라이믹스 관리자 로그인으로 사용 ② 데이터 권한 ③ 안내 읽기 (:334 + :69 cms_auth_step) |
CMS 배치에서는 ①이 "키 파일 활성화"가 아니라 "CMS 관리자 로그인"입니다. 그래서 그누보드5·라이믹스 사용자는 ①을 건너뛰고 CMS로 로그인하면 됩니다. 단 자체 로그인을 쓰고 싶다면 그때는 CMS 여부와 상관없이 admin/t2admin.key.txt → admin/t2admin.key 이름 변경이 필요합니다(§3-2 인용).
⚠admin/t2admin.key.txt가 배포판 git tree에 없습니다.releases/v10.5.1트리 290 blob을 전수 확인한 결과admin/13개 파일 중 키 파일은 0건입니다.t2admin으로 시작하는 파일은extend/js/t2admin_runtime.js와extend/php/t2admin_settings_loader.php뿐입니다. 서버에 이 파일이 보이지 않으면 "admin/t2admin.key.txt를admin/t2admin.key로 바꾸라"는 안내가 실행되지 않습니다. 실제 배포 ZIP이나 관리 화면에 표시되는 절차를 직접 확인하십시오 —[확인 필요](W1 §Q2가 같은 공백을 이미 지목한 항목입니다).
4-4 · 권한은 707 — 777이 아닙니다
10.5.0 릴리즈 노트:
최초 설치 안내 개편- 설치 권한은 777이 아니라 707을 최소 권장값으로 명확하게 안내합니다.- 실제 PHP 파일 생성·쓰기·삭제 시험이 성공하면 현재 권한을 그대로 유지하며, 숫자로 표시된 권한만 보고 불필요한 chmod 명령을 요구하지 않습니다.- 777도 작동 자체를 막지는 않지만 필요 이상으로 넓은 권한이므로 권장하지 않는다고 명시했습니다.S3 확인 — 안내 화면이 실제로 그렇게 말합니다:
:18required_body: '관리자 기능을 활성화하고 공용 데이터 디렉터리를 최소 권장 707부터 설정한 뒤, PHP 실제 쓰기 시험을 확인하고 안내를 끝까지 읽습니다.':37…더 제한적인 권한으로 PHP 쓰기 시험이 성공하면 그 권한을 유지해도 됩니다. 777은 사용하지 마세요.:67permission_note: '…실패할 때는 707부터 적용하면 충분합니다. 777도 설치를 막지는 않지만 필요 이상이므로 권장하지 않습니다.'
⚠ 단, 이건 "안내 화면이 권하는 값"이고 코드가 강제하는 값은 아닙니다.t2_storage.php가 만드는 폴더 기본 권한은 어댑터별로0755(config/t2_cms_data.php:50-51)이며, 그누보드5는 CMS 상수를 따릅니다(integration/cms/adapters/gnuboard5.php:128-129). 707은 사용자에게 권하는 숫자입니다. 화면 문구를 그대로 옮기십시오.
5. 메뉴별 "무엇을 하는지 · 언제 쓰는지"
대시보드 (admin/index.core.php:905)
관리자 현황 개요. 카드 5개(라이선스 · 활성 플러그인 · 최대 업로드 · NSFW 필터 · 마이그레이션)와 시스템 정보, 보안 상태가 나옵니다.
가장 중요한 것은 "업데이트·설치 서버 환경" 점검입니다. S1 10.4.0:
서버 상태를 자동으로 점검해서 문제를 미리 알려주는 기능10.5.1에서 이 화면이 무한 로딩으로 고쳐졌습니다:
관리자 대시보드 무한 로딩 문제 해결- 일부 환경에서 서버의 PHP 확장과 파일 권한을 확인하고 있습니다라는 문구와 로딩 표시가 계속 나타나고, 다른 메뉴도 클릭할 수 없는 문제가 있었습니다.- 관리자 화면에 전달되는 일부 정보가 정상적인 문자 형식으로 변환되지 않아 화면 스크립트가 중단되는 것이 원인이었습니다.⇒ 10.5.0을 쓰시는 분이 이 화면에서 멈췄다면, 10.5.1로 올리십시오. 버그입니다. 또한 화면에 서버의 PHP 확장과 파일 권한을 확인하고 있습니다 가 계속 떠 있으면 그대로 두지 마십시오 — 정상 상태가 아닙니다.
라이선스 · Extend 현황
- 라이선스: T2Editor 본체의 라이선스 검증 상태를 보여줍니다. 라이전스가
readme.txt안에 있다는 사실과, 화면에 무엇이 보이는지는 별개 문제입니다. 파일 위치는 07-license-guide.md를 보십시오. - Extend 현황:
extend/php와extend/js에 자동 로드되는 실제 파일 목록입니다. 10.1.0에서/extend가 도입되었을 때부터 있던 기능이고, "내 코드가 왜 실행되는가"를 확인하는 유일한 곳입니다. 직접 파일을 배포판에 복사했더라도 목록에 없으면 로드되지 않습니다.
에디터 업데이트 (admin/index.core.php:988)
- 자동 검사 — 현재 메이저 버전의 권고 최신 릴리스를 확인합니다.
- 다른 메이저 버전·이전 버전 — "고급 옵션"에서 검토한 뒤 선택적으로 적용합니다.
- 안전 장치 3중 (S1 10.4.0):
- 기본적으로 원래 파일을 건드리지 않고 별도 공간에 새 버전을 설치한 뒤 전환합니다. 문제가 생기면 이전 상태로 되돌립니다.
- 원래 폴더에 직접 업데이트하는 방식을 고르면, 직접 수정한 파일과 충돌하는 부분을 관리자가 확인해 유지/변경을 고릅니다. 업데이트 전 파일은 자동 백업됩니다.
- 적용·복구 직전에 비밀번호를 다시 확인합니다(§3-5).
- 메이저 버전 경고 (S1 10.5.0): 현재 T2Editor와 대상 버전의 메이저 버전이 다르면 목록에 경고를 표시하고, 확인값을 서버에서도 검증해 확인 없이 진행되지 않게 합니다.
마켓 및 설치 (admin/index.core.php:1068)
Plugin, Extend, Locales 를 검색해 설치합니다. 화면 원문:
Open T2Editor와 독립 T2Editor Provider Market에서 Plugin, Extend, Locales를 찾아 설치합니다.- 공식 검증 마켓과 그 외 마켓이 구분됩니다. 믿을 만한 곳이라면 관리자가 직접 등록할 수 있습니다(등록 예시 URL은
admin/index.core.php:2257). - 설치 전 항상 안전성 검사를 거칩니다(S1 10.4.0).
- 10.5.0의 중요한 추가: 서드파티의 매니페스트가 요구하는 최소 버전(
t2editor_min)과 현재 메이저 버전이 다르면 경고가 표시되고 설치 승인 전에 다시 확인합니다. "설치가 안 된다"가 아니라 "확인 화면이 먼저 나온다"입니다.
⚠ 서드파티를 설치하면 readme.txt:35 조항이 걸립니다. "T2 서비스의 코드, API, 호환 구조는 사전 공지 없이도 변경될 수 있으며, 이로 인해 서드파티 플러그인의 호환성이 깨지거나 정상 작동하지 않게 되는 경우 DSc 및 Tak2는 이에 대한 책임을 지지 않음". 서드파티를 운영하시면 반드시 읽어야 할 문장입니다.기본 설정 · NSFW 필터 · 플러그인 관리 · 아이콘 관리 · 반응형 툴바
| 메뉴 | 하는 일 | 언제 필요하나 |
|---|---|---|
| 기본 설정 | CSS 압축(T2_CSS_MIN) 등 런타임 기본값 | 서버 부하·트래픽을 보고 조정 |
| NSFW 필터 | 이미지 업로드 시 성인 콘텐츠 감지(T2_NSFW_ENABLED) | [확인 필요] — 10.5.1 기본값을 코드에서 확정하지 못했습니다. 어느 설치에서든 켜져 있는지 여부는 화면에서 직접 확인하십시오 |
| 플러그인 관리 | 활성화·비활성화, 로딩 우선순위(드래그 앤 드롭, 숫자가 낮을수록 먼저 로드) | 플러그인 충돌·초기화 지연이 있을 때 |
| 아이콘 관리 | 툴바 버튼 아이콘 교체. 이 설치본에 포함된 Material Icons를 검색해서 고르며, 외부 사이트에 접속하지 않습니다 | 사이트 톤에 맞추고 싶을 때 |
| 반응형 툴바 | 화면 너비별로 버튼을 서브 메뉴로 묶음. 끄면 toolbar.js 내장 기본값(2단계 브레이크포인트) 사용 | 모바일에서 툴바가 깨질 때 |
NSFW 필터에 관해 확정된 사실 하나: 10.4.0에서 "필터가 이제 필요한 파일이 프로그램 안에 포함돼 있어서 외부 서버에 의존하지 않고 더 안정적으로 작동"하게 됐고, "어떤 방식으로 검사를 실행할지는 관리자가 설정할 수 있습니다"(S1 10.4.0). v10 배포판에 config/nsfw_api_server.php 는 없습니다(404 실측). 8.x시기에 쓰던 "외부 NSFW 서버" 설정은 현재 판본에 없습니다.도메인 설정 (admin/index.core.php:1411)
- 추가 허용 URL 도메인 — 현재 서버 도메인은 자동 포함됩니다. CDN·서브도메인을 추가합니다.
- iframe 허용 플랫폼 — 동영상 임베드를 허용할 플랫폼을 체크합니다. 체크를 해제하면 그 플랫폼의 iframe이 차단됩니다. ( 유튜브· Vimeo 등을 체크해 두십시오.)
- 커스텀 추가 도메인 — 위 플랫폼 선택과 무관하게 항상 추가됩니다.
코드 근거: config/t2_config.php:304-340 의 T2EDITOR_ALLOWED_IFRAME_DOMAINS + t2editor_get_allowed_iframe_domains(), 브라우저 검증은 js/core.js:4659-4660. v10에도 이 방어는 있습니다. (본문 XSS 정화와는 다른 축입니다 — N-06-server-sanitize-and-content-style.md 참고)
업로드 설정 (admin/index.core.php:1447)
화면 설명은 "파일 업로드 크기, 형식, 보안 옵션을 설정합니다"입니다. 기본값이 코드에 있습니다 (config/upload_config.php):
| 항목 | 기본값 | 위치 |
|---|---|---|
| 최대 업로드 용량 | 50 MB (T2EDITOR_MAX_UPLOAD_SIZE) | config/upload_config.php:37-38 |
| 문서 확장자 | pdf txt doc docx xls xlsx ppt pptx hwp odt ods odp rtf | :57-60 |
| 이미지 확장자 | jpg jpeg png gif webp bmp | :61-64 |
| 동영상 확장자 | mp4 webm ogg mov avi mkv wmv flv m4v | :65-68 |
| 기타 | zip rar 7z tar gz bz2 mp3 m4a wav flac aac wma json xml csv | :69-73 |
| 제외 | SVG (활성 콘텐츠/XSS 위험), ICO (MIME·GD 처리 불일치) | :54-55 주석 |
| 이미지 픽셀 상한 | 50,000,000 (≈50 MP) | :50-51 |
⚠ 이 값은 배포판 코드에 박힌 기본값이며, 관리자 화면에서 바꾼 값이 이를 덮어씁니다. 또 PHP·웹서버의 업로드 제한이 이보다 먼저 걸립니다. 화면이 50 MB를 보여도 서버가 8 MB로 막고 있으면 8 MB가 실제로 걸립니다. 서버를 따로 보십시오.
캐시 관리 (admin/index.core.php:1486)
- 런타임 인덱스와 다국어 컴파일 캐시의 상태를 보고 삭제·재생성합니다.
- 화면 원문:
기본 설치와 데이터 슬롯 모드 모두 런타임 인덱스와 번역 정적 캐시를 생성합니다. 기본 설치에서는 관련 원본 파일의 서명을 함께 기록하여 변경이 감지되면 오래된 인덱스를 자동으로 사용하지 않습니다. - 번역이 말썽난 것 같을 때(특정 기능만 번역이 깨짐) 먼저 여기서 캐시를 삭제해 보십시오.
보안 (admin/index.core.php:1515)
§3-6 참고. CMS 인증 · 자체 로그인 · 비밀번호 변경 · 설정 초기화가 한 화면에 있습니다.
6. 처음 하는 순서 (권장)
| 순서 | 할 일 | 이유 |
|---|---|---|
| 1 | 가장 가까운 지점에서 admin/index.php 로 접속 | 경로가 틀리면 아무것도 안 보인다 |
| 2 | 최초 설치 안내를 끝까지 마친다 | 안 마치면 에디터가 잠깁니다(§4-1) |
| 3 | 대시보드에서 서버 환경 점검 통과 확인 | 업데이트·설치의 전제 |
| 4 | 업로드 설정 확인 | 실제로 걸리는 값은 서버 설정과 만듭니다 |
| 5 | 도메인 설정에서 사용 중인 동영상 플랫폼 체크 | 안 하면 임베드가 막힙니다 |
| 6 | NSFW 필터 상태 확인 | 현재 판본 기본값은 [확인 필요] |
| 7 | 그 다음부터 업데이트·마켓 | 환경이 깨끗한 상태에서 하십시오 |
7. 판본별 차이 (무엇이 언제 바뀌었나)
| 판본 | 날짜 | 관리자 쪽 변화 |
|---|---|---|
| 10.4.0 | 2026-07-20 | 관리자 페이지 신설. 최초 설치 안내·자동 업데이트·확장 마켓·드래그 앤 드롭 업로드·표 병합/분할·에디터 높이 조절·NSFW 필터 안정화·다국어·반응형 메뉴·다크 모드·민감 데이터 보관 강화·서버 상태 자동 점검 |
| 10.4.0 | 2026-07-20 | 권한 지시를 777 → 최소 권장 707으로 개편 |
| 10.5.0 | 2026-07-22 | 관리자 인증을 CMS로 이전. T2E_Admin 링크 추가(관리자만) · 디버깅 패널에 "관리자 로그인하기" 버튼 · 메이저 버전 호환성 경고(업데이트 + 서드파티) · 브라우저 보조 ZIP 설치 |
| 10.5.1 | 2026-07-27 | CMS 환경에 자체 로그인 복원. 관리자 인증 화면에 "T2Editor 자체 로그인하기" 버튼 · 에디터 하단에서 자체 로그인 설정·로그인 · 대시보드 무한 로딩 수정 · 중요 작업 재인증 · 내부 데이터 폴더 직접 접근 방지 파일 추가 |
10.5.0만 쓰시는 분 — CMS 관리자 로그인이 안 잡히는 환경이면 관리자 페이지에 들어가실 방법이 없습니다. 10.5.1로 올리십시오.
8. 자주 보이는 오해
| 오해 | 사실 |
|---|---|
"설정을 바꾸려면 t2_config.php 를 고쳐야 한다" | 10.2.0부터 코어 하드코딩 수정이 아니라 관리자 화면입니다 |
"그누보드5에 설치했으니 data/ 권한은 707" | 그누보드5는 CMS 상수를 따릅니다. 화면에 표시된 감지된 권한을 보십시오(extend/js/t2_first_run_guide.js:343) |
| "T2E_Admin 링크가 안 보인다 = 버그" | 관리자가 아니면 보이지 않도록 설계입니다 |
| "업로드가 50 MB까지 된다" | PHP·웹서버 제한이 먼저 걸립니다 |
| "확장 마켓에서 아무 플러그인이나 안전하다" | 안전성 검사는 거치지만, readme.txt:35 조항상 호환성 책임은 지지 않습니다 |
| "설치 안내가 끝났는데도 편집이 안 된다" | 서버에 저장되는 완료 상태입니다. t2editor_db/first_run_state.php 를 확인하십시오 |
| "10.5.0에서 CMS 관리자로 로그인했는데 관리자 페이지가 안 열린다" | 알려진 결함입니다. 10.5.1로 올리십시오 |
9. 개발자용 — 파일과 함수
| 항목 | 위치 |
|---|---|
| 진입점(불변 다리) | admin/index.php (478 B) — :5-6 에서 admin/index.core.php 로 넘김 |
| 실제 구현 | admin/index.core.php (265,888 B) |
| API 브리지 | admin/api.php → admin/api.core.php |
| 서버 환경 점검 | admin/environment_api.php → .core.php |
| 업데이트 | admin/update_api.php → .core.php |
| 마켓/서드파티 | admin/third_party_api.php → .core.php |
| 런타임 설정 | admin/runtime_config.php → .core.php |
| 관리자 인증 판정 | config/t2_cms_auth.php:132-138 t2editor_admin_is_authorized() |
| 인증 모드 보고 | config/t2_cms_auth.php:141-158 t2editor_admin_auth_mode() |
| 자체 인증 필요 여부 | config/t2_cms_auth.php:103-110 t2editor_admin_requires_local_credentials() |
| 최초 설치 부트스트랩 | extend/php/t2_first_run_setup.php:272-306 t2_first_run_client_bootstrap() |
| 최초 설치 확인 API | config/first_run_api.php |
| 안내 화면 | extend/js/t2_first_run_guide.js (43,661 B) |
| 업로드 정책 | config/upload_config.php |
| Origin 검사 | config/upload_config.php:229-255 check_request_origin() |
v11에는admin/sections/이 있고config/t2_hard_config.php가 추가되었지만, v10.5.1에는 둘 다 없습니다(404 실측). v11 문안을 v10 서버에 안내하지 마십시오.
N-xx 번호 체계 메모 (2026-09-28 확정)
이 위키의 N- 번호는 2026-09-28에 등록부를 확정하면서 붙였습니다. 확정된 신규 문서는 4건입니다.
| 번호 | 슬러그 | 내용 |
|---|---|---|
| N-02 | N-02-admin-console-guide.md | 통합 관리 페이지 가이드 |
| N-03 | N-03-migration-v9-to-v10.md | v9 → v10 이관 안내서 |
| N-05 | N-05-cms-adapter-and-data-paths.md | CMS 어댑터와 데이터 저장 위치 |
| N-06 | N-06-server-sanitize-and-content-style.md | 서버측 본문 정제와 게시 화면 스타일 |
N-01 · N-04 · N-07은 비어 있습니다. 번호를 미리 예약하면 그 번호가 "예정된 문서가 있다"는 뜻으로 읽히고, 실제로 그런 문서가 생기지 않으면 독자가 찾다 포기합니다. 필요해지는 시점에 그때 번호를 쓰십시오. 이전 문안에서 [[N-02-admin-console-guide.md]]·[[N-05-cms-adapter-and-data-paths.md]]처럼 가리키던 링크는 이 등록부 기준으로 교정되었습니다(N-08 → N-02, 라이믹스 경로는 N-05에 포함).
10. 내가 틀릴 수 있는 것 3가지
- NSFW 필터의 기본값을 확정하지 못했습니다. 화면 설명(
admin/index.core.php:1268)과 토글(T2_NSFW_ENABLED)의 존재는 확인했지만 그 상수의 기본값을 코드의define()지점에서 직접 확인하지 않았습니다. 그래서 §5 표에[확인 필요]로 남겼습니다. B2는 10.5.1 기준false라고 적었으나 저는 그 값을 재확인하지 않았으므로 채택하지 않았습니다. B2가 맞는지 여기서는 모릅니다.
- "도움말 링크가 없다"는 결론은 파일 내용 기준입니다.
admin/index.core.php에 외부 문서 링크가 없다는 것은 확인했습니다. 다만 관리자 화면이 서버 응답으로 만들어지는 부분 중에 제가 읽지 못한 곳이 있을 수 있고, 실제로 로그인했을 때 보이는 탭·버튼이 전부 HTML 정적 문자열인지는 [확인 필요] 입니다.
- §3의 CMS별 인증 표는 코드의 판정 로직을 읽은 것입니다. 실제로 그누보드5/라이믹스에 설치해 확인한 것은 아닙니다. 특히 그누보드5는 10.5.1이 "그누보드5 관리자 로그인 정보를 불러오는 위치가 적절하지 않아" 문제를 고친 판본인데(S1 10.5.1), 그 위치가 CMS 스킨 쪽인지 에디터 쪽인지 코드로만 판단했습니다. 따라서 "이제 잘 됩니다"를 보장하지 않습니다 — 확실한 것은 10.5.0에는 실패했고 10.5.1이 그것을 고쳤다는 릴리즈 노트의 주장까지입니다.