Claude-skill-registry cs-guide-writer

CS 학습 문서를 작성합니다. "오늘의 CS", "CS 정리", "{주제} 정리해줘", "최근 이슈 CS" 요청 시 사용하세요.

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/cs-guide-writer" ~/.claude/skills/majiayu000-claude-skill-registry-cs-guide-writer && rm -rf "$T"
manifest: skills/data/cs-guide-writer/SKILL.md
source content

CS 문서 작성 도우미

CS-GUIDE.md 템플릿에 맞춰 학습 문서를 작성하는 Skill입니다.

트리거 키워드

  • "오늘의 CS: {주제}" - 특정 주제로 문서 작성
  • "오늘의 CS" - 주제 미지정 시 옵션 제안 (아래 참고)
  • "CS 정리: {주제}"
  • "{주제} 정리해줘" (CS 관련 주제인 경우)
  • "최근 이슈 CS" - 최신 기술 트렌드 주제

"오늘의 CS" 주제 미지정 시 처리

주제 없이 "오늘의 CS"만 요청한 경우, AskUserQuestion 도구를 사용하여 다음 옵션을 제안:

옵션 1: 최신 트렌드 (Recommended)

  • 웹 검색으로 2025년 최신 기술 트렌드 조사
  • 가장 관련성 높은 주제 1개 선택하여 문서 작성
  • 문서 상단에
    Trend
    마크 추가

옵션 2: 카테고리 선택

아래 카테고리 중 선택하면 해당 분야의 핵심 주제 추천:

대분류세부 분야추천 주제 예시
Network프로토콜HTTP/HTTPS, TCP/IP, UDP, WebSocket, gRPC
아키텍처REST API, GraphQL, CDN, 로드밸런싱, DNS
보안TLS/SSL, CORS, 네트워크 보안
OS프로세스/스레드프로세스 vs 스레드, 컨텍스트 스위칭, 스케줄링
메모리가상 메모리, 페이징, 메모리 단편화, GC
동기화뮤텍스, 세마포어, 데드락, IPC
파일 시스템파일 디스크립터, I/O 모델, 버퍼/캐시
DB기초정규화, 인덱스, 트랜잭션, ACID
성능쿼리 최적화, 실행 계획, 커넥션 풀
분산샤딩, 복제, 파티셔닝, CAP 정리
NoSQLRedis, MongoDB, Elasticsearch, 캐싱 전략
Algorithm기초시간/공간 복잡도, Big-O 표기법
자료구조Array, LinkedList, Tree, Graph, Hash
알고리즘정렬, 탐색, DP, 그리디, 백트래킹
System Design확장성수평/수직 확장, 로드밸런싱, Rate Limiting
분산 시스템분산 락, 합의 알고리즘, 이벤트 소싱, CDC
아키텍처MSA, 이벤트 드리븐, CQRS, DDD
메시징Kafka, RabbitMQ, 메시지 큐 패턴
Programming패러다임OOP, 함수형 프로그래밍, 리액티브
설계SOLID, 디자인 패턴, 클린 아키텍처
품질TDD, 리팩토링, 코드 리뷰, 테스트 전략
APIREST 설계, API 버저닝, 문서화
Security인증/인가OAuth, JWT, Session, RBAC
암호화대칭/비대칭 암호화, 해싱, Salt
취약점OWASP Top 10, SQL Injection, XSS, CSRF
AI/Agent기초LLM 동작 원리, 프롬프트 엔지니어링
도구AI Agent, MCP, Function Calling
응용RAG, 벡터 DB, 임베딩
DevOpsCI/CD파이프라인, 자동화, GitOps
컨테이너Docker, Kubernetes, 서비스 메시
모니터링로깅, 메트릭, 트레이싱, APM
LanguageJavaJVM, GC, 동시성, Stream API
Kotlin코루틴, Null Safety, 확장 함수
일반타입 시스템, 메모리 모델, 컴파일러

옵션 3: TODO 목록

여러 주제를 한 번에 요청할 때 사용. 작성해야 할 문서를 리스트로 관리:

사용 예시:

  • "오늘의 CS: 트랜잭션, 인덱스, 정규화 정리해줘"
  • "Network 카테고리 기초 문서들 정리해줘"
  • "면접 준비용으로 OS 핵심 5개 정리해줘"

처리 방식:

  1. 요청된 주제들을 TodoWrite 도구로 TODO 목록에 추가
  2. 각 주제별로 순차적으로 문서 작성
  3. 완료된 항목은 completed로 표시
  4. 전체 진행 상황을 사용자에게 표시

질문 형식 예시

오늘의 CS 주제를 어떻게 선택할까요?

1. 최신 트렌드 (Recommended) - 2025년 기술 트렌드에서 주제 선정
2. 카테고리 선택 - 관심 분야에서 핵심 주제 추천
3. TODO 목록 - 여러 주제를 리스트로 작성 (예: "트랜잭션, 인덱스, 정규화")

카테고리 판단 기준

카테고리세부 분류주제 예시
network/
프로토콜HTTP, HTTPS, TCP/IP, UDP, WebSocket, gRPC
아키텍처REST API, GraphQL, CDN, 로드밸런싱, DNS
보안TLS/SSL, CORS, 방화벽, VPN
os/
프로세스/스레드컨텍스트 스위칭, 스케줄링, PCB, TCB
메모리가상 메모리, 페이징, 세그멘테이션, GC
동기화뮤텍스, 세마포어, 데드락, 조건 변수
파일 시스템파일 디스크립터, I/O 모델, 버퍼/캐시
IPC파이프, 소켓, 공유 메모리, 메시지 큐
db/
기초정규화, 인덱스, 트랜잭션, ACID
성능쿼리 최적화, 실행 계획, 커넥션 풀, N+1
분산샤딩, 복제, 파티셔닝, CAP, PACELC
NoSQLRedis, MongoDB, Elasticsearch, 캐싱 전략
algorithm/
기초시간/공간 복잡도, Big-O, 점근 표기법
자료구조Array, LinkedList, Tree, Graph, Hash
알고리즘정렬, 탐색, DP, 그리디, 백트래킹, 분할정복
data-structure/
선형Array, LinkedList, Stack, Queue, Deque
비선형Tree, Graph, Heap, Trie
해시HashMap, HashSet, 충돌 해결
system-design/
확장성수평/수직 확장, 로드밸런싱, Rate Limiting
분산 시스템분산 락, 합의 알고리즘, 이벤트 소싱, CDC
아키텍처MSA, 이벤트 드리븐, CQRS, DDD, 헥사고날
메시징Kafka, RabbitMQ, 메시지 큐 패턴, Pub/Sub
git/
기초버전 관리, 커밋, 브랜치, 머지
전략Git Flow, GitHub Flow, Trunk-Based
내부Git 객체, 참조, reflog
language/
JavaJVM, GC, 동시성, Stream, 메모리 모델
Kotlin코루틴, Null Safety, 확장 함수, DSL
일반타입 시스템, 컴파일러, 인터프리터
programming/
패러다임OOP, 함수형 프로그래밍, 리액티브
설계SOLID, 디자인 패턴, 클린 아키텍처
품질TDD, 리팩토링, 코드 리뷰, 정적 분석
APIREST 설계, API 버저닝, OpenAPI, 문서화
security/
인증/인가OAuth 2.0, JWT, Session, RBAC, ABAC
암호화대칭/비대칭, 해싱, Salt, HTTPS
취약점OWASP Top 10, SQL Injection, XSS, CSRF
보안 설계제로 트러스트, 시크릿 관리, 보안 감사
ai-agent/
기초LLM 동작 원리, 토큰화, 프롬프트 엔지니어링
도구AI Agent, MCP, Function Calling, Tool Use
응용RAG, 벡터 DB, 임베딩, Fine-tuning
devops/
CI/CD파이프라인, GitHub Actions, GitOps
컨테이너Docker, Kubernetes, Helm, 서비스 메시
모니터링로깅, 메트릭, 트레이싱, APM, SRE
인프라IaC, Terraform, 클라우드 서비스
trend/
-최신 기술 트렌드, 연도별 이슈

난이도 체계

난이도는 3개로 고정하지 않고 유연하게 세분화할 수 있습니다.

핵심 원칙:

  1. 카테고리 정의가 최우선 - 각 카테고리는 "~란?" 정의 문서로 시작
  2. 선수 지식 기반 순서 - 선수 지식이 없는 것 → 있는 것 순서
레벨설명표기 예시
[1] 정의/기초
카테고리 정의, 선수 지식 없음
> \
[1] 정의` · 선수 지식 없음`
[2] 입문
기본 개념, 간단한 선수 지식
> \
[2] 입문` · 선수 지식: 없음`
[3] 중급
실무 핵심, 여러 기초 지식
> \
[3] 중급` · 선수 지식: 문서명`
[4] 심화
복잡한 개념, 다중 선수 지식
> \
[4] 심화` · 선수 지식: 문서1, 문서2`
[5+]
필요 시 추가 가능-

문서 작성 템플릿

# {주제명}

> `[N] {레벨명}` · 선수 지식: [선수 문서](./path.md) 또는 "없음"

> `Trend` {연도}  ← 트렌드 주제인 경우에만 추가

> 한 줄 정의 (명확하고 간결하게)

`#핵심한글` `#CoreEnglish` `#약어` `#FullName` `#관련기술1` `#관련기술2` `#하위개념` `#사용사례` `#면접키워드` ... (최대 30개)

## 왜 알아야 하는가?

{이 개념을 왜 배워야 하는지}

- **실무**: {실무에서 어떻게 활용되는지}
- **면접**: {면접에서 왜 자주 나오는지}
- **기반 지식**: {이 개념이 다른 개념의 기반이 되는 이유}

## 핵심 개념

- {핵심 1}
- {핵심 2}
- {핵심 3}

## 쉽게 이해하기

{실생활 비유로 개념 설명}

## 상세 설명

### {소주제 1}

{내용}

**왜 이렇게 하는가?**
{이유 설명}

## 동작 원리 (해당 시)

{Mermaid 다이어그램으로 시각화 - mermaid-diagram 스킬 참조}

![{다이어그램 설명}](./images/{diagram-name}.svg)

## 예제 코드 (해당 시)

```java
// 예제 코드

코드 블록 언어 가이드

웹 뷰어(cs-web)의 Highlight.js 호환성을 위해 아래 언어를 사용합니다.

권장 언어 태그

언어태그비고
Java
java
Kotlin
kotlin
JavaScript
javascript
또는
js
TypeScript
typescript
또는
ts
Python
python
SQL
sql
JSON
json
YAML
yaml
Markdown
markdown
쉘/터미널
shell
또는
bash
⚠️
powershell
사용 금지
HTML
html
CSS
css
Go
go
Rust
rust

주의사항

  • powershell
    사용 금지
    : Highlight.js 기본 빌드에 포함되지 않아 웹에서 하이라이팅 안됨
  • Windows 명령어도
    shell
    또는
    bash
    로 표기
  • 언어 미지정 시 하이라이팅 없이 표시됨

트레이드오프 (해당 시)

장점단점
{장점}{단점}

트러블슈팅 (해당 시)

사례 1: {증상/문제 요약}

증상

{에러 메시지, 로그, 현상}

원인 분석

{왜 발생했는지 - 기술적 근거 포함}

해결 방법

{구체적인 명령어/코드와 함께 해결법 제시}

예방 조치

{모니터링, 설정 변경 등 재발 방지 방법}

면접 예상 질문

Q: {질문}

A: {답변 - "왜?"에 대한 설명 포함}

연관 문서

문서연관성난이도
선수 문서선수 지식Beginner
관련 문서관련 개념Intermediate
후속 문서심화 학습Advanced

참고 자료

  • {출처}

## 키워드 작성 가이드

문서 상단에 검색용 키워드를 작성합니다. 나중에 검색 시 해당 문서를 쉽게 찾을 수 있도록 합니다.

### 키워드 작성 원칙

1. **최대 30개**까지 작성 가능 (내용에 맞게 충분히 작성)
2. **한글/영문** 모두 포함 (검색 편의)
3. **약어와 전체 명칭** 모두 포함
4. **관련 기술/도구/서비스/프레임워크** 포함
5. **동의어/유사어/대체 용어** 포함
6. **사용 사례/시나리오** 관련 키워드 포함
7. **면접 키워드** 포함 (자주 나오는 질문 관련)

### 키워드 분류 체계

키워드는 다음 카테고리별로 작성합니다:

| 분류 | 설명 | 예시 |
|------|------|------|
| **핵심 개념** | 주제의 핵심 용어 (한글/영문) | `#트랜잭션` `#Transaction` |
| **약어/전체명** | 약어와 풀네임 | `#MSA` `#마이크로서비스` `#Microservices` |
| **관련 기술** | 함께 사용되는 기술/도구 | `#Spring` `#JPA` `#Hibernate` |
| **하위 개념** | 세부 개념/종류 | `#ReadCommitted` `#Serializable` |
| **사용 사례** | 실제 적용 시나리오 | `#분산락` `#동시성제어` `#데드락` |
| **비교 대상** | 대안/경쟁 기술 | `#MySQL` `#PostgreSQL` `#Oracle` |
| **면접 키워드** | 면접 빈출 주제 | `#ACID` `#격리수준` `#락` |

### 카테고리별 키워드 예시 (확장)

| 카테고리 | 주제 | 키워드 (최대 30개) |
|----------|------|-------------------|
| **AI/Agent** | AI Agent | `#AI에이전트` `#AIAgent` `#LLM` `#대규모언어모델` `#Claude` `#GPT` `#Gemini` `#ChatGPT` `#Anthropic` `#OpenAI` `#Google` `#자율AI` `#Agentic` `#ToolUse` `#FunctionCalling` `#ReAct` `#CoT` `#ChainOfThought` `#프롬프트` `#RAG` `#벡터DB` `#임베딩` `#파인튜닝` `#토큰` `#컨텍스트윈도우` |
| **Network** | WebSocket | `#웹소켓` `#WebSocket` `#WS` `#WSS` `#실시간통신` `#양방향통신` `#FullDuplex` `#Socket.io` `#STOMP` `#SockJS` `#채팅` `#푸시알림` `#게임서버` `#Polling` `#LongPolling` `#SSE` `#ServerSentEvents` `#HTTP업그레이드` `#핸드셰이크` `#연결유지` `#Stateful` `#Spring` `#Netty` |
| **DB** | 트랜잭션 | `#트랜잭션` `#Transaction` `#ACID` `#원자성` `#Atomicity` `#일관성` `#Consistency` `#격리성` `#Isolation` `#지속성` `#Durability` `#커밋` `#Commit` `#롤백` `#Rollback` `#격리수준` `#IsolationLevel` `#ReadUncommitted` `#ReadCommitted` `#RepeatableRead` `#Serializable` `#락` `#Lock` `#데드락` `#Deadlock` `#동시성` `#MVCC` |
| **OS** | 프로세스 | `#프로세스` `#Process` `#스레드` `#Thread` `#PCB` `#ProcessControlBlock` `#컨텍스트스위칭` `#ContextSwitch` `#스케줄링` `#Scheduling` `#fork` `#exec` `#IPC` `#프로세스간통신` `#공유메모리` `#파이프` `#소켓` `#메시지큐` `#좀비프로세스` `#고아프로세스` `#멀티프로세스` `#멀티스레드` |
| **System Design** | MSA | `#MSA` `#마이크로서비스` `#Microservices` `#분산시스템` `#DistributedSystem` `#API게이트웨이` `#APIGateway` `#서비스메시` `#ServiceMesh` `#Istio` `#Envoy` `#서비스디스커버리` `#로드밸런싱` `#서킷브레이커` `#Resilience4j` `#Saga패턴` `#CQRS` `#이벤트소싱` `#EventDriven` `#Kafka` `#RabbitMQ` `#Docker` `#Kubernetes` `#컨테이너` `#오케스트레이션` |
| **Programming** | OOP | `#OOP` `#객체지향` `#ObjectOriented` `#캡슐화` `#Encapsulation` `#상속` `#Inheritance` `#다형성` `#Polymorphism` `#추상화` `#Abstraction` `#SOLID` `#SRP` `#OCP` `#LSP` `#ISP` `#DIP` `#클래스` `#Class` `#인터페이스` `#Interface` `#추상클래스` `#오버라이딩` `#오버로딩` `#디자인패턴` `#의존성주입` `#DI` |
| **Security** | JWT | `#JWT` `#JsonWebToken` `#토큰` `#Token` `#인증` `#Authentication` `#인가` `#Authorization` `#AccessToken` `#RefreshToken` `#Bearer` `#Claim` `#Payload` `#Header` `#Signature` `#HS256` `#RS256` `#만료시간` `#토큰탈취` `#토큰무효화` `#블랙리스트` `#OAuth` `#OIDC` `#세션` `#Stateless` |

### 키워드 포맷

```markdown
`#핵심한글` `#CoreEnglish` `#약어` `#관련기술1` `#관련기술2` `#하위개념1` `#하위개념2` `#사용사례` `#비교대상` `#면접키워드`

키워드 개수 가이드

문서 복잡도권장 키워드 수
기초 개념 (정의)10~15개
중급 개념15~20개
심화 개념20~25개
복합 주제25~30개

작업 절차

  1. 카테고리 판단: 주제에 맞는 카테고리 선택
  2. 난이도 판단: [1] 정의/기초 → [2] 입문 → [3] 중급 → [4] 심화 중 선택
    • 카테고리 정의 문서("~란?")는 반드시 [1]
    • 선수 지식이 없으면 낮은 레벨, 있으면 높은 레벨
  3. 파일 생성:
    cs/{category}/{topic}.md
    (kebab-case)
  4. 내용 작성: 위 템플릿 준수
    • 정의: 한 문장으로 명확하게
    • 키워드: 검색용 키워드 10~30개 (한글/영문, 약어, 관련 기술, 하위 개념, 면접 키워드)
    • 왜 알아야 하는가: 실무/면접/기반지식 관점
    • 난이도 태그 + 연관 문서 필수
  5. README 업데이트:
    cs/{category}/README.md
    의 해당 레벨 섹션에 링크 추가
  6. git add: 생성/수정된 파일 staging

README 업데이트 시 확인사항

  • 해당 레벨 섹션([1], [2], [3], [4])에 문서 추가
  • 선수 지식이 있다면 명시
  • 전체 목차에도 추가
  • 정의 문서가 없으면 TODO로 추가

품질 기준

항목기준
정확성공식 문서, 신뢰할 수 있는 출처 기반
이해 용이성"쉽게 이해하기" 섹션 필수 포함
논리성모든 설명에 "왜?"에 대한 답변 포함
실용성면접 대비 + 실무 적용 가능한 내용
트러블슈팅실무 문제 사례와 해결법 포함 (해당 시)

트러블슈팅 품질 기준

조건설명
재현 가능같은 환경에서 같은 문제를 재현할 수 있어야 함
구체적 수치에러 메시지, 로그, 메트릭 등 구체적 데이터 포함
원인 분석"왜 발생했는지" 기술적 분석 필수
다중 해결책가능하다면 여러 해결 방법 제시
예방 조치재발 방지를 위한 모니터링, 설정 가이드

최근 이슈 CS 처리

"최근 이슈 CS" 요청 시:

  1. 웹 검색으로 최신 기술 트렌드 조사
  2. 가장 관련성 높은 주제 1개 선택
  3. 적절한 카테고리에 문서 생성 (주로
    ai-agent/
    또는 주제에 맞는 카테고리)
  4. 문서 상단에
    Trend
    마크 추가
  5. cs/trend/README.md
    에도 링크 추가 (트렌드 인덱스)

다이어그램 가이드

ASCII 대신 SVG 다이어그램 사용

시각적 설명이 필요한 경우 ASCII 다이어그램 대신 SVG를 생성합니다. 두 가지 방식을 상황에 맞게 선택합니다.

방식 선택 가이드

상황권장 방식이유
플로우차트, 시퀀스Mermaid자동 레이아웃, 빠른 작성
ER/클래스 다이어그램MermaidUML 문법 지원
상태 다이어그램Mermaid상태 전이 표현 용이
마인드맵, Git 그래프Mermaid전용 문법 지원
계층 구조 (OSI 등)SVG 직접정교한 테이블 레이아웃
네트워크 토폴로지SVG 직접정확한 배치 제어
패킷/프레임 구조SVG 직접데이터 구조 시각화
비교 다이어그램SVG 직접좌우/전후 비교 레이아웃
정교한 레이아웃 필요SVG 직접픽셀 단위 제어 가능

다이어그램 적용 섹션

섹션다이어그램 유형권장 방식
핵심 개념MindmapMermaid
상세 설명Flowchart / 구조도Mermaid 또는 SVG
동작 원리Sequence / 상태 전환Mermaid
계층/구조테이블 / 토폴로지SVG 직접

방식 1: Mermaid CLI (mermaid-diagram 스킬)

적합한 경우: 플로우차트, 시퀀스, 상태 다이어그램, 마인드맵 등

# 1. images 디렉토리 생성
mkdir -p cs/{category}/images

# 2. .mmd 파일 작성

# 3. SVG 생성
npx -p @mermaid-js/mermaid-cli mmdc \
  -i cs/{category}/images/{name}.mmd \
  -o cs/{category}/images/{name}.svg \
  -b transparent

# 4. git add
git add cs/{category}/images/

지원 다이어그램: Flowchart, Sequence, Class, State, ER, Gantt, Mindmap, GitGraph, Timeline, C4 등

자세한 문법과 템플릿은

mermaid-diagram
스킬 참조.

방식 2: SVG 직접 생성 (svg-diagram 스킬)

적합한 경우: 계층 구조, 비교표, 정교한 레이아웃, 데이터 구조

# 1. images 디렉토리 생성
mkdir -p cs/{category}/images

# 2. SVG 파일 직접 작성
# cs/{category}/images/{name}.svg

# 3. git add
git add cs/{category}/images/

색상 팔레트 (필수 준수):

용도시작색끝색
파랑 (기본)#3498DB#2980B9
초록 (성공)#2ECC71#27AE60
빨강 (경고)#E74C3C#C0392B
주황#E67E22#D35400
보라#9B59B6#8E44AD

자세한 템플릿과 스타일 가이드는

svg-diagram
스킬 참조.

마크다운 삽입

![{설명}](./images/{name}.svg)

결정 플로우

  1. 복잡한 논리 흐름, 분기가 많음 → Mermaid Flowchart
  2. API/시스템 간 통신 → Mermaid Sequence
  3. DB 스키마, 클래스 관계 → Mermaid ER/Class
  4. 개념 정리, 브레인스토밍 → Mermaid Mindmap
  5. OSI 7계층 같은 테이블 형태 → SVG 직접
  6. 네트워크 토폴로지, 아키텍처 → SVG 직접 (정교) 또는 Mermaid (빠름)
  7. 정확한 위치/크기 제어 필요 → SVG 직접