AI 시대에 엔지니어가 만들어야 할 것: 오프라인 피난소 관리 앱 ShelterAI 개발기
요약
AI가 코드를 쉽게 작성하는 시대에, 엔지니어는 기존의 것을 최적화하기보다 '아직 없는 것'을 만들어야 한다. 필자는 재난 경험을 바탕으로 전력 및 인터넷 연결이 필수적인 기존 시스템의 한계를 지적하며, 완전 오프라인 환경에서 작동하는 피난소 관리 앱 ShelterAI를 개발했다. 이 앱은 Gemma 4 E2B 모델을 iPhone에 직접 탑재하여 신분증 인식, 부상자 트리아지, 물자 배부 등을 빠르고 독립적으로 처리할 수 있게 한다.
핵심 포인트
- 엔지니어는 AI 시대에 기존의 최적화가 아닌, 사회적으로 부족한 새로운 가치를 창출해야 한다.
- 재난 대책은 인터넷 연결이나 유료 구독에 의존해서는 안 되며, 오픈되어야 한다.
- ShelterAI는 Gemma 4 E2B 모델을 iPhone Neural Engine에 직접 탑재하여 완전 오프라인으로 작동하는 피난소 관리 시스템이다.
- 이 솔루션은 종이 기반의 수작업 접수 시간을 12.5시간에서 0.8시간으로 혁신적으로 단축시킨다.
- LLM의 취약점을 보완하기 위해, ShelterAI는 '인텔리전트 라우팅'을 도입하여 쿼리 유형별 최적의 처리 방식을 설계했다.
AI가 코드를 작성하는 시대에, 엔지니어는 무엇을 만드는가
AI가 엄청나게 편리해졌다. 프롬프트(Prompt)를 작성하면 앱이 나온다. 코드를 작성하는 속도는 10배 빨라졌고, 개인이 일주일 만에 만들 수 있는 범위는 극적으로 넓어졌다.
그렇다면, 무엇을 만들 것인가?
태스크 리마인더(Task Reminder)? 메모장? 주방 타이머?
만들 수 있다. 전부 만들 수 있다. AI에게 물어보면 30분 만에 작동하는 것이 나온다. 하지만 그것을 세상에 내놓는다고 해서 무엇이 변할까.
적어도 나는, 기존에 있는 것을 내 취향에 맞게 최적화하기 위해 앱을 만들기보다, 아직 없는 것, 부족한 것을 만들어내고 싶다고 생각한다.
일본인이기에 알고 있는 것
나는 일본인이다. 그리고 분명 세상에 부족한 것이 무엇인지 알고 있다.
2011년 3월 11일. 나는 학생이었다. TV 너머로 마을이 휩쓸려 가는 것을 보았다. 그날 이후 일본에서는 수많은 재해가 일어났고, 그때마다 현장에서 필사적으로 대응하는 사람들이 있었다. 구마모토, 홋카이도, 노토. 그때마다 피난소의 체육관에는 종이 명부가 나열되었다.
사회인이 되어 현직에 종사하며, 방재 현장과 가까운 일을 하게 되었다. 그 전에도, 그 후에도, 나는 「내 업무에 의의가 있는가」를 계속해서 묻고 있다.
그리고 한 가지, 확신에 가까운 것이 있다.
재해 대책은 오픈(Open)되어야 한다.
피난소에서 사용하는 도구가 인터넷 연결을 전제로 해서는 안 된다. 월간 구독(Subscription) 계약이 없으면 작동하지 않는다면 의미가 없다. 전용 하드웨어가 없으면 사용할 수 없다면, 그것은 「가지고 있는 지자체」만의 특권이 된다.
그래서 만들어 보았다
Google의 Gemma 4 Good Hackathon라는 콘테스트를 만났다. 「AI로 사회 과제를 해결한다」가 테마다.
내가 만든 것은 ShelterAI — 완전 오프라인으로 작동하는 피난소 관리 앱이다.
무엇을 할 수 있는가
- 신분증(면허증, 여권 등)을 카메라에 비추기만 하면, Gemma 4가 디바이스 상에서 성명, 주소, 생년월일을 읽어낸다. AI 어시스턴트가 부상자 트리아지(Triage, 중증도 분류), 물자 추정, 요배려자(도움이 필요한 사람) 목록을 즉시 반환한다.
- 물자 배부의 개별 체크 관리
- 통신이 복구되면 CSV 파일로 행정 기관에 전달
인터넷 불필요. 클라우드 불필요. iPhone 한 대만 있으면 된다.
왜 이 구성인가
디지털청의 실증 실험에서, 디지털 ID 처리를 통해 피난소 접수 시간이 90% 단축된다는 것이 나타났다. 하지만 기존 솔루션은 모두 인터넷 연결, 유료 계약, 전용 기기를 전제로 한다.
재해 시에 가장 먼저 상실되는 것은 통신 인프라다. 전기도, 인터넷도 믿을 수 없다.
그래서 Gemma 4 E2B(2B 파라미터, CoreML Int4로 약 2.7GB)를 iPhone에 직접 탑재했다. Neural Engine을 통해 2~8초 만에 추론(Inference)이 실행된다. 서버는 필요 없다.
500명 규모의 피난소에서 종이 기반이라면 약 12.5시간이 걸리는 접수 작업이, ShelterAI라면 약 0.8시간이다. 11시간 이상을 케어, 배부, 연계에 쏟을 수 있다.
기술 이야기: 2B 모델의 한계를 「설계」로 넘어서기
솔직히 쓰겠다. Gemma 4 E2B는 만능이 아니다. 2B 파라미터 모델에 「피난자 500명 중 부상자는 몇 명인가?」라고 물어도 정확한 숫자는 돌아오지 않는다. 구조화된 데이터의 검색은 LLM(대규모 언어 모델)의 취약 분야다.
그래서 ShelterAI에서는 **인텔리전트 라우팅(Intelligent Routing)**을 채택했다.
| 쿼리 유형 | 처리처 | 정밀도 | 레이턴시 (Latency) |
|---|---|---|---|
| 카드 분석 | Gemma 4 + Vision OCR | 하이브리드 | 5~15초 |
| 프리셋 질문 (5종) | Swift 코드 → DB 집계 | 100% | 즉시 |
| 자유 질문 | Gemma 4 스트리밍 | 베스트 에포트 (Best Effort) | 3~10초 |
프리셋 질문(부상자 트리아지, 물자 추정, 요배려자 목록 등)은 AI를 거치지 않고, Swift 코드로 데이터베이스에서 직접 생성한다. 100% 정확하며 즉시 응답한다. 자유 질문만을 Gemma 4로 보낸다.
모델의 한계를 받아들인 상태에서, 각 쿼리를 최적의 시스템으로 분배한다. 이것이 2B 모델로도 실용을 견딜 수 있는 앱을 만드는 열쇠였다.
AI가 작성한 코드, 인간이 담은 의미
ShelterAI 코드의 상당 부분은 AI가 작성했다. 38개 파일, 6,326행. 나 혼자서 일주일 만에 쓸 수 있는 양이 아니다.
하지만, 무엇을 만들 것인가를 결정한 것은 인간이다.
「오프라인에서 작동할 것」을 결정한 것은 나다. 「종이를 부정하지 않을 것」을 결정한 것도 나다. 「Apache 2.0으로 공개할 것」을 결정한 것도 나다. CSV 내보내기(Export) 기능이 「행정 기관으로의 인계」를 위해 존재한다는 점도, 동의 화면을 매번 표시하는 것도, 테스트 모드의 데이터가 앱 종료 시 삭제되는 것도 모두 마찬가지다.
AI는 「어떻게 만들 것인가(How to build)」를 가속해 준다. 하지만 「무엇을 만들 것인가(What to build)」와 「왜 만드는가(Why to build)」는 인간만이 결정할 수 있다.
재난 대책은 커먼즈(Commons)에 속한다
ShelterAI는 Apache 2.0 라이선스로 릴리스한다.
이것은 비즈니스 모델이 아니다. 엔지니어로서의 기도다.
필리핀의 지자체가, 터키의 NGO가, 혹은 어느 봉사 팀이 이 코드를 포크(Fork)하여 자신들 국가의 ID 카드에 대응시키고, 자신들의 피난소에 배포(Deploy)할 수 있도록. 허가도, 품의서도, 구매 절차도 필요 없게끔.
만약 어느 피난소에서 이 코드의 후손이 단 한 명이라도 더 빨리 피난자를 등록할 수 있다면. 부상자를 가장 빠르게 식별할 수 있다면. 밤이 오기 전에 담요의 수를 셀 수 있다면.
그것으로 충분하다.
AI로 앱을 만들 수 있는 시대에
AI가 코드를 작성한다. 디자인도 한다. 테스트도 작성한다. 배포(Deploy)까지 도와준다.
그렇기에 묻고 싶다.
그 힘으로, 무엇을 만들 것인가?
기존에 있는 것의 재탕인가? 아니면, 아직 세상에 없는 것인가?
나의 답은 ShelterAI였다. 다음은 당신의 차례다.
인터넷도, 예산도, 시간도 없는 긴급 상황을 위해.
Built for emergencies with no internet, no budget, and no time.
AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기