You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
366 lines
12 KiB
366 lines
12 KiB
# AGENTS.md
|
|
|
|
## 프로젝트 개요
|
|
|
|
Data Science for Beginners는 Microsoft Azure Cloud Advocates가 제작한 10주, 20강의 종합 커리큘럼입니다. 이 저장소는 Jupyter 노트북, 인터랙티브 퀴즈, 실습 과제를 포함한 프로젝트 기반 강의를 통해 데이터 과학의 기초 개념을 가르치는 학습 자료입니다.
|
|
|
|
**주요 기술:**
|
|
- **Jupyter 노트북**: Python 3을 사용한 주요 학습 매체
|
|
- **Python 라이브러리**: pandas, numpy, matplotlib을 활용한 데이터 분석 및 시각화
|
|
- **Vue.js 2**: 퀴즈 애플리케이션 (quiz-app 폴더)
|
|
- **Docsify**: 오프라인 접근을 위한 문서 사이트 생성기
|
|
- **Node.js/npm**: JavaScript 구성 요소를 위한 패키지 관리
|
|
- **Markdown**: 모든 강의 내용 및 문서화
|
|
|
|
**아키텍처:**
|
|
- 다국어 교육용 저장소로 광범위한 번역 제공
|
|
- 강의 모듈로 구성 (1-Introduction부터 6-Data-Science-In-Wild까지)
|
|
- 각 강의는 README, 노트북, 과제, 퀴즈를 포함
|
|
- 독립 실행형 Vue.js 퀴즈 애플리케이션으로 강의 전후 평가 가능
|
|
- GitHub Codespaces 및 VS Code 개발 컨테이너 지원
|
|
|
|
## 설정 명령어
|
|
|
|
### 저장소 설정
|
|
```bash
|
|
# Clone the repository (if not already cloned)
|
|
git clone https://github.com/microsoft/Data-Science-For-Beginners.git
|
|
cd Data-Science-For-Beginners
|
|
```
|
|
|
|
### Python 환경 설정
|
|
```bash
|
|
# Create a virtual environment (recommended)
|
|
python -m venv venv
|
|
source venv/bin/activate # On Windows: venv\Scripts\activate
|
|
|
|
# Install common data science libraries (no requirements.txt exists)
|
|
pip install jupyter pandas numpy matplotlib seaborn scikit-learn
|
|
```
|
|
|
|
### 퀴즈 애플리케이션 설정
|
|
```bash
|
|
# Navigate to quiz app
|
|
cd quiz-app
|
|
|
|
# Install dependencies
|
|
npm install
|
|
|
|
# Start development server
|
|
npm run serve
|
|
|
|
# Build for production
|
|
npm run build
|
|
|
|
# Lint and fix files
|
|
npm run lint
|
|
```
|
|
|
|
### Docsify 문서 서버
|
|
```bash
|
|
# Install Docsify globally
|
|
npm install -g docsify-cli
|
|
|
|
# Serve documentation locally
|
|
docsify serve
|
|
|
|
# Documentation will be available at localhost:3000
|
|
```
|
|
|
|
### 시각화 프로젝트 설정
|
|
예: meaningful-visualizations (13강):
|
|
```bash
|
|
# Navigate to starter or solution folder
|
|
cd 3-Data-Visualization/13-meaningful-visualizations/starter
|
|
|
|
# Install dependencies
|
|
npm install
|
|
|
|
# Start development server
|
|
npm run serve
|
|
|
|
# Build for production
|
|
npm run build
|
|
|
|
# Lint files
|
|
npm run lint
|
|
```
|
|
|
|
|
|
## 개발 워크플로우
|
|
|
|
### Jupyter 노트북 작업
|
|
1. 저장소 루트에서 Jupyter 시작: `jupyter notebook`
|
|
2. 원하는 강의 폴더로 이동
|
|
3. `.ipynb` 파일 열어 연습 진행
|
|
4. 노트북은 설명과 코드 셀이 포함된 독립형 자료
|
|
5. 대부분의 노트북은 pandas, numpy, matplotlib을 사용 - 설치 확인 필요
|
|
|
|
### 강의 구조
|
|
각 강의는 일반적으로 다음을 포함합니다:
|
|
- `README.md` - 이론 및 예제를 포함한 주요 강의 내용
|
|
- `notebook.ipynb` - 실습 Jupyter 노트북 연습
|
|
- `assignment.ipynb` 또는 `assignment.md` - 실습 과제
|
|
- `solution/` 폴더 - 솔루션 노트북 및 코드
|
|
- `images/` 폴더 - 지원 시각 자료
|
|
|
|
### 퀴즈 애플리케이션 개발
|
|
- Vue.js 2 애플리케이션으로 개발 중 핫 리로드 지원
|
|
- 퀴즈는 `quiz-app/src/assets/translations/`에 저장
|
|
- 각 언어는 자체 번역 폴더를 가짐 (en, fr, es 등)
|
|
- 퀴즈 번호는 0부터 시작하여 총 40개
|
|
|
|
### 번역 추가
|
|
- 번역은 저장소 루트의 `translations/` 폴더에 저장
|
|
- 각 언어는 영어 구조를 그대로 따름
|
|
- GitHub Actions를 통한 자동 번역 (co-op-translator.yml)
|
|
|
|
## 테스트 지침
|
|
|
|
### 퀴즈 애플리케이션 테스트
|
|
```bash
|
|
cd quiz-app
|
|
|
|
# Run lint checks
|
|
npm run lint
|
|
|
|
# Test build process
|
|
npm run build
|
|
|
|
# Manual testing: Start dev server and verify quiz functionality
|
|
npm run serve
|
|
```
|
|
|
|
### 노트북 테스트
|
|
- 노트북에 대한 자동화된 테스트 프레임워크는 없음
|
|
- 수동 검증: 모든 셀을 순서대로 실행하여 오류 없는지 확인
|
|
- 데이터 파일 접근 가능 여부 및 출력 생성 확인
|
|
- 시각화가 올바르게 렌더링되는지 확인
|
|
|
|
### 문서 테스트
|
|
```bash
|
|
# Verify Docsify renders correctly
|
|
docsify serve
|
|
|
|
# Check for broken links manually by navigating through content
|
|
# Verify all lesson links work in the rendered documentation
|
|
```
|
|
|
|
### 코드 품질 검사
|
|
```bash
|
|
# Vue.js projects (quiz-app and visualization projects)
|
|
cd quiz-app # or visualization project folder
|
|
npm run lint
|
|
|
|
# Python notebooks - manual verification recommended
|
|
# Ensure imports work and cells execute without errors
|
|
```
|
|
|
|
|
|
## 코드 스타일 지침
|
|
|
|
### Python (Jupyter 노트북)
|
|
- Python 코드에 대해 PEP 8 스타일 지침 준수
|
|
- 분석 중인 데이터를 설명하는 명확한 변수명 사용
|
|
- 코드 셀 앞에 설명이 포함된 Markdown 셀 추가
|
|
- 코드 셀은 단일 개념 또는 작업에 집중
|
|
- 데이터 조작에는 pandas, 시각화에는 matplotlib 사용
|
|
- 일반적인 import 패턴:
|
|
```python
|
|
import pandas as pd
|
|
import numpy as np
|
|
import matplotlib.pyplot as plt
|
|
```
|
|
|
|
|
|
### JavaScript/Vue.js
|
|
- Vue.js 2 스타일 가이드 및 모범 사례 준수
|
|
- `quiz-app/package.json`에 ESLint 구성
|
|
- Vue 단일 파일 구성 요소 (.vue 파일) 사용
|
|
- 컴포넌트 기반 아키텍처 유지
|
|
- 변경 사항 커밋 전에 `npm run lint` 실행
|
|
|
|
### Markdown 문서화
|
|
- 명확한 제목 계층 구조 사용 (# ## ### 등)
|
|
- 언어 지정자를 포함한 코드 블록 추가
|
|
- 이미지에 alt 텍스트 추가
|
|
- 관련 강의 및 리소스 링크 추가
|
|
- 가독성을 위해 적절한 줄 길이 유지
|
|
|
|
### 파일 구성
|
|
- 번호가 매겨진 폴더에 강의 내용 저장 (01-defining-data-science 등)
|
|
- 솔루션은 전용 `solution/` 하위 폴더에 저장
|
|
- 번역은 영어 구조를 그대로 따르는 `translations/` 폴더에 저장
|
|
- 데이터 파일은 `data/` 또는 강의별 폴더에 저장
|
|
|
|
## 빌드 및 배포
|
|
|
|
### 퀴즈 애플리케이션 배포
|
|
```bash
|
|
cd quiz-app
|
|
|
|
# Build production version
|
|
npm run build
|
|
|
|
# Output is in dist/ folder
|
|
# Deploy dist/ folder to static hosting (Azure Static Web Apps, Netlify, etc.)
|
|
```
|
|
|
|
### Azure Static Web Apps 배포
|
|
퀴즈 애플리케이션은 Azure Static Web Apps에 배포 가능:
|
|
1. Azure Static Web App 리소스 생성
|
|
2. GitHub 저장소 연결
|
|
3. 빌드 설정 구성:
|
|
- 앱 위치: `quiz-app`
|
|
- 출력 위치: `dist`
|
|
4. GitHub Actions 워크플로우가 푸시 시 자동 배포
|
|
|
|
### 문서 사이트
|
|
```bash
|
|
# Build PDF from Docsify (optional)
|
|
npm run convert
|
|
|
|
# Docsify documentation is served directly from markdown files
|
|
# No build step required for deployment
|
|
# Deploy repository to static hosting with Docsify
|
|
```
|
|
|
|
### GitHub Codespaces
|
|
- 저장소에 개발 컨테이너 구성 포함
|
|
- Codespaces가 Python 및 Node.js 환경 자동 설정
|
|
- GitHub UI를 통해 저장소를 Codespace에서 열기
|
|
- 모든 종속성이 자동으로 설치됨
|
|
|
|
## Pull Request 지침
|
|
|
|
### 제출 전
|
|
```bash
|
|
# For Vue.js changes in quiz-app
|
|
cd quiz-app
|
|
npm run lint
|
|
npm run build
|
|
|
|
# Test changes locally
|
|
npm run serve
|
|
```
|
|
|
|
### PR 제목 형식
|
|
- 명확하고 설명적인 제목 사용
|
|
- 형식: `[컴포넌트] 간단한 설명`
|
|
- 예시:
|
|
- `[Lesson 7] Fix Python notebook import error`
|
|
- `[Quiz App] Add German translation`
|
|
- `[Docs] Update README with new prerequisites`
|
|
|
|
### 필수 검사
|
|
- 모든 코드가 오류 없이 실행되는지 확인
|
|
- 노트북이 완전히 실행되는지 검증
|
|
- Vue.js 애플리케이션이 성공적으로 빌드되는지 확인
|
|
- 문서 링크가 작동하는지 확인
|
|
- 수정된 경우 퀴즈 애플리케이션 테스트
|
|
- 번역이 일관된 구조를 유지하는지 확인
|
|
|
|
### 기여 지침
|
|
- 기존 코드 스타일 및 패턴 준수
|
|
- 복잡한 로직에 대한 설명 주석 추가
|
|
- 관련 문서 업데이트
|
|
- 변경 사항이 적용되는 경우 여러 강의 모듈에서 테스트
|
|
- CONTRIBUTING.md 파일 검토
|
|
|
|
## 추가 참고 사항
|
|
|
|
### 사용된 주요 라이브러리
|
|
- **pandas**: 데이터 조작 및 분석
|
|
- **numpy**: 수치 계산
|
|
- **matplotlib**: 데이터 시각화 및 플로팅
|
|
- **seaborn**: 통계적 데이터 시각화 (일부 강의)
|
|
- **scikit-learn**: 머신 러닝 (고급 강의)
|
|
|
|
### 데이터 파일 작업
|
|
- 데이터 파일은 `data/` 폴더 또는 강의별 디렉토리에 위치
|
|
- 대부분의 노트북은 상대 경로에서 데이터 파일을 기대
|
|
- CSV 파일이 주요 데이터 형식
|
|
- 일부 강의는 비관계형 데이터 예제를 위해 JSON 사용
|
|
|
|
### 다국어 지원
|
|
- GitHub Actions를 통한 40개 이상의 언어 번역
|
|
- 번역 워크플로우는 `.github/workflows/co-op-translator.yml`에 있음
|
|
- 번역은 언어 코드가 포함된 `translations/` 폴더에 저장
|
|
- 퀴즈 번역은 `quiz-app/src/assets/translations/`에 저장
|
|
|
|
### 개발 환경 옵션
|
|
1. **로컬 개발**: Python, Jupyter, Node.js를 로컬에 설치
|
|
2. **GitHub Codespaces**: 클라우드 기반 즉시 개발 환경
|
|
3. **VS Code Dev Containers**: 로컬 컨테이너 기반 개발
|
|
4. **Binder**: 클라우드에서 노트북 실행 (구성된 경우)
|
|
|
|
### 강의 내용 지침
|
|
- 각 강의는 독립적이지만 이전 개념을 기반으로 구축
|
|
- 강의 전 퀴즈는 사전 지식을 테스트
|
|
- 강의 후 퀴즈는 학습을 강화
|
|
- 과제는 실습 연습 제공
|
|
- 스케치노트는 시각적 요약 제공
|
|
|
|
### 일반적인 문제 해결
|
|
|
|
**Jupyter 커널 문제:**
|
|
```bash
|
|
# Ensure correct kernel is installed
|
|
python -m ipykernel install --user --name=datascience
|
|
```
|
|
|
|
**npm 설치 실패:**
|
|
```bash
|
|
# Clear npm cache and retry
|
|
npm cache clean --force
|
|
rm -rf node_modules package-lock.json
|
|
npm install
|
|
```
|
|
|
|
**노트북에서 Import 오류:**
|
|
- 필요한 모든 라이브러리가 설치되었는지 확인
|
|
- Python 버전 호환성 확인 (Python 3.7+ 권장)
|
|
- 가상 환경이 활성화되었는지 확인
|
|
|
|
**Docsify가 로드되지 않음:**
|
|
- 저장소 루트에서 제공 중인지 확인
|
|
- `index.html`이 존재하는지 확인
|
|
- 적절한 네트워크 접근 확인 (포트 3000)
|
|
|
|
### 성능 고려 사항
|
|
- 대규모 데이터셋은 노트북에서 로드 시간이 걸릴 수 있음
|
|
- 복잡한 플롯의 시각화 렌더링이 느릴 수 있음
|
|
- Vue.js 개발 서버는 빠른 반복을 위한 핫 리로드 제공
|
|
- 프로덕션 빌드는 최적화되고 축소됨
|
|
|
|
### 보안 참고 사항
|
|
- 민감한 데이터나 자격 증명은 커밋하지 말 것
|
|
- 클라우드 강의에서 API 키는 환경 변수로 사용
|
|
- Azure 관련 강의는 Azure 계정 자격 증명이 필요할 수 있음
|
|
- 보안 패치를 위해 종속성을 최신 상태로 유지
|
|
|
|
## 번역 기여
|
|
- GitHub Actions를 통해 자동 번역 관리
|
|
- 번역 정확성을 위한 수동 수정 환영
|
|
- 기존 번역 폴더 구조 준수
|
|
- 퀴즈 링크에 언어 매개변수 추가: `?loc=fr`
|
|
- 번역된 강의가 올바르게 렌더링되는지 테스트
|
|
|
|
## 관련 리소스
|
|
- 주요 커리큘럼: https://aka.ms/datascience-beginners
|
|
- Microsoft Learn: https://docs.microsoft.com/learn/
|
|
- 학생 허브: https://docs.microsoft.com/learn/student-hub
|
|
- 토론 포럼: https://github.com/microsoft/Data-Science-For-Beginners/discussions
|
|
- 기타 Microsoft 커리큘럼: ML for Beginners, AI for Beginners, Web Dev for Beginners
|
|
|
|
## 프로젝트 유지 관리
|
|
- 콘텐츠를 최신 상태로 유지하기 위한 정기 업데이트
|
|
- 커뮤니티 기여 환영
|
|
- GitHub에서 문제 추적
|
|
- 커리큘럼 유지 관리자가 PR 검토
|
|
- 월간 콘텐츠 리뷰 및 업데이트
|
|
|
|
---
|
|
|
|
**면책 조항**:
|
|
이 문서는 AI 번역 서비스 [Co-op Translator](https://github.com/Azure/co-op-translator)를 사용하여 번역되었습니다. 정확성을 위해 최선을 다하고 있으나, 자동 번역에는 오류나 부정확성이 포함될 수 있습니다. 원본 문서의 원어 버전이 권위 있는 출처로 간주되어야 합니다. 중요한 정보의 경우, 전문적인 인간 번역을 권장합니다. 이 번역 사용으로 인해 발생하는 오해나 잘못된 해석에 대해 당사는 책임을 지지 않습니다. |