사이드 프로젝트 개발 일지 — 2026년 18주차 (04/27 ~ 05/03)
📋 이번 주 요약
이번 주는 calling-language에서만 30개 이상의 기능 커밋이 나왔을 만큼 빡빡한 한 주였다. OPIc에서 CEFR 기반 평가 시스템으로 전면 전환하고, Mint Studio 디자인 시스템을 전 페이지에 적용한 뒤, 7스텝 한국어 온보딩 흐름을 처음부터 만들었다. 여기에 CEFR 진단 통화(push-to-talk, 3-question budget)와 Alex AI 버그 수정까지 마무리됐다. 한편 namuh-rebalancer와 garmin-auto-hydro 두 신규 프로젝트가 이번 주 처음 레포를 열고 첫 뼈대 커밋을 올렸다. chaekmate는 이번 주 업데이트 없음.
🔧 calling-language
총 30개 기능 커밋 (+ 10개 Merge commit). 주요 작업 흐름은 CEFR 전환 → PSTN 라우팅 → 온보딩 + 진단 통화 구축 → Mint UI 적용 → DB 마이그레이션 → Alex 버그 수정 순으로 진행됐다.
1. CEFR 평가 시스템 전환
OPIc 기반 평가를 걷어내고 자체 작성한 CEFR 디스크립터 프롬프트와 게이지 바로 교체했다. 웹과 모바일 양쪽에 모두 반영됐고, README와 테스트 체크리스트도 CEFR 기준으로 재작성했다.
| 날짜 | 커밋 |
|---|---|
| 04/27 | 02e0ef0 feat(cefr): replace OPIc evaluator with CEFR-aligned self-authored descriptor prompt |
| 04/27 | 12e4067 feat(cefr): replace OpicGaugeBar with CefrGaugeBar across web + mobile |
| 04/27 | 3ba3642 chore(cefr): rewrite README around CEFR-aligned estimation + add disclaimer footer |
| 04/27 | c16ae2f chore(cefr): add TESTING-CEFR.md verification checklist |
주요 변경: - OPIc 프롬프트 → CEFR A1–C2 레벨 디스크립터 자체 작성 - OpicGaugeBar 컴포넌트를 CefrGaugeBar로 교체 (웹 + 모바일) - README에 CEFR 추정 방식과 면책 문구 추가
2. PSTN 예약 통화 라우팅
데모용으로 예약된 통화를 Twilio PSTN으로 라우팅하는 cron 로직을 추가했다.
| 날짜 | 커밋 |
|---|---|
| 04/28 | dd13a82 feat(cron): route scheduled calls through PSTN for live demo |
주요 변경: - 예약 통화 cron이 실제 전화번호로 PSTN 발신하도록 경로 변경
3. Mint Studio 온보딩 흐름 구축 (7스텝, 한국어)
7개 스텝으로 구성된 한국어 온보딩을 Mint Studio 디자인 시스템 기반으로 처음 설계했다. 회원가입 API 연동, 비밀번호 필드, 일정 건너뛰기 옵션, 로그인 링크 등 세부 UX도 이번 주에 함께 마무리됐다.
| 날짜 | 커밋 |
|---|---|
| 04/29 | 3414228 feat: add Mint Studio onboarding (Korean, 7 screens) |
| 04/29 | a6cdecb feat(onboarding): add 나중에 skip option to schedule screen |
| 04/29 | b5d4565 fix(onboarding): add password field + call signup API on save |
| 04/29 | b29003a fix: make 로그인 a clickable link to /login on welcome screen |
| 04/29 | 1a0d61f feat: redirect root / to /onboarding |
| 05/02 | ba112bd fix(onboarding): wire diagnostic call into Mint signup flow |
| 05/02 | b04bea1 feat(onboarding): restyle diagnostic pages with Mint design system |
주요 변경: - / 루트를 로그인 상태에 따라 /onboarding 또는 /dashboard로 분기 - 회원가입 폼에 비밀번호 입력 + API 호출 연동 - 일정 선택 화면에 “나중에” 건너뛰기 옵션 추가 - 진단 통화 페이지 전체 Mint 디자인으로 리스타일
4. CEFR 진단 통화 (onboarding diagnostic)
온보딩 중 CEFR 레벨을 측정하는 진단 통화를 새로 만들었다. push-to-talk 방식(탭으로 토글), 3문제 예산, Haiku 모델 + 프롬프트 캐싱으로 레이턴시를 6–9초 단축했다.
| 날짜 | 커밋 |
|---|---|
| 04/29 | c244f1b feat(diagnostic): add onboarding CEFR diagnostic call (S12.1, CL-160) |
| 04/29 | 85e5a01 feat(diagnostic): switch onboarding diagnostic to push-to-talk + 3-question budget |
| 04/29 | 8587580 feat(diagnostic): tap-to-toggle recording instead of press-and-hold |
| 04/29 | c3555be perf(diagnostic): cut assessment latency ~6-9s with Haiku + prompt caching + tighter limits |
주요 변경: - 온보딩 흐름 안에 CEFR 진단 통화 단계 삽입 (S12.1) - push-to-talk → tap-to-toggle로 UX 개선 - 평가 모델을 Haiku로 교체, 프롬프트 캐싱 적용으로 응답 속도 대폭 개선
5. Mint Studio UI 디자인 시스템 전체 적용
온보딩뿐 아니라 콜 화면, 대시보드 등 전 페이지에 Mint Studio 디자인 시스템을 적용했다.
| 날짜 | 커밋 |
|---|---|
| 04/30 | 0da3f80 feat: apply Mint Studio design system to all pages |
| 04/30 | cbaddcc feat(call): apply Mint Studio mobile-3 design to call screens |
| 04/30 | 2a38d03 feat(web): route logged-in users from / to /dashboard, add logout in settings |
주요 변경: - 전 페이지 Mint Studio 디자인 적용 (타이포그래피, 컬러, 컴포넌트) - 콜 화면에 mobile-3 레이아웃 적용 - 로그인 사용자 대시보드 자동 이동 + 설정 화면에 로그아웃 추가
6. DB/인프라 정비
프로덕션-개발 Prisma DB 분리, 진단 관련 마이그레이션 추가, 프로덕션 빌드 시 자동 마이그레이션 실행 설정을 완료했다.
| 날짜 | 커밋 |
|---|---|
| 04/29 | 72054ec fix: add isDiagnostic to Session schema to match DB state |
| 04/30 | 769d5be feat(db): separate production and dev/preview Prisma databases |
| 04/30 | d1aea4c fix(db): add migration for diagnosticSkippedAt + Assessment table |
| 04/30 | dc280ff fix(schema): dedupe Session.isDiagnostic after merging main |
| 04/30 | 52eec28 fix(web): add /sessions index page and stop signup re-trigger from sidebar |
| 05/01 | d30bb1b chore(build): run prisma migrate deploy on production builds |
주요 변경: - 프로덕션용 DB URL과 개발/미리보기용 DB URL 분리 - diagnosticSkippedAt, Assessment 테이블 마이그레이션 추가 - Vercel 프로덕션 빌드 스크립트에 prisma migrate deploy 삽입 - 세션 목록 인덱스 페이지 추가 + 사이드바에서 회원가입이 재실행되는 버그 수정
7. Alex AI 버그 수정
Alex가 통화 종료를 먼저 끊거나, 작별 인사 후에도 계속 말하는 버그 두 개를 수정했다.
| 날짜 | 커밋 |
|---|---|
| 05/01 | f29ce94 fix(alex): stop talking after goodbye is exchanged |
| 05/01 | 5b75e3c fix(alex): never hang up the call first |
주요 변경: - 작별 인사 감지 후 Alex 발화 즉시 중단 - Alex가 먼저 통화를 끊는 동작 비활성화
📚 chaekmate
이번 주 업데이트 없음.
⚖️ namuh-rebalancer
이번 주 신규 프로젝트 킥오프. 나무 증권 포트폴리오 리밸런싱 도구 레포를 열고 초기 프로젝트 스켈레톤을 올렸다.
| 날짜 | 커밋 |
|---|---|
| 05/02 | 17ad7c5 Initial commit |
| 05/03 | 9730cb0 Initial commit: namuh-rebalancer project |
주요 변경: - pyproject.toml, .gitignore, .python-version, README 추가 - src/namuh_rebalancer 패키지 뼈대 생성
🏃 garmin-auto-hydro
이번 주 신규 프로젝트 킥오프. Garmin Forerunner 255용 Connect IQ 자동 수분 섭취 알림 앱 레포를 열었다.
| 날짜 | 커밋 |
|---|---|
| 04/30 | b46a088 Add AutoHydro app skeleton and build files |
| 05/03 | f1f6639 Add labeled session data, scripts, and resources |
주요 변경: - Connect IQ manifest, monkey.jungle, README, CLAUDE 문서 추가 - 영문/한국어 리소스 파일과 기본 앱 구조 생성 - 초기 레이블 데이터셋(labels_v0.csv)과 세션 메타데이터 스키마 추가
마치며
이번 주는 calling-language에서 CEFR 전환 + Mint 디자인 + 온보딩 통합이라는 세 가지 굵직한 작업을 동시에 밀어붙인 한 주였다. 사실상 앱의 얼굴을 이번 주에 새로 만든 셈이다. 병행해서 namuh-rebalancer와 garmin-auto-hydro 두 프로젝트도 첫 커밋을 올렸으니, 다음 주부터는 이 두 프로젝트의 핵심 로직 구현이 본격적으로 시작될 것 같다.