| name | cs-guide-writer |
| description | CS 학습 문서를 작성합니다. "오늘의 CS", "CS 정리", "{주제} 정리해줘", "최근 이슈 CS" 요청 시 사용하세요. |
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 정리 | |
| NoSQL | Redis, 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, 리팩토링, 코드 리뷰, 테스트 전략 | |
| API | REST 설계, API 버저닝, 문서화 | |
| Security | 인증/인가 | OAuth, JWT, Session, RBAC |
| 암호화 | 대칭/비대칭 암호화, 해싱, Salt | |
| 취약점 | OWASP Top 10, SQL Injection, XSS, CSRF | |
| AI/Agent | 기초 | LLM 동작 원리, 프롬프트 엔지니어링 |
| 도구 | AI Agent, MCP, Function Calling | |
| 응용 | RAG, 벡터 DB, 임베딩 | |
| DevOps | CI/CD | 파이프라인, 자동화, GitOps |
| 컨테이너 | Docker, Kubernetes, 서비스 메시 | |
| 모니터링 | 로깅, 메트릭, 트레이싱, APM | |
| Language | Java | JVM, GC, 동시성, Stream API |
| Kotlin | 코루틴, Null Safety, 확장 함수 | |
| 일반 | 타입 시스템, 메모리 모델, 컴파일러 |
옵션 3: TODO 목록
여러 주제를 한 번에 요청할 때 사용. 작성해야 할 문서를 리스트로 관리:
사용 예시:
- "오늘의 CS: 트랜잭션, 인덱스, 정규화 정리해줘"
- "Network 카테고리 기초 문서들 정리해줘"
- "면접 준비용으로 OS 핵심 5개 정리해줘"
처리 방식:
- 요청된 주제들을 TodoWrite 도구로 TODO 목록에 추가
- 각 주제별로 순차적으로 문서 작성
- 완료된 항목은 completed로 표시
- 전체 진행 상황을 사용자에게 표시
질문 형식 예시
오늘의 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 | |
| NoSQL | Redis, 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/ |
Java | JVM, GC, 동시성, Stream, 메모리 모델 |
| Kotlin | 코루틴, Null Safety, 확장 함수, DSL | |
| 일반 | 타입 시스템, 컴파일러, 인터프리터 | |
programming/ |
패러다임 | OOP, 함수형 프로그래밍, 리액티브 |
| 설계 | SOLID, 디자인 패턴, 클린 아키텍처 | |
| 품질 | TDD, 리팩토링, 코드 리뷰, 정적 분석 | |
| API | REST 설계, 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] 정의/기초 |
카테고리 정의, 선수 지식 없음 | > \[1] 정의` · 선수 지식 없음` |
[2] 입문 |
기본 개념, 간단한 선수 지식 | > \[2] 입문` · 선수 지식: 없음` |
[3] 중급 |
실무 핵심, 여러 기초 지식 | > \[3] 중급` · 선수 지식: 문서명` |
[4] 심화 |
복잡한 개념, 다중 선수 지식 | > \[4] 심화` · 선수 지식: 문서1, 문서2` |
[5+] |
필요 시 추가 가능 | - |
문서 작성 템플릿
# {주제명}
> `[N] {레벨명}` · 선수 지식: [선수 문서](./path.md) 또는 "없음"
> `Trend` {연도} ← 트렌드 주제인 경우에만 추가
> 한 줄 정의 (명확하고 간결하게)
`#핵심한글` `#CoreEnglish` `#약어` `#FullName` `#관련기술1` `#관련기술2` `#하위개념` `#사용사례` `#면접키워드` ... (최대 30개)
## 왜 알아야 하는가?
{이 개념을 왜 배워야 하는지}
- **실무**: {실무에서 어떻게 활용되는지}
- **면접**: {면접에서 왜 자주 나오는지}
- **기반 지식**: {이 개념이 다른 개념의 기반이 되는 이유}
## 핵심 개념
- {핵심 1}
- {핵심 2}
- {핵심 3}
## 쉽게 이해하기
{실생활 비유로 개념 설명}
## 상세 설명
### {소주제 1}
{내용}
**왜 이렇게 하는가?**
{이유 설명}
## 동작 원리 (해당 시)
{다이어그램 또는 단계별 설명}
## 예제 코드 (해당 시)
```java
// 예제 코드
트레이드오프 (해당 시)
| 장점 | 단점 |
|---|---|
| {장점} | {단점} |
트러블슈팅 (해당 시)
사례 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] 입문 → [3] 중급 → [4] 심화 중 선택
- 카테고리 정의 문서("~란?")는 반드시 [1]
- 선수 지식이 없으면 낮은 레벨, 있으면 높은 레벨
- 파일 생성:
cs/{category}/{topic}.md(kebab-case) - 내용 작성: 위 템플릿 준수
- 정의: 한 문장으로 명확하게
- 키워드: 검색용 키워드 10~30개 (한글/영문, 약어, 관련 기술, 하위 개념, 면접 키워드)
- 왜 알아야 하는가: 실무/면접/기반지식 관점
- 난이도 태그 + 연관 문서 필수
- README 업데이트:
cs/{category}/README.md의 해당 레벨 섹션에 링크 추가 - git add: 생성/수정된 파일 staging
README 업데이트 시 확인사항
- 해당 레벨 섹션([1], [2], [3], [4])에 문서 추가
- 선수 지식이 있다면 명시
- 전체 목차에도 추가
- 정의 문서가 없으면 TODO로 추가
품질 기준
| 항목 | 기준 |
|---|---|
| 정확성 | 공식 문서, 신뢰할 수 있는 출처 기반 |
| 이해 용이성 | "쉽게 이해하기" 섹션 필수 포함 |
| 논리성 | 모든 설명에 "왜?"에 대한 답변 포함 |
| 실용성 | 면접 대비 + 실무 적용 가능한 내용 |
| 트러블슈팅 | 실무 문제 사례와 해결법 포함 (해당 시) |
트러블슈팅 품질 기준
| 조건 | 설명 |
|---|---|
| 재현 가능 | 같은 환경에서 같은 문제를 재현할 수 있어야 함 |
| 구체적 수치 | 에러 메시지, 로그, 메트릭 등 구체적 데이터 포함 |
| 원인 분석 | "왜 발생했는지" 기술적 분석 필수 |
| 다중 해결책 | 가능하다면 여러 해결 방법 제시 |
| 예방 조치 | 재발 방지를 위한 모니터링, 설정 가이드 |
최근 이슈 CS 처리
"최근 이슈 CS" 요청 시:
- 웹 검색으로 최신 기술 트렌드 조사
- 가장 관련성 높은 주제 1개 선택
- 적절한 카테고리에 문서 생성 (주로
ai-agent/또는 주제에 맞는 카테고리) - 문서 상단에
Trend마크 추가 cs/trend/README.md에도 링크 추가 (트렌드 인덱스)