사이드 프로젝트 개발 일지 — 2026년 19주차 (05/04 ~ 05/10)

devlog
side-project
weekly
calling-language에 Mint 디자인 시스템 도입·Coach AI 강화, namuh-rebalancer 스냅샷 스크립트 추가
Published

2026.05.10

📋 이번 주 요약

이번 주(5/4~5/10)는 calling-language 9커밋, namuh-rebalancer 1커밋으로 총 10커밋을 작업했다. calling-language는 모바일 탭 화면에 Mint 디자인 시스템을 전면 적용하고, Coach 세션의 AI 자기 반성(reflection) 루프를 완성했으며, 삼성 기기 푸시 안정성까지 챙겼다. namuh-rebalancer는 월별 잔고 스냅샷 스크립트를 추가해 포트폴리오 히스토리 수집 파이프라인을 한 단계 진전시켰다.


🔧 calling-language

1. Mint 디자인 시스템 — 모바일 탭 화면 전면 적용

Dashboard·Schedules 화면에 Mint 토큰(cream #FBFAF3, sage #4F7A63, forest #1C3A2B)을 적용하고, 예약 통화를 앱 내 WebView 대신 기기 브라우저로 여는 방식으로 변경했다.

날짜 커밋
05/09 4f2a9a9 feat(mobile): apply Mint design system to tab screens + switch scheduled calls to browser

주요 변경: - Dashboard/Schedules 탭 배경색·액센트 컬러를 Mint 토큰으로 교체 - 예약 통화 링크를 Linking.openURL로 외부 브라우저에 위임


2. 푸시 알림 — 삼성 기기 안정성 개선 + 포그라운드 핸들러

삼성 기기에서 배터리 최적화 설정으로 인해 data-only 푸시가 무음 처리되던 문제를 수정했다. notification 필드를 함께 전송해 OS가 알림을 직접 띄울 수 있도록 했고, 앱이 포그라운드 상태일 때도 FCM 메시지를 수신할 수 있는 핸들러를 추가했다.

날짜 커밋
05/09 b8e7aad fix(push): add notification payload for Samsung reliability + foreground FCM handler

주요 변경: - push.tsnotification 필드 추가 (data 페이로드와 병기) - 포그라운드 FCM 수신 핸들러 등록


3. Coach AI — 자기 반성 루프(Reflection Loop) 추가

각 통화 세션 종료 후 튜터가 자신의 피드백을 스스로 검토·개선하는 self-reflection 루프를 구현했다. 이후 Zod 스키마 검증 한도가 너무 엄격해 정상 케이스도 걸리던 문제를 곧바로 수정했다.

날짜 커밋
05/04 6407cf0 feat(coach): add per-call tutor self-reflection loop (#13)
05/04 d4e37e4 fix(coach): relax tutor-reflection Zod caps + defensive trim

주요 변경: - 통화 종료 시점에 튜터 reflection 단계 삽입 - Zod 상한(cap) 완화 및 입력값 trim 처리로 파싱 오류 방지


4. Alex AI — 기반 프롬프트 반복 개선

Alex(AI 튜터) 기반 프롬프트(alex-base.ts)를 3회에 걸쳐 조정했다. 커밋 메시지가 “Update alex-base.ts”로 간결하게 기록되어 있어 구체적인 변경 내용은 diff에서 확인 가능하다.

날짜 커밋
05/07 4a8c297 Update alex-base.ts
05/07 dc04110 Update alex-base.ts
05/04 21264ef Update alex-base.ts

5. 웹 — 아바타 클릭 라우팅 수정

대시보드 상단 아바타를 클릭하면 로그아웃되던 문제를 수정해 프로필 페이지로 이동하도록 변경했다.

날짜 커밋
05/04 e90d5e9 fix(web): route avatar to profile page instead of logging out (#12)

📚 chaekmate

이번 주 업데이트 없음.


⚖️ namuh-rebalancer

1. 스냅샷 스크립트 + s8180 히스토리 수집 (Phase 2)

월별 잔고를 JSON으로 덤프하는 snapshot.py와, s8180 종목의 일별 히스토리를 CTS 페이지네이션으로 수집하는 fill_history.py를 추가했다. 결과물은 account·deposit·holdings·valuation_pl 필드를 포함한 JSON v1 포맷으로 저장된다.

날짜 커밋
05/05 6a44db0 Add snapshot.py + s8180 fill history (Phase 2)

주요 변경: - snapshot.py: 월말 잔고 → JSON v1 스냅샷 생성 - fill_history.py: s8180 일별 루프, CTS 페이지네이션, 필드 필터링


🏃 garmin-auto-hydro

이번 주 업데이트 없음.


마치며

이번 주는 calling-language에서 디자인·AI·인프라를 골고루 건드렸다. 특히 Coach의 reflection 루프 추가와 Mint 디자인 시스템 적용이 큰 진전이었다. namuh-rebalancer는 데이터 수집 파이프라인의 핵심 조각인 스냅샷 기능을 얹어 Phase 2를 완료했다. 다음 주는 calling-language 통화 품질 측정 지표 확보와 namuh-rebalancer 리밸런싱 엔진 본체 구현을 이어갈 예정이다.