platforms/linux/.claude/skills/study-note/SKILL.md
학습 중 떠오른 아이디어와 메모를 아카이브 파일에 시간순으로 기록합니다. `scripts/study-note-helper.sh`를 사용하여 현재 KATA 프로젝트의 docs/study/아카이브.md에 노트를 추가합니다.
npx skillsauth add taksung/python-katas study-noteInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
이 스킬은 scripts/study-note-helper.sh 스크립트를 사용하여 학습 과정에서 떠오른 아이디어, 메모, 질문을 체계적으로 아카이브에 기록합니다.
모든 노트는 스택 형식(LIFO - Last In First Out)으로 파일 끝에 추가되어, 최신 노트가 아래쪽에 위치합니다. 각 노트에는 타임스탬프가 자동으로 추가됩니다.
.katarc에서 CURRENT_KATA를 읽어 대상 프로젝트 자동 결정${CURRENT_KATA}/docs/study/아카이브.md
예시: mini-shell/docs/study/아카이브.md
모든 기능은 ./scripts/study-note-helper.sh를 통해 접근합니다.
| 작업 | 명령어 | 설명 |
|---|---|---|
| 노트 추가 | ./scripts/study-note-helper.sh add --keyword "<키워드>" --content "<내용>" | 아카이브에 새 학습 노트를 추가합니다. |
| 키워드 검색 | ./scripts/study-note-helper.sh search --keyword "<키워드>" | 특정 키워드를 포함하는 모든 노트를 검색합니다. |
| 키워드 통계 | ./scripts/study-note-helper.sh stats | 모든 키워드의 사용 빈도를 확인합니다. |
| 도움말 | ./scripts/study-note-helper.sh help | 사용법을 확인합니다. |
add 명령어:
--keyword: 노트를 분류할 키워드 (쉼표로 구분하여 여러 개 가능)
"fork, 프로세스", "메모리 누수, Valgrind", "리팩토링"--content: 학습 내용, 아이디어, 질문 등 (자유 형식)
search 명령어:
--keyword: 검색할 키워드 (대소문자 구분 안 함)
# 학습 아카이브
이 파일은 학습 중 떠오른 아이디어, 메모, 질문을 시간순으로 기록합니다.
---
# [2025-12-13 14:30:00 KST]
**키워드**: fork, exec
**내용**: fork()는 현재 프로세스를 복제하고, exec()는 복제된 프로세스를 새 프로그램으로 교체한다. 이 조합으로 새 프로그램 실행이 가능하다.
---
# [2025-12-13 15:45:22 KST]
**키워드**: 메모리 누수, Valgrind
**내용**: wait_example.c에서 Valgrind 실행 결과 free() 호출 누락 발견. 동적 할당 후 반드시 해제해야 함.
---
사용자 요청:
"fork와 exec의 차이점을 공부했는데 이걸 노트에 기록해줘. fork는 프로세스 복제, exec는 프로그램 교체야."
스킬 동작:
./scripts/study-note-helper.sh add --keyword "fork, exec, 프로세스" --content "fork()는 현재 프로세스를 복제하여 자식 프로세스를 생성한다. exec()는 현재 프로세스를 새로운 프로그램으로 교체한다. 둘을 조합하면 새 프로그램을 별도 프로세스로 실행할 수 있다."
사용자 요청:
"메모리 누수 발견했어. Valgrind로 확인했는데 free() 안 불러서 생긴 문제야. 이거 아카이브에 남겨줘."
스킬 동작:
./scripts/study-note-helper.sh add --keyword "메모리 누수, Valgrind, 디버깅" --content "wait_example.c 실행 시 Valgrind에서 메모리 누수 경고 발생. malloc() 후 free() 호출을 누락한 것이 원인. 모든 동적 할당 메모리는 반드시 해제해야 한다."
사용자 요청:
"smallsh.c 코드 보다가 패턴 하나 발견했어. 입력 파싱 전에 항상 버퍼 초기화하더라. 이거 기록해."
스킬 동작:
./scripts/study-note-helper.sh add --keyword "코드 패턴, 버퍼 초기화" --content "smallsh.c에서 발견한 패턴: 사용자 입력을 파싱하기 전에 memset()으로 버퍼를 0으로 초기화한다. 이전 데이터 잔류를 방지하는 좋은 습관."
사용자 요청:
"waitpid의 옵션 중에 WNOHANG이 정확히 뭐하는 건지 나중에 더 알아봐야겠어. 이거 TODO로 남겨줘."
스킬 동작:
./scripts/study-note-helper.sh add --keyword "TODO, waitpid, WNOHANG" --content "질문: waitpid()의 WNOHANG 옵션이 정확히 어떤 상황에서 필요한지 더 공부 필요. 논블로킹 대기와 관련이 있는 것 같음. 다음 학습 세션에서 man page 정독하기."
사용자 요청:
"파이프 여러 개 쓸 때 성능 이슈 있을 수 있다는 생각이 드는데 이거 메모해줘."
스킬 동작:
./scripts/study-note-helper.sh add --keyword "성능, 파이프, 최적화" --content "아이디어: 파이프를 많이 사용하는 명령어(예: ls | grep | sort | uniq)는 프로세스 간 컨텍스트 스위칭 오버헤드가 있을 수 있음. 벤치마크 필요. 대안으로 버퍼링 전략 검토."
사용자 요청:
"fork 관련 노트들 다시 보고 싶어. 검색해줘."
스킬 동작:
./scripts/study-note-helper.sh search --keyword "fork"
출력 예시:
ℹ 현재 KATA: mini-shell
ℹ 키워드 'fork' 검색 중...
# [2025-12-13 13:59:58 KST]
**키워드**: fork, exec, 프로세스
**내용**: fork()는 현재 프로세스를 복제하여 자식 프로세스를 생성한다...
---
✅ 총 1개의 노트를 찾았습니다.
사용자 요청:
"어떤 주제를 많이 공부했는지 통계 보여줘."
스킬 동작:
./scripts/study-note-helper.sh stats
출력 예시:
ℹ 현재 KATA: mini-shell
ℹ 키워드 통계 분석 중...
키워드 사용 빈도:
3회 | fork
2회 | 메모리 관리
2회 | 프로세스
1회 | exec
1회 | Valgrind
1회 | 디버깅
✅ 총 6개의 고유 키워드
YYYY-MM-DD HH:MM:SS KST아카이브 파일 위치를 확인하려면:
cat .katarc # CURRENT_KATA 확인
# 아카이브 위치: ${CURRENT_KATA}/docs/study/아카이브.md
여러 줄의 내용을 입력하려면:
./scripts/study-note-helper.sh add \
--keyword "시스템 콜" \
--content "학습 내용:
1. fork()로 프로세스 복제
2. exec()로 프로그램 교체
3. wait()로 자식 프로세스 대기"
나중에 특정 키워드가 포함된 노트를 찾으려면:
# 스킬의 search 명령어 사용 (권장)
./scripts/study-note-helper.sh search --keyword "fork"
# 또는 직접 grep 사용
grep -A 5 "키워드.*fork" mini-shell/docs/study/아카이브.md
development
Python 프로젝트 실행, 테스트, 문법 검사, 임포트 검증을 위한 스킬. `scripts/python-runner.sh`를 사용합니다.
tools
Git 저장소의 변경사항을 추적하고 요약합니다. 미커밋 코드, 최근 커밋, 커밋 히스토리를 확인할 때 사용하세요. catchup, 변경사항, git diff, 커밋 히스토리, 작업 내용 파악 등의 키워드에 반응합니다.
tools
Claude 스킬을 생성하고 작성하는 것을 도와줍니다. 새로운 스킬 만들기, 스킬 작성 가이드, 베스트 프랙티스 적용 등의 키워드에 반응합니다.
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.