Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions .commit-types.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
module.exports = {
TYPES: [
"feat",
"fix",
"docs",
"style",
"refactor",
"perf",
"test",
"chore",
"rename",
"remove",
],
EMOJIS: {
feat: "✨",
fix: "🐛",
docs: "📝",
style: "💄",
refactor: "♻️",
perf: "⚡",
test: "✅",
chore: "🔧",
rename: "📛",
remove: "🗑️",
},
};
64 changes: 64 additions & 0 deletions .cursorrules
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# Cursor Rules for AZIT_Front

## Commit Message Format

커밋 메시지를 생성할 때 반드시 `commitlint.config.js`에 정의된 형식을 따라야 합니다:

### 필수 형식

```
✨ [type] subject
```

### 규칙:

1. **이모지 필수** - 이모지로 시작해야 합니다 (예: ✨, 🐛, 🔧, 📝 등)
2. **타입 필수** - 다음 중 하나여야 합니다: `[feat]`, `[fix]`, `[chore]`, `[docs]`, `[style]`, `[refactor]`, `[test]`, `[perf]`, `[rename]`, `[remove]`
3. **제목 필수** - 소문자로 시작, 마침표 없음, 최대 100자
4. **콜론 사용 금지** - 타입 뒤에 `:` 사용하지 않음
5. **스코프 사용 금지** - `(ui)` 또는 `(api)` 같은 스코프 포함하지 않음
6. **한국어 사용** - 커밋 메시지는 반드시 한국어로 작성

### 타입별 이모지 매핑:

- `[feat]` → ✨ (새로운 기능)
- `[fix]` → 🐛 (버그 수정)
- `[chore]` → 🔧 (유지보수 작업)
- `[docs]` → 📝 (문서)
- `[style]` → 💄 (포맷팅, 스타일링)
- `[refactor]` → ♻️ (코드 리팩토링)
- `[test]` → ✅ (테스트 추가)
- `[perf]` → ⚡ (성능 개선)
- `[rename]` → 📛 (파일/컴포넌트 이름 변경)
- `[remove]` → 🗑️ (코드/파일 제거)

### 예시:

✅ 올바른 형식:

- `✨ [feat] 로그인 버튼 추가`
- `🐛 [fix] 인증 문제 해결`
- `🔧 [chore] 의존성 업데이트`
- `📝 [docs] readme 업데이트`
- `💄 [style] 코드 포맷팅`
- `♻️ [refactor] api 호출 로직 개선`
- `✅ [test] 로그인 테스트 추가`
- `⚡ [perf] 이미지 로딩 최적화`
- `📛 [rename] 컴포넌트 이름 변경`
- `🗑️ [remove] 사용하지 않는 코드 제거`

❌ 잘못된 형식:

- `[feat] 로그인 버튼 추가` (이모지 없음)
- `✨ feat: 로그인 버튼 추가` (잘못된 형식, 콜론 사용)
- `✨ [feat](ui) 로그인 버튼 추가` (스코프 포함)
- `✨ [feat] 로그인 버튼 추가.` (마침표 사용)
- `✨ [feat] Add Login Button` (영어 사용, 대문자 사용)

### 커밋 메시지 생성 시:

1. 스테이징된 변경사항을 분석
2. 변경사항에 따라 적절한 타입 결정
3. 매칭되는 이모지 선택
4. 간결한 한국어 제목 작성 (소문자, 마침표 없음)
5. 전체 길이(이모지 + 타입 + 제목)가 100자 이하인지 확인
113 changes: 113 additions & 0 deletions .github/CODE_REVIEW_SETUP.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
# Gemini Code Review 설정 가이드

이 문서는 GitHub Actions를 사용한 Gemini Code Assist 기반 자동 코드 리뷰 설정 방법을 설명합니다.

## 🔧 설정 방법

### 1. Gemini API 키 발급

1. [Google AI Studio](https://makersuite.google.com/app/apikey)에 접속
2. "Create API Key" 버튼 클릭
3. 생성된 API 키를 복사 (나중에 다시 볼 수 없으므로 안전하게 보관)

### 2. GitHub Secrets 설정

1. GitHub 리포지토리로 이동
2. **Settings** > **Secrets and variables** > **Actions** 메뉴 선택
3. **New repository secret** 클릭
4. 다음 정보 입력:
- **Name**: `GEMINI_API_KEY`
- **Secret**: 발급받은 Gemini API 키
5. **Add secret** 클릭

### 3. 워크플로우 활성화 확인

워크플로우는 Pull Request가 열리거나 업데이트될 때 자동으로 실행됩니다.

## 📝 사용 방법

### 자동 리뷰

- Pull Request를 생성하거나 업데이트하면 자동으로 코드 리뷰가 실행됩니다
- 리뷰 결과는 PR의 코멘트로 자동 추가됩니다

### 수동 실행

1. GitHub Actions 탭으로 이동
2. **Gemini Code Review** 워크플로우 선택
3. **Run workflow** 버튼 클릭

## 🎯 리뷰 내용

자동 코드 리뷰는 다음 항목을 검토합니다:

- ✅ 코드 품질 및 버그 가능성
- ⚡ 성능 이슈
- 🔒 보안 문제
- 💄 코드 스타일 및 베스트 프랙티스
- 🧪 테스트 커버리지
- 📚 문서화

## 🔍 리뷰 표시

리뷰 코멘트에서 사용되는 아이콘:

- 🔴 중요한 이슈 (수정 필요)
- 🟡 경고 (개선 권장)
- 💡 제안사항 (선택적 개선)
- ✅ 긍정적인 부분 (잘 작성됨)

## ⚙️ 커스터마이징

### 리뷰 범위 조정

`.github/workflows/code-review.yml` 파일에서 리뷰할 파일 확장자를 수정할 수 있습니다:

```yaml
files: |
**/*.ts
**/*.tsx
**/*.js
**/*.jsx
**/*.py # Python 파일 추가 예시
```

### 리뷰 프롬프트 수정

워크플로우 파일의 `REVIEW_PROMPT` 부분을 수정하여 리뷰 기준을 변경할 수 있습니다.

## 🔐 보안 주의사항

- ⚠️ **절대로** API 키를 코드에 직접 포함시키지 마세요
- GitHub Secrets만 사용하세요
- API 키가 노출된 경우 즉시 재발급하세요

## 🐛 문제 해결

### 리뷰가 생성되지 않는 경우

1. **API 키 확인**: GitHub Secrets에 `GEMINI_API_KEY`가 올바르게 설정되어 있는지 확인
2. **워크플로우 실행 확인**: Actions 탭에서 워크플로우가 실행되었는지 확인
3. **로그 확인**: 워크플로우 실행 로그에서 오류 메시지 확인

### API 할당량 초과

- Gemini API는 무료 티어에서 제한이 있을 수 있습니다
- API 사용량을 [Google Cloud Console](https://console.cloud.google.com/)에서 확인할 수 있습니다

## 📚 참고 자료

- [Gemini API 문서](https://ai.google.dev/docs)
- [GitHub Actions 문서](https://docs.github.com/en/actions)
- [GitHub Marketplace - Gemini Code Assist](https://github.com/marketplace/gemini-code-assist)

## 💡 대안: GitHub Marketplace 앱 사용

GitHub Actions 대신 GitHub Marketplace의 Gemini Code Assist 앱을 사용할 수도 있습니다:

1. [Gemini Code Assist](https://github.com/marketplace/gemini-code-assist) 페이지로 이동
2. **Install** 버튼 클릭
3. 리포지토리 선택 및 권한 부여
4. PR에서 `/gemini review` 명령어 사용

이 방법은 설정이 더 간단하지만, 커스터마이징 옵션이 제한적일 수 있습니다.
24 changes: 24 additions & 0 deletions .github/ISSUE_TEMPLATE/bug.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
name: 버그 리포트
about: 버그 수정용 이슈
title: "[Bug] "
labels: [bug]
assignees: []
---

# 🐞 버그 설명

## 📄 현상

## 🔁 재현 방법

1.
2.

## 🤔 기대 동작

## 🧩 원인 추정

## 🛠 해결 방향

## 📝 비고
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/chore.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: 일반 작업
about: 단순 작업, 정리, 개선 사항
title: "[Chore] "
labels: []
assignees: []
---

# 📌 작업 내용

## 🎯 목적

## 📋 할 일 (Todo)

- [ ]
- [ ]

## 🔍 참고

## 📝 메모
22 changes: 22 additions & 0 deletions .github/ISSUE_TEMPLATE/feature.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
name: 기능 추가
about: 새로운 기능 개발
title: "[Feature] "
labels: [enhancement]
assignees: []
---

# ✨ 기능 설명

## 🎯 목적

## 🧭 요구사항

-
-

## 🖼 화면 / 흐름

## 🛠 구현 아이디어

## 📝 비고
17 changes: 17 additions & 0 deletions .github/ISSUE_TEMPLATE/refactor.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
name: 리팩토링
about: 구조 개선, 코드 정리
title: "[Refactor] "
labels: [refactor]
assignees: []
---

# 🔧 리팩토링 설명

## 🎯 목적

## 🧩 개선 대상

## 🛠 변경 방향

## 📝 메모
28 changes: 28 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# 🔀 PR 요약

## ✨ 변경 내용

<!-- 무엇을 변경했는지 -->

-
-

## 🔍 주요 포인트

<!-- 리뷰할 때 봐줬으면 하는 부분 -->

## 🧪 테스트

- [ ] 로컬 테스트 완료
- [ ] 주요 플로우 직접 확인
- [ ] 단위 테스트 추가 / 수정

## 🧩 관련 이슈

<!-- 관련 이슈 번호 -->

- Closes #

## 📝 메모

<!-- 스스로 남기는 기록 -->
Loading