펠즈
경력근거: 수의사가 직접 방문하여 건강검진을 진행하고, 검진 결과 리포트와 후속 케어까지 제공하는
※ 실제 산출물이 아닌 AI 예측 시안입니다.
펠즈는 수의사가 직접 방문해 검진하고 리포트·후속케어까지 제공하는 회사라, 검진 소견과 빠진 후속케어를 짚어 보호자 안내를 만드는 이 도구는 펠즈가 다루는 실제 방문 검진 데이터와 후속케어 흐름이 있어야 안내를 검증할 수 있습니다.
수의사가 집으로 찾아가 검진하고 리포트·후속 케어까지 제공. 검진 항목·소견·후속케어를 한 스키마로 닫아야 누락을 짚는다.
구현을 잘하는 사람보다 문제를 잘 정의·해결하는 PE 를 찾음. 검진→안내→확인 한 루프를 혼자 닫는 E2E 가 맞는다.
노령묘를 넘어 만성질환·대형견·단체검진으로 확장. 검진 유형이 늘수록 안내가 수의사 판단과 맞는지 확인이 중요해진다.
방문 검진 결과(항목·수치·소견)에 반려동물 프로필·과거 검진을 붙여 한 화면에서 봅니다. LLM 이 이상 소견 Top3 와 빠진 후속케어 3건을 짚어 보호자 안내문을 만들고, 매일 검진 정리 리포트를 슬랙으로 보냅니다. 1주차만으로 완성품이고, 안내가 수의사 판단과 맞는지 확인(2주차)·재검 알림 자동화(3주차)로 키웁니다. (근거는 채용공고 정렬이다.)
검진 결과에서 이상 소견과 후속케어를 매번 손으로 정리해 보호자에게 안내하는 상황을 끝내고, 그 안내가 실제 수의사 판단과 맞는지까지 확인하고 싶은 펠즈 PE.
검진 항목·소견을 반려동물 프로필과 한 스키마로 묶으면, LLM 이 (a) 이상 소견 Top3 와 (b) 빠진 후속케어 3건을 몇 초 안에 짚고, (c) 수의사 라벨과 대조해 그 안내가 맞았는지 확인합니다.
검진 결과·프로필을 한곳에 모아, 이상 소견 Top3 와 후속케어 안내를 LLM 이 만들고 매일 슬랙으로 보내는 동작하는 도구입니다.
LLM 안내와 수의사 라벨의 일치도를 맞춰보고, 수의사 2명이 이상 소견·후속케어에 얼마나 동의하는지 보여주는 대시보드입니다.
확인된 안내를 바탕으로 후속케어 기한이 임박한 보호자에게 재검 알림을 자동 발송하는 단계입니다.
이상 검진 시나리오 10개를 넣으면 이상 소견 Top3 와 후속케어 안내 3건이 몇 초 안에 나오는 걸 시연으로 보여줍니다.
일부러 만든 악성·결측 입력 30종을 넣어도 출력 형식(스키마)이 한 번도 안 깨집니다. 형식 검증(Zod)을 자동 통과합니다.
매일 검진 정리 리포트가 슬랙으로 자동 발송되는 걸 14일치 시연으로 보여줍니다.
내가 만든 정답 30개 중 이상 소견 Top3 가 일치한 게 24개(80%). 단, 정답과 데이터를 모두 내가 만든 합성 기준이므로 ‘성능 검증’ 이 아니라 ‘데모 조건에서의 동작’ 입니다.
위 수치는 전부 작성자가 만든 더미데이터 자가채점이며, 실제 일치도·정확도는 펠즈 실 검진 데이터 + 실 수의사 검수가 있어야 측정 가능합니다. 이 도구는 ‘그 검증을 바로 돌릴 수 있는 상태’ 까지 만듭니다.
이건 고객·실데이터 없이 혼자 만든 포트폴리오입니다. 모든 수치는 합성 데이터 자가채점이라 ‘성능 증명’ 이 아닙니다. 면접에서 솔직히 ‘데모 조건 동작 + 실검증 준비 상태’ 로 설명합니다.
정답을 작성자가 만들었으니 잘 맞는 것이 당연합니다. 일부러 헷갈리는 결측·악성·경계 케이스를 더미에 섞어, 쉬운 문제만 푸는 게 아님을 보여줘야 합니다.
‘질병이다’ 는 진단 단정은 의료 자문 위반이 될 수 있습니다. 근거 수치 인용을 강제하고 별도 LLM 검사로 진단 단정을 누그러뜨려 ‘재검 권고’ 수준으로 제한합니다.
검진 항목·단위 표기가 제각각이라 비교가 깨집니다. 표기·단위 정규화로 묶고, 못 묶은 건 추측하지 말고 ‘미매핑’ 으로 알립니다.
실제 도입 시 달라지는 것 명시합니다. 실 검진 분포는 더미와 다르므로 기준을 다시 맞춰야 하고, 수의사 검수도 실제 인력으로 교체해야 한다(도입 단계 과제로 분리)
① 인라인 샘플 · ② seed.json 다운로드 · ③ 증강 프롬프트. 세 층 모두 동일한 schema 에서 파생.
방문 검진 항목별 수치·소견 로그. 안내 LLM 이 가장 먼저 질의하는 테이블. 운영 현실대로 결측(항목 미측정)·미등록 항목·이상 수치를 일부러 섞어, 쉬운 데이터만 푸는 게 아님을 보여준다.
| exam_id | date | pet_id | item | item_id | value | unit | ref_high |
|---|---|---|---|---|---|---|---|
| e_0001 | 2026-05-04 | p_navi | BUN | i_bun | 28 | mg/dL | 30 |
| e_0001 | 2026-05-04 | p_navi | Creatinine | i_crea | 2.4 | mg/dL | 1.6 |
| e_0001 | 2026-05-04 | p_navi | 체중 | i_weight | 3.8 | kg | — |
| e_0002 | 2026-05-05 | p_coco | ALT | i_alt | 120 | U/L | 100 |
| e_0002 | 2026-05-05 | p_coco | 혈당 | i_glu | — | mg/dL | 130 |
아래 Zod 스키마에 맞는 반려동물 방문 검진 결과 50행 JSON 배열로 생성. 반려동물 3마리, 검진 항목 6종(BUN·Creatinine·ALT·혈당·체중·심박수) 분포 포함.
{"type":"object","properties":{"exam_id":{"type":"string"},"date":{"type":"string"},"pet_id":{"type":"string"},"item":{"type":"string"},"item_id":{"type":["string","null"]},"value":{"type":["number","null"]},"unit":{"type":"string"},"ref_high":{"type":["number","null"]}},"required":["exam_id","date","pet_id","item","item_id","value","unit","ref_high"]}
쉬운 데이터만 만들지 말 것 — 다음 하드 케이스를 의도적으로 섞어라: (1) value=null 미측정 1~2건, (2) 같은 항목의 별칭 표기('Creatinine'/'크레아티닌' 처럼 item_id 로 정규화돼야 함), (3) item_id=null 미등록 항목 1건, (4) ref_high 를 크게 초과하는 이상 수치 2~3건(추세로 악화하는 시퀀스 1세트), (5) ref_high=null 인 비기준 항목(체중) 포함. JSON 배열만.{"type":"object","properties":{"exam_id":{"type":"string"},"date":{"type":"string"},"pet_id":{"type":"string"},"item":{"type":"string"},"item_id":{"type":["string","null"]},"value":{"type":["number","null"]},"unit":{"type":"string"},"ref_high":{"type":["number","null"]}},"required":["exam_id","date","pet_id","item","item_id","value","unit","ref_high"]}수의사 페르소나(LLM 시뮬) 2명이 LLM 안내에 부여한 라벨. Cohen’s κ 의 입력. 수의사 불일치·진단 단정 과잉을 일부러 섞어, 일치도가 1.0 이 아닌 현실을 보여준다.
| exam_id | reviewer | abnormal_agree | followup_valid | diagnosis_overclaim | note |
|---|---|---|---|---|---|
| e_0001 | vet_p1 | true | true | false | 크레아티닌 상승 주의 |
| e_0001 | vet_p2 | true | true | false | — |
| e_0002 | vet_p1 | true | true | false | ALT 경미 상승 |
| e_0002 | vet_p2 | false | true | false | 경계값, 재검만 |
| e_0006 | vet_p1 | true | true | true | ‘신부전’ 단정은 과함 |
아래 Zod 스키마에 맞는 vet_labels 40 검진 × 평가자 3(p1/p2/self) = 120 행 JSON 배열로 생성.
{"type":"object","properties":{"exam_id":{"type":"string"},"reviewer":{"type":"string","enum":["vet_p1","vet_p2","self"]},"abnormal_agree":{"type":"boolean"},"followup_valid":{"type":"boolean"},"diagnosis_overclaim":{"type":"boolean"},"note":{"type":["string","null"]}},"required":["exam_id","reviewer","abnormal_agree","followup_valid","diagnosis_overclaim","note"]}
조건: 평가자 간 abnormal_agree 일치 70% 내외, 불일치 시 note 에 사유, diagnosis_overclaim=true 10% 내외. JSON 배열만.{"type":"object","properties":{"exam_id":{"type":"string"},"reviewer":{"type":"string","enum":["vet_p1","vet_p2","self"]},"abnormal_agree":{"type":"boolean"},"followup_valid":{"type":"boolean"},"diagnosis_overclaim":{"type":"boolean"},"note":{"type":["string","null"]}},"required":["exam_id","reviewer","abnormal_agree","followup_valid","diagnosis_overclaim","note"]}| React | 보호자 안내·검진 결과 카드 렌더링 + Zod 런타임 검증 |
| Next.js | 검진 정리 대시보드 + 안내 미리보기 서버 렌더링 + 안내 API 라우트 |
| Claude | 이상 소견·후속케어 누락 짚기 + 보호자 친화 안내문 생성(의료 표현 가드 포함) |
✓ pass → 그대로 멈춰도 완결입니다. 더 키우고 싶으면 2주차(안내가 수의사 판단과 맞는지 확인)로 진행합니다.
✓ pass → 여기서 멈춰도 완결입니다. 더 키우면 3주차(재검 알림 자동화)로 진행합니다.
1) 이상 소견 카드(해석·근거 수치·완곡 표현), 2) 빠진 후속케어 3건 + 권고 기한 + 확신도, 3) 다음 검진/수의사 라벨로 안내 적중 검증. 안내→확인 한 주기를 한 스키마에 담음.
{"type":"object","properties":{"exam_id":{"type":"string"},"findings":{"type":"array","items":{"type":"object","properties":{"item_id":{"type":"string"},"interpretation":{"type":"string","minLength":15},"cited_value":{"type":"string"},"hedge":{"type":"string","minLength":8}},"required":["item_id","interpretation","cited_value","hedge"]},"minimum":1,"maximum":3},"followups":{"type":"array","items":{"type":"object","properties":{"care":{"type":"string","minLength":10},"due_days":{"type":"integer"},"confidence":{"type":"string","enum":["low","mid","high"]}},"required":["care","due_days","confidence"]},"minimum":3,"maximum":3},"owner_message":{"type":"string","minLength":20},"verification":{"type":["object","null"],"properties":{"prior_exam":{"type":"string"},"agree_rate":{"type":"number"},"hits":{"type":"array","items":{"type":"object","properties":{"item_id":{"type":"string"},"predicted_abnormal":{"type":"boolean"},"vet_abnormal":{"type":"boolean"},"hit":{"type":"boolean"}},"required":["item_id","predicted_abnormal","vet_abnormal","hit"]}}},"required":["prior_exam","agree_rate","hits"]}},"required":["exam_id","findings","followups","owner_message","verification"]}[
{
"exam_id": "e_0001",
"findings": [
{
"item_id": "i_crea",
"interpretation": "크레아티닌 2.4 로 기준(1.6) 초과 — 신장 기능 재확인 권고",
"cited_value": "2.4 mg/dL (ref_high 1.6)",
"hedge": "단일 검진 수치 — 진단 아닌 재검 권고 수준."
},
{
"item_id": "i_bun",
"interpretation": "BUN 28 로 기준(30) 경계 — 수분·식이 점검",
"cited_value": "28 mg/dL (ref_high 30)",
"hedge": "경계값으로 추세 관찰 필요."
}
],
"followups": [
{
"care": "2주 내 신장 수치 재검",
"due_days": 14,
"confidence": "high"
},
{
"care": "저단백 처방식 상담",
"due_days": 7,
"confidence": "mid"
},
{
"care": "음수량 기록 시작",
"due_days": 3,
"confidence": "mid"
}
],
"owner_message": "나비의 신장 관련 수치가 기준을 살짝 넘었어요. 진단은 아니지만 2주 안에 재검을 권해드리고, 그동안 음수량을 기록해 주시면 도움이 됩니다.",
"verification": null
},
{
"exam_id": "e_0006",
"findings": [
{
"item_id": "i_bun",
"interpretation": "BUN 45 로 기준(30) 크게 초과 — 신장 기능 악화 추세",
"cited_value": "45 mg/dL (ref_high 30)",
"hedge": "신부전 단정 아님 — 정밀 검사 권고."
}
],
"followups": [
{
"care": "1주 내 정밀 신장 검사",
"due_days": 7,
"confidence": "high"
},
{
"care": "탈수 여부 확인 방문",
"due_days": 3,
"confidence": "high"
},
{
"care": "처방식 전환 상담",
"due_days": 7,
"confidence": "mid"
}
],
"owner_message": "나비의 신장 수치가 지난번보다 더 올랐어요. 질병으로 단정할 수는 없지만, 일주일 안에 정밀 검사를 받아보시길 권해드립니다.",
"verification": {
"prior_exam": "e_0001 안내",
"agree_rate": 0.83,
"hits": [
{
"item_id": "i_crea",
"predicted_abnormal": true,
"vet_abnormal": true,
"hit": true
},
{
"item_id": "i_bun",
"predicted_abnormal": false,
"vet_abnormal": true,
"hit": false
}
]
}
}
]자동: (1) Zod parse, (2) cited_value 가 입력 검진의 실제 값·단위, (3) 진단 단정 토큰 검출 + LLM-as-judge 의료 자문 위반 평가, (4) 수의사 라벨과 abnormal 일치율 자동 계산. 수동: 수의사 2명 비동기 라벨 → bootstrap Cohen’s κ CI 하한 ≥ 0.6, judge 인간 spot check 5%.
근거: 수의사가 직접 방문하여 건강검진을 진행하고, 검진 결과 리포트와 후속 케어까지 제공하는