[SQL/캡스톤디자인] 데이터베이스 과제 7주차
데이터베이스 7주차 [발표준비]
이번 주차엔, PPT자료준비 및 frontend 기능설계를 고민하였다. PPT자료준비에선 목차,프로젝트개요,사용자 요구사항정의,시스템아키텍처,기대효과및확장성,개발일정,QA순으로 구성하였으며, 조 회의에서 나왔던 사용자 요구사항정의와 사용자페르소나를 기준으로 PPT를 제작하였다. 프로젝트 개요에선 우리가 왜 이프로젝트를 구성하게 되었는지를 설명하였고, 앞으로 어떤 기준으로 개발을 진행할것인지 우리의 구상을 보여 주도록 노력하였다. 기능적 요구사항에서는 사용자를 기준으로 정의를 하였고, 각 기본테스트 제공 학습계획 자동생성,퀴즈와 실습제공,학습진행률 시각화,AI피드백,다음학습 추천등을 구성하였다. 비기능적요구서항에서는 사용자가 이용하기 쉬운 UI/UX를 제공하는 것, JS를 통하여 반응형 디자인을 제공하는 것, 데이터를 안전하게 보관 및 빠른 react속도를 보여주는것이며, 제작자에게 있어선 유지보수성이 좋아야한다. 사용자페르소나에서는 사용자의 타입을 임시로 구성하여, 어떻게 사용할것인지 시나리오로 보여주는 것이다. 옆에는 예시사진이다. 사용자의 활용방식까지 보여줌으로써, 우리가 어떻게 설계를 진행해야할지를 보여줄 수 있다.
초기 시스템 개발 시나리오에선, 사용자의 초기 사용 방법 유도를 고안해내는것인데, 우리 조에서는 회원가입 -> 학습 분야 추천 -> 분야 선정 -> 수준 평가 -> 취약점 분석 -> 수준 파악 -> 학습 목표, 기간 설정 -> 목표 기간에에 따른 계획표 추천 -> 보완 기능을 통한 사용자 맞춤화 -> AI와의 질의응답 및 노트같은 공간을 통한 정리 학습 -> 수시로 점검하여 피드백, 퀴즈생성 -> 성취도분석 -> 중간, 최종평가 -> 학습 방향 추천이 있다.
시스템 아키텍처의 순서로는 유저가 입력을 넣으면 FrontEnd에서 js로 js에서 반응하여 bakcend로 수신호 전달을 한다. backend에서 응답하여 db를 접근해 정보를 저장하거나 AI의 생각을 유도해낸다.후에 백엔드에서 반응을 통하여 Frontend에서 사용자에게 보여주는 순서로 가는 것이다. 사용자 기대효과는 최적화된 플랜을 생성, 자기주도 학습 습관을 형성시켜주고, 자기 관리를 철저히 할수 있게 도와주는 것을 기대할 수 있다. 학습 동기 부여 및 지속성이 향상 될것이고, 매일 알람을 통하여 학습응원 및 평가 제공을 도와줄 수 있다. 시스템적 기대효과는 학습루프를 구현할수 있고 최적화된 경로를 제공, AI의 실시간 피드백 오답분석 복습추천을 유도가능하고, 웹기반 접근성이기에, 스마트폰으로도 웹으로 접근한다면 어디서든 공부를 할수 있다는 것이 특징이다. 확장성 및 수익성에서는 AI 추천 엔진 고도화로 난이도를 자동으로 조절 및 커리큘럼을 추천할 수 있고, 고급 코드리뷰 또는 언어 첨삭이 가능하다. B2B 교육기관에 연계가 가능하여 적절한 수익성을 발생시킬 수 있다. 모바일 앱으로 확장하여 수익성 및 대중성을 높일 수 있고, 지금은 영어와 코딩으로 한정되어있지만, 추후 다른 영역까지로 넓힐 수 있다.
FrontEnd의 기능설계에서는 UI를 먼저 고민해볼 수 있었다. 예를들면, 처음 접근하면 회원가입 or 로그인을 선택할 수 있도록 유도를 해야하고, 거기서도 아이디 있습니까? 비밀번호를 잊었을 때?를 고려해야 한다. 또, 페이지에 들어가면 어ᄄᅠᆫ 버튼을 구성해야하며, 우리가 사용했을 때 불편함이 없을지에 대해 고민을 해보았다.
DB에서는 지난주차에서 한내용에 이어, 이번주차는 예외처리에 집중을 해보았다. 로그 저장 중 MongoDB 연결 실패 또는 데이터 형식 오류 등 예외 처리를 위해 try-except블록을 구성하였다. Flask Blueprint 내에서 삽입 오류가 발생하면 JSON으로 에러 메시지를 반환하도록 하여 디버깅이 용이하도록 설계하였다.
사용자 활동 로그 외에,향후 ai기반 피드백 데이터를 별도 컬렉션에 저장할 수 있도록 구조를 설계하였다. 학습자별 피드백 흐름을 분리관리함으로써 분석 효율성과 시스템 분리를 동시에 확보하는데 목적이 있었다. 단일 요청에서 두 DB가 동시에 관여되는 경우를 대비해, MySQL 성공 후 MongoDB 실패 시 해당 로그를 큐에 따로 적재하거나, 실패 내역을 error_logs에 보관하여 후처리하는 전략도 고려하였다.RQ를 이용한 큐 구조를 실험하기 위해, Flask 앱에서 큐 등록 및 백그라운드 워커 실행 구조를 정리하였다. 학습 로그 삽입을 태스크로 만들어 큐에 적재한 뒤, 워커에서 MongoDB에 저장하도록 하는 실험을 차주에 시도할 예정이다.MongoDB 라우트 테스트 결과, 정상적인 요청 시 로그가 JSON 형태로 반환되었고, 누락 필드로 인한 잘못된 POST 요청은 400 에러로 응답되었다. 이는 기본적인 라우트의 안정성 확보 단계로 판단된다.
안녕하세요, 캡스톤디자인 9조 EduMatrix AI 팀입니다. 저희는 AI 기반 학습 지원 시스템 EduMatrix AI를 개발하고 있으며, 오늘 발표에서는 아래 순서로 진행하겠습니다.
- 프로젝트 개요
- 사용자 요구사항 정의
- 사용자 페르소나
- 초기 시스템 시나리오
- 시스템 아키텍처
- 기대 효과 및 확장성
- 개발 일정
- Q&A
1. 프로젝트 개요
EduMatrix AI는 다양한 배경과 목표를 가진 학습자들이 AI를 통해 개인 맞춤형 학습 계획과 피드백을 받을 수 있도록 돕는 학습 비서 시스템입니다.
- 사용자의 학습 성향과 수준을 진단 테스트로 분석하고,
- 진단 결과를 바탕으로 주차별 맞춤형 학습 계획을 자동 생성하며,
- 주기적으로 퀴즈와 실습을 제공해 이해도를 점검합니다.
아울러 AI 피드백과 성과 리포트를 통해 자기주도 학습을 강화하는 것을 목표로 합니다.
2. 사용자 요구사항 정의
기능적 요구사항은 총 8가지로 구성했습니다:
- 진단 테스트 제공
- 맞춤형 학습 계획 자동 생성
- 퀴즈 및 실습 제공
- 학습 진행률 시각화
- AI 피드백 제공
- 성과 리포트 및 다음 학습 추천
- 사용자 설정 저장
- 사용자 유형별 콘텐츠 대응
비기능적 요구사항으로는:
- 쉬운 접근성 및 직관적인 UI
- 반응형 디자인
- 안정적이고 일관된 데이터 저장
- 빠른 읽기/쓰기 속도
- 최소한의 개인정보 수집·보호
- 모듈화된 구조로 유지보수 용이성 확보
3. 사용자 페르소나
정세훈(34세)
- 비전공 백엔드 개발 입문자
- 꾸준히 코딩 문제를 풀지만 실력 정체를 느낌
- 니즈: 매일 난이도 조절된 문제 추천, 코드 리뷰 피드백, 주간 복습 퀴즈
김소영(27세)
- 무역회사 근무자
- 영어 회화 및 비즈니스 이메일 능력 향상 희망
- 니즈: 매일 모의시험, 문법 피드백, 오답 기반 변형문제 제공
이처럼 각기 다른 목표와 배경을 반영해 맞춤형 서비스를 설계했습니다.
4. 초기 시스템 시나리오
- 사용자 회원가입 및 관심 학습 분야 조사
- 진단 테스트를 통해 실력과 취약점 분석
- 학습 목표와 기간 설정
- 진단 결과 기반 맞춤형 학습 계획 추천
- 사용자가 계획표 수정·보완
- AI 어시스턴트 질의응답 및 개인 학습 공간 제공
- 실습·퀴즈 생성 및 중간·최종 평가
- 성과 리포트 및 차후 학습 방향 추천
5. 시스템 아키텍처
- Frontend: HTML, CSS, JavaScript 기반 UI/UX 구현 (진단 테스트, 퀴즈 응시, 피드백 확인 등)
- Backend: Flask 기반 API 서버로 진단 분석, 계획 생성, 퀴즈 채점, 피드백 로직 담당
- Database: MySQL(RDBMS)과 MongoDB(NoSQL) 병행 사용
- 사용자 기본 데이터: MySQL 저장
- 학습 로그·피드백 기록: MongoDB 저장, 인덱싱 전략으로 효율적 조회 지원
두 DB는 독립 관리하며, user_id를 기준으로 연동해 데이터 일관성을 유지합니다.
6. 기대 효과 및 확장성
기대 효과
- 맞춤형 학습 경험 제공
- 자기주도 학습 습관 형성 (달력 기반 자동 체크)
- 실시간 AI 피드백으로 동기 부여 및 지속 학습 유도
- MongoDB 로그를 통한 학습 이력 및 성장 추적
향후 확장 방향
- AI 추천 엔진 고도화 (행동 로그 기반 난이도·커리큘럼 최적화)
- B2B·교육기관 연계 및 관리자 대시보드
- 콘텐츠 분야 다양화 (영어, 코딩 외 자격증 등)
- 모바일 앱 개발 (Flutter/React Native)
- AI 로그 분석 기반 대시보드 구현
7. 개발 일정
- 3~6월: 팀 구성, 주제 선정, 기존 시스템 분석, 기술 학습, 기능 설계, UI/UX·DB 설계 완료
- 9~12월: UI/UX·DB 구현, 기능 통합 및 디버깅, 최종 보고서 작성
8. Q&A
이상으로 발표를 마치겠습니다. 질문 있으시면 편하게 해주시기 바랍니다. 감사합니다.