Claude Code Plugins

Community-maintained marketplace

Feedback

학습 중 떠오른 아이디어와 메모를 아카이브 파일에 시간순으로 기록합니다. `scripts/study-note-helper.sh`를 사용하여 현재 KATA 프로젝트의 docs/study/아카이브.md에 노트를 추가합니다.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name study-note
description 학습 중 떠오른 아이디어와 메모를 아카이브 파일에 시간순으로 기록합니다. `scripts/study-note-helper.sh`를 사용하여 현재 KATA 프로젝트의 docs/study/아카이브.md에 노트를 추가합니다.
allowed-tools Bash

Study Note - 학습 노트 기록 스킬

이 스킬은 scripts/study-note-helper.sh 스크립트를 사용하여 학습 과정에서 떠오른 아이디어, 메모, 질문을 체계적으로 아카이브에 기록합니다.

모든 노트는 스택 형식(LIFO - Last In First Out)으로 파일 끝에 추가되어, 최신 노트가 아래쪽에 위치합니다. 각 노트에는 타임스탬프가 자동으로 추가됩니다.

주요 기능

  • 자동 경로 해결: .katarc에서 CURRENT_KATA를 읽어 대상 프로젝트 자동 결정
  • 타임스탬프 자동 생성: KST(한국 표준시) 기준으로 기록 시점 추가
  • 키워드 태깅: 나중에 검색 가능하도록 키워드 지정
  • UTF-8 인코딩: 한글 학습 내용 완벽 지원
  • 자동 파일 초기화: 아카이브 파일이 없으면 자동 생성

파일 위치

${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() 호출 누락 발견. 동적 할당 후 반드시 해제해야 함.

---

사용 예시

예시 1: 개념 학습 중 메모

사용자 요청:

"fork와 exec의 차이점을 공부했는데 이걸 노트에 기록해줘. fork는 프로세스 복제, exec는 프로그램 교체야."

스킬 동작:

./scripts/study-note-helper.sh add --keyword "fork, exec, 프로세스" --content "fork()는 현재 프로세스를 복제하여 자식 프로세스를 생성한다. exec()는 현재 프로세스를 새로운 프로그램으로 교체한다. 둘을 조합하면 새 프로그램을 별도 프로세스로 실행할 수 있다."

예시 2: 버그 발견 및 해결 기록

사용자 요청:

"메모리 누수 발견했어. Valgrind로 확인했는데 free() 안 불러서 생긴 문제야. 이거 아카이브에 남겨줘."

스킬 동작:

./scripts/study-note-helper.sh add --keyword "메모리 누수, Valgrind, 디버깅" --content "wait_example.c 실행 시 Valgrind에서 메모리 누수 경고 발생. malloc() 후 free() 호출을 누락한 것이 원인. 모든 동적 할당 메모리는 반드시 해제해야 한다."

예시 3: 코드 리뷰 중 발견한 패턴

사용자 요청:

"smallsh.c 코드 보다가 패턴 하나 발견했어. 입력 파싱 전에 항상 버퍼 초기화하더라. 이거 기록해."

스킬 동작:

./scripts/study-note-helper.sh add --keyword "코드 패턴, 버퍼 초기화" --content "smallsh.c에서 발견한 패턴: 사용자 입력을 파싱하기 전에 memset()으로 버퍼를 0으로 초기화한다. 이전 데이터 잔류를 방지하는 좋은 습관."

예시 4: 질문이나 TODO 항목

사용자 요청:

"waitpid의 옵션 중에 WNOHANG이 정확히 뭐하는 건지 나중에 더 알아봐야겠어. 이거 TODO로 남겨줘."

스킬 동작:

./scripts/study-note-helper.sh add --keyword "TODO, waitpid, WNOHANG" --content "질문: waitpid()의 WNOHANG 옵션이 정확히 어떤 상황에서 필요한지 더 공부 필요. 논블로킹 대기와 관련이 있는 것 같음. 다음 학습 세션에서 man page 정독하기."

예시 5: 성능 최적화 아이디어

사용자 요청:

"파이프 여러 개 쓸 때 성능 이슈 있을 수 있다는 생각이 드는데 이거 메모해줘."

스킬 동작:

./scripts/study-note-helper.sh add --keyword "성능, 파이프, 최적화" --content "아이디어: 파이프를 많이 사용하는 명령어(예: ls | grep | sort | uniq)는 프로세스 간 컨텍스트 스위칭 오버헤드가 있을 수 있음. 벤치마크 필요. 대안으로 버퍼링 전략 검토."

예시 6: 키워드로 노트 검색

사용자 요청:

"fork 관련 노트들 다시 보고 싶어. 검색해줘."

스킬 동작:

./scripts/study-note-helper.sh search --keyword "fork"

출력 예시:

ℹ  현재 KATA: mini-shell
ℹ  키워드 'fork' 검색 중...

# [2025-12-13 13:59:58 KST]
**키워드**: fork, exec, 프로세스
**내용**: fork()는 현재 프로세스를 복제하여 자식 프로세스를 생성한다...
---

✅ 총 1개의 노트를 찾았습니다.

예시 7: 키워드 사용 통계 확인

사용자 요청:

"어떤 주제를 많이 공부했는지 통계 보여줘."

스킬 동작:

./scripts/study-note-helper.sh stats

출력 예시:

ℹ  현재 KATA: mini-shell
ℹ  키워드 통계 분석 중...

키워드 사용 빈도:

    3회 | fork
    2회 | 메모리 관리
    2회 | 프로세스
    1회 | exec
    1회 | Valgrind
    1회 | 디버깅

✅ 총 6개의 고유 키워드

참고사항

인코딩

  • 모든 파일은 UTF-8로 저장됩니다.
  • 한글 키워드와 내용을 완벽하게 지원합니다.
  • 쉘에서 입력 시 따옴표로 감싸야 합니다.

타임스탬프

  • KST(한국 표준시, UTC+9) 기준으로 자동 생성됩니다.
  • 형식: 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