파일 개요
nsfw_api_server.php는 9.1.0 기준 업그레이드된 기본 NSFW 구조에서는 주 경로로 사용하지 않는 레거시 호환 파일입니다.
기존 구조에서는 브라우저 코드가 이 파일에 다음 두 역할을 의존할 수 있었습니다.
?action=get_model: 브라우저 측 NSFW 모델 로드용 데이터 제공?action=classify: 업로드 이미지의 서버 측 NSFW 분류 수행
하지만 9.1.0 업그레이드에서는 브라우저 경로가 nsfwjs v2 + MobileNetV2Mid + TensorFlow.js 기반으로 바뀌었고, 모델과 런타임도 자체 호스팅 정적 자산에서 직접 읽도록 변경되었습니다. 따라서 일반적인 운영 기준에서는 nsfw_api_server.php를 더 이상 기본 동작에 사용하지 않습니다.
초보자와 웹마스터를 위한 이해
이 파일은 예전에는 중요했지만, 지금 권장 구조에서는 사실상 비활성 또는 예비 호환용이라고 이해하면 됩니다.
쉽게 말하면:
- 예전 방식: 서버가 NSFW 판정에 직접 참여
- 현재 권장 방식: 브라우저가 로컬 런타임(
tfjs,nsfwjs, 자체 호스팅 모델)으로 직접 판정
따라서 운영 중 아래 조건이라면 이 파일은 거의 쓰이지 않습니다.
T2_NSFW_MODE = 'browser'nsfw_api_browser.js가 자체 호스팅 모델을 직접 로드- 이미지 업로드 전 검사가 브라우저에서 끝남
다만, 아래 경우에는 아직 남겨둘 수 있습니다.
- 구버전 코드와 함께 운영하는 경우
server모드로 강제 전환하는 경우- 장애 시 임시 fallback 경로를 유지하려는 경우
즉, 삭제해도 되는 파일로 단정하면 안 되고, 기본 경로에서는 미사용이지만 호환성 때문에 남아 있을 수 있는 파일로 보는 것이 정확합니다.
현재 상태 요약
권장 운영 기준
- 기본 사용 여부: 아니오
- 문서 분류: 레거시 호환 파일
- 제거 권장 여부: 바로 제거보다 비활성 유지 후 영향 확인 권장
왜 더 이상 기본 파일이 아닌가
브라우저 코드가 다음 구조로 바뀌었기 때문입니다.
editor.lib.php가 브라우저 NSFW 설정을 주입- 이미지 플러그인이
nsfw_api_browser.js를 동적 import nsfw_api_browser.js가tfjs + nsfwjs + MobileNetV2Mid를 로드- 분류 결과만 기존 이미지 UI에 전달
이 구조에서는 모델 다운로드와 분류가 브라우저 안에서 완료되므로, 과거의 서버 엔드포인트가 기본 경로에서 빠집니다.
전문 개발자를 위한 분석
과거 책임
nsfw_api_server.php는 원래 아래 둘 중 하나 또는 둘 다를 맡았을 가능성이 큽니다.
- 브라우저용 모델 payload 제공
- 업로드 이미지 서버 분류 API 제공
원본 이미지 플러그인 흐름상, 브라우저 모드에서도 한때 modelUrl: window.T2EDITOR_NSFW_SERVER_URL + '?action=get_model' 형태로 이 파일을 참조했고, 서버 모드에서는 ?action=classify로 직접 POST 요청을 보내는 구조였습니다.
업그레이드 후 책임 변화
업그레이드 이후 기본 구조는 다음처럼 바뀝니다.
- 브라우저 모드의 모델 소스:
nsfw_api_server.php→ 자체 호스팅model.json - 브라우저 모드의 추론 엔진: 자체 worker/CNN → nsfwjs + TensorFlow.js
- 런타임 백엔드: 고정/제한적 방식 →
webgpu -> webgl -> wasm -> cpu순 폴백
즉, nsfw_api_server.php는 코어 엔진의 일부가 아니라, 필요 시 남겨둘 수 있는 호환용 보조 엔드포인트로 역할이 축소되었습니다.
현재 문서에서의 안전한 정의
이 파일은 다음처럼 정의하는 것이 가장 안전합니다.
nsfw_api_server.php는 현행 기본 NSFW 파이프라인의 필수 엔트리 포인트가 아니라, server 모드 또는 구버전 연동을 위한 레거시 호환 엔드포인트이다.수정 시 영향 및 안전 지침
- 현재 브라우저 모드만 쓴다면 이 파일 변경 영향은 작을 수 있습니다.
- 그러나
T2_NSFW_MODE = 'server'또는 구버전 JS가 남아 있으면 영향이 즉시 발생할 수 있습니다. - 따라서 제거 전에는 반드시 아래를 확인해야 합니다.
제거 전 체크리스트
editor.lib.php또는 설정에서T2_NSFW_MODE가browser인지 확인- 프론트 코드에서
?action=get_model,?action=classify호출이 남아 있는지 검색 - 구 캐시된 JS 또는 배포 서버의 구버전 정적 파일이 없는지 확인
- 장애 대응용 fallback가 정말 필요 없는지 확인
유지할 경우 권장 태도
- 새 기능 추가 금지
- 버그 대응 및 호환 유지 수준으로만 관리
- 문서에 레거시/비권장 상태를 분명히 표기
운영자용 판단 기준
이런 경우 유지
- 서비스 중단 없이 점진 전환 중
- 일부 인스턴스가 아직
server모드 사용 중 - 롤백 대비용 엔드포인트 보존 필요
이런 경우 정리 검토 가능
- 모든 에디터 인스턴스가 브라우저 모드 사용 중
vendor/기반 자체 호스팅 런타임이 정상 동작 중- 브라우저 측 NSFW 판정 로그와 UI가 안정화됨
관련 파일과 함께 봐야 하는 곳
config/nsfw_api_browser.jsplugin/image/image.jseditor.lib.php
이 세 파일이 현행 기본 동작을 구성하며, nsfw_api_server.php는 그 바깥쪽의 호환 경로로 이해하면 됩니다.
문서 유지보수 메모
이 문서는 기존의 “핵심 엔트리 포인트” 설명을 더 이상 사용하지 않습니다. 현행 구조에서는 해당 표현이 부정확합니다.
현행 설명의 기준 문장은 아래와 같습니다.
nsfw_api_server.php는 9.1.0 업데이트 기준 기본 NSFW 경로에서 사용하지 않는 레거시 호환 파일이다.