🔐로그인하면 문서 작성, 프로젝트 게시, ZIP 기반 버전 업로드, 브랜치 생성 기능을 사용할 수 있습니다. 로그인하러 가기

T2Editor 9.1.2 → 9.1.3-alpha1.1.0 CHATGPT업데이트 감사서

Answer Summary

T2Editor 9.1.2 → 9.1.3-alpha1.1.0 업데이트 감사서 = [목차] 분류:소프트웨어 감사 분류:버전 비교 분류:패치 리뷰 분류:T2Editor 9.1.2에서 9.1.3-alpha1.1.0으로의 변경은 단순 소규모 패치가 아니라 **보안 경계 강화, 미디어 블록 저장/복구 안정화, AI/ClipURL/…

소유자 👤 Tak2
브랜치 ⎇ main
리비전 r1
작성자 Tak2
수정 1일 전
요약 최초 작성
개선변경MemeURL저장AI파일iframe

T2Editor 9.1.2 → 9.1.3-alpha1.1.0 업데이트 감사서

#소프트웨어 감사 #버전 비교 #패치 리뷰 #T2Editor

요약

9.1.2에서 9.1.3-alpha1.1.0으로의 변경은 단순 소규모 패치가 아니라 보안 경계 강화, 미디어 블록 저장/복구 안정화, AI/ClipURL/Meme UI 확장, 플러그인 DOM 쓰기 제어 기반 도입이 결합된 중대 업데이트입니다. 파일 수는 69개로 동일하며 신규/삭제 파일은 없지만, 실제 변경 파일은 21개입니다. git diff --numstat 기준 9,778 additions / 2,899 deletions, 총 12,677 line-ops가 발생했습니다. 사용성 개선은 명확히 있습니다. 특히 블록 주변 커서 착지, 자동 저장 복구, 비디오 저장 후 재편집, AI 재정렬 검토, ClipURL 패널, Meme 삽입 흐름에서 개선 효과를 기대할 수 있습니다. 다만 T2_NSFW_ALLOW_SUSPICIOUS 기본값 변경, 직접 업로드 비디오 iframe sandbox 제거, 외부 Meme API 의존성, 남아 있는 직접 innerHTML 쓰기 등은 배포 전 검토가 필요합니다.

수정 요약

항목내용
비교 대상9.1.2.zip9.1.3-alpha1.1.0.zip
기준 버전9.1.2
대상 버전9.1.3-alpha1.1.0 ZIP 폴더명 기준. 단, readme.txt 내부 표기는 ver_9.1.3, date_2026.04.27
감사 범위ZIP 내부 t2editor/ 전체 파일 구조, 변경 파일, diff 통계, 주요 PHP/JS/CSS 변경 의미, 사용성·보안·호환성 영향
검증 범위파일 구조 비교, diff/numstat/stat, PHP syntax lint, JS syntax check, CSS UTF-8/brace balance, 변경 파일 의미 검토
미검증 범위실제 브라우저 런타임, 서버 업로드 API, 외부 Meme API 응답, DB 저장/재편집, iOS/Safari 실기기, 시각 스크린샷, 성능 벤치마크

Assumptions / Constraints / Success criteria

항목내용
Assumptions사용자가 말한 91.2는 업로드 파일명 기준 9.1.2로 해석했다.
Constraints실제 서버, DB, 브라우저 세션, API 키, CMS 필터 환경은 제공되지 않았다. 따라서 정적 감사와 syntax 검증 중심이다.
Success criteria무엇이 어디서 얼마나 바뀌었는지, 패치의 중심 전략이 무엇인지, 사용성 개선 지점과 기대 효과, 배포 전 리스크를 구체적으로 식별한다.

Audit rubric

평가 축확인 항목판정 기준
변경 범위파일/모듈/API/UX surface변경 파일 수, line-op, 영향 모듈로 판단
패치 전략bug fix/refactor/UI/UX/security/compatibility코드 주석, 구조 변경, diff 분포, 함수 추가 기준
사용성task success/time/error/cognitive load사용자 작업 흐름의 실패 가능성·단계 수·복구 가능성 기준
품질functional suitability, reliability, maintainability, compatibilityISO/IEC 25010형 제품 품질 관점으로 평가
운영/릴리즈release reproducibility, rollback, config traceabilityalpha 명명, 설정 변경, API 의존성, 롤백 영향 기준
보안/공급망XSS, iframe, URL, dependency, external APINIST SSDF식 보안 개발 관점으로 평가

Executive finding

구분판정
업데이트 성격대형 alpha 패치. 단순 bugfix가 아니라 보안·호환성·UX·플러그인 구조 개편이 혼재됨.
변경 강도높음. 21개 파일 변경, 12,677 line-ops.
사용자 체감 개선있음. 비디오/이미지/드로잉/테이블/AI/ClipURL/Meme 흐름에서 체감 가능.
안정성 신뢰도정적 검증 기준 중상. 실제 런타임 검증 전 production 배포는 보류 권장.
핵심 리스크NSFW 정책 완화, same-origin video iframe sandbox 제거, 외부 Meme API 의존, 일부 DOM write 경계 미완성.
배포 권고alpha 또는 제한 배포/canary 적합. 일반 사용자 전체 배포 전 smoke test 필요.

Change inventory

전체 변경량

항목9.1.29.1.3-alpha1.1.0변화
ZIP 크기약 6.11 MB약 6.16 MB+50.7 KB 수준
t2editor/ 파일 수6969신규/삭제 없음
변경 파일 수-21전체 69개 중 약 30.4%
동일 파일 수-48구조 유지
전체 텍스트 LOC50,70557,590+6,885 LOC, 약 +13.6%
diff numstat-9,778 additions / 2,899 deletions총 12,677 line-ops

변경 파일별 계량

파일9.1.2 LOC9.1.3 LOCLOC 증감diff additionsdiff deletions판단
config/t2_config.php198254+56560iframe 허용 도메인 설정 중앙화
css/core.css220221+132모달 overlay padding/overflow/box sizing 보정
editor.lib.php1,1191,370+25131968플러그인 등록, CSS URL escape, iframe 도메인 통합, 저장 복구
js/core.js2,3612,810+449560111블록 경계, autosave JSON, 플러그인 DOM 보안 API
js/utils.js452588+13615721비디오 URL parser, sanitizeURL, escapeAttr 추가
plugin/ai/ai.js1,0421,267+22531994AI 출력/링크/이미지/테이블 렌더 보안 강화
plugin/ai_rearrange/ai_rearrange.css2771,760+1,4831,670188AI 재정렬 UI 대개편
plugin/ai_rearrange/ai_rearrange.js2,0162,805+7891,378589부분 편집, split diff review, 모바일/보안 강화
plugin/clipurl/clipurl.css2701,035+765934170ClipURL 패널 UI 대개편
plugin/clipurl/clipurl.js582726+144474330URL 선택/검증/결과 패널 구조 변경
plugin/draw/draw.js756983+227494267드로잉 블록 지속성, undo/redo, 모바일 툴바 보강
plugin/export/export.js580855+275459185export sanitize, template, media/table/code 정규화
plugin/file/file.js1,0221,045+234118파일 블록 보안 경계 일부 적용
plugin/image/image.css1,2951,330+35351이미지/NSFW/SafeAI UI 보강
plugin/image/image.js2,1252,415+290443153업로드 검증, retry, sanitize, block 복구 강화
plugin/meme/meme.css5381,271+733973241Meme UI 전면 보강
plugin/meme/meme.js325375+506414Meme 삽입 selection 복원 등 개선
plugin/table/table.js8781,141+263420157테이블 sanitize, paste normalization, cell editing 강화
plugin/video/video.css38157+1191268비디오 모달 반응형/dark mode 보강
plugin/video/video.js1,0821,653+571851280비디오 URL/iframe/저장 복구/해상도/업로드 안정화
readme.txt7272022버전/date 표기 변경

Patch strategy analysis

1. 보안 강화 중심 패치

주요 보안 패치가 core.js, utils.js, video.js, image.js, ai.js, table.js, export.js에 분산되어 있다.

확인된 보안성 개선:

  • 플러그인 이름을 ^[a-zA-Z0-9_-]+$로 제한하여 경로 탈출·임의 스크립트 로드 가능성을 줄임.
  • T2Utils.sanitizeURL() 추가로 href, src, iframe-src 컨텍스트별 위험 URL을 분리 차단.
  • T2Utils.escapeAttr() 추가로 속성 컨텍스트 이스케이프를 명확히 분리.
  • core.jssanitizePluginHTML() / setPluginHTML() 중앙 API를 추가하여 플러그인의 직접 innerHTML 쓰기를 통제할 기반을 마련.
  • iframe allowlist를 t2_config.php로 분리하여 설정 추적성과 유지보수성을 높임.
  • YouTube ID와 비디오 URL을 2차 검증하여 URL injection 가능성을 줄임.
  • export HTML 생성 시 script/event/srcdoc/위험 URL/style 정리를 강화.

판정: 보안 hardening 성격이 강하다. 단, 모든 플러그인이 중앙 DOM 쓰기 API로 완전히 이전된 것은 아니므로 완성형 hardening이 아니라 기반 구축 + 부분 적용 상태다.

2. 저장/복구 안정성 패치

가장 중요한 기능 안정성 패치는 미디어 블록 저장 후 재편집 복구에 집중되어 있다.

주요 변경:

  • 비디오 블록에 data-t2-block, data-video-type, data-video-url, data-video-id를 wrapper/container에 중복 기록.
  • .t2-video-source[href] fallback anchor를 숨겨 저장하여 iframe/data-*가 제거된 경우에도 URL 복구 가능.
  • 드로잉 블록도 .t2-drawing-source[href]data-drawing-url을 사용하여 동일한 persistence 전략 적용.
  • editor.lib.php 저장 전처리에서 video/drawing block의 data/fallback anchor를 재기록.
  • :has() selector 의존성을 제거하고 순회 기반으로 변경하여 구형 브라우저 호환성 개선.
  • autosave 저장 포맷을 raw HTML에서 { content, savedAt } JSON으로 변경하고, 48시간 초과 autosave는 사용자 확인 후 복원.

판정: CMS sanitizer 또는 Gnuboard 계열 저장 필터에 의해 iframe/data/class가 손실되는 문제를 정면으로 다룬 패치다. 사용자 관점에서 “저장 후 다시 수정하면 비디오/그림이 깨진다” 유형의 치명적 불편을 줄이는 효과가 가장 크다.

3. UI/UX 개선 중심 패치

가장 큰 UX 작업량은 ai_rearrange, clipurl, meme, video, image에 집중되어 있다.

모듈UX 개선 방향기대 효과
AI 재정렬prompt hints, 세부 편집, split diff review, mobile layout, rate limit displayAI 적용 전 변경 내용을 비교하고 통제 가능. 잘못 적용할 위험 감소.
ClipURLfloating panel, URL 입력, short link/QR/both 결과 카드, dark mode, mobile 대응URL 도구 사용 흐름이 기능별로 명확해짐.
Meme검색, lazy loading, infinite scroll, keyboard tile, selection restore밈 삽입이 별도 이미지 업로드보다 빠르고 명확해짐.
VideoURL parser 개선, 업로드 파일 해상도 감지, 저장 후 복구, 직접 업로드 iframe 호환비디오 삽입 성공률과 재편집 안정성 향상.
Imageupload retry/backoff, NSFW/SafeAI UI, block sanitize, resize observer이미지 업로드 실패·재시도·안내 흐름 개선.
Tablepaste normalization, cell editing, resizing, CSV export 경로 보강외부 표 붙여넣기와 편집 안정성 향상.

판정: 사용자 이용성 개선은 분명히 있음. 단, 실제 “몇 초 단축” 같은 정량 UX 수치는 telemetry나 사용성 테스트가 없어 산정 불가다. 정적 분석상으로는 실패율·복구 실패·인지 부하를 낮추는 구조 개선이다.

4. 기능 추가 / 활성화

meme 플러그인은 기존 파일이 있었지만 9.1.2의 $T2EDITOR_PLUGINS에 등록되지 않았고, 9.1.3에서 등록 및 툴바 버튼이 추가되었다.

확인 사항:

  • editor.lib.php 플러그인 목록에 'meme' 추가.
  • 툴바에 data-command="insertMeme" 버튼 추가.
  • plugin/meme/meme.jshttps://dsclub.kr/api/meme/index.php를 호출.
  • 검색, 무한 스크롤, lazy image loading, keyboard insertion, selection restore 지원.

판정: 신규 기능 활성화에 해당한다. 기존 코드가 있었더라도 사용자-facing 기능으로는 9.1.3에서 노출된다.

Usability impact analysis

사용성 개선 총평

항목개선 여부근거기대 효과
task success개선비디오/드로잉/이미지/테이블 블록 저장·복구 경로 강화저장 후 재편집 실패 감소
time on task개선 추정Meme 검색 삽입, ClipURL 패널, AI prompt hints 추가반복 입력·수동 삽입 시간 감소
error rate개선URL sanitize, YouTube parser, autosave stale 확인, block boundary line 추가잘못된 URL·깨진 블록·커서 오류 감소
cognitive load개선AI split diff review, rate limit badge, result card UI적용 전 판단 비용 감소
discoverability개선Meme 툴바 버튼, ClipURL 선택형 UI, AI hint 버튼기능 발견성 증가
feedback clarity개선upload progress, warning/error modal, autosave confirm, result cards상태 이해 용이
accessibility부분 개선role/button, tabindex, keyboard insert, dark mode 일부 강화키보드 사용성 개선. 단 전체 ARIA 검증은 미수행
mobile responsiveness개선AI/ClipURL/Meme/Image/Video CSS에 반응형 규칙 증가작은 화면 모달 사용성 개선

개선 지점별 상세

위치기존 문제 가능성9.1.3 개선개선 규모/기대
core.js block boundary미디어/테이블/코드 블록 앞뒤에서 커서 착지 불안정, 빈 줄 중복/소실 가능ensureBlockBoundaryLines(), insertBlockWithBoundaryLines() 추가블록 전후 타이핑 실패율 감소. 특히 iOS/Safari에서 효과 기대
core.js autosave오래된 autosave가 무조건 복원되거나 플러그인 컨트롤이 복구되지 않을 수 있음JSON {content,savedAt} 저장, 48h 초과 확인, _doSetContent() 경유 복원의도치 않은 오래된 내용 복원 감소. autosave 후 media block 이벤트 복구 기대
utils.js video parser정규식 기반 YouTube 파싱은 shorts/live/nocookie/protocol-relative/쿼리 URL에 취약URL parser 기반으로 watch/embed/shorts/live/youtu.be/nocookie 지원비디오 삽입 성공 케이스 증가
video.js persistenceCMS 저장 필터가 iframe/data-* 제거 시 비디오 손실 가능wrapper/container data 중복 + fallback anchor + iframe 재생성 | 저장 후 재편집 안정성 대폭 개선 기대
draw.js persistencedrawing class/data 손실 시 복구 실패 가능data-drawing-url, fallback anchor, class 보존 전략 | 드로잉 재편집/재초기화 실패 감소
ai_rearrangeAI 수정 결과가 불투명하고 적용 전 비교 부담 큼split diff review, detail edit mode, prompt hint, mobile layout | 잘못된 AI 변경 적용 위험 감소. 검토 가능성 증가
clipurlURL 단축/QR 생성 결과 흐름이 단순하거나 분산될 수 있음입력 패널, 선택 카드, 결과 카드, dark/mobile UI | 작업 흐름 명확화. short/QR/both 선택 시간 감소
meme별도 이미지 검색/업로드 필요검색→선택→현재 커서 삽입 | 콘텐츠 삽입 단계 단축. 커서 위치 복원으로 삽입 오류 감소
table.js외부 HTML 표 paste 시 구조 오염/XSS/편집 불안정 가능 | table sanitize, normalizeExternalTable, paste handling | 표 붙여넣기 성공률과 안전성 개선
export.jsexport HTML에 editor-only UI/위험 속성 잔류 가능 | sanitizeExportDocument, sanitizeNodeTree, media/table/code normalization | 공유/export 문서 품질과 안전성 향상

사용성 개선의 한계

주의

실제 클릭 수, 완료 시간, 오류율은 계측 데이터가 없어 정량 확정할 수 없다. 이 감사서는 코드 변경 구조 기준의 사용성 개선 추정이다. 실제 수치화를 위해서는 최소 smoke scenario와 사용자 플로우별 타임 측정이 필요하다.

Quality impact analysis

품질 특성영향판단
Functional suitability증가Meme 기능 활성화, 비디오 URL 지원 범위 확대, AI/ClipURL/Table 기능 보강
Reliability증가autosave stale 처리, block 복구, video/drawing fallback, upload retry 개선
Security대체로 증가sanitizeURL, escapeAttr, plugin HTML sanitizer, plugin name 검증 추가
Security exception주의NSFW suspicious 기본 허용, 직접 업로드 video iframe sandbox 제거
Compatibility증가:has() 제거, Safari/iOS boundary 처리, URL parser 확장, CMS sanitizer 대응
Usability증가AI diff review, modal UX, dark/mobile CSS, cursor restoration
Maintainability혼재보안 API 중앙화는 좋으나 CSS/JS LOC가 크게 증가해 유지보수 부담도 증가
Portability부분 증가브라우저 호환성은 개선. 단 외부 Meme API 하드코딩은 환경 이식성 저하
Performance efficiency혼재lazy loading/observer는 긍정적이나 AI/Meme/ClipURL CSS·JS 증가로 초기 로드 부담 가능

Security / privacy review

긍정적 보안 변경

  • 플러그인 이름 검증으로 script path injection 가능성을 줄였다.
  • URL 처리 계층이 href, src, iframe-src로 분리되었다.
  • data: URI는 href에서 차단하고, src에서는 이미지/미디어 사용성을 고려해 허용하는 식으로 컨텍스트 분리했다.
  • plugin HTML sanitizer 기반이 생겼다.
  • export 결과물에 남는 script/event/srcdoc 위험 요소 제거가 강화되었다.
  • iframe allowlist가 설정 파일로 이동하여 추적성과 운영 통제가 좋아졌다.

주의할 보안 변경

항목내용위험권고
NSFW suspicious 기본값T2_NSFW_ALLOW_SUSPICIOUSfalse에서 true로 변경됨의심 이미지가 경고 후 업로드 허용됨. 서비스 정책이 “차단 우선”이라면 보안/법무 리스크 증가기본값을 정책 기준으로 재확정. 릴리즈 노트에 명시
직접 업로드 비디오 iframe sandbox 제거video_view.php iframe에 sandbox를 제거하는 호환성 패치 존재CMS 호환성은 좋아지나 same-origin iframe 격리는 약화됨video_view.php의 URL 검증, MIME, CSP, X-Content-Type-Options 검토
외부 Meme APIhttps://dsclub.kr/api/meme/index.php 하드코딩API 장애, CORS, privacy, 외부 콘텐츠 신뢰성 리스크API allowlist, timeout, 실패 UI, privacy 안내 검토
남은 직접 innerHTML전체 JS/PHP에서 innerHTML = 패턴이 여전히 다수 존재중앙 sanitizer가 완전 적용된 상태는 아님P1으로 플러그인별 DOM write migration 완료
Meme URL 처리Meme API가 반환한 URL을 lazy img와 temp Image에 직접 사용 | 악성/비정상 URL 방어가 image plugin에 일부 의존 | Meme 단계에서도 T2Utils.sanitizeURL(url,'src') 적용 권장

Regression / compatibility / security risk matrix

리스크영향가능성근거대응
NSFW 의심 이미지 허용 정책 변화높음중간기본값 false → true제품 정책 기준으로 기본값 재검토
직접 업로드 비디오 iframe sandbox 제거높음중간video_view.php iframe은 sandbox 제거 경로 존재video_view.php 서버 검증/CSP 점검
Meme 플러그인 외부 API 장애중간중간외부 dsclub.kr API 하드코딩timeout/error UI, fallback, 운영 모니터링 추가
Meme 플러그인 priority 누락낮음~중간중간$T2EDITOR_PLUGIN_PRIORITYmeme 없음. fallback 999로 로드됨명시 priority 추가 권장
central sanitizer 부분 적용중간중간setPluginHTML API는 있으나 모든 DOM write 전환은 미완료직접 innerHTML 쓰기 잔여 목록 추적
대규모 CSS 증가로 UI 충돌중간중간AI/ClipURL/Meme CSS 대폭 증가 | visual regression test 필요
Autosave 포맷 변경중간낮음 | raw HTML fallback 존재 | 구버전 autosave 복원 테스트 필요
Video persistence fallback anchor 노출 가능성낮음~중간낮음 | 숨김 anchor가 저장 HTML에 남음 | screen reader/SEO/HTML sanitizer 영향 확인
Alpha 버전명과 readme 표기 불일치낮음높음 | ZIP은 9.1.3-alpha1.1.0, readme는 ver_9.1.3 | 릴리즈 식별자 통일
CSS focus glow/shadow 일부 잔존낮음중간 | video modal 등 box-shadow/focus shadow 존재 | 디자인 시스템 기준이면 정리 필요

Verification evidence and confidence

수행한 검증

검증 항목결과
ZIP 압축 해제정상
파일 구조 비교t2editor/ 기준 양쪽 69개 파일, 신규/삭제 없음
변경 파일 식별21개 파일 변경
diff stat21 files changed, 9,778 insertions, 2,899 deletions
PHP syntax lint대상 PHP 9개 파일 No syntax errors detected
JS syntax check변경/주요 JS 14개 파일 node --check 통과
CSS UTF-8 확인주요 CSS 파일 iconv UTF-8 통과
CSS brace balance주요 변경 CSS {} 개수 일치
Korean encoding spot check주요 파일에서 UTF-8 깨짐은 발견하지 못함

실행한 대표 검증 명령

검증 명령 로그
bash
unzip -q /mnt/data/9.1.2.zip -d /mnt/data/audit_912 unzip -q /mnt/data/9.1.3-alpha1.1.0.zip -d /mnt/data/audit_913 diff -qr \ /mnt/data/audit_912/9.1.2/t2editor \ /mnt/data/audit_913/9.1.3-alpha1.1.0/t2editor git diff --no-index --stat -- \ /mnt/data/audit_912/9.1.2/t2editor \ /mnt/data/audit_913/9.1.3-alpha1.1.0/t2editor git diff --no-index --numstat -- \ /mnt/data/audit_912/9.1.2/t2editor \ /mnt/data/audit_913/9.1.3-alpha1.1.0/t2editor php -l editor.lib.php php -l config/t2_config.php php -l config/upload_config.php php -l config/get_upload_config.php php -l plugin/video/video_view.php php -l plugin/file/file_upload.php php -l plugin/file/pdf_view.php php -l plugin/image/image_upload.php php -l plugin/collab/collab_verification.php node --check js/core.js node --check js/utils.js node --check plugin/ai/ai.js node --check plugin/ai_rearrange/ai_rearrange.js node --check plugin/clipurl/clipurl.js node --check plugin/draw/draw.js node --check plugin/export/export.js node --check plugin/file/file.js node --check plugin/image/image.js node --check plugin/meme/meme.js node --check plugin/table/table.js node --check plugin/video/video.js node --check config/nsfw_api_browser.js node --check js/toolbar.js

Confidence

판단 영역신뢰도이유
변경량/파일 범위높음실제 ZIP diff 기반
PHP/JS 문법 안정성높음lint/check 통과
보안 개선 방향성중상코드 구조상 sanitizer/allowlist/escape 경계 확인
사용성 개선 방향성중상UI/flow 구조상 개선 명확. 단 사용자 테스트 없음
실제 런타임 안정성중간 이하브라우저·서버·CMS·외부 API 미검증
production 배포 적합성중간 이하alpha 명명과 보안 예외 리스크 존재

Recommendations / next actions

P0: 배포 전 필수 확인

항목조치
NSFW 정책 결정T2_NSFW_ALLOW_SUSPICIOUS=true가 의도된 정책인지 확정. 차단 우선이면 false로 복구
video_view.php 보안 검토sandbox 제거 전제이므로 video 파라미터 검증, MIME 제한, CSP, same-origin 정책 확인
브라우저 smoke testChrome, Safari, iOS Safari에서 이미지/비디오/파일/테이블/드로잉/AI/ClipURL/Meme 삽입 테스트
저장→보기→재편집 회귀 테스트CMS/Gnuboard 저장 필터 환경에서 iframe/data/class/fallback anchor 복구 확인
외부 Meme API 장애 테스트API 4xx/5xx/timeout/CORS 실패 시 UI가 멈추지 않는지 확인

P1: 안정화 권장

항목조치
meme priority 명시$T2EDITOR_PLUGIN_PRIORITY['meme'] 추가. 예: image 이후 또는 image와 동일 계열
DOM write migration 완료잔여 직접 innerHTML = 중 사용자 입력/외부 API/AI 결과 경로를 setPluginHTML 또는 안전 DOM 생성으로 이전
visual regressionAI/ClipURL/Meme/Video/Image 모달 light/dark/mobile 캡처 비교
accessibility passdialog focus trap, ESC, tab order, aria-label, keyboard tile, screen reader 숨김 anchor 검토
release note 작성보안 변경, NSFW 기본값, video iframe 저장 정책, autosave 포맷 변경 명시

P2: 품질 고도화

항목조치
단위 테스트 도입T2Utils.getVideoType, sanitizeURL, table paste sanitizer, autosave parser 테스트
fixture 기반 저장 복구 테스트iframe 제거, data-* 제거, class 제거, fallback anchor만 남은 HTML fixture 검증
성능 계측대형 문서에서 normalizeContent, initializeVideoBlocks, AI diff rendering 시간 측정
design system 정리video modal의 shadow/focus glow 등 일부 기존 스타일을 최신 flat/minimal 기준으로 정리

Final verdict

최종 판정

9.1.3-alpha1.1.0은 9.1.2 대비 실질적이고 광범위한 업데이트다. 주된 패치 방향은 보안 경계 강화 + 미디어/블록 persistence 안정화 + AI/ClipURL/Meme 사용성 개선이다. 사용성은 분명히 개선되었으며, 특히 “삽입한 블록이 저장 후 깨지는 문제”, “비디오 URL 인식 실패”, “AI 변경 결과 검토 어려움”, “콘텐츠 삽입 도구의 발견성 부족”을 줄이는 방향이다. 다만 alpha로 보는 것이 타당하며, production 배포 전에는 NSFW 기본값, video iframe sandbox 제거, 외부 Meme API, 브라우저/CMS 저장 회귀 테스트를 반드시 통과시켜야 한다.

이 문서가 링크하는 문서 · 0
아직 내부 링크가 없습니다. 본문에 [[다른-문서]]를 넣으면 연결이 생깁니다.
백링크 · 0
아직 이 문서를 가리키는 다른 문서가 없습니다.
관련 문서
직접 연결된 관련 문서가 아직 없습니다.
문서 연결 지도

이 문서를 중심으로 들어오는 링크와 나가는 링크를 한 번에 볼 수 있습니다.

전체 보기
현재 문서 백링크 나가는 링크 양방향 연결
T2WIKI · 기술 통합 위키 & 프로젝트 허브 · 나무위키 + Markdown 완벽 지원 · SQLite · PHP 8.2 · 소개 · 문법 안내