T2Editor는 모든 기능이 자체 완결형인 구조가 아닙니다. 특히 AI, 검색, ClipURL 같은 기능은 외부 서비스와 연결될 수 있으며, 이때 실제 운영 안정성은 UI보다 API 설계에 크게 좌우됩니다.
운영자가 꼭 알아야 할 점은 간단합니다. 어떤 기능이 외부 서버 없이는 동작하지 않는지, 장애가 나면 어떤 화면이 멈추는지, 대체할 수 있는지 세 가지입니다. 이 문서의 목적은 개발자가 아닌 운영자도 이 경계를 빠르게 이해하도록 돕는 데 있습니다.
AI와 검색, ClipURL은 각기 다른 플러그인처럼 보이지만 공통적으로 다음 문제를 안고 있습니다.
따라서 교체 작업은 단순한 URL 치환이 아니라, 사실상 “플러그인-API 계약”을 다시 맞추는 작업이라고 보는 것이 정확합니다.
T2Editor는 모든 기능이 자체 완결형인 구조가 아닙니다. 특히 AI, 검색, ClipURL 같은 기능은 외부 서비스와 연결될 수 있으며, 이때 실제 운영 안정성은 UI보다 API 설계에 크게 좌우됩니다.
운영자가 꼭 알아야 할 점은 간단합니다. 어떤 기능이 외부 서버 없이는 동작하지 않는지, 장애가 나면 어떤 화면이 멈추는지, 대체할 수 있는지 세 가지입니다. 이 문서의 목적은 개발자가 아닌 운영자도 이 경계를 빠르게 이해하도록 돕는 데 있습니다.
AI와 검색, ClipURL은 각기 다른 플러그인처럼 보이지만 공통적으로 다음 문제를 안고 있습니다.
따라서 교체 작업은 단순한 URL 치환이 아니라, 사실상 “플러그인-API 계약”을 다시 맞추는 작업이라고 보는 것이 정확합니다.
| 이전 | 새 버전 | ||
|---|---|---|---|
| 1 | --- | 1 | --- |
| 2 | title: 외부 API·엔드포인트 개요 가이드 | 2 | title: 외부 API·엔드포인트 개요 가이드 |
| 3 | document_id: 76-api-and-endpoints-guide | 3 | document_id: 76-api-and-endpoints-guide |
| 4 | slug: 76-api-and-endpoints-guide | 4 | slug: 76-api-and-endpoints-guide |
| 5 | target_editor_version: 9.0.0 | 5 | target_editor_version: 9.0.0 |
| 6 | document_type: api | 6 | document_type: api |
| 7 | doc_type: api | 7 | doc_type: api |
| 8 | target_readers: [웹마스터, 개발자, AI agent] | 8 | target_readers: [웹마스터, 개발자, AI agent] |
| 9 | importance: High | 9 | importance: High |
| 10 | dependency: High | 10 | dependency: High |
| 11 | core_type: API | 11 | core_type: API |
| 12 | stability: [Version-Bound] | 12 | stability: [Version-Bound] |
| 13 | stable_anchor: [ai.js, ai_rearrange.js, search plugin, clipurl plugin] | 13 | stable_anchor: [ai.js, ai_rearrange.js, search plugin, clipurl plugin] |
| 14 | version_bound: [DSclub 서비스 정책, API 구조 변경] | 14 | version_bound: [DSclub 서비스 정책, API 구조 변경] |
| 15 | related_docs: [70-dsclub-services-guide.md, plugin-ai.md, plugin-search.md, plugin-clipurl.md, 71-error-handling-guide.md] | 15 | related_docs: [70-dsclub-services-guide.md, plugin-ai.md, plugin-search.md, plugin-clipurl.md, 71-error-handling-guide.md] |
| 16 | related_files: [plugin/ai, plugin/ai_rearrange, plugin/search, plugin/clipurl] | 16 | related_files: [plugin/ai, plugin/ai_rearrange, plugin/search, plugin/clipurl] |
| 17 | related_functions: [] | 17 | related_functions: [] |
| 18 | related_classes_modules: [] | 18 | related_classes_modules: [] |
| 19 | related_features: [AI, 검색, ClipURL, 외부 서비스] | 19 | related_features: [AI, 검색, ClipURL, 외부 서비스] |
| 20 | related_ui: [AI 버튼, 검색 버튼, ClipURL 버튼] | 20 | related_ui: [AI 버튼, 검색 버튼, ClipURL 버튼] |
| 21 | change_risk: 엔드포인트를 바꾸면 인증, CORS, 호출 제한, 장애 처리 방식이 함께 달라집니다. | 21 | change_risk: 엔드포인트를 바꾸면 인증, CORS, 호출 제한, 장애 처리 방식이 함께 달라집니다. |
| 22 | reading_order: 76 | 22 | reading_order: 76 |
| 23 | summary: T2Editor가 기대하는 외부 API 성격과 교체 시 주의점을 정리한 문서입니다. | 23 | summary: T2Editor가 기대하는 외부 API 성격과 교체 시 주의점을 정리한 문서입니다. |
| 24 | description: DSclub 서비스 의존 기능을 운영하거나 대체 API로 교체할 때 필요한 구조적 이해를 제공합니다. | 24 | description: DSclub 서비스 의존 기능을 운영하거나 대체 API로 교체할 때 필요한 구조적 이해를 제공합니다. |
| 25 | tags: [T2Editor, API, endpoint, AI, search, clipurl] | 25 | tags: [T2Editor, API, endpoint, AI, search, clipurl] |
| 26 | version_tag: 9.0.0 | 26 | version_tag: 9.0.0 |
| 27 | maintenance_difficulty: High | 27 | maintenance_difficulty: High |
| 28 | test_requirement: High | 28 | test_requirement: High |
| 29 | ai_agent_risk: High | 29 | ai_agent_risk: High |
| 30 | source_basis: [현재 코드 분석 기반, 웹 참고 자료 기반] | 30 | source_basis: [현재 코드 분석 기반, 웹 참고 자료 기반] |
| 31 | beginner_section_included: false | 31 | beginner_section_included: false |
| 32 | webmaster_section_included: true | 32 | webmaster_section_included: true |
| 33 | developer_section_included: true | 33 | developer_section_included: true |
| 34 | --- | 34 | --- |
| 35 | 35 | ||
| 36 | # 외부 API·엔드포인트 개요 가이드 | 36 | # 외부 API·엔드포인트 개요 가이드 |
| 37 | 37 | ||
| 38 | T2Editor는 모든 기능이 자체 완결형인 구조가 아닙니다. 특히 AI, 검색, ClipURL 같은 기능은 외부 서비스와 연결될 수 있으며, 이때 실제 운영 안정성은 UI보다 API 설계에 크게 좌우됩니다. | 38 | T2Editor는 모든 기능이 자체 완결형인 구조가 아닙니다. 특히 AI, 검색, ClipURL 같은 기능은 외부 서비스와 연결될 수 있으며, 이때 실제 운영 안정성은 UI보다 API 설계에 크게 좌우됩니다. |
| 39 | 39 | ||
| 40 | ## 운영자 관점 핵심 이해 | 40 | ## 운영자 관점 핵심 이해 |
| 41 | 41 | ||
| 42 | 운영자가 꼭 알아야 할 점은 간단합니다. 어떤 기능이 외부 서버 없이는 동작하지 않는지, 장애가 나면 어떤 화면이 멈추는지, 대체할 수 있는지 세 가지입니다. 이 문서의 목적은 개발자가 아닌 운영자도 이 경계를 빠르게 이해하도록 돕는 데 있습니다. | 42 | 운영자가 꼭 알아야 할 점은 간단합니다. 어떤 기능이 외부 서버 없이는 동작하지 않는지, 장애가 나면 어떤 화면이 멈추는지, 대체할 수 있는지 세 가지입니다. 이 문서의 목적은 개발자가 아닌 운영자도 이 경계를 빠르게 이해하도록 돕는 데 있습니다. |
| 43 | 43 | ||
| 44 | ## 개발자 관점 핵심 이해 | 44 | ## 개발자 관점 핵심 이해 |
| 45 | 45 | ||
| 46 | AI와 검색, ClipURL은 각기 다른 플러그인처럼 보이지만 공통적으로 다음 문제를 안고 있습니다. | 46 | AI와 검색, ClipURL은 각기 다른 플러그인처럼 보이지만 공통적으로 다음 문제를 안고 있습니다. |
| 47 | - 외부 엔드포인트 주소 관리 | 47 | - 외부 엔드포인트 주소 관리 |
| 48 | - 인증 또는 라이선스 정보 전달 | 48 | - 인증 또는 라이선스 정보 전달 |
| 49 | - CORS 정책 | 49 | - CORS 정책 |
| 50 | - 요청 실패 시 UI 복구 | 50 | - 요청 실패 시 UI 복구 |
| 51 | - 사용량 제한과 로그 관리 | 51 | - 사용량 제한과 로그 관리 |
| 52 | 52 | ||
| 53 | 따라서 교체 작업은 단순한 URL 치환이 아니라, 사실상 “플러그인-API 계약”을 다시 맞추는 작업이라고 보는 것이 정확합니다. | 53 | 따라서 교체 작업은 단순한 URL 치환이 아니라, 사실상 “플러그인-API 계약”을 다시 맞추는 작업이라고 보는 것이 정확합니다. |
| 54 | 54 | ||
| 55 | ## 교체 시 체크리스트 | 55 | ## 교체 시 체크리스트 |
| 56 | 56 | ||
| 57 | - 응답 JSON 구조가 기존 플러그인 파서와 맞는가 | 57 | - 응답 JSON 구조가 기존 플러그인 파서와 맞는가 |
| 58 | - 인증 헤더가 필요한가 | 58 | - 인증 헤더가 필요한가 |
| 59 | - 도메인 서명 또는 라이선스 검증이 필요한가 | 59 | - 도메인 서명 또는 라이선스 검증이 필요한가 |
| 60 | - 장애 시 사용자에게 어떤 메시지를 보여줄 것인가 | 60 | - 장애 시 사용자에게 어떤 메시지를 보여줄 것인가 |
| 61 | - 요청량 제한이 있는가 | 61 | - 요청량 제한이 있는가 |
| 62 | 62 | ||
| 63 | ## 참고 자료 | 63 | ## 참고 자료 |
| 64 | 64 | ||
| 65 | - DSclub T2Editor 서비스 페이지: https://dsclub.kr/service/editor | 65 | - DSclub T2Editor 서비스 페이지: https://dsclub.kr/service/editor |
| 66 | - SIR T2Editor 8.1.2 소개 글: https://sir.kr/boards/g5_plugin/15016 | 66 | - SIR T2Editor 8.1.2 소개 글: https://sir.kr/boards/g5_plugin/15016 |
| 67 | 67 | ||