Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
cfd6bbb
feat: 도메인별 패키지 분리 (couple, planner, recommendation, user, api)
toris-dev Dec 1, 2025
48573c4
refactor: UI 컴포넌트를 packages/ui로 이동
toris-dev Dec 1, 2025
8cdd717
refactor: 공유 타입 및 유틸리티를 packages/shared로 이동
toris-dev Dec 1, 2025
b4c7f54
refactor: apps/web 컴포넌트를 FSD 구조로 재구성
toris-dev Dec 1, 2025
fea5955
refactor: 페이지 컴포넌트를 새로운 패키지 구조에 맞게 업데이트
toris-dev Dec 1, 2025
473aa15
chore: 패키지 의존성 및 설정 파일 업데이트
toris-dev Dec 1, 2025
f0752fd
chore: 각 패키지별 설정 파일 추가
toris-dev Dec 1, 2025
1546507
docs: 모노레포 리팩토링 문서 추가
toris-dev Dec 1, 2025
0376c5b
refactor: 테스트 파일 및 기타 설정 파일 업데이트
toris-dev Dec 1, 2025
e297255
feat: 테스트 및 개발 도구 추가
toris-dev Dec 1, 2025
eddef9a
refactor: 기존 파일 삭제 및 정리
toris-dev Dec 1, 2025
f80b5bb
chore: .gitignore에 .env.production 추가
toris-dev Dec 1, 2025
61acc21
feat(calendar): 모바일 반응형 개선 및 이벤트 상세보기 기능 추가
toris-dev Dec 4, 2025
faa3dbe
feat(calendar): 여행 계획 생성 시 자동으로 캘린더 이벤트 생성
toris-dev Dec 4, 2025
51da025
feat(courses): 데이트 코스와 여행 코스 통합
toris-dev Dec 4, 2025
6bce5e1
refactor(footer): 지원 섹션 및 내 프로필/내 여행 링크 제거
toris-dev Dec 4, 2025
ac8efec
feat(auth): 인증이 필요한 페이지 보호를 위한 middleware 추가
toris-dev Dec 4, 2025
73414af
refactor(profile): Server Component로 전환 및 데이터 페칭 최적화
toris-dev Dec 4, 2025
2956f70
refactor(home): 메인 페이지 히어로 섹션 텍스트 제거
toris-dev Dec 4, 2025
c3fb305
docs(cursor): PR 규칙 및 커밋 컨벤션 가이드 추가
toris-dev Dec 18, 2025
bc62bc6
docs(readme): 페이지별 역할 및 플로우도 추가
toris-dev Dec 18, 2025
3cff197
chore: 프로젝트 설정 및 문서 구조 개선
toris-dev Dec 18, 2025
be0e3d9
chore(deps): 모노레포 패키지 의존성 업데이트
toris-dev Dec 18, 2025
5bab442
refactor(packages): 공유 패키지 구조 개선
toris-dev Dec 18, 2025
3941e66
chore(web): 웹 앱 설정 파일 업데이트
toris-dev Dec 18, 2025
2b5e498
feat(web): 웹 애플리케이션 기능 개선 및 UI/UX 향상
toris-dev Dec 18, 2025
4f2e692
feat(web): 새로운 기능 모듈 추가
toris-dev Dec 18, 2025
776163c
refactor(monorepo): 크롤러 패키지 제거 및 admin 패키지 정리
toris-dev Dec 18, 2025
1abcb5a
fix(api): 장소 검색 로직 개선 및 지출 분할 삭제 에러 처리 추가
toris-dev Dec 18, 2025
9f2abd3
docs(cursor): .cursor 폴더 구조 개선 및 규칙 추가
toris-dev Dec 18, 2025
aad4112
chore(cursor): 파일 이동으로 인한 삭제 처리
toris-dev Dec 18, 2025
2935ff5
fix(profile): XP 계산 및 타입 오류 수정
toris-dev Dec 18, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
282 changes: 282 additions & 0 deletions .cursor/commands/commit-convention.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,282 @@
# Git Commit Convention (Google Style)

## 📝 커밋 메시지 형식

Google의 커밋 컨벤션을 기반으로 한 커밋 메시지 형식입니다.

### 기본 구조

```
<타입>(<범위>): <제목>

<본문>

<푸터>
```

### 1. 타입 (Type)

커밋의 성격을 나타내는 타입입니다. 다음 중 하나를 사용합니다:

| 타입 | 설명 | 예시 |
| ---------- | ---------------------------------------------- | -------------------------------------------- |
| `feat` | 새로운 기능 추가 | `feat(courses): 코스 공개 기능 추가` |
| `fix` | 버그 수정 | `fix(ui): 모바일 모달 z-index 수정` |
| `docs` | 문서 수정 | `docs(readme): 페이지 구조 설명 추가` |
| `style` | 코드 포맷팅, 세미콜론 누락 등 (기능 변경 없음) | `style(components): Prettier 포맷팅 적용` |
| `refactor` | 코드 리팩토링 (기능 변경 없음) | `refactor(services): 여행 서비스 로직 개선` |
| `perf` | 성능 개선 | `perf(api): 코스 조회 쿼리 최적화` |
| `test` | 테스트 코드 추가 또는 수정 | `test(courses): 코스 생성 테스트 추가` |
| `chore` | 빌드 업무 수정, 패키지 매니저 설정 등 | `chore(deps): Next.js 16.0.7 업그레이드` |
| `ci` | CI/CD 설정 변경 | `ci(github): GitHub Actions 워크플로우 추가` |
| `build` | 빌드 시스템 또는 외부 의존성 변경 | `build(webpack): 번들 크기 최적화` |
| `revert` | 이전 커밋 되돌리기 | `revert: "feat(courses): 코스 공개 기능"` |

### 2. 범위 (Scope)

변경이 영향을 미치는 범위를 명시합니다. 선택사항이지만 가능하면 포함하는 것을 권장합니다.

**일반적인 범위:**

- `api`: API 라우트
- `components`: React 컴포넌트
- `services`: 비즈니스 로직 서비스
- `ui`: UI 컴포넌트
- `hooks`: React 훅
- `utils`: 유틸리티 함수
- `types`: TypeScript 타입 정의
- `config`: 설정 파일
- `docs`: 문서

**예시:**

```
feat(courses): 코스 공개 기능 추가
fix(ui): 모달 반응형 레이아웃 수정
refactor(services): 여행 서비스 리팩토링
```

### 3. 제목 (Subject)

커밋의 핵심 내용을 간결하게 설명합니다.

**규칙:**

- 50자 이내로 작성
- 첫 글자는 대문자로 시작하지 않음 (문장이 아닌 명령형으로)
- 마침표(.)로 끝나지 않음
- 현재형 동사 사용 (과거형, 진행형 지양)
- 무엇을 했는지 명확하게 표현

**좋은 예:**

```
feat(courses): 코스 공개 기능 추가
fix(ui): 모바일에서 모달이 깨지는 문제 수정
refactor(api): Supabase 클라이언트 생성 로직 개선
```

**나쁜 예:**

```
feat: 코스 공개 기능을 추가했습니다. (#12)
fix: 모달 버그 수정
refactor: 코드 개선
```

### 4. 본문 (Body)

커밋의 상세한 설명을 작성합니다. 선택사항이지만 복잡한 변경사항은 반드시 포함해야 합니다.

**규칙:**

- 제목과 본문 사이에 빈 줄 하나
- 72자마다 줄바꿈
- 무엇을 변경했는지, 왜 변경했는지 설명
- 어떻게 변경했는지 (필요 시)
- 변경 전후 비교 (필요 시)

**예시:**

```
feat(courses): 코스 공개 기능 추가

사용자가 생성한 코스를 공개하여 다른 사용자와 공유할 수 있는 기능을 추가했습니다.

주요 변경사항:
- 코스 공개/비공개 토글 기능
- 공개 코스 조회 API 엔드포인트
- 좋아요/저장 기능 연동
- 게이미피케이션 보상 시스템 연동

Closes #12
```

### 5. 푸터 (Footer)

커밋과 관련된 메타 정보를 포함합니다.

**일반적인 푸터:**

- `Closes #이슈번호`: 이슈를 닫음
- `Fixes #이슈번호`: 버그 이슈를 수정함
- `Refs #이슈번호`: 관련 이슈 참조
- `BREAKING CHANGE`: 브레이킹 체인지 설명

**예시:**

```
feat(api): 새로운 인증 시스템 도입

BREAKING CHANGE: 기존 JWT 토큰 방식에서 Supabase Auth로 전환
기존 토큰은 더 이상 유효하지 않습니다.

Closes #45
Refs #30
```

## 📋 커밋 메시지 예시

### 간단한 버그 수정

```
fix(ui): 모바일 모달 z-index 충돌 해결
```

### 기능 추가 (본문 포함)

```
feat(courses): 코스 공개 기능 추가

사용자가 생성한 코스를 공개하여 커뮤니티에서 공유할 수 있는 기능을 추가했습니다.

주요 구현:
- 코스 공개/비공개 토글 UI
- POST /api/user-courses/[id]/publish 엔드포인트
- 공개 코스 조회 페이지 (/courses)
- 좋아요/저장 기능 연동

Closes #12
```

### 리팩토링

```
refactor(services): 여행 서비스 로직 개선

여행 계획 생성 로직을 더 명확하고 유지보수하기 쉽게 리팩토링했습니다.

변경사항:
- 함수 분리로 가독성 향상
- 에러 처리 로직 개선
- 타입 안정성 강화

Refs #30
```

### 성능 개선

```
perf(api): 코스 조회 쿼리 최적화

데이터베이스 쿼리를 최적화하여 코스 조회 성능을 개선했습니다.

- 인덱스 추가로 조회 속도 50% 향상
- 불필요한 JOIN 제거
- 페이지네이션 적용

Refs #25
```

### 브레이킹 체인지

```
feat(auth): Supabase Auth로 전환

기존 JWT 기반 인증 시스템을 Supabase Auth로 전환했습니다.

BREAKING CHANGE:
- 기존 JWT 토큰은 더 이상 유효하지 않습니다
- 모든 사용자는 재로그인이 필요합니다
- API 엔드포인트의 인증 방식이 변경되었습니다

마이그레이션 가이드: docs/migration/auth.md

Closes #50
```

## 🚫 피해야 할 커밋 메시지

### 나쁜 예시들

```
fix: 버그 수정
```

→ 무엇을 수정했는지 불명확

```
update: 파일 수정
```

→ 타입이 없고 범위가 불명확

```
WIP
```

→ 작업 중인 내용이 무엇인지 알 수 없음

```
fix typo
```

→ 범위와 타입이 없음

```
feat: 코스 공개 기능을 추가했습니다 (#12)
```

→ 제목이 너무 길고 설명문 형식

## ✅ 커밋 작성 체크리스트

커밋 전 다음 사항을 확인하세요:

- [ ] 타입이 올바르게 선택되었는가?
- [ ] 범위가 명확한가?
- [ ] 제목이 50자 이내이고 명확한가?
- [ ] 본문이 필요한 경우 충분히 설명되었는가?
- [ ] 관련 이슈 번호가 포함되었는가?
- [ ] 브레이킹 체인지가 문서화되었는가?
- [ ] 불필요한 파일이 포함되지 않았는가?

## 🔧 커밋 메시지 작성 팁

### 1. 커밋 단위

- **하나의 커밋은 하나의 논리적 변경사항만 포함**
- 관련 없는 변경사항은 별도 커밋으로 분리
- 너무 작은 커밋보다는 의미 있는 단위로 묶기

### 2. 커밋 빈도

- 기능 단위로 커밋
- 테스트 통과 후 커밋
- 리뷰 전에 의미 있는 커밋으로 정리

### 3. 커밋 메시지 개선

- 커밋 전 메시지 재검토
- 팀원이 이해할 수 있는 명확한 설명
- 왜 변경했는지 설명 (필요 시)

## 📚 참고 자료

- [Google Commit Convention](https://google.github.io/eng-practices/review/developer/cl-descriptions.html)
- [Conventional Commits](https://www.conventionalcommits.org/)
- [PR 규칙](./pr-guidelines.md)

---

**마지막 업데이트**: 2025년
Loading