T2Editor의 코어와 플러그인 아키텍처를 이해하기 위한 입문 문서입니다.
에디터는 코어 레이어(editor.lib.php, js/core.js), 플러그인 레이어(plugin 디렉토리), UI 레이어(css 및 html)로 구성됩니다.
구조 설명은 코드 분석과 외부 자료를 종합하여 작성하였습니다.
이 문서는 길고 상세한 구조 문서로 들어가기 전에 개발자가 가장 먼저 확인해야 할 축을 짧게 정리한 입구 문서입니다. 보다 자세한 설명은 09-developer-architecture-entry.md, core-editor-lib-php.md, core-core-js.md, core-toolbar-js.md를 순서대로 읽는 구성을 권장합니다.
core-editor-lib-php.md: 서버 측 진입점과 플러그인 등록 구조 확인core-t2_config-php.md: 경로·상수·환경설정 확인core-core-js.md: 에디터 상태·이벤트·명령 흐름 확인core-toolbar-js.md: UI 버튼과 툴바 그룹 확인비개발자라 해도 이 문서를 읽어두면 문제 발생 시 어느 층위에서 장애가 났는지 설명하기 쉬워집니다. 예를 들어 “툴바는 뜨는데 저장이 안 된다”, “이미지는 올라가는데 보기 화면이 깨진다”처럼 현상을 구조 언어로 바꿔 전달할 수 있으면 유지보수 속도가 크게 올라갑니다.
T2Editor의 코어와 플러그인 아키텍처를 이해하기 위한 입문 문서입니다.
에디터는 코어 레이어(editor.lib.php, js/core.js), 플러그인 레이어(plugin 디렉토리), UI 레이어(css 및 html)로 구성됩니다.
구조 설명은 코드 분석과 외부 자료를 종합하여 작성하였습니다.
이 문서는 길고 상세한 구조 문서로 들어가기 전에 개발자가 가장 먼저 확인해야 할 축을 짧게 정리한 입구 문서입니다. 보다 자세한 설명은 09-developer-architecture-entry.md, core-editor-lib-php.md, core-core-js.md, core-toolbar-js.md를 순서대로 읽는 구성을 권장합니다.
core-editor-lib-php.md: 서버 측 진입점과 플러그인 등록 구조 확인core-t2_config-php.md: 경로·상수·환경설정 확인core-core-js.md: 에디터 상태·이벤트·명령 흐름 확인core-toolbar-js.md: UI 버튼과 툴바 그룹 확인비개발자라 해도 이 문서를 읽어두면 문제 발생 시 어느 층위에서 장애가 났는지 설명하기 쉬워집니다. 예를 들어 “툴바는 뜨는데 저장이 안 된다”, “이미지는 올라가는데 보기 화면이 깨진다”처럼 현상을 구조 언어로 바꿔 전달할 수 있으면 유지보수 속도가 크게 올라갑니다.
| 이전 | 새 버전 | ||
|---|---|---|---|
| 1 | --- | 1 | --- |
| 2 | title: 개발자 구조 분석 빠른 진입 | 2 | title: 개발자 구조 분석 빠른 진입 |
| 3 | document_id: 08-developer-architecture-entry | 3 | document_id: 08-developer-architecture-entry |
| 4 | slug: 08-developer-architecture-entry | 4 | slug: 08-developer-architecture-entry |
| 5 | target_editor_version: 9.0.0 | 5 | target_editor_version: 9.0.0 |
| 6 | document_type: architecture | 6 | document_type: architecture |
| 7 | doc_type: architecture | 7 | doc_type: architecture |
| 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: Core | 11 | core_type: Core |
| 12 | stability: [Stable Anchor] | 12 | stability: [Stable Anchor] |
| 13 | stable_anchor: [editor.lib.php, js/core.js] | 13 | stable_anchor: [editor.lib.php, js/core.js] |
| 14 | version_bound: [플러그인 API는 버전에 따라 변경] | 14 | version_bound: [플러그인 API는 버전에 따라 변경] |
| 15 | related_docs: [] | 15 | related_docs: [] |
| 16 | related_files: [editor.lib.php, js/core.js] | 16 | related_files: [editor.lib.php, js/core.js] |
| 17 | related_functions: [] | 17 | related_functions: [] |
| 18 | related_classes_modules: [] | 18 | related_classes_modules: [] |
| 19 | related_features: [플러그인 시스템] | 19 | related_features: [플러그인 시스템] |
| 20 | related_ui: [툴바] | 20 | related_ui: [툴바] |
| 21 | change_risk: 중간 | 21 | change_risk: 중간 |
| 22 | reading_order: 09 | 22 | reading_order: 09 |
| 23 | summary: 개발자를 위한 아키텍처 개요 | 23 | summary: 개발자를 위한 아키텍처 개요 |
| 24 | description: 코어 아키텍처, 데이터/이벤트 흐름을 개괄적으로 설명 | 24 | description: 코어 아키텍처, 데이터/이벤트 흐름을 개괄적으로 설명 |
| 25 | tags: [T2Editor, developer, architecture] | 25 | tags: [T2Editor, developer, architecture] |
| 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: false | 32 | webmaster_section_included: false |
| 33 | developer_section_included: true | 33 | developer_section_included: true |
| 34 | --- | 34 | --- |
| 35 | 35 | ||
| 36 | # 개발자 구조 분석 빠른 진입 | 36 | # 개발자 구조 분석 빠른 진입 |
| 37 | 37 | ||
| 38 | ## 빠른 요약 | 38 | ## 빠른 요약 |
| 39 | 39 | ||
| 40 | T2Editor의 코어와 플러그인 아키텍처를 이해하기 위한 입문 문서입니다. | 40 | T2Editor의 코어와 플러그인 아키텍처를 이해하기 위한 입문 문서입니다. |
| 41 | 41 | ||
| 42 | ## 아키텍처 개요 | 42 | ## 아키텍처 개요 |
| 43 | 43 | ||
| 44 | 에디터는 코어 레이어(editor.lib.php, js/core.js), 플러그인 레이어(plugin 디렉토리), UI 레이어(css 및 html)로 구성됩니다. | 44 | 에디터는 코어 레이어(editor.lib.php, js/core.js), 플러그인 레이어(plugin 디렉토리), UI 레이어(css 및 html)로 구성됩니다. |
| 45 | 45 | ||
| 46 | ## 참고 / 인용 / 비교 자료 | 46 | ## 참고 / 인용 / 비교 자료 |
| 47 | 47 | ||
| 48 | 구조 설명은 코드 분석과 외부 자료를 종합하여 작성하였습니다. | 48 | 구조 설명은 코드 분석과 외부 자료를 종합하여 작성하였습니다. |
| 49 | 49 | ||
| 50 | 50 | ||
| 51 | ## 문서 역할 정리 | 51 | ## 문서 역할 정리 |
| 52 | 52 | ||
| 53 | 이 문서는 길고 상세한 구조 문서로 들어가기 전에 개발자가 가장 먼저 확인해야 할 축을 짧게 정리한 입구 문서입니다. 보다 자세한 설명은 [`09-developer-architecture-entry.md`](09-developer-architecture-entry.md), [`core-editor-lib-php.md`](core-editor-lib-php.md), [`core-core-js.md`](core-core-js.md), [`core-toolbar-js.md`](core-toolbar-js.md)를 순서대로 읽는 구성을 권장합니다. | 53 | 이 문서는 길고 상세한 구조 문서로 들어가기 전에 개발자가 가장 먼저 확인해야 할 축을 짧게 정리한 입구 문서입니다. 보다 자세한 설명은 [`09-developer-architecture-entry.md`](09-developer-architecture-entry.md), [`core-editor-lib-php.md`](core-editor-lib-php.md), [`core-core-js.md`](core-core-js.md), [`core-toolbar-js.md`](core-toolbar-js.md)를 순서대로 읽는 구성을 권장합니다. |
| 54 | 54 | ||
| 55 | ## 빠른 읽기 순서 | 55 | ## 빠른 읽기 순서 |
| 56 | 56 | ||
| 57 | 1. [`core-editor-lib-php.md`](core-editor-lib-php.md): 서버 측 진입점과 플러그인 등록 구조 확인 | 57 | 1. [`core-editor-lib-php.md`](core-editor-lib-php.md): 서버 측 진입점과 플러그인 등록 구조 확인 |
| 58 | 2. [`core-t2_config-php.md`](core-t2_config-php.md): 경로·상수·환경설정 확인 | 58 | 2. [`core-t2_config-php.md`](core-t2_config-php.md): 경로·상수·환경설정 확인 |
| 59 | 3. [`core-core-js.md`](core-core-js.md): 에디터 상태·이벤트·명령 흐름 확인 | 59 | 3. [`core-core-js.md`](core-core-js.md): 에디터 상태·이벤트·명령 흐름 확인 |
| 60 | 4. [`core-toolbar-js.md`](core-toolbar-js.md): UI 버튼과 툴바 그룹 확인 | 60 | 4. [`core-toolbar-js.md`](core-toolbar-js.md): UI 버튼과 툴바 그룹 확인 |
| 61 | 5. 개별 플러그인 문서: 수정 대상 기능 집중 분석 | 61 | 5. 개별 플러그인 문서: 수정 대상 기능 집중 분석 |
| 62 | 62 | ||
| 63 | ## 참고 자료 | 63 | ## 참고 자료 |
| 64 | 64 | ||
| 65 | - DSclub T2Editor 서비스 페이지: https://dsclub.kr/service/editor | 65 | - DSclub T2Editor 서비스 페이지: https://dsclub.kr/service/editor |
| 66 | - DSclub 개발 및 관리 가이드: https://dsclub.kr/code/1403 | 66 | - DSclub 개발 및 관리 가이드: https://dsclub.kr/code/1403 |
| 67 | - SIR T2Editor 8.1.2 소개 글: https://sir.kr/boards/g5_plugin/15016 | 67 | - SIR T2Editor 8.1.2 소개 글: https://sir.kr/boards/g5_plugin/15016 |
| 68 | 68 | ||
| 69 | 69 | ||
| 70 | ## 운영자에게도 왜 이 문서가 필요한가 | 70 | ## 운영자에게도 왜 이 문서가 필요한가 |
| 71 | 71 | ||
| 72 | 비개발자라 해도 이 문서를 읽어두면 문제 발생 시 어느 층위에서 장애가 났는지 설명하기 쉬워집니다. 예를 들어 “툴바는 뜨는데 저장이 안 된다”, “이미지는 올라가는데 보기 화면이 깨진다”처럼 현상을 구조 언어로 바꿔 전달할 수 있으면 유지보수 속도가 크게 올라갑니다. | 72 | 비개발자라 해도 이 문서를 읽어두면 문제 발생 시 어느 층위에서 장애가 났는지 설명하기 쉬워집니다. 예를 들어 “툴바는 뜨는데 저장이 안 된다”, “이미지는 올라가는데 보기 화면이 깨진다”처럼 현상을 구조 언어로 바꿔 전달할 수 있으면 유지보수 속도가 크게 올라갑니다. |
| 73 | 73 | ||