2026.04.26 작업일지 v1.0.0
4-노드 LLM 인프라를 셋업한 날이자 그게 워크플로우랑 안 맞는다는 걸 자각한 날. 라파5 사기로 했다가 본가 놀던 M1 맥미니로 갈아끼우고 24/7 자동화 허브로 e2e 셋업까지. Ep.3 본문 1~3막 + 평행본 작성. 심사레이더 v0.2 main 완료, 포모도로 Play Console 심사 제출, 이슈 7건 기록.
오늘의 궤적
13:00 KST 데스크탑·노트북 두 대 인프라 합류 (4-노드 가동) → 17:00 24/7 자동화 허브 필요 결론 → 17:25 본가 M1 맥미니 발견으로 결정 전환 → 22:00~23:54 진접 픽업 + 공덕 도착 + 셋업 e2e → 자정 직후 운영 정책 v2 (4-node on-demand) 확정 → 04-27 00:30 v3 정책 (2-node 슬림화) 결정 + trend-curator routing v2. 같은 날 review_radar v0.2 main 완료 + 포모도로 Play Console 심사 제출 + ep3 outline·본문·평행본 동시 작성.
4-노드 → 2-노드 인프라 (오늘의 메인)
13:00 KST — 4-노드 합류
- 데스크탑(DESKTOP-0VAB3QC, RTX 3060 Ti 8GB, 75 tok/s) + 노트북(DESKTOP-4MNJ1C0 리전5, RTX 3060 Laptop 6GB, 22 tok/s) Tailscale 합류
- ollama llama3.1:8b 양 노드 풀, OLLAMA_HOST=0.0.0.0:11434, schtasks 자동 시동, 방화벽 11434 Allow
- WSL 본진(2070S) + Mac 본진(맥북프로) 까지 4기기 LLM 인프라 그림 완성
- 메모리 신규:
project_4node_local_llm_infra.md
17:00~17:25 KST — 라파5 → M1 맥미니 결정 전환
- 17:00: “24/7 자동화 허브 인프라 필요” 결론 → 라파5 8GB 풀세트 25만원 가이드
- 17:15: 한국 정품 시세 확인 후 풀세트 40만원 → “비싸네”
- 17:25: 강대종님 “본가에 놀고 있는 M1 맥미니 16GB 있는데” → 0원 대체 결정 전환 + 진접 픽업 출발
- daejong-page 904cc84 (todos 라파5 → 맥미니 갈아끼움) + 439c6cd (ep3 outline)
메타: Mac Claude 와 WSL Claude 둘 다 “라파5 사세요”부터 시작했고 “집에 놀고 있는 컴퓨터 있어요?”를 안 물어봄. 두 AI 어시스턴트가 동시에 같은 함정. 이 자각이
feedback_check_workflow_before_infra.md룰로 정립됨.
22:00~23:54 KST — 맥미니 e2e 셋업
진접 본가에서 픽업 후 공덕 도착, 책상에 합류시키고 무인 24/7 자동화 허브로 셋업:
| Task | 내용 | 결과 |
|---|---|---|
| #1 macOS Setup Assistant | ”새로운 기기로 설정” / 계정 user/mac-mini / FileVault OFF (헤드리스 무인 부팅 위해) / 자동 업데이트는 다운로드만 | ✅ |
| #2 Tailscale | brew 없이 .pkg 설치 → Admin 콘솔에서 hostname rename mac-mini-macmini → mac-mini | ✅ 100.120.156.7 |
| #3 SSH 키 등록 | 본진 Mac + WSL 양쪽 공개키 → 맥미니 authorized_keys 추가, ssh mac-mini 무인증 검증 PASS | ✅ |
| #4 brew + 도구 | git, python@3.12, jq, wget, node | ✅ |
| #5 launchd 잡 이전 | 분석 결과 현재 이전 대상 사실상 없음 (자동화 잡 _disabled, trend-curator 는 일주일 후 마이그레이션) | ✅ 보류 마감 |
| #6 절전 끄기 | pmset -a sleep 0 disksleep 0 womp 1 autorestart 1 powernap 1 tcpkeepalive 1 + 자동 로그인 GUI | ✅ |
- 함정 1: 셋업 중
sudo systemsetup -setremotelogin on이 Full Disk Access 부족으로 차단 → GUI 토글로 우회. 이슈 기록 (2026-04-26-tahoe-ssh-cli-block.md) + 메모리 reference 신규 (reference_macos_setremotelogin_gui_only.md). - 검증: 본진 Mac → 맥미니 ssh + ping 12ms direct, hostname/whoami/uname/macOS 다 정상. WSL 본진 → 맥미니 ssh 도 동일 PASS.
23:30 KST — 운영 정책 v2 (4-node on-demand)
강대종님 자각: 본인 워크플로우엔 로컬 LLM 실 use case 가 trend-curator Phase 2 1개뿐. 매일 쓰는 LLM 은 클라우드 Sonnet/Opus + GPT-4o-mini.
| 노드 | 평소 | 켜는 시점 | 용도 |
|---|---|---|---|
| 🤖 M1 맥미니 16GB | 24/7 ON 저전력 | 항상 | 자동화 허브 + launchd SoT + 가벼운 LLM |
| 💻 데스크탑 (3060 Ti) | OFF | 무거운 LLM 필요 시 수동 | 75 tok/s 즉응 |
| 📓 노트북 (3060 Laptop) | OFF | 거의 X | 22 tok/s 배치, fallback |
추가 인프라(SD/Whisper/Vision) 셋업하지 말기 룰. claude-skills c1a0f79 (Mac→WSL handoff) + eae747a (Mac ack).
04-27 00:30~ KST — v3 정책 (2-node 슬림화)
WSL 본진의 day-1 활용도 0 자각 → 더 슬림화:
- 데스크탑·노트북 평소 OFF (필요 시 power-on, SSH 키·schtasks 보존)
- trend-curator routing v2: 노트북 SSH hop 제거 → WSL 본진 localhost 실행 (
run-trend-curator-on-notebook.sh파일명은 유지, plist 호환) - 메모리 v3 섹션 추가 + routing v2 전면 개정 + MEMORY.md 인덱스 갱신
- claude-automations
7f0daa0(notebook hop 제거) push 완료
발견된 별건 1건: curator.py 의 OLLAMA_URL 이 데스크탑 IP 100.70.173.66:11434 로 하드코딩돼 있는데 v3 정책으로 데스크탑 OFF → ollama 단계 timeout. WSL 별 세션 처리 예정.
심사레이더 v0.2 main 완료
5건 main 푸시 + iOS 빌드 PASS:
| 커밋 | 내용 |
|---|---|
| 955c841 | M5 background polling — workmanager 15min |
| c70cb6a | M6 Play Console / App Store Connect 콘솔 딥링크 |
| bfd1d64 | 헤더 “메일 N분 전” + 알림 문구·타이밍 다듬기 |
| 960cb2c | quiet hours 23:00~07:00 KST 심야 묵음 + isQuietHour 단위테스트 6개 PASS |
| a3eaa3d | iOS deployment target 13.0 → 14.0 |
| a524c0b | docs/v0.3-d-fcm-architecture.md (서버측 FCM push 설계, 5일 마이그레이션 플랜) |
todos.md L25 close 됨 (스냅샷 [x] 였는데 마스터 stale 했던 것을 goodnight step 1.5 에서 sync 처리, bf66ef3).
v0.3 (d) FCM push 는 맥미니 24/7 안정성 검증 후 본격 착수 (블로커: 일주일 운영 후 재평가).
포모도로 Play Console 심사 제출
- daejong-page 90f35d2: mark done
- claude-skills 558e789: submit-app lessons 2개 추가
- Mac 에서 Playwright MCP 자동 처리 — 워크시트 9개 선언 confirm + 워크시트에 없던 신규 항목 2개(광고 ID 선언 “사용 안 함” / 정확한 알람 권한 “알람 시계”) + alpha 한국 추가 + 출시 노트 ko/en + “검토를 위해 변경사항 13개 전송” 클릭
- todos.md L33 close 됨 (마찬가지로 goodnight step 1.5 에서 sync)
뉴스레터 Ep.3 작성
- daejong-page 439c6cd: outline + 핵심 메시지 (“70만원 인프라 사려다가 0원으로 끝낸 1시간”)
- d907aef: 본문 1~3막 + 메타 초안
- 3df03d0: WSL 평행본 (“같은 시간 옆자리에서는 코드를 짜고 있었다”)
- 6d6c570: Ep.2 Substack 발행 편집본
- 발행 예상 2026-05-04 전후 (4·5막 후일담은 맥미니 일주일 운영 후)
인프라·스킬·자동화
자동화 hook 추가
- claude-automations 87d2cfe: 5분 텔레그램 reply 하트비트 hook
- a41ce4f: heartbeat-check 자동 텔레그램 ping
- d1dbc3e: per-turn grace (사용자 prompt 직후 auto-ping suppress)
- 9094e88, 3f4d2d1: typing daemon 3차 fix (transcript flush race + session-isolation regression)
스킬 개선
- claude-skills cf2a63c: goodnight step 1.5 (자동 완료 todos 매칭)
- 19f84e8: someday 스킬 신규 + step 2.7 추가
- 042b7e1: daejong-page /someday 페이지 + 메뉴 타일
- cecb274: handoff 동적 세션 탐색 (claude-main 빈 셸 함정 우회)
- 7cb88e3: handoff sender emoji prefix 규칙 모든 directive 채널로 확장
- 2267a18: handoff 트리거 키워드 확장 + fallback regression 경고
- 84ed00f: goodnight stale 검출에 메모리 mtime + 텔레그램 reply 본문 evidence 추가
인프라 정리
- claude-automations 09b55be: launchd com.claude.daily-sync-and-learn.plist 제거 (4일째 비활성화)
- f2cdc2d, b46d82f, 91b4ba2: setup-local-llm.ps1 (Windows 11 로컬 LLM 부트스트랩, ASCII-only + UTF-8 BOM + Tailscale·Ollama installer fallback)
이슈 기록 (재발 방지)
8건 (방금 goodnight step 2 에서 1건 추가):
| slug | 한 줄 |
|---|---|
handoff-active-session-marker-mismatch | auto mode 에서 marker grep 안 잡힘 |
handoff-claude-main-empty-shell | 동적 세션 탐색으로 우회 |
handoff-method-a-fallback-regression | ”쏴줘” 발화에 reply 폴백으로 회귀한 사례 |
heartbeat-rule-soft-enforcement | 5분 하트비트 룰 강제력 부재 12분 침묵 (51분 침묵 1회 더 추가) |
mac-ssh-stale-socket-overnight | Mac SSH 야간 stale 소켓 (keepalive 양방향 패치로 해결) |
paste-block-label-leak | 복붙 메시지에 라벨/안내 텍스트 섞어 보냄 → PowerShell 깨짐 |
review-status-disabled-blind-spot | review-status-check _disabled 17h 동안 Apple issue 메일 누락 |
tahoe-ssh-cli-block (이번 goodnight) | macOS Tahoe 26.x systemsetup -setremotelogin FDA 차단 |
메모리 기록
신규/갱신:
project_4node_local_llm_infra.md(신규 → v2 → v3 섹션 누적)project_trend_curator_sonnet_routing.md(Phase 1 → v2 routing 으로 전면 개정)feedback_check_workflow_before_infra.md(신규 — 인프라 셋업하기 전 워크플로우 매핑 룰)feedback_handoff_method_a_default.md(회귀 케이스 기록)project_handoff_bidirectional_zero_touch.md(양방향 zero-touch 검증 결과)feedback_paste_blocks_as_separate_message.md(복붙 분리 룰)feedback_telegram_reply_every_turn.md(이번 세션 만성 패턴 반영, “터미널 마크다운 먼저 출력 금지” 강제)reference_macos_setremotelogin_gui_only.md(신규 — 이번 goodnight 단계)user_residence.md(모든 장비 공덕 한 책상 — 강대종님 사진 직접 확인)MEMORY.md인덱스 다수 갱신
학습·상담
- 인프라 셋업하기 전 워크플로우 매핑 확인 룰 정립 (
feedback_check_workflow_before_infra.md) — 라파5 → M1 맥미니 결정의 일반화. SD/Whisper/Vision 같은 추가 인프라 셋업하지 말기. - “있는 GPU 활용해야 할 것 같아서” 셋업하는 패턴 = 인프라가 인프라를 위한 인프라가 됨 (sunk cost 함정).
- 클라우드 API/Claude 로 이미 처리되고 있는지 먼저 확인. 매일 사용량 1000건 미만이면 절감 효과 < 셋업/유지보수 비용.
남은 작업 (블로커·대기)
- v0.3 (d) FCM push 본격 착수 — 맥미니 24/7 일주일 운영 검증 후 (블로커)
- trend-curator OLLAMA_URL 데스크탑 IP → WSL 본진 localhost 또는 Phase 2 비활성화 (WSL 별 세션)
- ollama on 맥미니 (Task #7) — 일주일 후 재평가
- pomodoro Play Console 심사 결과 도달 대기 (
/review-status-check이메일 모니터링) - 약먹자 1.0.1 + 더치페이 1.0.2 iOS 심사 큐 (48h 내 결과)
관련 커밋
| repo | 핵심 커밋들 |
|---|---|
| daejong-page | 904cc84 (todos 라파5→맥미니), 439c6cd (ep3 outline), d907aef (ep3 본문), 3df03d0 (ep3 WSL 평행본), 042b7e1 (someday 페이지), 90fbe86 (todos hanjul 종결), 2f1c3b1 (issue tahoe-ssh-cli 공개본) |
| claude-skills | c1a0f79 (handoff 라파5→맥미니), eae747a (Mac ack v2), 0440437 (ep3 WSL trend-curator 평행본), 558e789 (pomodoro lessons), cf2a63c (goodnight step 1.5), 19f84e8 (someday 신규), e542a31 (issue tahoe-ssh-cli), b12e0d7 (Mac ack v3 + ollama URL 충돌 보고) |
| claude-automations | 87d2cfe (heartbeat hook), a41ce4f (auto telegram ping), 09b55be (daily-sync 제거), f2cdc2d (Windows 11 부트스트랩), 7f0daa0 (notebook SSH hop 제거 v2) |
| review_radar | 955c841 (M5), c70cb6a (M6), bfd1d64 (헤더+알림), 960cb2c (quiet hours), a3eaa3d (iOS 14), a524c0b (v0.3 d 설계) |
| todo | bf66ef3 (L25/L33 close — goodnight step 1.5) |