v9에서 v10으로 올리기
이 문서는 2026-09-28에 새로 썼습니다.
이전에는 이 위키에 이관 안내서가 아예 없었습니다. 15건 사용자 문서 중 v10 계열 9개 판본을 언급한 문서가 0건이었고, 그 결과 이관이 필요한 사람이 어디서 시작해야 하는지 알 수 없었습니다.
>
한 가지 먼저: 이 문서는 10.5.1로 한 번에 오르는 길을 씁니다. 10.0.0을 거치는 경로는 쓰지 마십시오. 중간 판본은 2~5일 간격으로 연속 배포됐고(10.0.0 → 10.5.1 = 34일), 10.5.0과 10.5.1이 그 사이의 파손을 다 고쳤습니다.
1. 먼저 현재 판전을 확인하십시오
| 목표 | 10.5.1 (2026-07-27) — 현행 공개 판본 |
| 출발 | v9 계열(9.0.0 ~ 9.3.0) — EOL |
| 왜 v9에서 v10인가 | 9.3.0(2026-05-29)이 v9의 마지막 판본이고, 그다음이 10.0.0(2026-06-24)입니다. 9.x로 되돌아갈 판본이 없습니다. |
내가 지금 무슨 판본인지 모르겠다면: 배포판 루트 readme.txt 의 2행을 여십시오. ver_10.5.1 처럼 되어 있습니다. 그 숫자가 판본입니다.
⚠readme.txt안에Version: 3.0.0이라는 숫자가 하나 더 있습니다. 그건 라이선스 계약 판본이고 에디터 버전이 아닙니다. 두 숫자를 혼동하지 마십시오.
근거:readme.txt:2ver_10.5.1/readme.txt:11Version: 3.0.0/ 판독 코드editor.core.php:415-422
2. 왜 올라가야 하는가 (릴리즈 노트 인용)
2-1. 기능
| 판본 | 날짜 | 무엇이 달라졌나 (릴리즈 노트에서 인용) |
|---|---|---|
| 10.0.0 | 2026-06-24 | "아키텍쳐 대개편" — hook 도입으로 중앙 집중형 → 분산형. "기존에는 플러그인 개발 시 editor.lib.php 코어를 수정해야 했으나 10.0.0에서는 플러그인만 수정하면 적용 완료." 협업이 JSON 파일 업데이트 방식에서 P2P + 서버 하이브리드로 바뀌고, P2P 보안 채팅·파일 공유·커서/드래그 공유 추가 |
| 10.0.1 | 2026-06-27 | search, link, ai_rerrange, collab, meme, ai, clipurl, export 8개 플러그인에 hook 적용 |
| 10.1.0 | 2026-06-29 | /extend 도입 — extend/php/(서버)·extend/js/(클라이언트)에 파일을 넣으면 자동 로드. "업데이트 후에도 extend/ 폴더의 내용은 유지됩니다." |
| 10.2.0 | 2026-07-05 | AI가 플러그인에서 공통 베이스 시스템(t2llm.js, t2ai_core.js)으로 진화. LLM API 셀프 호스팅 가능. 관리자가 코어 하드코딩 없이 플러그인 순서·반응형 메뉴바·다크모드·업로드 설정 관리 |
| 10.3.0 | 2026-07-16 | 다국어(한·영·일·중), 붙여넣기 개선, 링크 미리보기 카드, AI 실시간 스트리밍, 영상 공유 링크, HLS P2P 재생, 영상 실시간 채팅, 라이믹스 2.1.x 호환, 워드프레스 업로드 연동 |
| 10.3.1 | 2026-07-20 | 모바일 툴바 안 보임 수정, T2Meme·T2Search의 dsclub 의존 크로스 이슈 해결 |
| 10.4.0 | 2026-07-20 | 최초 설치 안내 화면, 통합 관리 페이지, 자동 업데이트(되돌리기 포함), 확장 마켓, 드래그앤드롭 업로드, 표 셀 병합/분할, 편집창 크기 조절, NSFW 필터 내장화 |
| 10.5.0 | 2026-07-22 | CMS 관리자 권한 연동, CMS별 데이터 경로 정리, 707 안내 개편, 편집 기본 동작 전면 정비(커서·붙여넣기·Enter·Undo), GIF 업로드 500 해결 |
| 10.5.1 | 2026-07-27 | CMS 환경 자체 로그인, 그누보드5 data/t2editor_db 분리, 관리자 대시보드 무한로딩 수정, 손상문자 빈 화면 수정, 내부 폴더 접근 보호 |
2-2. ⭐ 올라가야 하는 가장 실용적인 이유 3가지
- 9.x로 돌아갈 곳이 없습니다. 9.3.0이 마지막이고 그 이후 계열은 전부 10.x입니다.
- 그누보드5 관리자 인증 문제가 10.5.1에서 고쳐졌습니다. 9.x 계열에서 "관리자인데 T2Editor는 로그인 필요 안내"가 나오는 증상은 10.5.1이 정면으로 고칩니다.
10.5.1 원문: "그누보드5 관리자로 로그인했는데도 T2Editor에서 그누보드5 관리자 로그인 필요 안내만 표시되는 문제가 있었습니다. 10.5.1에서는 그누보드5 관리자 정보를 정상적으로 확인할 수 있도록 인증 초기화 방식을 수정했습니다."
- 자동 업데이트와 되돌리기가 생겼습니다. 10.4.0부터 관리자 화면에서 업데이트를 하고, 문제가 생기면 거기로 되돌립니다. 이 기능이 없는 9.x에서는 매번 수동으로 ZIP을 갈아끼우셨을 것입니다.
2-3. ⚠ 올라간다고 좋아지는 것이 아닌 것 (이 문서가important한 이유)
- 서버단 본문 필터는 v10에도 없습니다. v10.5.1에는 브라우저 안의 검사만 있고, 저장 지점에서 본문을 걸러 주는
T2Esanhtml()같은 함수가 없습니다(트리·86개 PHP 파일 전수 검색 0건). 그 기능은 v11에 있습니다. "v10으로 올리면 안전해진다"고 읽으면 안 됩니다. - v10 계열도 34일 만에 9판본으로 교체됐습니다. 9.x가 오래 갔던 것만큼 v10이 오래 갈다는 보장은 없습니다. 상태는 06-version-compatibility-guide.md 6절에서 확인하십시오.
- 10.0.0 릴리즈 노트에는 업그레이드 영향 요약이 없습니다. 94판본 역사 전체에서 릴리즈 노트 안에 있는 업그레이드 영향 요약은 0건입니다. 즉 공식 채널이 이관 위험을 알려주지 않습니다. 이 문서가 그 대체입니다.
3. 올라가기 전에 반드시 알아야 할 파괴적 변경
각 항목은 릴리즈 노트 원문과 10.5.1 코드 실측으로 뒷받침합니다.
3-1. ⚠ PHP 요구사항 — 가장 많이 오독되는 항목
| 판본 | 릴리즈 노트 원문 | 실제로 무슨 일이 있었나 |
|---|---|---|
| 10.0.0 · 10.0.1 | **php권장 사양이 기존 7.4에서 8.0 이상으로 변경되었습니다.** | 권장 사양만 올랐습니다. 최소 요건이 8.0이 된 게 아닙니다 |
| 10.1.0 | **php7.4 호환 추가!** | 바로 되돌렸습니다 |
| 10.5.0 | PHP 7.4부터 8.4까지의 호환 범위를 유지하면서 | 7.4 하한 확정 + 대체 경로 추가 |
결론: PHP 7.4 서버에서 10.5.1로 바로 올라가도 됩니다. 8.0으로 올릴 필요가 없습니다. 코드 근거: admin/environment_api.core.php:219 version_compare(PHP_VERSION, '7.4.0', '>=') (error 등급) · :240-241 "신규 운영 환경은 PHP 8.1 또는 8.2를 권장합니다."
⚠ 10.0.0이나 10.0.1을 거치는 사람을 위해: 거치지 마십시오. PHP가 8.0이어야 한다고 믿고 서버를 올렸다면 그 변경은 되돌릴 수 있습니다.
3-2. ⚠ 관리자 인증 방식이 바뀌었습니다 (10.5.0)
10.5.0에서 그누보드5·라이믹스 사용자는 T2Editor 전용 관리자 비밀번호를 새로 입력하지 않고 CMS 관리자 로그인 상태로 관리자 권한을 확인하게 됩니다.
10.5.0 원문: "그누보드5와 라이믹스에서는 T2Editor 전용 관리자 비밀번호를 별도로 입력하는 대신, 현재 CMS의 관리자 로그인 상태를 이용해 T2Editor 관리자 권한을 확인하도록 변경했습니다."
10.5.0에서 문제가 생겼고 10.5.1이 고쳤습니다 — 그래서 10.5.0에 머물지 마십시오.
10.5.1 원문: "10.5.0에서는 그누보드5나 라이믹스가 감지되면 T2Editor 자체 로그인을 사용할 수 없었습니다. CMS 관리자 인증이 실패하면 관리자 페이지에 접근할 다른 방법이 없었습니다. 10.5.1에서는 CMS 환경에서도 T2Editor 자체 로그인 화면으로 이동할 수 있도록 수정했습니다."
되돌아갈 경로는 있습니다 — 자체 로그인:
10.5.1 원문: "admin/t2admin.key.txt 파일을 admin/t2admin.key로 변경하고 자체 관리자 비밀번호를 설정하면 자체 로그인을 사용할 수 있습니다."
3-3. ⚠ 데이터 경로가 재편되었습니다 (10.5.0 → 10.5.1)
| 환경 | 업로드 미디어 | 내부 데이터 (관리자 설정·인증·협업·업데이트 기록) |
|---|---|---|
| 그누보드5 (9.x) | <g5>/data/editor | <g5>/data/editor/t2editor_db ← 이전 위치 |
| 그누보드5 (10.5.1) | <g5>/data/editor (유지) | <g5>/data/t2editor_db ← 새 위치 |
| 라이믹스 (10.5.0~) | <rx>/files | <rx>/files 하위 |
| 독립 실행 | <에디터폴더>/data | <에디터폴더>/data/t2editor_db |
10.5.1 원문: "이미지와 첨부파일은 기존처럼 data/editor 폴더에 저장됩니다. 관리자 설정, 인증 정보, 협업 데이터, 업데이트 기록, 서드파티 설치 정보는 data/t2editor_db 폴더에 별도로 저장됩니다. 기존 data/editor/t2editor_db 데이터는 새 위치로 자동 이전됩니다."
자동 이동하지만, 알아두십시오. 자동 이동이 실패하는 경우는 코드에 fallback 장치가 있습니다:
10.5.0 원문: "기존 위치에 저장된 데이터와 경로 정보는 가능한 범위에서 새 구조로 이전하거나 계속 인식합니다."
코드 근거: config/t2_storage.php:253-258(이전 중첩 위치 인식) · :345-364(실제 이전) · :427-428("이전된 설정 안에 남아 있던 과거 경로도 새 경로에 맞게 자동으로 변경")
⚠ 직접 손댄 플러그인이 data/editor/t2editor_db에 파일을 쓰고 있었다면 그 경로는 더 이상 읽히지 않을 수 있습니다. 그런 플러그인이 있다면 이관 전에 확인하십시오. [확인 필요] — v9 실물 소스가 없어 "그런 플러그인이 실제로 있었는지"는 확인하지 못했습니다.3-4. ⚠ CMS 연결 구조가 코어에서 분리되었습니다 (10.5.0)
10.5.0 원문: "그누보드5와 라이믹스 관련 처리를 에디터 코어와 각 플러그인에 흩어 놓지 않고, CMS별 연결 계층으로 분리했습니다. … 기존 10.4.0의 공개 함수와 라이믹스 스킨 연결 구조는 계속 사용할 수 있도록 호환성을 유지했습니다."
10.4.0 공개 함수는 계속 쓸 수 있습니다. 다만 코어 파일(editor.core.php, config/)에 그누보드5·라이믹스 상수를 직접 하드코딩한custom code는 어댑터 계층으로 옮겨야 합니다. 10.2.0이 방향을 이미 껐습니다:
10.2.0 원문: "더이상 코어(editor.lib.php, /config) 하드코딩 수정없이 플러그인 순서, 반응형 메뉴바 수정, 다크모드 설정, nafw 설정, 업로드 설정 등이 가능해졌습니다."
3-5. ⚠ 최초 설치 게이트가 생겼습니다 — 통과하지 않으면 편집기가 잠깁니다
v10 계열은 최초 설정을 마치기 전까지 편집 기능이 잠깁니다. v9에서 올라온 분에게는 이 단계가 없던 일입니다.
admin/t2admin.key.txt→admin/t2admin.key로 이름 변경- 관리자 비밀번호 설정 (CMS 관리자 로그인이면 생략 가능 — CMS 환경)
- 공용 데이터 디렉터리 쓰기 권한 — 최소 권장 707
- 안내를 끝까지 읽기
10.4.0 원문: "이런 필수 설정이 끝나지 않으면 잘못된 상태로 에디터가 쓰이는 걸 막기 위해 잠시 편집 기능이 잠깁니다."
10.5.0 원문: "설치 권한은 777이 아니라 707을 최소 권장값으로 명확하게 안내합니다. 실제 PHP 파일 생성·쓰기·삭제 시험이 성공하면 현재 권한을 그대로 유지하며, 숫자로 표시된 권한만 보고 불필요한 chmod 명령을 요구하지 않습니다."
코드 근거: extend/js/t2_first_run_guide.js:19(키 이름 변경) :66(707) :67(시험 우선) :307('설정 완료 전 편집 기능 잠김')
⚠ 둘 다 있으면admin/t2admin.key.txt를 삭제하십시오(안내 화면이 그렇게 알립니다:t2_first_run_guide.js:70).
3-6. ⚠ 설치 방식의 기본이 바뀌었습니다 — 쓰기 권한이 필요한 곳이 좁아졌습니다
| 기본 설치 방식 | data 슬롯 방식 — 공용 데이터 쪽에 별도 공간을 두고 전환 |
| 대안 | direct — 원본 폴더에 직접 교체 (수정 파일 충돌 확인·자동 백업 포함) |
| 기본값의 효과 | 에디터 원본 폴더가 읽기 전용으로 충분합니다 |
권한 지침도 좁아졌습니다:
t2_first_run_guide.js:427 원문: "쓰기 권한은 감지된 T2Editor 공용 데이터 경로에만 부여합니다. T2Editor 원본 코드, plugin, extend, locales 전체를 쓰기 가능하게 만들지 마세요."v9에서 에디터 폴더 전체에 777을 주던 습관이 있다면 그 습관 자체를 버려야 합니다.
3-7. ⚠ zip 확장이 없어도 됩니다 (10.5.0)
없어도 됩니다 — 3단 대체가 있습니다.
ZipArchive(php-zip)- 없으면 → 서버 내장 zlib(
gzinflate)으로 처리 - 그것도 없으면 → 관리자 브라우저가 ZIP을 해제, 서버가 원본 ZIP의 경로·크기·CRC를 다시 검증
10.5.0 원문: "브라우저가 해제한 파일을 그대로 신뢰하지 않고, 서버가 원본 ZIP의 파일 경로, 크기와 CRC를 다시 확인한 뒤 적용합니다."
⚠ 단, 이건 "압축 해제"의 대체입니다. ZIP을 서버로 내려받는 수송은 별개이며, 거기에는 cURL 또는 OpenSSL+allow_url_fopen이 필요합니다. 둘 다 없으면 업데이트·서드파티 설치가 막힙니다.
3-8. ⚠ mbstring이 없어도 됩니다 (10.5.0)
10.5.0 원문: "mbstring 확장이 없는 서버에서도 iconv 또는 UTF-8 대체 처리로 주요 문자열 기능을 사용할 수 있도록 보완했습니다."
코드: config/t2_compat.php:10-45(mbstring 함수를 직접 정의하는 폴리필) · config/t2_utf8.php:9-16, 30-40(mbstring → iconv → UTF-8 폴백 체인)
3-9. 낮아진 위험 (v9에 있던 문제가 v10에서 사라진 것)
| 문제 | 상태 | 근거 |
|---|---|---|
| NSFW 필터가 꺼져 이미지 업로드 불가 | 해결 (10.4.0) — 필터가 배포판 내장 파일로 동작. 검사 방식도 관리자가 설정 | 10.4.0 원문 |
| 움직이는 GIF 검사 오류 | 해결 (10.4.0) | 10.4.0 원문 |
| GIF 업로드 500 오류 | 해결 (10.5.0) — GIF87a/89a·투명·애니메이션·대문자 .GIF 지원, 원본 그대로 저장 | 10.5.0 원문 |
| 모바일 툴바 안 보임 | 해결 (10.3.1) | 10.3.1 원문 |
| 관리자 대시보드 무한 로딩 | 해결 (10.5.1) | 10.5.1 원문 |
| 손상 문자 포함 오래된 글이 빈 화면 | 해결 (10.5.1) | 10.5.1 원문 |
| 표에서 셀 한 번 클릭 시 내용 전체 선택됨 | 해결 (10.5.0) | 10.5.0 원문 |
| 자동저장 초안이 다른 글로 복원됨 | 해결 (10.5.0) | 10.5.0 원문 |
따라서 "NSFW 문제를 해결하려면 8.2.0으로 내려가라"는 지시는 버리십시오. 그 증상은 10.4.0에서 끝났고 8.2.0은 EOL입니다. (72-version-issues-guide.md의 해당 지시는 2026-09-28에 교체 완료)
4. 사라지거나 바뀐 것 목록
4-1. 위치가 바뀐 것
| 이전 | 현재 | 근거 |
|---|---|---|
그누보드5 <g5>/data/editor/t2editor_db | <g5>/data/t2editor_db | 10.5.1 / t2_storage.php:253-258 |
| 코어 파일에 CMS 상수 하드코딩 | integration/cms/adapters/{gnuboard5,rhymix,standalone,wordpress}.php | config/t2_cms.php:3 "이 파일은 10.4.0 공개 함수 호환 파사드다. CMS 구현은 integration/cms/adapters에 둔다." |
| 플러그인 등록 | 기존 규칙 유지 + 명시적 클래스 등록 추가(하이픈 포함 이름 지원) | 10.5.0 원문 |
| 수동으로 하던 0~3단계 로딩 우선순위 | 설정 파일 기반 자동 등록 경로가 생김 | 10.3.0 원문 |
4-2. 파일이 없는 것 (알려진 혼동 — "이 파일이 없어요"가 정상입니다)
| 없는 파일 | 실물 |
|---|---|
license.txt · license_en.txt · license_kr.txt | 라이선스는 readme.txt 한 파일 안에 한·영 두 언어로 있음. 검증은 파일 내용 해시 대조 |
루트 collab/ | data/t2editor_db/collab(데이터) + plugin/collab/(코드) |
upload.js / upload.php | plugin/image/image_upload.core.php + plugin/image/image_upload.php |
version.txt | 배포판에 없음. 자동 판독 후보 경로 중 하나일 뿐 |
endpoints/ | v10에는 없음 |
4-3. ⚠ 사라졌다고 믿으면 오판하는 것 (실제로는 없음)
| 라이선스 파일 | 없어지지 않았습니다. 형식이 readme.txt 한 파일로 바뀌었습니다 |
| 협업 기능 | 사라지지 않았습니다. P2P + 서버 하이브리드로 아키텍처가 바뀌었습니다(10.0.0) |
| 자동 업데이트 | 사라지지 않았습니다. 10.4.0에서 새로 생겼습니다 |
| 데이터 경로 | 사라지지 않았습니다. 위치만 옮겨졌습니다 |
| PHP 7.4 지원 | 사라지지 않았습니다. 10.0.0에서 올렸다가 10.1.0에서 되돌렸습니다 |
4-4. CMS 고유 계약이 바뀐 곳
| 환경 | 10.x 계약 |
|---|---|
| 그누보드5 | 관리자 인증 = CMS 관리자 로그인 또는 자체 비밀번호(10.5.1~). 데이터 = data/editor + data/t2editor_db |
| 라이믹스 | 동일. 파일은 <rx>/files 를 통해 관리, T2Editor 별도 저장소 안 함. 2.1.x 호환(10.3.0) |
| 워드프레스 | 설치 자리가 아니라 브리지. CMS 관리자 연동·데이터 경로 분리를 받지 못합니다. 워드프레스 미디어 라이브러리 업로드만 제공 |
워드프레스에 대해 확정된 것과 그렇지 않은 것:
- 확정: 환경 감지에서 워드프레스는 한 번도 선택되지 않습니다(
adapters/wordpress.php:93validate_context => function () { return false; }) - 확정: 제공 = 워드프레스 미디어 라이브러리 업로드, nonce 검증,
upload_files권한 검사(wordpress.php:33-60) - [확인 필요]: 워드프레스 최소 지원 판본
5. 이관 절차
5-0. 이관 전 체크리스트
- 백업을 받았습니다. 글 데이터와
data/폴더를 전부 - 그누보드5
data/editor/(미디어) 와data/editor/t2editor_db/(내부 데이터) 를 따로 백업했습니다 - 라이믹스
files/를 백업했습니다 - 테스트 환경에서 먼저 올려봤습니다
- 서버 PHP가 7.4 이상임을 확인했습니다(
php -v) - 쓰기 권한이 필요한 곳이 공용 데이터 경로 하나임을 알고 있습니다
5-1. 공통 절차 (4가지 CMS 모두)
- 백업. 글을 담는 파일과
data/폴더를 전부 복사해 두십시오. 자동 업데이트의 백업 기능은 10.4.0부터지만, 첫 이관 전 백업은 직접 받으십시오. - 현재 판전을 기록해 두십시오. 나중에 되돌릴 때 필요합니다.
readme.txt2행. - v10.5.1 배포판을 받아
t2editor폴더를 덮어씁니다.data/는 건드리지 마십시오. - 설치 자리가 올바른지 확인합니다 (5-2).
- 최초 설치 게이트를 통과합니다 (3-5). 관리자 키 활성화 → 비밀번호 → 쓰기 시험 → 안내 완독.
- 관리자 페이지를 엽니다 — 자동 업데이트가 뜨면 먼저 "되돌리기" 경로가 있는지 확인한 뒤 진행하십시오.
- 기존 글 몇 개를 열어 편집해 봅니다. 과거 글이 빈 화면으로 뜨지 않는지, 영상이 재생되는지, 표가 깨지지 않는지 확인.
5-2. CMS별 설치 자리 확인
| CMS | 확인 방법 |
|---|---|
| 그누보드5 | 배포판이 g5/plugin/editor/t2editor/ 안에 있는가. config.php에 _GNUBOARD_ 정의가 있는가 |
| 라이믹스 | 배포판이 rhymix/modules/editor/skins/t2editor/ 안에 있는가. 폴더 이름이 정확히 t2editor인가. skin.xml의 스킨 ID와 맞아야 합니다 |
| 독립 실행 | 아무 폴더나 괜찮습니다 |
| 워드프레스 | CMS 연동을 기대하지 마십시오. 브리지(미디어 업로드)만 동작합니다 |
5-3. 그누보드5
- 관리자 → 환경설정 → 기본환경설정 → 에디터 선택에서 t2editor 선택. 게시판마다 다르게 쓰려면 게시판 관리에서 지정.
- 관리자 로그인으로 T2Editor 관리자 페이지에 들어갑니다(CMS 연동). CMS 인증이 안 되면 자체 로그인 경로를 씁니다(3-2).
data/t2editor_db가 자동으로 만들어지는지 확인합니다. 쓰기 시험이 실패하면data/에 707을 적용하고 다시 시험합니다. 성공하면 그 권한을 그대로 둡니다.- 이전 위치
data/editor/t2editor_db에 파일이 남아 있는지 확인하십시오. 남아 있으면 자동 이관이 실패했을 수 있습니다. 관리자 업데이트로 재시도하거나, 파일을 새 위치로 옮긴 뒤 관리자 화면을 다시 엽니다.
5-4. 라이믹스
- 스킨을
rhymix/modules/editor/skins/t2editor/에 둡니다. 폴더 이름이t2editor여야 합니다. 다른 이름이면 관리자 에디터 목록에 안 나옵니다. - 라이믹스 관리자 → 고급 설정 → 에디터 → 에디터 스킨에서 T2Editor 선택.
- 업로드는 T2Editor가 직접 파일을 두지 않고 라이믹스 파일 모듈을 거칩니다. 그래서 첨부파일 목록·용량 계산·삭제가 라이믹스와 어긋나지 않습니다. 이건 10.3.0 이후의 동작입니다.
- CMS 관리자 인증이 안 될 때:
admin/t2admin.key활성화 + 자체 비밀번호.
5-5. 독립 실행
data/가 없으면 첫 요청에서 자동 생성됩니다.- 최초 요청이 리다이렉트·경로 오류로 보이면, 배포판 안의 진단 화면을 먼저 여십시오. 자동 감지가 빗나간 경우입니다.
- 최소 권장 권한은 707 입니다(777이 아님). 그리고 숫자보다 실제 쓰기 시험입니다.
5-6. 업그레이드 후 확인할 것
- 과거 글을 열어도 빈 화면이 아니다 (10.5.1에서 손상문자 문제 수정됨)
- 이미지가 깨지지 않는다
- 표가 원래 모양이다
- 영상이 재생된다
- 협업이 동작한다
- 자동 저장이 되고 지난 자동 저장 데이터가 읽힌다
- 관리자 페이지에 무한 로딩이 없다
- 에디터 하단 버전 정보에
10.5.1이 표시된다
6. 되돌리는 법
6-1. 되돌리기 전에 알아야 할 것 — 되돌려도 되는가?
v10.5.1로 올린 뒤 관리자에서 글을 썼다면, 되돌리면 그 글의 서식이 깨질 수 있습니다. 10.0.0이 아키텍처를 바꿨고(hook 분산화), 10.5.0이 편집 기본 동작을 정비했습니다. 되돌릴 때는 데이터 이관이 되돌려지지 않는다는 점을 먼저 기억하십시오.
데이터 경로 이관(3-3)은 한 방향입니다. 10.5.1이 data/editor/t2editor_db → data/t2editor_db 로 옮겼다면, 9.x로 되돌렸을 때 9.x는 새 위치를 모릅니다. 코드에는 새 경로를 다시 이전 경로로 되돌리는 로직이 없습니다.
그래서 순서를 지킵니다:
- 되돌리기 전에 새 위치의 데이터를 따로 복사해 둡니다(
data/t2editor_db전체). - 그 뒤에 9.x 배포판을 덮어씁니다.
- 9.x가 이전 경로를 찾지 못하면, 복사해 둔 데이터로 9.x가 기대하는 경로(
data/editor/t2editor_db)에 되돌려 놓습니다.
6-2. 방법 A — 관리자 자동 업데이트 되돌리기 (10.4.0 이상)
10.4.0부터 관리자 페이지에서 업데이트를 되돌릴 수 있습니다. 업데이트 전에 파일이 자동 백업되고, 비밀번호를 다시 확인한 뒤 적용됩니다.
10.4.0 원문: "안전을 위해 기본적으로는 원래 파일을 직접 건드리지 않고 별도 공간에 새 버전을 설치한 뒤 전환하는 방식을 씁니다. 이렇게 하면 문제가 생겨도 이전 상태로 바로 되돌릴 수 있습니다."
⚠ 이건 10.x 계열 안에서의 되돌리기입니다. 9.x로 되돌리는 데는 이 경로를 쓸 수 없습니다.
6-3. 방법 B — 수동 되돌리기 (9.x로)
- 쓰기를 멈추십시오(게시·편집 중이 아니게).
- 백업 —
data/전체, CMS가 있다면data/editor/(그누보드5) 또는files/(라이믹스). - 9.x 배포판으로
t2editor폴더를 덮어씁니다. 9.x 판본을 처음 받아야 한다면 72-version-issues-guide.md의 EOL 안내를 보십시오. 그 계열은 더 이상 배포 대상이 아닙니다. - 데이터 경로를 6-1 순서로 되돌립니다.
- 관리자 페이지를 엽니다.
admin/t2admin.key가 남아 있으면 CMS 로그인이 아닌 자체 로그인 경로로 들어갈 수 있습니다(9.x에 이 기능이 있는지는 [확인 필요]).
6-4. 되돌리면 안 되는 경우
| 상황 | 이유 |
|---|---|
| 10.x에서 쓴 글이 중요할 때 | 9.x에서 읽히지 않을 수 있습니다 |
| v9 배포판을 이미 갖고 있지 않을 때 | EOL 계열 판본을 새로 받는 것은 경로가 깨졌습니다. [확인 필요] — 제3자 배포 채널 여부는 이 문서에서 판정하지 않습니다 |
| 업로드·설정 데이터를 잃어도 된다고 판단할 때 | 그 데이터는 복구할 방법이 없습니다 |
⚠ 현실적인 조언: 되돌리기보다 앞으로 가지 않는 편이 낫습니다. EOL 계열로 내려가는 길은 돌아오기 어렵습니다.
7. 데이터 이관 체크리스트 (10.5.0 / 10.5.1)
| 항목 | 이전 | 이후 | 자동 여부 |
|---|---|---|---|
| 그누보드5 내부 데이터 | <g5>/data/editor/t2editor_db | <g5>/data/t2editor_db | 자동 (실패 가능성 있음 — 5-3-4 확인) |
| 그누보드5 미디어 | <g5>/data/editor | <g5>/data/editor | 변화 없음 |
| 그누보드5 업로드 설정이 잘못 읽히던 증상 | 일부 CMS 구조에서 | 수정됨 | 10.5.0 |
| 라이믹스 데이터 | <rx>/files | <rx>/files | 변화 없음 |
| 독립 실행 | <에디터>/data | <에디터>/data/t2editor_db | 자동 |
| 과거 경로 문자열이 이전 상태에 남던 문제 | 존재 | 수정됨 — 10.5.1 | 10.5.1 원문 |
| 자동 저장 데이터 | 이전 판본 형식 | 계속 읽힘 | 10.3.0 |
| 협업 데이터 | 예전 루트 collab | data/t2editor_db/collab | 자동 이전 |
8. 파이프라인 업그레이드 (개발자용)
| 항목 | v9 | v10.5.1 | 근거 |
|---|---|---|---|
| 확장을 넣는 곳 | (코어 수정 또는 미정) | extend/php/(서버)·extend/js/(클라이언트). 파일명 알파벳순 자동 로드. README로 시작하는 파일 제외 | 10.1.0 원문 |
extend/php 로드 시점 | — | 에디터 기본 상수 정의 직후, editor_html() 호출 전 | 10.1.0 원문 |
extend/js 로드 시점 | — | 플러그인 JS 로드 완료 직후 | 10.1.0 원문 |
| 확장이 남는가 | — | "업데이트 후에도 extend/ 폴더의 내용은 유지됩니다." | 10.1.0 원문 |
| CMS 통합 지점 | 코어에 흩어 있음 | integration/cms/adapters/*.php (그누보드5 300 · 라이믹스 250 · 워드프레스 200 · 독립 −1000) | adapters/*.php |
| 플러그인 실패 격리 | — | "서드파티 플러그인 하나가 로딩에 실패해도 다른 플러그인과 에디터 본문은 계속 사용할 수 있습니다." | 10.5.0 원문 |
| 훅 중복 등록 | — | "같은 플러그인 훅이 중복 등록되어 제출 내용이 여러 번 변환되는 문제도 방지했습니다." | 10.5.0 원문 |
| 공백/붙여넣기 | — | document.execCommand 폐기 API를 표준 Selection/Range로 재구현하고 execCommand는 보조 경로로 유지 | js/format-engine.js 코드 실측 |
| 그 외 브라우저 API 시그니처 | — | Quill·TinyMCE·CKEditor4/5·Froala·Summernote·ProseMirror·Trix 시그니처를 붙여넣기 마이그레이션 용으로만 배열 보관 | js/core.js 코드 실측 |
| 서버 API 엔드포인트 | CMS마다 없음 | admin/api.php(관리자)·admin/update_api.php(업데이트)·admin/environment_api.php(환경 진단) | tree |
9. 이 문서가 답하지 못한 것 (미확인)
| # | 항목 | 왜 | |:-:|---|---| | 1 | v9 → v10 커스텀 플러그인 hook API 1:1 대응표 | v9 판본 실물 소스 미확보 | | 2 | v9의 collab 폴더 구조·권한 계약 | v9 실물 소스 미확보 | | 3 | data/editor/t2editor_db 에 직접 쓰던 플러그인이 실제로 있었는지 | v9 실물 소스 미확보 | | 4 | 9.x에 admin/t2admin.key 자체 로그인 경로가 있었는지 | v9 실물 소스 미확보 | | 5 | 10.0.0~10.0.1에서 8.0+ 전용 API 사용 여부 | 해당 판본 실물 미확보 | | 6 | ext-dom이 없으면 링크 미리보기 카드가 어떻게 실패하는지 | 폴백 코드 0건은 확인, 런타임 재현 안 함 | | 7 | mbstring+iconv 동시 부재 시 문자열 처리 정확도 | 대체 경로 존재는 확인, 결과 동일성 미측정 | | 8 | 9.x 배포판을 어디서 받아야 하는지 | 제3자 배포 채널 정보를 이 문서에서 판정하지 않습니다 | | 9 | 10.0.0의 자동 이관 성공률·실패 조건 | 이전 경로 인식 코드는 존재하나 실패 조건은 미측정 |
이 목록은 지우지 마십시오. 지우면 "알려지지 않았다"가 "문제가 없다"로 읽힙니다.
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건 · 릴리즈 노트 전문: 이 위키 내부 데이터
- 배포판 실물:
tak2-08/T2Editor-v10· 브랜치releases/v10.5.1 - 호환 매트릭스(PHP·CMS·확장): 06-version-compatibility-guide.md
- 판본별 이슈 대응: 72-version-issues-guide.md
- 최초 설치 절차: 01-installation-guide.md
- 오류 대응: 71-error-handling-guide.md
- 업로드·미디어 파이프라인: 75-upload-and-media-pipeline-guide.md
11. 문서 관리 메모
- 이 문서는 10.x 계열이 끝나면 새 판본을 추가해야만 유효합니다. v10이 EOL이 되면 v11로 같은 형식으로 다시 써야 합니다.
- 3절(파괴적 변경)은 "릴리즈 노트 원문 + 10.5.1 코드 실측" 두 겹을 요구합니다. 한쪽만으로 채우지 마십시오.
- 4-3절("사라졌다고 믿으면 오판하는 것")을 지우면 안 됩니다. 9.x 사용자가 가장 많이 하는 오독입니다.
- 6절(되돌리기)의 6-1은 데이터 이관이 단방향이라는 실제 제약을 적는 자리입니다. 이 문장을 줄이면 안 됩니다.