첫 노트 작성하기
Claude Code와 Obsidian을 연동하여 첫 번째 노트를 작성하고 기본 워크플로우를 익혀봅니다.
개요
이 가이드에서는 Claude Code를 사용하여 Obsidian에 노트를 생성, 읽기, 검색하는 실전 연습을 진행합니다.
학습 목표
- Claude로 노트 생성하기
- Claude로 노트 내용 읽고 요약하기
- Claude로 노트 검색하기
- 백링크 연결하기
실습 시나리오
백엔드 개발자로서 다음 상황을 가정합니다:
상황: Redis 캐시 설정을 변경했는데, 예상치 못한 성능 저하가 발생했습니다. 원인을 파악하고 해결 과정을 문서화해야 합니다.
Step 1: Claude로 첫 노트 생성
1.1 Claude Code 실행
claude
1.2 노트 생성 요청
Claude에게 다음과 같이 요청합니다:
"Troubleshooting 폴더에 'Redis 성능 저하 분석'이라는 제목의
트러블슈팅 노트를 만들어줘.
문제 상황:
- Redis maxmemory 설정을 4GB로 변경
- 이후 쿼리 응답 시간이 평균 50ms에서 200ms로 증가
- CPU 사용량은 정상 수준
해결책:
- eviction-policy를 allkeys-lru로 변경
- maxmemory-samples를 기본값 5에서 10으로 증가
- 응답 시간이 30ms로 개선됨
재발 방지:
- 설정 변경 시 사전에 성능 테스트 실행
- 모니터링 대시보드에 Redis 메트릭 추가"
1.3 Claude의 결과
Claude가 자동으로 다음 형식의 노트를 생성합니다:
---
title: "Redis 성능 저하 분석"
tags: [troubleshooting, redis, performance]
created: 2026-01-10
status: resolved
---
# Redis 성능 저하 분석
## 문제 상황
### 발생 일시
2026-01-10 14:30
### 환경
- Production
- Redis 7.0
- maxmemory: 4GB (변경 직전: 2GB)
### 증상
- 쿼리 응답 시간: 50ms → 200ms (4배 증가)
- CPU 사용량: 정상 (30-40%)
- 메모리 사용량: 정상
## 원인 분석
### 근본 원인
1. **maxmemory 증가로 인한 캐스팅 비용 증가**
- 메모리가 늘어나면서 LRU 알고리즘 계산 비용 증가
- eviction-policy가 noeviction으로 설정되어 메모리 관리 부재
2. **샘플링 효율 저하**
- maxmemory-samples=5는 큰 메모리에서 비효율적
## 해결 방법
### 적용한 변경사항
**redis.conf**
```conf
# 변경 전
maxmemory 4gb
maxmemory-policy noeviction
maxmemory-samples 5
# 변경 후
maxmemory 4gb
maxmemory-policy allkeys-lru
maxmemory-samples 10
결과
- 응답 시간: 200ms → 30ms
- eviction rate: 0 → 150/sec (정상 작동)
재발 방지
설정 변경 프로세스
- 스테이징 환경에서 사전 테스트
- Redis Benchmark로 성능 측정
- 모니터링 알림 설정
모니터링 추가
# Prometheus + Grafana 대시보드
- Redis 연결 수
- 응답 시간 (p50, p95, p99)
- Eviction rate
- Memory 사용률
참고 자료
- Redis LRU Analysis
- [[Redis 성능 튜닝 가이드]] (작성 예정)
관련 문서
- [[2026-01-08]]: 설정 변경 결정 회의
- [[Monitoring/Metrics-Guide]]: 모니터링 가이드 ```
Step 2: 노트 검색 및 읽기
2.1 키워드 검색
"Redis 관련된 모든 노트를 찾아줘"
Claude가 다음과 같이 응답:
찾은 노트 (3개):
1. Projects/study/redis-basics.md
- Redis 기본 개념 정리
2. Troubleshooting/redis-performance.md
- Redis 성능 저하 분석 (방금 생성)
3. Resources/redis-config.md
- Redis 설정 모음
2.2 내용 읽기
"방금 만든 트러블슈팅 노트를 읽어서 요약해줘"
Claude가 요약:
Redis 성능 저하 문제 해결 요약:
문제: maxmemory를 2GB→4GB로 늘린 후 응답 시간 4배 증가
원인: LRU 알고리즘 비용 증가 + 부적절한 eviction policy
해결: allkeys-lru 정책 적용 + sampling 증가
결과: 응답 시간 200ms→30ms로 개선
Step 3: 백링크 연결
3.1 관련 노트 찾기
"이 트러블슈팅과 관련된 기존 노트들을 찾아서
백링크를 연결해줘"
3.2 Claude의 자동 연결
Claude가 자동으로 관련 노트를 찾아 연결:
...
## 관련 문서
- [[Redis 성능 튜닝 가이드]]: Redis 튜닝 방법론
- [[2025-01-08 Daily Note]]: 설정 변경 회의 기록
- [[Monitoring/Redis-Dashboard]]: 모니터링 대시보드 설정
## 역링크
이 노트를 참조하는 문서:
- (없음)
Step 4: 노트 업데이트
4.1 새로운 정보 추가
"트러블슈팅 노트에 '추가 발견사항' 섹션을 추가해줘.
내용은 다음과 같아:
- Redis 느린 쿼리 로그를 분석해보니
KEYS 명령이 평균 100ms 소요되는 것을 확인
- 애플리케이션 코드에서 KEYS 사용을
SCAN으로 변경 필요"
4.2 Claude가 자동 업데이트
...
## 추가 발견사항 (2026-01-10 16:00)
### Slow Query 분석 결과
```redis
# Redis Slow Log
redis-cli SLOWLOG GET 10
1) 1) (integer) 12345
2) (integer) 1704887600
3) (integer) 120000
4) "KEYS" "user:*"
원인
- KEYS 명령은 O(N) 복잡도로 대용량에서 느림
- 매분 100회 호출되고 있었음
추가 해결책
// 변경 전
Set<String> keys = redisTemplate.keys("user:*");
// 변경 후
ScanOptions options = ScanOptions.scanOptions()
.match("user:*")
.count(100)
.build();
Cursor<String> cursor = redisTemplate.scan(options);
예상 효과
- KEYS 제거로 응답 시간 추가 20ms 개선 예상
- 전체: 50ms → 10ms 목표 ```
Step 5: 일일 노트와 연결
5.1 오늘의 Daily Note 확인
"오늘(2026-01-10) 일일 노트를 보여줘"
5.2 트러블슈팅 링크 추가
"오늘 일일 노트의 '완료한 작업'에
이 트러블슈팅 해결 내용을 추가해줘"
## 완료한 작업
- [x] Redis 성능 저하 문제 해결
- [[Troubleshooting/redis-performance]] 상세 보고서
- 응답 시간 50ms → 30ms 개선
- KEYS → SCAN 변경 (예정)
전체 워크플로우
flowchart LR
A[문제 발생] --> B[Claude에게 설명]
B --> C[노트 자동 생성]
C --> D[관련 노트 검색]
D --> E[백링크 연결]
E --> F[추가 정보 업데이트]
F --> G[일일 노트와 연결]
G --> H[완료]
style C fill:#90EE90
style H fill:#e1f5ff
실습 팁
1. 구체적인 프롬프트 사용
❌ 나쁜 예
"노트 만들어줘"
✅ 좋은 예
"Troubleshooting 폴더에 'Redis 성능 저하' 제목으로
트러블슈팅 노트를 만들어줘.
문제: maxmemory 변경 후 응답 시간 4배 증가
해결: eviction-policy 변경
..."
2. 단계적 작성
graph LR
A[기본 노트 생성] --> B[상세 내용 추가]
B --> C[관련 문서 연결]
C --> D[일일 노트 연결]
3. 정기적인 업데이트
# 시간 경과에 따른 노트 업데이트
## 최초 작성 (14:30)
문제 발생 및 증상 기록
## 1차 업데이트 (15:00)
원인 분석 및 임시 조치
## 2차 업데이트 (16:00)
추가 발견사항 (KEYS 문제)
## 최종 업데이트 (17:30)
모든 해결책 적용 완료
실습 과제
- 본인이 최근에 겪은 기술적 문제를 하나 선택
- Claude로 트러블슈팅 노트 생성
- 관련 노트 찾아서 백링크 연결
- 일일 노트와 연결
- 검색으로 다시 찾아보기
다음 단계
첫 노트를 작성했습니다! 이제 본격적인 Vault를 설계해봅시다.
| → [[05-vault-design | 백엔드 개발자를 위한 Vault 설계]]로 계속하세요 |