이 문서는 T2Editor의 구조를 이해하고, 수정 및 확장을 시작하려는 개발자를 위한 입문서입니다.
editor.lib.php와 js/core.js, config/t2_config.php를 먼저 분석하여 시스템의 초기화와 플러그인 로딩 메커니즘을 이해합니다.*.js와 *.css 파일을 읽어 내부 메서드와 이벤트 흐름을 파악합니다.개발자는 T2Editor를 단순히 “에디터 한 덩어리”로 보지 말고, 서버 초기화 계층, 프런트 코어 계층, 플러그인 계층, 스타일 계층, 외부 서비스 계층으로 나눠 읽는 것이 좋습니다. 이 구분을 선명하게 잡아두면, 버그 수정이 필요한 상황에서도 수정 범위를 훨씬 빨리 좁힐 수 있습니다. 예를 들어 업로드 실패는 보통 설정·엔드포인트·권한의 문제이고, 툴바 버튼 오작동은 toolbar/core/plugin 세 축 중 어디에 연결이 끊겼는지 찾으면 됩니다.
초기 문서 세트에서는 구조 소개가 다소 짧고 중복 파일이 있어 읽기 흐름이 매끄럽지 않았습니다. 이번 감사에서는 08-developer-architecture-entry.md를 빠른 진입 문서로, 이 문서를 본격 구조 해설 문서로 역할 분리했습니다. 실무적으로는 이 문서를 다 읽은 뒤 코어 문서와 수정 대상 플러그인 문서를 바로 이어 읽는 흐름이 가장 효율적입니다.
이 문서는 T2Editor의 구조를 이해하고, 수정 및 확장을 시작하려는 개발자를 위한 입문서입니다.
editor.lib.php와 js/core.js, config/t2_config.php를 먼저 분석하여 시스템의 초기화와 플러그인 로딩 메커니즘을 이해합니다.*.js와 *.css 파일을 읽어 내부 메서드와 이벤트 흐름을 파악합니다.개발자는 T2Editor를 단순히 “에디터 한 덩어리”로 보지 말고, 서버 초기화 계층, 프런트 코어 계층, 플러그인 계층, 스타일 계층, 외부 서비스 계층으로 나눠 읽는 것이 좋습니다. 이 구분을 선명하게 잡아두면, 버그 수정이 필요한 상황에서도 수정 범위를 훨씬 빨리 좁힐 수 있습니다. 예를 들어 업로드 실패는 보통 설정·엔드포인트·권한의 문제이고, 툴바 버튼 오작동은 toolbar/core/plugin 세 축 중 어디에 연결이 끊겼는지 찾으면 됩니다.
초기 문서 세트에서는 구조 소개가 다소 짧고 중복 파일이 있어 읽기 흐름이 매끄럽지 않았습니다. 이번 감사에서는 08-developer-architecture-entry.md를 빠른 진입 문서로, 이 문서를 본격 구조 해설 문서로 역할 분리했습니다. 실무적으로는 이 문서를 다 읽은 뒤 코어 문서와 수정 대상 플러그인 문서를 바로 이어 읽는 흐름이 가장 효율적입니다.
| 이전 | 새 버전 | ||
|---|---|---|---|
| 1 | --- | 1 | --- |
| 2 | title: 개발자 구조 분석 진입 | 2 | title: 개발자 구조 분석 진입 |
| 3 | document_id: 09-developer-architecture-entry | 3 | document_id: 09-developer-architecture-entry |
| 4 | slug: 09-developer-architecture-entry | 4 | slug: 09-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: Medium | 10 | dependency: Medium |
| 11 | core_type: Architecture | 11 | core_type: Architecture |
| 12 | stability: [Version-Bound] | 12 | stability: [Version-Bound] |
| 13 | stable_anchor: [] | 13 | stable_anchor: [] |
| 14 | version_bound: [] | 14 | version_bound: [] |
| 15 | related_docs: [] | 15 | related_docs: [] |
| 16 | related_files: [] | 16 | related_files: [] |
| 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: 10 | 22 | reading_order: 10 |
| 23 | summary: T2Editor 개발을 시작하려는 개발자를 위한 구조 분석 입문서 문서 | 23 | summary: T2Editor 개발을 시작하려는 개발자를 위한 구조 분석 입문서 문서 |
| 24 | description: T2Editor 개발을 시작하려는 개발자를 위한 구조 분석 입문서 | 24 | description: T2Editor 개발을 시작하려는 개발자를 위한 구조 분석 입문서 |
| 25 | tags: [developer, architecture, T2Editor] | 25 | tags: [developer, architecture, T2Editor] |
| 26 | version_tag: 9.0.0 | 26 | version_tag: 9.0.0 |
| 27 | maintenance_difficulty: Medium | 27 | maintenance_difficulty: Medium |
| 28 | test_requirement: Medium | 28 | test_requirement: Medium |
| 29 | ai_agent_risk: Medium | 29 | ai_agent_risk: Medium |
| 30 | source_basis: [현재 코드 분석 기반, 웹 참고 자료 기반] | 30 | source_basis: [현재 코드 분석 기반, 웹 참고 자료 기반] |
| 31 | beginner_section_included: true | 31 | beginner_section_included: true |
| 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 | 36 | ||
| 37 | 이 문서는 T2Editor의 구조를 이해하고, 수정 및 확장을 시작하려는 개발자를 위한 입문서입니다. | 37 | 이 문서는 T2Editor의 구조를 이해하고, 수정 및 확장을 시작하려는 개발자를 위한 입문서입니다. |
| 38 | - **코어 파일 우선 읽기**: `editor.lib.php`와 `js/core.js`, `config/t2_config.php`를 먼저 분석하여 시스템의 초기화와 플러그인 로딩 메커니즘을 이해합니다. | 38 | - **코어 파일 우선 읽기**: `editor.lib.php`와 `js/core.js`, `config/t2_config.php`를 먼저 분석하여 시스템의 초기화와 플러그인 로딩 메커니즘을 이해합니다. |
| 39 | - **디렉터리 구조 파악**: 각 디렉터리의 역할과 포함된 파일을 파악한 후, 수정하려는 부분이 어디에 위치하는지 확인합니다. | 39 | - **디렉터리 구조 파악**: 각 디렉터리의 역할과 포함된 파일을 파악한 후, 수정하려는 부분이 어디에 위치하는지 확인합니다. |
| 40 | - **플러그인 구조 이해**: 플러그인은 독립적인 모듈로 동작하므로, 각 플러그인의 `*.js`와 `*.css` 파일을 읽어 내부 메서드와 이벤트 흐름을 파악합니다. | 40 | - **플러그인 구조 이해**: 플러그인은 독립적인 모듈로 동작하므로, 각 플러그인의 `*.js`와 `*.css` 파일을 읽어 내부 메서드와 이벤트 흐름을 파악합니다. |
| 41 | - **버전 관리**: 수정 작업을 할 때는 Git과 같은 버전 관리 시스템을 사용하여 변경 이력을 기록하고, 안정적인 작업을 위해 브랜치를 활용하세요. | 41 | - **버전 관리**: 수정 작업을 할 때는 Git과 같은 버전 관리 시스템을 사용하여 변경 이력을 기록하고, 안정적인 작업을 위해 브랜치를 활용하세요. |
| 42 | - **테스트**: 개발 완료 후 다양한 환경에서 테스트를 수행하여 호환성과 성능을 검증합니다. | 42 | - **테스트**: 개발 완료 후 다양한 환경에서 테스트를 수행하여 호환성과 성능을 검증합니다. |
| 43 | 43 | ||
| 44 | ## 참고 자료 | 44 | ## 참고 자료 |
| 45 | 45 | ||
| 46 | - 기능 설명 및 내부 구조: [DSclub T2Editor 서비스 페이지](https://dsclub.kr/service/editor) | 46 | - 기능 설명 및 내부 구조: [DSclub T2Editor 서비스 페이지](https://dsclub.kr/service/editor) |
| 47 | - AI 플러그인 관련 참고: [SIR T2Editor 8.1.2 공지 및 후속 안내](https://sir.kr/boards/g5_plugin/15016) | 47 | - AI 플러그인 관련 참고: [SIR T2Editor 8.1.2 공지 및 후속 안내](https://sir.kr/boards/g5_plugin/15016) |
| 48 | 48 | ||
| 49 | ## 권장 분석 관점 | 49 | ## 권장 분석 관점 |
| 50 | 50 | ||
| 51 | 개발자는 T2Editor를 단순히 “에디터 한 덩어리”로 보지 말고, 서버 초기화 계층, 프런트 코어 계층, 플러그인 계층, 스타일 계층, 외부 서비스 계층으로 나눠 읽는 것이 좋습니다. 이 구분을 선명하게 잡아두면, 버그 수정이 필요한 상황에서도 수정 범위를 훨씬 빨리 좁힐 수 있습니다. 예를 들어 업로드 실패는 보통 설정·엔드포인트·권한의 문제이고, 툴바 버튼 오작동은 toolbar/core/plugin 세 축 중 어디에 연결이 끊겼는지 찾으면 됩니다. | 51 | 개발자는 T2Editor를 단순히 “에디터 한 덩어리”로 보지 말고, 서버 초기화 계층, 프런트 코어 계층, 플러그인 계층, 스타일 계층, 외부 서비스 계층으로 나눠 읽는 것이 좋습니다. 이 구분을 선명하게 잡아두면, 버그 수정이 필요한 상황에서도 수정 범위를 훨씬 빨리 좁힐 수 있습니다. 예를 들어 업로드 실패는 보통 설정·엔드포인트·권한의 문제이고, 툴바 버튼 오작동은 toolbar/core/plugin 세 축 중 어디에 연결이 끊겼는지 찾으면 됩니다. |
| 52 | 52 | ||
| 53 | ## 문서 감사 결과에 따른 보완 포인트 | 53 | ## 문서 감사 결과에 따른 보완 포인트 |
| 54 | 54 | ||
| 55 | 초기 문서 세트에서는 구조 소개가 다소 짧고 중복 파일이 있어 읽기 흐름이 매끄럽지 않았습니다. 이번 감사에서는 [`08-developer-architecture-entry.md`](08-developer-architecture-entry.md)를 빠른 진입 문서로, 이 문서를 본격 구조 해설 문서로 역할 분리했습니다. 실무적으로는 이 문서를 다 읽은 뒤 코어 문서와 수정 대상 플러그인 문서를 바로 이어 읽는 흐름이 가장 효율적입니다. | 55 | 초기 문서 세트에서는 구조 소개가 다소 짧고 중복 파일이 있어 읽기 흐름이 매끄럽지 않았습니다. 이번 감사에서는 [`08-developer-architecture-entry.md`](08-developer-architecture-entry.md)를 빠른 진입 문서로, 이 문서를 본격 구조 해설 문서로 역할 분리했습니다. 실무적으로는 이 문서를 다 읽은 뒤 코어 문서와 수정 대상 플러그인 문서를 바로 이어 읽는 흐름이 가장 효율적입니다. |
| 56 | 56 | ||
| 57 | ## 참고 자료 | 57 | ## 참고 자료 |
| 58 | 58 | ||
| 59 | - DSclub T2Editor 서비스 페이지: https://dsclub.kr/service/editor | 59 | - DSclub T2Editor 서비스 페이지: https://dsclub.kr/service/editor |
| 60 | - DSclub 개발 및 관리 가이드: https://dsclub.kr/code/1403 | 60 | - DSclub 개발 및 관리 가이드: https://dsclub.kr/code/1403 |
| 61 | - SIR T2Editor 8.1.2 소개 글: https://sir.kr/boards/g5_plugin/15016 | 61 | - SIR T2Editor 8.1.2 소개 글: https://sir.kr/boards/g5_plugin/15016 |
| 62 | 62 | ||