# Repomix에 기여하기

Repomix에 관심을 가져주셔서 감사합니다! 🚀 프로젝트를 더 좋게 만들기 위한 여러분의 도움을 환영합니다. 이 가이드는 프로젝트에 기여하는 방법을 안내합니다.

## 기여 방법

- **저장소 스타하기**: [저장소에 스타](https://github.com/yamadashy/repomix)를 눌러 지원해주세요!
- **이슈 생성하기**: 버그를 발견하셨나요? 새로운 기능 아이디어가 있으신가요? [이슈를 생성](https://github.com/yamadashy/repomix/issues)하여 알려주세요.
- **풀 리퀘스트 제출하기**: 수정하거나 개선할 점을 찾으셨나요? PR을 제출해주세요!
- **소문내기**: 소셜 미디어, 블로그 또는 기술 커뮤니티에서 Repomix에 대한 경험을 공유해주세요.
- **Repomix 사용하기**: 실제 사용에서 오는 피드백이 가장 가치 있습니다. 여러분의 프로젝트에 Repomix를 통합해보세요!
- **후원하기**: [후원자가 되어](https://github.com/sponsors/yamadashy) Repomix 개발을 지원해주세요.

## 빠른 시작

```bash
git clone https://github.com/yamadashy/repomix.git
cd repomix
npm install
```

## 개발 명령어

```bash
# CLI 실행
npm run repomix

# 테스트 실행
npm run test
npm run test-coverage

# 코드 린트
npm run lint
```

## 코드 스타일

- 린트 및 포맷팅에 [Biome](https://biomejs.dev/)을 사용합니다.
- 테스트 용이성을 위해 의존성 주입을 사용합니다.
- 파일 길이를 250줄 미만으로 유지합니다.
- 새로운 기능에 대한 테스트를 추가합니다.

## Pull Request 가이드라인

1. 모든 테스트를 실행합니다.
2. 린트 검사를 통과합니다.
3. 문서를 업데이트합니다.
4. 기존 코드 스타일을 따릅니다.

## 개발 환경 설정

### 필수 구성 요소

- Node.js ≥ 18.0.0
- Git
- npm
- Docker (선택 사항, 웹사이트 실행 또는 컨테이너화된 개발용)

### 로컬 개발

Repomix 로컬 개발 환경을 설정하려면:

```bash
# 저장소 복제
git clone https://github.com/yamadashy/repomix.git
cd repomix

# 의존성 설치
npm install

# CLI 실행
npm run repomix
```

### Docker 개발

Docker를 사용하여 Repomix를 실행할 수도 있습니다:

```bash
# 이미지 빌드
docker build -t repomix .

# 컨테이너 실행
docker run -v ./:/app -it --rm repomix
```

### 프로젝트 구조

프로젝트는 다음 디렉토리로 구성되어 있습니다:

```
src/
├── cli/          # CLI 구현
├── config/       # 구성 처리
├── core/         # 핵심 기능
│   ├── file/     # 파일 처리
│   ├── metrics/  # 메트릭스 계산
│   ├── output/   # 출력 생성
│   ├── security/ # 보안 검사
├── mcp/          # MCP 서버 통합
└── shared/       # 공유 유틸리티
tests/            # src/ 구조를 반영한 테스트
website/          # 문서 웹사이트
├── client/       # 프론트엔드 (VitePress)
└── server/       # 백엔드 API
```

## 웹사이트 개발

Repomix 웹사이트는 [VitePress](https://vitepress.dev/)로 구축되었습니다. 로컬에서 웹사이트를 실행하려면:

```bash
# 전제 조건: 시스템에 Docker가 설치되어 있어야 합니다

# 웹사이트 개발 서버 시작
npm run website

# http://localhost:5173/에서 웹사이트에 액세스
```

문서를 업데이트할 때는 먼저 영어 버전만 업데이트하면 됩니다. 다른 언어로의 번역은 메인테이너가 처리합니다.

## 릴리스 프로세스

메인테이너와 기여자를 위한 릴리스 프로세스:

1. 버전 업데이트
```bash
npm version patch  # 또는 minor/major
```

2. 테스트 및 빌드 실행
```bash
npm run test-coverage
npm run build
```

3. 게시
```bash
npm publish
```

새 버전은 메인테이너에 의해 관리됩니다. 릴리스가 필요하다고 생각되면 이슈를 열어 논의하세요.

## 도움이 필요하신가요?

- [이슈 열기](https://github.com/yamadashy/repomix/issues)
- [Discord 참여](https://discord.gg/wNYzTwZFku)
