← 포트폴리오 목록

수학 손글씨 풀이 AI 진단 학습 서비스

본 프로젝트의 요구사항(손글씨 풀이 촬영, 멀티모달 AI 진단, 단계적 힌트, 재풀이 재평가, 교사 확인 대상 분류)을 기반으로 직접 구현하는 프로젝트입니다.

프로젝트 납품 요약

아래 프로젝트 개요와 핵심 기능에서 구현 화면을 확인할 수 있습니다.

서비스 타입Web
업종AI 서비스
기술 스택
ReactTypeScriptNode.jsExpressFirebase FirestoreFirebase StorageVercelTailwind CSS멀티모달 AI API
주요 기능
  • 풀이 촬영·업로드
  • AI 진단·단계 힌트
  • 재풀이·재평가
  • 교사 확인 대상 분류

프로젝트 개요

범위: 개발, 디자인, 기획

본 프로젝트의 요구사항(손글씨 풀이 촬영, 멀티모달 AI 진단, 단계적 힌트, 재풀이 재평가, 교사 확인 대상 분류)을 기반으로 직접 구현하는 프로젝트입니다. 학생은 모바일 웹에서 풀이를 촬영하고 진단 피드를 시간순으로 확인했습니다.

작업 범위

  • 풀이 촬영·업로드: 학생이 모바일 웹에서 교재 풀이를 촬영해 올리면 이미지 상태를 확인하고 진단 피드에 새 풀이가 쌓이는 화면입니다
  • AI 진단·단계 힌트: AI가 풀이 중 틀린 지점과 오개념 유형을 표시하고, 정답을 바로 주지 않고 단계별 힌트를 한 겹씩 열어 주는 화면입니다
  • 재풀이·재평가: 힌트를 본 학생이 다시 풀이를 촬영해 올리면 이전 풀이와 나란히 비교하고 재평가 결과를 보여주는 화면입니다
  • 교사 확인 대상 분류: AI 진단과 독립 풀이 결과가 어긋나거나 신뢰도가 낮은 건을 교사 확인 대상으로 분류해 사유와 함께 보여주는 화면입니다

주요 업무

  • 풀이 촬영·업로드 화면: 촬영 이미지의 해상도·기울기·밝기를 검사한 뒤 Firebase Storage에 올리고, 멀티모달 AI API 분석 요청을 비동기로 등록합니다
  • AI 진단·단계 힌트 화면: 멀티모달 AI API에 풀이 이미지와 문제 메타를 전달해 줄 단위 인식 결과, 오류 지점, 오개념 분류를 구조화 JSON으로 받고 힌트를 3단계로 나눠 노출합니다
  • 재풀이·재평가 화면: 재풀이를 같은 문제 스레드에 연결해 시도 이력으로 저장하고, 이전 오류 지점의 해소 여부를 AI가 항목별로 다시 판정합니다
  • 교사 확인 대상 분류 화면: 같은 문제를 별도 프롬프트로 독립 풀이시켜 진단 결과와 비교하고, 불일치·저신뢰 조건을 규칙 엔진으로 판정해 확인 대기열에 올립니다
수학 손글씨 풀이 AI 진단 학습 서비스
요구사항 정의

프로젝트 핵심 과제

프로젝트 진행 시 해결한 핵심 기술 과제입니다.

손글씨 필기체와 수식 기호를 줄 단위로 읽어야 하므로 표본 풀이 이미지를 추가로 확보해 인식 기준을 검증하는 절차 설계

AI 진단이 틀렸을 때 학생에게 잘못된 오개념 라벨이 보이지 않

확정 전 상태 표시 정책 설계 필요

힌트가 정답을 우회 노출하지 않

단계별 프롬프트 제약과 응답 후처리 규칙 설계 필요

미성년 학생 사진과 풀이 기록을 익명 학생 코드 기준으로만 연결하는 저장 구조와 접근 규칙 설계

구현 내용

핵심 기능 상세

핵심 기능 1

풀이 촬영·업로드

학생이 모바일 웹에서 교재 풀이를 촬영해 올리면 이미지 상태를 확인하고 진단 피드에 새 풀이가 쌓이는 화면입니다.

  • 브라우저 카메라 입력과 Canvas 기반 기울기 보정·리사이즈 전처리 적용
  • Firebase Storage 업로드 진행률 표시와 재시도 큐 구성
  • Firestore 실시간 구독으로 분석 상태를 피드 카드에 반영

촬영 품질 검사와 업로드, 분석 요청을 분리된 단계로 설계해 흐릿한 사진이 AI 진단까지 전달되지 않는 구조를 구현합니다.

풀이 촬영·업로드
풀이 촬영·업로드 실제 화면
핵심 기능 2

AI 진단·단계 힌트

AI가 풀이 중 틀린 지점과 오개념 유형을 표시하고, 정답을 바로 주지 않고 단계별 힌트를 한 겹씩 열어 주는 화면입니다.

  • 프롬프트 템플릿과 JSON 스키마 검증으로 줄 단위 인식·오류 지점·오개념 분류 응답 정규화
  • 힌트 단계 상태를 Firestore에 저장해 학생별 열람 단계 추적
  • 풀이 이미지 위 오류 지점 오버레이를 SVG 좌표로 렌더링

AI 응답을 스키마로 검증한 뒤 힌트를 단계별로 잠그는 구조로, 정답 노출 없이 학생의 사고를 유도하는 흐름을 구현합니다.

AI 진단·단계 힌트
AI 진단·단계 힌트 실제 화면
핵심 기능 3

재풀이·재평가

힌트를 본 학생이 다시 풀이를 촬영해 올리면 이전 풀이와 나란히 비교하고 재평가 결과를 보여주는 화면입니다.

  • 문제별 시도 이력을 Firestore 하위 컬렉션으로 모델링
  • 이전 진단 JSON과 재풀이 인식 결과를 항목 단위로 비교하는 판정 로직 구현
  • 시도 간 변화를 타임라인 카드로 표시하는 피드 컴포넌트 구성

재풀이를 새 건이 아니라 같은 문제 스레드의 다음 시도로 연결해 오류 해소 여부가 이력으로 이어지는 데이터 구조를 설계합니다.

재풀이·재평가
재풀이·재평가 실제 화면
핵심 기능 4

교사 확인 대상 분류

AI 진단과 독립 풀이 결과가 어긋나거나 신뢰도가 낮은 건을 교사 확인 대상으로 분류해 사유와 함께 보여주는 화면입니다.

  • 독립 풀이 호출과 진단 호출을 병렬 실행하고 결과를 정규화해 비교
  • 불일치·저신뢰도·인식 불확실 3가지 규칙으로 확인 대상 플래그 판정
  • 확인 대상 사유 코드를 Firestore 문서에 기록하고 필터 칩으로 노출

AI가 확신하지 못하는 건을 학생에게 단정해서 보여주지 않고 교사 확인 흐름으로 넘기는 판정 규칙을 구현합니다.

교사 확인 대상 분류
교사 확인 대상 분류 실제 화면
구현 과정

프로젝트 진행 단계

STEP 1

풀이 데이터 모델과 이미지 전처리 설계 · 2026.10

문제·시도·진단 컬렉션 구조 설계, 촬영 이미지 품질 검사와 업로드 흐름 정의

STEP 2

멀티모달 AI 진단 파이프라인 구현 · 2026.10

풀이 인식·오개념 분류 프롬프트와 JSON 스키마 검증, 단계 힌트 생성 API 구현

STEP 3

학생 모바일 피드 화면 구현 · 2026.10

촬영·진단 피드·힌트·재풀이 화면 구현, 실시간 구독 기반 상태 갱신 적용

STEP 4

교차검증과 확인 대상 규칙 구현 · 2026.10

독립 풀이 비교와 저신뢰 판정 규칙, 확인 대기열 구조 구현

개발 결과

풀이 이미지 품질 검사 흐름 설계기울기·밝기·해상도 검사와 Canvas 전처리를 업로드 앞단에 배치해 AI 호출 전 재촬영을 안내하는 구조를 구현합니다
AI 응답 스키마 검증 계층 구축진단 JSON을 스키마로 검증하고 실패 시 재요청 큐로 보내는 계층을 설계해 화면에 비정상 응답이 닿지 않게 합니다
단계 잠금형 힌트 구조 구현힌트 3단계를 순서대로만 열고 열람 단계를 기록하는 상태 모델을 설계해 정답 직접 노출을 막습니다
독립 풀이 교차검증 판정 규칙 설계진단과 독립 풀이 불일치, 저신뢰, 인식 불확실 3가지 규칙으로 교사 확인 대상을 분류하는 로직을 구현합니다

기술적 주안점

  • 촬영 품질 검사와 업로드, 분석 요청을 분리된 단계로 설계해 흐릿한 사진이 AI 진단까지 전달되지 않는 구조를 구현합니다
  • AI 응답을 스키마로 검증한 뒤 힌트를 단계별로 잠그는 구조로, 정답 노출 없이 학생의 사고를 유도하는 흐름을 구현합니다
  • 재풀이를 새 건이 아니라 같은 문제 스레드의 다음 시도로 연결해 오류 해소 여부가 이력으로 이어지는 데이터 구조를 설계합니다

유사한 프로젝트를 기획하고 계신가요?

필요한 기능과 일정을 알려주시면 개발 범위를 함께 정리하겠습니다.

프로젝트 문의