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
115 changes: 82 additions & 33 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,39 +1,88 @@
## 개요
## 🚀 개요
<!---- 변경 사항 및 관련 이슈에 대해 간단하게 작성해주세요. 어떻게보다 무엇을 왜 수정했는지 설명해주세요. -->

> GitHub 개발 워크플로우를 체계화하고 자동화하기 위한 템플릿과 CI/CD 시스템을 구축했습니다.
> 효율적인 협업과 코드 품질 관리를 위해 이슈 관리, PR 검토, 릴리즈 과정을 자동화했습니다.
>

## PR 유형
## 📌 관련 이슈
<!-- 관련된 이슈 번호를 연결해주세요 -->
Closes #

## 🎯 변경사항 요약
<!-- 주요 변경사항을 간단히 나열해주세요 -->
-
-
-

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

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

## 작업 상세 내용

### 🚀 새로 추가된 기능
1. **GitHub Actions 워크플로우 구축**
- `ci-cd.yml`: 코드 품질 검사, 테스트, 자동 배포
- `pr-review.yml`: PR 자동 검토 및 라벨링
- `issue-management.yml`: 이슈 자동 관리 및 응답
- `release.yml`: 릴리즈 자동화 및 변경사항 생성

2. **체계적인 템플릿 시스템**
- 버그 리포트 템플릿 (`bug_report.md`)
- 기능 요청 템플릿 (`feature_request.md`)
- PR 템플릿 개선 (체크리스트 및 구조화)

3. **자동화 기능**
- 이슈/PR 자동 라벨링
- 커밋 규칙 검증
- 보안 검사 (하드코딩된 시크릿 탐지)
- 코드 품질 검사 (Black, isort, Flake8)
- [ ] ✨ 새로운 기능 추가
- [ ] 🐛 버그 수정
- [ ] 🎨 CSS 등 사용자 UI 디자인 변경
- [ ] 🔧 코드에 영향을 주지 않는 변경사항(오타 수정, 탭 사이즈 변경, 변수명 변경)
- [ ] ♻️ 코드 리팩토링
- [ ] 📝 주석 추가 및 수정
- [ ] 📚 문서 수정
- [ ] 🚚 파일 혹은 폴더명 수정
- [ ] 🔥 파일 혹은 폴더 삭제

## ⌛ 작업 상세 내용

### 🎉 새로 추가된 기능
<!-- 새로운 기능에 대해 설명해주세요 -->


### 🛠️ 수정된 기능
<!-- 기존 기능 개선사항에 대해 설명해주세요 -->


### 🗑️ 제거된 기능
<!-- 제거된 기능이나 코드에 대해 설명해주세요 -->


## 📊 더 꼼꼼히 봐야할 부분
<!-- 리뷰어가 특별히 주의 깊게 봐야 할 부분이 있다면 설명해주세요 -->

- [ ] 성능에 영향을 줄 수 있는 변경사항
- [ ] 보안 관련 변경사항
- [ ] 데이터베이스 스키마 변경
- [ ] API 변경사항
- [ ] 없음

## 🧪 테스트 방법
<!-- 이 변경사항을 어떻게 테스트했는지 설명해주세요 -->

```bash
# 테스트 실행 방법
```

## 📸 스크린샷 (UI 변경 시)
<!-- UI 변경사항이 있다면 Before/After 스크린샷을 첨부해주세요 -->

| Before | After |
|--------|-------|
| | |

## 🌐 반드시 참고해야하는 변경 사항
<!-- 다른 개발자들이 알아야 할 중요한 변경사항 -->

- [ ] 환경 변수 변경
- [ ] 패키지 의존성 변경
- [ ] API 엔드포인트 변경
- [ ] 데이터베이스 마이그레이션 필요
- [ ] 배포 방법 변경
- [ ] 없음

## ✅ 체크리스트
<!-- PR 제출 전 확인사항 -->

- [ ] 🔍 내 코드를 스스로 리뷰했습니다
- [ ] 💭 복잡한 코드에 주석을 달았습니다
- [ ] 📚 관련 문서를 업데이트했습니다
- [ ] 🧪 테스트를 추가하거나 기존 테스트를 수정했습니다
- [ ] ✅ 모든 테스트가 통과합니다
- [ ] 🔒 보안 이슈가 없는지 확인했습니다
- [ ] 📏 코딩 스타일 가이드를 준수했습니다

## 📝 추가 컨텍스트
<!-- 추가로 전달하고 싶은 내용이 있다면 작성해주세요 -->
39 changes: 39 additions & 0 deletions .github/pull_request_template_old.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
## 개요
<!---- 변경 사항 및 관련 이슈에 대해 간단하게 작성해주세요. 어떻게보다 무엇을 왜 수정했는지 설명해주세요. -->

> GitHub 개발 워크플로우를 체계화하고 자동화하기 위한 템플릿과 CI/CD 시스템을 구축했습니다.
> 효율적인 협업과 코드 품질 관리를 위해 이슈 관리, PR 검토, 릴리즈 과정을 자동화했습니다.

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

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

## 작업 상세 내용

### 🚀 새로 추가된 기능
1. **GitHub Actions 워크플로우 구축**
- `ci-cd.yml`: 코드 품질 검사, 테스트, 자동 배포
- `pr-review.yml`: PR 자동 검토 및 라벨링
- `issue-management.yml`: 이슈 자동 관리 및 응답
- `release.yml`: 릴리즈 자동화 및 변경사항 생성

2. **체계적인 템플릿 시스템**
- 버그 리포트 템플릿 (`bug_report.md`)
- 기능 요청 템플릿 (`feature_request.md`)
- PR 템플릿 개선 (체크리스트 및 구조화)

3. **자동화 기능**
- 이슈/PR 자동 라벨링
- 커밋 규칙 검증
- 보안 검사 (하드코딩된 시크릿 탐지)
- 코드 품질 검사 (Black, isort, Flake8)

63 changes: 63 additions & 0 deletions calculator.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
"""
계산기 모듈
간단한 수학 연산을 수행하는 계산기 기능을 제공합니다.
"""

class Calculator:
"""간단한 계산기 클래스"""

def __init__(self):
"""계산기 초기화"""
self.history = []

def add(self, a: float, b: float) -> float:
"""두 수를 더합니다"""
result = a + b
self.history.append(f"{a} + {b} = {result}")
return result

def subtract(self, a: float, b: float) -> float:
"""두 수를 뺍니다"""
result = a - b
self.history.append(f"{a} - {b} = {result}")
return result

def multiply(self, a: float, b: float) -> float:
"""두 수를 곱합니다"""
result = a * b
self.history.append(f"{a} * {b} = {result}")
return result

def divide(self, a: float, b: float) -> float:
"""두 수를 나눕니다"""
if b == 0:
raise ValueError("0으로 나눌 수 없습니다")
result = a / b
self.history.append(f"{a} / {b} = {result}")
return result

def get_history(self) -> list:
"""계산 기록을 반환합니다"""
return self.history.copy()

def clear_history(self):
"""계산 기록을 지웁니다"""
self.history.clear()


if __name__ == "__main__":
# 계산기 테스트
calc = Calculator()

print("🧮 간단한 계산기")
print("=" * 30)

# 기본 연산 테스트
print(f"10 + 5 = {calc.add(10, 5)}")
print(f"10 - 3 = {calc.subtract(10, 3)}")
print(f"4 * 6 = {calc.multiply(4, 6)}")
print(f"15 / 3 = {calc.divide(15, 3)}")

print("\n📝 계산 기록:")
for record in calc.get_history():
print(f" {record}")
Loading