이것은 Gemma 4 Challenge: Gemma 4로 구축하기
의 제출물입니다. 제가 만든 것
Companion은 2형 당뇨병과 고혈압을 함께 관리하는 사람들을 위한 조용한 매일 체크인입니다 — 대부분이 그렇습니다. (당뇨병 환자의 약 70%가 고혈압도 가지고 있습니다.)
문제점: 전 세계적으로 5억 3700만 명이 당뇨병을 앓고 있습니다. 대부분은 3개월에서 6개월마다 한 번씩 병원을 방문합니다. 방문 사이에는 노트북이나 앱에 숫자를 모아두지만, 그 숫자들이 함께 의미를 가지는지 알 방법이 없습니다.이것들은 의미가 있는가요? 화요일 215 mg/dL은 나쁜 수치인가요? 혈압 추세가 상승하고 있는가요? 아목립린 한 번 놓친 것은 정말 중요한가요?
동반자는 따뜻한 간호사처럼 한 주간의 측정값을 읽는다. 그것은:
- 위험 지역을 먼저 표시 — 오늘 의사에게 전화할 가치가 있는 측정값
- 패턴을 찾는다 — "화요일과 토요일 모두 밥을 먹으면 포도당이 215을 넘었다. 주목해야 할 점."
- 시도해 볼 작은 일 하나를 제안한다 — 일반적인 조언이 아니라, 그들의 데이터
- 에 기반한 구체적인 실험이다 그들은 다음 약속에서 의사에게 들을 수 있는 임상 요약을 작성한다 — 깨끗하고 사실적이며, 30초 안에 스캔할 수 있다
모든 읽기는 사용자의 브라우저에 남아있다. 백엔드가 없고, 데이터베이스가 없으며, 계정도 없다
데모
🎥비디오 튜토리얼:
🌐 라이브 데모: https://companion-sooty.vercel.app
단순한 흐름입니다:
- 이번 주 읽기 내용을 붙여넣거나 샘플을 로드합니다.
- "나의 주를 분석하기"를 클릭합니다.
- 위험 플래그, 추세, 한 가지 제안된 실험, 의사 요약을 확인합니다.
- 다음 약속을 위해 PDF를 다운로드합니다.
코드
📦 GitHub:
동반자
당뇨병과 고혈압을 관리하는 사람들을 위한 조용한 매일 체크인. 이번 주의 결과를 붙여넣고, 정상적인 것, 주의가 필요한 것, 시도해 볼 작은 일을 간단한 언어로 요약받으며, 다음 의사 방문 시 가져갈 깨끗한 PDF 요약을 받으세요.
설계되었습니다.DEV.to Gemma 4 Challenge2026년 5월.
이것이 존재하는 이유
전 세계적으로 5억 3700만 명의 당뇨병 환자가 살고 있습니다. 그들 중 대부분은 3개월에서 6개월마다 한 번씩 의사를 복니다. 그 사이에 그들은 노트북이나 앱에 숫자를 모아두지만, 그 숫자들이 함께 의미하는 바를 알지 못합니다.
Companion은 중간 지점입니다. 한 주 동안의 포도당과 혈압 측정 값을 친절한 간호사처럼 읽습니다 — 위험 지역을 찾고, 패턴을 인식하고, 시도해 볼 특정한 일을 제안하고, 의사가 30초 안에 스캔할 수 있는 임상 요약을 작성합니다.
작동 방식
그것은…
전체 앱은 하나의 HTML 파일입니다. 프레임워크 없이, 빌드 단계 없이, npm install 없이요. 의사 요약 다운로드를 위해 jsPDF(CDN을 통해 로드)만 의존성이에요. 앱의 "지능"은 거의 전부 시스템 프롬프트에 살아있는데 — 이건 내가 솔직히 말하면 더 많이 조정했어요.
// The model call is dead simple:
const response = await fetch('https://openrouter.ai/api/v1/chat/completions', {
method: 'POST',
headers: { 'Authorization': `Bearer ${key}`, 'Content-Type': 'application/json' },
body: JSON.stringify({
model: 'google/gemma-4-26b-a4b-it:free',
messages: [
{ role: 'system', content: SYSTEM_PROMPT },
{ role: 'user', content: `Here are my readings for the past 7 days:\n\n${readings}` }
],
temperature: 0.3,
max_tokens: 1500
})
});
시스템 프롬프트는 제품이 존재하는 곳입니다. 참조 범위를 정의하고, 출력 스키마, 톤 규칙("좋은 친구처럼 말해라, 병원 책처럼 말하지 마라"), 명시적인 안전 제약 조건(의료 조언을 대체하지 마라, 항상 의사 요약을 포함해라)을 정의합니다.
제가 Gemma 4를 사용한 방법
저는 Gemma 4 26B MoE (4B 활성화)를 선택했습니다 — 전문가 혼합(Mixture-of-Experts) 변형 — 그리고 모델 선택은 이 제품에 있어 중요한 역할을 합니다.
왜 전문가 혼합(MoE)이 아니라 31B 밀집 모델인가요: 동반자는 빠르게 느껴야 합니다. 사람들은 응답이 12초 걸리는 일일 체크인 도구를 사용하지 않을 것입니다. MoE는 토큰당 4B 파라미터만 활성화하여 Dense 모델과 비슷한 추론 품질을 제공하여 OpenRouter의 무료 티어에서 낮은 지연 시간을 의미합니다. 일일 사용 도구에 있어서, 그 지연 시간 예산은 마지막 몇 점의 벤치마크 정확도보다 더 중요합니다.
왜 MoE가 아니라 E4B인가요: 여기서의 추론 작업은 정말 어렵습니다. 모델은 화요일에 나타난 포도당 스파이크를 화요일에 언급된 라이스와 닭고기 식사와 연결해야 하며, 그 다음에 토요일의 카레에서 동일한 패턴을 알아야 합니다. 화요일에 놓친 아목립라딘 용량과 혈압이 점차 상승하는 것 사이의 상관관계를 이해해야 합니다. 모델은 동시에 다섯 가지 참조 범위를 가중치를 두고, 무엇을 경고로 표시할지, 언급할지, 무시할지 결정해야 합니다. E4B (4B 파라미터)는 여기서 신호를 시작으로 감소합니다. MoE의 전문가 라우팅은 식단, 약물 복용 준수, 시간대 패턴 등 다양한 도메인 간의 추론을 처리하지만, 활성 파라미터 수를 증가시키지 않습니다.
왜 Gemma 4인가요 (Gemini Flash 또는 GPT-4o-mini가 아닌 이유): Apache 2.0 라이선스는 건강 애플리케이션에 대해 사람들이 인식하는 것보다 중요합니다. 아키텍처는 로컬 추론 경로가 안정화되면 LiteRT-LM 또는 Ollama를 통해 완전히 로컬 Gemma 4 E4B 배포로 의도적으로 교체할 수 있습니다. 프라이버시가 엄격한 시장 — 독일 의료 서비스, EU GDPR 환경, 미국 클라우드에 환자 데이터를 보낼 수 없는 사람들 — 그 이전 경로는 "흥미로운 데모"와 "실제 제품" 사이의 차이입니다. 오늘의 호스팅된 통화는 배포 편의성입니다. 모델 선택은 내일의 프라이버시 보장을 위해입니다.
Gemma 4가 해제한 것은 나가 지난 두 해 동안 만들 수 없었던 것: 사유. 이전에 개방된 모델들은 내가 요약을 제공해 줄 것("이번 주 당뇨병 수치는 128에서 268까지였으며 평균은 144입니다"). Gemma 4는 내게 통찰력을 제공해 줍니다. ("당신의 두 번째로 높은 측정값은 모두 밥을 많이 먹은 식사 후였습니다. 주목해야 할 점입니다.") 그 전환 — 요약에서 통찰력으로 — 로깅 앱과 동반자 사이의 차이를 만듭니다.
제가 잘린 부분
이걸 7시간 정도 만들었고, 많은 좋아서 하고 싶은 부분을 잘랐습니다.
- ❌ 다중 모드 사진 업로드 (사용자가 혈당계 화면을 찍을 수 있게 함) — v2로 남겨두었습니다
- ❌ 여러 주간의 트렌드 차트 — 의사 PDF는 충분히
- ❌ 모바일 앱 — 웹은 폰 브라우저에서 잘 작동합니다
- ❌ 사용자 계정 — 모든 것이 브라우저에 있어서, 그게 프라이버시 이야기입니다
나는 의사 방문 사이에 실제로 누군가를 도울 수 있는 최소한의 것을 남겼습니다. 그게 전체 포지셔닝입니다.
책임에 대한 메모
저는 의사가 아닙니다. 앱은 이를 명확하게 명시하고 있습니다 — 모든 화면, 모든 PDF 파일 모두 "이것은 의료 조언이 아닙니다"라는 문구를 포함합니다. 프롬프트에 있는 참조 범위는 표준 ADA 및 AHA 지침에서 유래했지만, 모델은 여전히 잘못될 수 있습니다. 제품은 인간 의사가 참여한다는 가정을 기반으로 구축되었습니다. Companion의 역할은 그 대화가 일어나도록 돕는 것이 아니라, 그것을 대체하는 것이 아닙니다.
직접 시도해보세요
당신이 당뇨병이나 고혈압을 관리하는 친구나 가족이 있다면, 그들이 Companion에 일주일간의 측정값을 기록해보라고 요청하고, 요약된 내용이 그들에게 모르는 점을 알려준다면 확인해보세요. 그게 제가 가장 신경 썼던 테스트입니다.
이 챌린지를 준비해준 DEV팀과 Google에게 감사드립니다 — 특히 오픈-웨이트 이야기를 드러낸 덕분입니다. 이만한 모델에 Apache 2.0을 채택하는 것은 건강 관리에 정말 큰 일입니다.
2026년 5월 Gemma 4 Challenge를 위해 혼자 만들었습니다.












