Skip to content

기능명세서 (Functional Specification)

1. 개요

1.1 시스템 목표

KELI (K-University AI EduTech and Learning Initiative)는 한림대학교 SW 교과목을 위한 AI 기반 코딩 교육 플랫폼으로, 학습자가 별도의 프로그램 설치 없이 웹 브라우저에서 코딩 학습, 자동 채점, AI 피드백, 학습 분석을 수행할 수 있는 통합 교육 환경을 제공합니다.

1.2 대상 사용자

사용자 유형주요 역할예상 규모
학생 (학습자)문제 풀이, 코드 제출, AI 피드백 확인, 학습 이력 조회500~1,000명/학기
교수 (교수자)문제 출제, 강의 관리, 시험 운영, 학습 분석 확인10~30명
관리자시스템 관리, 테넌트 설정, 사용자 관리, 모니터링2~5명

1.3 기술 스택

영역기술비고
FrontendNext.js + React + Monaco Editor웹 기반 IDE, 반응형
BackendNode.js + FastifyREST API, WebSocket
DatabasePostgreSQL + Redis관계형 DB + 캐시/세션
AI/LLMClaude API + OpenAI GPT + LangChain코드 분석, 피드백, 문제 생성
코드 실행Docker Container (격리 실행)C, Python, Java
인프라Docker Compose + GitHub Actions + NginxCI/CD, 리버스 프록시
국제화next-intli18n 표준 방식

2. 시스템 구성도

+-------------------------------------------------------------------+
|                        KELI Platform                               |
+-------------------------------------------------------------------+
|                                                                     |
|  +------------------+    +------------------+    +---------------+  |
|  |   학생 웹 포털    |    |  교수자 웹 포털   |    | 관리자 포털    |  |
|  | - 문제 풀이       |    | - 문제 출제/관리  |    | - 시스템 설정  |  |
|  | - 코드 에디터     |    | - 강의/시험 관리  |    | - 테넌트 관리  |  |
|  | - AI 피드백 확인  |    | - 학습 분석 대시보드|   | - 사용자 관리  |  |
|  | - 학습 이력       |    | - 실시간 모니터링 |    | - 모니터링     |  |
|  | - 수업 속도 평가  |    | - AI 채점 검증   |    |               |  |
|  +--------+---------+    +--------+---------+    +-------+-------+  |
|           |                       |                       |         |
|  +--------+-----------------------+-----------------------+------+  |
|  |                    API Gateway (Fastify)                       |  |
|  |  인증/인가  |  라우팅  |  Rate Limiting  |  WebSocket         |  |
|  +---+----------------+----------------+----------------+--------+  |
|      |                |                |                |           |
|  +---+---+    +-------+------+  +------+-------+  +----+-------+  |
|  | 1.문제 |    | 2.AI 문제    |  | 3.코드 실행  |  | 4.AI 분석  |  |
|  | 은행   |    |   생성       |  |   및 채점    |  |   및 학습  |  |
|  | 관리   |    |   시스템     |  |   시스템     |  |   지원     |  |
|  +---+---+    +-------+------+  +------+-------+  +----+-------+  |
|      |                |                |                |           |
|  +---+---+    +-------+------+  +------+-------+  +----+-------+  |
|  | 5.학습 |    | 6.교수자     |  | 7.클라우드   |  | xAPI/LRS  |  |
|  | 데이터 |    |   학습 관리  |  |   운영 환경  |  | 엔진       |  |
|  | 분석   |    |   시스템     |  |   (Docker)   |  |           |  |
|  +-------+    +--------------+  +--------------+  +-----------+  |
|                                                                     |
|  +---------------------------------------------------------------+  |
|  |                   PostgreSQL Database                          |  |
|  |  문제은행 | 제출이력 | 채점결과 | 학습로그 | 사용자 | 테넌트   |  |
|  +---------------------------------------------------------------+  |
+-------------------------------------------------------------------+

3. 기능 상세 명세

3.1 시스템 환경 (ECR-001 ~ ECR-003)

FN-SYS-001: 시스템 기본 환경 구축

항목내용
기능IDFN-SYS-001
기능명시스템 기본 환경 구축
설명클라우드 기반 운영 환경 구축 (Docker, CI/CD, PostgreSQL, 모니터링)
관련 요구사항ECR-001, ECR-002
우선순위필수
구현 방식Docker Compose 기반 컨테이너 오케스트레이션, GitHub Actions CI/CD, PostgreSQL + Redis, Nginx 리버스 프록시

FN-SYS-002: 보안 아키텍처

항목내용
기능IDFN-SYS-002
기능명다층 방어 보안 아키텍처
설명사용자 인증/인가, 데이터 암호화, 접근 제어, 개인정보 보호 정책 적용
관련 요구사항ECR-003
우선순위필수
구현 방식JWT 기반 인증, RBAC(역할 기반 접근제어), HTTPS, 데이터 암호화(at-rest/in-transit), SQL Injection/XSS 방어, 코드 실행 샌드박스 격리

3.2 공통 기능 (SFR-001 ~ SFR-003)

FN-COM-001: 공통 UI/UX 프레임워크

항목내용
기능IDFN-COM-001
기능명공통 사항 및 UI/UX 프레임워크
설명반응형 웹, 직관적 UI, 접근성 준수
관련 요구사항SFR-001
우선순위필수
구현 방식Next.js App Router, Tailwind CSS, 디자인 시스템 구축, 반응형 레이아웃

FN-COM-002: 사용자 인증 및 계정 관리

항목내용
기능IDFN-COM-002
기능명로그인, 사용자 계정 및 개인정보 관리
설명회원가입/로그인, 역할 기반 접근제어, 개인정보 관리
입력이메일, 비밀번호, 사용자 정보
출력JWT 토큰, 사용자 프로필, 권한 정보
관련 요구사항SFR-002
우선순위필수
구현 방식OAuth 2.0 / 학교 SSO 연동 가능 설계, JWT 인증, 역할(학생/교수/관리자) 기반 라우팅

FN-COM-003: 멀티테넌트 아키텍처

항목내용
기능IDFN-COM-003
기능명멀티테넌트 구축
설명학과/강좌별 독립 테넌트 구성, 데이터 격리
관련 요구사항SFR-003
우선순위필수
구현 방식스키마 기반 테넌트 분리 (PostgreSQL Schema), 테넌트별 설정/데이터 격리, 공유 인프라 위 논리적 분리

3.3 문제은행 시스템 (SFR-004 ~ SFR-005, SFR-021)

FN-QB-001: 코딩 문제은행 구축

항목내용
기능IDFN-QB-001
기능명코딩 문제은행 데이터베이스 구축
설명Python, Java, C 언어 기반 코딩 문제 수집/등록/관리, 메타데이터 기반 분류
입력문제 설명, 입력/출력 예시, 테스트케이스, 정답 코드, 난이도, 태그, 이미지/영상
출력문제 목록, 상세 정보, 통계(정답률, 평균 해결시간)
관련 요구사항SFR-004, SFR-021
우선순위필수 (Tier 1)
구현 방식PostgreSQL JSONB 기반 유연한 문제 스키마, 마크다운 에디터(이미지/영상 첨부 지원), S3 호환 스토리지(미디어 파일)

FN-QB-002: 문제 검색 및 관리

항목내용
기능IDFN-QB-002
기능명문제 검색 및 관리 시스템
설명난이도, 유형, 태그 기반 문제 검색/필터링, 문제 활용 현황 분석
입력검색 키워드, 필터 조건 (난이도, 유형, 태그, 언어)
출력검색 결과 목록, 문제 활용 통계
관련 요구사항SFR-005
우선순위필수 (Tier 1)
구현 방식PostgreSQL Full-Text Search + 인덱싱, 패싯(facet) 기반 필터, 문제별 사용 이력 추적

FN-QB-003: 문제 이미지 및 영상 첨부

항목내용
기능IDFN-QB-003
기능명문제 생성 시 이미지 및 영상 첨부
설명문제 설명에 이미지, 다이어그램, 영상 파일 첨부 지원
입력이미지 파일(PNG/JPG/SVG), 영상 파일(MP4), 다이어그램
출력미디어가 포함된 문제 렌더링
관련 요구사항SFR-021
우선순위중간 (Tier 2)
구현 방식S3 호환 오브젝트 스토리지 업로드, 마크다운 에디터 미디어 삽입, CDN 기반 미디어 서빙

3.4 학습자 기능 (SFR-006, SFR-009, SFR-011)

FN-LRN-001: 문제 풀이 시스템 (웹 IDE)

항목내용
기능IDFN-LRN-001
기능명웹 기반 문제 풀이 시스템
설명브라우저 기반 코드 에디터(IDE)에서 코드 작성, 실행, 제출까지 원스톱 수행
입력소스 코드, 프로그래밍 언어 선택
출력실행 결과 (stdout/stderr), 컴파일 에러, 테스트케이스 결과
관련 요구사항SFR-006
우선순위필수 (Tier 1)
구현 방식Monaco Editor 기반 웹 IDE, 구문 하이라이팅, 자동완성, C/Python/Java 언어 전환, 실시간 코드 실행(Docker 컨테이너), 시험 모드/일반 학습 모드 분리

FN-LRN-002: 학습 활동 기록

항목내용
기능IDFN-LRN-002
기능명학습 활동 기록 시스템
설명코드 제출 이력, 버전별 풀이 이력, 학습 행동 데이터 자동 수집
입력코드 제출 이벤트, 에디터 상호작용
출력제출 이력 타임라인, 학습 행동 통계
관련 요구사항SFR-009
우선순위필수 (Tier 2)
구현 방식xAPI 표준 기반 LRS(Learning Record Store) 엔진, 시계열 학습 행동 데이터 수집, 코드 수정 횟수/작성 시간/제출 패턴 추적

FN-LRN-003: 학습 목표 관리

항목내용
기능IDFN-LRN-003
기능명학습 목표 관리
설명학습자별 목표 설정, 진도 추적, 달성도 시각화
입력학습 목표, 기간, 대상 문제셋
출력진도율, 달성도 그래프, 추천 학습 경로
관련 요구사항SFR-011
우선순위중간 (Tier 2)
구현 방식학습 경로 엔진, 진도 추적 대시보드, 마일스톤 기반 목표 관리

3.5 자동 채점 시스템 (SFR-007)

FN-GRD-001: 자동 채점 시스템 (14단계)

항목내용
기능IDFN-GRD-001
기능명다단계 자동 채점 시스템
설명14단계 자동 채점 프로세스 — 코드 컴파일, 실행, 정확성 검증, 논리 완성도 평가
입력제출된 소스 코드, 문제 ID, 테스트케이스
출력채점 점수, 단계별 결과, 테스트케이스 통과/실패 상세, 오류 메시지, 실행 시간/메모리
관련 요구사항SFR-007
우선순위필수 (Tier 1)
구현 방식Docker 컨테이너 기반 격리 실행, 14단계 파이프라인 (구문검사 → 컴파일 → 실행 → 테스트케이스 매칭 → 경계값 검사 → 시간/메모리 제한 → 코드 품질 → ...), 채점 큐(Redis) 기반 비동기 처리, 채점 로그 영구 저장

14단계 채점 프로세스 (참고):

단계검증 항목설명
1구문 검사문법 오류 여부
2컴파일컴파일 성공 여부 (C/Java)
3기본 실행런타임 오류 없이 실행 여부
4샘플 테스트문제 제시 예시 입출력
5기본 테스트케이스표준 입력/출력 매칭
6경계값 테스트최소/최대/특수 입력
7대량 데이터대용량 입력 처리
8시간 제한실행 시간 초과 검사
9메모리 제한메모리 사용량 검사
10출력 형식공백/줄바꿈 등 형식 검증
11부분 점수부분 정답 인정
12코드 품질코드 스타일/구조
13논리 완성도알고리즘 논리 평가
14종합 평가최종 점수 산출

3.6 AI 기능 (SFR-008, SFR-010, SFR-015, SFR-016, SFR-019)

FN-AI-001: AI 기반 학습 해설 제공

항목내용
기능IDFN-AI-001
기능명AI 기반 학습 해설 및 피드백
설명LLM이 코드 분석 결과를 바탕으로 단계별 학습 해설, 오류 원인 분석, 개선 방향 제시
입력제출 코드, 문제 정보, 채점 결과, 학습자 수준
출력AI 해설(마크다운), 코드 오류 해석, 개선 제안, 추가 학습 가이드
관련 요구사항SFR-008
우선순위필수 (Tier 1)
구현 방식Claude API 기반 코드 분석, 프롬프트 엔지니어링으로 수준별 피드백 조절, RAG 파이프라인으로 문제 컨텍스트 주입, 해설 캐싱으로 비용 최적화

FN-AI-002: AI 기반 학습 분석

항목내용
기능IDFN-AI-002
기능명AI 기반 학습 패턴 분석
설명학습자의 코드 제출 패턴, 오류 유형, 학습 진도를 AI가 분석하여 맞춤형 학습 경로 추천
입력학습 이력 데이터, 채점 결과, 시계열 학습 행동
출력학습 분석 리포트, 취약점 분석, 추천 학습 경로
관련 요구사항SFR-010
우선순위필수 (Tier 2)
구현 방식LLM 기반 학습 패턴 분석, 학습자 클러스터링, 취약 개념 자동 탐지, 맞춤형 추천 엔진

FN-AI-003: AI 기반 질의응답

항목내용
기능IDFN-AI-003
기능명AI 기반 질의응답 (AI 튜터)
설명학습자가 문제 풀이 중 AI에게 개념 질문, 코드 질의 가능
입력질문 텍스트, 현재 코드 컨텍스트, 문제 정보
출력AI 답변, 관련 코드 예시, 참고 개념 링크
관련 요구사항SFR-015
우선순위중간 (Tier 2)
구현 방식Claude API 채팅 인터페이스, 문제+코드 컨텍스트 자동 주입, 답변 직접성 제어(힌트 모드 vs 정답 모드), AI 질의 로그 수집(교육 연구 데이터)

FN-AI-004: AI 기반 문제 생성

항목내용
기능IDFN-AI-004
기능명AI 기반 문제 자동 생성
설명교수자가 의도/조건을 입력하면 AI가 코딩 문제, 테스트케이스, 모범 답안을 자동 생성
입력문제 의도(주제, 난이도, 알고리즘 유형), 루브릭 설정
출력생성된 문제(설명, 입출력, 테스트케이스, 정답 코드), 교수자 승인 대기 상태
관련 요구사항SFR-016
우선순위중간 (Tier 3)
구현 방식LLM 기반 문제 생성 파이프라인, 루브릭 템플릿 적용, 교수자 승인 워크플로우(사용자 동의 없이 문제 생성 불가), 생성 문제 품질 자동 검증(테스트케이스 실행 확인)

FN-AI-005: 코드 유사도 분석

항목내용
기능IDFN-AI-005
기능명AI 기반 코드 유사도 분석 (표절 탐지)
설명제출된 코드 간 유사도를 분석하여 표절 의심 사례 탐지
입력동일 문제에 대한 복수 학생 제출 코드
출력유사도 매트릭스, 의심 쌍 목록, 유사 코드 블록 하이라이트
관련 요구사항SFR-019
우선순위중간 (Tier 3)
구현 방식AST(Abstract Syntax Tree) 기반 구조적 유사도 분석 + LLM 의미론적 분석 병합, 토큰 기반 비교, 유사도 임계치 설정(교수자 조정 가능)

3.7 교수자 기능 (SFR-012 ~ SFR-014, SFR-017 ~ SFR-018, SFR-020)

FN-TCH-001: 학생 학습 관리

항목내용
기능IDFN-TCH-001
기능명학생 학습 관리
설명강의별 학생 목록 관리, 개별 학생 학습 현황 추적, 성적 관리
입력학생 목록, 강의 정보
출력학생별 학습 현황, 문제별 정답률, 제출 현황 분석
관련 요구사항SFR-013
우선순위필수 (Tier 2)
구현 방식강의 그룹 생성, 학생 등록/초대, 개별 학습 이력 대시보드, 엑셀 내보내기

FN-TCH-002: 학습 리포트 생성

항목내용
기능IDFN-TCH-002
기능명학습 리포트 자동 생성
설명강의/시험별 종합 리포트 자동 생성, PDF 내보내기
입력기간, 강의, 분석 대상 설정
출력종합 리포트 (정답률 분포, 학생별 성취도, 문제 난이도 분석, 시계열 변화)
관련 요구사항SFR-012
우선순위중간 (Tier 2)
구현 방식차트 라이브러리(Chart.js/D3.js) 기반 시각화, PDF 리포트 자동 생성, 주기적 이메일 발송 옵션

FN-TCH-003: 문제별 학습 분석

항목내용
기능IDFN-TCH-003
기능명문제별 학습 분석
설명문제별 정답률, 제출 횟수, 평균 해결 시간, 주요 오류 패턴 분석
입력문제 ID, 분석 기간
출력문제별 통계 대시보드, 오류 패턴 리포트, 난이도 재산정 제안
관련 요구사항SFR-014
우선순위중간 (Tier 2)
구현 방식문제별 집계 쿼리, 오류 유형 자동 분류, 난이도 자동 조정 제안 알고리즘

FN-TCH-004: 강의 및 과제 관리

항목내용
기능IDFN-TCH-004
기능명강의 및 과제 관리
설명강의 그룹 생성, 문제 세트(문제지) 구성, 과제 배포 및 마감 관리
입력강의명, 학생 목록, 문제 선택, 마감일
출력과제 배포 완료, 제출 현황 대시보드
관련 요구사항SFR-017
우선순위필수 (Tier 2)
구현 방식강의 그룹 CRUD, 문제 세트 빌더(드래그앤드롭), 과제 배포 일정 설정, 자동 마감 알림

FN-TCH-005: 시험 및 평가 관리

항목내용
기능IDFN-TCH-005
기능명시험 및 평가 관리
설명시험 모드 설정(시간 제한, 접근 제어), 시험 중 실시간 모니터링, AI 채점 + 수동 채점 병행
입력시험 문제셋, 시간 제한, 참가 학생
출력시험 결과, 개별 채점 결과, AI 채점 vs 수동 채점 비교
관련 요구사항SFR-018
우선순위필수 (Tier 2)
구현 방식시험 모드 UI(복사/붙여넣기 제한 옵션, 시간 카운트다운), 실시간 제출 현황 WebSocket 스트리밍, 수동 채점 인터페이스, AI-수동 채점 비교 분석

FN-TCH-006: 실시간 수업 참여 반응 시스템

항목내용
기능IDFN-TCH-006
기능명실시간 수업 속도 반응 시스템
설명학생이 수업 속도를 실시간 평가, 교수자에게 취합 제공
입력학생 수업 속도 평가 (빠름/적당/느림)
출력실시간 속도 분포 대시보드, 시계열 변화
관련 요구사항SFR-020
우선순위낮음 (Tier 3)
구현 방식코드 에디터 상단 간편 투표 UI, WebSocket 기반 실시간 취합, 교수자 대시보드 실시간 표시

4. 화면 목록

4.1 학생용 화면

#화면명주요 기능관련 기능ID
S-01로그인/회원가입인증, 계정 생성FN-COM-002
S-02대시보드학습 현황 요약, 과제 목록, 최근 활동FN-LRN-003
S-03문제 목록문제 검색/필터, 카테고리 브라우징FN-QB-002
S-04문제 풀이 (웹 IDE)코드 에디터 + 문제 설명 + 실행 결과 통합FN-LRN-001
S-05채점 결과 상세14단계 채점 결과, 테스트케이스 상세FN-GRD-001
S-06AI 피드백AI 해설, 코드 분석 결과, 학습 가이드FN-AI-001
S-07AI 질의응답AI 튜터 채팅 인터페이스FN-AI-003
S-08학습 이력제출 이력, 점수 변화 그래프FN-LRN-002
S-09학습 목표목표 설정, 진도 추적FN-LRN-003
S-10수업 속도 평가수업 속도 반응 투표FN-TCH-006
S-11프로필/설정개인정보, 언어 설정FN-COM-002

4.2 교수자용 화면

#화면명주요 기능관련 기능ID
T-01교수 대시보드강의 목록, 최근 활동, 알림FN-TCH-001
T-02강의 관리강의 그룹 생성/수정, 학생 관리FN-TCH-004
T-03문제 출제문제 등록/수정/삭제, 테스트케이스 관리FN-QB-001
T-04AI 문제 생성AI 문제 생성 설정, 결과 검토/승인FN-AI-004
T-05문제 세트 구성과제/시험 문제지 구성FN-TCH-004
T-06시험 관리시험 모드 설정, 실시간 모니터링FN-TCH-005
T-07채점 관리AI 채점 결과 확인, 수동 채점, 비교 분석FN-TCH-005
T-08학생 현황학생별 학습 현황, 성적 분석FN-TCH-001
T-09학습 리포트종합 리포트 생성, PDF 내보내기FN-TCH-002
T-10문제 분석문제별 정답률, 오류 패턴 분석FN-TCH-003
T-11코드 유사도표절 탐지 결과 확인FN-AI-005
T-12수업 속도 모니터링실시간 수업 속도 반응 대시보드FN-TCH-006

4.3 관리자용 화면

#화면명주요 기능관련 기능ID
A-01관리자 대시보드시스템 현황, 사용자 통계FN-SYS-001
A-02테넌트 관리테넌트 생성/설정/삭제FN-COM-003
A-03사용자 관리사용자 CRUD, 역할 관리FN-COM-002
A-04시스템 모니터링서버 상태, 채점 큐 현황, 에러 로그FN-SYS-001
A-05LLM 사용 현황API 호출 통계, 비용 모니터링FN-AI-001

5. 데이터 모델

5.1 주요 엔티티

┌─────────────┐     ┌─────────────┐     ┌──────────────┐
│   Tenant    │────<│    User     │────<│   Lecture    │
│ (테넌트)     │     │ (사용자)    │     │  (강의)      │
│             │     │ role: enum  │     │              │
└──────┬──────┘     └──────┬──────┘     └──────┬───────┘
       │                   │                    │
       │            ┌──────┴──────┐      ┌──────┴───────┐
       │            │ Enrollment  │      │  Assignment  │
       │            │ (수강 등록) │      │  (과제)      │
       │            └─────────────┘      └──────┬───────┘
       │                                        │
┌──────┴──────┐     ┌─────────────┐      ┌──────┴───────┐
│  Problem    │────<│ TestCase    │      │ ProblemSet   │
│ (문제)      │     │(테스트케이스)│      │ (문제세트)   │
│ metadata    │     └─────────────┘      └──────────────┘
└──────┬──────┘

┌──────┴──────┐     ┌─────────────┐     ┌──────────────┐
│ Submission  │────>│GradingResult│────>│  AIFeedback  │
│ (제출)      │     │ (채점결과)  │     │ (AI 피드백)  │
│ code, lang  │     │ 14단계 결과 │     │ 해설, 분석   │
└──────┬──────┘     └─────────────┘     └──────────────┘

┌──────┴──────┐     ┌─────────────┐
│LearningLog  │     │ AIQuery     │
│(학습 로그)  │     │ (AI 질의)   │
│ xAPI 형식   │     │ 질문/답변   │
└─────────────┘     └─────────────┘

5.2 핵심 엔티티 설명

엔티티설명주요 필드
Tenant멀티테넌트 단위 (학과/부서)id, name, settings, createdAt
User사용자 (학생/교수/관리자)id, email, role, tenantId, profile, language
Problem코딩 문제id, title, description, difficulty, tags, language, testCases, solutionCode, metadata
TestCase테스트케이스id, problemId, input, expectedOutput, isHidden, weight
Submission코드 제출id, userId, problemId, code, language, submittedAt, version
GradingResult채점 결과id, submissionId, score, stageResults(14단계), executionTime, memoryUsage
AIFeedbackAI 분석/피드백id, submissionId, analysis, suggestions, learningGuide, modelUsed
LearningLog학습 행동 데이터id, userId, verb, object, result, timestamp (xAPI 형식)
Lecture강의 그룹id, name, professorId, tenantId, semester
Assignment과제/시험id, lectureId, problemSetId, type(과제/시험), deadline, settings
AIQueryAI 질의응답 로그id, userId, question, answer, context, modelUsed, timestamp
SimilarityResult코드 유사도id, assignmentId, pairs, similarityScore, method

6. 외부 연동

연동 대상프로토콜용도비고
Claude API (Anthropic)REST API코드 분석, 피드백 생성, 질의응답, 문제 생성주 LLM — EP 핵심 역량
OpenAI GPT APIREST API보조 LLM, A/B 비교 테스트대안/폴백
xAPI / LRSxAPI 표준학습 행동 데이터 수집표준 기반 학습 분석
S3 호환 스토리지S3 API미디어 파일(이미지/영상) 저장MinIO 또는 클라우드 S3
SMTPSMTP이메일 알림 (과제 마감, 리포트 등)선택적
SSO (학교 인증)OAuth 2.0 / SAML한림대 학교 계정 연동추후 확장

7. 비기능 요구사항

7.1 보안

  • HTTPS(TLS 1.3) 전 구간 암호화
  • JWT 기반 인증, 토큰 만료/갱신 관리
  • RBAC(역할 기반 접근 제어): 학생/교수/관리자
  • 코드 실행 환경 완전 격리 (Docker 컨테이너, 네트워크 제한, 리소스 제한)
  • SQL Injection, XSS, CSRF 방어
  • 개인정보 암호화 저장 (AES-256)
  • 접근 로그 및 감사 로그 기록

7.2 성능

  • 코드 실행 응답: 10초 이내 (일반 문제)
  • 채점 결과 반환: 30초 이내 (14단계 전체)
  • AI 피드백 생성: 15초 이내
  • 동시 접속: 최소 200명 동시 코드 실행 지원
  • 페이지 로드: 3초 이내 (첫 로드)

7.3 확장성

  • 수평 확장 가능한 아키텍처 (컨테이너 기반)
  • LLM 모델 교체/추가 용이한 어댑터 패턴
  • 새로운 프로그래밍 언어 추가 용이 (Docker 이미지 추가)
  • 멀티테넌트 확장으로 타 대학 적용 가능

7.4 가용성

  • 서비스 가용성 99.5% 이상 (학기 중)
  • 자동 백업 (일 1회 + 변경분 실시간)
  • 장애 시 자동 알림 + 복구 프로세스

7.5 국제화 (i18n)

  • 한국어, 영어 기본 지원
  • 사용자 계정별 언어 설정 저장
  • 브라우저 언어 자동 감지
  • next-intl 표준 방식 적용

8. 기능 요약 매트릭스

구분기능ID기능명관련 요구사항우선순위
시스템FN-SYS-001시스템 기본 환경 구축ECR-001, ECR-002필수
시스템FN-SYS-002다층 방어 보안 아키텍처ECR-003필수
공통FN-COM-001공통 UI/UX 프레임워크SFR-001필수
공통FN-COM-002사용자 인증 및 계정 관리SFR-002필수
공통FN-COM-003멀티테넌트 아키텍처SFR-003필수
문제은행FN-QB-001코딩 문제은행 구축SFR-004, SFR-021필수
문제은행FN-QB-002문제 검색 및 관리SFR-005필수
문제은행FN-QB-003문제 이미지/영상 첨부SFR-021중간
학습자FN-LRN-001웹 기반 문제 풀이 (웹 IDE)SFR-006필수
학습자FN-LRN-002학습 활동 기록SFR-009필수
학습자FN-LRN-003학습 목표 관리SFR-011중간
채점FN-GRD-001자동 채점 시스템 (14단계)SFR-007필수
AIFN-AI-001AI 학습 해설 및 피드백SFR-008필수
AIFN-AI-002AI 학습 패턴 분석SFR-010필수
AIFN-AI-003AI 질의응답 (AI 튜터)SFR-015중간
AIFN-AI-004AI 문제 자동 생성SFR-016중간
AIFN-AI-005코드 유사도 분석SFR-019중간
교수자FN-TCH-001학생 학습 관리SFR-013필수
교수자FN-TCH-002학습 리포트 생성SFR-012중간
교수자FN-TCH-003문제별 학습 분석SFR-014중간
교수자FN-TCH-004강의 및 과제 관리SFR-017필수
교수자FN-TCH-005시험 및 평가 관리SFR-018필수
교수자FN-TCH-006수업 속도 반응 시스템SFR-020낮음

총 23개 기능 (필수 14개 / 중간 7개 / 낮음 2개)

RFP 요구사항 커버리지

  • 시스템 환경 요구사항 (ECR-001~003): 100% 커버
  • 기능 요구사항 (SFR-001~021): 100% 커버 (21개 전체)
  • 모든 요구사항이 하나 이상의 기능ID에 매핑됨

한림대학교 AI 기반 코딩 교육 플랫폼 — 나라장터 입찰 분석