개발자에서 문제 해결자로 : ChatGPT 이용해서 MVP(영어 낭독 평가 시스템) 정의하기

든든한 항해사 · Claude Code MVP 공장 · · 좋아요 0 · 답글 0

연재 Claude Code MVP 공장 시즌 3 5/12편

개발자에서 문제 해결자로

🌱 1. 숙제 제출 단계

학생의 숙제 제출 방식은 두 가지입니다.

  • 방식 1: 자동 제출 (구글 드라이브 이용)
    학생이 개인 구글 드라이브의 지정된 폴더에 숙제(책 이미지, MP3)를 업로드하면,
    n8n 자동화 워크플로우가 이를 자동으로 감지하고 MVP 시스템(Spring API)으로 파일을 전송합니다.

  • 방식 2: 수동 제출 (MVP 웹앱 직접 제출)
    학생은 MVP 웹앱(Vue.js)에 접속하여 직접 숙제 제목과 파일(책 이미지, MP3)을 업로드합니다.

제출 완료 후, 학생은 즉시 이메일 및 카카오톡으로 숙제 제출 확인 알림을 받습니다.

⚙️ 2. 자동 평가 단계

MVP 시스템(Spring 기반)은 학생이 제출한 파일을 자동으로 평가합니다.

  • OCR 처리

    • 책 페이지 이미지에서 텍스트 추출 (Tesseract OCR 활용)

  • 음성 인식

    • MP3 음성 파일에서 텍스트로 변환 (Whisper API or Google Speech-to-Text API 활용)

  • 낭독 정확성 평가

    • OCR 추출 텍스트와 음성 인식 텍스트를 비교하여 정확도를 점수로 산출 (Levenshtein Distance)

  • 발음 정확도 평가

    • 음성 인식 시 제공되는 confidence 점수를 기준으로 발음 정확도 점수를 산출

  • 문장 인토네이션 평가

    • 음성 분석(openSMILE, Praat 등 활용)을 통해 자연스러운 억양과의 유사성 점수를 산출

🔍 3. 중복 제출 감지 단계

  • MVP 시스템은 음성 파일의 특징 벡터(MFCC)를 추출하고, 과거 제출된 음성 파일과 코사인 유사도를 계산하여 중복 여부를 자동으로 판단합니다.

  • 중복 제출로 판단될 경우 학생과 선생님에게 즉시 이메일과 카카오톡으로 경고 알림을 전송합니다.

📩 4. 자동 평가 완료 및 알림 단계

  • 평가 완료 시, 평가 결과(정확도, 발음, 인토네이션 점수)를 MVP 시스템에서 n8n으로 전송합니다.

  • n8n은 학생에게 평가 완료 알림을 이메일과 카카오톡으로 즉시 발송합니다.

알림 예시

  • 이메일:

    제목: [낭독 숙제 평가 완료 📚]
    안녕하세요, [학생 이름]님!
    
    숙제 "[숙제 제목]" 평가 결과입니다.
    - 텍스트 정확도: 94%
    - 발음 정확도: 90%
    - 인토네이션 점수: 85%
    
    피드백:
    - "단어 'practice'의 발음에 주의하세요."
    - "문장 끝에서 인토네이션을 좀 더 강조해 보세요."
    
    상세 결과는 MVP 웹앱에서 확인하세요.
    
  • 카카오톡:

    [평가 완료 🎉]
    "[숙제 제목]" 숙제 평가 완료!
    정확도: 94%, 발음: 90%, 인토네이션: 85%
    자세한 결과는 MVP 웹앱에서 확인하세요.
    

📝 5. 평가 결과 확인 및 피드백 단계

  • 학생은 MVP 웹앱에서 개인 대시보드를 통해 상세 평가 결과와 자동 생성된 피드백을 즉시 확인합니다.

  • 선생님은 전체 학생의 평가 결과를 실시간으로 확인할 수 있으며, 시스템 평가를 바탕으로 추가적인 수동 피드백을 제공할 수 있습니다.

🚨 6. 평가 결과 재검토 요청 단계

  • 학생이 평가 결과에 의문이나 이의가 있을 때는 MVP 웹앱을 통해 선생님에게 재검토를 요청할 수 있습니다.

  • 재검토 요청이 접수되면 선생님은 즉시 이메일과 카카오톡으로 알림을 받습니다.

  • 선생님은 평가 결과를 확인하고 필요에 따라 평가 점수를 수동으로 조정한 후, 학생에게 최종 피드백과 결과를 다시 전달합니다.

📈 7. 학습 이력 관리 및 학습 분석 단계

  • 학생은 MVP 웹앱에서 개인화된 학습 이력과 점수 변화 추이를 확인하고, 본인의 학습 방향을 스스로 점검하고 개선합니다.

  • 선생님은 학생들의 학습 이력과 평가 추이를 분석하여 맞춤형 학습 지도 계획을 수립하고 실행합니다.

🎯 상세 흐름도 (학생, MVP, n8n, 선생님 액터)

단계

학생 (Student)

MVP (Spring+Vue.js)

n8n 자동화

선생님 (Teacher)

① 숙제 제출

- 숙제 사진과 MP3 파일을 구글 드라이브 폴더 업로드
- 또는 MVP 웹앱에서 직접 업로드

- 웹앱 업로드 파일 수신 및 저장

- 구글 드라이브에서 파일을 감지하여 MVP 서버로 전송 (자동제출 처리)

- 학생 숙제 제출 현황을 실시간으로 확인

② 제출 확인 알림

- 숙제 제출 완료 알림 수신(이메일, 카톡)

- 제출 완료 후 n8n Webhook 호출하여 알림 요청

- 제출 완료 시 즉시 이메일 및 카카오톡 알림 발송 처리

- (필요 시) 미제출 학생을 확인하여 별도 독려 메시지 전달 가능

③ OCR 및 음성 자동 평가

- (대기)

- 제출된 이미지 OCR로 텍스트 변환
- MP3 파일 음성→텍스트 변환
- OCR 결과와 음성 텍스트 비교하여 정확도 평가, 발음 점수 및 인토네이션 평가 수행

- (대기)

- (대기)

④ 중복 제출 여부 분석

- (대기)

- 음성 파일 분석 후 이전 제출 음성과 MFCC 벡터 유사도 기반 중복 여부 확인

- (대기)

- 중복 여부를 실시간으로 확인하여 부정행위 탐지

⑤ 자동 평가 완료 알림

- 평가 결과 알림을 이메일, 카카오톡으로 수신

- 평가 완료 후 n8n으로 평가 결과 전송(Webhook 호출)

- 평가 완료 결과를 이메일 및 카카오톡으로 즉시 발송 처리

- 학생별 평가 완료 상황을 웹 대시보드에서 확인

⑥ 평가 결과 확인 및 피드백 제공

- MVP 웹앱에서 상세 평가 결과 및 자동 피드백 확인

- 평가 결과 및 피드백 데이터를 웹앱을 통해 제공

- (대기)

- 자동 평가 결과 검토 후 추가 수동 피드백 제공 가능

⑦ 평가 결과 재검토 요청

- 평가 결과에 의문 시 MVP 웹앱에서 선생님에게 재검토 요청 제출

- 재검토 요청을 접수하여 선생님에게 전달

- 재검토 요청 접수 시 이메일 및 카카오톡 즉시 알림 처리

- 재검토 요청 접수 후 평가 내용을 확인 및 수동 수정 후 최종 결과 전달

⑧ 학습 이력 분석 및 관리

- MVP 웹앱에서 평가 이력 및 학습 추이를 확인하여 자기주도 학습 수행

- 학생별 평가 데이터를 관리하여 학습 이력 및 학습 추이 정보 제공

- 정기적으로 학습 진행 현황을 종합하여 알림 및 리포트를 자동 발송

- 학생들의 학습 진행 상황 분석 후 맞춤형 지도를 계획하고 제공

🚩 최종 사용자 시나리오 액터별 역할 요약

액터

역할 및 주요 작업

🎓 학생

숙제 제출(자동 또는 수동), 평가 결과 및 피드백 확인, 평가 재검토 요청, 학습 이력 관리

💻 MVP 시스템(Spring + Vue.js)

숙제 처리 및 평가 자동화, 평가 결과 관리, 학생 및 선생님 대시보드 관리

🔄 n8n 자동화

자동 제출 파일 전송(구글 드라이브), 평가 완료 시 자동 알림 발송(이메일, 카카오톡), 재검토 요청 및 중복 감지 알림

👩‍🏫 선생님

숙제 제출 및 평가 현황 확인, 평가 재검토 요청 처리, 추가 수동 피드백 제공, 학습 분석 및 맞춤형 학습 지도

이 최종 시나리오를 통해 MVP 『영어 낭독 평가 시스템』이 학생과 선생님 모두에게 실질적인 편리함과 교육적 가치를 제공하고, 학습 효율성과 정확성을 크게 개선할 수 있습니다.

================================

결과와 배운 점

👨‍💻 개발자로서 저는 자주 시간 부족을 핑게로 설계보다는 바로 코딩부터 하는 습관이 있었는데, 이번 경험을 통해 문제를 정의하고, 사고의 흐름을 설계하는 것을 AI에게 위임하여 도움받는 것이 엄청 효율적이라는걸 새삼 느꼈습니다.

ChatGPT는 단순히 답을 주는 게 아니라, 내가 깊이 생각하지 못한 지점까지 끌어내주는 동료 같았어요.
놓칠 수 있는 부분을 알려주어 도움이 많이 되었습니다.

ToDo

 시나리오 중 상세흐름도에서, 개발에 익숙하지 않은 부분부터 AI의 도움을 받아 하나 하나씩 만들어 나가기

================================

읽어주셔서 감사합니다.

태그: #CTO