AI 활용

학교 손글씨 알림장을 촬영해서 AI에게 읽히고, 집 디스플레이에 반영하는 구조

학교 손글씨 알림장을 촬영해서 AI에게 읽히고, 집 디스플레이에 반영하는 구조

Photo: rawpixel (CC0 1.0) via rawpixel

안녕하세요, まさきん입니다.

아이가 학교에서 가져오는 알림장은 손글씨입니다. 게다가 글씨체가 독특해서 해독하는 데 시간이 걸리기도 합니다.

이 “해독해서 가족에게 전달한다”는 부분을 AI에게 맡기는 구조를 만들었습니다. 이번에는 이미지 전처리부터 화면 갱신까지 실제 절차로 소개합니다.

계기는 “다시 보는 타이밍이 엇갈린다”는 것

알림장은 아이가 책가방에서 꺼내주지 않으면 존재를 알 수 없습니다. 알아차렸을 때는 이미 저녁이 되어 있기도 합니다.

가족 중 누구든 언제든 볼 수 있는 곳에 내용을 반영해두고 싶다. 그렇게 생각해서 거실에 놓은 디스플레이에 알림장 내용을 띄우는 구조를 만들었습니다.

구조의 흐름

하고 있는 일은 다음 4단계입니다.

  1. 알림장 페이지를 스마트폰으로 촬영한다
  2. 이미지의 방향을 보정한다(세로쓰기 사진은 바로 서 있지 않은 경우가 있기 때문)
  3. AI에게 텍스트 변환을 요청한다
  4. 결과를 데이터에 기록하고 디스플레이 화면을 갱신한다

촬영부터 화면 갱신까지, 사람 손을 거치는 것은 “찍는” 부분뿐입니다. 이후 과정은 자동으로 흐르는 설계입니다.

촬영한 이미지를 읽을 수 있는 형태로 정리한다

아이폰으로 찍은 사진은 그대로면 AI가 방향을 잘못 인식하는 경우가 있습니다. 특히 HEIC 형식은 표준적인 이미지 뷰어로는 열리지만, AI의 이미지 인식 도구가 대응하지 않는 경우가 있습니다.

그래서 먼저 JPEG로 변환하면서 방향을 맞춥니다. Mac이라면 표준 탑재된 sips 명령으로 끝낼 수 있습니다.

# HEIC를 JPEG로 변환
sips -s format jpeg IMG_xxxx.HEIC --out notice.jpg

# 세로쓰기가 가로로 보일 때는 시계 방향으로 90도 회전
sips -r 90 notice.jpg --out notice_rot.jpg

한 번 변환한 이미지를 확인하고, 방향이 다르면 다시 90도를 더하거나 180도로 뒤집습니다. 몇 장 시도해서 감을 잡으면, 이후는 같은 변환을 스크립트화해두는 것으로 끝납니다.

또한 전체 이미지 그대로면 글자가 작아서 판독하기 어려우므로, PIL(Pillow)로 글자가 몰려 있는 영역을 잘라낸 다음 읽히고 있습니다.

from PIL import Image

im = Image.open("notice_rot.jpg")
# 중앙의 글자 영역을 잘라낸다(실제 프린트 크기에 맞춰 조정한다)
im.crop((1300, 500, 3100, 2800)).save("zoom_main.jpg", quality=95)

전체를 넘기는 것보다 글자가 몰려 있는 범위만 확대해서 넘기는 쪽이, AI의 판독 정확도가 확실히 올라갑니다.

손글씨를 대하는 방식

여기가 가장 신경 쓰는 부분입니다. 아이의 글씨는 어른의 글씨보다 특이합니다. AI에게 읽혀도 100% 정확하게 읽힌다는 보장은 없습니다.

그래서 AI에게 주는 지시에 다음 한 문장을 반드시 넣고 있습니다.

이것은 아이의 손글씨 알림장입니다. 글자를 읽기 어려운 부분이 있어도
추측으로 채우지 말아주세요. 자신 있게 읽을 수 있는 부분만 옮겨 적고,
판독할 수 없는 부분은 "판독 불가"로 표시하고 그 위치도 알 수 있게 해주세요.

추측으로 채우면 잘못된 정보가 가족에게 전달될 위험이 있습니다. “모르겠다”고 솔직하게 답하게 하는 쪽이, 결과적으로 신뢰할 수 있는 구조가 됩니다. 판독하지 못한 부분은 최종적으로 사람이 확인해서 채웁니다.

생각해보면 이 구조는 스마트폰 촬영에서 시작됩니다. 화면 갱신도 결국은 인터넷 통신을 거쳐 완성됩니다. 시작도 끝도 결국 통신에 의존하고 있습니다. 제 계약도 재검토하고 싶어지네요.

가입하지 않아도 100포인트를 받는 요금 시뮬레이션 스마트폰 계약을 재검토하고 싶어진 이야기

누르면 라쿠텐 로그인 페이지가 열립니다. 로그인하면 캠페인 내용이 표시됩니다.

화면에 표시하는 데이터 구성

읽어들인 내용은 단순한 JSON 형식으로 저장하고 있습니다. 디스플레이 쪽 프로그램은 이 파일을 읽어 HTML을 생성하는 구조입니다.

{
  "updated": "2026-09-01T07:30:00+09:00",
  "valid_for": "2026-09-01",
  "schedule": ["9月1日(火曜日)", "1 こくご", "2 さんすう", "3 たいいく", "4 おんがく"],
  "homework": ["かんじの れんしゅう"],
  "items": ["ずこうの どうぐばこ"],
  "notice": []
}

배열의 첫 요소를 제목으로, 그 이후를 “시간 교과”의 형식으로 나열하고 있습니다. 알림이 없는 날은 이 schedule을 통째로 빈 배열로 하고, homeworkitems도 마찬가지로 다룹니다. 촬영을 잊은 날은 이 구조 자체를 null로 되돌리고, 디스플레이 쪽에서는 “알림장을 확인해줘”라는 문구를 표시하도록 하고 있습니다.

“오늘 시간표 중 몇 칸이 채워져 있는가”도 함께 기록하고 있습니다. 이 숫자에 작은 쓸모가 있습니다.

”채워진 칸 수”로 알 수 있는 것

시간표 칸이 전부 채워져 있으면 평범한 하루였다고 알 수 있습니다. 다만 중간까지만 채워진 날이 있습니다.

그런 날은 조퇴나 특별 일정이었을 가능성이 있습니다. 채워진 칸 수가 예상보다 적을 때는 무조건 반영하지 않고 “조기 하교나 반일 일정의 가능성이 있음”으로 두고 확인을 거치도록 하고 있습니다.

알림장의 글자를 읽는 것뿐만 아니라 “정보량 자체”에서도 깨달음을 얻을 수 있는 설계로 하고 있습니다. 이는 텍스트 변환의 정확도와는 다른 이야기로, 은근히 도움이 되는 노하우입니다.

화면 갱신을 어떻게 자동화하고 있는가

JSON을 갱신하면 다음 2단계로 화면에 반영합니다.

  1. JSON을 읽어서 HTML을 다시 생성하는 스크립트를 실행한다
  2. 디스플레이 쪽 브라우저에 다시 불러오기 지시를 보낸다

다시 불러오기 지시는 단순히 페이지를 갱신하는 것만이 아니라 “캐시를 지운다 → 저장 데이터를 지운다 → URL을 다시 불러온다”는 순서로 진행합니다. 브라우저 쪽 캐시가 남아 있으면 스크립트를 다시 실행해도 화면이 오래된 상태로 남는 경우가 있기 때문입니다.

반영이 잘 되었는지는 다음과 같이 확인하고 있습니다.

어느 하나라도 실패하면, 네트워크를 통한 다시 불러오기가 아니라 디스플레이 쪽 앱 자체를 재시작하는 폴백 수단도 준비해두고 있습니다. 화면이 잠깐 어두워지므로 확인이 됐을 때만 쓰는 용도입니다.

화면 쪽의 노하우

디스플레이에는 그날 알림장의 요약만 내고 있습니다. 원문 텍스트를 그대로 표시하면 정보량이 너무 많아서 아무도 안 보게 되기 때문입니다.

정보를 줄임으로써 지나가다 한순간 보는 것만으로 충분하게 하고 있습니다.

해보고 느낀 점

가장 좋았던 점은 “누군가 알아차리기를 기다리는” 상태가 없어진 것입니다. 촬영만 하면 가족 누구든 같은 정보에 접근할 수 있습니다.

한편 AI에게 전부 맡기지는 않습니다. 판독 불가 표시가 나오면 최종적으로는 사람 눈으로 확인합니다. 여기를 생략하면 잘못된 정보가 그대로 가족에게 전달되므로, 그 부분만은 무너뜨리지 않도록 하고 있습니다.

이런 분에게 추천합니다

정리

손글씨 알림장을 AI에게 읽히고, 집 디스플레이에 반영하는 구조를 만들었습니다. 포인트는 AI에게 추측하게 하지 않는 것, 정보를 줄여서 표시하는 것, 그리고 캐시를 확실히 지운 뒤 다시 불러오는 것이라고 느낍니다.

기술적으로 어려운 일을 하고 있는 것은 아닙니다. 다만 이런 작은 구조화의 축적이 매일의 가족 정보 공유를 조금 편하게 해준다고 생각합니다.

스마트폰으로 찍고, 인터넷으로 전달한다. 그것이 이 구조의 근본입니다. 통신 환경을 정비해두는 것도 은근히 효과가 있는 것 같습니다.

가입하지 않아도 100포인트를 받는 요금 시뮬레이션 통신 환경을 정비해두고 싶어진 이야기

누르면 라쿠텐 로그인 페이지가 열립니다. 로그인하면 캠페인 내용이 표시됩니다.

이 글에는 제휴 광고가 포함되어 있습니다. 이 사이트의 링크를 통해 상품·서비스에 신청하시면 제휴사로부터 보상을 받을 수 있습니다. 또한 운영자는 라쿠텐 그룹 소속 직원으로, 사원 추천 프로그램을 통해 보상을 받는 경우가 있습니다. 기사 내용과 평가는 광고 유무와 관계없이 운영자의 실제 경험과 조사를 바탕으로 작성했지만, 위 관계를 이해하신 후 읽어 주시기 바랍니다. 자세한 내용은 면책조항·제휴 링크 안내를 참고해 주세요. 면책조항·제휴 링크 안내

이 글에는 기계 번역이 포함되어 있습니다. 정확한 조건은 라쿠텐 모바일 공식 사이트의 다국어 페이지에서 확인해 주세요.

라쿠텐 모바일의 통신 지역·전파 상황이 궁금하신 분은, 공식 전파 개선·조사 요청 양식 을 통해 문의하실 수 있습니다.

ABOUT THE AUTHOR
まさきん

라쿠텐 그룹 근무·디지털 마케터(FP 자격 보유)

40대 초반, 맞벌이·네 자녀의 아빠. 라쿠텐 그룹에서 디지털 마케터로 근무하면서, 재무설계사(FP) 자격을 활용해 가계 관리와 자산 형성에도 힘쓰고 있다.

프로필 보기

관련 글

RELATED
Grok을 쓰고 싶어서 X Premium에 가입했더니, 테슬라에서도 쓸 수 있게 되어 있던 이야기 AI 활용

Grok을 쓰고 싶어서 X Premium에 가입했더니, 테슬라에서도 쓸 수 있게 되어 있던 이야기

Grok을 쓰고 싶어서 X의 유료 플랜에 가입했습니다. 그런데 마침 같은 시기에 테슬라 차 안에서도 같은 Grok을 쓸 수 있게 되어 있어서 놀랐습니다. 요금 플랜을 고르는 법부터 차 안에서 쓰는 법까지, 직접 확인한 내용을 정리합니다.

2026.09.01 · 읽는 시간 약 3분
말로 전해지는 가족 일정을 AI로 손쉽게 구글 캘린더에 등록하는 방법 AI 활용

말로 전해지는 가족 일정을 AI로 손쉽게 구글 캘린더에 등록하는 방법

가족 라인이나 대화로 들은 "다음 달 운동회는 10/25 9시부터" 같은 일정을, AI에게 말만 하면 구글 캘린더 등록용 링크로 만들어주는 방법을 소개합니다. 스캔이나 앱 설치도 필요 없습니다.

2026.07.10 · 읽는 시간 약 5분
아침 준비 중에 AI에게 한 장의 '오늘의 브리핑'을 만들게 하는 이야기 AI 활용

아침 준비 중에 AI에게 한 장의 '오늘의 브리핑'을 만들게 하는 이야기

일정·메일·채팅을 AI에게 정리시켜, 아침 준비를 하면서 볼 수 있는 한 장의 브리핑을 자동 생성하는 구조를 만들었습니다. 정보를 모으는 방법부터 화면 디자인까지, 그대로 따라할 수 있는 형태로 소개합니다.

2026.06.22 · 읽는 시간 약 6분
라쿠텐 모바일로 전환 시 최대 14,000포인트 가입하지 않아도 100포인트를 받는 요금 시뮬레이션 →
지금 신청하기 →