{ "name": "Rules Maintenance and Documentation", "description": "코드 규칙 문서화, 교육 및 유지보수를 위한 가이드라인", "rules": { "documentation": { "overview": { "format": "웹 문서 또는 Markdown 형식", "location": "프로젝트 루트의 docs/ 디렉토리 및 내부 Wiki", "sections": [ "규칙 목적 및 원칙", "규칙 범주 개요", "적용 방법 및 예외 처리", "자주 묻는 질문" ] }, "ruleGuides": { "structure": { "header": "규칙 제목, 버전, 수정일", "description": "규칙의 목적 및 배경", "specification": "상세 규칙 내용", "examples": { "good": "모범 사례 예시 (✅)", "bad": "안티 패턴 예시 (❌)" }, "implementation": "적용 방법 및 도구 설정", "exceptions": "예외 상황 및 처리 방법" }, "format": "각 규칙 카테고리별 별도 문서 작성", "tooling": "README 자동 생성 스크립트 제공" }, "codeExamples": { "repository": "샘플 코드 저장소 구성", "structure": { "beforeAfter": "규칙 적용 전/후 코드 비교", "patterns": "주요 패턴별 예제 코드", "antiPatterns": "피해야 할 패턴 예제" }, "organization": "규칙 카테고리별 폴더 구성" }, "visualAids": { "diagrams": "아키텍처 및 패턴 시각화", "flowcharts": "결정 흐름도 제공", "cheatSheets": "주요 규칙 요약 시트 제공" } }, "education": { "onboarding": { "materials": [ "신규 입사자 규칙 가이드 문서", "학습 경로 정의", "주요 규칙 요약 문서" ], "steps": [ "핵심 규칙 소개 세션", "멘토의 코드 리뷰를 통한 피드백", "자체 평가 문제 및 퀴즈", "적용 연습 예제 프로젝트" ], "timeframe": "첫 2주 이내 완료" }, "continuousLearning": { "sessions": { "frequency": "월 1회", "format": "워크샵, 발표, 코드 리뷰 세션", "topics": [ "새로운 규칙 소개", "기존 규칙 심화 학습", "실제 사례 분석", "외부 모범 사례 공유" ] }, "resources": { "internalWiki": "규칙 문서 및 예제 통합 관리", "discussionForum": "질문 및 토론 공간 제공", "slackChannel": "#coding-standards 채널 운영" } }, "feedbackLoop": { "methods": [ "정기적인 규칙 활용 설문조사", "익명 피드백 채널", "적용 어려움 보고 프로세스" ], "incorporation": "수집된 피드백을 규칙 개선에 반영하는 프로세스" }, "trainingByRole": { "juniorDevelopers": { "focus": "기본 규칙 이해 및 적용", "materials": "가이드 문서, 체크리스트, 연습 예제" }, "seniorDevelopers": { "focus": "규칙 최적화 및 예외 상황 판단", "materials": "심화 문서, 의사결정 가이드" }, "teamLeads": { "focus": "규칙 준수 모니터링, 규칙 발전 계획", "materials": "평가 도구, 임팩트 분석 방법론" } } }, "maintenance": { "reviewCycle": { "schedule": { "comprehensive": "6개월마다 전체 규칙 검토", "specific": "필요 시 특정 규칙 검토", "emergency": "중대한 문제 발생 시 즉시 검토" }, "process": [ "현재 규칙 효과성 평가", "팀 피드백 수집 및 분석", "업계 트렌드 및 모범 사례 조사", "개선 사항 식별", "변경 제안 작성 및 검토" ], "participants": "기술 리더, 시니어 개발자, 품질 담당자 참여" }, "versionControl": { "naming": "규칙 버전은 {year}.{month}.{patch} 형식으로 관리", "changelog": "모든 변경 사항 기록 유지", "tagging": "주요 버전은 Git 태그로 관리", "backwardsCompatibility": "이전 버전과의 호환성 명시" }, "updateProcess": { "proposal": { "template": "변경 제안서 템플릿 사용", "fields": [ "변경 내용", "변경 이유", "예상 영향", "구현 계획", "롤백 계획" ], "review": "기술 위원회 또는 지정된 담당자 검토" }, "implementation": { "steps": [ "규칙 문서 업데이트", "도구 구성 업데이트", "샘플 코드 업데이트", "자동화 검사 업데이트" ], "verification": "변경 사항 검증 및 테스트" }, "communication": { "announcement": "팀에 변경 사항 공지", "channels": [ "이메일", "팀 미팅", "Slack 채널", "내부 Wiki" ], "content": [ "변경 내용 요약", "변경 이유", "적용 기한", "질문/지원 연락처" ] }, "adoption": { "gradual": "중요한 변경은 단계적 적용", "support": "전환 기간 동안 추가 지원 제공", "monitoring": "적용 현황 및 이슈 모니터링" } }, "exceptions": { "criteria": [ "기술적 제약", "비즈니스 요구사항 충돌", "마이그레이션 중인 레거시 코드", "특정 성능 요구사항" ], "process": { "request": "예외 요청 양식 작성", "approval": "기술 리더 또는 아키텍트 승인", "documentation": "승인된 예외 기록 유지", "review": "정기적으로 예외 상황 재검토" }, "annotation": "코드에 예외 사유 주석 처리" }, "metrics": { "compliance": { "linterCoverage": "린터 규칙 준수율", "codeReviewFindings": "코드 리뷰 시 규칙 위반 건수", "automatedChecks": "CI 파이프라인 검사 통과율" }, "effectiveness": { "bugReduction": "규칙 도입 후 버그 감소율", "maintainabilityIndex": "코드 유지보수성 지표 변화", "developerEfficiency": "개발자 생산성 변화" }, "reporting": { "frequency": "월간 및 분기별 보고", "visualization": "트렌드 및 비교 차트 제공", "distribution": "팀 및 경영진에게 보고" } } }, "adoption": { "initialRollout": { "phases": [ "준비: 규칙 완성 및 도구 구성", "파일럿: 소규모 팀 적용 및 피드백", "전체 도입: 단계적 확대 적용", "정착: 규칙 준수 문화 형성" ], "timeline": "각 단계별 명확한 일정 수립", "responsibilities": "각 단계별 담당자 지정" }, "enforcement": { "automated": { "linting": "lint-staged 및 CI 파이프라인 검사", "preCommit": "git hook을 통한 제출 전 검사", "pullRequests": "PR 시 자동 검사 및 피드백" }, "manual": { "codeReviews": "규칙 준수 관점의 코드 리뷰", "peerLearning": "팀 내 지식 공유 및 멘토링", "regularAudits": "정기적인 코드 품질 감사" }, "gradual": { "warnings": "초기에는 경고만 표시", "blocking": "안정화 후 중요 규칙 위반은 빌드 차단", "flexibility": "특정 상황에 대한 예외 허용" } }, "incentives": { "recognition": "규칙 준수 및 개선에 기여한 팀원 인정", "metrics": "팀 성과 평가에 코드 품질 지표 포함", "showcasing": "모범 사례 코드 공유 및 시연" } } } }