Skip to content
Open
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
1 change: 1 addition & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
GOOGLE_API_KEY=YOUR_API_KEY
21 changes: 21 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
name: 🐛 버그 리포트
about: 버그를 발견했을 때 사용해주세요
title: '[Fix] '
labels: bug
assignees: ''
---

## 🐛 버그 개요
<!-- 발생한 버그에 대해 간단하게 설명해주세요 -->

## ✅ Todo
<!-- 해결해야 할 작업들을 체크리스트로 작성해주세요 -->

- [ ] 버그 원인 분석
- [ ] 수정 방안 구현
- [ ] 테스트 및 검증

## 📝 Remarks
<!-- 버그 관련 추가 정보를 작성해주세요 -->

22 changes: 22 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
name: ✨ 기능 요청
about: 새로운 기능을 제안할 때 사용해주세요
title: '[Feat] '
labels: feature
assignees: ''
---

## 📋 기능 개요
<!-- 구현하고자 하는 기능에 대해 간단하게 설명해주세요 -->

## ✅ Todo
<!-- 구현해야 할 작업들을 체크리스트로 작성해주세요 -->

- [ ]
- [ ]
- [ ]

## 📝 Remarks
<!-- 추가로 고려해야 할 사항이나 참고사항을 작성해주세요 -->


20 changes: 20 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
## 개요


> 여기에 작성해주세요


## PR 유형
어떤 변경 사항이 있나요?

- [ ] 새로운 기능 추가
- [ ] 버그 수정
- [ ] CSS 등 사용자 UI 디자인 변경
- [ ] 코드에 영향을 주지 않는 변경사항(오타 수정, 탭 사이즈 변경, 변수명 변경)
- [ ] 코드 리팩토링
- [ ] 주석 추가 및 수정
- [ ] 문서 수정
- [ ] 파일 혹은 폴더명 수정
- [ ] 파일 혹은 폴더 삭제

## 작업 상세 내용
46 changes: 46 additions & 0 deletions .github/workflows/ci-cd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: 🚀 CI/CD Pipeline

on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main, develop ]

jobs:
# 📝 기본 검증
basic-checks:
name: ✅ 기본 검증
runs-on: ubuntu-latest

steps:
- name: 📥 코드 체크아웃
uses: actions/checkout@v4

- name: 🐍 Python 환경 설정
uses: actions/setup-python@v4
with:
python-version: '3.11'

- name: 🔍 Python 구문 검사
run: |
find . -name "*.py" -exec python -m py_compile {} \; || echo "Python 파일 구문 검사 완료"

- name: 📁 프로젝트 구조 확인
run: |
echo "📂 프로젝트 구조:"
ls -la
echo "✅ 기본 검증 완료"

# 🎉 성공 알림
success:
name: 🎉 검증 완료
runs-on: ubuntu-latest
needs: basic-checks
if: success()

steps:
- name: ✅ 성공 메시지
run: |
echo "🎉 모든 검증이 성공적으로 완료되었습니다!"
echo "📝 커밋: ${{ github.sha }}"
echo "🌿 브랜치: ${{ github.ref }}"
28 changes: 27 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,32 @@

이 프로젝트에 대한 설명을 여기에 작성하세요.

## 환경 설정

1. Python 3.13 이상이 설치되어 있는지 확인하세요.

2. 필요한 패키지를 설치하세요:

```shell
pip install -r requirements.txt
```

3. 환경 변수 설정:

- `.env.example` 파일을 복사하여 `.env` 파일을 생성하세요:

```shell
cp .env.example .env
```

- `.env` 파일을 열고 `GOOGLE_API_KEY`에 실제 Google Generative AI API 키를 입력하세요.

## 사용법

사용법을 여기에 작성하세요.
`api.py`를 실행하여 Gemini AI와 채팅을 시작하세요:

```shell
python api.py
```

채팅 중 'quit'라고 입력하면 종료됩니다.
27 changes: 27 additions & 0 deletions api.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# 라이브러리 설치
# pip install google-generativeai python-dotenv

import os
from dotenv import load_dotenv
import google.generativeai as genai

load_dotenv()

# API 키 설정
genai.configure(api_key=os.getenv('GOOGLE_API_KEY'))

# 모델 초기화
model = genai.GenerativeModel('gemini-2.0-flash-lite')

# 대화형 채팅 시작
chat = model.start_chat(history=[])

print("Gemini AI와 채팅을 시작합니다. 'quit'라고 입력하면 종료됩니다.")

while True:
user_input = input("You: ")
if user_input.lower() == 'quit':
print("채팅을 종료합니다.")
break
response = chat.send_message(user_input)
print("Gemini:", response.text)
168 changes: 168 additions & 0 deletions docs/git-workflow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
# 🌿 Git Branch Strategy

## 📋 브랜치 구조

```
main (프로덕션)
├── develop (개발 통합)
├── feat/login-system
├── feat/user-dashboard
├── feat/ai-integration
└── feat/data-processing
```

## 🎯 브랜치 설명

### **main** 🚀
- **목적**: 안정적인 프로덕션 브랜치
- **특징**: 항상 배포 가능한 상태 유지
- **보호**: 직접 푸시 금지, PR을 통해서만 업데이트
- **자동화**: 머지 시 자동 배포 실행

### **develop** 🔧
- **목적**: 개발 통합 브랜치 (기본 브랜치)
- **특징**: 모든 기능 개발의 베이스
- **역할**: 기능 브랜치들이 머지되는 중심점
- **테스트**: 통합 테스트 및 품질 검사 실행

### **feat/*** ✨
- **목적**: 새로운 기능별 개발 브랜치
- **명명 규칙**: `feat/기능명` (예: `feat/user-authentication`)
- **생성**: develop 브랜치에서 분기
- **머지**: develop 브랜치로 PR 생성

## 🔄 워크플로우

### 1. **새 기능 개발 시작**
```bash
# develop 브랜치에서 최신 코드 받기
git checkout develop
git pull origin develop

# 새 기능 브랜치 생성
git checkout -b feat/new-feature

# 개발 작업...
git add .
git commit -m "[FEATURE] 새 기능 구현"

# 브랜치 푸시
git push origin feat/new-feature
```

### 2. **Pull Request 생성**
- **From**: `feat/new-feature`
- **To**: `develop`
- **리뷰**: 팀원 코드 리뷰 필수
- **체크**: CI/CD 파이프라인 통과 필수

### 3. **릴리즈 프로세스**
```bash
# develop → main PR 생성
# 모든 테스트 통과 후 머지
# main 브랜치 자동 배포
```

### 4. **브랜치 정리**
```bash
# 머지 완료된 기능 브랜치 삭제
git branch -d feat/completed-feature
git push origin --delete feat/completed-feature
```

## 📝 커밋 메시지 규칙

### **형식**
```
[TYPE] 제목

상세 설명 (선택사항)
```

### **타입**
- `[FEATURE]`: 새로운 기능 추가
- `[BUG]`: 버그 수정
- `[DOCS]`: 문서 업데이트
- `[REFACTOR]`: 코드 리팩터링
- `[TEST]`: 테스트 추가/수정
- `[STYLE]`: 코드 스타일 변경

### **예시**
```bash
git commit -m "[FEATURE] 사용자 로그인 시스템 구현

- JWT 토큰 기반 인증 시스템
- 로그인/로그아웃 API 엔드포인트
- 사용자 세션 관리 기능"
```

## 🛡️ 브랜치 보호 규칙

### **main 브랜치**
- ✅ PR 리뷰 필수 (최소 1명)
- ✅ 상태 체크 통과 필수
- ✅ 최신 상태 유지 필수
- ❌ 직접 푸시 금지
- ❌ 강제 푸시 금지

### **develop 브랜치**
- ✅ PR 리뷰 권장
- ✅ 상태 체크 통과 필수
- ✅ 최신 상태 유지 권장

## 🚀 자동화 트리거

### **develop 브랜치 푸시 시**
- 코드 품질 검사 (Black, isort, Flake8)
- 단위 테스트 실행
- 통합 테스트 실행
- 코드 커버리지 체크

### **main 브랜치 머지 시**
- 전체 테스트 스위트 실행
- 프로덕션 배포 준비
- 릴리즈 노트 자동 생성
- 태그 생성 및 GitHub Release

## 📊 브랜치 현황 모니터링

### **확인 방법**
```bash
# 로컬 브랜치 확인
git branch

# 원격 브랜치 포함 전체 확인
git branch -a

# 브랜치 간 차이 확인
git log --oneline --graph --all

# 머지되지 않은 브랜치 확인
git branch --no-merged develop
```

### **정리 명령어**
```bash
# 머지 완료된 로컬 브랜치 정리
git branch --merged develop | grep -v develop | xargs git branch -d

# 원격에서 삭제된 브랜치 로컬에서 정리
git remote prune origin
```

## 🎯 다음 단계

1. **GitHub 설정**
- develop을 기본 브랜치로 설정
- 브랜치 보호 규칙 설정
- PR 템플릿 활성화

2. **첫 번째 기능 브랜치 생성**
- `feat/project-setup`
- `feat/core-ai-module`
- `feat/api-server`

3. **팀 가이드라인 공유**
- 브랜치 전략 문서 공유
- 커밋 메시지 규칙 교육
- PR 리뷰 프로세스 정립
45 changes: 45 additions & 0 deletions docs/planned-issues.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# 📋 예정된 GitHub Issues

## Issue #2: [FEATURE] 프로젝트 README 문서 개선
- **목적**: 프로젝트 소개 및 사용법 문서화
- **브랜치**: `feat/2`
- **작업 내용**:
- 프로젝트 개요 작성
- 설치 가이드 작성
- 사용법 예시 추가
- 기여 가이드라인 작성

## Issue #3: [FEATURE] AI 코어 모듈 초기 구조 설계
- **목적**: AI 기능의 핵심 모듈 구조 설계
- **브랜치**: `feat/3`
- **작업 내용**:
- AI 모델 추상화 클래스 설계
- 데이터 처리 파이프라인 구조 설계
- 인터페이스 정의
- 초기 테스트 코드 작성

## Issue #4: [FEATURE] API 서버 기본 구조 구축
- **목적**: REST API 서버 기본 틀 구축
- **브랜치**: `feat/4`
- **작업 내용**:
- FastAPI/Flask 서버 기본 설정
- 기본 엔드포인트 구현
- 환경 설정 관리
- 로깅 시스템 구축

## Issue #5: [BUG] CI/CD 워크플로우 오류 수정
- **목적**: 워크플로우 실행 중 발생하는 오류 수정
- **브랜치**: `bug/5`
- **작업 내용**:
- 의존성 설치 오류 해결
- 테스트 실행 환경 수정
- 워크플로우 최적화

## Issue #6: [DOCS] API 문서 작성
- **목적**: API 사용법 및 예시 문서화
- **브랜치**: `docs/6`
- **작업 내용**:
- OpenAPI/Swagger 문서 생성
- API 엔드포인트 설명
- 사용 예시 코드 작성
- 에러 코드 정의
Loading