🔐로그인하면 문서 작성, 프로젝트 게시, ZIP 기반 버전 업로드, 브랜치 생성 기능을 사용할 수 있습니다. 로그인하러 가기
비교 대상 선택
추가 0줄 삭제 0줄 변경 0줄 동일 53줄
r1 파일 가져오기: 61-new-feature-guide.md
2026-04-17 14:54

새 기능 추가 절차

  1. 요구 사항 분석: 어떤 기능이 필요한지, 기존 구조에서 어느 레이어에 속하는지 분석합니다.
  2. 코어 vs 플러그인 판단: 기능이 모든 사용자에게 공통적으로 필요하면 코어 수정이 적합하지만, 선택적 기능이라면 플러그인 형태로 구현하는 것이 좋습니다.
  3. 의존성 파악: 기능이 사용하는 데이터와 API, UI 요소를 파악하고 의존성을 명확히 합니다.
  4. 구현 및 테스트: 코드 작성 후 다양한 시나리오에서 테스트를 수행합니다.

코드 구조 제안

새 기능을 플러그인으로 구현할 경우, 플러그인 클래스에 명확한 책임을 부여하고 필요에 따라 util 함수를 js/utils.js에 추가합니다. UI 요소는 스킨과 테마 파일에서 스타일을 정의해 재사용성을 높입니다.

새 기능을 넣기 전에 먼저 할 질문

새 기능 추가 요청이 들어오면 바로 구현으로 들어가기보다, 먼저 “이 기능은 플러그인으로 충분한가”, “저장 포맷이 바뀌는가”, “보기 화면까지 함께 바뀌는가”, “외부 서비스 의존성이 생기는가”를 따져야 합니다. 이 네 가지 질문을 미리 정리하면 나중에 코어 침범을 줄이고 릴리스 리스크를 크게 낮출 수 있습니다.

권장 문서화 절차

새 기능을 넣었다면 코드보다 먼저 문서를 갱신해야 유지보수가 쉬워집니다. 최소한 기능 개요, 관련 파일, 설정 위치, 테스트 포인트, 역호환성 여부, 운영 주의사항까지는 같은 커밋 안에서 정리하는 것을 권장합니다.

r1 파일 가져오기: 61-new-feature-guide.md
2026-04-17 14:54

새 기능 추가 절차

  1. 요구 사항 분석: 어떤 기능이 필요한지, 기존 구조에서 어느 레이어에 속하는지 분석합니다.
  2. 코어 vs 플러그인 판단: 기능이 모든 사용자에게 공통적으로 필요하면 코어 수정이 적합하지만, 선택적 기능이라면 플러그인 형태로 구현하는 것이 좋습니다.
  3. 의존성 파악: 기능이 사용하는 데이터와 API, UI 요소를 파악하고 의존성을 명확히 합니다.
  4. 구현 및 테스트: 코드 작성 후 다양한 시나리오에서 테스트를 수행합니다.

코드 구조 제안

새 기능을 플러그인으로 구현할 경우, 플러그인 클래스에 명확한 책임을 부여하고 필요에 따라 util 함수를 js/utils.js에 추가합니다. UI 요소는 스킨과 테마 파일에서 스타일을 정의해 재사용성을 높입니다.

새 기능을 넣기 전에 먼저 할 질문

새 기능 추가 요청이 들어오면 바로 구현으로 들어가기보다, 먼저 “이 기능은 플러그인으로 충분한가”, “저장 포맷이 바뀌는가”, “보기 화면까지 함께 바뀌는가”, “외부 서비스 의존성이 생기는가”를 따져야 합니다. 이 네 가지 질문을 미리 정리하면 나중에 코어 침범을 줄이고 릴리스 리스크를 크게 낮출 수 있습니다.

권장 문서화 절차

새 기능을 넣었다면 코드보다 먼저 문서를 갱신해야 유지보수가 쉬워집니다. 최소한 기능 개요, 관련 파일, 설정 위치, 테스트 포인트, 역호환성 여부, 운영 주의사항까지는 같은 커밋 안에서 정리하는 것을 권장합니다.

라인 단위 비교
이전 새 버전
1 --- 1 ---
2 title: 새 기능 추가 가이드 2 title: 새 기능 추가 가이드
3 document_id: 61-new-feature-guide 3 document_id: 61-new-feature-guide
4 slug: 61-new-feature-guide 4 slug: 61-new-feature-guide
5 target_editor_version: 9.0.0 5 target_editor_version: 9.0.0
6 document_type: feature 6 document_type: feature
7 doc_type: feature 7 doc_type: feature
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: Feature 11 core_type: Feature
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: 21 22 reading_order: 21
23 summary: 코어 수정 또는 플러그인 방식으로 새 기능을 추가하는 절차를 설명 문서 23 summary: 코어 수정 또는 플러그인 방식으로 새 기능을 추가하는 절차를 설명 문서
24 description: 코어 수정 또는 플러그인 방식으로 새 기능을 추가하는 절차를 설명 24 description: 코어 수정 또는 플러그인 방식으로 새 기능을 추가하는 절차를 설명
25 tags: [feature, development, guide] 25 tags: [feature, development, guide]
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 1. **요구 사항 분석**: 어떤 기능이 필요한지, 기존 구조에서 어느 레이어에 속하는지 분석합니다. 37 1. **요구 사항 분석**: 어떤 기능이 필요한지, 기존 구조에서 어느 레이어에 속하는지 분석합니다.
38 2. **코어 vs 플러그인 판단**: 기능이 모든 사용자에게 공통적으로 필요하면 코어 수정이 적합하지만, 선택적 기능이라면 플러그인 형태로 구현하는 것이 좋습니다. 38 2. **코어 vs 플러그인 판단**: 기능이 모든 사용자에게 공통적으로 필요하면 코어 수정이 적합하지만, 선택적 기능이라면 플러그인 형태로 구현하는 것이 좋습니다.
39 3. **의존성 파악**: 기능이 사용하는 데이터와 API, UI 요소를 파악하고 의존성을 명확히 합니다. 39 3. **의존성 파악**: 기능이 사용하는 데이터와 API, UI 요소를 파악하고 의존성을 명확히 합니다.
40 4. **구현 및 테스트**: 코드 작성 후 다양한 시나리오에서 테스트를 수행합니다. 40 4. **구현 및 테스트**: 코드 작성 후 다양한 시나리오에서 테스트를 수행합니다.
41   41  
42 ### 코드 구조 제안 42 ### 코드 구조 제안
43   43  
44 새 기능을 플러그인으로 구현할 경우, 플러그인 클래스에 명확한 책임을 부여하고 필요에 따라 util 함수를 `js/utils.js`에 추가합니다. UI 요소는 스킨과 테마 파일에서 스타일을 정의해 재사용성을 높입니다. 44 새 기능을 플러그인으로 구현할 경우, 플러그인 클래스에 명확한 책임을 부여하고 필요에 따라 util 함수를 `js/utils.js`에 추가합니다. UI 요소는 스킨과 테마 파일에서 스타일을 정의해 재사용성을 높입니다.
45   45  
46 ## 새 기능을 넣기 전에 먼저 할 질문 46 ## 새 기능을 넣기 전에 먼저 할 질문
47   47  
48 새 기능 추가 요청이 들어오면 바로 구현으로 들어가기보다, 먼저 “이 기능은 플러그인으로 충분한가”, “저장 포맷이 바뀌는가”, “보기 화면까지 함께 바뀌는가”, “외부 서비스 의존성이 생기는가”를 따져야 합니다. 이 네 가지 질문을 미리 정리하면 나중에 코어 침범을 줄이고 릴리스 리스크를 크게 낮출 수 있습니다. 48 새 기능 추가 요청이 들어오면 바로 구현으로 들어가기보다, 먼저 “이 기능은 플러그인으로 충분한가”, “저장 포맷이 바뀌는가”, “보기 화면까지 함께 바뀌는가”, “외부 서비스 의존성이 생기는가”를 따져야 합니다. 이 네 가지 질문을 미리 정리하면 나중에 코어 침범을 줄이고 릴리스 리스크를 크게 낮출 수 있습니다.
49   49  
50 ## 권장 문서화 절차 50 ## 권장 문서화 절차
51   51  
52 새 기능을 넣었다면 코드보다 먼저 문서를 갱신해야 유지보수가 쉬워집니다. 최소한 기능 개요, 관련 파일, 설정 위치, 테스트 포인트, 역호환성 여부, 운영 주의사항까지는 같은 커밋 안에서 정리하는 것을 권장합니다. 52 새 기능을 넣었다면 코드보다 먼저 문서를 갱신해야 유지보수가 쉬워집니다. 최소한 기능 개요, 관련 파일, 설정 위치, 테스트 포인트, 역호환성 여부, 운영 주의사항까지는 같은 커밋 안에서 정리하는 것을 권장합니다.
53   53  
T2WIKI · 기술 통합 위키 & 프로젝트 허브 · 나무위키 + Markdown 완벽 지원 · SQLite · PHP 8.2 · 소개 · 문법 안내