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

코어 파일: nsfw_api_server.php

Answer Summary

--- title: 코어 파일(레거시 호환): nsfw_api_server.php document_id: core-nsfw_api_server-php slug: core-nsfw_api_server-php target_editor_version: 9.1.0 document_type: core-file doc_type: c…

브랜치 ⎇ main
리비전 r2
작성자 T2Editor
수정 2026.04.17
요약 기본 경로에서 사용하지 않는 레거시 호환 파일로 정리
md

파일 개요

nsfw_api_server.php9.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 경로를 유지하려는 경우

즉, 삭제해도 되는 파일로 단정하면 안 되고, 기본 경로에서는 미사용이지만 호환성 때문에 남아 있을 수 있는 파일로 보는 것이 정확합니다.

현재 상태 요약

권장 운영 기준

  • 기본 사용 여부: 아니오
  • 문서 분류: 레거시 호환 파일
  • 제거 권장 여부: 바로 제거보다 비활성 유지 후 영향 확인 권장

왜 더 이상 기본 파일이 아닌가

브라우저 코드가 다음 구조로 바뀌었기 때문입니다.

  1. editor.lib.php가 브라우저 NSFW 설정을 주입
  2. 이미지 플러그인이 nsfw_api_browser.js를 동적 import
  3. nsfw_api_browser.jstfjs + nsfwjs + MobileNetV2Mid를 로드
  4. 분류 결과만 기존 이미지 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_MODEbrowser인지 확인
  • 프론트 코드에서 ?action=get_model, ?action=classify 호출이 남아 있는지 검색
  • 구 캐시된 JS 또는 배포 서버의 구버전 정적 파일이 없는지 확인
  • 장애 대응용 fallback가 정말 필요 없는지 확인

유지할 경우 권장 태도

  • 새 기능 추가 금지
  • 버그 대응 및 호환 유지 수준으로만 관리
  • 문서에 레거시/비권장 상태를 분명히 표기

운영자용 판단 기준

이런 경우 유지

  • 서비스 중단 없이 점진 전환 중
  • 일부 인스턴스가 아직 server 모드 사용 중
  • 롤백 대비용 엔드포인트 보존 필요

이런 경우 정리 검토 가능

  • 모든 에디터 인스턴스가 브라우저 모드 사용 중
  • vendor/ 기반 자체 호스팅 런타임이 정상 동작 중
  • 브라우저 측 NSFW 판정 로그와 UI가 안정화됨

관련 파일과 함께 봐야 하는 곳

  • config/nsfw_api_browser.js
  • plugin/image/image.js
  • editor.lib.php

이 세 파일이 현행 기본 동작을 구성하며, nsfw_api_server.php는 그 바깥쪽의 호환 경로로 이해하면 됩니다.

문서 유지보수 메모

이 문서는 기존의 “핵심 엔트리 포인트” 설명을 더 이상 사용하지 않습니다. 현행 구조에서는 해당 표현이 부정확합니다.

현행 설명의 기준 문장은 아래와 같습니다.

nsfw_api_server.php는 9.1.0 업데이트 기준 기본 NSFW 경로에서 사용하지 않는 레거시 호환 파일이다.
이 문서가 링크하는 문서 · 0
아직 내부 링크가 없습니다. 본문에 [[다른-문서]]를 넣으면 연결이 생깁니다.
백링크 · 0
아직 이 문서를 가리키는 다른 문서가 없습니다.
관련 문서
직접 연결된 관련 문서가 아직 없습니다.
문서 연결 지도

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

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