---
name: learning-log-generator
description: >
  Git 커밋 히스토리 기반으로 일자별 학습 로그를 생성합니다.
  학습 로그, 학습 기록, 일지 생성, recap, 복습 일정, 학습 요약 요청 시 사용.
argument-hint: "[기간 - 예: 오늘, 이번주, 최근 7일]"
---

# 학습 로그 생성기

note-writer로 작성된 노트의 git 커밋 히스토리를 분석하여 학습 로그를 생성합니다.

## 핵심 기능

| 기능 | 설명 |
|------|------|
| 일자별 학습 로그 | 커밋 기반 날짜별 학습 내용 정리 |
| 요약 및 질문 | 핵심 내용 요약 + 복습용 필수 질문 |
| 옵시디언 링크 | 학습 문서 연결 (`[[노트명]]` 형식) |
| Recap 일정 | 망각 곡선 기반 복습 날짜 제안 |

## 워크플로우

### 1단계: 커밋 히스토리 분석

```bash
# notes/ 디렉토리 관련 커밋 조회
git log --oneline --since="2024-01-01" --until="2024-01-31" -- notes/

# 상세 커밋 정보 (날짜, 메시지, 변경 파일)
git log --pretty=format:"%h|%ad|%s" --date=short -- notes/

# 특정 기간 커밋된 파일 목록
git log --name-only --pretty=format:"%ad" --date=short -- notes/
```

### 2단계: 학습 내용 추출

커밋된 노트 파일에서 정보 추출:

| 추출 항목 | 출처 |
|----------|------|
| 주제/제목 | frontmatter `name`, `# 제목` |
| 핵심 요약 | `## 요약` 섹션 |
| 키워드 | frontmatter `keywords` |
| 관련 개념 | frontmatter `related`, `[[링크]]` |

### 3단계: 학습 로그 생성

일자별로 그룹화하여 로그 작성:

```markdown
## 2024-01-15 (월)

### 학습 내용
- [[React Hooks]] - useState, useEffect 기본 개념
- [[Promise]] - 비동기 처리 패턴

### 핵심 요약
1. useState는 컴포넌트의 상태를 관리하는 React Hook
2. Promise는 비동기 작업의 완료/실패를 나타내는 객체

### 복습 질문
1. useState의 초기값 설정 방식 두 가지는?
2. Promise의 세 가지 상태는 무엇인가?

### Recap 일정
- [ ] 2024-01-16 (1일 후) - 첫 복습
- [ ] 2024-01-18 (3일 후) - 간격 복습
- [ ] 2024-01-22 (7일 후) - 주간 복습
- [ ] 2024-02-14 (1개월 후) - 월간 복습
```

### 4단계: 복습 질문 생성

노트 내용 기반 질문 유형:

| 질문 유형 | 목적 | 예시 |
|----------|------|------|
| 정의 질문 | 개념 이해 확인 | "X란 무엇인가?" |
| 비교 질문 | 차이점 파악 | "A와 B의 차이는?" |
| 적용 질문 | 실제 활용 | "언제 X를 사용하는가?" |
| 관계 질문 | 연결 이해 | "X가 Y에 미치는 영향은?" |

## Recap 일정 (망각 곡선 기반)

에빙하우스 망각 곡선을 기반으로 최적 복습 시점 제안:

| 복습 회차 | 간격 | 기억 유지율 |
|----------|------|------------|
| 1차 | 1일 후 | ~75% |
| 2차 | 3일 후 | ~85% |
| 3차 | 7일 후 | ~90% |
| 4차 | 14일 후 | ~92% |
| 5차 | 30일 후 | ~95% |

## 출력 형식

### 단일 날짜 로그

```markdown
# 학습 로그: 2024-01-15

## 오늘 학습
| 주제 | 카테고리 | 난이도 |
|------|----------|--------|
| [[React Hooks]] | React | 중 |
| [[Promise]] | JavaScript | 중 |

## 핵심 내용
> [!summary]
> React Hooks 중 useState와 useEffect의 기본 사용법 학습.
> JavaScript Promise 패턴과 async/await 비교.

## 복습 질문
1. useState에서 이전 상태 기반 업데이트 방법은?
2. useEffect의 의존성 배열이 비어있으면 어떻게 동작하는가?
3. Promise.all과 Promise.race의 차이는?

## Recap 체크리스트
- [ ] 2024-01-16 첫 복습
- [ ] 2024-01-18 3일 복습
- [ ] 2024-01-22 주간 복습
- [ ] 2024-02-14 월간 복습

## 관련 학습
- 이전: [[2024-01-14 학습 로그]]
- 다음: [[2024-01-16 학습 로그]]
```

## 사용 예시

```
/learning-log-generator 오늘
/learning-log-generator 이번 주
/learning-log-generator 2024-01-01 ~ 2024-01-31
/learning-log-generator 최근 7일
```

## 상세 정보

- [질문 생성 가이드](references/question-templates.md)
- [Recap 전략](references/recap-strategy.md)
