"매년 바뀌는 복잡한 졸업 요건, AI가 분석해 드립니다."
2020~2025학년도 학제 개편 이력을 완벽하게 반영한 동국대학교 지능형 학사 관리 챗봇 & 플랫폼
"기존의 졸업 계산기와 무엇이 다른가요?"
나도 졸업할래는 단순한 학점 계산기가 아닙니다. 입학년도별로 상이한 학과 명칭 변경(공과대,AI융합,첨단융합), 전공 필수 과목 지정 변경, BSM 학점 변동 등 복잡하게 얽힌 학사 로직을 데이터베이스화하여 해결했습니다.
여기에 DSPy 기반의 AI 에이전트를 결합하여, 단순 조회를 넘어 개인화된 졸업 시뮬레이션과 자연어 상담을 제공합니다.
정보 과잉으로 인해 필요한 내용을 찾기 어려웠던 기존 시스템과 달리, 챗봇을 통해 빠르고 간편하게 조회하며 사용자가 원하는 정보만 선별적으로 얻을 수 있는 시스템입니다.
| 기능 (Use Case) | 설명 (Description) |
|---|---|
| 로그인 | 모든 서비스 이용의 전제 조건입니다. (모든 기능이 이를 Include 함) |
| 이수 내역 조회 | 사용자가 자신의 수강 기록(Transcript)을 조회하는 기능입니다. |
| 공지사항 확인 | 목록으로 공지사항을 확인하고 실제 공지 링크로 연결해주는 기능입니다. |
| 이전 대화 확인 | 과거에 챗봇과 나눴던 대화 히스토리를 불러오는 기능입니다. |
| 메시지 전송 | 챗봇 서비스의 핵심입니다. 사용자가 텍스트를 입력하는 행위입니다. 이 행위는 내부적으로 졸업 요건 계산 / 공지 질문 / 수업 추천 등으로 분기됩니다. |
default.mp4
로그인 후에 메인페이지로 이동됩니다.
사이드바에 학생의 정보, 졸업요건 충족 현황, 공지사항이 담깁니다.
메인 챗봇 페이지에서는 이전 대화 기록을 조회 가능합니다.
default.mp4
챗봇에 '내가 누구야?'와 같이 자연어로 질문하면
사용자의 이름, 학번, 소속, 과정등을 조회하여 알려줍니다.
-.Clipchamp.mp4
사용자의 수강 이력을 조회하여 총 학점 및 영역별 이수 현황을 졸업 요건과 비교 분석하고, 졸업 가능 여부를 진단합니다.
-.Clipchamp.mp4
사용자가 '들을 만한 과목 찾아줘'와 같이 자연어로 질문하면, 수강 가능한 과목들을 추천합니다.
질문에 분야를 넣는다면 의도에 맞게 과목을 선별하여 추천해줍니다.
-.Clipchamp.mp4
사용자가 '취업 관련 공지사항 찾아줘'와 같이 자연어로 질문하면, 해당 분야의 공지 목록과 원문 링크를 재공합니다.
취업뿐만 아니라 장학, 학사 등 다양한 분야의 공지사항을 의도에 맞게 선별하여 조회할 수 있습니다.
-.Clipchamp.mp4
사용자가 수강한 모든 과목을 전공(필수/선택), 교양(필수/일반), MSC 등 이수 구분별로 자동 카테고리화하여 보여줍니다.
각 과목마다 학수번호, 과목명, 학점, 영어 강의 여부 등 필수 메타데이터를 직관적으로 제공합니다.
2.-.Clipchamp.mp4
사용자에게 최신 공지사항과 조회수 상위의 인기 공지를 선별하여 제공합니다.
각 공지의 제목을 클릭하면 해당 학교 홈페이지의 원본 게시글로 즉시 이동하여 상세 내용을 확인할 수 있습니다
| Category | Technology |
|---|---|
| Frontend (React) | 사용자 인터페이스를 담당하며, Vercel을 통해 배포됩니다. 사용자의 요청을 백엔드로 전달하고, 결과를 시각화(게이지바, 채팅창 등)합니다. |
| Backend (Spring Boot) | 시스템의 허브 역할을 합니다. 사용자 인증, 학사 데이터 관리, 비즈니스 로직(졸업 요건 계산 등)을 수행하며, PostgreSQL 데이터베이스와 통신합니다. Cloudtype에 배포되어 운영됩니다. |
| AI Engine (FastAPI) | 지능형 챗봇 기능을 담당합니다. 사용자의 자연어 질문을 이해하고, Spring Boot 서버로부터 필요한 학사 데이터(MCP)를 받아 답변을 생성합니다. 역시 Cloudtype에서 운영됩니다. |
| CI/CD (GitHub Actions) | GitHub에 코드가 푸시되면 자동으로 빌드 및 배포가 이루어지는 파이프라인을 구축하여 개발 효율성을 높였습니다. |
| Category | Technology |
|---|---|
| Frontend | React 19, React Router, CSS Modules |
| Backend | Spring Boot 3.4, Spring Data JPA, QueryDSL |
| AI / ML | Python FastAPI, DSPy, OpenAI GPT-4o |
| Database | PostgreSQL |
| Infra | CloudType |
우리는 복잡한 현실 세계의 학사 행정을 시스템에 녹여내기 위해 다음과 같은 기술적 설계를 도입했습니다.
단순히 학번만으로 졸업 요건을 특정할 수 없는 문제를 해결하기 위해, 4가지 복합 키를 사용하는 정규화된 DB 설계를 적용했습니다.
- Department (소속 단과대/학부: 공과대 → AI융합 → 첨단융합 변천사 반영)
- Major (전공: 컴퓨터공학전공 고정)
- Base Year (입학년도: 학번 앞자리)
- Program Name (트랙: 심화/일반)
기존의 단순 프롬프트 엔지니어링을 넘어, DSPy (Declarative Self-improving Python) 프레임워크를 도입하여 AI의 답변 정확도를 극대화했습니다.
- Router Agent: 사용자 발화의 의도(단순 대화 vs 학사 질문)를 빠르게 분류
- MCP Client: 질문 해결에 필요한 데이터만 백엔드에서 선별적으로 조회하여 Hallucination 방지
- 선수과목(Prerequisite) 로직:
자료구조를 들어야알고리즘을 들을 수 있다는 과목 간의 의존성을 DB화하여 수강 가능 여부를 판별. - 학수번호 매핑: 구 학수번호(
CSE)와 신 학수번호(CSC)를 통합 관리하여 학번과 무관하게 정확한 이수 여부 판단.
| Repository | Description |
|---|---|
| gonnag-back | Core Server. 인증, 졸업 계산 로직, MCP 데이터 제공자 |
| gonnag-front) | User Interface. 반응형 웹 대시보드 및 채팅 인터페이스 |
| gonnag-ai | AI Engine. 의도 분류 및 MCP 기반 답변 생성 |
동국대학교 소프트웨어공학과 졸업프로젝트
| 이름 | 학과 | 역할 | 담당 파트 |
|---|---|---|---|
| 이재혁 | 컴퓨터공학전공 | PM /AI | 프로젝트 매니징, 챗봇 개발 |
| 황윤수 | 컴퓨터AI학부 | Backend | 백엔드 개발 |
| 조수현 | 컴퓨터공학전공 | Backend | 백엔드 개발 |
| 손승현 | 컴퓨터공학전공 | Frontend | 프론트엔드 개발 |
Copyright © 2025 GonnaG. All Rights Reserved.