Learning Tracker Skill
Claude Code 세션에서 새로운 기술, 라이브러리, 개념에 대한 학습 내용을 추출하여 TIL 형식으로 정리합니다.
사용법
/learning-tracker # 현재 세션의 학습 내용 추출
/learning-tracker "주제" # 특정 주제로 필터링하여 추출
Instructions
Step 1: 세션 로그 분석
현재 대화 세션에서 다음 패턴을 찾습니다:
학습 감지 패턴
한국어 키워드:
| 패턴 |
설명 |
| "배웠", "배워" |
학습 완료 표현 |
| "알게 됐", "알았" |
새로운 이해 |
| "처음", "처음으로" |
최초 경험 |
| "새로운", "새롭게" |
새로운 지식 |
| "이해했", "이해됐" |
개념 이해 |
| "몰랐던", "몰랐는데" |
기존 무지 인정 |
| "이렇게 하는구나" |
방법 습득 |
영어 키워드:
| 패턴 |
설명 |
| "TIL", "Today I learned" |
명시적 학습 표현 |
| "learned", "discovered" |
학습/발견 |
| "didn't know", "now I know" |
새로운 지식 |
| "first time" |
최초 경험 |
질문 패턴 (사용자 질문 → 학습 기회):
| 패턴 |
설명 |
| "이게 뭐야?", "이게 뭔가요?" |
개념 질문 |
| "어떻게 해?", "어떻게 하나요?" |
방법 질문 |
| "왜?", "왜 그런가요?" |
이유 질문 |
| "차이가 뭐야?" |
비교 질문 |
기술 학습 지표:
| 지표 |
설명 |
| 새 라이브러리 import |
처음 사용하는 패키지 |
| 새 CLI 도구 사용 |
처음 사용하는 명령어 |
| API 문서 참조 |
WebFetch로 공식 문서 조회 |
| 에러 해결 후 설명 |
문제 해결 과정에서 학습 |
| 코드 설명 요청 |
"이 코드가 뭐야?" |
Step 2: 학습 내용 분류
추출한 내용을 카테고리별로 분류합니다:
| 카테고리 |
키워드/패턴 |
python |
Python, pip, pytest, FastAPI, Django, pandas |
java |
Java, Spring, Maven, Gradle, JUnit |
spring |
Spring Boot, Spring Security, JPA |
nodejs |
Node.js, npm, Express, libuv |
ai |
LangChain, LangGraph, OpenAI, LLM, embedding |
security |
보안, 암호화, 인증, OAuth, JWT |
computer-science |
알고리즘, 자료구조, 동시성, 병렬성 |
database |
SQL, PostgreSQL, MySQL, Redis |
devops |
Docker, Kubernetes, CI/CD, GitHub Actions |
Step 3: TIL 문서 초안 생성
추출한 학습 내용으로 TIL 문서 초안을 작성합니다:
# [학습 주제]
[한 줄 설명]
## 결론부터 말하면
[핵심 요약 2-3문장]
## 1. 왜 이걸 배웠나?
[학습하게 된 배경/문제 상황]
## 2. 배운 내용
### 2.1 [핵심 개념 1]
[설명]
### 2.2 [핵심 개념 2]
[설명]
## 3. 코드 예시
[세션에서 작성/참조한 코드]
## 4. 정리
[핵심 포인트 요약]
---
## 출처
- [참조한 문서/링크]
Step 4: 사용자 확인
생성된 초안을 사용자에게 보여주고 확인 요청:
📚 학습 내용 추출 완료!
**감지된 학습 주제:**
1. [주제 1] - python 카테고리
2. [주제 2] - spring 카테고리
**TIL 문서로 작성할까요?**
- 전체 작성
- 특정 주제만 선택
- 수정 후 작성
Step 5: TIL 문서 저장
사용자 확인 후 ~/dev/TIL/{category}/ 경로에 저장:
파일명 규칙:
- 제목에서 특수문자 제거
- 공백을 하이픈(-)으로 변환
- 예:
# Python의 contextmanager → Python의-contextmanager.md
자동 추출 예시
예시 1: 라이브러리 사용
세션 대화:
사용자: httpx로 비동기 요청 어떻게 해?
Claude: httpx.AsyncClient를 사용하면 됩니다...
추출 결과:
# Python httpx로 비동기 HTTP 요청하기
## 결론부터 말하면
httpx는 requests와 유사한 API를 제공하면서 async/await를 지원하는 HTTP 클라이언트다.
`AsyncClient`를 context manager로 사용하면 connection pooling까지 자동 관리된다.
예시 2: 개념 이해
세션 대화:
사용자: 왜 Spring에서 @Transactional이 private 메서드에서 안 먹어?
Claude: Spring AOP는 프록시 기반이라서...
추출 결과:
# Spring @Transactional이 private 메서드에서 작동하지 않는 이유
## 결론부터 말하면
Spring의 @Transactional은 프록시 기반 AOP로 동작한다.
private 메서드는 프록시가 가로챌 수 없어서 트랜잭션이 적용되지 않는다.
예시 3: 문제 해결
세션 대화:
사용자: pytest에서 fixture 스코프가 뭐야?
Claude: fixture의 생명주기를 결정합니다. function, class, module, session...
추출 결과:
# pytest fixture scope 이해하기
## 결론부터 말하면
fixture scope는 fixture 인스턴스의 생명주기를 결정한다.
function(기본값)은 매 테스트마다, session은 전체 테스트 실행 중 한 번만 생성된다.
통합: /til 스킬과 연동
학습 내용 추출 후 /til 스킬을 호출하여 완성도 높은 문서 작성 가능:
/learning-tracker → 초안 생성 → /til로 다듬기
주의사항
- README.md는 GitHub Actions가 자동 생성하므로 절대 수정하지 말 것
git add, git commit, git push는 사용자가 명시적으로 요청할 때만 실행
- 민감한 정보(API 키, 비밀번호 등)가 포함된 내용은 제외
1---2name: learning-tracker3description: Claude Code 세션에서 새로운 기술/라이브러리/개념 학습 내용을 추출하여 TIL 문서로 정리. "학습 정리", "오늘 배운 것", "learning", "세션 요약" 등의 요청 시 자동 적용. TIL 레포지토리(~/dev/TIL)와 연동하여 자동으로 카테고리 분류 및 문서 생성.4---5
6# Learning Tracker Skill
7
8Claude Code 세션에서 **새로운 기술, 라이브러리, 개념**에 대한 학습 내용을 추출하여 TIL 형식으로 정리합니다.
9
10## 사용법
11
12```bash
13/learning-tracker # 현재 세션의 학습 내용 추출
14/learning-tracker "주제" # 특정 주제로 필터링하여 추출
15```
16
17## Instructions
18
19### Step 1: 세션 로그 분석
20
21현재 대화 세션에서 다음 패턴을 찾습니다:
22
23#### 학습 감지 패턴
24
25**한국어 키워드:**
26| 패턴 | 설명 |
27|------|------|
28| "배웠", "배워" | 학습 완료 표현 |
29| "알게 됐", "알았" | 새로운 이해 |
30| "처음", "처음으로" | 최초 경험 |
31| "새로운", "새롭게" | 새로운 지식 |
32| "이해했", "이해됐" | 개념 이해 |
33| "몰랐던", "몰랐는데" | 기존 무지 인정 |
34| "이렇게 하는구나" | 방법 습득 |
35
36**영어 키워드:**
37| 패턴 | 설명 |
38|------|------|
39| "TIL", "Today I learned" | 명시적 학습 표현 |
40| "learned", "discovered" | 학습/발견 |
41| "didn't know", "now I know" | 새로운 지식 |
42| "first time" | 최초 경험 |
43
44**질문 패턴 (사용자 질문 → 학습 기회):**
45| 패턴 | 설명 |
46|------|------|
47| "이게 뭐야?", "이게 뭔가요?" | 개념 질문 |
48| "어떻게 해?", "어떻게 하나요?" | 방법 질문 |
49| "왜?", "왜 그런가요?" | 이유 질문 |
50| "차이가 뭐야?" | 비교 질문 |
51
52**기술 학습 지표:**
53| 지표 | 설명 |
54|------|------|
55| 새 라이브러리 import | 처음 사용하는 패키지 |
56| 새 CLI 도구 사용 | 처음 사용하는 명령어 |
57| API 문서 참조 | WebFetch로 공식 문서 조회 |
58| 에러 해결 후 설명 | 문제 해결 과정에서 학습 |
59| 코드 설명 요청 | "이 코드가 뭐야?" |
60
61### Step 2: 학습 내용 분류
62
63추출한 내용을 카테고리별로 분류합니다:
64
65| 카테고리 | 키워드/패턴 |
66|----------|------------|
67| `python` | Python, pip, pytest, FastAPI, Django, pandas |
68| `java` | Java, Spring, Maven, Gradle, JUnit |
69| `spring` | Spring Boot, Spring Security, JPA |
70| `nodejs` | Node.js, npm, Express, libuv |
71| `ai` | LangChain, LangGraph, OpenAI, LLM, embedding |
72| `security` | 보안, 암호화, 인증, OAuth, JWT |
73| `computer-science` | 알고리즘, 자료구조, 동시성, 병렬성 |
74| `database` | SQL, PostgreSQL, MySQL, Redis |
75| `devops` | Docker, Kubernetes, CI/CD, GitHub Actions |
76
77### Step 3: TIL 문서 초안 생성
78
79추출한 학습 내용으로 TIL 문서 초안을 작성합니다:
80
81```markdown
82# [학습 주제]
83
84[한 줄 설명]
85
86## 결론부터 말하면
87
88[핵심 요약 2-3문장]
89
90## 1. 왜 이걸 배웠나?
91
92[학습하게 된 배경/문제 상황]
93
94## 2. 배운 내용
95
96### 2.1 [핵심 개념 1]
97[설명]
98
99### 2.2 [핵심 개념 2]
100[설명]
101
102## 3. 코드 예시
103
104[세션에서 작성/참조한 코드]
105
106## 4. 정리
107
108[핵심 포인트 요약]
109
110---
111
112## 출처
113
114- [참조한 문서/링크]
115```
116
117### Step 4: 사용자 확인
118
119생성된 초안을 사용자에게 보여주고 확인 요청:
120
121```
122📚 학습 내용 추출 완료!
123
124**감지된 학습 주제:**
1251. [주제 1] - python 카테고리
1262. [주제 2] - spring 카테고리
127
128**TIL 문서로 작성할까요?**
129- 전체 작성
130- 특정 주제만 선택
131- 수정 후 작성
132```
133
134### Step 5: TIL 문서 저장
135
136사용자 확인 후 `~/dev/TIL/{category}/` 경로에 저장:
137
138**파일명 규칙:**
139- 제목에서 특수문자 제거
140- 공백을 하이픈(-)으로 변환
141- 예: `# Python의 contextmanager` → `Python의-contextmanager.md`
142
143---
144
145## 자동 추출 예시
146
147### 예시 1: 라이브러리 사용
148
149**세션 대화:**
150```
151사용자: httpx로 비동기 요청 어떻게 해?
152Claude: httpx.AsyncClient를 사용하면 됩니다...
153```
154
155**추출 결과:**
156```markdown
157# Python httpx로 비동기 HTTP 요청하기
158
159## 결론부터 말하면
160
161httpx는 requests와 유사한 API를 제공하면서 async/await를 지원하는 HTTP 클라이언트다.
162`AsyncClient`를 context manager로 사용하면 connection pooling까지 자동 관리된다.
163```
164
165### 예시 2: 개념 이해
166
167**세션 대화:**
168```
169사용자: 왜 Spring에서 @Transactional이 private 메서드에서 안 먹어?
170Claude: Spring AOP는 프록시 기반이라서...
171```
172
173**추출 결과:**
174```markdown
175# Spring @Transactional이 private 메서드에서 작동하지 않는 이유
176
177## 결론부터 말하면
178
179Spring의 @Transactional은 프록시 기반 AOP로 동작한다.
180private 메서드는 프록시가 가로챌 수 없어서 트랜잭션이 적용되지 않는다.
181```
182
183### 예시 3: 문제 해결
184
185**세션 대화:**
186```
187사용자: pytest에서 fixture 스코프가 뭐야?
188Claude: fixture의 생명주기를 결정합니다. function, class, module, session...
189```
190
191**추출 결과:**
192```markdown
193# pytest fixture scope 이해하기
194
195## 결론부터 말하면
196
197fixture scope는 fixture 인스턴스의 생명주기를 결정한다.
198function(기본값)은 매 테스트마다, session은 전체 테스트 실행 중 한 번만 생성된다.
199```
200
201---
202
203## 통합: /til 스킬과 연동
204
205학습 내용 추출 후 `/til` 스킬을 호출하여 완성도 높은 문서 작성 가능:
206
207```
208/learning-tracker → 초안 생성 → /til로 다듬기
209```
210
211---
212
213## 주의사항
214
215- README.md는 GitHub Actions가 자동 생성하므로 **절대 수정하지 말 것**
216- `git add`, `git commit`, `git push`는 **사용자가 명시적으로 요청할 때만** 실행
217- 민감한 정보(API 키, 비밀번호 등)가 포함된 내용은 제외