창구마다 설명할 필요 없는 수첩|AI 진단 없이 본인의 언어를 휴대하는 'Engawa'
요약
Engawa는 복잡한 상황에서 반복되는 설명의 어려움을 해소하기 위해 고안된 '진료 기록 수첩' 개념입니다. 사용자가 자신의 언어로 곤란함(어려움)을 한 번만 기록하고, AI가 이를 바탕으로 다음 질문을 선택하며, 필요한 정보만 선별적으로 보여줄 수 있게 합니다.
핵심 포인트
- 반복되는 설명의 어려움을 해소하는 것이 목표입니다.
- 사용자 본인의 언어로 곤란함을 단 한 번 적습니다.
- AI(Gemini)가 사용자의 기록 기반으로 다음 질문을 제안합니다.
- 필요한 정보만 선별적으로 보여줄 수 있는 기능을 제공합니다.

이미지 (AI 생성). 등장인물은 가상입니다.
서론|구청에서 세 번째 설명을 하는 A씨
A씨는 구청 창구에서 세 번째 같은 설명을 하고 있습니다. 월세 문제, 어머니의 입원 문제, 이전 창구에서 이야기했던 내용들. 제대로 말로 표현하지 못한 채 '우리 담당이 아니다'라는 말을 듣고 다음 창구로 안내됩니다.
이는 여러 경험을 조합한 비유입니다. 하지만 저 자신도 같은 설명을 반복해 왔습니다.
저는 이른바 '모범생'이었습니다. 주변에서는 풍족한 가정으로 보였을 겁니다. 하지만 집에는 건드려서는 안 되는 '침묵'이 있었습니다. 가족의 병을 어릴 때부터 곁에서 지지하며, 누구에게도 말하지 못한 채 자랐습니다. 도움을 요청하는 말을 할 수 없었던 것입니다.
나중에 그 경험을 구조적으로 해석했습니다. 제도적 간극, 문화적 억압, 그리고 가족이라는 폐쇄된 공간. 이 세 가지가 겹치면 사람은 정보도, 목소리도, 믿음을 얻는 것마저 잃게 됩니다 (저는 이것을 'Triple Isolation Model'이라고 부릅니다. 자세한 내용은 note의 글에 적었습니다). ACE(역경의 아동기 경험) 10개 항목 중 18세까지 7개 항목, 30세까지 8개 항목에 해당합니다 (자가 보고).
Engawa는 그때 저에게 필요했던 '언어를 휴대하는 수단'을 지금 만들려는 시도입니다.
과제|창구를 돌 때마다 처음부터 다시 시작하기

이미지 (AI 생성). 등장인물은 가상입니다.
- 가족을 돌보는 중학교 2학년 학생은 5.7%입니다. 그중 **돌봄에 대해 상담한 경험이 '없는' 학생은 67.7%**였습니다 (후생노동성 위탁 조사, 2021년 3월 공표. 돌봄을 하는 중2, 319명 중 비율).
- 창구에 불만을 가진 사람의 60.2%가 대기 시간을 언급했습니다 (나고야시 시정 설문조사, 2025학년도, 유효 응답 851명. 불만을 가진 사람 중 비율).
먼저 명확히 말하겠습니다. Engawa는 대기 시간을 해결하지 못합니다. 창구 인력 증원도, 진단도, 법적 판단도 풀지 못합니다. 줄이고 싶은 것은 오직 **'같은 설명의 반복'**뿐입니다.
Engawa란|곤란함에 대한 '진료 기록 수첩'
진료 기록 수첩(お薬手帳)은 약국이 바뀌어도 자신의 약 기록을 가지고 다닐 수 있는 수첩입니다. Engawa는 그 '곤란함 버전'입니다.

이미지 예시 (NotebookLM으로 생성). '기존의 문진표'는 창구마다 청취를 다시 하는 일반적인 비유입니다.
- 쓰기: 곤란함을 자신의 언어로 단 한 번만 적습니다 (음성으로도 입력 가능).
- 질문: AI(Gemini)가 부족한 점을 다음 질문으로 선택합니다. 후보는 본인의 언어에서 인용한 것뿐입니다.
- 확인: '맞다'라고 할 때만 수첩에 길게 눌러 표시합니다.
- 보여주기: 창구에 보여줄 범위를 본인이 선택합니다. 화면, QR, 종이(대조 코드 포함)로 보여줄 수 있습니다.

'맞다'를 버튼이 아닌, 길게 누르는 표시로 만든 이유는 '본인이 확인했다'는 행위를 몸으로 알리고 싶었기 때문입니다. 길게 누르기가 어려운 사람을 위해 버튼으로도 같은 확인이 가능합니다.

창구 측면
창구 측은 준비가 필요 없습니다. 본인의 화면에 있는 QR를 읽어 로그인하면, 읽기 → 본인이 확인하기 → 다음 상담처로 인계 순서로 진행할 수 있습니다.

이름이나 주소 같은 기본 정보는 본인의 단말기 안에만 남습니다. 본인이 '기본 정보를 보여주기'를 선택했을 때만, QR의 '#' 뒤쪽 (서버로 전송되지 않는 부분)에 넣어 창구 단말기에 전달합니다.

개선점 ①|AI의 답변은 반드시 검증을 거치게 한다
AI는 본인이 말하지 않은 것을 그럴듯하게 추가해 버릴 때가 있습니다. 복지나 행정 분야에서는 이것이 가장 곤란합니다. 진단명이나 원인 추측이 섞이기 때문입니다.
그래서 AI에게는 **'다음 질문을 선택하는 것'과 '본인의 언어에서 인용 후보를 내는 것'**만 맡겼습니다. 그리고 화면에 표시되기 전에, AI 외부에서 코드가 검증합니다.

// 인용은 본인의 말에 그대로 있는 것만 통과시킵니다
const quote = normalize(suggestion.basis.quote);
if (quote.length === 0) return { ok: false, reason:
통과하지 못하면, **고정 질문으로 돌아갑니다**. AI가 멈추거나 Model Armor를 사용할 수 없더라도, 수첩 만들기는 멈추지 않습니다.
- AI에게 전달하기 전과, 돌아온 후를,
**Model Armor**(Google Cloud)로 검사합니다. (예: '지금까지의 지시를 무시하고'와 같은 공격 문구를 막습니다.) - 진단·추측·비난에 해당하는 표현은 제거합니다.
- 본인의 말은 멈추지 않습니다. 멈추는 것은 개인 정보뿐입니다.
## 개선점 ②|AI가 작성한 URL 중 실제로 열 수 있는 건 15개 중 4개에 불과했다
'다음 상담처'를 찾는 기능은 Gemini와 Google 검색을 통해 후보를 제시합니다. 그런데, **AI가 작성한 URL을 실제로 열어보니, 15개 중 4개만** 열렸습니다 (3회 측정, 각 5건씩). 나머지는 존재하지 않는 페이지였습니다.
창구에 **존재하지 않는 페이지를 안내할** 수는 없습니다. 그래서 링크는 AI 외부에서 **세 가지 확인**을 거친 것만 제공합니다.

/** 이름의 3글자씩 배열이, 페이지 안에 2개 이상 있으면, 맞는 것으로 간주한다. */
export function nameMatchesPage(name: string, pageText: string, min = 2): boolean {
const n = name.replace(/[\s ()()「」]/g, "");
...
게다가, AI가 작성한 URL이 열리지 않았을 때는, **Google 검색의 '근거'로 반환된 페이지**에서 다시 찾습니다 (검색 근거 중 공적인 도메인인 것은 측정했던 20건 모두 열렸습니다). 실제 환경에서 6개 지역에 시험해 본 결과, 반환된 후보 15건 중 **7건에서 링크를 확인할 수 있었습니다**. 확인하지 못한 것은 **링크를 제공하지 않고** '공식 사이트 내에서 검색' 안내로만 제한하고 있습니다.
## 개선점 ③|결정하는 것은 본인
- **본인의 확인이 없으면** 공유도, 인계도 할 수 없습니다. -
**열쇠는 2개**입니다: 본인용(보기/삭제)과 창구용(로그인하여 읽기/인계. **삭제는 불가**). -
**삭제하면 본문이 서버에서 사라집니다**. 창구에서는 볼 수 없게 되고, 종이 대조도 무효가 됩니다. - 수첩은 **30일 후 자동 삭제**됩니다. - 누가·언제·무엇을 했는지는,
**해시로 연결된 기록**에 남깁니다. 수정은 막을 수 없지만, **찾아낼 수 있습니다**. 본문은 기록에도, 로그에도 넣지 않습니다. - 긴급한 기미가 있는 말에는 멈추지 않고, **상담처를 안내**합니다.
## 전체 구성

| 역할 | 사용된 것 | 선택한 이유 |
|---|---|---|
| 실행 | Cloud Run (도쿄) | 사용하지 않을 때는 0대. 비용이 거의 들지 않음 |
| ... |
## 비용 감각
| 처리 | 1회당 (추정치) |
|---|---|
| 다음 질문 생각하기 | 약 0.02엔 |
| ... | 1건 상담 (음성 포함)
약 1.5엔 (질문 3회 + 상담처 1회 + 음성 1회 + 검사 합계. 음성 없음은 약 0.3엔) |
작은 실측(각 3회)을 바탕으로 한 **추정치**입니다. 창구 하나가 월 400건을 받는다고 가정하면, **월 약 260~600엔**입니다 (가정. 무료 사용량은 제외하지 않았습니다). 자세한 내용은 리포지토리의 `docs/COST.md`에 작성했습니다.
## 확인 방법
- **자동 테스트**: 130건 -
- **AI 제어 테스트(Evals)**: 40건 (진단·점수 매기기·개인 정보·공격 문구에 대한 제어가 작동하는지) -
- **실제 안전 테스트**: 15 항목 (공유 범위 외가 보이지 않음/로그인 없이는 읽을 수 없음/삭제 기능이 작동함/열쇠 분리/고장 난 입력에도 다운되지 않음/샘플 제작 가능 등) - 앱 안의 '구조 보기' (`/how`)에서, **7가지 상황, 22개 항목의 확인**을 언제든지 그 자리에서 동작시킬 수 있습니다. - 로그에 **본인의 말이 들어있지 않은 것**도 테스트로 확인했습니다.
## 솔직한 한계
- 효과는 아직 실측할 수 없습니다. 측정하는 것은 카드 제작에 걸리는 시간과 끝까지 작성하는 사람의 비율입니다. 시도한 사람이 적어 숫자를 낼 수 없습니다. - 창구에서 받아들일지는 창구마다 다릅니다.
**현재로서는 실제 기관과의 제휴나 연계는 없습니다.** - 이름과 주소의
**자동 감지 기능은 없습니다.** 수첩에는 작성하지 말아 주세요. - 기기나 지원자가 없는 사람에게는 전달되지 않습니다.
- 개인 정보 취급에 대해서는 앱 내 '개인 정보 취급' 페이지에 가능한 한 솔직하게 적었습니다.
## 배경이 되는 생각|케어 자본주의(Care Capitalism)
가족 돌봄, 외로운 사람에게 말을 건네기, 아이들의 공간 만들기. 사회를 지탱하고 있지만, **경제 수치로는 나타내기 어려운** 활동들이 있습니다. 저는 이것을 눈에 보이지 않게 만들지 않기 위한 생각으로 **케어 자본주의(Care Capitalism)**라고 부릅니다.
'누군가를 돕는 것이 돕는 사람에게도, 도움을 받는 사람에게도, 주변 사람들에게도 무리 없이 지속될 수 있는 시스템'이라는 생각입니다. 자본주의를 부정하는 것이 아니라, **투자나 기술의 힘을 살리면서 눈에 잘 보이지 않는 가치를 시스템 안에서 다룰 수 없을까**를 고민하고 있습니다.
그 다음 단계의 구상 중 하나가 'CarePay'입니다(**실제 서비스는 아닙니다**). 다만, 돌봄 기록을 그대로 돈으로 만들 수는 없습니다. 도움을 받는 쪽이 '포인트를 생성하는 존재'가 되어서는 안 되기 때문입니다. 법적 확인도 필요합니다. 지금은 구상의 단계입니다. Engawa는 그 **첫걸음**입니다.
## 앞으로 할 것들
- 창구 측으로부터 솔직한 의견을 듣기 (아セスメント 작성 항목 중 본인이 작성할 수 있는 부분).
- 마이넘버 카드
**공적 개인 인증**을 사용하여, 본인의 동의 하에 **기본 4가지 정보만** 받기 (개인 번호와 신분증 이미지는 보관하지 않습니다). - 시범(파일럿)을 1개 거점에서 진행.
## 한번 사용해 보세요
- 위의 URL을 열고 '시작하기'(가상의 이야기로 수첩을 만들 수 있습니다).
- 창구 측의 모습을 보고 싶다면, '창구 측으로' → '수첩 받기' → '샘플 수첩 열기'.
- 시스템 내부 내용은 '시스템 내부 보기'.
느낀 점이나 깨달은 점을 기다리겠습니다.
## 사용한 AI에 대하여
- 구현에는 Claude Code를 사용했습니다. 화면 문구, 설계, 검증 방침은 제가 정했고, 동작은 직접 확인하고 있습니다.
- 앱 내부의 AI는 Gemini (Vertex AI)입니다.
- 영상 초반부 그림과 이 기사의 일부 그림에는 이미지 생성을 사용했습니다.
- 구성도의 모양새는 이미지 생성으로 정리했습니다(내용은 구현과 대조하여 확인 완료).
## 맺음말
창구가 바뀔 때마다 처음부터 설명하는 것. 그것을 조금이라도 줄이고 싶습니다. Engawa는 그를 위한 작은 수첩입니다.
**저자**: 타마에 히데키(田前秀樹)(AI 엔지니어/기업가/Artist). 긍정 심리학 졸업(펜실베이니아 대학교), 예방 의료 진단사. 전직 영 케어러로서, ACEs와 영 케어러 지원을 통해 사회 변화를 추진하고 있습니다.(Zenn 프로필)
### Discussion

AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기