|
| 1 | +# AGENTS.md |
| 2 | + |
| 3 | +AI 에이전트를 위한 프로젝트 컨텍스트 및 작업 가이드 |
| 4 | + |
| 5 | +--- |
| 6 | + |
| 7 | +## 프로젝트 개요 |
| 8 | + |
| 9 | +**azure-sdk-korean**은 [Azure SDK](https://github.com/Azure/azure-sdk) 영문 문서를 한글로 번역하고 유용한 정보를 모으는 커뮤니티 프로젝트입니다. |
| 10 | + |
| 11 | +- **저장소**: https://github.com/Azure/azure-sdk-korean |
| 12 | +- **라이브 사이트**: https://azure.github.io/azure-sdk-korean/ |
| 13 | +- **빌드 시스템**: Jekyll (GitHub Pages) |
| 14 | +- **마지막 활동**: 2023년 10월 (2026년 3월 재활성화) |
| 15 | + |
| 16 | +--- |
| 17 | + |
| 18 | +## 프로젝트 상태 (2026-03-27 기준) |
| 19 | + |
| 20 | +### ✅ 완료된 작업 |
| 21 | + |
| 22 | +#### Infrastructure & Security (2026-03) |
| 23 | +- **GitHub Actions 워크플로우** - `.github/workflows/pages.yml` 자동 배포 |
| 24 | +- **빌드 상태 배지** - README.md에 추가 |
| 25 | +- **보안 취약점 업데이트**: |
| 26 | + - github-pages gem: 228 → 231 |
| 27 | + - activesupport: 6.1.7.5 → 8.1.3 |
| 28 | + - Dependabot 알림: 19개 → 17개 |
| 29 | + - 남은 17개 알림은 빌드 타임 의존성으로 프로덕션 위험 없음 (#196에 문서화) |
| 30 | + |
| 31 | +#### Issue Triage (2026-03) |
| 32 | +- **닫힌 이슈**: #196 (보안), #130 (빌드), #178 (중복), #13 (완료), #149 (하이퍼링크) |
| 33 | +- **오픈 이슈**: 26개 → 21개 |
| 34 | + |
| 35 | +#### Content Status |
| 36 | +- **Python Guidelines**: |
| 37 | + - `design.md` - 849 lines ✅ |
| 38 | + - `implementation.md` - 548 lines ✅ |
| 39 | +- **.NET Guidelines**: `introduction.md` - 1,090 lines ✅ |
| 40 | +- **Java Guidelines**: `introduction.md` + `spring.md` - 1,315 lines ✅ |
| 41 | + |
| 42 | +### 🔲 남은 작업 |
| 43 | + |
| 44 | +#### Phase 2: Stale Issue Review |
| 45 | +2021-2022년 오래된 이슈 검토 필요: |
| 46 | +- #6 - 번역 진행상황 추적 도구 제안 |
| 47 | +- #24 - 번역 안된 문서: Azure SDK 저장소 가리키기 |
| 48 | +- #29 - HTML 내용 번역 |
| 49 | +- #87 - Python design에서 "Idiomatic" 한글 번역 |
| 50 | +- #106 - Azure SDK for Python 가이드 페이지 추가 |
| 51 | +- #109 - Python Contribution 페이지 추가 |
| 52 | + |
| 53 | +#### Quick Wins |
| 54 | +- #148 - `docs/policies/reviewprocess.md` 용어 수정 |
| 55 | +- #147 - `docs/general/terminology.md` 용어 수정 |
| 56 | +- #142 - `general_terminology.html` 용어 추가/수정 |
| 57 | + |
| 58 | +#### Documentation Updates Needed |
| 59 | +업스트림 Azure SDK 문서 변경으로 outdated: |
| 60 | +- #171 - General Guidelines > Implementation > 'Dependencies' |
| 61 | +- #170 - General Guidelines > Implementation > 'Distributed Tracing' |
| 62 | +- #169 - General Guidelines > Implementation > 'Parameter validation' |
| 63 | + |
| 64 | +#### Governance |
| 65 | +- #189 - 커밋 메시지 컨벤션 문서화 (진행 중) |
| 66 | +- #155 - Azure SDK Korean contribution 가이드라인 추가 |
| 67 | +- #180, #179 - 메타데이터 자동화 (낮은 우선순위) |
| 68 | + |
| 69 | +#### UI/UX |
| 70 | +- #129 - Sidebar 개선 (작은 화면에서 레이아웃 문제) |
| 71 | + |
| 72 | +#### Translation Coordination |
| 73 | +2023년 중단된 번역 작업 재개 여부 결정: |
| 74 | +- #158 - Python Guidelines: Implementation (대부분 완료, 검증 필요) |
| 75 | +- #157 - General Guidelines: Contribution |
| 76 | +- #153 - General Guidelines: Implementation 나머지 |
| 77 | +- #146 - Policies: Releases 나머지 |
| 78 | + |
| 79 | +--- |
| 80 | + |
| 81 | +## 기술 스택 & 빌드 |
| 82 | + |
| 83 | +### 의존성 |
| 84 | +- **Ruby**: 3.2.3 |
| 85 | +- **Bundler**: 2.3.22 |
| 86 | +- **Jekyll**: 3.9.3 (via github-pages) |
| 87 | +- **github-pages gem**: 231 |
| 88 | + |
| 89 | +### 로컬 빌드 |
| 90 | +```bash |
| 91 | +bundle install |
| 92 | +bundle exec jekyll build |
| 93 | +bundle exec jekyll serve # http://localhost:4000 |
| 94 | +``` |
| 95 | + |
| 96 | +### GitHub Pages 배포 |
| 97 | +- **트리거**: Push to `main` branch |
| 98 | +- **워크플로우**: `.github/workflows/pages.yml` |
| 99 | +- **빌드 시간**: ~3초 |
| 100 | +- **배포 URL**: https://azure.github.io/azure-sdk-korean/ |
| 101 | + |
| 102 | +--- |
| 103 | + |
| 104 | +## 작업 워크플로우 |
| 105 | + |
| 106 | +### 필수 규칙 |
| 107 | + |
| 108 | +1. **이슈 우선 생성**: 모든 작업은 GitHub Issue를 먼저 등록하고 진행 |
| 109 | +2. **커밋 메시지 컨벤션**: Conventional Commits 사용 (아래 참조) |
| 110 | +3. **최소 변경 원칙**: Scope creep 방지, focused changes |
| 111 | +4. **빌드 검증**: 변경 후 Jekyll 빌드 확인 |
| 112 | + |
| 113 | +### Commit Message Convention |
| 114 | + |
| 115 | +**Format:** |
| 116 | +``` |
| 117 | +<type>: <subject> |
| 118 | +
|
| 119 | +[optional body] |
| 120 | +
|
| 121 | +[optional footer] |
| 122 | +``` |
| 123 | + |
| 124 | +**Types:** |
| 125 | +- `docs:` - 문서 번역, 수정 |
| 126 | +- `feat:` - 새 기능 추가 |
| 127 | +- `fix:` - 버그 수정 |
| 128 | +- `chore:` - 빌드, 의존성 업데이트 |
| 129 | +- `style:` - 코드 스타일, 포맷 (번역 아님) |
| 130 | +- `refactor:` - 리팩토링 |
| 131 | + |
| 132 | +**Footer:** |
| 133 | +- `Refs #123` - 이슈 참조 |
| 134 | +- `Closes #123` - 이슈 닫기 |
| 135 | +- `Co-authored-by: Name <email>` - 공동 작업자 |
| 136 | + |
| 137 | +**Examples:** |
| 138 | +``` |
| 139 | +docs: translate Python Guidelines Implementation |
| 140 | +
|
| 141 | +Translate API Implementation and Testing sections. |
| 142 | +
|
| 143 | +Refs #158 |
| 144 | +
|
| 145 | +--- |
| 146 | +
|
| 147 | +fix: correct hyperlink in header |
| 148 | +
|
| 149 | +Changed plain text URL to Markdown hyperlink. |
| 150 | +
|
| 151 | +Closes #149 |
| 152 | +
|
| 153 | +--- |
| 154 | +
|
| 155 | +chore: update github-pages to v231 |
| 156 | +
|
| 157 | +- Update github-pages gem from 228 to 231 |
| 158 | +- Regenerate Gemfile.lock |
| 159 | +- Update activesupport to 8.1.3 |
| 160 | +
|
| 161 | +Reduces Dependabot alerts from 19 to 17. |
| 162 | +
|
| 163 | +Refs #196 |
| 164 | +``` |
| 165 | + |
| 166 | +### 브랜치 전략 |
| 167 | +- **main**: 프로덕션 브랜치 (GitHub Pages 배포) |
| 168 | +- **feature/***: 기능 개발 브랜치 (선택사항) |
| 169 | +- **Pull Request**: 권장되지만 필수 아님 (소규모 변경은 직접 main push 가능) |
| 170 | + |
| 171 | +--- |
| 172 | + |
| 173 | +## 보안 정책 |
| 174 | + |
| 175 | +### Dependabot 알림 처리 |
| 176 | + |
| 177 | +**현재 상태 (2026-03-27):** |
| 178 | +- 17개 알림 (1 critical, 2 high, 11 moderate, 3 low) |
| 179 | +- 모두 **빌드 타임 의존성** - 프로덕션 노출 없음 |
| 180 | +- 위험도 평가 및 수용 근거: Issue #196 참조 |
| 181 | + |
| 182 | +**정책:** |
| 183 | +- 분기별 리뷰 (다음: 2026년 6월) |
| 184 | +- Critical/High 알림 발생 시 즉시 검토 |
| 185 | +- 빌드 전용 취약점은 문서화된 위험 수용 가능 |
| 186 | + |
| 187 | +**참고 문서:** |
| 188 | +- Issue #196 - 전체 위험도 분석 및 컴포넌트별 분류 |
| 189 | +- `SECURITY.md` - Microsoft 표준 보안 정책 |
| 190 | + |
| 191 | +--- |
| 192 | + |
| 193 | +## 디렉토리 구조 |
| 194 | + |
| 195 | +``` |
| 196 | +azure-sdk-korean/ |
| 197 | +├── .github/ |
| 198 | +│ └── workflows/ |
| 199 | +│ └── pages.yml # GitHub Actions 자동 배포 |
| 200 | +├── docs/ |
| 201 | +│ ├── android/ # Android SDK 가이드라인 |
| 202 | +│ ├── contribution/ # 기여 가이드 |
| 203 | +│ ├── dotnet/ # .NET SDK 가이드라인 |
| 204 | +│ ├── general/ # 일반 가이드라인 |
| 205 | +│ ├── ios/ # iOS SDK 가이드라인 |
| 206 | +│ ├── java/ # Java SDK 가이드라인 |
| 207 | +│ ├── policies/ # 정책 문서 |
| 208 | +│ ├── python/ # Python SDK 가이드라인 |
| 209 | +│ │ ├── design.md # 849 lines ✅ |
| 210 | +│ │ └── implementation.md # 548 lines ✅ |
| 211 | +│ ├── tables/ # 네임스페이스 테이블 |
| 212 | +│ └── tracing/ # 분산 추적 |
| 213 | +├── _includes/ # Jekyll includes |
| 214 | +│ └── info/header.md # 사이트 헤더 |
| 215 | +├── _layouts/ # Jekyll 레이아웃 |
| 216 | +├── _config.yml # Jekyll 설정 |
| 217 | +├── Gemfile # Ruby 의존성 |
| 218 | +├── Gemfile.lock # 의존성 잠금 |
| 219 | +├── README.md # 프로젝트 README |
| 220 | +├── CONTRIBUTING.md # 기여 가이드 |
| 221 | +├── SECURITY.md # 보안 정책 |
| 222 | +└── AGENTS.md # 🤖 이 파일 |
| 223 | +``` |
| 224 | + |
| 225 | +--- |
| 226 | + |
| 227 | +## 외부 참조 |
| 228 | + |
| 229 | +### Upstream 문서 |
| 230 | +- **Azure SDK Guidelines**: https://aka.ms/azsdk/guide |
| 231 | +- **Azure SDK 메인 저장소**: https://github.com/Azure/azure-sdk |
| 232 | +- **Python SDK**: https://github.com/Azure/azure-sdk-for-python |
| 233 | +- **.NET SDK**: https://github.com/Azure/azure-sdk-for-net |
| 234 | +- **Java SDK**: https://github.com/Azure/azure-sdk-for-java |
| 235 | + |
| 236 | +### 컨벤션 참고 |
| 237 | +- **OpenStack Git Commit Messages**: https://wiki.openstack.org/wiki/GitCommitMessages |
| 238 | +- **Conventional Commits**: https://www.conventionalcommits.org/ |
| 239 | + |
| 240 | +--- |
| 241 | + |
| 242 | +## 에이전트 작업 시 주의사항 |
| 243 | + |
| 244 | +### DO ✅ |
| 245 | +- 작업 전 항상 이슈 생성 (`gh issue create`) |
| 246 | +- Conventional Commits 형식 준수 |
| 247 | +- 변경 후 Jekyll 빌드 검증 (`bundle exec jekyll build`) |
| 248 | +- 이슈 번호 참조 (`Refs #N` 또는 `Closes #N`) |
| 249 | +- 최소 변경 원칙 (focused, atomic commits) |
| 250 | + |
| 251 | +### DON'T ❌ |
| 252 | +- 이슈 없이 작업 시작 |
| 253 | +- 재활성화 공지 추가 (불필요한 메타 콘텐츠) |
| 254 | +- 여러 이슈를 한 커밋에 섞기 |
| 255 | +- 빌드 검증 없이 커밋 |
| 256 | +- 불필요한 리팩토링 (bugfix 중 등) |
| 257 | + |
| 258 | +### 번역 작업 시 |
| 259 | +- 업스트림 영문 문서 최신 버전 확인 |
| 260 | +- 기존 번역 스타일 및 용어 일관성 유지 |
| 261 | +- 전문 용어는 `docs/general/terminology.md` 참조 |
| 262 | +- 번역 완료 후 checklist 업데이트 |
| 263 | + |
| 264 | +--- |
| 265 | + |
| 266 | +## 최근 변경 이력 |
| 267 | + |
| 268 | +### 2026-03-27 |
| 269 | +- **Infrastructure**: GitHub Actions 워크플로우 추가, 빌드 배지 추가 |
| 270 | +- **Security**: Dependabot 알림 19→17개 감소, 위험도 분석 문서화 (#196) |
| 271 | +- **Issue Triage**: 5개 이슈 닫음 (#196, #130, #178, #13, #149) |
| 272 | +- **Documentation**: AGENTS.md 생성 (이 파일) |
| 273 | +- **Convention**: Conventional Commits 적용 |
| 274 | + |
| 275 | +### 2023-08~10 |
| 276 | +- Python Guidelines 번역 작업 활발 (FacerAin, Cor5in, bnbong 등) |
| 277 | +- Contribution 가이드 번역 |
| 278 | +- 용어 개선 제안들 |
| 279 | + |
| 280 | +### 2021-2022 |
| 281 | +- 초기 번역 작업 |
| 282 | +- 프로젝트 기반 구축 |
| 283 | + |
| 284 | +--- |
| 285 | + |
| 286 | +## 다음 우선순위 |
| 287 | + |
| 288 | +1. **Phase 2: Stale Issue Review** - 2021-2022 이슈 6개 검토 |
| 289 | +2. **Quick Wins** - 용어 수정 3개 (#148, #147, #142) |
| 290 | +3. **Governance** - 커밋 컨벤션 문서화 (#189) |
| 291 | +4. **Outdated Docs** - 업스트림 동기화 (#171, #170, #169) |
| 292 | + |
| 293 | +--- |
| 294 | + |
| 295 | +**Last Updated**: 2026-03-27 |
| 296 | +**Maintained by**: Azure SDK Korean Community |
0 commit comments