버전 호환성 매트릭스 (현행판 10.5.1 기준)
이 문서는 2026-09-28에 다시 썼습니다.
원본은 target_editor_version: 9.0.0 기준이었고, 버전표가 9.0.0(2026-04-07)에서 멈춰 있었습니다.그 사이 v10 계열 9개 판본이 나왔습니다. 그 구간이 이 문서의 공백이었습니다.
0. 한 줄 요약
| 현행 공개 판본 | 10.5.1 (2026-07-27) |
| EOL | v1 ~ v9 (전부) |
| 개발 중 | v11.0.0-beta1.0.0 (2026-09-07) · 별도 private 저장소 · 공개 배포 아님 |
| 전체 판본 수 | 94개 (v11 베타 포함) |
| 최소 PHP | 7.4.0 — 8.0은 필수가 아닙니다 |
| 자동 설치 자리 | 그누보드5 · 라이믹스 · 독립 실행 3곳 (워드프레스는 브리지) |
1. 판본별 상태 매트릭스
계열 11개 · 합계 94개. 배포일은 all-versions.json 원문 값이며 일자 표기가 80/94건이 2026.03.26 같은 점 형식입니다(표기 혼재는 아래 6절).
| 계열 | 판본 수 | 첫 판본 | 최종판 | 최종판일 | 계열 수명 | 상태 | 판본 존재 근거 | |---|:-:|---|---|---|:-:|---|---| | v1 | 19 | 1.0.0-beta | 1.6.3 | 2025-05-01 | 90일 | EOL | S1b + T2Editor-v1 설명 [EOL] | | v2 | 3 | 2.0.0_B | 2.0.0 | 2025-06-03 | 34일 | EOL | S1b + T2Editor-v2 [EOL] | | v3 | 10 | 3.0.0 | 3.0.9 | 2025-10-06 | 122일 | EOL | S1b + T2Editor-v3 [EOL] | | v4 | 3 | 4.0.0 | 4.0.2 | 2025-10-08 | 2일 | EOL | S1b + T2Editor-v4 [EOL] | | v5 | 32 | 5.1.0-beta1.0.2 | 5.10.0 | 2025-12-08 | 62일 | EOL | S1b + T2Editor-v5 [EOL] | | v6 | 1 | 6.0.0 | 6.0.0 | 2025-12-09 | 1일 | EOL | S1b + T2Editor-v6 [EOL] | | v7 | 3 | 7.0.0 | 7.0.2 | 2025-12-19 | 6일 | EOL | S1b + T2Editor-v7 [EOL] | | v8 | 6 | 8.0.0 | 8.2.0 | 2026-03-26 | 87일 | EOL | S1b + T2Editor-v8 [EOL] | | v9 | 7 | 9.0.0 | 9.3.0 | 2026-05-29 | 53일 | EOL | S1b + T2Editor-v9 [EOL] | | v10 | 9 | 10.0.0 | 10.5.1 | 2026-07-27 | 34일 | 현행 공개 | S1 current_public + T2Editor-v10 설명 계열 상태 현행 공개 판본 | | v11 | 1 | 11.0.0-beta1.0.0 | — | 2026-09-07 | — | 개발 중(비공개) | S1 in_dev + gh api 결과 private: true |
1-1. 계열 EOL 표기의 실측 위치 — 릴리즈 노트에는 없습니다
계열이 끝났다는 표시는 94개 릴리즈 노트 어디에도 계열 단위로는 없습니다. 실제로 측정한 결과:
- 94개 릴리즈 노트(description) 전문 스캔 → 계열 단위 EOL 공지 0/10 계열
- 94개 title 스캔 → 계열 단위 EOL 공지 0건 (1건은 15일 뒤 대체된 베타
1.0.0-beta의 제목 주석) EOL문자열은 GitHub 아카이브 저장소 설명에만 있습니다.tak2-08/T2Editor-v1~T2Editor-v99개 저장소 설명이 각각[EOL] T2Editor vN 계열 배포본 N개 … · 계열 상태 EOL형식입니다. v10 저장소 설명에는[EOL]이 없고계열 상태 현행 공개 판본입니다.- 업그레이드 위험 신호를 릴리즈 노트에서 찾으려고 하면
주의0/94,breaking0/94 입니다. - ⚠ 위 EOL 저장소 9개는 2026-09-27 당일 일괄 생성되었습니다. 즉 최초 0일, 최대 18개월 사후 고지입니다.
따라서 EOL 판정은 배포 노트를 읽어서 알 수 없습니다. 이 표를 보십시오.
1-2. 이 위키가 94판본 중 9개(9.6%)만 알고 있었습니다
| v10 계열 9개 판본 중 이 위키가 언급한 것 | 0개 (0%) |
사용자 대상 15건 중 target_editor_version: 9.0.0 | 15/15건 (100%) |
서버 메타(version_tag)가 빈 값인 문서 | 84건 중 82건 |
서버가 보관하는 판본 정보가 비어 있으므로 문서 frontmatter만이 유일한 판본 기록입니다.
2. PHP 요구사항 — v10 안에서 바뀐 이력 (가장 자주 오독되는 지점)
v10 계열 안에서 PHP 요구사항이 두 번 뒤집혔습니다. 릴리즈 노트만 읽으면 어느 쪽인지 알 수 없습니다.
| 판본 | 날짜 | 릴리즈 노트 원문 (verbatim) | 실제 의미 |
|---|---|---|---|
| 10.0.0 | 2026-06-24 | **php권장 사양이 기존 7.4에서 8.0 이상으로 변경되었습니다.** | 권장 사양 상향. 최소 요건이 8.0으로 바뀐 게 아님 |
| 10.0.1 | 2026-06-27 | **php권장 사양이 기존 7.4에서 8.0 이상으로 변경되었습니다.** | 같은 문장이 반복됨 |
| 10.1.0 | 2026-06-29 | **php7.4 호환 추가!** | 되돌림. 7.4가 다시 정식 지원 범위 |
| 10.5.0 | 2026-07-22 | PHP 7.4부터 8.4까지의 호환 범위를 유지하면서, 일부 함수나 확장 기능이 없는 환경에서 전체 실행이 중단되지 않도록 대체 경로를 추가했습니다. | 하한 7.4 고정, 대체 경로 추가 |
| 10.5.1 | 2026-07-27 | (노트에 PHP 관련 문장 없음) | 코드가 최종 답을 줍니다 |
2-1. 10.5.1 코드가 말하는 최종값 (권위 있는 값)
| 항목 | 값 | 등급 | 근거 (file:line) |
|---|---|---|---|
| 최소 PHP | 7.4.0 | error | admin/environment_api.core.php:219 version_compare(PHP_VERSION, '7.4.0', '>=') |
| 권장 PHP | 8.1 또는 8.2 | — | admin/environment_api.core.php:240-241 신규 운영 환경은 PHP 8.1 또는 8.2를 권장합니다. |
| 기계가 읽는 사양 | minimum: 7.4.0 / tested_through: 8.2 / curl_optional: true / ziparchive_optional: true | — | admin/update_api.core.php:2355 'php_client' => array(...) |
| 필수 PHP 함수 9종 | file_put_contents mkdir rename copy unlink hash_file json_encode json_decode random_bytes | error | admin/environment_api.core.php:152 |
2-2. 이 표에서 바로 답 나오는 질문
Q. 서버 PHP가 7.4인데 10.5.1을 올려도 되나요?
A. 예. 7.4.0이 10.5.1의 최소값이고 7.4는 정식 지원 범위에 포함됩니다. 10.0.0 노트의 "8.0 이상"은 10.1.0에서 이미 되돌려졌습니다. 서버를 8.0으로 올려야 할 이유가 이 문서 기준으로는 없습니다.
Q. 그럼 10.0.0 → 10.1.0 사이(2주)에 8.0으로 올린 서버는?
A. 되돌릴 필요가 없습니다. 7.4 경로가 살아 있고, 8.0 이상에서만 깨지는 코드가 이 문서 기준으로는 없습니다. [확인 필요] — 10.0.0~10.0.1에서 8.0+ 전용 API를 쓴 흔적은 10.5.1 코드로 역추적할 수 없습니다(10.0.0 판본 실물 미확보).
Q. PHP 8.4에서도 되나요?
A. 미확인. 릴리즈 노트는 "7.4부터 8.4까지"라 하고 코드가 노출하는 사양은 tested_through: 8.2 입니다. 두 1차 근거가 다릅니다. 8.3~8.4에서 실제로 검증됐는지는 이 문서로 답할 수 없습니다. 운영 환경이라면 8.2를 권장합니다(진단 코드도 8.1/8.2를 권장).Q. PHP 8.5 이상은?
A. 미확인. 어느 1차 근거에도 8.5 언급이 없습니다.
Q. disable_functions에 뭘 빼놓으면 안 되나요?A. 위 9종. 하나라도 빠지면 업데이트·설치가 error 로 멈춥니다. 진단 화면이 정확한 함수명을 알려 줍니다.Q.max_execution_time/memory_limit?
A. 각각 120초 이상 / 128M 이상을 권장하며warning등급입니다(설치 차단 아님).admin/environment_api.core.php:169-190.
3. CMS 연동 매트릭스 (v10.5.1 코드 실측)
판본이 자동으로 어떻게 결정되는지 integration/cms/adapters/ 네 개가 답합니다.
| CMS | 설치 경로 | 자동 감지 근거 (실측) | 감지 우선순위 | 데이터 경로 | 관리자 인증 | |---|---|---|:-:|---|---| | 그누보드5 | <g5>/plugin/editor/t2editor/ | 편집기 폴더가 <root>/plugin/editor 안 + config.php·common.php·lib/common.lib.php 3개 존재 + config.php에 _GNUBOARD_ 정의 | 300 (1순위) | 미디어 <g5>/data/editor · 내부 데이터 <g5>/data/t2editor_db | CMS 관리자 로그인 또는 자체 비밀번호 (10.5.1부터) | | 라이믹스 | <rx>/modules/editor/skins/t2editor/ | 편집기 폴더가 <root>/modules/editor/skins 안 + config/config.inc.php 존재 + (common/autoload.php 또는 defaults/config.php 또는 common/defaults/config.php) | 250 (2순위) | <rx>/files | 동일 | | 독립 실행 | 웹에서 보이는 아무 폴더 | 위 둘 어디에도 걸리지 않으면 항상 최종 fallback | −1000 (최후) | <에디터폴더>/data | 자체 비밀번호 필수 | | 워드프레스 | 설치 자리가 아님 | — (환경 감지 판정 함수가 항상 false 반환) | 200 (우선순위 있으나 감지 안 됨) | 워드프레스 미디어 라이브러리 경유 | 워드프레스 capability |
근거: integration/cms/adapters/gnuboard5.php:9-14, 96-98, 113-130 · rhymix.php:9-14, 152-161 · standalone.php:5-12 · wordpress.php:3, 90-96
3-1. ⭐ 워드프레스는 "지원한다"가 아니라 "브리지만 준다"
이 행은 이전 문서에서 오독되기 쉬웠으므로 코드 원문으로 적습니다.
integration/cms/adapters/wordpress.php:3원문 주석:
워드프레스는 설치환경 감지가 아니라 선택적 업로드·브라우저 브리지 capability만 제공한다.integration/cms/adapters/wordpress.php:93—'validate_context' => function () { return false; }
⇒ 워드프레스 어댑터는 환경 감지에서 한 번도 선택되지 않습니다.
그래서 워드프레스 사용자가 받는 것과 받지 못하는 것:
| 워드프레스에서 v10.5.1이 제공 | 근거 | |
|---|---|---|
| ✅ | 워드프레스 미디어 라이브러리(media_handle_upload)를 거치는 업로드 | wordpress.php:33-60 |
| ✅ | 워드프레스 nonce(_wpnonce)·upload_files 권한·게시물 편집 권한 검증 | wordpress.php:45-47 |
| ✅ | 워드프레스 첫 화면에 붙은 wp-load.php 자동 로드 | wordpress.php:16-27 |
| ❌ | CMS 관리자 로그인 연동 | 워드프레스는 어댑터가 CMS로 등록되지 않음 |
| ❌ | 그누보드5·라이믹스식 데이터 경로 분리 | 같은 사유 |
| ❌ | T2Editor 자체 관리자 비밀번호 게이트의 CMS 연동 경로 | 같은 사유 |
워드프레스 최소 지원 판본: [확인 필요]. 릴리즈 노트 10.3.0에 "워드프레스 업로드 연동 지원"이라는 한 줄만 있고 최소 판본·최소 PHP 표기가 없습니다.
3-2. 그누보드5·라이믹스 최소 지원 판본: [확인 필요]
- 그누보드5 — 코드에는
_GNUBOARD_정의가 있는지만 봅니다. 판본 하한을 검사하는 코드가 없습니다. 8.x 판본 실물도 없어 v10 계열의 하한을 확정할 수 없습니다. - 라이믹스 — 10.3.0 노트에 "라이믹스 2.1.x 호환성 추가"가 있습니다. 그 이전 판본에서 v10.5.1이 동작하는지에 대한 코드가 없습니다(
RX_VERSION분기 0건). 2.1.x 미만 지원 여부는 [확인 필요].
3-3. CMS별로 데이터가 쌓이는 곳이 다릅니다 (백업·옮길 때 필수)
| 설치 자리 | 업로드 미디어 | 내부 데이터(관리자 설정·인증·협업·업데이트 기록) |
|---|---|---|
| 그누보드5 | <g5>/data/editor | <g5>/data/t2editor_db |
| 라이믹스 | <rx>/files (라이믹스 파일 모듈) | <rx>/files 하위 |
| 독립 실행 | <에디터폴더>/data | <에디터폴더>/data/t2editor_db |
10.5.0에서 이 구조를 다시 정리했습니다 (10.5.1이 그누보드5 경로를 확정):
- 10.5.0 — "그누보드5에서는 data/editor, 라이믹스에서는 files, 독립 실행 환경에서는 T2Editor/data를 기준으로 데이터를 관리합니다. 업로드 미디어를 제외한 관리자 설정, 캐시, 협업 상태, 업데이트 상태 등의 내부 데이터는 t2editor_db 아래에 모아 CMS 데이터 폴더가 불필요하게 복잡해지지 않도록 했습니다. 기존 위치에 저장된 데이터와 경로 정보는 가능한 범위에서 새 구조로 이전하거나 계속 인식합니다."
- 10.5.1 — "이미지와 첨부파일은 기존처럼 data/editor 폴더에 저장됩니다. 관리자 설정, 인증 정보, 협업 데이터, 업데이트 기록, 서드파티 설치 정보는 data/t2editor_db 폴더에 별도로 저장됩니다. 기존 data/editor/t2editor_db 데이터는 새 위치로 자동 이전됩니다."
코드: config/t2_storage.php:253-258 (이전 중첩 위치 <데이터>/editor/t2editor_db 인식), :345-364 (실제 이전)
3-4. CMS 감지가 실패해 보일 때 (실측된 실패 패턴)
| 증상 | 원인 | 근거 |
|---|---|---|
| CMS로 인식되지 않고 독립 실행으로 빠짐 | 위 표의 감지 조건 중 하나가 안 맞음 | adapters/gnuboard5.php:9-14 |
| 서브폴더 설치 + CMS 파일 구조가 겹침 | 10.5.0에서 수정됨 | 10.5.0 "서브폴더 설치, T2Pack 데이터 슬롯 실행과 CMS 파일 구조가 겹치는 환경에서도 실제 T2Editor 설치 위치와 CMS 루트를 구분하도록 수정했습니다." |
| 한 CMS 어댑터 오류가 다른 기능까지 전파 | 10.5.0에서 분리함 | 10.5.0 "CMS 어댑터 하나에서 오류가 발생해도 다른 환경의 처리나 일반 에디터 기능으로 오류가 전파되지 않도록 했습니다." |
| 그누보드5 관리자인데도 "관리자 로그인 필요" 안내 | 10.5.0에서 발생, 10.5.1에서 수정 | 10.5.1 "그누보드5 로그인 정보를 불러오는 위치가 적절하지 않아 관리자 상태가 정상적으로 전달되지 않는 것이 원인이었습니다." |
4. PHP 확장 매트릭스 (v10.5.1 · PHP 파일 86개 전수 검색)
검색 범위: releases/v10.5.1 트리의 .php 86개 전부. grep 0건은 "쓰지 않는다"는 뜻이지 "설치해도 된다"는 보장은 아닙니다.
| 확장 / 기능 | 쓰이는 곳 (전수 grep) | 판정 | 등급 | 근거 |
|---|---|---|---|---|
json (json_encode/json_decode) | 필수 함수 목록 | 필수 | error | admin/environment_api.core.php:152 |
| disable_functions 9종 | admin/environment_api.core.php:152 | 필수 | error | 위 목록 |
| cURL | 업데이트는 curl 또는 openssl+allow_url_fopen로 대체 가능. 서드파티 마켓 설치는 cURL 반드시 필요 | 조건부 필수 | error | admin/environment_api.core.php:222-223, 256-266, 288-297 |
OpenSSL + allow_url_fopen | cURL 대체 전송 경로 | 조건부 필수 | error (조합) | admin/environment_api.core.php:222-223 |
| zip (ZipArchive) | 6개 파일. 없으면 gzinflate(zlib) → 그것도 없으면 관리자 브라우저 보조 해제 | 선택 | warning | admin/environment_api.core.php:223-224, 267-280 / 10.5.0 |
zlib (gzinflate) | ZipArchive 대체 | 조건부 | warning | admin/environment_api.core.php:224 |
| mbstring | polyfill만 존재(config/t2_compat.php·config/t2_utf8.php 전수 grep 1파일) | 선택 | — | config/t2_compat.php:10-45, config/t2_utf8.php:9-16, 30-40 / 10.5.0 "mbstring 확장이 없는 서버에서도 iconv 또는 UTF-8 대체 처리로 주요 문자열 기능을 사용할 수 있도록 보완했습니다." |
| iconv | 3개 파일 (config/t2_utf8.php, admin/api.core.php, admin/index.core.php) | 선택 (mbstring 대체 제공자) | — | 전수 grep |
| gd | plugin/image/image_upload.core.php 단 1개 파일. WebP 변환 전용이며, 없으면 검증된 원본을 그대로 저장 | 선택 | — | plugin/image/image_upload.core.php:237-260 (가드 :249) |
| imagick | 86파일 0건 | 미사용 | — | 전수 grep |
| fileinfo | 86파일 0건 (finfo_open 0건). 주석 2건이 오히려 "불필요"를 명시 | 미사용 | — | config/upload_config.php:32 "server-side identification uses signatures so Fileinfo is not required." :83 "server validation uses signatures without Fileinfo." |
| dom (ext-dom) | plugin/linkcard/linkcard_fetch.core.php 단 1개 파일 | 링크 미리보기 카드에서만 필요 | [확인 필요] | :230-238 new DOMDocument(). class_exists('DOMDocument') 가드 0건, 호출은 :434 에서 무조건. → 확장 부재 시 이 경로 폴백 코드가 없습니다. |
max_execution_time ≥ 120 | 진단 | 권장 | warning | admin/environment_api.core.php:169-180 |
memory_limit ≥ 128M | 진단 | 권장 | warning | admin/environment_api.core.php:182-190 |
4-1. ⭐ "이 조합에선 안 된다"고 말할 수 있는 칸
기존 문서가 댓글에서 발견하도록 방치했던 부분을 여기서 고백합니다.
1. ext-dom이 없으면 "링크 미리보기 카드"가 위험합니다.
v10.5.1의 링크 미리보기 카드는 웹 페이지를 받아new DOMDocument()로 파싱합니다. 확장 존재 검사가 코드에 없습니다. ext-dom이 없는 서버에서 이 경로가 도달하면 어떻게 되는지는 런타임에서 재현하지 않았으므로 [확인 필요] 로 둡니다. 다만 폴백 코드가 없다는 것은 확인했습니다(전수 grepclass_exists('DOMDocument')0건).
우회: 그 기능이 필요 없다면 끄면 됩니다. 필요하면 서버 관리자에게 ext-dom 설치를 요청하십시오.
2. cURL도 없고 OpenSSL도 없는 서버는 업데이트·서드파티 설치가 막힙니다.
코드가 error 로 판정합니다. ZIP 처리에 브라우저 폴백이 있는 것과 파일을 내려받는 수송 경로가 막힌 것은 다른 문제입니다. 브라우저 보조 해제는 ZIP을 여는 단계의 대체일 뿐, 원본 ZIP을 받아올 수송 자체는 못 대체합니다.3. mbstring도 iconv도 없는 서버의 문자열 처리 정확도는 [확인 필요]입니다.
v10.5.1은 "UTF-8 대체 처리" 경로를 넣었습니다(config/t2_utf8.php). 그 경로가 mbstring과 같은 결과를 내는지 이 문서에서는 재현하지 않았습니다. 정확한 문자가 필요한 곳(예: 파일명 바이트 단위 처리)에서 문제가 생길 수 있다는 뜻이며, 실제로 생기는지는 미확인입니다.4. GD가 없으면 WebP 변환이 안 됩니다 — 업로드 자체는 됩니다.
GIF/WebP는 변환 없이 원본 저장, JPEG/PNG/BMP는 GD가 있을 때만 WebP로 변환하고 없으면 원본 확장자로 저장합니다. 따라서 "GD가 없다"는 이유로 업로드가 실패하면 안 됩니다. 실패한다면 원인은 GD가 아니라 권한·확장자·용량입니다.
5. 그누보드5가 관리자라는데 CMS 로그인이 안 되면 10.5.1에서도 남아 있는 경로가 있습니다.
10.5.1 자체 로그인이 생겼으므로, CMS 인증이 실패해도 admin/t2admin.key 활성화 + 자체 비밀번호로 관리자 페이지에 들어갈 수 있습니다.5. 권한·설치 방식 매트릭스 (v10.5.1)
| 항목 | 값 | 근거 |
|---|---|---|
| 데이터 경로 최소 권장 권한 | 707 | extend/js/t2_first_run_guide.js:33, 66 / 10.5.0 |
| 777 | 동작은 하지만 권장하지 않음 | t2_first_run_guide.js:33, 37, 67 / 10.5.0 |
| 쓰기 권한을 줄 곳 | 공용 데이터 경로 하나만 | t2_first_run_guide.js:427 "T2Editor 원본 코드, plugin, extend, locales 전체를 쓰기 가능하게 만들지 마세요." |
| 숫자보다 시험 | 실제 PHP 파일 생성·쓰기·삭제 시험이 통과하면 현재 권한 유지 | t2_first_run_guide.js:67 / 10.5.0 |
| 설치 방식 기본값 | data 슬롯 방식(에디터 폴더를 쓰지 않고 공용 데이터 쪽에 설치) | admin/environment_api.core.php:192-201 t2env_install_mode() 기본값 data |
| 설치 방식 선택 | direct(원본 폴더 직접 교체)도 가능. 관리자 → 업데이트 | 10.4.0 "원래 폴더에 직접 업데이트하는 방식도 선택할 수 있는데" |
| 최초 설치 게이트 | admin/t2admin.key.txt → admin/t2admin.key 이름 변경 + 관리자 비밀번호 + 쓰기 시험 + 안내 완독. 통과 전까지 편집 잠김 | t2_first_run_guide.js:19, 307 / 10.4.0, 10.5.1 |
루트 collab 폴더 | 만들지 마십시오. 협업 데이터는 data/t2editor_db/collab | tree 349항목에서 collab는 data/t2editor_db/collab 와 plugin/collab 두 갈래뿐 |
⚠ 775를 넣지 마십시오. 775는 v11 계약입니다(T2Editor v11 설치 문서 기준). v10 계약은 707입니다. 판본이 다르면 계약이 다릅니다.6. 데이터 그 자체에 관한 주의 (사용자 영향이 큽니다)
| 항목 | 실측 내용 | 근거 |
|---|---|---|
| 배포일 표기 혼재 | 94건 중 80건(85.1%) 이 2026.03.26 같은 점 형식. 2026-06-24 이후 14건만 2026-06-24 형식 | all-versions.json release_date 필드 전수 |
| 배포 파형 | 판본 수 대비 다운로드 수가 1배열(88/94건이 정확히 1) | all-versions.json download_count |
| 계열 수명 중앙값 | 42.5일. 10계열 중 9개가 90일 이내 교체 | 계열별 수명 전수 계산 |
| 계열 전환 리듬 | 10회 중 9회가 30일 이내 전환 | 배포일 간격 전수 계산 |
| 브레이킹체인지 공지 | 주의 0/94, breaking 0/94 | 릴리즈 노트 전문 스캔 |
| 업그레이드 요약표 | 94판본 역사에서 릴리즈 노트 안의 업그레이드 영향 요약은 0건 | 릴리즈 노트 전문 스캔 |
이 표가 뜻하는 것: v10 계열도 34일 만에 9판본으로 교체되며, 계열이 끝날 때 이를 알리는 신호가 릴리즈 노트에 없습니다. 5절의 판본표가 유일한 안내지입니다. 업그레이드 전에 이 문서를 다시 확인하십시오.
⚠ 또한, 10.0.0에는 업그레이드 영향 요약표가 없습니다. 10.0.0은 아키텍처를 바꿨는데도 "이렇게 오르지 마라"는 안내가 없습니다. v9 → v10 이관이 필요한 사람은 N-03-migration-v9-to-v10.md를 보십시오.
7. 판본을 확인하는 방법 (v10.5.1 실측 4가지)
readme.txt 안에 버전 숫자가 두 개 있습니다. 먼저 그 구분이 필요합니다.
| # | 방법 | 무엇을 보는가 | 근거 | |:-:|---|---|---| | 1 | 배포판 루트 readme.txt 2행 | ver_10.5.1 ← 에디터 판본 | readme.txt:2 / 판독 코드 editor.core.php:415-422 get_readme_version() = preg_match('/ver_([0-9.]+)/') | | 2 | 에디터 하단 버전 정보 클릭 → 진단 패널 | 실행 환경·미디어 블록 크기·저장 필드 | editor.core.php:553 / 10.3.0 노트 | | 3 | 관리자 페이지 버전 정보 (로그인 필요) | get_readme_version() 반환값 | admin/api.core.php:464 | | 4 | 관리자 페이지 → 업데이트 | 새 판본 존재 여부 | admin/update_api.core.php:2434 |
⚠readme.txt의Version: 3.0.0은 에디터 버전이 아닙니다.readme.txt:11의Version: 3.0.0은 라이선스 계약 판본입니다(:70영어 절에도 동일). 에디터 판본은 같은 파일 2행의ver_값입니다. 이 둘을 혼동하면 안 됩니다.
7-1. 배포판에 없는 파일 (알려진 혼동)
| 존재하지 않음 | 실물 위치 |
|---|---|
license.txt / license_en.txt / license_kr.txt | 라이선스는 readme.txt 한 파일 안에 한·영 두 언어로 있음 |
version.txt | 배포판 트리에 없음. 자동 판독의 후보 경로 중 하나일 뿐 |
update-manifest.json | 업데이트 시 생성. 배포판에 없음 |
루트 collab/ | data/t2editor_db/collab + plugin/collab |
endpoints/ | v10에는 없음(루트 t2_css_min.php 1개) |
config/t2_sanitize.php | v11 전용 |
7-2. 라이선스 검증이 실제로 무엇을 비교하는가
editor.core.php:396-404 — readme.txt의 한글 조항·영문 조항·파일 참조 정보 각 해시를 내장 기대값과 hash_equals 로 비교합니다. 즉 판본별 라이선스 파일이 아니라 파일 내용 대조 방식입니다. readme.txt를 직접 편집하면 인증이 깨집니다.
8. v11 을 준비한다면 (v10에 없는 것 — 사실 목록)
v11은 2026-09-07 베타이고 별도 private 저장소이며 공개 배포판이 아닙니다. 그래서 이 목록은 "지금 쓰라"는 권고가 아니라 "v10에서 찾지 못하시면 그것도 이유입니다"라는 설명입니다.
| v11에 있는 것 | v10.5.1 실측 |
|---|---|
서버단 XSS 필터(T2Esanhtml(), config/t2_sanitize.php, integration/sanitize/providers/) | 없음 — 트리에 파일 없음, PHP 86파일 전수 grep 0건 |
발행 본문 스타일 번들(endpoints/t2_css_min.php?bundle=content, 로더 JS, T2Econtentstyleattach()) | 없음 — 루트 t2_css_min.php는 단일 파일 축소기. 4개 심볼 grep 0건 |
호스트 보안 capability 표(config/t2_cms_security.php, T2Ehostsecuritysnapshot()) | 없음 — grep 0건 |
| ext-dom·fileinfo를 요구사항으로 안내 | v10.5.1은 둘 다 미사용 (4절) |
주의: 이 목록 때문에 "v10이 안전하지 않다"고 읽으면 오독입니다. 이 문서는 v10 안에서 고르는 문서이지, v11을 권하는 문서가 아닙니다. v10을 쓰는 분은 3절·4절의 매트릭스가 답입니다.
9. 미확인 칸 목록 (근거가 없어 지어내지 않은 것)
이 문서에 남긴 미확인 / [확인 필요] 전부입니다. 지어낸 값은 없습니다.
| # | 항목 | 왜 미확인인가 | 채우는 방법 | |:-:|---|---|---| | 1 | PHP 8.4 실지원 여부 | 릴리즈 노트는 "7.4~8.4", 코드는 tested_through: 8.2 — 1차 근거 2개가 서로 다름 | 8.4 서버에서 v10.5.1 실제 설치·글쓰기 | | 2 | PHP 8.5 이상 | 어느 1차 근거에도 언급 없음 | 동일 | | 3 | 그누보드5 최소 지원 판본 | 코드에 판-version 검사가 없고 v9 이하 실물 소스 없음 | 그누보드5 각 판본 환경에서 v10.5.1 설치 시험 | | 4 | 라이믹스 최소 지원 판본 | 10.3.0이 "2.1.x 호환 추가", 그 이전 분기 코드 없음 | 2.1.x 이전 환경 시험 | | 5 | 워드프레스 최소 지원 판본·PHP | 10.3.0 한 줄 외 표기 없음 | 워드프레스 환경에서 브리지 업로드 시험 | | 6 | ext-dom 부재 시 링크 미리보기 카드 동작 | 폴백 코드 0건은 확인, 실제 동작은 재현 안 함 | ext-dom 제거 환경에서 링크 주소 붙여넣기 | | 7 | mbstring+iconv 동시 부재 시 문자열 처리 정확도 | 대체 경로 존재는 확인, 결과 동일성은 미측정 | 두 확장을 끈 서버에서 한글 파일명 업로드 | | 8 | v9 이하 판본의 PHP 요구사항 | 8.x·9.x 실물 소스 미확보 | releases/v9.3.0 등 브랜치 트리 확인 | | 9 | v9 → v10 커스텀 플러그인 hook API 1:1 대응표 | v9 실물 소스 없음 | 두 판본 트리 병렬 대조 | | 10 | v9의 collab 폴더 구조·권한 계약 | v9 실물 소스 없음 | 동일 | | 11 | 8.x 라이선스 누락 사례의 진실 | 8.x 실물 소스 없음 | 동일 | | 12 | 5.7.2 라이선스 정책 변경 내용 | 판본은 실존하나 변경 내용 1차 근거 없음 | 5.7.2 readme.txt 원문 대조 | | 13 | 10.0.0~10.0.1에서 8.0+ 전용 API 사용 여부 | 그 판본 실물 미확보 | 해당 브랜치 트리 | | 14 | 배포 파형(download_count=1)의 행위 주체 | 판본 목록만으로는 판정 불가 | — (기존 문서의 해석 금지 문구를 따름) | | 15 | 워드프레스 어댑터 우선순위 200의 실효성 | 감지 함수가 항상 false 라 관측 불가 | 코드 변경 이력 확인 |
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. 참고 자료
- 공식 배포판 목록(94판본): 이 위키 내부 데이터
all-versions.json - 공식 릴리즈 노트(v10 9건 전문): 이 위키 내부 데이터
v10-release-notes.json - 배포판 실물:
tak2-08/T2Editor-v10저장소 · 브랜치releases/v10.5.1 - 계열 상태:
tak2-08/T2Editor-v1~T2Editor-v11저장소 설명 - v11 설치·연동 문서:
T2Editor v11guide.txt(v10 항목이 아님을 구분하는 용도로만 인용) - 판본별 이슈 대응: 72-version-issues-guide.md
- 최초 설치 절차: 01-installation-guide.md
- 오류 대응: 71-error-handling-guide.md
- v9 → v10 이관: N-03-migration-v9-to-v10.md
11. 문서 관리 메모
- 9절의 미확인 칸이 줄었다면 "알려지지 않았다"가 "문제가 없다"로 읽힙니다. 칸을 지우지 말고 9절 표를 같이 고치십시오.
- 이 문서는 판본이 바뀌면 매트릭스 전체가 낡습니다. 현행판이 바뀌면 1절·2절·7절을 먼저 고치고 나머지를 검토하십시오.
- 6절 수치는 배포 판본 목록에서 기계로 다시 뽑을 수 있습니다. 사람이 옮겨 적지 마십시오.
- 어떤 칸에
미확인이 있으면 그 칸을 지우지 말고 §9 표를 함께 고치십시오. 지워지면 "알려지지 않았다"가 "문제가 없다"로 읽힙니다.